워릭대학교 WMG 이미지 제공

자율주행차 테스트용 하이브리드 리얼타임 시뮬레이터를 소개합니다 

2020년 9월 23일
현재 도로 위의 자동차 가운데 80% 이상은 운전자가 차량을 완전히 제어해야 하는 0단계 자율주행에 머물러 있습니다. 전문가 대다수는 완전 자율주행차가 실현되려면 수십 년이 더 걸릴 것으로 보고 있습니다.

운전자가 주행 중에 차량을 전혀 제어하지 않는 5단계 자율주행을 실현하려면 연구진은 사람의 안전을 최우선으로 고려해야 합니다. 자율주행 차량을 뒷받침하는 AI 시스템의 안전성을 보장하려면 반드시 무한에 가까운 수많은 상황에서 수십억 킬로미터에 걸쳐 주행 테스트를 거쳐야 합니다.

이상적으로는 현실 테스트가 가장 정확한 결과를 도출하겠지만, 극히 위험할 수 있습니다. 반면에 인터랙티브 3D 기술을 활용하여 시뮬레이션에서 테스트하면 제어와 반복이 가능하고 더 안전한 데다가 시간과 비용 측면에서도 더 효율적입니다. 그렇다면 현실과 가상 세계의 장점을 결합하면 어떨까요? 워릭대학교 WMG가 해냈습니다. 

가상 환경과 실제 자동차의 결합

WMG는 업계와 협력하여 엔지니어링, 경영, 제조, 기술 분야의 응용 연구와 교육을 수행하는 워릭 대학교의 종합 연구 부서입니다.

WMG는 자율주행차, 센서, 인적 요소, 커뮤니케이션 등의 테스트와 개발 분야에 종사하는 80명의 인재로 이뤄진 팀인 인텔리전트 비히클 그룹(Intelligent Vehicles Group)을 비롯한 최첨단 연구 그룹으로 구성되어 있습니다.

인텔리전트 비히클 그룹이 4년 전에 개발한 첨단 시스템인 3xD 시뮬레이터(3xD Simulator)를 활용하면 연구진이 실제 자동차를 운전하고, 이를 8개의 프로젝터를 통해 360도 화면에 표시되는 시뮬레이션 환경에 연결할 수 있습니다. WMG의 프로젝트 엔지니어인 후안 파블로 에스피네이라(Juan Pablo Espineira)가 설명합니다. “어떤 자동차든 운전하고, 시스템과 연결하고, 주행 테스트 및 개발을 할 수 있습니다.”

3xD 시뮬레이터는 현실을 대변하는 인조 환경의 일반적인 운영 조건에서 자율주행 시스템을 테스트할 때 사용됩니다. 현실에서는 날씨나 교통 상황 같은 조건의 제약을 받고, 복잡한 상황을 안정적이고 안전하게 재현할 수 없습니다.
안개나 빗속에서 운전자가 정지 신호를 무시하고 교차로로 접어드는데 센서가 고장 나버린 상황을 예로 들 수 있습니다. 이런 시나리오는 현실 테스트에서 재현하기가 매우 어렵고 위험하지만, 시뮬레이션에서는 수백 번이고 쉽게 재현할 수 있습니다.

3xD 시뮬레이터의 하이브리드 접근법을 활용하면 사람을 운전자, 안전 운전자 또는 보행자로 반복실험에 포함시킬 수 있습니다. 사람이 상황에 어떻게 반응하는지, 기술과 어떻게 상호작용하는지, 얼마나 기술을 신뢰하는지를 파악할 수 있는 것입니다.

자율 긴급 시스템을 테스트하고 싶다면 주행하는 것처럼 작동하는 실제 자동차에 사람을 태우면 됩니다. 자동차는 상황을 현실로 생각하고 긴급 시나리오나 사고가 발생하면 브레이크를 겁니다. 이때 사람과 차량의 반응을 모두 테스트할 수 있습니다.

커스터마이징 가능한 자율주행 시뮬레이터 

처음에 이 시뮬레이터를 지원했던 시각화 소프트웨어는 외주사가 커스텀 제작한 것이었습니다. 여기에는 두 가지 문제가 있었습니다. 첫 번째로는 일부 테스트 사례에서 그래픽 충실도가 충분하지 않았고, 두 번째로는 팀이 소프트웨어를 쉽고 빠르게 수정하거나 확장할 수 없었습니다. “연구 도중 종종 새 솔루션을 도입하거나 기존 솔루션을 조정해야 했는데, 이전 시스템에서는 불가능했습니다.”라고 에스피네이라가 말합니다.

개발팀에서는 이 문제를 해결하기 위해 언리얼 엔진으로 바꾸기로 했습니다. 엔진 소스 코드에 접근할 수 있게 되자, 팀은 무한한 유연성을 발휘하며 시뮬레이터를 얼마든지 조정할 수 있었습니다. 예를 들어 특정 센서 또는 노이즈 모델을 구현하거나, 가상 환경 속 사물을 특정 방식으로 상호작용하게 할 수 있었습니다. “언리얼은 위에서 말했던 모든 걸 가능케 했고, 엔진에 없는 건 C++로 구현할 수 있었습니다. 제가 자동차와 통신하도록 구현한 라이브러리를 예로 들 수 있는데, 정말 유용하다는 게 증명됐죠.”라고 에스피네이라가 말합니다.
개발팀은 언리얼 엔진의 블루프린트 비주얼 스크립팅 시스템도 활용해서, 더 많은 연구진이 프로젝트에 직접 관여할 수 있도록 했습니다. “블루프린트는 정말 유용한 툴입니다. 연구진은 대체로 센서, 전자, 기계 등 전문 분야에는 뛰어나지만, 시뮬레이터나 시뮬레이션 소프트웨어는 많이 접해보지 못한 경우가 많습니다.”라고 에스피네이라가 말합니다.

