OpendBC เป็น Python API สำหรับรถของคุณ
ควบคุมก๊าซเบรกพวงมาลัยและอื่น ๆ อ่านความเร็วมุมพวงมาลัยและอื่น ๆ
รถยนต์ส่วนใหญ่ตั้งแต่ปี 2559 มีพวงมาลัยก๊าซและเบรกทางอิเล็กทรอนิกส์ด้วย LKAS และ ACC เป้าหมายของโครงการนี้คือการสนับสนุนการควบคุมพวงมาลัยก๊าซและเบรกในรถทุกคัน
ในขณะที่จุดสนใจหลักคือการสนับสนุนอินเทอร์เฟซ ADAS สำหรับ OpenPilot แต่เราก็สนใจที่จะอ่านและเขียนหลายสิ่งให้มากที่สุดเท่าที่จะทำได้
รายการ README และรายการรถยนต์ที่รองรับนี้เป็นเอกสารทั้งหมดสำหรับโครงการ 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/ เป็นที่เก็บไฟล์ DBCopendbc/can/ เป็นไลบรารีสำหรับการแยกวิเคราะห์และการสร้างข้อความสามารถจากไฟล์ DBCopendbc/car/ เป็นห้องสมุดระดับสูงสำหรับการเชื่อมต่อกับรถยนต์โดยใช้ Python คู่มือนี้ครอบคลุมทุกอย่างตั้งแต่การเพิ่มการรองรับรถใหม่ไปจนถึงการปรับปรุงรถยนต์ที่มีอยู่ (เช่นการเพิ่มการควบคุมระยะยาวหรือการแยกเรดาร์) หากรถยนต์ที่คล้ายกันกับคุณเข้ากันได้แล้วงานนี้ส่วนใหญ่น่าจะทำเพื่อคุณแล้ว
ที่พื้นฐานที่สุดพอร์ตรถยนต์จะควบคุมพวงมาลัยบนรถ พอร์ตรถยนต์ "สมบูรณ์" จะมีทั้งหมด: การควบคุมด้านข้าง, การควบคุมตามยาว, การปรับแต่งที่ดีสำหรับทั้งด้านข้างและตามยาว, การแยกเรดาร์การแยกเรดาร์ (ถ้าติดตั้ง), ลายนิ้วมือที่คลุมเครือและอื่น ๆ เอกสารสนับสนุนรถใหม่จะสื่อสารระดับการสนับสนุนของรถแต่ละคันอย่างชัดเจน
ขั้นตอนแรกคือการเชื่อมต่อกับรถด้วยเครื่องหมายจุลภาค 3x และสายรัดรถ สายรัดรถช่วยให้คุณเชื่อมต่อกับรถบัสสองคันที่แตกต่างกันและแยกรถโดยสารคันใดคันหนึ่งเพื่อส่งข้อความการกระตุ้นของเราเอง
หากคุณโชคดีชุดสายรัดที่เข้ากันได้กับรถของคุณจะได้รับการออกแบบและขายใน comma.ai/shop แล้ว หากคุณไม่โชคดีให้เริ่มต้นด้วย "สายรัดนักพัฒนา" จาก comma.ai/shop และ crimp ในสิ่งที่คุณต้องการ
ขึ้นอยู่กับโครงสร้างพื้นฐานส่วนใหญ่นี้จะเกิดขึ้นแล้ว
พอร์ตรถยนต์ทั้งหมดอาศัยอยู่ใน opendbc/car/<brand>/ :
carstate.py : แยกข้อมูลที่เกี่ยวข้องออกจากสตรีม CAN โดยใช้ไฟล์ DBC ของรถยนต์carcontroller.py : เอาต์พุตสามารถส่งข้อความเพื่อควบคุมรถ<brand>can.py : ผู้ช่วย Python บาง ๆ รอบไฟล์ DBC เพื่อสร้างข้อความ Can Canfingerprints.py : ฐานข้อมูลรุ่นเฟิร์มแวร์ ECU สำหรับการระบุรุ่นรถยนต์interface.py : คลาสระดับสูงสำหรับการเชื่อมต่อกับรถradar_interface.py : วิเคราะห์เรดาร์ออกvalues.py : ระบุรถยนต์ที่รองรับของแบรนด์เริ่มต้นด้วยการบันทึกเส้นทางที่มีเหตุการณ์ที่น่าสนใจมากมาย: เปิดใช้งาน LKAS และ ACC หมุนพวงมาลัยทั้งสองสุดขั้ว ฯลฯ จากนั้นโหลดเส้นทางนั้นในคาบาน่า
ใช้รายงานการซ้อมรบตามยาวเพื่อประเมินการควบคุมระยะยาวของรถของคุณและปรับแต่ง
การพัฒนา OpENDBC ทั้งหมดได้รับการประสานงานกับ GitHub และ Discord ตรวจสอบช่อง #dev-opendbc-cars และส่วน Vehicle Specific
ระยะสั้น
pip install opendbcระยะยาว
ยินดีต้อนรับสิ่งใดก็ตามที่นี่ยินดีต้อนรับ
พอร์ตรถยนต์ทุกคันมีสิทธิ์ได้รับเงินรางวัล:
นอกเหนือจากรางวัลมาตรฐานแล้วเรายังนำเสนอค่าเงินรางวัลที่สูงขึ้นสำหรับรถยนต์ยอดนิยม ดูที่ comma.ai/bounties
ฉันจะใช้สิ่งนี้ได้อย่างไร? เครื่องหมายจุลภาค 3x ได้รับการออกแบบให้เป็นวิธีที่ดีที่สุดในการเรียกใช้และพัฒนา OpendBC และ OpenPilot
รองรับรถคันไหน? ดูรายการรถยนต์ที่รองรับ
ฉันสามารถเพิ่มการสนับสนุนสำหรับรถของฉันได้หรือไม่? ใช่การสนับสนุนรถยนต์ส่วนใหญ่มาจากชุมชน อ่านคำแนะนำที่นี่
สามารถรองรับรถคันไหนได้? รถใด ๆ ที่มี LKAS และ ACC ข้อมูลเพิ่มเติมที่นี่
งานนี้ทำงานอย่างไร? ในระยะสั้นเราออกแบบฮาร์ดแวร์เพื่อแทนที่เลนในตัวของคุณในตัวและคุณสมบัติการล่องเรือที่ปรับตัวได้ ดูการพูดคุยนี้สำหรับคำอธิบายเชิงลึก
มีไทม์ไลน์หรือแผนงานสำหรับการเพิ่มการรองรับรถยนต์หรือไม่? ไม่การสนับสนุนรถยนต์ส่วนใหญ่มาจากชุมชนโดยมีเครื่องหมายจุลภาคทำการตรวจสอบความปลอดภัยขั้นสุดท้ายและการตรวจสอบคุณภาพ ยิ่งมีพอร์ตรถยนต์ชุมชนที่สมบูรณ์ยิ่งขึ้นและยิ่งรถเป็นที่นิยมมากขึ้นเท่าไหร่เราก็ยิ่งมีโอกาสมากขึ้นที่เราจะได้รับมันเป็นที่ผ่านมาเพื่อตรวจสอบ
เครื่องหมายจุลภาคกำลังจ้างวิศวกรให้ทำงานกับ OpendBC และ OpenPilot เรารักการจ้างงานผู้มีส่วนร่วม