AV 및 ADAS 시스템 엔지니어가 공공 도로 주행데이터를 사용하여 요구 사항을 자동으로 검증하는 방법

2021-09-13
1 min read

자율 주행 시스템이 점점 더 복잡해짐에 따라 시스템 엔지니어링 팀은 다양한 요구 사항을 정의, 검증 및 검정해야 합니다. 요구 사항 검증을 위해 공공 도로 주행 데이터를 사용하는 것은 역사적으로 어려운 일이었기 때문에 일반적으로 시뮬레이션을 통한 접근 방식을 사용하게 되었습니다. 이 블로그 게시물에서는 공공 도로 주행 데이터로 요구 사항을 검증하는 2가지 기존 접근 방식을 살펴보고 엔지니어링 팀에서 이러한 접근 방식을 사용하기 어렵다고 판단한 이유에 대해 알아봅니다. 또한 "시나리오 검색"이라는 새로운 방법을 소개하고 시나리오 검색을 통해 기존 접근 방식과 관련된  오류가 발생하기 쉽고 시간 소모적인 작업을 자동화하는 방법에 대해 설명합니다.

요구 사항을 검증하기 위해 공공 도로 주행 데이터를 사용하는 이유는 무엇일까요?

대부분의 자율주행차(AV) 및 자동 운전자 보조 시스템(ADAS) 기업에서는 공공 도로 주행을 테스트 방법 중 하나로 사용하지만 요구 사항 검증에는 잘 사용하지 않았습니다. 시뮬레이션 도구를 사용하면 특정 시나리오를 쉽게 생성하고, 그 시나리오에 대한 테스트/실패 기준을 시뮬레이션하고, 동일한 시나리오를 다양하게 변형하여 롱테일 이벤트를 커버할 수 있습니다. 이런 이유로 시뮬레이션을 통해 요구 사항을 검증하는 방법이 더 일반적으로 사용되었습니다.

시스템 엔지니어링 팀은 요구 사항 검증을 위해 시뮬레이션 외에도 공공 도로 주행 데이터를 사용할 수 있습니다. 대부분의 팀에는 이탈과 같은 중요한 이벤트를 분석하는 것 외에는 거의 사용하지 않는 풍부한 드라이브 데이터가 이미 기록 및 저장되어 있습니다. 공공 도로 주행 데이터를 사용하여 요구 사항을 검증하는 2가지 기존 방법과 이러한 방법이 적용되지 않은 이유를 살펴보겠습니다.

공공 도로 주행 데이터를 사용한 요구 사항 검증: 2가지 접근 방식

휴먼 오퍼레이터 태깅

휴먼 오퍼레이터 태깅은 실제 공공 도로 주행 중에 찾아야 하는 상황을 오퍼레이터에게 알리고 주행 중에 그 상황이 생겼을 경우 곧바로 오퍼레이터가 이벤트를 태깅하는 접근 방식입니다. 이후 시스템 엔지니어링 팀이 태깅된 이벤트를 초기 요구 사항과 비교하여 합격 여부를 확인합니다.

그림 1: 차량 끼어들기를 보여주는 공공 도로 주행 데이터 (출처: nuScenes)

예를 들어 느린 차량이 앞으로 끼어든 후에 차량이 일정한 거리를 유지해야 한다고 명시된 요구 사항이 있다고 가정해 보겠습니다. 이 경우 오퍼레이터는 다른 차량이 차량의 차선으로 끼어드는 모든 상황을 태깅합니다(그림 1).

불행히도, 휴먼 오퍼레이터 태깅을 통한 요구 사항 검증은 시스템 엔지니어가 공공 도로 주행에 앞서 요구 사항을 정의한 경우에만 효과적입니다. 사전 정의된 요구 사항 없이 휴먼 오퍼레이터가 관심 있는 상황을 태깅하는 경우 일부 관련 이벤트를 놓칠 수 있습니다. 자동 주행 시스템에 대한 요구 사항이 지속적으로 발전하고 변경됨에 따라 휴먼 오퍼레이터 태깅을 통한 요구 사항 검증을 신뢰할 수 없게 되었습니다. 또한 인적 오류가 발생할 가능성도 높습니다. 오퍼레이터가 상황을 놓치거나 실수로 태깅한 경우 뒤늦게 이벤트를 태깅하거나 결정을 되돌릴 수 없습니다.

수동 분석

