자율 주행과 안전

Bernard Dion, Chief Technical Officer–Systems, ANSYS and Michael Wagner, Edge Case Research, Pittsburgh, USA

모든 운전 시나리오를 처리하도록 컴퓨터를 프로그래밍하는 것은 불가능합니다. 따라서 오늘날의 자율 주행 시스템은 거의 모든 상황에 있어 올바른 결정을 내리기 위해 인간처럼 학습하고 생각하는 프로그램을 기반으로 하고 있습니다. 하지만 이러한 프로그램들이 안전성을 위해 어떻게 검증될 수 있을까요? 정답은 안전을 극대화하는 임베디드 소프트웨어 아키텍처와 그것의 약점을 신속히 파악하기 위해 자율 주행 소프트웨어에 수십억 개의 어려운 주행 케이스를 가하는 시뮬레이션 플랫폼을 신중하게 설계하는 것입니다.

Save PDF 구독하기
Drive Safely

가능한 모든 주행 상황을 인식하고, 차량 탑승자와 보행자의 안전을 보장할 수 있는 판단을 내릴 수 있는 자율 주행 시스템을 개발하는 것은 복잡하고 쉽지 않은 일입니다. 일례로 도심 거리에 나타날 수 있는 보행자, 차량 또는 기타 물체를 식별하기위한 규칙을 개발하는 과제를 고려해 봅니다. 기존의 요구 조건에 따라 움직이는(Requirements-driven) 프로그래밍으로는 오늘날의 도로와 고속 도로에서 발생할 수 있는 엄청난 양의 잠재적 상황을 제대로 제어할 수 없습니다.

자동화된(Hands-off) 자율 주행시스템은 식료품점으로 가는 길에 발생할 수 있는 모든 상황에 노출되지 않고도 패턴을 인식할 수 있는, 인간과 비슷한 능력을 개발하도록 학습될 수 있는 딥 러닝 알고리즘에 의존합니다. 이러한 시스템에는 기존의 Safety Critical 소프트웨어를 확인(Validate)하는 데 사용되었던 상세하게 정의된 요건과 아키텍처가 없습니다. 도로 주행으로는 안전성과 신뢰성을 입증하기 위해서는 수십억 마일을 실제 테스트해야 하기 때문에 이는 실용적인 검증 방법이라 할 수 없습니다. ANSYS SCADE/자율 주행 차량 오픈 시뮬레이션 플랫폼은 물리학, 전자공학, 임베디드 시스템 및 소프트웨어 시뮬레이션을 통합하여 완전자율 주행 시스템을 정확하게 시뮬레이션 합니다. ANSYS시뮬레이션 플랫폼과 ANSYS SCADE 모델 기반 개발 툴을 Edge Case Research(ECR)의 Switchboard™ 자동화된 강건성테스트 기술 및 ANSYS medini 안전성 분석 기능과 함께 연결함으로써, 딥 러닝을 사용하는 시스템을 포함하고 있는 자율 주행 시스템에서 폭넓은 안전성을 달성할 수 있습니다.

machine learning for autonomous systems

기존 소프트웨어로는 문제가 해결되지 않기 때문에, 이러한 최신 자율 주행 소프트웨어의 중심에는 머신 러닝과 딥 러닝이 있습니다.

 

ADAS에서 자율 주행까지

오늘날 자동차에 사용되는 첨단 운전자 지원 시스템(ADAS)은 잠재적 문제에 대해 운전자에게 경고하거나 충돌을 피하기 위해 차량을 제어하는데 점점 더 많이 사용되고 있습니다. 이러한 안전 시스템은 일반적으로 ISO 26262에 정의된 시스템 및 임베디드 소프트웨어 라이프사이클인 V-model을 사용하여 검증됩니다. V-model을 사용하여 개발자는 시스템의 상세한 요구 사항과 아키텍처를 신중하게 정의한 다음, 시스템이 각 요구 사항을 만족하는지를 체계적으로 확인합니다. ANSYS SCADE Suite의 완전한 end-to-end 모델 기반 시스템 엔지니어링(MBSE) 솔루션은 주요 자동차 제조 업체의안전 관련 시스템 개발에 사용되고 있습니다.

