OpendBC是您汽车的Python API。
控制气体,制动,转向等。阅读速度,转向角度等。
自2016年以来,大多数汽车都可以通过LKAS和ACC进行电子操作转向,燃气和制动器。该项目的目的是支持控制每个汽车的转向,气体和制动器。
虽然主要的重点是支持OpenPiLot的ADAS界面,但我们也有兴趣阅读和编写尽可能多的内容(EV充电状态,锁定/解锁门等),这样我们就可以构建有史以来最好的车辆管理应用程序。
此读数和受支持的汽车列表都是OPENDBC项目的所有文档。您需要知道的所有使用,贡献和扩展OpenDBC都在这些文档中。
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/包含可以从汽车中读取状态并控制转向,气体和制动器的小示例程序。 examples/joystick.py允许您用操纵杆控制汽车。
opendbc/dbc/是DBC文件的存储库opendbc/can/是一个用于解析和构建CAN的库中的DBC文件消息opendbc/car/是一个高级库,用于使用Python与汽车接口本指南涵盖了从增加支持到新车一直到改善现有汽车的所有内容(例如增加纵向控制或雷达解析)。如果与您的类似汽车已经兼容,那么这项工作的大部分可能已经为您完成。
最基本的汽车端口将控制汽车的转向。 “完整”的汽车端口将具有所有:横向控制,纵向控制,侧面和纵向的良好调整,雷达解析(如果配备),模糊指纹等。新的汽车支持文档将清楚地传达每辆车的支撑级别。
第一步是用逗号3倍和汽车安全带连接到汽车。汽车安全带可让您连接到两辆不同的罐头公共汽车,并拆分其中的一辆公共汽车来发送我们自己的驱动信息。
如果幸运的话,与您的汽车兼容的安全带将已经在Comma.ai/Shop上设计和出售。如果您不那么幸运,请从Comma.ai/Shop中的“开发人员安全带”开始,然后对所需的任何连接器进行压接。
取决于大多数基本结构已经到位。
汽车端口的整体生活在opendbc/car/<brand>/ :
carstate.py :使用汽车的DBC文件从CAN流中解析相关信息carcontroller.py :输出可以消息以控制汽车<brand>can.py文件周围的Thin Python帮助者要构建CAN消息fingerprints.py :用于识别汽车型号的ECU固件版本的数据库interface.py :与汽车接口的高级课程radar_interface.py :解析雷达values.py :列举品牌支持的汽车首先记录一条带有许多有趣事件的路线:启用LKAS和ACC,将方向盘旋转两个极端等。然后,在小屋中加载该路线。
使用纵向演习报告来评估您的汽车的纵向控制并调整它。
所有OPENDBC开发都在GitHub和Discord上进行了协调。查看#dev-opendbc-cars频道和Vehicle Specific部分。
短期
pip install opendbc长期
欢迎对这里的任何事情的贡献。
每个汽车港口都有资格获得赏金:
除了标准赏金外,我们还为更受欢迎的汽车提供更高的价值赏金。在逗号上查看那些。
我该如何使用?定制逗号3X是运行和开发OpenDBC和OpenPiLot的最佳方法。
支持哪些汽车?请参阅支持的汽车列表。
我可以增加对我的汽车的支持吗?是的,大多数汽车支持来自社区。在此处阅读指南。
可以支持哪些汽车?任何带有LKAS和ACC的汽车。更多信息在这里。
这是如何运作的?简而言之,我们设计了硬件,以取代您的汽车内置车道保持和自适应巡航功能。请参阅此谈话,以了解深入的解释。
是否有时间表或路线图来增加汽车支撑?不,大多数汽车支持来自社区,逗号进行最终的安全性和质量验证。社区汽车港口越完整,汽车越受欢迎,我们就越有可能将其作为验证的下一个验证。
逗号正在招聘工程师开发OpenDBC和OpenPiLot。我们喜欢雇用贡献者。