휴먼 오퍼레이터 태깅과 마찬가지로 수동 분석은 공공 도로 주행 데이터를 사용하여 요구 사항을 검증하는 또 다른 일반적 접근 방식입니다. 수동 분석을 사용하는 경우 AV 및 ADAS 엔지니어링 팀은 실제 공공 도로 드라이브의 드라이브 데이터를 기록하고 수집합니다. 이후 시스템 엔지니어는 요구 사항을 검증하기 위해 드라이브를 한 번에 하나씩 로컬로 다운로드하고 해당 드라이브에서 특정 이벤트를 검색하는 프로그래밍 스크립트를 개발합니다. 원하는 이벤트 사례를 찾으면 엔지니어는 수동으로 해당 결과를 살펴보고 주어진 요구 사항을 통과하는지 확인해야 합니다. 차량 끼어들기 예시의 경우, 시스템 엔지니어는 주행하는 차량 앞으로 더 느린 차량이 끼어드는 이벤트를 식별하는 스크립트를 개발해야 합니다. 그 후 차량이 매번 필요 거리를 유지하는지 검증하기 위해 식별된 이벤트를 확인해야 합니다.

수동 분석의 문제는 엔지니어가 종종 수천 시간의 드라이브 로그를 다운로드하고 스크립트를 개발하고 결과를 확인해야 한다는 것입니다. 따라서 수동 분석은 많은 시간과 리소스가 요구되는 접근 방식입니다.

새로운 접근 방식: 공공 도로 주행 데이터를 사용해 자동으로 요구 사항을 검증하는 시나리오 검색

공공 도로 주행 데이터를 사용하여 요구 사항을 검증하기 위한 새로운 접근 방식은 시나리오 검색을 사용하는 것입니다. 시나리오 검색은 Applied의 드라이브 데이터 탐색 도구인 Data Explorer*의 쿼리 기능입니다. 이를 통해 시스템 엔지니어는 개발과 관련된 데이터 세트를 선별하고 분류를 위한 안전 필수 이벤트를 찾을 수 있습니다. 또한 엔지니어는 시나리오 검색을 통해 공공 도로 주행 데이터에서 특정 이벤트를 자동으로 찾고 분석하여 주어진 요구 사항을 검증할 수 있습니다. Data Explorer의 시나리오 검색과 Applied의 검증 및 검정 도구인 Validation Toolset*를 동시에 사용하면 팀은 요구 사항을 보다 쉽게 ​​정의하고 관리할 수 있으며 전체 스택 성능과 검증 진행 상황을 추적할 수 있습니다.

시나리오 검색의 작동 방식

그림 2: Data Explorer의 5단계 시나리오 검색 워크플로

1. 드라이브 로그 수집 

공공 도로 주행이 종료될 때마다 Data Explorer는 새로운 드라이브 로그를 수집하고 이를 지도상의 차량과 액터의 포즈에 대한 시멘틱 의미를 포함하는 안정적인 형식으로 변환합니다. 이후 사용 가능한 센서 데이터를 처리하여 차량이 주행하는 동안 경험하는 각 이벤트를 분류합니다. Data Explorer는 데이터 채널을 검사하고 일련의 규칙을 적용하여 시나리오 태그를 생성하고 다양한 차량 및 액터의 행동을 설명하는 시나리오별 메트릭을 추출합니다. 그리고 로그 틱 (log ticks)에 이러한 태그와 메트릭을 주석으로 첨부합니다. 이를 통해 엔지니어는 주어진 요구 사항에 따라 이벤트의 서브 세트를 쉽게 쿼리할 수 있습니다.

2. 요구 사항 정의하기 또는 가져오기

시스템 엔지니어링 팀은 Data Explorer와 직접 통합할 수 있는 Validation Toolset에서 요구 사항을 정의하거나 다른 도구에서 요구 사항을 만든 후에 Data Explorer로 가져올 수 있습니다. 차량 끼어들기 예시의 경우, 느린 액터(즉, 다른 차량)가 특정 충돌 소요 시간(TTC) 임계값 내에 차량의 차선으로 차선을 변경하면 차량은 액터와 일정 거리를 유지해야 한다고 요구 사항을 명시할 수 있습니다.

3. 데이터 소스 선택 및 일치하는 이벤트 식별

다음으로, Data Explorer는 팀의 드라이브 로그에서 일치하는 이벤트를 자동으로 식별합니다. 수동 분석과 달리 시나리오 검색은 클라우드에서 데이터를 처리합니다. 이를 통해 엔지니어는 각 드라이브를 하나씩 분석하는 대신 전체 드라이브 로그 라이브러리에서 이벤트를 검색할 수 있습니다. 각 요구 사항에 맞는 이벤트를 정확하게 검색하고 해당 이벤트에 주석을 달기 위해 Data Explorer는 다양한 데이터 소스를 결합해야 합니다. 일부 요구 사항은 오프라인 컴퓨터 비전 알고리즘과 같이 하나의 데이터 소스를 사용하여 찾을 수 있는 이벤트를 필요로 합니다. 다른 요구 사항은 차량 포즈, 차량 측위 정보, HD 지도, OpenSource 지도, 차량의 인식 시스템 및 외부 오프보드 인식 시스템과 같은 데이터 소스가 결합된 이벤트와 부합합니다.