완전한 자율 주행 시스템을 개발하는 것은 훨씬 더 복잡하고, 완전 자율 차량 제어 루프를 구현하기위한 머신 러닝/딥 러닝 및 제어 논리의 조합에 기초해야 합니다. 제어 루프는 감지(차량이 관찰하는 것), 모션 계획(차량이 계획하는 동작) 및 모션 실행(차량이 계획을 완료하는 방법)으로 구성되어 있습니다. 이 제어 루프는 차량이 환경의 지속적인 변화에 반응할 수 있도록 주기적으로 실행됩니다. 그러나 머신 러닝에 기초한 자율 주행 시스템은 개발자가 극도로 높은 안전 수준을 달성하는 능력을 입증한 후에만 일반에 공개될 수 있습니다. 도로주행 테스트는 차량 개발 프로세스에 있어 매우 중요한 부분이지만 안전성 확인(Validation)에 대한 해답은 아닙니다. 문제는 도로 주행 테스트가 주로 사람이나 자율 주행 운전자에게 어려운 것이 아닌 일상적인 상황에서 이루어진다는 점입니다. 안전성을 입증하기 위해 수십억 마일의 도로 주행 테스트가 필요할 것이며, 이를 끝내더라도, 고장이나 코드의 변경이 발생하게 되면 이를 처음부터 다시 시작해야 할 수도 있습니다.

automated driving control loop

"자동화된 자율 주행 시스템은 모든 가능한 상황에 노출되지 않고도 패턴을 인식하도록 훈련시킬 수 있는 딥 러닝 알고리즘에 기반합니다."

안전성 검증 과제의 극복

ANSYS ADAS/자율 주행 차량 오픈 시뮬레이션 플랫폼은 다음 기능을 통합하여 도로 주행 테스트에 필요한 시간과 비용의 일부만으로도 더많은 시나리오를 테스트할 수 있습니다.

  • 자율 차량이 작동하는 가상 세계와 정확한 센서 시뮬레이션(레이더, 라이더, 카메라, GPS 등)을 이용한 가상 차량 자체의 모델링을 비롯한 주행 시나리오의 시뮬레이션
  • 제어 및 인간-머신 인터페이스(HMI) 소프트웨어를 위한 ISO26262에 부합하는 모델 기반 개발 도구
  • 반도체 및 전자 시스템의 신호무결성, 열, 구조 및 전자기 신뢰성에 대한 최적화

모든 물리, 임베디드 시스템, 소프트웨어 시뮬레이션 및 코드 생성의 통합을 통해 자율 주행 시스템 개발자는 단일 플랫폼에서 완벽하게 자동화된 제어 루프를 정확하게 시뮬레이션을 할 수 있습니다. 주행 시나리오 모델은 시험 주행에서 시험 차량과 기타 차량 및 물체의 움직임을 애니메이션화합니다. 센서 모델은 가상 세계의 주변 환경과 출력 센서 신호를 관찰합니다. 신호 처리 모델 및 딥 러닝은 센서 데이터로부터 물체 및 주행 조건을 식별합니다. 제어 알고리즘은 제어를 위한 판단을 내리고, 액추에이터 입력을 생성하고, 승객/운전자에게 정보 및 판단된 정보를 표시합니다. 차량 구성 요소 모델은 액추에이터 입력을 사용하여 스티어링 및 제동과 같은 차량 하위 시스템의 응답을 계산합니다. 차량 동역학 모델은 테스트 차량의 위치, 속도 및 방향을 계산합니다.

simulation for automated driving control loop

자동 주행 제어 루프의 시뮬레이션

 

ANSYS autonomous vehicle simulation architecture

ANSYS 자율 주행 차량 시뮬레이션 아키텍처

 

안전한 차량을 위한 안전한 아키텍처

시뮬레이션은 도로 테스트보다 훨씬 빠르고 효율적이지만 인식, 동작 계획 및 실행 기능에 사용되는 복잡한 자율 알고리즘의 안전성을 검증하는 방법에 대한 질문은 스스로 대답하지 않습니다.

이를 위해 첫 번째 엔지니어는 전반적인 자율 주행 차량 소프트웨어 아키텍처를 인식, 계획 및 실행을 기반으로 하여 의미 있는 구성요소 집합으로 쪼개야 합니다. 다음으로, 그들은 이들 각각의 요소들에 대해서 안전을 보장할 수 있는 아키텍처를 설계해야 합니다. 이 아키텍처는 DOER-CHECKER 원리를 기반으로 하고 있습니다.

