* msg_order and gantt
* frameId in long/lat planner
* track frame id
* controls frame id
* graph tracked events
* graph json
* cloudlog timestamp
* c++ cloudlog
* add frame id
* bug fixes
* bug fixes
* frame id visionicp
* bug fixes and debug level
* timestamp log placement
* print timestamps in table
* translate events
* more logging
* bug fixes
* daemon boardd
* print logs with boardd
* more timestamp logs
* cleanup
* remove publish logs
* bug fix
* timestamp received
* timestamp received
* bug fixes
* use json lib
* ignore driver camera
* prep for new timestamp pipeline
* bug fix
* read new pipeline unfinnished
* read new pipeline
* bug fix
* add frame to controlsstate
* remove controlsstate
* print
* cleanup
* more cleanup + bug fix
* clock build issue
* remove unused imports
* format durations
* increase speed
* pr comments fixes
* conflicts
* set MANAGER_DAEMON for boardd
* clean script code
* bug fix + argparse
* remove rcv time
* bug fixes
* print without tabulate
* fix pre-commits
* plot gnatt
* color bug fix
* read without timestampextra
* bump panda
* mono time instead of frame id
* finnish script
* clean unused
* clean unused logging
* monotonic + json fixes
* del test
* remove whilelines
* bump laika
* cleanup
* remove deps
* logs nicer strings
* remove plotting from scirpt
* reset pipfile
* reset pipfile
* nicer strings
* bug fix
* bug fix
* pr comments cleaning
* remove plotting
* bug fix
* new demo route
* bump opendbc and panda
* cereal master
* cereal master
* script less komplex
* assertions
* matplotlib
* readme
* Update README.md
* graph html
* design fixes
* more code design
* Update common/logging_extra.py
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* whitespace
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* Update tools/latency_logger/latency_logger.py
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* pr comments
* bug fix
* readme + env once
* clean swaglog
* bug fix
* Update tools/latencylogger/README.md
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
* revert
* revert
* clean swaglog with error
* remove typo file
* revert graph
* cereal
* submodules
* whitespaces
* update refs
Co-authored-by: Bruce Wayne <batman@workstation-openpilot2.internal>
Co-authored-by: Comma Device <device@comma.ai>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
old-commit-hash: 65fca83abe
openpilot tools
System Requirements
openpilot is developed and tested on Ubuntu 20.04, which is the primary development target aside from the supported embdedded hardware. We also have a CI test to verify that openpilot builds on macOS, but the tools are untested. For the best experience, stick to Ubuntu 20.04, otherwise openpilot and the tools should work with minimal to no modifications on macOS and other Linux systems.
Setup your PC
First, clone openpilot:
cd ~
git clone https://github.com/commaai/openpilot.git
cd openpilot
git submodule update --init
Then, run the setup script:
# for Ubuntu 20.04 LTS
tools/ubuntu_setup.sh
# for macOS
tools/mac_setup.sh
Activate a shell with the install Python dependencies:
cd openpilot && pipenv shell
Build openpilot with this command:
scons -u -j$(nproc)
Windows
Neither openpilot nor any of the tools are developed or tested on Windows, but the Windows Subsystem for Linux (WSL) should get Windows users a similiar experience to Ubuntu. WSL 2 specifically has been reported by several users to be a seamless experience.
Follow these instructions to setup the WSL and install the Ubuntu-20.04 distribution. Once your Ubuntu WSL environment is setup, follow the Linux setup instructions to finish setting up your environment.
GUI applications do not work with WSL out of the box. You will have to either upgrade your system to Windows 11 or set up an Xorg server.
CTF
Learn about the openpilot ecosystem and tools by playing our CTF.
Directory Structure
├── ubuntu_setup.sh # Setup script for Ubuntu
├── mac_setup.sh # Setup script for macOS
├── joystick/ # Control your car with a joystick
├── lib/ # Libraries to support the tools and reading openpilot logs
├── plotjuggler/ # A tool to plot openpilot logs
├── replay/ # Replay drives and mock openpilot services
├── scripts/ # Miscellaneous scripts
├── serial/ # Tools for using the comma serial
├── sim/ # Run openpilot in a simulator
├── ssh/ # SSH into a comma device
└── webcam/ # Run openpilot on a PC with webcams