로봇 분야에서 수십 년의 경험을 쌓은 이 팀은 안전하고 확장 가능한 솔루션을 시장에 내놓을 수 있다고 자신합니다. 남아 있는 핵심 문제는 안전성을 입증하는 것이라고 시뮬레이션 리드인 피트 멜릭(Pete Melick)이 설명합니다. "고속도로에서 장거리 운전을 하면서 대처하기 어려운 사건을 겪을 확률은 매우 낮습니다."라고 멜릭은 말합니다. "트럭이 일반적으로 잘 겪을 일은 없지만 발생할 가능성이 있는 온갖 사건의 조합에도 대응할 수 있음을 통계적으로 신뢰성 있게 증명하는 일이 쉽지는 않습니다. 말 그대로 수십만 킬로미터를 주행해야 하니까요."
하이브리드식 시뮬레이션 접근
그 대신 팀은 시뮬레이션을 주요 검증 툴로 선정했습니다. 자율주행 시뮬레이션에는 두 가지 유형이 있는데, 각각 장단점이 있습니다. 아이크는 두 방법을 모두 사용하여 각각의 장점만 취할 수 있습니다.로그(Log) 시뮬레이션이란 실제 주행에서 얻은 데이터를 자동화 시스템에 집어넣는 것을 말합니다. 실제 주행 데이터를 사용하면 좋은 점은 로그된 데이터에는 실제 센서와 실제 상호작용의 사소한 불완전성이 모두 담겨 있다는 것입니다. 그러나 폐루프 제어가 불가능하다는 단점이 있습니다. 다시 말해 현실의 로그에 기록된 신(scene)을 시뮬레이션된 차량의 행동에 대응하여 바꾸는 것이 불가능합니다. 자율 주행하는 트럭이 더 천천히 주행하기로 결정하면 시뮬레이션 속의 다른 차량은 그 변화에 대응하지 못하고 시뮬레이션의 가치가 크게 떨어집니다.
로그 시뮬레이션 도중 시뮬레이션된 차량의 행동(파란색)이 로그된 차량(빨간색)과 달라지는 장면
가상 시뮬레이션은 비디오 게임처럼 만들어진 시나리오와 반응성 액터를 활용합니다. 로그 시뮬레이션과 달리 가상 시나리오의 다른 차량이 자동 시스템의 행동에 대응할 수 있습니다. 가상 시뮬레이션의 단위는 시나리오로, 트럭이 고속도로 주행 도중 마주칠 수도 있는 구체적인 사건입니다. 가상 시뮬레이션에서는 시나리오를 정의하는 파라미터를 서서히 바꿔나가면서 유사하지만 구별되는 시나리오를 생성하는 베리에이션이 가능합니다. 아이크는 베리에이션 덕분에 자사의 자동화 소프트웨어를 무수히 많은 가능 환경에서 테스트할 수 있었습니다.
아이크는 다른 자율 주행 회사 누로(Nuro)에서 인수한 코드 베이스 덕분에 시뮬레이션 개발에서 우위를 점하고 있었습니다. 2년 동안 노력한 개발의 결과물인 코드 베이스는, 멜릭의 말에 따르면 시각화, 매핑, 온보드 인프라, 클라우드 인프라, 머신 러닝, 레이블링 파이프라인, 로그 시뮬레이션 등 필수적인 기술을 포함하는 세계적인 수준의 로보틱스 인프라를 구축했습니다. 팀은 이를 출발점으로 삼고 각 분야에 팀원들이 가진 전문성을 더하기 시작했습니다.
언리얼 엔진에서 시나리오 디자인하기
가상 시뮬레이션 툴 개발을 위해 언리얼 엔진을 택한 팀은 1년 동안 특별한 수요에 맞춘 언리얼 엔진의 혁신적인 관련 기능을 다양하게 활용했습니다.멜릭은 가상 시뮬레이션 작업을 하는 모두가 폐회로 제어와 베리에이션의 장점을 알지만 이를 동일한 방식으로 구현하는 것은 아무나 할 수 있는 일이 아니라고 설명합니다.
"저희는 게임 엔진을 가상 시뮬레이션 툴의 핵심 구성 요소로 받아들이면서 스스로를 차별화했습니다. 다른 회사도 언리얼 엔진 등 게임 엔진을 활용하긴 하지만 약간 거리를 두고서 다른 시뮬레이션 툴을 보조하는 이미지 생성기 정도로만 쓰고 있죠."라고 멜릭은 말합니다.
그 첫 절차를 통해 아이크는 언리얼 엔진의 레벨 에디터를 커스터마이징하여 시나리오 디자인 툴로 만들었습니다. 아이크의 트럭은 고화질 맵으로 월드 내에서 자신의 위치를 계산합니다. 이 맵은 차선 중앙과 경계에서 수집 및 처리된 LiDAR 강도 및 고도 데이터로 구성됩니다. 그리고 랜드스케이프 API를 사용해 동일한 맵의 데이터를 언리얼 엔진으로 스트리밍하여 팀이 그 위에서 시나리오를 디자인하고 실행할 수 있습니다.
아이크의 맵에서 언리얼 에디터로 시나리오를 디자인하는 모습
자동화 시스템에는 오픈 소스 데이터 포맷에서 쉽게 찾을 수 있는 것보다 더 해상도가 높은 맵 데이터가 필요합니다. 필요한 데이터를 캡처하기 위해 아이크는 LiDAR 스캐너 2개를 장착한 특수 매핑 차량을 마련하여 고속도로로 직접 나섰습니다. 덕분에 회사는 매핑 차량이 주행할 수 있는 곳이라면 어디든 시뮬레이션할 수 있게 되면서 자체 데이터를 충분히 공급할 수 있었습니다.
맵을 임포트하고 나면 시나리오 디자인에 필요한 요소 대부분은 곧바로 사용 가능합니다. 예를 들면 시간 또는 거리에 따른 트리거, 액터가 따를 스플라인, 효율적인 인바이런먼트 쿼리 시스템, 모든 기능을 갖춘 데다 커스터마이징 가능한 GUI, 복잡한 움직임을 임의로 디자인할 스크립팅 언어 같은 것들이 있습니다.
"게임 엔진은 살아 숨쉬는 월드를 만드는 툴입니다. 플레이어가 결정을 내리면 사실적으로 반응하는 월드죠."라고 멜릭은 이야기합니다. "그게 시나리오입니다. 단지 플레이어가 로봇일 뿐입니다."
로봇이 시뮬레이션에서 아바타를 어떻게 조작해야 할까요? 그리고 시뮬레이터는 로봇에게 필요한 입력을 어떻게 제공해야 할까요? 아이크의 자동화 소프트웨어는 서로 구글 프로토콜 버퍼(Google Protocol Buffer) 메시지로 통신하는 코드 모듈로 구성되어 있습니다. 이 팀은 엔진을 약간 변형하여 그런 메시지를 동일하게 주고받을 수 있게 만들었습니다. 시뮬레이터 내의 액터나 컴포넌트는 온보드 소프트웨어 모듈처럼 메시지를 발행하거나 구독할 수 있습니다.
아이크의 로그 뷰어(왼쪽)와 시뮬레이터(오른쪽)에서 플레이 중인 시나리오. 아이크 제공.
현재 구성에서는 시뮬레이터가 가짜 오브젝트 탐지를 발행해서 트래킹 소프트웨어에 입력하고 스티어링, 스로틀, 브레이크 명령을 구독하여 시뮬레이션된 차량의 움직임을 제어합니다.
아이크는 또한 언리얼 엔진의 AI 퍼셉션 시스템을 사용하여 시뮬레이션된 에이전트에 몇 가지 지능적인 행동을 추가했습니다. 예를 들어 매핑된 차선 또는 사전에 정해진 스플라인을 따라갈 때 경로상의 장애물을 탐지하고 IDM 기반 속력 컨트롤러를 사용하여 충돌을 피할 수 있습니다.
블루프린트의 힘 활용하기
디자이너가 시나리오의 폭을 넓힐 수 있도록 팀은 기능을 언리얼 엔진의 비주얼 스크립팅 시스템인 블루프린트로 개방했습니다."아무리 빨리 일해도 시나리오 디자이너들의 상상력보다 더 빠를 수는 없습니다."라고 멜릭은 말합니다. "디자이너들이 시나리오를 효율적이면서 반복 가능한 방식으로 생성하도록 도와야 합니다."
디자이너들은 블루프린트를 활용하여 새 동작과 연출을 생성합니다. 예를 들어 액터가 파라미터화된 기간 및 면적만큼 차선 좌우로 움직이게 만들거나 시뮬레이션된 노이즈를 자율 주행 소프트웨어에 주입하여 불완전한 입력에 대한 미감도를 테스트할 수 있도록 합니다. 심지어 블루프린트를 사용하여 키보드로 제어되는 액터를 만들고 시뮬레이션된 트럭과 상호작용하게 만들 수도 있습니다. 이 모든 일이 단 한 줄의 C++ 코드 없이도 가능합니다.
블루프린트에서 시뮬레이션된 자율 주행 입력에 노이즈를 추가하는 모습
블루프린트는 아이크의 베리에이션 시스템에도 핵심적입니다. 한 디자이너는 액터에 컴포넌트를 추가하고 파라미터 가변 이펙트를 정의하는 블루프린트 함수를 구현하여 가변 파라미터를 추가했습니다.
"이렇게 하면 시나리오의 모든 프로퍼티를 변경할 수 있습니다."라고 멜릭은 말합니다. "모든 액터의 위치, 방향, 속력, 크기를 변경할 수 있죠. 액터가 주행 목표로 삼을 타깃, 바람직한 안전 거리, 차선 변경에 대한 적극성도 변경 가능합니다. 블루프린트에 표현할 수 있다면 변경할 수 있습니다."
일각에서는 게임 엔진을 시뮬레이터로 사용하는 것에 비판적인 의견도 나옵니다. 게임 엔진에서는 동일한 시뮬레이션을 반복 실행했을 때 동일한 결과를 내놓는 결정론 이 적용되지 않는다는 것입니다. 멜릭도 그런 비판을 알고 있습니다.
"잘못된 생각입니다."라고 멜릭은 말했습니다. "아이크의 시뮬레이터는 결정론적이며, 빠르고 반복적인 오프라인 테스팅이 가능하다는 장점이 있습니다. 아직 저희는 자율 주행 시뮬레이션에서 언리얼의 잠재력을 극히 일부만 사용하고 있습니다. 흥미진진한 프로젝트를 다수 준비 중입니다. 가상 시뮬레이션을 반복 가능한 하드웨어 루프 테스팅에 활용하여 실제 주행 이벤트를 바탕으로 가상 시나리오를 자동 생성할 수 있게 만드는 프로젝트도 그 중 하나이고요."
아이크의 시뮬레이션에서 가상 차량을 수동으로 주행하는 모습. 아이크 제공.
운전자가 없는 자율주행 트럭이 고속도로를 안전하게 달리는 시대를 맞이하려면 조금 더 기다려야겠지만, 아이크가 언리얼 엔진에서 만드는 모든 시나리오들은 그 목표에 조금씩 더 가까워지게 만들고 있습니다. 덕분에 마음이 놓입니다.훈련 및 시뮬레이션 분야에서 언리얼 엔진의 잠재력을 어떻게 활용할지 알아보고 싶으신가요? 지금 문의하셔서 안내를 받아보세요.