Search Unity

Unity를 이용한 BMW의 자율 주행 시뮬레이션 시각화

, 8월 5, 2020

BMW는 AR과 VR을 통해 제작 과정을 개선하고, 획기적인 방식으로 차량을 마케팅하는 등 다양한 사례에 Unity를 사용하고 있습니다. BMW가 어떻게 실시간 3D 기술을 활용하여 복잡한 자율 주행(AD) 문제를 극복하고 수많은 시뮬레이션 시나리오를 통해 자율 주행 기능을 개선하고 있는지 살펴보겠습니다.

BMW, MINI, Rolls-Royce, BMW Motorrad 브랜드의 모체인 BMW 그룹은 2006년부터 고도화된 자율 주행을 실현하기 위해 노력해 왔으며, 직접 운전할 필요가 거의 없는 차량을 가까운 미래에 제공하고자 합니다.

BMW 그룹은 몇 년 안에 운전자 보조 시스템, 고속도로 주행, 주차 부문에서 레벨 3 수준의 자동화가 탑재된 차량을 출시하는 것을 목표로 합니다. (SAE 레벨 3은 운전자의 개입이 일부 필요한 조건부 자율 주행을 말합니다.)

테스트 마일 95%를 가상 주행으로 진행

BMW 테스트 마일 5% 실제 차량으로 주행됩니다 (동영상 제공: BMW).

전 세계 곳곳의 BMW 그룹 차량에서 자율 주행 테스트가 진행되고 있습니다. 실제 테스트 차량만으로 AD 개발에 필요한 모든 데이터를 수집할 수는 없기 때문에 BMW 테스트 마일의 95%는 가상 세계에서 가상 차량으로 주행됩니다.

시뮬레이션은 독일 뮌헨 바로 북쪽의 운터슐라이스하임에 위치한 BMW 자동 주행 캠퍼스에서 진행됩니다. BMW 그룹의 그래픽 시뮬레이션 개발자인 니콜라스 더닝은 12명으로 이루어진 핵심 개발팀의 일원입니다. BMW 캠퍼스에서 근무하는 1,800명의 AD 개발자들은 개발팀이 Unity로 제작한 커스텀 툴을 이용해 시뮬레이션 작업을 시각화하고 발전시킵니다.

더닝은 “BMW에서는 시뮬레이션이야말로 자율 주행을 개발하는 데 있어 핵심 역할을 한다고 봅니다. Unity는 AD 목표를 달성하기 위해 필요한 수백만 개의 가상 도로를 만들고, 시각화하고, 평가하는 데 있어 중심축이 되고 있습니다.”라고 말합니다.

BMW의 Unity활용 방법

테스트의 대다수가 위에서 언급한 BMW의 AD 개발용 데이터센터에서 이루어짐에 따라, BMW는 AD 개발자들이 다음 사항을 손쉽게 처리할 수 있도록 했습니다.

  1. 시뮬레이션의 원시 데이터를 실제 세계와 유사하고 그래프나 차트보다 더 이해하기 쉬운 방식으로 시각화하기
  2. 수많은 시뮬레이션 시나리오에서 AD 기능의 현재 상태 평가하기

핵심 개발팀은 Unity의 뛰어난 확장 가능성을 활용하여 이러한 요구에 부응하는 커스텀 Unity 기반 솔루션을 개발했습니다. BMW 그룹이 안전하고 신뢰성 높은 AD 시스템을 일정에 맞춰 출시하기 위해 사용하는 독창적인 방식을 살펴보도록 하겠습니다.

쉽고 빠른 시나리오 생성

BMW의 그래픽 시나리오 에디터는 시뮬레이션에서 AD 기능을 테스트할 때 사용하는 다양한 파라미터를 제공합니다.

BMW는 Unity를 사용하여 개발 중 테스트 과정과 검증 기능을 크게 간소화하는 그래픽 시나리오 에디터를 개발했습니다. 편리한 인터페이스로 AD 개발자들은 기능의 완성도와 준비도를 높이는 수천 개의 시뮬레이션 시나리오를 간편하게 시각화하고 설정할 수 있습니다.

다음은 시뮬레이션에서 실전에 대비하여 기능을 테스트하기 위해 시나리오 에디터에서 파라미터화할 수 있는 다양한 요소들의 예시입니다.

  • 차량의 수량과 유형(승용차, 버스 등)
  • 보행자
  • 교통 신호(노면 표시, 표지판)
  • 차선(직선, 곡선 등)
  • 차선 경계(없음, 단일 실선, 이중 실선, 점선 등)
  • 환경 조건(주간/야간, 안개 밀도, 강수 수준)
  • 차량 궤적 계획

BMW의 개발자들이 직접 생성한 시나리오 외에도, 테스트 차량에서 기록한 교통 씬에서도 시나리오가 추출됩니다. 이러한 데이터는 후처리를 거쳐 자동으로 시뮬레이션 시나리오로 변환됩니다. 추가 분석 단계에서는 개발하고 실험해 볼  만한 시나리오가 선정됩니다.