상세 아키텍처는 극도로 복잡하고, 빈번하게 업데이트되며, 검증하기 어려운 기본 알고리즘(DOER)으로 구성되어 있습니다. 이 기본 알고리즘은 기본 알고리즘의 출력들이 올바른지 확인하는 각각의 안전 게이트(CHECKER)와 쌍을 이루고 있습니다. 안전 게이트(Safinggate) 가 문제를 감지하면 안전 채널 알고리즘이 제어를 맡습니다. 이는 카네기 멜론 대학에 재직했던 ECR팀의 멤버가 개발한 Two channel 아키텍처의 기초가 될 수 있습니다. (다이어그램 참조). 이 아키텍처는 장기 임무를 생성하는 기본 채널과 차량을 도로 옆으로 이동하는 것과 같은 단기 임무를 생성하는 안전 채널로 구성됩니다.

이 아키텍처를 사용하여 계획 단계에서 계획의 안전성을 점검할 수 있습니다. 기본 알고리즘이 가장 높은 안전 등급(ISO 26262의 ASIL D)의 목표를 충족하지 않아도 됩니다. 대신, 이 책임은 안전 게이트(Safing gate)에 할당됩니다. 이것을 가능하게 하는 것은 안전 게이트(Safinggate)에 대한 상세한 안전 요구 사항이 수립되어 그 구현이 ISO26262의 ASIL D 목표를 충족할 수 있도록 하는 것입니다. 이는 이중 주차된 차량이 감지되어 차량이 정지하는 것을 예로 설명할 수 있습니다.

safing channel

기본 채널은 정의된 종료 상태가 없는 장기 지속성 미션을 생성하지만 안전 채널은 안전 상태로 끝나는 단기 지속성 미션을 생성합니다.

safing algorithm

계획 단계의 안전성 알고리즘

"ASIL D 목표를 충족할 수 있도록 하는 것입니다. 이는 이중 주차된 차량이 감지되어 차량이 정지하는 것을 예로 설명할 수 있습니다."

자동화된 강건성 테스트를 통한 인식(Perception) 장애의 감지 및 진단

인식의 안전을 보장하는 것은 더 복잡합니다. 인식된 출력이 정확하고 안전한지 확인하기 위해 안전 게이트(Safing gate)를 만드는 것은 불가능합니다. 따라서 인식의 안전성은 다른 기법을 사용하여 확인되어야 합니다. ECR SwitchBoard는 고장을 발견하기 위해 자동화된 강건성 시험을 제공하여 이 난제를 해결합니다.

인식 안전을 입증하기 위해 필요한 것은 자율 주행 시스템과 인간운전자들에게 까다롭고 어려운 케이스들을 대규모로 노출시키는 것입니다. ECR Switchboard는 새로운 알고리즘을 사용하여 잠재적으로 무한한 수의 가능한 테스트 중에서 소프트웨어에 장애를 일으킬 수 있는 테스트 케이스를 신속하게 찾고 장애가 발생한 이유를 파악합니다. 모델을 테스트하는데 유용한 예외적인 질의(Query)을 식별하기 위해 고차원의 입력 공간(Input space)을 조사합니다. 고장이 발생할 때까지 정상적인 입력과 예외적인 입력을 섞어서 자동 주행 시스템에 가합니다. 그런 다음, 해당 장애는 그 장애를 유발할 수 있도록 어떠한 fieldvalue를 지정해야 하는지에 유용한 힌트 역할을 하는 입력의 집합을 제공하기 위해, 단일 고장 유발 입력으로 일반화하여 진단됩니다. 이 접근 방식은 시스템 장애를 일으키는 극단 조건(Edge cases)를 찾는 데 매우 효과적입니다.

아마도 자율 주행 시스템이 본격적으로 적용되는 데에 남아 있는 가장 큰 과제는 강건성과 안전성을 보장하기 위한, 정의된 요구 사항과 설계가 없이 작동하는 머신 러닝과 딥 러닝 알고리즘의 디버깅과 테스팅일 것입니다. ANSYS는 ISO 26262를 준수하는 SW 코드 생성기가 포함된 완전 자동 운전 시뮬레이션 플랫폼을 제공하기 위해, Multi Physics 시뮬레이션과 Safety Critical 임베디드 소프트웨어 시뮬레이션에 대한 풍부한 경험을 활용했습니다. 이 플랫폼은 안전성 확인의 잔류 위험을 최소화하기 위해 어려운 시나리오로 치우치면서도, 매우 많은 시뮬레이션 시나리오를 실행하는 ECR Switchboard 강건성 테스트 플랫폼에 이제 통합되어 있습니다. 이 파트너십을 통해 가장 향상된 자율 주행 시스템의 안전성을 확인하고 검증하기 위한 완벽한 솔루션을 제공할 수 있게 되었습니다.

ECR switchboard
double-parked car
ECR Swichboard는 경로 계획의 장애를 찾습니다.

ANSYS에 문의하십시오.

문의하기
문의하기