OpenDBC는 자동차의 Python API입니다.
가스, 브레이크, 스티어링 등을 제어하십시오. 속도, 조향 각도 등을 읽으십시오.
2016 년 이후 대부분의 자동차에는 LKA 및 ACC 덕분에 전자식으로 나타날 수있는 조향, 가스 및 브레이크가 있습니다. 이 프로젝트의 목표는 해당 자동차의 각 단일 하나의 스티어링, 가스 및 브레이크 제어를 지원하는 것입니다.
기본 초점은 OpenPilot의 ADAS 인터페이스를 지원하는 데 중점을두고 있지만, 우리는 최대한 많은 차량 관리 앱을 구축 할 수 있도록 가능한 한 많은 것을 읽고 쓰고 쓰는 데 관심이 있습니다.
이 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/ 는 DBC 파일의 저장소입니다opendbc/can/ parsing and building을위한 라이브러리 DBC 파일의 메시지 캔 메시지opendbc/car/ Python을 사용하여 자동차와 인터페이스하는 고급 라이브러리입니다. 이 가이드는 지원 추가부터 새 차량에 대한 모든 것을 포함합니다 (예 : 세로 제어 또는 레이더 구문 분석 추가). 귀하와 유사한 자동차가 이미 호환되는 경우,이 작업의 대부분은 이미 귀하를 위해 이루어 졌을 것입니다.
가장 기본적으로 자동차 포트는 자동차의 스티어링을 제어합니다. "완전한"자동차 포트는 측면 제어, 세로 제어, 측면 및 세로, 레이더 구문 분석 (장착 된 경우), 퍼지 지문 등을위한 양호한 튜닝 등을 모두 갖습니다. 새로운 자동차 지원 문서는 각 자동차의 지원 수준을 명확하게 전달합니다.
첫 번째 단계는 쉼표 3x와 자동차 하네스로 자동차에 연결하는 것입니다. 자동차 하네스는 두 개의 다른 캔 버스에 연결하여 버스 중 하나를 분할하여 우리 자신의 작동 메시지를 보냅니다.
운이 좋으면 자동차와 호환되는 하네스는 이미 Comma.ai/shop에서 설계 및 판매됩니다. 운이 좋지 않으면 Comma.ai/shop의 "개발자 하네스"로 시작하고 필요한 커넥터를 크림프하십시오.
에 따라이 기본 구조의 대부분은 이미 제자리에 있습니다.
자동차 포트의 Entirery는 opendbc/car/<brand>/ :
carstate.py : 자동차의 DBC 파일을 사용하여 CAN 스트림에서 관련 정보를 구문 분석합니다.carcontroller.py : 출력은 자동차를 제어하기위한 메시지를 할 수 있습니다<brand>can.py : DBC 파일 주위에 얇은 파이썬 도우미가 캔 메시지를 작성합니다.fingerprints.py : 자동차 모델 식별을위한 ECU 펌웨어 버전의 데이터베이스interface.py : 자동차와의 인터페이스를위한 고급 클래스radar_interface.py : 레이더를 구문 분석합니다values.py : 브랜드의 지원 자동차를 열거합니다LKA 및 ACC 활성화를 활성화하고 극한의 스티어링 휠을 전환 한 다음 Cabana에서 그 경로를로드하여 시작하십시오.
세로 기동 보고서를 사용하여 자동차의 종단 제어를 평가하고 조정하십시오.
모든 OPENDBC 개발은 GitHub 및 Discord에서 조정됩니다. #dev-opendbc-cars 채널 및 Vehicle Specific 섹션을 확인하십시오.
단기
pip install opendbc장기
여기에있는 것에 대한 기여는 환영합니다.
모든 자동차 포트는 현상금을받을 자격이 있습니다.
표준 바운티 외에도 인기있는 자동차에 대한 더 높은 가치 바운티도 제공합니다. comma.ai/bounties에서 참조하십시오.
이것을 어떻게 사용합니까? Comma 3x는 OpenDBC 및 OpenPilot을 실행하고 개발하는 가장 좋은 방법으로 맞춤 설계되었습니다.
어떤 차가 지원됩니까? 지원되는 자동차 목록을 참조하십시오.
내 차에 대한 지원을 추가 할 수 있습니까? 예, 대부분의 자동차 지원은 지역 사회에서 비롯됩니다. 여기에 가이드를 읽으십시오.
어떤 차를 지원할 수 있습니까? LKA와 ACC가있는 모든 차. 더 많은 정보는 여기에 있습니다.
이것은 어떻게 작동합니까? 요컨대, 우리는 자동차의 내장 차선 유지 및 적응 형 크루즈 기능을 교체하도록 하드웨어를 설계했습니다. 심층적 인 설명은이 대화를 참조하십시오.
자동차 지원을 추가하기위한 타임 라인이나 로드맵이 있습니까? 아니요, 대부분의 자동차 지원은 커뮤니티에서 제공되며 Comma는 최종 안전 및 품질 검증을 수행합니다. 커뮤니티 카 포트가 더 완전하고 차가 인기가 높을수록 차가 더 인기가 높을수록 다음 번에 그것을 선택할 가능성이 높아집니다.
Comma는 OpenDBC 및 OpenPilot에서 작업하기 위해 엔지니어를 고용하고 있습니다. 우리는 기고자를 고용하는 것을 좋아합니다.