엔비디아 자율주행 자동차는 오늘도 혹독한 훈련중

자율주행차 개발·검증을 위해 고충실도의 엔드투엔드 시뮬레이션을 구현하는 엔비디아 드라이브 컨스텔레이션을 소개합니다
by NVIDIA Korea
8월3일 블로그

세계가 재택근무에 돌입한지 벌써 수 개월이 지난 지금 엔비디아의 시범용 자율주행 자동차 기술은 오늘도 클라우드 환경에서 기술 향상을 위한 테스트를 거듭하고 있습니다.

엔비디아가 개최하는 세계 최대 GPU 연례행사인 GTC 2020의 기조연설에서, 엔비디아의 CEO 젠슨 황(Jensen Huang)은 엔비디아 드라이브(NVIDIA DRIVE) 기술 개발과 시뮬레이션 테스트 방식을 시연했는데요, 지금은 자율주행 자동차 시범 운영은 임시적으로 중단된 상태지만 클라우드 기반의 엔비디아 드라이브 컨스텔레이션(NVIDIA DRIVE Constellation) 플랫폼으로 가상 환경의 가상 자동차로 자율주행 기술을 계속해서 발전시킬 수 있습니다.

위의 동영상 데모에서, 가상의 엔비디아 BB8 시범용 차량이 실리콘밸리에 위치한 엔비디아 본사 주변의 고속도로와 도시의 거리를 주행하고 있는데요, 모두 시뮬레이션으로 진행되는 상황입니다. 이 17마일 거리의 주행을 통해 엔비디아 드라이브 AV 소프트웨어가 실제 환경과 거의 동일한 시뮬레이션 환경에서 도로, 보행자, 교통상황을 탐색합니다.

데이터센터 주행시험장

엔비디아 드라이브 컨스텔레이션은 자율주행 자동차의 개발과 검증을 지원하기 위해 맨 처음부터 설계된 클라우드 기반 시뮬레이션 플랫폼입니다. 데이터센터 기반 플랫폼은 한 쌍의 서버로 구성됩니다.

첫번째 서버는 드라이브 심(DRIVE Sim) 소프트웨어로 구동되는 엔비디아 GPU를 통해 가상 세계에서 가상 자동차 주행을 통해 센서 출력정보를 생성합니다. 두번째 서버에는 실제 사용되는 자동차 컴퓨터가 있는데요, 이 차량용 컴퓨터는 실제 자동차에 적용되는 것과 동일한 드라이브 AV(DRIVE AV)와 드라이브 IX(DRIVE IX) 소프트웨어를 실행하는 시뮬레이션 센서 데이터를 처리합니다.

두번째 서버에서는 주행과 관련된 결정이 내려지고 이는 첫번째 서버로 전송되며, 이를 통해 정확한 비트 단위의 실시간 하드웨어인더루프(HIL) 개발과 테스트가 이뤄집니다.

이미지1
두 개의 사이드-바이-사이드 서버로 구성돼 정확한 비트 단위의 HIL 테스팅이 가능한 ‘드라이브 컨스텔레이션’

이 시스템은 데이터센터에 확장 가능한 복수의 가상 자동차(virtual fleet)로 배포되도록 설계됐습니다. 이를 통해 개발 엔지니어들은 온디맨드 차량을 제공받고 대규모 테스트를 진행할 수 있습니다. 또한 실제로 구현하기 어렵거나 실제 상황에서는 발생할 수 없는 드물게 일어나는 위험한 상황을 지속적으로 테스트할 수 있죠.

엔드투엔드 개발과 테스트

자율주행 자동차를 개발하려면 서브시스템에서부터 풀 비히클 인테그레이션(full vehicle integration) 테스트에 이르기까지 모든 단계에서 테스트를 진행해야 합니다. 드라이브 컨스텔레이션은 실제 자동차 개발과 유사한 방식으로 시뮬레이션을 통해 자율주행 자동차의 엔드투엔드 개발과 테스트를 구현하는데요.

엔드투엔드 테스트를 하면 자율주행 자동차 소프트웨어에서 다양한 시스템의 복잡한 상호의존성을 정확히 모델링할 수 있을 뿐만 아니라 타이밍과 성능 정확도도 보장하죠.

이미지2
실제 주행환경을 구현하기 위해 현실 세계의 디지털 트윈을 생성하는 ‘드라이브 심’

이와 같은 충실도를 대규모로 달성하는 일은 쉽지 않은 일입니다. 주행 환경, 교통 상황, 센서 인풋 그리고 차량의 역학 요소들이 차량의 컴퓨터에서 실제 상황과 동일한 모습으로 움직이고 피드돼야 하죠.

이를 위해선 정확한 타이밍에 동기화되는 합성 데이터를 생성하는 여러 개의 GPU가 필요한데요, 자동차 소프트웨어와 하드웨어 시그널과 인터페이스가 시뮬레이션 상에서 그대로 복제되야 하고 시뮬레이션 내의 모든 것들이 실시간으로 진행되야 합니다.

