Pylot: A Modular Platform for Exploring Latency-Accuracy Tradeoffs in Autonomous Vehicles
저자: Ionel Gog, Sukrit Kalra, Peter Schafhalter, Matthew A. Wright, Joseph E. Gonzalez, Ion Stoica · ICRA 2021
라이선스
- 오픈 액세스
- 논문: CC BY 4.0
아래 내용은 모두 논문의 라이선스(CC BY 4.0)에 따라 논문 전문을 바탕으로 하며, 그림에는 저자를 표기했습니다.
요약
데이터플로 런타임 위의 모듈식·결정론적 AV 파이프라인: 검출기, 추적기, 예측기, 플래너를 교체하면서 그 실행 시간이 CARLA나 실제 차량의 엔드투엔드 주행에 어떤 영향을 주는지 볼 수 있다.
중요한 이유
주행 스택이나 모바일 로봇 스택을 만드는 팀은 새 검출기나 플래너를 완전한 파이프라인 안에서 시험하고, 오프라인 정확도만이 아니라 충돌과 승차감을 측정할 수 있다. 논문은 최선의 구성 요소 선택이 주행 속도와 시나리오에 따라 달라진다는 것을 보여 주며, 이는 구성 요소를 맥락 안에서 평가해야 한다는 근거가 된다.
문제
자율주행차 구성 요소는 보통 평균 정밀도 같은 오프라인 지표로 평가되는데, 이 지표는 실행 시간을 무시한다. 느리지만 정확한 모델이 차량을 덜 안전하게 만들 수 있는데도 그렇다. Autoware와 Apollo 같은 기존 오픈 스택은 사실적인 카메라가 없는 제한적인 시뮬레이터 인터페이스만 제공하며, 발행-구독 설계 때문에 주행 시나리오를 결정론적으로 재현하기 어렵다.
제안 방법
Pylot은 전체 파이프라인(검출, 추적, 예측, 계획, 제어)을 워터마크가 있는 타임스탬프 메시지를 주고받는 연산자들의 데이터플로 그래프로 구성하고, 저자들의 ERDOS 시스템 위에서 실행한다. 이로써 실행이 결정론적이 되고, 실행 시간이 다른 구성 요소를 재조정 없이 교체할 수 있다. 구성 요소마다 여러 참조 구현과 CARLA의 정답 기반 '완벽한' 버전을 함께 제공하며, CARLA를 200 Hz 이상으로 동기 실행하면서 각 제어 명령을 측정된 파이프라인 실행 시간만큼 지연시키는 의사 비동기 모드를 갖추고 있다. ROS 심(shim) 계층을 통해 같은 파이프라인으로 실제 차량을 주행할 수 있다.
핵심 통찰
- 적시 정확도(timely accuracy)는 모듈 출력을 입력이 캡처된 시점이 아니라 출력이 준비된 시점의 세계와 비교해 채점하며, 움직이는 장면에서 실행 시간이 정확도를 얼마나 깎아 먹는지 드러낸다.
- 최선의 검출기나 추적기는 상황에 따라 다르다. 고속에서는 빠르지만 정확도가 낮은 검출기가 느리지만 정확도가 높은 검출기보다 낫고, SORT, DeepSORT, DaSiamRPN은 각각 다른 상황에 맞는다.
- 긴급 회피 시나리오에서 실행 시간이 짧은 플래너 구성이 충돌을 더 자주 피했으며, Frenet Optimal Trajectory 플래너는 RRT*보다 승차감이 부드러웠지만 피한 충돌 수는 더 적었다.
- 워터마크가 있는 데이터플로 모델은 파이프라인을 Kahn Process Network로 환원하며, 이는 발행-구독 시스템에는 없는 디버깅용 결정론적 재현을 가능하게 한다.
주요 결과
- 실행 시간 10 ms만으로 완벽한 의미론적 분할 구성 요소의 평균 적시 mIoU가 약 0.75로 떨어지며, 이는 Cityscapes 상위 세 제출물의 mIoU보다 낮다.
- 완벽한 보행자 검출기의 평균 적시 AP50은 실행 시간 35 ms에서 절반이 된다.
- 실행 시간 20 ms에서 중앙값 적시 mIoU는 40 m/s일 때 10 m/s일 때보다 28% 낮고, 중앙값 적시 AP50은 10 m/s에서 1.0이던 것이 40 m/s에서 0으로 떨어진다.
- 가려진 보행자 시나리오(Table I)에서 느린 FOT(P99 550 ms), RRT(P99 76 ms), Hybrid A(P99 760 ms) 구성은 16~22 m/s의 모든 목표 속도에서 실패했으며, 각 플래너의 빠른 구성은 16 m/s에서 충돌을 피했다.
- 파이프라인을 CARLA에서 Lincoln MKZ 시험 차량으로 이식하는 데 Python 코드 434줄이 들었다. Pylot 자체는 약 28,000줄의 Python이다.
- 기반 데이터플로 시스템은 통신 지연 시간에서 ROS보다 30% 낫다고 보고되며, Pylot은 CARLA Autonomous Driving Challenge HD 지도 트랙의 1위 제출물로 기술된다.
한계
- 주행에 대한 강화학습 접근은 아직 지원되지 않으며, OpenAI Gym 인터페이스는 향후 과제로 언급된다.
- 엔드투엔드 플래너 비교는 인식 모델 대신 정답 인식을 사용하며, 긴급 시나리오도 하나뿐이다.
- 적시 정확도 연구는 실행 시간을 에뮬레이션한 완벽한 인식 구성 요소를 사용하며, 루프 안에서 실제로 실행되는 모델의 실행 시간을 쓰지 않는다.
- 실제 차량 배포는 기성 모델을 사용한 이식으로 기술되며, 실제 차량에서의 주행 지표는 보고되지 않았다.
분야에 미친 영향
이 논문은 IEEE ICRA 2021 Best Paper Award on Unmanned Aerial Vehicles 최종 후보였으며 인용 수는 107회이다. Pylot은 오픈소스 코드로 공개되어 있으며, 참조 구성 요소와 정답 기반 구성 요소 구현, 그리고 NHTSA 기반 CARLA 테스트 시나리오 모음을 포함한다.
초록
우리는 자율주행차(AV) 연구 및 개발을 위한 플랫폼인 Pylot을 소개한다. Pylot은 연구자가 자신의 모델과 알고리즘의 지연 시간과 정확도가 AV의 엔드투엔드 주행 거동에 미치는 영향을 연구할 수 있도록 하는 것을 목표로 만들어졌다. 이는 고성능 데이터플로 시스템이 가능하게 하는 모듈식 구조를 통해 달성되며, 이 시스템은 AV 소프트웨어 파이프라인 구성 요소(객체 검출기, 모션 플래너 등)를 타임스탬프가 찍힌 메시지로 데이터 스트림 위에서 통신하는 연산자들의 데이터플로 그래프로 표현한다. Pylot은 CARLA 같은 대표적인 AV 시뮬레이터와 쉽게 연동되며, 최소한의 코드 변경으로 실제 차량에 쉽게 배포할 수 있다. 단일 구성 요소를 평가하기 위해 전체 파이프라인을 개발해야 하는 부담을 줄이기 위해, Pylot은 AV 파이프라인의 여러 구성 요소에 대해 최첨단 참조 구현을 여러 개 제공한다. 이러한 참조 구현을 사용하면 Pylot 기반 AV 파이프라인은 실제 차량을 주행할 수 있으며, CARLA Autonomous Driving Challenge에서 높은 점수를 얻는다. 또한 Pylot이 가능하게 한 여러 사례 연구를 제시하며, 여기에는 상황 의존적인 구성 요소와 구성 요소별 시간 할당이 필요하다는 근거가 포함된다. Pylot은 오픈소스이며 코드는 https://github.com/erdos-project/pylot 에서 제공된다.
링크
- arXiv 2104.07830: https://arxiv.org/abs/2104.07830
- DOI 10.1109/ICRA48506.2021.9561747: https://doi.org/10.1109/ICRA48506.2021.9561747
- PDF: https://arxiv.org/pdf/2104.07830v1
- 코드: https://github.com/erdos-project/pylot