ADAS 및 자율주행차 개발 요구 사항 관리와 트레이서빌리티에 관한 접근 방법

2021 년 1 월 4 일

AV 및 ADAS 자율 기능 시스템이 복잡해짐에 따라 전통적인 방법을 통한 안전 관련 중요 소프트웨어 개발은 거의 한계에 다다른 모양새입니다. 자율 시스템은 실세계의 복잡한 주행 환경에서 작동하도록 설계되었기 때문에 실세계에서 발생 가능한 무수히  다양한 시나리오를 처리해야 할 것입니다.  자율주행차 개발 과정에서 특이 사례가 발생하면 해당 시나리오는 요구 사항에 추가되고 반영되어야 합니다. 또한, 새롭게 생산되는 차량에 대한 소프트웨어 개발을 진행하며 동시에 동시에 기존 운행 중인 차량에 대해서도 무선 업데이트를 통해 새로운 기능이 추가되어야 합니다. 결과적으로 소프트웨어 품질 트레이스를 제때 하는 것과 시간 경과에 따른 회귀를 방지하는 것은 탑승자의 안전을 보장하며 자율주행 행동을 정확히 예측하는데 필수적입니다.


기존 ADAS 개발에서 V-모델은 안전과 관련된 중요한 시스템을 개발하고 평가하기 위해 종종 채택됩니다 (그림 1). 이러한 개발 프로세스는 요구 사항을 정의하고 각 요구 사항을 상위 구성 요소와 기본 구성 요소로 분할 테스트한 다음, 전체 요구 사항에 대해 스택의 성능을 테스트하는 것으로 구성됩니다. 자율 시스템 개발이 고도화되고 복잡해짐에 따라, 안전을 보장하기 위한 요구 사항을 정의하고 그에 따라 크게 증가하는 시나리오 확보는 매우 어려운 일입니다. 또한 실제 운전을 통해 수집되는 새로운 정보를 통해 시스템 운영 설계 영역 (ODD)가 확장되며 그에 따른 요구 사항도 지속적으로 변경되고 조정됩니다. 

그림 1 : V- 모델, 자율 주행 차량 테스트 및 검증을 위한 참조 모델

이 블로그에서 Applied 팀은 요구 사항 정의에 관한 기존 시스템 엔지니어링 팀에서 채택한 전통적인  방식부터 머신러닝(ML) 기반의 최근 방법까지 다양한 접근 방식을 살펴 봅니다. 또한 개발 기간 동안 요구 사항을 관리하고 업데이트하는 방법에 대해 논의합니다.


요구 사항 유형 :

자율 주행 시스템은 내부 엔지니어링 팀, 승객, 규제 당국 및 상업용 차량 운영자와 같은 다양한 이해관계자의 기대치를 충족해야 합니다. 또한 시스템은 여러 유형의 요구 사항을 충족해야 합니다 (표 1). 요구 사항은 일반적으로 이해관계자의 기대에 따라 개발되지만 운영 개념, 지원 전략 활성화, 효과 측정 및 산업 안전 표준과 같은 요소도 고려해야 합니다. 예를 들어, 요구 사항은 ISO/PAS 21448 (또는 SOTIF) 또는 ISO 26262와 같은 안전 표준을 따라 각각 안전하다고 선언될 수 있는 기능을 생성하고 시스템과 구성 요소가 오류를 범할 위험을 최소화해야 합니다.

표 1 : 자율 주행차 개발 요구 사항의 예

요구 사항 정의 방법

ML 기반 AV 프로그램은 자율 시스템을 개발하고 검증하기 위해 잠재적으로 막대한 양의 실차 및 시뮬레이션 데이터를 요구하기 때문에 전통적인 시스템 엔지니어링 팀과는 다른 요구 사항 정의가 필요합니다.


요구 사항 정의에 관한 기존의 접근 방식 :

전통적인 시스템 엔지니어링에서 요구 사항 정의 프로세스는 상위 요구 사항이 기능과 성능의 요구 사항으로 분류되고 자율 시스템, 하위 시스템 그리고 구성 요소로 분기하는 계층 구조를 따릅니다 (그림 2). 이해관계자의 기대치 (예 : 프로그램의 목표, 가정, 기능/행동 기대치), 운영 개념 (제품의 라이프사이클 동안 시스템이 운영되는 방식), 그리고 인간/시스템간 상호 작용(어떻게 하드웨어와 소프트웨어는 시스템의 인프라/인력과 상호 작용할 것인가 등)의 기술적인 문제를 식별하고 설계하기 위해 평가됩니다. 요구 사항은 정량화 가능한 성능이나 기타 기준을 설정하여 추가로 정의할 수 있습니다.

그림 2 : 기존의 요구 사항 정의 프로세스의 개념

세부 요구 사항이 설정된 후 파생된 전체 요구 사항이 각 레벨(예 : 시스템, 하위 시스템)에서 초기 이해관계자의 기대치에 상응하도록 검증되어야 합니다.


이러한 접근 방식은 시스템의 복잡도가 비교적 낮아서, 발생할 수 있는 모든 가능한 상황에 대한 생성이 가능한 경우 유용하다.  그러나 더 광범위한 자율 주행 사용 사례로 확장할 때 고려해야 될 시스템 변수가 많은 환경에서 다양한 특이 사례를 탐색해야 하며 고려해야할 요구 사항과 시나리오의 수가 폭발적으로 늘어나게 됩니다(이 블로그 게시물에서 해당 토픽에 대해 자세히 알아보기).


