democratize access to car decoder rings
Go to file
Jason Young 3fc9bdb8c9
docs: add Honda Odyssey WIP to CARS.md (#1365)
docs: add Honda Odyssey to CARS.md
2024-10-12 11:47:48 -04:00
.github fix fingerprint labeling 2024-10-04 16:56:28 -07:00
docs docs: add Honda Odyssey WIP to CARS.md (#1365) 2024-10-12 11:47:48 -04:00
examples rm longitudinal profiles (#1240) 2024-09-12 16:55:06 -07:00
opendbc docs: add Honda Odyssey WIP to CARS.md (#1365) 2024-10-12 11:47:48 -04:00
site_scons/site_tools cython dependency scanner 2021-01-11 14:16:02 -08:00
.gitignore longitudinal profile runner (#1197) 2024-08-30 13:48:13 -07:00
.pre-commit-config.yaml Bump pre-commit hooks, more coverage (similar to openpilot) (#1078) 2024-08-16 22:24:44 -07:00
LICENSE add license 2021-04-30 14:25:37 -07:00
README.md just openpilot 2024-10-03 14:58:01 -07:00
SConstruct no docker (#1081) 2024-08-17 12:04:46 -07:00
pyproject.toml Toyota: 2021-23 RAV4 Prime (#1287) 2024-10-04 16:12:17 -04:00
test.sh fix double in 2024-10-01 16:12:06 -07:00

README.md

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

# ./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.

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: https://github.com/commaai/opendbc/issues/1144

Contributions towards anything here is welcome. Join the Discord!

FAQ

  • How do I use this? Depends on what you want to do. openpilot is our development target, but you can also use a panda for basic control or just reading state from your car.
  • Can I add support for my car? Yes, most car support comes from the community. Join the Discord and watch this talk to get started. (We also offer paid bounties on car ports.)
  • Which cars are supported? See the openpilot supported cars list and grep around the codebase.