ADAS

ADAS란?

꼭 알아야 할 3가지 사항

ADAS(첨단 운전자 보조 시스템)는 운전자가 할 일을 자동화하는 하드웨어와 소프트웨어 구성요소를 말합니다. 오늘날 차량에 사용되는 ADAS의 예에는 적응 순항 제어, 사각지대 감지, 차선 변경 감지, 자동 차선 추종, 자동 긴급 제동 등이 있습니다.

ADAS가 중요한 이유

ADAS는 인간의 실수를 최소화하여 도로를 더욱 안전하게 만들 수 있습니다. 어떤 ADAS 시스템은 예를 들어 운전자의 사각지대 안에 차가 있어서 차선 변경이 위험한 경우와 같이 위험한 도로 시나리오를 운전자에게 경고함으로써 안전한 운전 습관을 지키도록 합니다. 어떤 ADAS 시스템은 자동 긴급 제동을 통한 충돌 회피와 같은 주행 동작을 자동화합니다.

실제로 Boston Consulting Group의 연구에 따르면 ADAS는 미국에서 연간 사망자 9,900명과 28%의 충돌 사고를 방지하고 있습니다.

ADAS 레벨

미국 자동차 공학회에서는 운전 자동화를 5개 레벨로 정의합니다. 오늘날 도로를 달리는 대부분의 자동차는 레벨 0부터 레벨 3 사이의 ADAS 기능이 탑재되어 있습니다. 자율주행 분야의 선두에 있는 기업들은 레벨 4와 레벨 5를 목표로 하고 있습니다.

自動運転の SAE J3016 レベル

自動運転の SAE J3016 レベル

안전, 사이버보안, 정책 문제가 해결되면 완전 자율주행 차량이 현실화될 수 있습니다.

ADAS 기능을 설계하는 방법

ADAS 기능을 설계하는 방법을 이해하기 위해 적응 순항 제어를 예로 들어보겠습니다. 이 ADAS 기능을 사용하는 자동차는 전방에 있는 차량에 접근하면 감속하고 전방에 있는 차량이 안전거리 이상으로 멀어지면 순항 속도로 가속합니다.

ACC(적응 순항 제어)를 설계하는 첫 번째 단계는 자동차에 탑재된 센서에서 나오는 데이터를 수집하는 것입니다. 적응 순항 제어에는 카메라와 레이다 센서가 필요합니다. 카메라가 프레임 안에 있는 다른 객체(차량, 보행자, 나무 등)를 감지하고 레이다가 자동차부터 객체까지의 거리를 계산합니다.

센서에서 데이터를 수집하면 ADAS 알고리즘을 개발을 시작할 수 있습니다. 적응 순항 제어는 다음 세 단계로 나눌 수 있습니다.

전방에 차량이 있는지 감지하는 인식 알고리즘

1, 2, 3단계는 다음과 같습니다.

  1. 전방에 차량이 있는지 감지하는 인식 알고리즘
  2. 차량과의 거리를 계산하는 레이다 알고리즘
  3. 거리 측정 결과에 기반하여 자동차 속도를 조절하는 제어 알고리즘

ADAS의 예로 ACC를 들었지만, 적절한 센서 선택과 센서 데이터를 기초로 한 알고리즘 설계의 일반적인 방법론은 모든 ADAS 기능에 적용됩니다.

센서의 중요성

ADAS 기능에 가장 널리 사용되는 센서에는 카메라, 레이다, 라이다가 있습니다.

카메라

카메라는 감지에 관련된 ADAS 작업에 사용됩니다. 차량 측면에 있는 카메라는 사각지대를 감지할 수 있습니다. 전방에 있는 카메라는 차선, 차량, 표지판, 보행자, 자전거 탑승자를 감지할 수 있습니다. 이와 관련된 ADAS 감지 알고리즘은 일반적으로 기존의 컴퓨터 비전과 딥러닝 알고리즘을 이용하여 구축합니다. 카메라에는 다음과 같은 몇 가지 장점이 있습니다.

  • 훌륭한 객체 검출 데이터를 제공함
  • 비교적 저렴함 - 가격이 저렴하기 때문에 제조사는 적은 비용으로 다양한 유형의 카메라를 테스트해볼 수 있습니다.
  • 종류가 다양함 - 어안, 단안, 핀홀 카메라 등 많은 카메라를 테스트하고 선택할 수 있습니다.
  • 가장 널리 연구됨 - 세 가지 센서 중에 카메라는 가장 오래되었고 가장 많이 연구되었습니다.

카메라 데이터의 단점은 다른 센서 유형 데이터에 비해 객체까지의 거리를 감지하는 데 덜 적합하다는 점입니다. 그렇기 때문에 ADAS 개발자들은 흔히 레이다와 카메라를 함께 사용합니다.

