openpilot is an open source driver assistance system. openpilot performs the functions of Automated Lane Centering and Adaptive Cruise Control for over 200 supported car makes and models.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Adeeb Shihadeh 03f3d6ccf1 update setup instructions 4 days ago
..
bodyteleop use pyupgrade to update to new typing syntax (#31580) 1 year ago
cabana cabana: add RouteInfo dialog to view and navigate route segment details (#35134) 1 month ago
camerastream [bot] Update Python packages (#34140) 6 months ago
car_porting Move format_fingerprints.py to opendbc (#35532) 6 days ago
clip feat(clip): enable ecam (#35259) 1 month ago
joystick joystick: use ISO acceleration (#35230) 1 month ago
lib Cleanup framereader (#35513) 1 week ago
longitudinal_maneuvers loggerd: switch logging from raw file format to zstd compressed files (#34549) 4 months ago
plotjuggler plotjuggler: support relative paths (#35054) 2 months ago
profiling Beautiful camera timings (#34558) 4 months ago
replay Cleanup framereader (#35513) 1 week ago
rerun Quick GC pass heading into 2025 (#34330) 5 months ago
scripts Cleanup framereader (#35513) 1 week ago
sim Rename experimental long (#35011) 2 months ago
tuning rename steer_limited (#34763) 4 months ago
webcam webcam: make driver camera optional (#35455) 2 weeks ago
CTF.md CTF.md typo (#34257) 6 months ago
README.md update setup instructions 4 days ago
__init__.py merge in tools 5 years ago
auto_source.py tools: add --auto flag to replay and cabana for loading routes from auto source (#34863) 1 month ago
install_python_dependencies.sh setup: try removing uv update loop 4 months ago
install_ubuntu_dependencies.sh feat(clip): font from `selfdrive/assets` (#35194) 1 month ago
mac_setup.sh fix: macOS CI (#34911) 3 months ago
op.sh refactor: LPA interface, CLI location (#35328) 3 weeks ago
setup.sh add back pre-commit hook (#33366) 10 months ago
ubuntu_setup.sh tools: fix setup for directories with spaces (#33769) 8 months ago

README.md

openpilot tools

System Requirements

openpilot is developed and tested on Ubuntu 24.04, which is the primary development target aside from the supported embedded hardware.

Most of openpilot should work natively on macOS. On Windows you can use WSL for a nearly native Ubuntu experience. Running natively on any other system is not currently recommended and will likely require modifications.

Native setup on Ubuntu 24.04 and macOS

Follow these instructions for a fully managed setup experience. If you'd like to manage the dependencies yourself, just read the setup scripts in this directory.

1. Clone openpilot

git clone https://github.com/commaai/openpilot.git

2. Run the setup script

cd openpilot
tools/op.sh setup

3. Activate a Python shell Activate a shell with the Python dependencies installed:

source .venv/bin/activate

4. Build openpilot

scons -u -j$(nproc)

WSL on Windows

Windows Subsystem for Linux (WSL) should provide a similar experience to native 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-24.04 distribution. Once your Ubuntu WSL environment is setup, follow the Linux setup instructions to finish setting up your environment. See these instructions for running GUI apps.

NOTE: If you are running WSL and any GUIs are failing (segfaulting or other strange issues) even after following the steps above, you may need to enable software rendering with LIBGL_ALWAYS_SOFTWARE=1, e.g. LIBGL_ALWAYS_SOFTWARE=1 selfdrive/ui/ui.

CTF

Learn about the openpilot ecosystem and tools by playing our CTF.

Directory Structure

├── cabana/             # View and plot CAN messages from drives or in realtime
├── camerastream/       # Cameras stream over the network
├── 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
└── webcam/             # Run openpilot on a PC with webcams