블루프린트는 프로그래머가 아닌 작업자들도 코드를 작성하는 것이 아닌 노드를 연결하는 시각적 방식으로 코드를 짤 수 있도록 합니다. “오픈 소스 시뮬레이터를 사용하면 연구진이 소스 코드에 들어가야 센서 모델이나 노이즈 모델을 수정할 수 있는데, 그러기는 어렵습니다. 블루프린트를 사용하면 훨씬 쉽습니다.”라고 에스피네이라가 말합니다.

언리얼 엔진으로 구현한 리얼타임 시뮬레이터

개발팀은 3xD 시뮬레이터를 만들기 위해 언리얼 엔진의 비히클 템플릿으로 시작했습니다. 이 템플릿에는 마음대로 수정할 수 있는 빌트인 비히클 다이내믹을 갖춘 차량이 있습니다. 그리고 도로망과 주변 환경을 만들었습니다. WMG는 LIDAR 스캔으로 만든 3D 모델을 사용하기도 했는데, 마켓플레이스 에셋을 사용해도 됩니다. 

에스피네이라는 테스트 중인 실제 차량 주변에 설치된 360도 화면에 환경을 투사할 방법이 필요했습니다. “보통은 카메라를 언리얼 환경에 놓아서 화면이 어디에 있어야 하는지 확인한 다음, 이미지를 프로젝터로 보냅니다.”라고 에스피네이라가 말합니다

하지만 프로젝터 8대로 하나의 매끄러운 이미지를 동시에 만들기란 쉽지 않았습니다. “비디오 포트가 8개 있어야 하고, 언리얼 인스턴스 8개를 실행해야 합니다. 컴퓨터 한 대로는 불가능하니 여러 대의 컴퓨터를 사용할 방법을 찾아야 하고, 컴퓨터들을 동기화할 방법도 필요합니다.”라고 에스피네이라는 말합니다.

개발팀은 nDisplay에서 그 해결책을 찾았습니다. nDisplay는 네트워크로 연결된 여러 컴퓨터에 걸쳐 다수의 언리얼 엔진 인스턴스를 디플로이 및 실행하여 여러 디스플레이에서 3D 콘텐츠를 동시에 렌더링합니다. “인스턴스 중 하나가 마스터 인스턴스가 되고, 나머지는 프로젝터로 출력될 시각화용 인스턴스입니다. 컴퓨터 한 대로 모든 프로젝터를 제어하여 퍼포먼스가 크게 절약됩니다.”라고 에스피네이라는 말합니다.

시뮬레이터 구축의 다음 단계는 언리얼 엔진에서 실제 자동차로, 실제 자동차에서 언리얼 엔진으로 정보를 전달할 방법을 고안하는 것이었습니다. 에스피네이라는 여기서 ObjectDeliverer 플러그인을 활용했습니다. 이 플러그인이 제공하는 블루프린트는 서버에 연결하면 데이터를 주고받을 수 있습니다.
이 데이터에는 시뮬레이션 내 차량의 속도 및 RPM, GPS 또는 내비게이션을 위한 XY 위치, SUMO 같은 교통 시뮬레이션 소프트웨어로 보낼 가상 환경의 엔티티 위치, MATLAB 같은 분석 소프트웨어에서 시각화를 위한 레이더와 LIDAR 데이터 등의 센서 데이터가 포함됩니다.

WMG는 자동차의 물리적인 컴포넌트를 시뮬레이션에 연결해야 했습니다. 이는 현대의 자동차 컴포넌트가 서로 통신하는 시스템인 CAN(계측 제어기 통신망, Controller Area Network) 버스 네트워크로 해결됐습니다. WMG는 이 시스템을 통해 스로틀 위치나 라이트의 켜짐 여부 등 자동차가 보내는 데이터를 읽고 적정 속도나 RPM 등의 지시 사항을 쓸 수 있었습니다.

마지막으로, 에스피네이라는 자동차의 비카메라 센서에서 나오는 데이터를 추적하기 위해 언리얼 엔진에서 블루프린트를 활용해 레이더 및 LIDAR 센서 모델을 생성했습니다.

리얼타임 기술과 지능형 자동차의 미래

자율주행차 부문은 갈수록 빠르게 변화하고 있고 모두 각자 선호하는 소프트웨어 툴 체인을 보유하고 있으므로, 쉽게 조정할 수 있는 빠른 커스텀 솔루션을 제작하는 능력이 필수적입니다. 이는 WMG가 언리얼 엔진을 사용하는 주된 이유입니다. “시중 소프트웨어로는 쉽고 빠르게 할 수 없거나 추가 비용이 들어갑니다.”라고 에스피네이라가 말합니다.

연구진이 5단계 완전 자율주행 시스템에 가까워질수록 게임 엔진은 미래의 자율주행차가 수행해야 할 극히 중요한 안전성 테스트의 핵심이 될 것입니다.

    문의하세요!

    훈련 및 시뮬레이션 분야에서 언리얼 엔진의 잠재력을 어떻게 활용할지 알아보고 싶으신가요? 지금 문의하셔서 안내를 받아보세요.