opendbc is a Python API for your car. Read the speed, steering angle, and more. Send gas, braking, and steering commands.
opendbc/dbc/
is a repository of DBC filesopendbc/can/
is a library for parsing and building CAN messages from DBC filesopendbc/car/
is a high-level library for interfacing with cars using Python
git clone https://github.com/commaai/opendbc.git
cd opendbc
# Install the dependencies
pip3 install -e .[testing,docs]
# Build
scons -j8
# Run the tests
pytest .
# Run the linter
pre-commit run --all-files
# ./test.sh is the all-in-one that will install deps, build, lint, and test
./test.sh
examples/
contains small example programs that can read state from the car and control the steering, gas, and brakes.
examples/joystick.py
allows you to control a car with a joystick.
This project was pulled out from openpilot. We're still figuring out the exact API between openpilot and opendbc, so some of these may end up going in openpilot.
- Extend support to every car with LKAS + ACC interfaces
- Automatic lateral and longitudinal control/tuning evaluation
- Auto-tuning for lateral and longitudinal control
- Automatic Emergency Braking
pip install opendbc
- 100% type coverage
- 100% line coverage
- Make car ports easier: refactors, tools, tests, and docs
- Expose the state of all supported cars better: commaai#1144
Contributions towards anything here is welcome. Join the Discord!