commaai/opendbc

a Python API for your car

해결하는 문제

opendbc는 다양한 최신 차량과 인터페이스할 수 있는 표준화된 Python API를 제공합니다. 파편화되고 독점적인 차량 통신 프로토콜 문제를 해결하여, 개발자가 다양한 자동차 브랜드 및 모델에 걸쳐 차량 상태(속도 및 조향각 등)를 읽고 차량 액추에이터(가속, 브레이크 및 조향)를 제어할 수 있도록 합니다.

작동 원리

이 프로젝트는 차량의 전자 제어 장치(ECU)를 연결하는 내부 네트워크인 차량의 CAN 버스와 상호 작용하여 작동합니다. DBC 파일(CAN 데이터베이스 파일)을 사용하여 원시 바이너리 CAN 메시지를 읽을 수 있는 데이터로 변환하거나 그 반대의 작업을 수행합니다. 아키텍처는 다음과 같이 구성됩니다:

  • DBC Repository: 다양한 차량에 대한 메시지를 정의하는 데이터베이스 파일 모음.
  • CAN Library: 해당 DBC 파일을 기반으로 CAN 메시지를 파싱하고 구축하기 위한 도구.
  • Car Interface: 하드웨어 및 프로토콜 세부 사항을 사용 가능한 API로 추상화하는 고수준 Python 라이브러리.
  • Safety Model: 위험한 작동 명령을 방지하기 위해 안전 제약 조건을 강제하는 펌웨어.

대상 사용자

주로 openpilot과 같은 첨단 운전자 보조 시스템(ADAS)을 구축하는 개발자뿐만 아니라, 차량 관리 앱 또는 자율 주행 연구에 관심이 있는 연구자 및 엔지니어를 위해 설계되었습니다.

주요 특징

  • 광범위한 호환성: 전자적으로 제어 가능한 조향, 가속 및 브레이크(LKAS 및 ACC)를 갖춘 2016년 이후 생산된 모든 차량을 대상으로 합니다.
  • 완전한 제어: 횡방향(조향) 및 종방향(가속/브레이크) 제어를 모두 지원합니다.
  • 역공학 도구: Cabana와 같은 도구와 통합되어 개발자가 새로운 차량 포트를 위해 독점적인 CAN 메시지를 디코딩하는 것을 돕습니다.
  • 엄격한 안전성: 차량 안전을 보장하기 위해 엄격한 코드 표준(MISRA C:2012 포함) 및 높은 테스트 커버리지를 갖춘 안전 펌웨어 모델을 채택합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트