인디애나폴리스 모터 스피드웨이를 질주하는 무인 레이싱카
인디 자율주행 챌린지 우승의 비결은 디지털 트윈과 시뮬레이션
2021년 10월의 어느 화창한 토요일, 9대의 레이싱카가 시속 240 킬로미터(시속 150 마일)에 육박하는 속도로 인디애나폴리스 모터 스피드웨이를 질주했습니다. 9대의 자동차에 운전자는 단 한 명도 없습니다.
이 자동차들은 세계 최초의 고속 자율주행 자동차 레이스인 IAC(인디 자율주행 챌린지)에 참가했던 것입니다. 전 세계 21개 대학교에서 참가한 9개 팀이 이 경주에서 맞붙었습니다. 참가팀들은 모두 동일한 하드웨어인 Dallara AV-21 레이싱카로 설계를 시작했습니다.
이탈리아의 레이싱카 제조사 Dallara가 제작한 차량의 매끈한 차체는 일반 인디 레이싱카의 그것과 다를 것이 없었습니다. 차량 안의 조향, 파워트레인, 제동 시스템도 똑같습니다. 하지만 공통점은 여기까지입니다. IAC의 자동차들은 센서(레이다, 카메라, 라이다) 및 강력한 Intel® 및 NVIDIA® 칩에서 실행되는 프로그래밍 가능 제어를 사용하여 자율주행 차량으로 개장되었습니다.
하드웨어 개조는 허용되지 않았기 때문에 각 자동차의 성능은 4km(2.5mile)의 타원형 트랙을 엄청난 속도로 안전하게 달리도록 조작하는 제어 알고리즘에 전적으로 달려 있었습니다. 결국 100만 달러의 상금은 두 랩 평균 최고 속도 218km/h(136mph)를 기록한 독일 Technische Universität München의 TUM Autonomous Motorsport 팀에게로 돌아갔습니다.
이 팀의 자율주행 레이싱은 자율주행 자동차를 개발하는 학생 팀들의 경연대회인 로보레이스에 네 명의 박사과정 학생들이 참가하면서 2017년에 시작되었습니다. TUM Autonomous Motorsport는 로보레이스가 경쟁 형식을 테스트하는 데 도움을 준 두 팀 중 한 팀이었습니다. 2020년 초에 IAC에 등록할 때는 TUM 팀이 박사과정 학생 15명과 학부생 40명으로 규모가 커졌습니다.
로보레이스와 IAC를 위해 TUM은 MATLAB® 및 Simulink®와 함께 긴밀하게 작동하도록 설계된 실시간 테스트용 최첨단 시스템을 개발하는 Speedgoat®와 팀을 이루었습니다. Speedgoat의 실시간 하드웨어와 Simulink로 차량의 제어 시스템을 설계하고 시뮬레이션하였기에 TUM 팀은 제어 소프트웨어를 자동차에 배포하기 전에 완벽하게 미세 조정할 수 있었습니다.
박사과정 학생이자 TUM Autonomous Motorsport의 팀 리더인 Alexander Wischnewski는 다음과 같이 말합니다. "고충실도 차량 동역학 모델로 만든 단일 차량 예선전부터 최대 8대의 자율주행 레이싱카가 달리는 다중 차량 시나리오에 이르는 가장 까다로운 시나리오에서 우리 소프트웨어를 훈련시킬 수 있었습니다. 자동 코드 생성 기술을 사용해서 소프트웨어를 자율주행 레이싱카에 배포했고 간편하게 타사 소프트웨어 라이브러리와 통합할 수 있었습니다."
한 치의 오차도 없는
모터 스포츠는 역사적으로 최첨단 자동차 기술의 경연장이었습니다. IAC도 예외는 아닙니다. 레이스 주최 측에서는 레이싱 이벤트를 위해 개발된 기술을 통해 빠른 속력으로 달리는 자율주행 차량의 안전성 향상을 꾀하고 있습니다.
Wischnewski의 말에 따르면 자율주행은 크게 네 부분으로 나눠집니다. 첫 번째는 자동차의 카메라와 센서를 이용하여 물체를 감지하고 주변 환경을 인식하는 부분입니다. "다른 차들이 트랙에서 어디에 있는지와 트랙 경계선을 감지하는 것입니다." 그다음은 예측입니다. 인근의 차가 무엇을 할지 예측하는 것입니다. 다음으로 자동차는 인식과 예측 데이터를 사용하여 자신의 행동을 계획합니다. 네 번째 부분은 모션 제어입니다. 행동 계획을 구체적인 제동, 스로틀, 조향 명령으로 바꾸는 것입니다.
이 네 가지 구성요소를 도로에서 주행하는 무인 자동차와 레이스 트랙에서 주행하는 무인 자동차에 대해 설계하는 일은 상당히 다른 일입니다. 예를 들어, 인디 자율주행 자동차는 보행자나 신호등을 걱정할 필요가 없지만 안전하게 급선회해야 하고 240km/h로 주행하면서 다른 레이싱카들을 피해야 합니다. 이런 안전성을 보장하려면 셀 수 없이 많은 시간을 공들여 시뮬레이션해야 합니다.
Wischnewski는 다음과 같이 말합니다. "한 치의 오차도 허용되지 않습니다. 단 하나의 고장조차도 자동차에 있어 곧 재앙을 의미하기 때문에 있어선 안 됩니다. 제대로 검증하는 것이 가장 어려운 과제죠. 수천 시간의 주행을 시뮬레이션해야 하기 때문에 소프트웨어를 변경하면 변경된 내용을 자동차에 추가하기 전에 아주 철저하게 테스트할 수 있습니다."
경쟁은 자동차들이 트랙 연습을 위해 인디애나폴리스 스피드웨이에 도착하기 몇 달 전부터 시작되었습니다. 팀들은 차 한 대로 빠르게 트랙을 도는 수준부터 점점 상대를 늘려 최대 8대의 차량이 경쟁하는 최종 시뮬레이션 레이스까지 난도를 높여가면서 시뮬레이션 레이스에서 자신들의 자율주행 레이싱 소프트웨어를 벤치마킹해야 했습니다.
TUM 팀은 Simulink를 사용하여 모션 제어 소프트웨어를 설계했고 Simulink의 코드 생성 기능을 사용하여 C++ 코드를 생성했습니다. 다음은 시뮬레이터에서 소프트웨어를 테스트하고 검증하는 중대한 단계였습니다. 이를 위해 TUM 팀은 Simulink의 차량 및 환경 모델링 기능을 활용해서 자신의 레이싱카와 8대의 경쟁 자동차들을 사실적인 가상 환경에서 정밀하게 모델링했습니다.
자신들의 제어 소프트웨어가 실시간에서 어떻게 작동하는지 테스트하기 위해 TUM 팀은 차량과 레이스 트랙 환경 시뮬레이터를 자동차의 제어 컴퓨터와 연결한 HIL(Hardware-in-the-Loop) 시뮬레이터 설정 환경을 구축했습니다.
Vehicle Dynamics Blockset™을 통해 그들은 자동차의 물리 및 모션 모델을 구축할 수 있었고 Simulink Real-Time™ 툴체인을 사용해 이 모델을 Speedgoat Performance 컴퓨터에 배포했습니다.
"TUM IAC 팀은 차량 동역학 모델링에 종합적인 접근법을 선택했습니다. 파워트레인, 서스펜션, 타이어 등 작동 중인 차량의 모든 측면을 모델링했습니다." Speedgoat 기술 마케팅 팀장 Christoph Hahn의 말입니다.
Speedgoat와 Simulink의 긴밀한 통합 덕분에 실제와 거의 흡사한 시뮬레이션이 가능했습니다. "MathWorks에서 새 릴리스를 출시하는 날 Speedgoat 역시 새로운 블록셋을 출시해서 Speedgoat의 모든 하드웨어의 지원이 끊기지 않도록 하고 있습니다. 뿐만 아니라 Speedgoat에서 제공하는 I/O 모듈의 종류는 엄청나게 많습니다. 다양한 업계의 거의 모든 프로토콜, 커넥터, 플러그를 지원합니다."
팀은 강력한 타겟 하드웨어에서 여러 차량들의 디지털 트윈을 실행하여 다양한 레이싱 시나리오에서 자동차들이 어떻게 거동하는지에 대해 실제와 같은 느낌을 받을 수 있었습니다. 이어서 팀은 그러한 이해를 바탕으로 제어 소프트웨어를 수정하여 개발 환경에서 레이스 트랙 위의 실제 차량으로 매끄럽게 전환할 수 있었습니다.
"우리가 Speedgoat 하드웨어로 구축한 실시간 HIL 시뮬레이션은 성공의 핵심 요인입니다." Wischnewski의 말입니다. 실시간 다중 차량 시뮬레이션에 의지하지 않은 다른 경쟁자와 우리의 차이점이기도 하죠."
시뮬레이션에서 현실로
TUM이 실제 Dallara AV-21 차량을 이용해서 자신들의 소프트웨어를 테스트할 수 있게 된 2021년 6월에 실제 테스트가 시작되었습니다. TUM은 오픈소스 Docker® 플랫폼을 사용하여 Simulink로 생성한 C++ 코드에 연결해 자신들의 응용 프로그램을 자동차의 컴퓨터에 배포하였습니다.
시뮬레이션 단계에서 철저하게 자신 스스로에 도전한 것이 이 팀의 승리 비결이었습니다.
Wischnewski는 시뮬레이션 단계에서 철저하게 자신 스스로에 도전한 것이 TUM 팀의 승리 비결이라고 말합니다. "저희는 리소스의 30%를 시뮬레이션에 투자했습니다. 저희는 시뮬레이션 환경을 최대한 사실적으로 만드는 데 있어서 서로에게 매우 힘든 시간을 보냈습니다. 저희는 단순한 모델에 의존하지 않고 시뮬레이션에서 적극적으로 실패를 발굴했습니다."
그러한 노력은 IAC에서 진가를 발휘했습니다. IAC는 세계 최초로 여러 차량들이 한꺼번에 겨루는 로보카 레이스가 되는 것을 목표로 했지만 실상은 속력과 안전 경연 행사에 가까웠습니다. 자동차들이 경기장을 한 번에 한 대씩 달렸기 때문입니다.
TUM Autonomous Motorsport 대 PoliMOVE (비디오 출처: Indy Autonomous Challenge)
자동차들은 피트 레인을 출발해서 워밍업 랩을 마치고 시간 측정 랩을 2번 달린 다음에 쿨다운 랩을 달렸습니다. 마지막 랩에서는 팽창식 장애물을 회피하는 과정이 포함되어 있었습니다. 시간 측정 랩을 완주한 팀은 네 팀에 불과했습니다. 최고 속력은 University of Alabama와 Politecnico di Milano에서 출전한 PoliMOVE 팀이 워밍업 라운드에서 달성한 252km/h(157mph)였지만 그들의 자동차는 두 번째 랩을 돌면서 벽에 충돌했습니다.
TUM Autonomous Motorsport는 일관된 성능을 보여주며 두 랩에 걸쳐서 최고 평균 속력을 달성했고 1위를 거머쥐게 되었습니다. 1월 7일에 그들은 라스베이거스에서 열린 IAC 2차 라운드에서도 계속 실력을 발휘하였습니다. 이번에는 자동차 두 대가 한 번에 나란히 달린 본선전이었습니다.
TUM과 PoliMOVE는 자동차들이 260km/h를 넘는 속력으로 각축전을 벌이는 결승전에서 다시 맞붙게 되었습니다. 작은 제어 오류로 인해 TUM의 자동차가 네 번째 턴 말미에 회전하며 잔디밭으로 밀려 나갔고 2위로 레이스를 마쳤습니다. 하지만 알고리즘이 자동차의 회전을 제어하는 데 도움을 주었고 안전하게 정지할 수 있었습니다.
대회 사흘 전에 TUM은 완전 자율주행 자동차를 위한 안전하고 확장 가능한 플랫폼을 개발하는 회사인 driveblocks를 창립한다고 발표하였습니다. 이 회사의 첫 번째 목표는 안전하고 신뢰할 수 있는 자율주행 화물 배송을 실현하기 위한 상용차가 될 것입니다.
회사의 공동 창립자이자 수석기술관인 Wischnewski는 비록 박사과정을 마무리하지만 이제 자율주행 자동차를 현실로 만든다는 자신의 열정을 계속 따를 수 있게 되었습니다. 자율주행 레이싱을 통해 얻은 경험으로 그는 이제 회사의 비전을 현실로 만들 계획입니다.