그림 3: 정차된 버스를 지나치는 차량 (출처: nuScenes)

예를 들어 정차된 버스를 지나치는 차량의 사례를 찾으려면(그림 3), Data Explorer는 다른 액터로 버스가 태깅된 이벤트를 찾아야 합니다. 이 경우, 온보드 시스템의 로그 데이터를 사용하거나 차량의 전방 카메라에 오프라인 컴퓨터 비전 알고리즘을 실행하는 것이 가장 좋습니다.

차량 끼어들기 예시에서 Data Explorer는 스택의 품질에 따라 1개 이상의 데이터 소스를 확인할 수 있습니다. 스택의 품질이 충분히 높은 경우, 오프라인 인식 시스템을 통해 느린 차량이 주행하는 차량의 앞으로 끼어드는 이벤트를 충분히 감지할 수 있습니다. 그렇지 않은 경우, Data Explorer는 오프라인 인식 시스템의 정보를 차량 및 액터 포즈에 대한 정보(두 차량의 위치와 속도를 알기 위해) 및 HD 지도 정보(차량이 어떤 차선에 있는지 알기 위해)와 결합해야 할 수도 있습니다. 이후 Data Explorer는 요구 사항에 맞도록 자동으로 이러한 이벤트를 TTC 및 액터 상대 속도가 지정된 임계값 이하인 경우로 필터링합니다.

그림 4: Data Explorer의 시나리오 검색 기능은 주어진 요구 사항과 일치하는 이벤트를 자동으로 식별합니다.

4. 이벤트 처리 및 요구 사항 검증

이제 Data Explorer는 선택된 이벤트를 자동으로 처리하고(그림 4) 이벤트의 요구 사항 합격 여부를 검증합니다. 이벤트와 관련된 시계열 데이터를 확인한 다음 요구 사항의 기준을 나타내는 복잡한 불린(boolean) 또는 순차(sequential) 논리를 적용하여 이를 검증할 수 있습니다. 위 예시의 경우, 차량이 제동을 하고 액터와 일정한 완충 거리를 유지해야 한다고 합격/불합격 기준을 명시할 수 있습니다. Data Explorer는 이 규칙에 따라 선택된 이벤트를 처리하고 각 이벤트에 대한 합격 여부를 자동으로 계산합니다.

5. 결과에 따른 조치

Data Explorer에서 시나리오 검색을 사용하여 주어진 요구 사항을 성공적으로 검증한 다음 시스템 엔지니어링 팀은 a) Data Explorer에서 불합격 사례를 분류 및 디버깅하고, b) 안전 사례에 대한 신뢰를 구축하기 위해 긍정적인 결과를 사용하고, c) 검증 프로세스를 이해하기 위해 전체 Validation Toolset 요구 사항에 대한 적용 범위를 확인하고 d) Validation Toolset의 모든 요구 사항과 일치 이벤트를 나열하는 검증 보고서를 생성합니다. 시스템 엔지니어링 팀은 Data Explorer의 시나리오 검색 기능 통해 개별 이벤트를 찾고 처리할 수 있으며 Validation Toolset를 사용해 스택 성능을 종합적으로 평가하고 시간에 따른 진행 상황을 추적할 수 있습니다. 두 도구 모두 기존 접근 방식에서 확인되었던 문제를 완화합니다.

결론

기존의 접근 방식이 항상 낮은 안정성과 시간 소모가 큰 수동 작업을 수반했기 때문에 역사적으로 공공 도로 주행 데이터를 사용하여 요구 사항을 검증하는 것은 어려운 일이었습니다. 시나리오 검색은 안정적이고 시간 및 자원 효율적인 방법으로 공공 도로 주행 데이터를 사용하여 요구 사항을 검증할 수 있는 새로운 접근 방식입니다. 시스템 엔지니어는 시나리오 검색을 통해 오퍼레이터가 주행 중에 해당 이벤트를 태깅하지 않은 경우에도 특정 기능 소유자에게 빠르고 효율적으로 실패 이벤트를 보여줄 수 있습니다. 이를 통해 시스템 엔지니어는 이미 수집했지만 현재 거의 사용되지 않는 풍부한 데이터를 활용할 수 있습니다. 기존 데이터를 사용하여 요구 사항을 검증함으로써 시스템 엔지니어링 팀은 모든 테스트 환경에서 성능을 보다 효율적으로 분석 및 검증하고, 시간에 따라 진행 상황을 추적하고, 안전 사례를 구축할 수 있습니다.  

Data Explorer 또는 Validation Toolset의 제품 데모에 관한 자세한 내용은 엔지니어링 팀으로 문의해 주십시오.

*참고: 과거 Data Explorer은 Strada, Validation Toolset은 Basis로 명명 되었습니다.