Skip to content

commaai/opendbc

Repository files navigation

opendbc

opendbc is a Python API for your car. Read the speed, steering angle, and more. Send gas, braking, and steering commands.

Structure

  • opendbc/dbc/ is a repository of DBC files
  • opendbc/can/ is a library for parsing and building CAN messages from DBC files
  • opendbc/car/ is a high-level library for interfacing with cars using Python

Quick start

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

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.

Roadmap

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: #1144

Contributions towards anything here is welcome. Join the Discord!