레이다

레이다 센서는 고주파를 방사하고 환경 내 객체에서 반사되어 돌아온 고주파를 기록합니다. 이 데이터를 이용하여 객체까지의 거리를 계산할 수 있습니다. ADAS에서 레이다 센서는 보통 차량 전방에 있습니다.

레이다는 다양한 기상 조건에서 작동하기 때문에 자동 긴급 제동이나 적응 순항 제어 같은 ADAS 기능에 사용할 수 있는 실용적인 센서입니다.

레이다 센서 데이터는 거리 감지 알고리즘에는 아주 적합하지만, 감지된 객체를 분류하는 알고리즘에는 덜 유용합니다. 그렇기 때문에 ADAS 개발자들은 흔히 카메라와 레이다를 함께 사용합니다.

라이다

라이다(light detection and ranging) 센서는 레이저를 환경에 방사하고 돌아오는 신호를 기록합니다. 돌아온 신호는 재구성되어 라이다의 주변 환경을 보여주는 3차원 포인트 클라우드를 만듭니다. 라이다 데이터를 이용하여 3차원 포인트 클라우드에서 객체와 센서의 거리를 계산할 수 있습니다.

ADAS 응용 사례에 사용되는 라이다 센서에는 다음 두 가지 유형이 있습니다.

  1. 전기기계식(회전) 라이다 - 전기기계식 라이다는 차량 상단에 탑재되며 회전하면서 데이터를 수집하여 환경에 관한 3차원 포인트 클라우드 지도를 생성합니다.
  2. 고정형 라이다 – 움직이는 부품이 없는 신형 라이다입니다. 장기적으로 볼 때, 고정형 라이다는 전기기계식 라이다에 비해 더 빠르고 저렴하며 정확한 솔루션이 될 것입니다. 그러나 상용화 가능한 센서를 설계하는 데는 안전성, 센서의 범위 등의 공학적 문제가 있습니다.

ADAS에서 라이다 데이터를 이용하여 거리 감지 및 객체 분류 기능을 모두 수행할 수 있습니다. 그러나 라이다 데이터 처리에는 카메라와 레이다 데이터에 비해 더 많은 계산 성능을 요하고 ADAS 알고리즘 개발자에게 몇 가지 어려운 문제를 야기합니다.

시뮬레이션을 통한 ADAS 알고리즘 개발

하드웨어를 테스트하는 데에는 비용이 많이 들기 때문에 엔지니어는 먼저 가상 시뮬레이션을 사용하여 ADAS 솔루션을 테스트합니다. 2차원 환경 또는 3차원 환경에서 시뮬레이션할 수 있습니다.

카메라와 레이다용 ADAS 알고리즘을 개발하고 테스트하려면 2차원 시뮬레이션을 사용할 수 있습니다. 먼저 도로, 보행자, 자전거 탑승자, 다른 차량이 있는 가상 장면을 생성합니다. 다음으로 장면 안에 차량을 배치하고 가상 카메라와 레이다 센서를 차량에 장착합니다. 그런 다음 자동차의 움직임을 프로그래밍하여 ADAS 알고리즘 개발과 테스트에 사용할 합성 센서 데이터를 생성할 수 있습니다.

3차원 시뮬레이션은 2차원 시뮬레이션을 확장하여 수행하며, 카메라와 레이다 이외에 라이다도 테스트할 수 있습니다. 3차원 환경은 상대적으로 복잡하기 때문에 더욱 많은 계산 성능이 필요합니다.

시뮬레이션 환경에서 ADAS 알고리즘을 개발하고 나면 다음 개발 단계는 HIL(Hardware-in-the-Loop) 테스트입니다. 이 단계에서는 실제 제동 시스템과 같은 실제 자동차 하드웨어를 시뮬레이션 환경에 연결하여 ADAS 알고리즘을 테스트하게 됩니다. HIL 테스트를 하면 자동차의 ADAS 구성요소가 실제로 어떻게 작동할지 파악할 수 있습니다.

DIL(Driver-in-the-Loop) 같은 다른 ADAS 테스트도 있지만 그러한 모든 테스트는 결국 모든 부품이 조립되었을 때 차량이 어떻게 작동할지 파악하기 위한 차량 내 테스트로 이어지게 됩니다. 차량 내 테스트는 가장 비용이 많이 드는 ADAS 테스트지만 가장 정확하며, 차량을 생산하기에 앞서 반드시 수행해야 합니다.

MATLAB 및 Simulink를 사용한 ADAS 기능 구축

