OPENDBC es una API de Python para su automóvil.
Controle el gas, el freno, la dirección y más. Lea la velocidad, el ángulo de dirección y más.
La mayoría de los automóviles desde 2016 tienen dirección, gas y frenos de acción electrónica electrónicamente gracias a LKAS y ACC. El objetivo de este proyecto es apoyar el control de la dirección, el gas y los frenos en cada uno de esos autos.
Si bien el enfoque principal es apoyar las interfaces ADAS para OpenPilot, también estamos interesados en leer y escribir tantas cosas como podamos (EV Charge Status, bloqueo/desbloqueo de puertas, etc.) de modo que podamos construir la mejor aplicación de gestión de vehículos.
Este ReadMe y la lista de autos compatibles son todos los documentos para el proyecto OpenDBC. Todo lo que necesita saber para usar, contribuir y extender OPENDBC está en estos documentos.
git clone https://github.com/commaai/opendbc.git
cd opendbc
# you probably just want to use this. it's an all-in-one for dependency
# installation, compiling, linting, and tests. it's also what runs in CI
./test.sh
# here are the individual commands it runs
pip3 install -e .[testing,docs] # install dependencies
scons -j8 # build with 8 cores
pytest . # run the tests
pre-commit run --all-files # run the linter examples/ contiene pequeños programas de ejemplo que pueden leer el estado del automóvil y controlar la dirección, el gas y los frenos. examples/joystick.py le permite controlar un automóvil con un joystick.
opendbc/dbc/ es un repositorio de archivos DBCopendbc/can/ es una biblioteca para analizar y construir mensajes de lata de archivos DBCopendbc/car/ es una biblioteca de alto nivel para interactuar con los automóviles que usan Python Esta guía cubre todo, desde agregar soporte hasta un automóvil nuevo hasta mejorar los automóviles existentes (por ejemplo, agregar control longitudinal o análisis de radar). Si los autos similares a los suyos ya son compatibles, la mayor parte de este trabajo ya se realiza para usted.
En su forma más básica, un puerto de automóvil controlará la dirección en un automóvil. Un puerto de automóvil "completo" tendrá todo: control lateral, control longitudinal, buen ajuste para el análisis de radar lateral y longitudinal (si está equipado), huellas digitales difusas y más. Los nuevos documentos de soporte para automóviles comunicarán claramente el nivel de soporte de cada automóvil.
El primer paso es conectarse al automóvil con una coma 3x y un arnés de automóvil. El arnés del automóvil lo conecta a dos autobuses de CAN diferentes y divide uno de esos autobuses para enviar nuestros propios mensajes de actuación.
Si tiene suerte, un arnés compatible con su automóvil ya será diseñado y vendido en coma.ai/shop. Si no tiene tanta suerte, comience con un "arnés de desarrollador" de Coma.ai/shop y arruge en cualquier conector que necesite.
Dependiendo de la mayor parte de esta estructura básica ya estará en su lugar.
La totalidad de un puerto de automóvil vive en opendbc/car/<brand>/ ::
carstate.py : analiza la información relevante de la transmisión de la lata utilizando el archivo DBC del automóvilcarcontroller.py : las salidas pueden mensajes para controlar el automóvil<brand>can.py : ayudantes de pitón delgado alrededor del archivo DBC para construir mensajes de latafingerprints.py : Base de datos de versiones de firmware de ECU para identificar modelos de automóvilesinterface.py : clase de alto nivel para interactuar con el automóvilradar_interface.py : analiza el radarvalues.py : enumera los autos compatibles con la marcaComience grabando una ruta con muchos eventos interesantes: habilite LKAS y ACC, gire el volante ambos extremos, etc. Luego, cargue esa ruta en Cabana.
Use el informe de maniobras longitudinales para evaluar el control longitudinal de su automóvil y ajustarlo.
Todo el desarrollo de OpenDBC se coordina en GitHub y Discord. Consulte el canal #dev-opendbc-cars y la sección Vehicle Specific .
Corto plazo
pip install opendbcA largo plazo
Las contribuciones a cualquier cosa aquí son bienvenidas.
Cada puerto de autos es elegible para una recompensa:
Además de las recompensas estándar, también ofrecemos recompensas de mayor valor para autos más populares. Vea los de Comsa.ai/Bounties.
¿Cómo uso esto? Una coma 3X está diseñada a medida para ser la mejor manera de ejecutar y desarrollar OpEdBC y OpenPilot.
¿Qué autos son compatibles? Vea la lista de autos compatibles.
¿Puedo agregar soporte para mi coche? Sí, la mayoría del apoyo para automóviles proviene de la comunidad. Lea la guía aquí.
¿Qué autos pueden ser compatibles? Cualquier auto con LKAS y Acc. Más información aquí.
¿Cómo funciona esto? En resumen, diseñamos hardware para reemplazar el carril integrado de su automóvil y las características de crucero adaptativo. Vea esta charla para una explicación en profundidad.
¿Existe una línea de tiempo o una hoja de ruta para agregar soporte para automóvil? No, la mayoría del soporte para automóviles proviene de la comunidad, con una coma que realiza la seguridad final y la validación de calidad. Cuanto más completo sea el puerto del automóvil comunitario y más popular es el automóvil, más probabilidades tenemos de recogerlo como el próximo para validar.
La coma está contratando a los ingenieros para trabajar en OPENDBC y OpenPilot. Nos encanta contratar contribuyentes.