OpenDBC est une API Python pour votre voiture.
Contrôlez le gaz, le frein, la direction et plus encore. Lisez la vitesse, l'angle de direction et plus encore.
La plupart des voitures depuis 2016 ont une direction, des gaz et des freins par électroniquement grâce aux LKAS et à l'ACC. L'objectif de ce projet est de soutenir le contrôle de la direction, du gaz et des freins sur chacune de ces voitures.
Bien que l'accent est mis sur la prise en charge des interfaces ADAS pour OpenPilot, nous sommes également intéressés à lire et à écrire autant de choses que possible (statut de charge EV, portes de verrouillage / déverrouillage, etc.) de sorte que nous pouvons créer la meilleure application de gestion de véhicules.
Cette lecture et la liste des voitures prises en charge sont tous les documents du projet OpenDBC. Tout ce que vous devez savoir pour utiliser, contribuer et étendre OpenDBC est dans ces documents.
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/ Contient de petits exemples de programmes qui peuvent lire l'état de la voiture et contrôler la direction, le gaz et les freins. examples/joystick.py vous permet de contrôler une voiture avec un joystick.
opendbc/dbc/ est un référentiel de fichiers DBCopendbc/can/ est une bibliothèque pour l'analyse et la construction de messages CAN des fichiers DBCopendbc/car/ est une bibliothèque de haut niveau pour l'interfaçage avec les voitures à l'aide de Python Ce guide couvre tout, de l'ajout de support à une nouvelle voiture jusqu'à l'amélioration des voitures existantes (par exemple, l'ajout de contrôle longitudinal ou d'analyse radar). Si des voitures similaires à la vôtre sont déjà compatibles, la plupart de ces travaux sont probablement déjà faits pour vous.
À sa base, un port de voiture contrôlera la direction sur une voiture. Un port de voiture "complet" aura tous: contrôle latéral, contrôle longitudinal, bon réglage pour l'analyse radar latérale et longitudinale (si équipée), l'empreinte digitale floue, etc. Les nouveaux documents de soutien automobile communiquent clairement le niveau de soutien de chaque voiture.
La première étape consiste à se connecter à la voiture avec une virgule 3X et un harnais de voiture. Le harnais de voiture vous permet de vous connecter à deux bus de boîte différents et de diviser l'un de ces bus pour envoyer nos propres messages d'actionnement.
Si vous avez de la chance, un harnais compatible avec votre voiture sera déjà conçu et vendu sur comma.ai/shop. Si vous n'êtes pas aussi chanceux, commencez par un "harnais de développeur" de Comma.ai/shop et serrez le connecteur dont vous avez besoin.
Selon la majeure partie de cette structure de base sera déjà en place.
L'entière d'un port de voiture vit dans opendbc/car/<brand>/ :
carstate.py : analyse les informations pertinentes du flux CAN à l'aide du fichier DBC de la voiturecarcontroller.py : les sorties peuvent les messages pour contrôler la voiture<brand>can.py : minces aides python autour du fichier DBC pour construire des messages Canfingerprints.py : base de données des versions du micrologiciel ECU pour identifier les modèles de voituresinterface.py : classe de haut niveau pour interfaçage avec la voitureradar_interface.py : analyse le radarvalues.py : énumère les voitures soutenues de la marqueCommencez par enregistrer un itinéraire avec beaucoup d'événements intéressants: activez les LKAS et ACC, tournez le volant des deux extrêmes, etc. Ensuite, chargez cette route à Cabana.
Utilisez le rapport des manœuvres longitudinales pour évaluer le contrôle longitudinal de votre voiture et régler.
Tout le développement OpenDBC est coordonné sur GitHub et Discord. Consultez le canal #dev-opendbc-cars et la section Vehicle Specific .
À court terme
pip install opendbcÀ plus long terme
Les contributions à tout ici sont les bienvenues.
Chaque port de voiture est éligible pour une prime:
En plus des primes standard, nous offrons également des primes de valeur plus élevée pour les voitures plus populaires. Voir ceux à Comma.ai / Bountties.
Comment utiliser cela? Une virgule 3X est conçue sur mesure pour être le meilleur moyen d'exécuter et de développer OpenDBC et OpenPilot.
Quelles voitures sont soutenues? Voir la liste des voitures prises en charge.
Puis-je ajouter un support pour ma voiture? Oui, la plupart du soutien automobile provient de la communauté. Lisez le guide ici.
Quelles voitures peuvent être soutenues? Toute voiture avec LKAS et ACC. Plus d'informations ici.
Comment cela marche-t-il? En bref, nous avons conçu du matériel pour remplacer les fonctionnalités de croisière de maintien et d'adaptation intégrées de votre voiture. Voir cette conversation pour une explication approfondie.
Y a-t-il une chronologie ou une feuille de route pour ajouter le soutien de la voiture? Non, la plupart du soutien automobile provient de la communauté, avec des virgules faisant de la sécurité finale et de la validation de la qualité. Plus le port de voiture communautaire est complet et plus la voiture est populaire, plus nous avons de chances de le récupérer comme le prochain à valider.
La virgule recrute des ingénieurs pour travailler sur OpenDBC et OpenPilot. Nous aimons l'embauche de contributeurs.