TOPST-D3-G 보드 사용기 - OpenPilot 포팅하기(1)
오픈파일럿(OpenPilot)이란? — 자율주행 오픈소스 플랫폼
오픈파일럿(OpenPilot)은 전 세계 개발자 커뮤니티에서 활발히 발전되고 있는 오픈소스 기반의 자율주행 소프트웨어 플랫폼입니다. 일론 머스크의 테슬라 오토파일럿에 자극받아 Comma.ai라는 회사에서 시작된 이 프로젝트는, 상용차량의 ACC(어댑티브 크루즈 컨트롤), LKAS(차선 유지 보조) 기능을 대체할 수 있을 정도로 높은 수준의 주행 제어 알고리즘을 제공합니다.
OpenPilot은 차량의 CAN 통신을 통해 제어신호를 주고받으며, 다음과 같은 기능을 제공합니다:
- 차간 거리 유지 (ACC)
- 차선 중심 주행 (LKAS)
- 자동 차선 변경 (일부 지원)
- 신호등/정지선 인식 (내장된 딥러닝 모델 기반)
- 드라이버 모니터링 (카메라 기반 졸음/부주의 감지)
동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.
Comma2 Clone(LePro3) 기기를 이용한 차로 유지기능(2017 KIA K7 HEV차량)
오픈파일럿의 아키텍처 개요
OpenPilot은 일반적으로 Comma.ai사의 자체적인 플랫폼에서 동작하지만, 여러 능력있는 돈쓰기 싫어하는 개발자들에 의해서 여라가지 플랫폼에서 동작할 수 있도록 수정되었습니다. 특히 Comma2 모델의 경우, 중국산 저가 스마트폰(르프로3, 원플러스 등)에서 잘 동작하고, 필자의 경우에도 르프로3 스마트폰에 OpenPilot을 올려서 차량에서 사용중입니다. 리눅스 기반의 SBC에서 구동시키려는 시도들이 많이 있었으며, 라즈베리파이(테슬라 only), 젯슨 나노보드등에서도 동작 합니다.
내부 구조는 다음과 같은 모듈(데몬)로 구성됩니다:
- control – PID 기반 제어 알고리즘 수행
- camera – 전방 카메라 영상 처리 및 객체 감지
- radar – 레이더 정보 통합 (차량에 따라 생략 가능)
- car – 차량 별 인터페이스 정의 (CAN 프로토콜 커스터마이징)
- ui – 사용자 인터페이스 (디스플레이용)
이 모든 기능은 **Python + C++ 기반**으로 개발되어 있으며, 일부 **ONNX 런타임**, **OpenCL**, **GStreamer**, **QT GUI** 등의 기술도 활용됩니다.
오픈파일럿을 돌리기 위한 최소 하드웨어 요구사항
OpenPilot을 구동하기 위해서는 다음과 같은 하드웨어 조건이 필요합니다:
- 고성능 ARM 프로세서 (A72 또는 동급)
- USB 또는 MIPI-CSI 기반의 카메라 입력
- USB 포트(Panda 장치와의 통신용도)
- Wi-Fi 또는 LTE(option)
- 전방 영상 처리용 GPU 또는 NPU
TOPST-D3-G는 이러한 요구사항을 대부분 충족하기 때문에, 오픈파일럿 포팅의 대상 보드로 적합해 보입니다.
성공한다면 차에 달려있는 개복치같은 르프로3를 대체할수도!?