MATLAB® 및 Simulink®는 다음 각각의 ADAS 개발 워크플로 단계를 지원합니다.

  1. 데이터 분석
  2. 주행 시나리오 합성
  3. ADAS 계획 및 제어 알고리즘 설계
  4. 인식 알고리즘 설계
  5. 알고리즘 배포
  6. 통합 및 테스트

데이터 분석

MATLAB을 사용하면 실시간 및 녹화된 주행 데이터에 액세스하고 시각화하며 레이블을 지정하여 ADAS 개발에 활용할 수 있습니다. MATLAB은 HERE HD Live Maps, OpenStreetMap, Zenrin Japan Maps를 통해 지리적 지도 데이터도 지원합니다. 이런 데이터는 ADAS 알고리즘 개발과 검증에 자주 사용됩니다.

이 앱에는 왼쪽에 비디오가 있고 파란색 경계 상자로 레이블이 지정된 자동차와 'car'라는 단어가 표시되어 있습니다. 오른쪽에는 라이다 시퀀스가 표시되어 있고 자동차가 3차원 파란색 경계 상자로 레이블이 지정되어 있습니다.

비디오, 영상 시퀀스 또는 라이다 포인트 클라우드에서 실측 데이터에 대화형 방식으로 레이블을 지정하는 실측 레이블 지정기

주행 시나리오 합성

MATLAB을 통해 인식을 위한 Unreal Engine 환경 및 제어, 센서 융합, 모션 계획을 위한 입방체 시뮬레이션 환경을 사용하여 가상 시나리오에서 ADAS 알고리즘을 개발하고 테스트할 수 있습니다. RoadRunner로 사실적인 3차원 장면을 설계할 수도 있습니다.

오른쪽에는 자차량에서 본 카메라 센서와 레이다 센서 감지 결과가 포함된 동일한 교차로의 조감도가 표시되어 있습니다.

ADAS 응용 사례의 시나리오 설계, 센서 구성, 합성 데이터 생성에 사용되는 Driving Scenario Designer 앱.

ADAS 계획 및 제어 알고리즘 설계

MATLAB에는 많은 자율주행 참조 응용 사례가 포함되어 있어서 이를 시작점으로 활용해 나만의 ADAS 계획 및 제어 알고리즘을 설계할 수 있습니다.

곡선 경로 몇 개가 궤적을 보여주고 왼쪽에 체이스 뷰, 오른쪽에 탑 뷰가 표시된 자차량이 있는 도로. 경로는 최적, 충돌, 불가능, 미평가 등 색상으로 표시되어 있습니다.

조감도 플롯 내의 고속도로 주행 상황에서 가능한 궤적 평가의 시각화.

인식 알고리즘 설계

MATLAB은 카메라, 레이다, 라이다 데이터로 인식 알고리즘을 개발하는 툴을 제공합니다. 컴퓨터 비전, 딥러닝, 레이다, 라이다 처리, 센서 융합 등을 사용하여 알고리즘을 개발할 수 있습니다.

노란색 경계 상자로 둘러싸인 정지 표지판의 운전자 뷰, 레이블에는 "stopSign: (Confidence = 0.995492)"라고 표시되어 있음.

사전 훈련된 R-CNN과 MATLAB을 사용한 정지 표지판 감지.

ADAS 알고리즘 배포

MATLAB Coder™, Embedded Coder®GPU Coder™ 같은 툴박스를 사용하여 자동으로 코드를 생성하여 ADAS 알고리즘을 임베디드 기기 및 ROS나 AUTOSAR 등의 서비스 지향 아키텍처에 배포할 수 있습니다.

NVIDIA Jetson TX2 보드.

NVIDIA Jetson TX2. GPU Coder로 이 보드에 맞는 CUDA 코드를 생성할 수 있습니다.

통합 및 테스트

Simulink 툴을 사용하여 인식, 계획, 제어 시스템을 통합하고 테스트할 수 있습니다. Requirements Toolbox™를 사용하여 ADAS 요구사항을 수집하고 관리할 수 있습니다. Simulink Test™를 사용하여 테스트 케이스를 병렬로 실행하고 자동화할 수도 있습니다.

왼쪽에 파일 뷰어가, 오른쪽에 속성이 표시된 요구 사항 편집기. 속성 패널에는 곡선 도로에서의 스탑 앤 고(Stop-and-Go) 테스트를 위한 테스트 테이블이 표시되어 있습니다. 타겟 차량과 자차량에 대한 요구사항이 테이블에 기술되어 있습니다.

고속도로 차선 추종 참조 응용 사례에 대한 요구사항 테스트.

MATLAB 및 Simulink 사용자의 ADAS 응용 사례