아래의 동영상에서는 독일의 한 고속도로에서 옆 차량이 끼어드는 실제 세계 시나리오와 변수가 적용된 시뮬레이션 시나리오를 확인할 수 있습니다. 이 시나리오는 흥미로운 시나리오로 파악되어 다양한 변수를 적용했습니다. 시뮬레이션에서는 우천, 해질녘, 안개와 같은 다양한 날씨 조건에서 끼어드는 차량과의 안전 거리를 유지할 수 있는지 테스트합니다.

테스트 차량 기록에서 변환한 시뮬레이션 시나리오에는 다양한 날씨 조건에 따른 변화가 주어집니다.

실시간으로 시뮬레이션 테스트 시각화

AD 개발자가 시나리오를 설정하고 나면 시뮬레이션 테스트가 실행되는 동안 Unity를 통해 실시간으로 시각화됩니다.

시뮬레이션 테스트의 시각화에 Unity를 사용하면 AD 개발자의 작업 효율이 향상됩니다. 개발자는 실시간 3D 기술을 활용하여 생생한 디지털 현실과 상호작용하는 방식을 자유롭게 제어할 수 있습니다.

아래 동영상에서 확인할 수 있는 바와 같이, 가상 씬 내의 차량이나 다른 오브젝트의 원근을 변경할 때마다 시점 또한 연속된 방식으로 실시간으로 변화합니다. 확대하여 더 자세히 살펴보거나 뒤로 물러나 전체 스케일을 확인할 수 있기 때문에 시뮬레이션 시나리오에서 발생하는 모든 상황을 전체적으로 더 쉽게 이해할 수 있습니다.

BMW의 AD 개발자들은 Unity를 통해 모든 시점에서 시뮬레이션 시나리오를 둘러볼 수 있습니다. 이 시나리오는 알 수 없는 오브젝트(보라색 블록으로 시각화)로 둘러싸인 차량을 표시하여 알고 있는 데이터와 알지 못하는 데이터가 함께 존재하는 상황에서 AD의 대처 능력을 평가하는 데 도움을 줍니다.

BMW는 초기에 상세하고 현실적인 환경을 설계했지만, 시간이 지나면서 보다 추상적인 시각화 스타일로 전환하고 핵심 컴포넌트(예: 도로, 차량)만 렌더링하여 데이터 노이즈를 줄이고 AD 개발자들이 각 시뮬레이션 결과에 더 집중하도록 했습니다.

테스트 중 상황에 적합한 피드백 즉시 제공

BMW의 AD 개발자들은 시나리오를 빠르게 생성하여 테스트할 수 있을 뿐만 아니라 AD 기능의 완성도에 대한 즉각적이고 시각적인 피드백 또한 받을 수 있습니다. 2D 차트와 그래프에서 데이터를 파싱할 필요 없이 테스트 중에 차량의 테스트 결과를 실시간 3D로 확인할 수 있습니다.

시뮬레이션 테스트 결과의 예시를 보여주는 기존 데이터 시각화 방식

오른쪽 하단에 시각화 및 평가 데이터가 실시간으로 표시되고 동기화되어 개발자가 맥락에 맞게 결과를 손쉽게 분석할 수 있습니다.

향후 계획

BMW 개발팀은 Unity 기반 솔루션이 핵심 이용자인 AD 개발자를 넘어 더 폭넓게 활용되기를 바랍니다. 또한 사전 제작 단계의 레벨 3 차량이 예상대로 작동하여 완전 생산 단계로 들어가기 위해 차량 내부 테스트를 담당하는 팀과의 협업을 기대하고 있습니다

2부에서는 BMW가 Unity를 사용하여 AD 개발 중에 당면하는 도전 과제를 어떻게 해결하는지 살펴보도록 하겠습니다.

유니티 백서: 자동차 업계의 5가지 주요 분야에 적용되는 실시간 3D 기술에서 Unity가 AD 시뮬레이션에 어떻게 활용되고 있는지 자세히 알아보세요.

7 replies on “Unity를 이용한 BMW의 자율 주행 시뮬레이션 시각화”

Great Visual post, Nick!

I like the way you have presented the content, by placing Image, Screenshot and video. Thank you

“In addition to scenarios generated manually by BMW’s developers, scenarios are also extracted from traffic scenes recorded by the test fleet. This data is post-processed and automatically converted into simulation scenarios. A further analytic step identifies scenarios that would be interesting to develop and vary them.”

This is awesome! I’m the President of an AI Club, and I’m excited to send this to the club!

What they should do, to generate a LOT of unique data, would be to make a small driving game, with real players, in order to test their AI against extreme human behavior. You could both collect data on how the AI performs, and gather unique scenarios.

Also having multiple companies AI driving around in the same simulation would probably be beneficial.

Perhaps try Vehicle Physics Pro (paid enterprise version or free community version on the asset store) if you are struggling with creating your own vehicle controller. It’s really good!

Comments are closed.