실리콘밸리 시뮬레이션

통합 시뮬레이션의 시작은 바로 주행 환경인데요, 엔비디아 드라이브 생태계 멤버사인 3D 맵핑(3D Mapping)은 실리콘밸리의 주행 루프를 정확하게 재현하기 위해 실리콘밸리의 도로를 5cm 내의 정확도로 스캔했습니다. 그 다음 이렇게 스캔된 로우 데이터를 오픈드라이브(OpenDRIVE)라는 데이터세트 포맷으로 처리했죠.

여기에서 엔비디아는 엔비디아 옴니버스(NVIDIA Omniverse) 협업 플랫폼을 사용해 고도의 정확도를 갖춘 3D 환경을 생성하는 콘텐츠 크리에이션 파이프라인을 개발했습니다. 정확한 도로 네트워크와 도로면 표시 등도 포함된 이 3D 환경에는 실제 환경에서 차량의 센서가 반응하는 것과 동일하게 다양한 소재별 특성도 적용돼 광선, 전파, 라이다(lidar) 광선과 상호작용할 수 있도록 설계됐죠.

이미지3
차내 시각화 효과를 포함한 엔드투엔드 테스트를 지원하는 ‘드라이브 심’
이미지4
AV 소프트웨어 테스트를 위한 다양한 채광과 기상 조건을 제공하는 ‘드라이브 심’

센서 데이터 재생성

높은 정확도의 주행환경을 구현한 후 고충실도의 개발과 테스트를 위해서 필요한 것은 높은 정확도의 센서 데이터인데요. 센서 모델에는 카메라, 라이다, 레이더, 관성 측정 장치와 같은 자율주행 테스트용 차량에 기본적으로 사용되는 장치들이 포함됩니다. 드라이브 심은 유연한 센서 파이프라인과 API를 제공해 실제 자동차 아키텍처와 일치시킵니다.

카메라 데이터의 경우 이미지 파이프라인은 차량에 사용된 카메라 렌즈의 특성에 따라 변형된 HDR 이미지를 렌더링하면서 작동합니다. 노출 제어, 흑백 밸런스, 컬러 그레이딩이 센서 프로파일에 맞춰 이미지에 적용됩니다. 마지막 단계로 픽셀 데이터가 센서별 인코더를 사용해 네이티브 아웃풋 형식으로 변환됩니다.

카메라 모델 외에도 드라이브 심은 레이 트레이싱을 통해 물리적인 라이더와 레이더 센서를 제공합니다. 드라이브 심은 엔비디아 RTX GPU을 통해 고도의 연산 집약적인 레이더와 라이더 모델을 실시간으로 실행할 수 있습니다.

이미지5
드라이브 컨스텔레이션에는 레이 트레이싱으로 실시간 센서 렌더링을 지원하는 강력한 RTX GPU가 탑재됐습니다. 위 장면은 AV 스택용으로 실시간 렌더링되는 8개의 레이더 결과를 결함한 모습입니다.

자동차 행동 모델링

정확한 시뮬레이션 구현에 마지막으로 중요한 요소는 바로 자동차 모델인데요, 차량의 방향을 전환하거나 가속, 제동과 같은 제어 신호가 차내 컴퓨터에 전송되면 자동차는 실제 차량이 반응하듯 똑같이 반응해야 하죠.

이를 위해서는 시뮬레이션 플랫폼은 차량이 도로 위에서 어떻게 반응하는 지와 같은 디테일을 포함한 모든 움직임을 제대로 모방해 구현해야 합니다. 드라이브 심의 자동차 모델은 피직스(PhysX) 모델이 포함된 플러그인 시스템이나, 메커니컬 시뮬레이션(Mechanical Simulation)이나 IPG 등 엔비디아 드라이브 생태계 파트너사의 서드파티 자동차 역학 모델을 통해 처리됩니다.

자동차 역학은 정확한 센서 데이터 생성에도 핵심적인 역할을 합니다. 자동차가 구동되면 차량의 위치와 자세가 크게 바뀌기 때문에 센서의 시각에도 영향을 미치는데요, 예를 들어 앞 방향 카메라는 자동차 브레이크를 밝으면 아래로 향하게 되죠. 그래서 자동차 역학을 정확히 모델링해야 정확한 센서 데이터를 생성할 수 있는 것입니다.

단일 엔드투엔드 플랫폼에서 주행 환경, 센서, 자동차 역학 등의 구성 요소를 정확히 시뮬레이션 하는 엔비디아 드라이브 컨스텔레이션과 드라이브 심은 전반적인 개발과 테스트 파이프라인에서 핵심 역할을 합니다. 엔비디아 드라이브 컨스텔레이션과 드라이브 심은 엔비디아와 엔비디아 파트너사들이 실제 차량은 차고에 세워 둔 채로 보다 안전하고 효율적인 자율주행 자동차를 개발할 수 있도록 적극 지원하고 있습니다.