OpendBC adalah API Python untuk mobil Anda.
Kontrol gas, rem, kemudi, dan banyak lagi. Baca kecepatan, sudut kemudi, dan banyak lagi.
Sebagian besar mobil sejak 2016 memiliki kemudi, gas, dan rem secara elektronik berkat LKA dan ACC. Tujuan dari proyek ini adalah untuk mendukung mengendalikan kemudi, gas, dan rem pada setiap mobil.
Sementara fokus utama adalah mendukung antarmuka ADAS untuk OpenPilot, kami juga tertarik untuk membaca dan menulis sebanyak mungkin hal (status biaya EV, pintu kunci/membuka kunci, dll) sehingga kami dapat membangun aplikasi manajemen kendaraan terbaik yang pernah ada.
Daftar ReadMe dan Mobil yang Didukung ini adalah semua dokumen untuk proyek OPENDBC. Semua yang perlu Anda ketahui untuk digunakan, berkontribusi, dan memperluas OpendBC ada di dokumen ini.
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/ berisi contoh kecil program yang dapat membaca keadaan dari mobil dan mengendalikan kemudi, gas, dan rem. examples/joystick.py memungkinkan Anda untuk mengendalikan mobil dengan joystick.
opendbc/dbc/ adalah repositori file DBCopendbc/can/ ADALAH PERPUSTAKAAN UNTUK PARSING DAN BUILD CAN Pesan dari File DBCopendbc/car/ adalah perpustakaan tingkat tinggi untuk berinteraksi dengan mobil menggunakan python Panduan ini mencakup segala sesuatu mulai dari menambahkan dukungan ke mobil baru hingga meningkatkan mobil yang ada (misalnya menambahkan kontrol longitudinal atau penguraian radar). Jika mobil serupa dengan Anda sudah kompatibel, sebagian besar pekerjaan ini kemungkinan sudah dilakukan untuk Anda.
Pada dasarnya, pelabuhan mobil akan mengontrol kemudi pada mobil. Pelabuhan mobil "lengkap" akan memiliki semua: kontrol lateral, kontrol longitudinal, tuning yang baik untuk penguraian lateral dan longitudinal, radar (jika dilengkapi), sidik jari fuzzy, dan banyak lagi. Dokumen dukungan mobil baru akan dengan jelas mengomunikasikan tingkat dukungan masing -masing mobil.
Langkah pertama adalah terhubung ke mobil dengan koma 3x dan harness mobil. Harness mobil membuat Anda terhubung ke dua bus kaleng yang berbeda dan membagi salah satu bus itu untuk mengirim pesan aktuasi kami sendiri.
Jika Anda beruntung, harness yang kompatibel dengan mobil Anda sudah dirancang dan dijual dengan koma.ai/shop. Jika Anda tidak beruntung, mulailah dengan "harness pengembang" dari comma.ai/shop dan crimp pada konektor apa pun yang Anda butuhkan.
Bergantung pada, sebagian besar struktur dasar ini sudah ada.
Entirery of a Car Port tinggal di opendbc/car/<brand>/ :
carstate.py : Mengurangi informasi yang relevan dari aliran dapat menggunakan file DBC mobilcarcontroller.py : Output dapat pesan untuk mengontrol mobil<brand>can.py : Pembantu Python tipis di sekitar file DBC untuk membangun pesanfingerprints.py : database versi firmware ECU untuk mengidentifikasi model mobilinterface.py : kelas tingkat tinggi untuk berinteraksi dengan mobilradar_interface.py : Parses keluar radarvalues.py : Menyebarkan mobil yang didukung merekMulailah dengan merekam rute dengan banyak acara menarik: Aktifkan LKA dan ACC, putar setir keduanya ekstrem, dll. Lalu, muatkan rute di Cabana.
Gunakan Laporan Manuver Longitudinal untuk mengevaluasi kontrol longitudinal mobil Anda dan menyetelnya.
Semua pengembangan OpenDBC dikoordinasikan pada github dan perselisihan. Lihatlah saluran #dev-opendbc-cars dan bagian Vehicle Specific .
Jangka pendek
pip install opendbcJangka panjang
Kontribusi terhadap apa pun di sini dipersilakan.
Setiap pelabuhan mobil memenuhi syarat untuk hadiah:
Selain hadiah standar, kami juga menawarkan hadiah bernilai lebih tinggi untuk mobil yang lebih populer. Lihat yang ada di comma.ai/bountties.
Bagaimana cara menggunakan ini? Comma 3X dirancang khusus untuk menjadi cara terbaik untuk menjalankan dan mengembangkan OpenDBC dan OpenPilot.
Mobil mana yang didukung? Lihat daftar mobil yang didukung.
Bisakah saya menambahkan dukungan untuk mobil saya? Ya, sebagian besar dukungan mobil berasal dari komunitas. Baca panduannya di sini.
Mobil mana yang dapat didukung? Mobil apa pun dengan LKA dan Acc. Info lebih lanjut di sini.
Bagaimana cara kerjanya? Singkatnya, kami merancang perangkat keras untuk menggantikan fitur pesiar jalur dan adaptif mobil Anda. Lihat pembicaraan ini untuk penjelasan mendalam.
Apakah ada garis waktu atau peta jalan untuk menambahkan dukungan mobil? Tidak, sebagian besar dukungan mobil berasal dari masyarakat, dengan koma melakukan validasi keamanan dan kualitas akhir. Semakin lengkap pelabuhan mobil komunitas dan semakin populer mobilnya, semakin besar kemungkinan kita untuk mengambilnya sebagai yang berikutnya untuk divalidasi.
Comma sedang merekrut insinyur untuk bekerja di OpendBC dan OpenPilot. Kami suka mempekerjakan kontributor.