그렇다면 더욱 다양한 ODD에서 요구 사항을 정의하는 다른 접근 방식이 있을까요?


머신러닝(ML)기반 기업이 요구 사항 정의에 접근하는 방법 :

반대로 ML 기반 AV 프로그램은 실제 드라이브 데이터에 대한 엄격한 분석을 통해 많은 요구 사항을 정의합니다. 개발팀은 먼저 주행 속도, 도로 곡률까지의 거리, 감속, 추종 거리 등과 같은 ODD(예 : 도시 지역)에서 안전한 안내에 필요한 목록을 제시합니다 (그림 3). 각 항목에 대해 팀은 승객의 편안과 안전을 위해 정확한 임계값을 찾기 위해 수천 개의 시나리오를 분석합니다. 예를 들어, 안전한 추종 거리를 알아내기 위해 팀은 ODD를 가로 질러 다른 차량을 뒤쫓는 시나리오를 분석하여 각 상황의 선두 차량으로부터 안전 거리를 도출할 수 있습니다. 이렇게 수치화된 결과는 요구되는 성능 사항을 제시합니다.

그림 3 : 보행자 안전 정지 거리에 대한 기능 시나리오 테스트의 구체적인 변형 예제

요구 사항 정의 프로세스는 AV 스택 또는 실제 운전자가 경험한 일반적으로 알려진 문제를 기반으로 반복됩니다. 예를 들어, 사람이 평균 추종 거리를 2초만 벗어나더라도 과거 주행 데이터를 조사한 결과 선행 차량이 갑자기 브레이크를 밟는다 해도 후행 차량이 반응할 충분한 시간을 주지 않는다는 사실을 발견할 수도 있습니다. 이 경우 안전한 거리를 유지하기 위해 좀 더 차간 거리를 두는 등의 요구 사항을 조정할 수 있습니다.


데이터 기반 요구 사항이 설정되면 경로계획(planning) 알고리즘 개발과 시뮬레이션 테스트를 위한 시나리오 생성이 동시에 이루어집니다.


개발 라이프 사이클 전반에 걸친 요구 사항 관리

새로운 특이 사례가 발견되고, 사용자 개입이 발생하며, ODD 범위가 확장됨에 따라 제품 개발 기간 동안 요구 사항은 끊임없이 변경됩니다. 변화하는 요구 사항 목록을 관리하기 위해 개발 팀이 취할 수있는 모범 사례는 무엇일까요?


요구 사항 관리에는 일반적으로 요구 사항에 대한 성능 추적, 근본적인 원인 평가, 오류 디버깅, 요구 사항 임계값 조정 등이 포함됩니다. 시스템과 구성 요소 설계가 요구 사항을 충족하는지 확인하기 위해 테스트를 수행 할 때는 먼저 요구 사항을 의미상 관련 있는 사전 정의된 시나리오로 변환하는 것이 중요합니다. 요구 사항(예 : 추종 거리)은 기능적 시나리오(예 : 도심에서 차간 간격)와 연결되어야하며, 매개 변수가 변화되어도 적용되어야 합니다(예 : 도로 상태, 날씨 변동, 액터 차량 유형). 매개 변수 분포가 설정되면 시뮬레이션 테스트의 구체적인 시나리오 (특정 테스트가 가능한 사례)가 생성 될 수 있습니다.


개별 요구 사항에 대한 AV 스택의 성능을 추적하기 위해 사전에 구현된 도구를 사용하여 시뮬레이션 테스트 결과를 원래 요구 사항으로 자동 추적하여 완전한 추적성 체인을 유지할 수 있습니다. 또한 이러한 도구를 통해 개발 팀은 확인된 요구 사항과 추가 평가가 필요한 요구 사항을 파악하여 시뮬레이션 진행 상황을 모니터링할 수 있습니다.


AV 스택이 요구 사항을 충족하지 않으면 개발 팀은 오류를 디버깅하거나 앞에서 설명한 대로 요구 사항 변경을 고려할 수 있습니다. 요구 사항을 더 엄격하게 만들면 차량에 오류에 대한 추가 보호 장치가 제공되는 경우가 대부분이지만 일부 상황에서는 요구 사항을 완화하는 것이 더 안전 할 수 있습니다 (예 : 고속도로 차선 병합시 제한 속도 초과). 이 예는 특정 ODD의 맥락을 고려하여 요구 사항을 정의하는 것의 중요성을 강조합니다.


Applied의 접근 방식

Applied Intuition은 요구 사항에서 시나리오를 자동으로 생성하는 데 필요한 워크플로 셋업을 지원합니다. Applied 도구를 사용하여 개발 팀은 높은 수준의 기능 요구 사항에서 실현 가능한 시나리오, 논리적 시나리오 및 구체적인 시나리오를 프로그래밍 가능한 방식으로 생성하고 대규모 시뮬레이션을 실행하여 테스트 결과를 프로그래밍 방식으로 분석 할 수 있습니다. Applied 엔지니어링 팀의 요구 사항 및 추적성 주제에 대해 상의하시거나 자세히 알아 보시려면 이 링크를 통해 문의하십시오.

자율주행차 관련 소식 구독하기