KR102355257B1 - 자율 차량들을 위한 소프트웨어 검증 - Google Patents

자율 차량들을 위한 소프트웨어 검증 Download PDF

Info

Publication number
KR102355257B1
KR102355257B1 KR1020207019371A KR20207019371A KR102355257B1 KR 102355257 B1 KR102355257 B1 KR 102355257B1 KR 1020207019371 A KR1020207019371 A KR 1020207019371A KR 20207019371 A KR20207019371 A KR 20207019371A KR 102355257 B1 KR102355257 B1 KR 102355257B1
Authority
KR
South Korea
Prior art keywords
scenario
control software
autonomous control
verification model
driving
Prior art date
Application number
KR1020207019371A
Other languages
English (en)
Other versions
KR20200085363A (ko
Inventor
프랭클린 몰레이
오메르 바롤
나다니엘 페이필드
마이너 크라리
Original Assignee
웨이모 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 웨이모 엘엘씨 filed Critical 웨이모 엘엘씨
Publication of KR20200085363A publication Critical patent/KR20200085363A/ko
Application granted granted Critical
Publication of KR102355257B1 publication Critical patent/KR102355257B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
    • B60W30/14Adaptive cruise control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W10/00Conjoint control of vehicle sub-units of different type or different function
    • B60W10/18Conjoint control of vehicle sub-units of different type or different function including control of braking systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
    • B60W30/08Active safety systems predicting or avoiding probable or impending collision or attempting to minimise its consequences
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60YINDEXING SCHEME RELATING TO ASPECTS CROSS-CUTTING VEHICLE TECHNOLOGY
    • B60Y2300/00Purposes or special features of road vehicle drive control systems
    • B60Y2300/08Predicting or avoiding probable or impending collision
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60YINDEXING SCHEME RELATING TO ASPECTS CROSS-CUTTING VEHICLE TECHNOLOGY
    • B60Y2300/00Purposes or special features of road vehicle drive control systems
    • B60Y2300/14Cruise control
    • G05D2201/0213

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Software Systems (AREA)
  • Combustion & Propulsion (AREA)
  • Chemical & Material Sciences (AREA)
  • Traffic Control Systems (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Health & Medical Sciences (AREA)
  • Game Theory and Decision Science (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Business, Economics & Management (AREA)
  • Control Of Driving Devices And Active Controlling Of Vehicle (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 개시의 양태들은 차량을 자율적으로 동작시키기 위한 자율 제어 소프트웨어를 검증하는 것에 관한 것이다. 예를 들어, 자율 제어 소프트웨어는 주행 시나리오를 통해 실행되어 자율 제어 소프트웨어에 대한 결과를 관찰한다. 검증 모델은 주행 시나리오를 통해 복수 회 실행되어 복수 회 각각에 대해 모델에 대한 결과를 관찰한다. 소프트웨어가 주행 시나리오를 통과했는지는 소프트웨어에 대한 결과가 소프트웨어의 제어 하의 가상 차량이 1회 동안 다른 물체와 충돌했음을 표시하는지에 기초하여 결정된다. 검증 모델이 주행 시나리오를 통과했는지는 모델에 대한 결과가 모델의 제어 하의 가상 차량이 복수 회 중 어느 하나에서 다른 물체와 충돌했음을 표시하는지에 기초하여 결정된다. 소프트웨어는 이 결정들에 기초하여 검증된다.

Description

자율 차량들을 위한 소프트웨어 검증
관련 출원들에 대한 상호 참조
본 출원은 2018년 1월 8일에 출원된 미국 특허 출원 제15/864,239호의 계속 출원이며, 그 개시는 이로써 본 명세서에 참조로 포함된다.
예를 들어, 인간 운전자를 요구하지 않는 차량들과 같은 자율 차량들은 하나의 위치로부터 다른 위치로의 승객들 또는 물품들의 수송을 보조하기 위하여 사용될 수 있다. 이러한 차량들은 승객들이 픽업(pickup) 또는 목적지 위치와 같은 일부 초기 입력을 제공할 수 있으며 차량이 그 위치까지 스스로 조종하는 완전 자율 모드로 동작할 수 있는데, 차량은 예를 들어, 차량들, 보행자들, 자전거 사용자들 등과 같은 다른 도로 사용자들에 대해 응답하고 그들과 상호작용하도록 차량에 요구할 수 있는 루트를 결정하고 그를 따르는 것에 의해, 그 자체를 해당 위치로 조종한다. 자율 모드로 동작하기 위해 이러한 차량들에 의해 사용되는 자율 제어 소프트웨어는, 차량들이 다른 물체들과 상호작용하고 있는 영역들에서 차량들을 제어하기 위해 이러한 소프트웨어가 실제로 사용되기 전에 테스트되고 검증되는 것이 중요하다.
본 개시의 일 양태는 자율 주행 모드로 차량을 동작시키기 위한 자율 제어 소프트웨어를 검증하는 방법을 제공한다. 이 방법은, 주행 시나리오를 통해 자율 제어 소프트웨어를 1회 실행하여 자율 제어 소프트웨어에 대한 시나리오의 결과를 관찰하는 단계; 주행 시나리오를 통해 검증 모델을 복수 회 실행하여 복수 회 각각에 대해 검증 모델에 대한 시나리오의 결과를 관찰하는 단계; 자율 제어 소프트웨어에 대한 시나리오의 결과가 자율 제어 소프트웨어의 제어 하의 가상 차량이 1회 동안 다른 물체와 충돌했음을 표시하는지에 기초하여 자율 제어 소프트웨어가 주행 시나리오를 통과했는지를 결정하는 단계; 검증 모델에 대한 시나리오의 결과가 검증 모델의 제어 하의 가상 차량이 복수 회 중 어느 하나에서 다른 물체와 충돌했음을 표시하는지에 기초하여 검증 모델이 주행 시나리오를 통과했는지를 결정하는 단계; 및 결정들에 기초하여 자율 제어 소프트웨어를 검증하는 단계를 포함한다.
일례에서, 주행 시나리오는 주행 시나리오들의 주어진 카테고리에 대한 복수의 주행 시나리오 중 하나이고, 자율 제어 소프트웨어를 검증하는 것은 주어진 카테고리에 대한 복수의 주행 시나리오 전부에 걸쳐 자율 제어 소프트웨어 및 검증 모델의 성능을 평가하는 것에 기초한다. 이 예에서, 방법은 자율 제어 소프트웨어에 의해 통과된 주행 시나리오들의 수를, 복수 회에서 적어도 1회 통과된 시나리오들의 수와 비교하는 단계를 또한 포함하고, 자율 제어 소프트웨어를 검증하는 것은 이 비교에 추가로 기초한다. 다른 예에서, 주행 시나리오를 통해 검증 모델을 복수 회 실행하는 것은 일반적인 응답 타입들의 미리 결정된 세트에서 식별된 각각의 응답 타입들에 대해 시나리오를 1회 실행하는 것을 포함한다. 다른 예에서, 복수 회 각각은 상이한 검증 모델의 응답에 대응하여, 복수 회 중 제1 회는 제동 응답을 포함하고, 복수 회 중 제2 회는 우측으로의 방향전환 응답을 포함하고, 복수 회 중 제3 회는 좌측으로의 방향전환 응답을 포함하고, 복수 회 중 제4 회는 제동 및 우측으로의 방향전환 응답을 포함하고, 복수 회 중 제5 회는 제동 및 좌측으로의 방향전환 응답을 포함한다. 다른 예에서, 자율 제어 소프트웨어가 주행 시나리오를 통과했는지를 결정하는 것은 다른 물체와의 임의의 충돌의 심각도 레벨에 추가로 기초한다. 이 예에서, 자율 제어 소프트웨어를 검증하는 것은 심각도 레벨에 추가로 기초한다. 다른 예에서, 검증 모델이 주행 시나리오를 통과했는지를 결정하는 것은 다른 물체와의 임의의 충돌의 심각도 레벨에 추가로 기초한다. 이 예에서, 자율 제어 소프트웨어를 검증하는 것은 심각도 레벨에 추가로 기초한다. 다른 예에서, 방법은 물체들 둘 다가 시나리오에서 각각의 현재 궤적들을 계속 갔을 경우에, 가상 차량이 다른 물체와 충돌하기 전에 시나리오 내에서 미리 결정된 초 수(predetermined number of seconds)에 대응하는 시나리오에서의 가상 차량의 검증 모델 제어 또는 자율 제어 소프트웨어를 제공하기 위한 핸드오버 시간을 식별하는 단계를 또한 포함하고, 핸드오버 시간은 주행 시나리오를 통해 검증 모델을 실행하고 주행 시나리오를 통해 자율 제어 소프트웨어를 실행하기 위해 사용된다. 이 예에서, 핸드오버 시간은 주행 시나리오를 통해 자율 제어 소프트웨어를 실행하기 위해 사용된다. 그에 부가하여 또는 대안적으로, 방법은 핸드오버 시간의 확인을 위해 인간 조작자에게 시나리오 및 핸드오버 시간을 제공하는 단계를 또한 포함한다.
본 개시의 추가 양태는 자율 주행 모드에서 차량을 동작시키기 위한 자율 제어 소프트웨어를 검증하기 위한 시스템을 제공한다. 시스템은, 주행 시나리오를 통해 자율 제어 소프트웨어를 1회 실행하여 자율 제어 소프트웨어에 대한 시나리오의 결과를 관찰하고; 주행 시나리오를 통해 검증 모델을 복수 회 실행하여 복수 회 각각에 대해 검증 모델에 대한 시나리오의 결과를 관찰하고; 자율 제어 소프트웨어에 대한 시나리오의 결과가 자율 제어 소프트웨어의 제어 하의 가상 차량이 1회 동안 다른 물체와 충돌했음을 표시하는지에 기초하여 자율 제어 소프트웨어가 주행 시나리오를 통과했는지를 결정하고; 검증 모델에 대한 시나리오의 결과가 검증 모델의 제어 하의 가상 차량이 복수 회 중 어느 하나에서 다른 물체와 충돌했음을 표시하는지에 기초하여 검증 모델이 주행 시나리오를 통과했는지를 결정하고; 결정들에 기초하여 자율 제어 소프트웨어를 검증하도록 구성된 하나 이상의 프로세서를 갖는 하나 이상의 컴퓨팅 디바이스를 포함한다.
일례에서, 주행 시나리오는 주행 시나리오들의 주어진 카테고리에 대한 복수의 주행 시나리오 중 하나이고, 자율 제어 소프트웨어를 검증하는 것은 주어진 카테고리에 대한 복수의 주행 시나리오 전부에 걸쳐 자율 제어 소프트웨어 및 검증 모델의 성능을 평가하는 것에 기초한다. 이 예에서, 하나 이상의 프로세서는 자율 제어 소프트웨어에 의해 통과된 주행 시나리오들의 수를, 복수 회에서 적어도 1회 통과된 시나리오들의 수와 비교하도록 구성되고, 자율 제어 소프트웨어를 검증하는 것은 이 비교에 추가로 기초한다. 다른 예에서, 하나 이상의 프로세서는 자율 제어 소프트웨어가 주행 시나리오를 통과했는지를 다른 물체와의 임의의 충돌의 심각도 레벨에 추가로 기초하여 결정하도록 추가로 구성된다. 다른 예에서, 하나 이상의 프로세서는 검증 모델이 주행 시나리오를 통과했는지를 다른 물체와의 임의의 충돌의 심각도 레벨에 추가로 기초하여 결정하도록 추가로 구성된다. 다른 예에서, 하나 이상의 프로세서는 물체들 둘 다가 시나리오에서 각각의 현재 궤적들을 계속 갔을 경우에, 가상 차량이 다른 물체와 충돌하기 전에 시나리오 내에서 미리 결정된 초 수에 대응하는 시나리오에서의 가상 차량의 검증 모델 제어 또는 자율 제어 소프트웨어를 제공하기 위한 핸드오버 시간을 식별하도록 추가로 구성되고, 핸드오버 시간은 주행 시나리오를 통해 검증 모델을 실행하고 주행 시나리오를 통해 자율 제어 소프트웨어를 실행하기 위해 사용된다. 다른 예에서, 시스템은 자율 제어 소프트웨어를 또한 포함한다. 다른 예에서, 시스템은 검증 모델을 또한 포함한다.
도 1은 예시적인 실시예에 따른 예시적인 차량의 기능도이다.
도 2는 본 개시의 양태들에 따른 지도 정보의 예이다.
도 3은 본 개시의 양태들에 따른 차량의 예시적인 외부 도면이다.
도 4는 본 개시의 양태들에 따른 예시적인 시스템의 도해(pictorial diagram)이다.
도 5는 본 개시의 양태들에 따른 도 4의 시스템의 기능도이다.
도 6은 본 개시의 양태들에 따른 시나리오의 예시적인 표현이다.
도 7은 본 개시의 양태들에 따른 가능한 응답들의 예시적인 도면이다.
도 8은 본 개시의 양태들에 따른 예시적인 흐름도이다.
개요
본 기술은 자율 주행 모드에서 차량을 제어하기 위한 자율 제어 소프트웨어를 검증하는 것에 관한 것이다. 자율 제어 소프트웨어를 검증하거나 부분적으로 검증하기 위한 하나의 접근법은 자율 제어 소프트웨어가 자율 차량을, 이상적인 인간 운전자가 상이한 타입들의 상황들에서 동일한 제동, 가속 및 스티어링 능력들로 차량을 제어하는 것보다 양호하지 않더라도 그만큼 양호한지를 평가하는 것을 수반할 수 있다. 이것을 달성하기 위해, 자율 제어 소프트웨어는 시뮬레이션들 또는 시나리오들의 결과들에 기초하여 이 이상적인 인간 운전자의 검증 모델과 비교될 수 있다. 인간들이 일반적으로 예측불가능하기 때문에, 검증 모델은 특성들의 세트를 확립함으로써 생성될 수 있다. 이러한 특성들은 자극, 지각 반응 시간, 움직임 또는 "이동" 시간, 및 제어 성능과 관련될 수 있다. 다시 말해서, 검증 모델은 이상적인 인간이 임박한 충돌들을 회피하기 위해 어떻게 인지하고, 반응하고, (예를 들어, 제동, 방향전환, 또는 일부 다른 액션을 취하는 것에 의해) 궁극적으로 응답할 것인지에 대한 검증 모델들을 포함할 수 있다. 이와 관련하여, 검증 모델은 많은 상황들에서 인간 운전자보다 양호하거나 그만큼 양호하게 수행할 것으로 실제로 예상될 수 있다.
시나리오들은 부적절하게 거동하고 있는 다른 물체에 대한 응답을 테스트하는 상황으로서 생성될 수 있다. 이와 관련하여, 시나리오들은 단지 주위에서 주행하는 차량들뿐만 아니라 차량의 응답이 차량 및 임의의 다른 물체들의 안전성에 중요한 상황들이다.
사람들 또는 자율 차량들에 의해 관찰되었던 실제 주행 이벤트들로부터, 또는 인간 조작자들에 의해 상상된 상황들로부터 상이한 시나리오들이 생성될 수 있다. 각각의 시나리오에 대한 중요한 피처는 "핸드오버 시간" 또는 자율 제어 소프트웨어 및 검증 모델에 시나리오 내에서의 차량의 제어가 주어지는 시간이다. 핸드오버 시간은 그 시나리오의 상황들에 따라 각각의 시나리오에 대해 자동으로 선택되고 그 후 인간 조작자에 의해 확인되거나 핸드 튜닝될 수 있다. 인간의 검토에 의해 핸드오버 시간에 대해 더 간단한 검증 모델을 사용하는 것은 불필요한 복잡들 및 계산들을 감소시키고 더 큰 데이터세트들에 걸쳐 더 일관된 결과들을 제공할 수 있다.
그 다음, 자율 제어 소프트웨어 및 검증 모델은 성능을 평가하기 위해 시나리오들을 통해 실행될 수 있다. 자율 제어 소프트웨어는 충돌이 없는 경우 또는 충돌이 있는 경우의 시나리오를 "통과"할 수 있고, 손상 가능성은 매우 낮다. 검증 모델의 성능을 평가할 때, 검증 모델은 복수의 상이한 응답 각각 하에서 동일 시나리오를 실행할 수 있다. 검증 모델이 복수의 상이한 응답 중 임의의 하나를 사용하여 통과한다면, 검증 모델은 그 시나리오를 통과한 것으로 간주될 수 있다. 또한, 시나리오를 통과하기 위한 요건들은 검증 모델과 비교해서 자율 제어 소프트웨어에 대해 상이할 수 있다. 예를 들어, 요건들은 검증 모델보다 자율 제어 소프트웨어에 대해 더 엄격할 수 있다.
그 다음, 시나리오들의 결과들은 검증 모델과 비교해서 자율 제어 소프트웨어의 성능을 평가하기 위해 비교될 수 있다. 하나의 경우에, 자율 제어 소프트웨어는 적어도 검증 모델만큼 많은 시나리오들을 통과하는 것과 같은, 특정 요건들을 충족시킬 필요가 있을 수 있다. 자율 제어 소프트웨어가 시나리오들의 모든 카테고리들에 대한 이러한 요건들을 충족시킬 수 있는 경우, 자율 제어 소프트웨어는 검증 모델에 대해 검증된 것으로 간주될 수 있거나, 다른 검증 프로세스들이 또한 사용되는 경우 검증 모델에 대해 적어도 부분적으로 검증된 것으로 간주될 수 있다. 즉, 요건들을 충족시키는 것은 자율 제어 소프트웨어가 자율 제어 소프트웨어 및 검증 모델이 실행되었던 시나리오들에 대해 적어도 검증 모델만큼 양호하다는 것을 표시할 수 있다. 이와 관련하여, 자율 제어 소프트웨어는 시뮬레이션들에서만이라기 보다는 실제 주행 상황들에서 사용하기에 충분한 것으로 간주될 수 있다. 대안적으로, 자율 제어 소프트웨어가 시나리오들의 특정 그룹에 대한 이러한 요건들을 충족시킬 수 없는 경우, 결과들은 자율 제어 소프트웨어가 어떻게 필요에 따라 미세 조정될 수 있는지를 결정하기 위해 더 상세하게 평가될 수 있다.
본 명세서에 설명된 특징들은 자율 차량들에 대한 자율 제어 소프트웨어를 검증하는 안전하고 효과적인 방법을 제공할 수 있다. 예를 들어, 자율 제어 소프트웨어는 실제 사람들의 수명 및 재산을 위태롭게 하지 않고 수십만 개의 시나리오에서 테스트될 뿐만 아니라, 자율 제어 소프트웨어가 실제로 "안전"하다는 것을 확인하기 위한 벤치마크와 또한 비교될 수 있다. 또한, 이러한 시나리오들을 사용하는 것은 자율 제어 소프트웨어의 평가를 크게 가속화할 수 있는데, 그 이유는 각각의 시나리오를 수동으로 생성하고 실행하는 데 걸릴 수 개월보다는, 수시간에 수천 개의 테스트가 실행될 수 있기 때문이다. 더욱이, 시나리오들은 단지 그러한 응답들을 관찰하고 그것들이 효과적인지를 "추측"하는 것보다는, 안전성이 항상 보장되는 것은 아닌 상황들에서 안전성에 대한 높은 표준들을 제공하고, 자율 제어 소프트웨어의 응답을 평가하기 위한 벤치마크를 제공한다. 이러한 테스트 없이, 검증되지 않은 자율 제어 소프트웨어를 사용하여 사람들 또는 재산에 대한 손상의 위험들이 너무 클 수 있다.
예시적인 시스템들
도 1에 도시된 바와 같이, 본 개시의 일 양태에 따른 차량(100)은 다양한 컴포넌트들을 포함한다. 개시내용의 특정 양태들이 특정 타입들의 차량들과 관련하여 특히 유용하지만, 차량은, 승용차들, 트럭들, 모터사이클들, 버스들, 레저 차량들 등을 포함하지만, 이에 제한되지 않는, 임의의 타입의 차량일 수 있다. 차량은 전형적으로 범용 컴퓨팅 디바이스들에 존재하는 하나 이상의 프로세서(120), 메모리(130) 및 다른 컴포넌트들을 포함하는 컴퓨팅 디바이스들(110)과 같은 하나 이상의 컴퓨팅 디바이스를 가질 수 있다.
메모리(130)는 프로세서(120)에 의해 실행되거나 또는 다른 방식으로 사용될 수 있는 명령어들(134) 및 데이터(132)를 포함하여, 하나 이상의 프로세서(120)에 의해 액세스가능한 정보를 저장한다. 메모리(130)는 컴퓨팅 디바이스 판독가능 매체, 또는 하드 드라이브, 메모리 카드, ROM, RAM, DVD 또는 다른 광학 디스크들과 같은 전자 디바이스의 도움으로 판독될 수 있는 데이터를 저장하는 다른 매체뿐만 아니라 다른 기입 가능 및 판독 전용 메모리들을 포함하는, 프로세서에 의해 액세스가능한 정보를 저장할 수 있는 임의의 타입일 수 있다. 시스템들 및 방법들은 전술한 것의 상이한 조합들을 포함할 수 있으며, 그것에 의해 명령어들 및 데이터의 상이한 부분들은 상이한 타입들의 매체 상에 저장된다.
명령어들(134)은 프로세서에 의해 직접적으로(예컨대 머신 코드) 또는 간접적으로(예컨대 스크립트들) 실행될 명령어들의 임의의 세트일 수 있다. 예를 들어, 명령어들은 컴퓨팅 디바이스 코드로서 컴퓨팅 디바이스 판독가능 매체 상에 저장될 수 있다. 그와 관련하여, 용어들 "소프트웨어", "명령어들" 및 "프로그램들"은 여기서 서로 교환하여 사용될 수 있다. 명령어들은 프로세서에 의한 직접 처리를 위한 오브젝트 코드 포맷(object code format)으로, 또는 요구에 따라 인터프리팅(interpret)되거나 미리 컴파일링(compile)되는 독립적인 소스 코드 모듈들의 스크립트들 또는 집합들을 포함하는 임의의 다른 컴퓨팅 디바이스 언어로 저장될 수도 있다. 명령어들의 기능들, 방법들 및 루틴들은 아래에 더 상세히 설명된다.
데이터(132)는 명령어들(134)에 따라 프로세서(120)에 의해 검색되고, 저장되거나 수정될 수 있다. 예를 들어, 청구된 주제는 임의의 특정 데이터 구조에 의해 한정되지 않지만, 데이터는 복수의 상이한 필드 및 레코드, XML 문서, 또는 플랫 파일을 갖는 테이블로서 관련 데이터베이스로, 컴퓨팅 디바이스 레지스터들에 저장될 수 있다. 데이터는 또한 임의의 컴퓨팅 디바이스-판독가능 포맷으로 포맷될 수 있다.
하나 이상의 프로세서(120)는 상업적으로 이용가능한 CPU들과 같은, 임의의 종래의 프로세서들일 수 있다. 대안적으로, 하나 이상의 프로세서는 ASIC 또는 다른 하드웨어-기반 프로세서와 같은 전용 디바이스일 수 있다. 도 1이 컴퓨팅 디바이스들(110)의 프로세서, 메모리, 및 다른 요소들을 동일한 블록 내에 있는 것으로 기능적으로 예시하지만, 프로세서, 컴퓨팅 디바이스, 또는 메모리는 동일한 물리적 하우징 내에 격납될 수 있거나 격납될 수 없는 다수의 프로세서, 컴퓨팅 디바이스들, 또는 메모리들을 실제로 포함할 수 있다는 것을 본 기술 분야의 통상의 기술자는 이해할 것이다. 예를 들어, 메모리는 컴퓨팅 디바이스들(110)의 하우징과는 상이한 하우징 내에 위치되는 하드 드라이브 또는 다른 저장 매체일 수 있다. 따라서, 프로세서 또는 컴퓨팅 디바이스라고 하는 것은 병렬로 동작하거나 하지 않을 수 있는 프로세서들 또는 컴퓨팅 디바이스들 또는 메모리들의 집합을 포함하는 것이라고 이해될 것이다.
컴퓨팅 디바이스들(110)은 전술된 프로세서 및 메모리와 같은 컴퓨팅 디바이스 뿐만 아니라 사용자 입력(150)(예를 들어, 마우스, 키보드, 터치스크린 및/또는 마이크로폰) 및 다양한 전자 디스플레이들(예를 들어, 스크린을 가지는 모니터 또는 정보를 표시하도록 동작가능한 임의의 다른 전자 디바이스)과 관련하여 정상적으로 사용되는 모든 컴포넌트들을 포함할 수 있다. 이 예에서, 차량은 정보 또는 시청각 경험들을 제공하기 위해 내부 전자 디스플레이(152)뿐만 아니라 하나 이상의 스피커(154)를 포함한다. 이와 관련하여, 내부 전자 디스플레이(152)는 차량(100)의 캐빈(cabin) 내에 위치될 수 있고, 차량(100) 내의 승객들에게 정보를 제공하기 위해 컴퓨팅 디바이스들(110)에 의해 사용될 수 있다.
컴퓨팅 디바이스들(110)은 이하에 상세하게 설명되는 클라이언트 컴퓨팅 디바이스들 및 서버 컴퓨팅 디바이스들과 같은 다른 컴퓨팅 디바이스들과의 통신을 용이하게 하기 위한 하나 이상의 무선 네트워크 접속(156)을 또한 포함할 수 있다. 무선 네트워크 접속들은 블루투스(Bluetooth), 블루투스 저에너지(low energy)(LE), 셀룰러 접속들과 같은 단거리 통신 프로토콜들뿐만 아니라, 인터넷, 월드 와이드 웹(World Wide Web), 인트라넷(intranet)들, 가상적인 사설 네트워크들, 광역 네트워크들, 로컬 네트워크들, 하나 이상의 회사에게 독점적인 통신 프로토콜들을 사용하는 사설 네트워크들, 이더넷, WiFi 및 HTTP, 및 전술한 것의 다양한 조합들을 포함하는 다양한 구성들 및 프로토콜들을 포함할 수 있다.
일례에서, 컴퓨팅 디바이스들(110)은 차량(100) 내에 포함되거나 자율 주행 컴퓨팅 시스템의 컴퓨팅 디바이스들을 제어할 수 있다. 자율 주행 컴퓨팅 시스템은 이하에서 더 논의되는 바와 같이, 메모리(130)의 자율 제어 소프트웨어에 따라 차량(100)의 움직임을 제어하기 위해 차량의 다양한 컴포넌트들과 통신할 수 있다. 예를 들어, 도 1로 돌아가면, 컴퓨팅 디바이스들(110)은 메모리(130)의 명령어들(134)에 따라 차량(100)의 움직임, 속도 등을 제어하기 위해, 감속 시스템(160), 가속 시스템(162), 스티어링 시스템(164), 시그널링 시스템(166), 라우팅 시스템(168), 포지셔닝 시스템(170), 지각 시스템(172) 및 동력 시스템(174)(즉, 차량의 엔진 또는 모터)과 같은, 차량(100)의 다양한 시스템들과 통신할 수 있다. 다시, 이러한 시스템들이 컴퓨팅 디바이스들(110)에 대해 외부에 있는 것으로 도시되지만, 실제로, 이러한 시스템들은, 다시 차량(100)을 제어하기 위한 자율 주행 컴퓨팅 시스템으로서, 컴퓨팅 디바이스들(110) 내에 또한 포함될 수 있다.
일례로서, 컴퓨팅 디바이스들(110)은 차량의 속도를 제어하기 위해, 브레이크들, 가속기 페달, 및/또는 차량의 엔진 또는 모터와 같은, 감속 시스템(160) 및/또는 가속 시스템(162)의 하나 이상의 액추에이터와 상호작용할 수 있다. 유사하게, 스티어링 휠, 스티어링 샤프트, 및/또는 랙 및 피니언 시스템 내의 피니언 및 랙과 같은 스티어링 시스템(164)의 하나 이상의 액추에이터는 차량(100)의 방향을 제어하기 위해 컴퓨팅 디바이스들(110)에 의해 사용될 수 있다. 예를 들어, 차량(100), 예컨대 자동차 또는 트럭이 도로 상에서의 사용을 위해 구성되면, 스티어링 시스템은 차량을 돌리기 위해 휠들의 각도를 제어하기 위한 하나 이상의 액추에이터를 포함할 수 있다. 시그널링 시스템(166)은 예를 들어, 필요할 때 방향 지시등들 또는 브레이크 등들을 점등함으로써 차량의 의도를 다른 운전자들 또는 차량들에 시그널링하기 위해 컴퓨팅 디바이스들(110)에 의해 사용될 수 있다.
라우팅 시스템(168)은 위치에 대한 루트를 결정하고 따르기 위해 컴퓨팅 디바이스들(110)에 의해 사용될 수 있다. 이와 관련하여, 라우팅 시스템(168) 및/또는 데이터(132)는 상세한 지도 정보, 예를 들어, 도로들의 형상 및 고도, 차선 라인들, 교차로들, 횡단 보도들, 속도 제한들, 교통 신호들, 건물들, 표지판들, 실시간 교통 정보, 초목, 또는 다른 이러한 물체들 및 정보를 식별하는 매우 상세한 지도들을 저장할 수 있다.
도 2는 교차로들(202 및 204)을 포함하는 도로 구간에 대한 지도 정보(200)의 예이다. 이 예에서, 지도 정보(200)는 차선 라인들(210, 212, 214), 교통 신호등들(220, 222), 횡단보도(230), 인도들(240), 정지 표지판들(250, 252), 및 양보 표지판(260)의 형상, 위치, 및 다른 특성들을 식별하는 정보를 포함한다. 지도 정보가 이미지 기반 지도로서 본 명세서에 도시되어 있지만, 이러한 지도 정보는 전적으로 이미지 기반(예를 들어, 래스터)일 필요가 없다. 예를 들어, 지도 정보는 도로들, 차선들, 교차로들, 및 이러한 피처들 사이의 연결부들과 같은 정보의 하나 이상의 로드그래프(roadgraph) 또는 그래프 네트워크들을 포함할 수 있다. 각각의 피처는 그래프 데이터로서 저장될 수 있고, 지리적 위치 및 그것이 다른 관련 피처들에 링크되는지 여부, 예를 들어, 정지 표지판이 도로 및 교차로 등에 링크되는지 여부와 같은 정보와 연관될 수 있다. 몇몇 예들에서, 연관된 데이터는 특정 로드그래프 피처들의 효율적인 룩업을 허용하기 위해 로드그래프의 그리드 기반 인덱스들을 포함할 수 있다.
포지셔닝 시스템(170)은 지도 상의 또는 지면 상의 차량의 상대 또는 절대 위치를 결정하기 위해 컴퓨팅 디바이스들(110)에 의해 사용될 수 있다. 예를 들어, 포지셔닝 시스템(170)은 디바이스의 위도, 경도 및/또는 고도 위치를 결정하기 위해 GPS 수신기를 포함할 수 있다. 레이저 기반 위치 확인 시스템들, 관성 보조(inertial-aided) GPS 또는 카메라 기반 위치 확인과 같은 다른 위치 확인 시스템들은 또한 차량의 위치를 식별하기 위해 사용될 수 있다. 차량의 위치는 위도, 경도 및 고도와 같은 절대 지리적 위치뿐만 아니라, 종종 절대 지리 위치보다 더 적은 잡음으로 결정될 수 있는, 바로 주변의 다른 차량들에 대한 위치와 같은 상대 위치 정보를 포함할 수 있다.
포지셔닝 시스템(170)은 차량의 방향과 속도 또는 이에 대한 변경들을 결정하기 위해 가속도계, 자이로스코프 또는 다른 방향/속도 검출 디바이스와 같은, 컴퓨팅 디바이스들(110)과 통신하는 다른 디바이스들을 또한 포함할 수 있다. 단지 예로서, 가속 디바이스는 중력의 방향 또는 이에 수직한 면에 대해 그 피치(pitch), 요(yaw) 또는 롤(roll)(또는 이에 대한 변경들)을 결정할 수 있다. 디바이스는 또한 이런 변화들의 속도와 방향에서 증가 또는 감소를 추적할 수 있다. 본 명세서에 개시된 바와 같이, 디바이스의 위치 및 방향 데이터의 제공은 컴퓨팅 디바이스들(110), 다른 컴퓨팅 디바이스들 및 이들의 조합들에 자동으로 제공될 수 있다.
지각 시스템(172)은 또한 다른 차량들, 도로 내의 장애물들, 교통 신호, 표지판, 나무 등과 같은 차량 외부의 물체들을 검출하기 위한 하나 이상의 컴포넌트를 포함한다. 예를 들어, 지각 시스템(172)은 레이저들, 소나(sonar), 레이더, 카메라들 및/또는 컴퓨팅 디바이스(110)에 의해 처리될 수 있는 데이터를 기록하는 임의의 다른 검출 디바이스들을 포함할 수 있다. 차량이 미니밴과 같은 승용 차량인 경우, 미니밴은 루프(roof) 또는 다른 편리한 위치에 장착된 레이저 또는 다른 센서들을 포함할 수 있다. 예를 들어, 도 3은 차량(100)의 예시적인 외부 도면이다. 이 예에서, 루프-탑(roof-top) 하우징(310) 및 돔(dome) 하우징(312)은 다양한 카메라들 및 레이더 유닛들뿐만 아니라 라이더(lidar) 센서를 포함할 수 있다. 또한, 차량(100)의 전방 단부에 위치된 하우징(320) 및 차량의 운전자 측 및 승객 측 상의 하우징들(330, 332)은 각각 라이더 센서를 격납할 수 있다. 예를 들어, 하우징(330)은 운전자 도어(360)의 앞에 위치한다. 차량(100)은 차량(100)의 루프 상에 또한 위치된 카메라들 및/또는 레이더 유닛들을 위한 하우징들(340, 342)을 또한 포함한다. 추가적인 레이더 유닛들 및 카메라들(도시되지 않음)이 차량(100)의 전방 및 후방 단부들에 그리고/또는 루프 또는 루프-탑 하우징(310)을 따라 다른 포지션들에 위치될 수 있다.
컴퓨팅 디바이스들(110)은 다양한 컴포넌트들을 제어함으로써 차량의 방향 및 속도를 제어할 수 있다. 예로써, 컴퓨팅 디바이스들(110)은 상세한 지도 정보 및 라우팅 시스템(168)으로부터 데이터를 사용하여 완전히 자동으로 목적지 위치까지 차량을 내비게이팅(navigate)할 수 있다. 컴퓨팅 디바이스들(110)은 안전하게 위치에 도달하도록 요구될 때 물체들을 검출하고 물체들에 응답하기 위해 차량의 위치 및 지각 시스템(172)을 결정하도록 포지셔닝 시스템(170)을 사용할 수 있다. 그렇게 하기 위해서, 컴퓨팅 디바이스들(110)은 차량으로 하여금 (예를 들어, 가속 시스템(162)에 의해 엔진에 제공되는 연료 또는 다른 에너지를 증가시킴으로써) 가속하고, (감속 시스템(160)에 의해 엔진에 공급되는 연료를 감소시키고, 기어들을 바꿈으로써, 및/또는 브레이크들을 밟음으로써) 감속하고, (예를 들어, 스티어링 시스템(164)에 의해 차량(100)의 전방 또는 후방 휠들을 회전시킴으로써) 방향을 바꾸고, (예를 들어, 시그널링 시스템(166)의 방향 지시등들을 점등함으로써) 이러한 변화들을 시그널링하게 할 수 있다. 따라서, 가속 시스템(162)과 감속 시스템(160)은 차량의 엔진과 차량의 휠들 사이의 다양한 컴포넌트들을 포함하는 구동렬의 일부일 수 있다. 또한, 이들 시스템들을 제어함으로써, 컴퓨팅 디바이스들(110)은 또한 차량을 자율적으로 조종하기 위해 차량의 구동렬을 제어할 수 있다.
차량(100)의 컴퓨팅 디바이스(110)는 또한 수송 서비스의 일부인 그 컴퓨팅 디바이스들뿐만 아니라 다른 컴퓨팅 디바이스들과 같은 다른 컴퓨팅 디바이스들로 그리고 그들로부터 정보를 전송 또는 수신할 수 있다. 도 4 및 도 5는, 각각, 네트워크(460)를 통해 접속되는 복수의 컴퓨팅 디바이스(410, 420, 430, 440) 및 저장 시스템(450)을 포함하는 예시적인 시스템(400)의 도해 및 기능도들이다. 시스템(400)은 또한 차량(100), 및 차량(100)과 동일하거나 차량(100)과 유사하게 구성될 수 있는 차량(100A)을 포함한다. 간략함을 위해 몇몇 차량들 및 컴퓨팅 디바이스들만이 도시되지만, 전형적인 시스템은 상당히 더 많이 포함할 수 있다.
도 4에 도시된 바와 같이, 컴퓨팅 디바이스들(410, 420, 430, 440) 각각은 하나 이상의 프로세서, 메모리, 데이터 및 명령어들을 포함할 수 있다. 이러한 프로세서들, 메모리들, 데이터 및 명령어들은 컴퓨팅 디바이스(110)의 하나 이상의 프로세서(120), 메모리(130), 데이터(132), 및 명령어들(134)과 유사하게 구성될 수 있다.
네트워크(460), 및 중간 노드들은 블루투스, 블루투스 LE와 같은 단거리 통신 프로토콜들, 인터넷, 월드 와이드 웹, 인트라넷들, 가상 사설 네트워크들, 광역 네트워크들, 로컬 네트워크들, 하나 이상의 회사 전용 통신 프로토콜들을 사용하는 사설 네트워크들, 이더넷, WiFi 및 HTTP 및 이들의 다양한 조합들을 포함하는 다양한 구성들 및 프로토콜들을 포함할 수 있다. 이러한 통신은 모뎀들 및 무선 인터페이스들과 같은, 다른 컴퓨팅 디바이스들로 그리고 그로부터 데이터를 송신할 수 있는 임의의 디바이스에 의해 가능해질 수 있다.
일례에서, 하나 이상의 컴퓨팅 디바이스(110)는 다른 컴퓨팅 디바이스들에 그리고 다른 컴퓨팅 디바이스들로부터 데이터를 수신하고, 처리하고, 송신하는 목적을 위해 네트워크의 상이한 노드들과 정보를 교환하는 복수의 컴퓨팅 디바이스를 갖는 하나 이상의 서버 컴퓨팅 디바이스, 예를 들어, 로드 밸런스드 서버 팜(load balanced server farm)을 포함할 수 있다. 예를 들어, 하나 이상의 컴퓨팅 디바이스(410)는 네트워크(460)를 통해 차량(100)의 컴퓨팅 디바이스(110) 또는 차량(100A)의 유사한 컴퓨팅 디바이스뿐만 아니라 컴퓨팅 디바이스들(420, 430, 440)과 통신할 수 있는 하나 이상의 서버 컴퓨팅 디바이스를 포함할 수 있다. 예를 들어, 차량들(100, 100A)은 서버 컴퓨팅 디바이스들에 의해 다양한 위치들로 디스패칭될 수 있는 차량들의 플리트의 일부일 수 있다. 이와 관련하여, 서버 컴퓨팅 디바이스들(410)은, 차량(100) 및 차량(100A)과 같은 차량들이 자율 주행 모드로 동작하기 위해 사용할 수 있는 자율 제어 소프트웨어를 검증하기 위해 사용될 수 있는 검증 컴퓨팅 시스템으로서 기능할 수 있다. 또한, 서버 컴퓨팅 디바이스들(410)은 컴퓨팅 디바이스들(420, 430, 440)의 디스플레이들(424, 434, 444)과 같은 디스플레이 상에서 사용자(422, 432, 442)와 같은 사용자에게 정보를 송신하고 제안하기 위해 네트워크(460)를 사용할 수 있다. 이와 관련하여, 컴퓨팅 디바이스들(420, 430, 440)은 클라이언트 컴퓨팅 디바이스들로서 고려될 수 있다.
도 4에 도시된 바와 같이, 각각의 클라이언트 컴퓨팅 디바이스(420, 430, 440)는 사용자(422, 432, 442)가 사용하도록 의도된 개인용 컴퓨팅 디바이스일 수 있고, 개인용 컴퓨팅 디바이스와 관련하여 일반적으로 사용되고 하나 이상의 프로세서(예를 들어, 중앙 처리 유닛(CPU)), 데이터 및 명령어들을 저장하는 메모리(예를 들어, RAM 및 내부 하드 드라이브들), 디스플레이들(424, 434, 444)과 같은 디스플레이(예를 들어, 화면, 터치스크린, 프로젝터, 텔레비전, 또는 정보를 표시하도록 동작가능한 다른 디바이스를 갖는 모니터), 및 사용자 입력 디바이스들(426, 436, 446)(예를 들어, 마우스, 키보드, 터치스크린 또는 마이크로폰)을 포함하는 컴포넌트들 모두를 가질 수 있다. 클라이언트 컴퓨팅 디바이스들은 비디오 스트림들을 레코딩하기 위한 카메라, 스피커들, 네트워크 인터페이스 디바이스, 및 이러한 요소들을 서로 접속시키기 위해 사용되는 모든 컴포넌트들을 또한 포함할 수 있다.
클라이언트 컴퓨팅 디바이스들(420, 430 및 440)은 각각 풀 사이즈의 개인용 컴퓨팅 디바이스를 포함할 수 있지만, 인터넷과 같은 네트워크를 통해 서버와 데이터를 무선으로 교환할 수 있는 모바일 컴퓨팅 디바이스들을 대안적으로 포함할 수 있다. 단지 예로서, 클라이언트 컴퓨팅 디바이스(420)는 인터넷 또는 다른 네트워크들을 통해 정보를 획득할 수 있는, 무선 인에이블 PDA, 태블릿 PC, 웨어러블 컴퓨팅 디바이스 또는 시스템, 또는 넷북과 같은 모바일 폰 또는 디바이스일 수 있다. 다른 예에서, 클라이언트 컴퓨팅 디바이스(430)는 도 4에서 손목 시계로서 도시된 웨어러블 컴퓨팅 시스템일 수 있다. 예로서, 사용자는 소형 키보드, 키패드, 마이크로폰을 사용하여, 카메라 또는 터치스크린을 사용하여 시각적 신호들을 사용하여 정보를 입력할 수 있다.
일부 예들에서, 클라이언트 컴퓨팅 디바이스(440)는 이하에서 더 논의되는 바와 같이, 시나리오 결과들, 핸드오버 시간들 및 검증 정보를 검토하기 위해 관리자 또는 조작자에 의해 사용되는 동작 워크스테이션일 수 있다. 단일 동작 워크 스테이션(440)만이 도 4 및 도 5에 도시되어 있지만, 임의의 수의 이러한 워크 스테이션이 전형적인 시스템에 포함될 수 있다. 더욱이, 동작 워크 스테이션이 데스크톱 컴퓨터로서 도시되지만, 동작 워크 스테이션들은 랩톱들, 넷북들, 태블릿 컴퓨터들 등과 같은 다양한 타입의 개인용 컴퓨팅 디바이스들을 포함할 수 있다.
메모리(130)와 마찬가지로, 저장 시스템(450)은, 하드 드라이브, 메모리 카드, ROM, RAM, DVD, CD-ROM, 기입 가능 및 판독 전용 메모리들과 같은, 서버 컴퓨팅 디바이스들(410)에 의해 액세스가능한 정보를 저장할 수 있는 임의의 타입의 컴퓨터화된 스토리지일 수 있다. 또한, 저장 시스템(450)은 동일한 또는 상이한 지리적 위치들에 물리적으로 위치될 수 있는 복수의 상이한 저장 디바이스 상에 데이터가 저장되는 분산형 저장 시스템을 포함할 수 있다. 저장 시스템(450)은 도 4 및 도 5에 도시된 바와 같이 네트워크(460)를 통해 컴퓨팅 디바이스들에 접속될 수 있고/있거나 컴퓨팅 디바이스들(110, 410, 420, 430, 440 등) 중 임의의 것에 직접 접속되거나 포함될 수 있다.
저장 시스템(450)은 이하에서 더 상세하게 설명되는 바와 같이 다양한 타입들의 정보를 저장할 수 있다. 이 정보는, 본 명세서에서 설명되는 특징들 중 일부 또는 전부를 수행하기 위해, 하나 이상의 서버 컴퓨팅 디바이스(410)와 같은 서버 컴퓨팅 디바이스에 의해 검색되거나 아니면 액세스될 수 있다. 예를 들어, 저장 시스템(450)은 이상적인 인간 운전자의 예상 거동들을 나타내는 검증 모델을 저장할 수 있다. 검증 모델은 일련의 특성들을 확립함으로써 생성될 수 있다. 이들은, 예를 들어, 이상적인 인간 운전자와 같이 차량의 제동, 가속, 및/또는 스티어링 거동들을 변경하기 위해 발 또는 손을 움직임으로써 시각적 또는 가청 자극들에 반응하기 위한 응답 시간들과 관련될 수 있다. 검증 모델은 또한 가상 차량이 어떻게 행동해야 하는지를 결정하기 위한 규칙들의 세트를 포함할 수 있다. 이러한 규칙들은 가상 차량의 경로, 가상 차량의 속도, 및 가상 차량이 상이한 물체들에 어떻게 반응하는지와 같은 거동들을 정의할 수 있다. 특성들의 세트 및 규칙들의 세트는 검증 모델이, 마치 이상적인 인간이 가상 차량을 제어하고 있었던 것처럼, 가상 차량을 제어(즉, 제동, 방향전환 등)하는 것을 허용할 수 있다. 이러한 데이터는 기존의 인간의 응답(또는 반응) 연구로부터 이용가능하거나, 실제 인간 거동을 테스트하기 위해 실험들을 실행하는 것으로부터 생성될 수 있다. 이와 관련하여, 검증 모델은 많은 상황들에서 인간 운전자보다 양호하거나 그만큼 양호하게 수행할 것으로 실제로 예상될 수 있다.
그러나, 전형적인 인간 운전자와 달리, 검증 모델은 자율 차량보다 그 환경 내에서 더 많은 정보, 심지어 폐색된 물체들(예를 들어, 그것들이 차량의 블라인드 스폿에 있거나 다른 물체 뒤에 있기 때문에)을 지각하는 것으로 가정될 수 있다. 다시 말해서, 검증 모델의 지각은 심지어는 자율 차량에게 예상되는 것보다 더 양호하고 심지어는 "완벽"할 수 있다. 이것은 검증 모델이 초인적 성능에 치우치는 한편 적어도 명목 상의 인간만큼 능력이 있도록 허용할 수 있다. 예를 들어, 검증 모델의 경우, 반응 시간들 및 방향전환과 같은 주행 거동들은 매우 인간 같을 수 있는 반면, 지각은 거의 "초인적"일 수 있다. 대안적으로, 검증 모델에 대한 지각은 단지 특정 거리, 예를 들어, 300 피트 또는 그 대략까지 완전할 수 있고, 그것을 넘어서면, 검증 모델이 전혀 완전하지 않을 수 있거나 또는 어떠한 지각도 갖지 않을 수 있다. 추가적인 대안으로서, 검증 모델의 지각은 특정한 시야로 제한될 수 있거나, 검증 모델의 지각이 전형적인 인간 운전자에 대한 블라인드 스폿들 또는 폐색된 영역들을 포함하지 않도록 제한될 수 있다. 물론, 이들은 단지 예들이고, 지각 또는 거동들을 포함하는 모델의 피처들은 인간 성능에 더 가깝게 모델링할 수 있거나 또는 초인간적일 수 있다.
검증 모델에 더하여, 저장 시스템(450)은 또한 복수의 시나리오를 저장할 수 있다. 시나리오들은 예를 들어 속도 위반, 정지 신호 또는 빨간 신호등을 무시하고 달리는 것, 변덕스럽게 주행하는 것 등의, 부적절하게 거동하고 있는 다른 물체에 대한 응답을 테스트하는 상황으로서 생성될 수 있다. 이와 관련하여, 시나리오들은 단지 주위에서 주행하는 차량들뿐만 아니라 차량의 응답이 차량 및 임의의 다른 물체들의 안전성에 중요한 상황들이다. 각각의 시나리오는 도로의 형상, 위치, 방향 등과 같은 특성들을 정의하는 도로 정보와 같은, 가상 차량에 대한 환경을 정의하는 정보를 포함할 수 있다. 게다가, 각각의 시나리오는 차량들, 보행자들, 자전거 사용자들, 식물, 도로 경계석들, 차선 라인들, 인도들, 횡단보도들, 건물들 등과 같은 물체들의 형상, 위치, 방향, 속도 등과 같은 물체들의 특성들을 정의하는 물체 정보를 또한 포함할 수 있다. 또한, 각각의 시나리오는 가상 차량의 형상, 위치, 방향, 속도 등을 포함하는, 차량(100)에 대응하는 가상 차량에 대한 특성들을 포함할 수 있다. 또한, 각각의 시나리오에 대한 환경 및 다른 물체들은 현실 세계 로그(log)된 데이터(예를 들어, 차량(100)의 지각 시스템(172)과 같은, 지각 시스템에 의해 생성된 센서 데이터), 시뮬레이션에서 생성된 순전히 합성 물체들 또는 센서 데이터, 또는 이들의 임의의 조합을 포함할 수 있다.
각각의 시나리오는 또한 "핸드오버 시간" 또는 자율 제어 소프트웨어 및 검증 모델에 시나리오 내에서의 가상 차량을 제어하는 제어가 주어지는 시간과 연관될 수 있다. 핸드오버 시간은 그 시나리오의 상황들에 따라 각각의 시나리오에 대해 자동으로 선택될 수 있다. 일부 경우들에서, 핸드오버 시간은, 예를 들어, 동작 워크스테이션(440)을 사용하여 인간 조작자에 의해 추가로 확인되거나 핸드 튜닝될 수 있다. 일례에서, 주어진 시나리오에 대해, 자율 차량이 5초 또는 그 대략과 같은, 장래에 일부 미리 결정된 시간 기간에서의 시나리오에서, 차량, 보행자, 또는 자전거 사용자와 같은 다른 물체와 충돌할 경우, 이것은 핸드오버 시간으로서 선택될 수 있다. 이 예는 (이것이 실제 시나리오에서의 경우가 아닌 경우에도) 자율 차량 및 다른 물체 둘 다가 그것들의 현재 경로들을 계속 갈 것이라고 가정한다. 이 핸드오버 시간은 그 후 인간 조작자에 의해 조정되는 것으로서 또는 합리적인 것으로서 확인될 수 있다. 인간의 검토에 의해 핸드오버 시간에 대해 더 간단한 검증 프로세스를 사용하는 것은 불필요한 복잡들 및 계산들을 감소시키고 더 큰 데이터세트들에 걸쳐 더 일관된 결과들을 제공할 수 있다.
핸드오버 시간들은 또한 상이한 접근법들을 사용하여 결정될 수 있다. 예를 들어, 핸드오버 시간은, 인간 운전자가 충돌을 피하기 위해 더 이상 편안하게 제동할 수 없는 시점과 같은, 인간 운전자가 그들의 거동을 정지할 가능성이 없는 시점에 대응할 수 있다. 대안적으로, 핸드오버 시간은 인간 운전자의 지각이 전혀 완전하지 않게 되거나 일부 특정 임계값보다 작아지는 시점에 대응할 수 있다. 또 다른 예에서, 자율 제어 소프트웨어가 가상 차량에 대한 충돌을 야기하는 것을 시나리오가 초래하는 경우, 동일한 상황 상의 검증 모델에 대한 핸드오버 시간은 수 초 더 이를 수 있다. 물론, 이러한 예들 중 임의의 것은 또한 인간 조작자에 의해 조정된 것으로서 또는 합리적인 것으로서 확인될 수 있다.
추가 예로서, 핸드오버 시간은 자율 제어 소프트웨어 또는 검증 모델의 지각에 기초하여 결정될 수 있다. 예를 들어, 불완전한 지각을 갖는 검증 모델 또는 자율 제어 소프트웨어는 해당 물체가 그것이 비상 응답을 요구할 그러한 방식으로 거동하고 있는 경우에도 물체를 즉시 보지 못할 수 있고, 더 정확히 말하자면, 관찰하지 못할 수 있다. 이와 같이, 핸드오버 시간은 검증 모델 또는 자율 제어 소프트웨어가 해당 물체를 실제로 관찰할 것이거나 또는 관찰해야 하는 시점에 대응할 수 있다. 예를 들어, 주차된 차량 뒤에서부터 도로로 걷고 있는 보행자가 있는 경우, 완벽한 지각을 갖는 검증 모델은 조기에 사람에 대해 반응하기 시작할 수 있는데, 그 이유는 검증 모델 또는 자율 제어 소프트웨어가 그 또는 그녀가 주차된 차량 뒤에 있는 동안에도 보행자가 걷고 있는 것을 관찰할 수 있기 때문이다. 그러나, 불완전한 지각을 갖는 검증 모델 또는 자율 제어 소프트웨어는 나중에 반응할 수 있는데, 그 이유는 검증 모델 또는 자율 제어 소프트웨어가 그 또는 그녀가 주차된 차량 뒤로부터 나올 때까지 보행자를 보거나 관찰할 수 없기 때문이다. 핸드오버 시간이 수동으로 조작자에 의해 설정되는 경우, 조작자는 예를 들어, 사람이 주차된 차량의 뒤로부터 나오는 때로 핸드오버 시간을 설정함으로써, 또한 수동으로 불완전한 지각을 인코딩할 수 있다.
도 6은 지도 정보(200)에 대응하는 도로의 섹션에 대한 시나리오의 예 600을 제공한다. 이 예에서, 교차로들(602 및 604)은 각각 교차로들(202 및 204)에 대응한다. 이와 관련하여, 차선 라인들(210, 612, 614), 교통 신호등들(620, 622), 횡단보도(630), 인도들(640), 정지 표지판들(650, 652), 및 양보 표지판(660)의 형상, 위치, 및 다른 특성들은 차선 라인들(210, 212, 214), 교통 신호등들(220, 222), 횡단보도(230), 인도들(240), 정지 표지판들(250, 252), 및 양보 표지판(260)의 형상, 위치, 및 다른 특성들에 대응한다.
예 600에서, 차량(100) 또는 차량(100A)에 대응하는 가상 자율 차량(610)은 교차로(604)에 접근하고 있다. 제2 가상 차량(620)이 또한 교차로(604)에 접근하고 있다. 이 시나리오는, 차량(620)이 정지 표지판(650)을 무시할 수 있기 때문에, 가상 차량(620)이 "불량하게 거동하는 것"을 포함할 수 있다. 이 시나리오에서, 가상 자율 차량(610) 및 가상 차량(620)이 다음 5초 동안(즉 장래에 미리 결정된 시간 기간까지) 그들의 현재 속도들로 계속 갔었다면, 가상 차량들은 서로 충돌했었을 것이다. 따라서, 예 600은 핸드오버 시간에서의 시나리오를 나타낸다.
시나리오들은 다양한 방식들로 배열될 수 있다. 예를 들어, 카테고리들로 그룹화되거나 그렇지 않으면 카테고리들과 연관된 시나리오들, 및 이러한 카테고리들은 더 큰 카테고리 그룹화들로 함께 그룹화될 수 있다. 예를 들어, 교차로들에서의 정지 표지판들에서의 우회전들을 위한 시나리오들이 하나의 카테고리일 수 있다. 다른 예로서, 예 600은 가상 차량이 회전 없이 교차로를 통과하고 있는 다른 시나리오들을 갖는 카테고리로 그룹화될 수 있다. 유사하게, 정지 표지판들에 관련된 모든 카테고리들은 정지 표지판 시나리오들에 대한 카테고리 그룹화로 함께 그룹화될 수 있다. 또한, 주어진 카테고리 또는 카테고리 그룹 내의 시나리오들은 약간 각각 상이할 것이다. 예를 들어, 가상 자율 차량 및 다른 차량들의 속도들 및 위치들은 다른 차량들의 거동들뿐만 아니라 상이한 시나리오들에 걸쳐 변경될 수 있다. 회전 또는 교차로의 형상 또한 변경될 수 있다. 사람들 또는 자율 차량들에 의해 관찰되었던 실제 주행 이벤트들로부터, 또는 인간 조작자들에 의해 상상된 상황들로부터 상이한 시나리오들이 생성될 수 있다. 시나리오들을 카테고리들로 그룹화함으로써, 자율 제어 소프트웨어가 아래에 논의되는 바와 같이 충분히 잘 수행하지 않는 경우 자율 제어 소프트웨어에 의한 문제들이 있는 곳이 더 쉽게 명백해질 수 있다.
또한, 저장 시스템(450)은 차량(100)과 같은 차량들에 의해 자율 주행 모드로 차량을 동작시키기 위해 사용될 자율 제어 소프트웨어를 또한 저장할 수 있다. 저장 시스템(450)에 저장되는 이러한 자율 제어 소프트웨어는 아직 검증되지 않은 버전일 수 있다. 일단 검증되면, 자율 제어 소프트웨어는, 자율 주행 모드로 차량(100)을 제어하기 위해 컴퓨팅 디바이스들(110)에 의해 사용되기 위해, 예를 들어, 차량(100)의 메모리(130)에 전송될 수 있다.
예시적인 방법들
전술되고 도면들에 예시되는 동작들에 더하여, 다양한 동작들이 이제 설명될 것이다. 이하의 동작들은 아래에 설명되는 정확한 순서로 수행될 필요가 없다는 점이 이해되어야 한다. 오히려, 다양한 단계들은 상이한 순서로 또는 동시에 처리될 수 있고, 단계들은 또한 추가되거나 생략될 수 있다.
차량(100)의 컴퓨팅 디바이스들(110)에 의한 사용을 위해 메모리(130)에 저장될 자율 제어 소프트웨어를 검증하기 위해, 검증 모델들, 시나리오들, 및 핸드오버 시간들 각각이 구축되거나 결정되어야 한다. 위에서 언급된 바와 같이, 검증 모델은 위에서 논의된 바와 같은 특성들의 세트를 사용하여, 서버 컴퓨팅 디바이스들(410)과 같은 서버 컴퓨팅 디바이스들, 및/또는 동작 워크스테이션들(440)과 같은 하나 이상의 동작 워크스테이션에 의해 생성될 수 있다. 시나리오들은 위에서 논의된 바와 같이 적절한 핸드오버 시간을 결정하고 차량(100) 또는 차량(100A)과 같은 차량들의 실제 주행 경험들을 사용하여 생성될 수 있다. 이 정보는 위에서 논의된 바와 같이 저장 시스템(450)에 저장될 수 있다.
서버 컴퓨팅 디바이스들(410)은 그 후 저장 시스템(450)에 저장되는 자율 제어 소프트웨어를 검증하기 위해 저장 시스템(450)에 액세스할 수 있다. 예를 들어, 서버 컴퓨팅 디바이스들(410)은 성능을 평가하기 위해 카테고리 그룹화에 의해, 카테고리별로(category by category) 카테고리 그룹화하여, 저장 시스템(450)의 시나리오들을 통해 자율 제어 소프트웨어 및 검증 모델 각각을 실행할 수 있다. 자율 제어 소프트웨어를 검증하기 위해 한 번에 하나의 카테고리 및/또는 카테고리 그룹화를 사용하는 것은, 모든 카테고리들에서의 모든 시나리오들을 즉시 실행하는 것과는 반대로, 자율 제어 소프트웨어가 어떻게 개선될 수 있는지를 식별하는 기회들을 제공할 수 있다. 예를 들어, 자율 제어 소프트웨어 및 검증 소프트웨어는 예 600의 시나리오 및 예 600과 동일한 카테고리 또는 카테고리 그룹화 내의 임의의 다른 시나리오들을 통해 실행될 수 있다.
주어진 시나리오를 통해 자율 제어 소프트웨어를 실행할 때, 시나리오의 세부 사항들은 시뮬레이션을 생성하기 위해 사용될 수 있다. 예를 들어, 필요하다면, 시나리오의 환경 및 물체들은 지각 시스템(172)과 같은 지각 시스템이 자율 제어 소프트웨어에 따라 동작하고 있을 차량(100)의 컴퓨팅 디바이스들(110)에 대해 제공할 것으로 예상될 센서 데이터로 변환될 수 있다. 대안적으로, 시나리오가 이미 센서 데이터를 포함하는 경우, 시나리오는 단순히 "재생"될 수 있다. 어느 경우든, 자율 제어 소프트웨어는 자율 제어 소프트웨어가 실제로 차량(100) 상에서 실행되고 있었던 것처럼 시나리오를 처리하거나, "경험"한다. 다시 말해서, 자율 제어 소프트웨어에는 단지, 지각 시스템(172)이 시나리오에 관하여 검출할 수 있을 것이며, 시나리오의 모든 세부 사항에 관하여 검출하는 것은 아닐 수 있는 정보가 제공된다. 예를 들어, 예 600으로 돌아가서, 서버 컴퓨팅 디바이스들(410)은 자율 제어 소프트웨어에 상세 지도 정보(200)뿐만 아니라 가상 자율 차량(610)의 지각 시스템에 의해 검출될 임의의 정보에 대한 액세스가 주어지도록 시나리오를 실행할 수 있다.
자율 제어 소프트웨어는 각각의 시나리오에 대한 단지 하나의 응답만을 선택하여 가상 자율 차량이 따를 수 있다. 물론, 자율 제어 소프트웨어에 의해 결정된 응답은 그 소프트웨어의 프로그래밍에 따라 결정될 것이다. 이러한 응답들의 실제 특성들은, 예를 들어, 가상 차량의 능력들(제동, 가속, 스티어링 제어 등)뿐만 아니라 자율 차량 소프트웨어가 이러한 응답들을 어떻게 수행하는지를 포함하는 임의의 수의 변수에 의해 좌우될 수 있다. 따라서 시뮬레이션은 선택된, 더 정확히 말하자면 결정된 응답 타입을 고려하여 시나리오에 대한 예상 결과를 제공할 수 있다. 이러한 예상 결과는 가상 자율 차량의 최종 포즈, 시나리오에서의 임의의 다른 차량들 또는 물체들의 최종 포즈들, 응답 시간들, 임의의 물체들과 충돌이 있었는지 등과 같은 정보를 포함할 수 있다.
그 다음, 예상 결과는 자율 제어 소프트웨어의 성능을 평가하기 위해, 더 정확히 말하자면 자율 제어 소프트웨어가 주어진 시나리오를 "통과" 또는 "실패"했는지를 결정하기 위해 사용될 수 있다. 예를 들어, 충돌이 없는 경우, 충돌이 없고 (충돌이 있었을 수도 있는) 다른 물체와 가상 차량 사이에는 적어도 일부 최소 버퍼 거리(예컨대 2 피트 또는 그 대략)가 존재하는 경우, 충돌이 없고 차량이 충돌을 회피하기 위해 (예컨대, 도로를 벗어나서 주행하는 것, 속도 위반, 다가오는 차량들을 향하여 주행하는 것, 높은 종방향 또는 측방향 가속 또는 급격한 동작, 또는 기타의 위험한 조종들에 의한) 안전하지 않은 조종을 행할 필요가 없었던 경우, 충돌이 없고 (시나리오에 따라서는 1초의 몇 분의 1, 1초, 수 초, 또는 그 대략과 같이) 시나리오에서의 잠재적 충돌에 반응하기 시작하기 위한 반응 시간이 너무 느리지 않는 경우, 충돌이 있지만 손상들의 가능성이 매우 낮거나, 임의의 다른 고려 사항들이 있는 경우, 자율 제어 소프트웨어는 시나리오를 통과할 수 있다.
손상들의 가능성을 분석하는 것은, 차량 충돌들에 대한 계산들 및 알려진 보험통계적 기법들을 사용하여 예상되는 손상 결과들을 결정하고 정량화하기 위해, 충격 위치, 충격 각도, 및 또는 충돌 시에 가상 차량과 충돌했던 물체와 가상 차량의 속도와 같은, 주어진 시나리오의 결과에 대한 특성들을 사용하여 충돌의 속성들을 식별하는 것을 수반할 수 있다. 이와 관련하여, (미국 자동차 의학 진흥 협회(Association for Advancement of Automotive Medicine)에 의해 발행된) 손상들의 심각도의 AIS 분류, 또는 도로 차량 기능 안전성(Road Vehicle Functional Safety)을 위한 ISO 26262 표준에 정의된 심각도의 클래스들과 같은 손상 심각도 시스템이 "통과" 또는 "실패" 기준을 식별하는 데 도움을 주기 위해 예상되는 손상 결과들을 정량화하기 위해 사용될 수 있다. 예로서, 표 2로부터의 심각도의 클래스들의 정의를 사용하여, S0 또는 S1의 심각도 레벨을 갖는 충돌들은 "통과"라고 간주될 수 있다. 모든 다른 충돌들은 "실패"로 간주될 수 있다. 아래의 표 1은 축약된 손상 스코어 시스템(Abbreviated Injury Score system)의 예시적인 표현을 제공하고, 표 2는 표 1의 전술한 ES 레벨들과 AIS 스코어 코드들 사이의 매핑을 제공한다.
Figure 112020069422627-pct00001
Figure 112020069422627-pct00002
시나리오들을 통해 자율 제어 소프트웨어를 실행하는 것에 더하여, 검증 모델은 또한 자율 제어 소프트웨어가 시나리오를 통과할 것인지를 결정하기 위해 시나리오들을 통해 실행될 수 있다. 그러나, 지각 시스템(172)에 의해 컴퓨팅 디바이스들(110)에 제공될 데이터에 대해 검증 모델을 제한하기보다는, 검증 모델에는 시나리오에 관한 정보 전부가 제공된다. 이와 관련하여, 검증 모델은 위에 언급한 바와 같이 완벽한 지각을 가지며, 따라서 시나리오에 관한 자율 제어 소프트웨어보다 더 많은 정보를 제공받는다. 대안적으로, 검증 모델의 지각은 위의 예들 중 임의의 것에서와 같이 제한될 수 있다.
또한, 검증 모델의 성능을 평가할 때, 검증 모델은 검증 모델에 대한 규칙들의 세트 및 특성들의 세트를 사용하여 일반적인 응답 타입들의 미리 결정된 세트의 전부 또는 서브세트 하에서 동일한 시나리오를 실행할 수 있다. 다시 말해서, 검증 모델은 실제로 자율 제어 소프트웨어를 "대신한다". 도 7의 예 700에 예시된 바와 같이, 응답들의 이러한 일반 카테고리들은 제동(경로 A에 의해 표현됨), 우측으로의 방향전환(경로 B에 의해 표현됨), 좌측으로의 방향전환(경로 C에 의해 표현됨), 제동 및 우측으로의 방향전환(경로 D에 의해 표현됨), 또는 제동 및 좌측으로의 방향전환(경로 E에 의해 표현됨)을 포함할 수 있다. 다른 응답 타입들은 또한, 아무 것도 행하지 않는것(즉, 가속/감속 또는 방향을 변경하지 않는 것), 가속, 또는 좌측 또는 우측으로 방향전환하면서 가속, 또는 상이한 레이트들로 방향전환, 제동 또는 가속과 같은, 다른 반응 타입들을 포함할 수 있다.
다시, 검증 모델은 예를 들어, 특정 시나리오 또는 시나리오의 카테고리에 대해 인간 조작자에 의해 선택된 이러한 응답들의 미리 결정된 서브세트 또는 미리 결정된 세트 내의 상이한 응답들 각각을 사용하여 시나리오를 통해 실행될 것이다. 다시 말해서, 예 600의 시나리오는, 미리 결정된 세트가 예들 700에서 가능한 경로들(A-E)에 대응하는 일반적인 응답 타입들을 포함하는 것으로 가정하면, 시나리오는 5개의 가능한 경로 각각에 대해 1회 실행될 것이다. 이와 관련하여, 검증 모델은 각각의 시나리오에서 제동, 우측으로의 방향전환, 좌측으로의 방향전환, 제동 및 우측으로의 방향전환, 또는 제동 및 좌측으로의 방향전환을 포함하는, 미리 결정된 세트에서의 응답 타입들 각각을 시도하기 위한 기회를 가질 것이다.
다시, 이러한 응답들의 실제 특성들은, 예를 들어, 가상 차량의 능력들(제동, 가속, 스티어링 제어 등)뿐만 아니라 검증 모델이 검증 모델에 대한 규칙들의 세트 및 특성들의 세트에 따라 이러한 응답들을 수행하는 방법을 포함하여 임의의 수의 변수에 의해 지시될 수 있다. 규칙들의 세트는 특정 시나리오들, 시나리오들의 카테고리들, 또는 모든 시나리오들에 대해 조정되거나 구체적으로 선택될 수 있다. 예를 들어, 규칙들의 세트는 시나리오에서 모델이 다른 물체들을 무시해야 하는지를 정의하고, 시나리오에서의 모든 물체들을 동일하게 피하려고 시도하거나, 시나리오에서의 일부 물체들(예컨대, 사람들, 자전거 사용자들, 또는 다른 차량들)을 다른 타입들의 물체들(예컨대, 도로 경계석들, 중앙선들 등)보다 더 많이 피하려고 시도할 수 있다. 이러한 규칙들의 세트는 또한, 예를 들어, 가상 모델이 일정한 속도를 유지해야 하는지, 모델이 특정 속도(시간당 25 마일 또는 그 대략)를 유지해야 하는지, 또는 모델이 자율 제어 소프트웨어에 의해 결정되는 것과 동일한 속도 계획을 사용해야 하는지와 같은, 시나리오에 응답하기 전에 가상 차량의 속도를 정의할 수 있다. 규칙들의 세트는 또한 모델이 시나리오에 응답하기 전에 특정 기하학적 구조를 따라야 하는지, 모델이 항상 동일한 기하학적 구조를 따라야 하는지(예를 들어, 항상 직선으로 감), 또는 모델이 자율 제어 소프트웨어에 의해 결정되는 것과 동일한 기하학적 구조를 사용해야 하는지를 정의할 수 있다.
일부 경우들에서, 검증 모델의 응답 타입의 특정 특성들뿐만 아니라 가상 차량의 가속(측방향 및 전방향)도 또한 규칙들의 세트에 의해 정의될 수 있다. 예를 들어, 제동의 특정 램핑은 규칙들의 세트 내에서 또는 시나리오에서 인코딩될 수 있어, 검증 모델이 먼저 매우 강력하게 브레이크들을 밟는 것(감속)을 시작하지만, 가상 차량이 특정 레벨의 감속 또는 속도에 도달하면, 검증 모델은 브레이크들을 더 느린 레이트로 밟을 수 있다.
예시적인 미리 결정된 세트는 단지 5개의 일반적인 응답 타입만을 포함하지만, 세트는 아무 것도 타입들의 반응행하지 않는것(즉, 가속/감속 또는 방향을 변경하지 않는 것), 가속, 또는 좌측 또는 우측으로 방향전환하면서 가속과 같은, 상이하거나 다른 응답 타입들을 포함할 수 있다. 다른 예로서, 응답들의 미리 결정된 세트의 전체 또는 서브세트를 사용하기보다는, 인간 조작자는 "최상의" 거동을 갖는 검증 모델을 인코딩할 수 있고, 검증 모델은 검증 모델에 따라 주어진 시나리오에 대해 무엇이 최상의 응답이 될 것인지를 예측하고 시나리오를 실행할 수 있고, 검증 모델은 항상 동일한 응답을 사용하거나(예를 들어, 항상 직선으로 계속 감), 또는 검증 모델이 주어진 시나리오에 대해 자율 차량 소프트웨어에 의해 결정된 동일한 경로(즉, 동일한 기하학적 구조)를 따르게 하지만, 검증 모델이 가상 차량의 속도를 어떻게 변경하는지 또는 이를 변경할지를 결정하는 것을 허용할 수 있다.
검증 모델이 응답들 중 주어진 하나를 사용하여 시나리오를 통과했는지 또는 실패했는지는, 자율 제어 소프트웨어에 대한 것과 동일하거나 유사한 규칙들을 사용하여 결정될 수 있다. 예로서, 검증 모델은 위에서 논의된 예들에서와 같이, 예를 들어, 다음 중 임의의 것에 기초하여 시나리오를 통과할 수 있다: 충돌이 없는 경우, 충돌이 없고 가상 차량과 다른 물체 사이의 적어도 일부 최소 버퍼 거리가 존재하는 경우, 충돌이 없고 차량이 충돌을 회피하기 위해 안전하지 않은 조종을 행할 필요가 없었던 경우, 충돌이 없고 시나리오에서의 잠재적 충돌에 반응하기 시작하기 위한 반응 시간이 너무 느리지 않는 경우. 검증 모델이 상이한 응답들 중 임의의 하나를 사용하여 시나리오를 통과한다면, 검증 모델은 그 시나리오를 통과한 것으로 간주될 수 있다. 이와 관련하여, 검증 모델이 테스트되는 매 5회당, 자율 제어 소프트웨어가 1회 테스트된다.
그 다음, 시나리오들의 결과들은 검증 모델과 비교해서 자율 제어 소프트웨어의 성능을 평가하기 위해 비교될 수 있다. 하나의 경우에, 자율 제어 소프트웨어는 적어도 검증 모델만큼 많은 시나리오들을 통과하는 것과 같은, 특정 요건들을 충족시킬 필요가 있을 수 있다. 또한, 검증 모델과 비교해서 자율 제어 소프트웨어의 더 유용한 분석 및 비교의 결과들에 대한 더 큰 유틸리티를 제공하기 위해, 주어진 카테고리들 또는 카테고리 그룹화에 대한 결과들은, 그 주어진 카테고리 또는 카테고리 그룹화에 대해 검증 모델과 비교해서 자율 제어 소프트웨어가 어떻게 수행되었는지를 결정하기 위해 개별 시나리오들의 평가들을 집계 또는 함께 그룹화함으로써 평가될 수 있다. 예를 들어, 카테고리 또는 카테고리 그룹화를 "통과"하기 위해, 자율 제어 소프트웨어에 대한 결과들은 검증 모델의 결과들과 비교될 수 있다.
예로서, 주어진 카테고리를 통과하기 위해, 자율 제어 소프트웨어는 다음 요건들 중 하나 이상을 달성하도록 요구될 수 있다: 주어진 카테고리 내의 검증 모델보다 크거나 같은 수의 시나리오에서의 충돌을 회피하는 요건, 그러한 시나리오들에 대해 검증 모델에 의해 달성된 평균 버퍼 거리보다 크거나 같은 주어진 카테고리의 시나리오들의 전부 또는 서브세트에 걸쳐 평균 버퍼 거리를 달성하는 요건, 그러한 시나리오들에 대해 검증 모델에 의해 달성된 잠재적 충돌에 반응하기 시작하기 위한 평균 반응 시간보다 크거나 같은 주어진 카테고리의 시나리오들의 전부 또는 서브세트에 걸쳐 잠재적 충돌에 반응하기 시작하기 위한 평균 반응 시간을 달성하는 요건, 검증 모델에 의해 달성되는 평균 성능 메트릭들보다 작거나 같은 주어진 카테고리의 시나리오들의 전부 또는 서브세트에 걸쳐, 평균 성능 메트릭들(예컨대 최대 측방향 가속 또는 감속, 최대 종방향 가속 또는 감속 또는 급격한 동작)을 달성하는 요건, 검증 소프트웨어가 가상 차량으로 하여금 그러한 시나리오들에 대해 수행하게 하는 조종들보다 안전하거나 그만큼 안전한 주어진 카테고리의 시나리오들의 전부 또는 서브세트에 걸쳐 가상 차량으로 하여금 조종들을 수행하게 하는 요건, 그러한 시나리오들에 대해 검증 소프트웨어보다, 주어진 카테고리의 시나리오들의 전부 또는 서브세트에 걸쳐, S2 또는 S3과 같은, 특정 심각도 레벨 이상의 충돌들을 갖지 않는 요건. 시나리오들의 주어진 카테고리에 대한 조종들의 "안전성"은 가상 차량에 의해 수행되는 조종의 각각의 타입(예를 들어, 차선 내에 머무르는 것, 차선을 떠나는 것, 도로를 떠나는 것 등)에 페널티 또는 스코어 값을 할당하고, 자율 제어 소프트웨어 및 검증 모델 둘 다에 대해 복수의 시나리오에 걸쳐 총 스코어를 가산함으로써 평가될 수 있다. 이 예에서, 그러한 총 스코어들의 값들은, 검증 모드에 대한 자율 제어 소프트웨어의 성능을 결정하기 위해, 더 정확히 말하자면 주어진 카테고리의 시나리오들에 대한 자율 제어 소프트웨어의 결과들이, 주어진 카테고리의 시나리오들에 대한 검증 모델의 성능보다 안전했거나 그만큼 안전했는지를 결정하기 위해 비교될 수 있다. 위에 언급한 바와 같이, 카테고리들 및 카테고리 그룹화들 내의 이러한 입도는 자율 제어 소프트웨어가 어디서 그리고 어떻게 개선될 수 있는지에 대한 더 나은 이해를 제공할 수 있다.
유사하게, 주어진 카테고리 그룹화를 통과하기 위해, 자율 제어 소프트웨어는 주어진 카테고리에 대해 전술한 요건들 중 하나 이상을 달성하도록 요구될 수 있지만, 주어진 카테고리의 시나리오들에 걸쳐 평가되기보다는, 카테고리들 또는 카테고리 그룹화 내의 모든 시나리오들에 걸쳐 요건들이 평가될 수 있다. 이것의 일부로서, 카테고리 그룹화 내의 복수의 카테고리에 대한 충돌들의 수, 평균 버퍼 거리들, 평균 반응 시간들, 평균 성능 메트릭들, 조종들의 안전성에 대한 총 스코어들, 특정 심각도 레벨들 이상의 충돌들의 수들 등이 이 프로세스를 단순화하기 위해 카테고리 그룹화에 대한 그러한 요건들을 평가할 때 추가되거나 평균화될 수 있다. 다시, 위에 언급한 바와 같이, 카테고리들 및 카테고리 그룹화들 내의 이러한 입도는 자율 제어 소프트웨어가 어디서 그리고 어떻게 개선될 수 있는지에 대한 더 나은 이해를 제공할 수 있다.
자율 제어 소프트웨어가 평가들이 어떻게 수행되는지에 따라 모든 시나리오들, 카테고리들 및/또는 카테고리 그룹화들에 대한 전술한 요건들을 충족시킬 수 있는 경우, 자율 제어 소프트웨어는 검증 모델에 대해 검증된 것으로 간주될 수 있거나, 다른 검증 프로세스들이 또한 사용되는 경우 검증 모델에 대해 적어도 부분적으로 검증된 것으로 간주될 수 있다. 즉, 요건들을 충족시키는 것은 자율 제어 소프트웨어가 자율 제어 소프트웨어 및 검증 모델이 실행되었던 시나리오들에 대해 적어도 검증 모델만큼 양호하다는 것을 표시할 수 있다. 대안적으로, 자율 제어 소프트웨어가 시나리오들의 특정 카테고리에 대한 전술한 요건들을 충족시킬 수 없는 경우, 자율 제어 소프트웨어가 어떻게 필요에 따라 미세조정될 수 있는지를 결정하기 위해 결과들이 더 상세하게 평가될 수 있다. 시나리오들은 재실행될 수 있고, 자율 제어 소프트웨어는 필요에 따라 평가될 수 있다.
검증 모델은, 단지 1회만, 검증 모델이 업데이트될 때마다, 주기적으로, 또는 자율 제어 소프트웨어가 시나리오들을 통해 실행될 때마다, 시나리오들을 통해 실행될 수 있다. 자율 제어 소프트웨어가 시나리오들을 통해 실행될 때마다 검증 모델을 시나리오들을 통해 실행함으로써, 이것은 자율 차량 제어 소프트웨어를 검증할 때 검증 모델에 대한 임의의 최근 변경들이 고려되는 것을 보장한다.
도 8은 컴퓨팅 디바이스들(410)의 프로세서들과 같은 하나 이상의 프로세서에 의해 수행될 수 있는, 자율 제어 소프트웨어를 검증하기 위한 예들 중 일부의 예시적인 흐름도(800)를 포함한다. 예를 들어, 블록 810에서, 자율 제어 소프트웨어는 주행 시나리오를 통해 1회 실행되어 자율 제어 소프트웨어에 대한 시나리오의 결과를 관찰한다. 블록 820에서, 검증 모델은 주행 시나리오를 통해 복수 회 실행되어 복수 회 각각에 대해 검증 모델에 대한 시나리오의 결과를 관찰한다. 블록 830에서, 자율 제어 소프트웨어가 주행 시나리오를 통과했는지는 자율 제어 소프트웨어에 대한 시나리오의 결과가 자율 제어 소프트웨어의 제어 하의 가상 차량이 1회 동안 다른 물체와 충돌했음을 표시하는지에 기초하여 결정된다. 블록 840에서, 검증 모델이 주행 시나리오를 통과했는지는 검증 모델에 대한 시나리오의 결과가 검증 모델의 제어 하의 가상 차량이 복수 회 중 어느 하나에서 다른 물체와 충돌했음을 표시하는지에 기초하여 결정된다. 블록 850에서, 자율 제어 소프트웨어는 이 결정들에 기초하여 검증된다.
달리 명시되지 않는 한, 전술한 대안 예들은 상호 배타적인 것이 아니라, 다양한 조합들로 구현될 수 있어 고유 장점들을 달성한다. 위에서 설명된 특징들의 이러한 및 다른 변형들 및 조합들은 청구항에 의해 규정되는 주제로부터 벗어나지 않고서 사용될 수 있기 때문에, 전술한 실시예들의 설명은 청구항에 의해 규정되는 주제의 제한으로서가 아니라 예시로서 받아들여져야 한다. 또한, 본 명세서에 설명된 예들의 제공뿐만 아니라 "예컨대", "포함하는" 등과 같이 표현된 절들은 청구항들의 주제를 특정 예들로 제한하는 것으로서 해석되어서는 안 되고; 오히려, 예들은 많은 가능한 실시예들 중 하나만을 예시하도록 의도된다. 게다가, 상이한 도면들 내의 동일한 참조 번호들은 동일 또는 유사한 요소들을 식별할 수 있다.

Claims (20)

  1. 자율 주행 모드로 차량을 동작시키기 위한 자율 제어 소프트웨어를 검증하는 방법으로서,
    주행 시나리오를 통해 상기 자율 제어 소프트웨어를 1회 실행하여 상기 자율 제어 소프트웨어에 대한 상기 시나리오의 결과를 관찰하는 단계;
    상기 주행 시나리오를 통해 검증 모델을 복수 회 실행하여 상기 복수 회 각각에 대해 상기 검증 모델에 대한 상기 시나리오의 결과를 관찰하는 단계;
    상기 자율 제어 소프트웨어에 대한 상기 시나리오의 결과가 상기 자율 제어 소프트웨어의 제어 하의 가상 차량이 1회 동안 다른 물체와 충돌했음을 표시하는지에 기초하여 상기 자율 제어 소프트웨어가 상기 주행 시나리오를 통과했는지를 결정하는 단계;
    상기 검증 모델에 대한 상기 시나리오의 결과가 상기 검증 모델의 제어 하의 가상 차량이 상기 복수 회 중 어느 하나에서 다른 물체와 충돌했음을 표시하는지에 기초하여 상기 검증 모델이 상기 주행 시나리오를 통과했는지를 결정하는 단계; 및
    상기 결정들에 기초하여 상기 자율 제어 소프트웨어를 검증하는 단계를 포함하는 방법.
  2. 제1항에 있어서,
    상기 주행 시나리오는 주행 시나리오들의 주어진 카테고리에 대한 복수의 주행 시나리오 중 하나이고, 상기 자율 제어 소프트웨어를 검증하는 것은 상기 주어진 카테고리에 대한 상기 복수의 주행 시나리오 전부에 걸쳐 상기 자율 제어 소프트웨어 및 상기 검증 모델의 성능을 평가하는 것에 기초하는 방법.
  3. 제2항에 있어서,
    상기 자율 제어 소프트웨어에 의해 통과된 상기 주행 시나리오들의 수를, 상기 검증 모델의 복수의 잠재적 응답들에서 적어도 1회 상기 검증 모델에 의해 통과된 시나리오들의 수와 비교하는 단계를 추가로 포함하고, 상기 자율 제어 소프트웨어를 검증하는 것은 상기 비교에 추가로 기초하는 방법.
  4. 제1항에 있어서,
    상기 주행 시나리오를 통해 상기 검증 모델을 복수 회 실행하는 것은 일반적인 응답 타입들의 미리 결정된 세트에서 식별된 각각의 응답 타입들에 대해 상기 시나리오를 1회 실행하는 것을 포함하는 방법.
  5. 제1항에 있어서,
    상기 복수 회 각각은 상이한 상기 검증 모델의 응답에 대응하여, 상기 복수 회 중 제1 회는 제동 응답을 포함하고, 상기 복수 회 중 제2 회는 우측으로의 방향전환 응답을 포함하고, 상기 복수 회 중 제3 회는 좌측으로의 방향전환 응답을 포함하고, 상기 복수 회 중 제4 회는 제동 및 우측으로의 방향전환 응답을 포함하고, 상기 복수 회 중 제5 회는 제동 및 좌측으로의 방향전환 응답을 포함하는 방법.
  6. 제1항에 있어서,
    상기 자율 제어 소프트웨어가 상기 주행 시나리오를 통과했는지를 결정하는 것은 상기 다른 물체와의 임의의 충돌의 심각도 레벨에 추가로 기초하는 방법.
  7. 제6항에 있어서,
    상기 자율 제어 소프트웨어를 검증하는 것은 상기 심각도 레벨에 추가로 기초하는 방법.
  8. 제1항에 있어서,
    상기 검증 모델이 상기 주행 시나리오를 통과했는지를 결정하는 것은 상기 다른 물체와의 임의의 충돌의 심각도 레벨에 추가로 기초하는 방법.
  9. 제8항에 있어서,
    상기 자율 제어 소프트웨어를 검증하는 것은 상기 심각도 레벨에 추가로 기초하는 방법.
  10. 제1항에 있어서,
    물체들 둘 다가 상기 시나리오에서 각각의 현재 궤적들을 계속 갔을 경우에, 상기 가상 차량이 상기 다른 물체와 충돌하기 전에 상기 시나리오 내에서 미리 결정된 초 수(predetermined number of seconds)에 대응하는 상기 시나리오에서의 상기 가상 차량의 상기 검증 모델 제어 또는 상기 자율 제어 소프트웨어를 제공하기 위한 핸드오버 시간을 식별하는 단계를 추가로 포함하고, 상기 핸드오버 시간은 상기 주행 시나리오를 통해 상기 검증 모델을 실행하고 상기 주행 시나리오를 통해 상기 자율 제어 소프트웨어를 실행하기 위해 사용되는 방법.
  11. 제10항에 있어서,
    상기 핸드오버 시간은 상기 주행 시나리오를 통해 상기 자율 제어 소프트웨어를 실행하기 위해 사용되는 방법.
  12. 제10항에 있어서,
    상기 핸드오버 시간의 확인을 위해 인간 조작자에게 상기 시나리오 및 상기 핸드오버 시간을 제공하는 단계를 추가로 포함하는 방법.
  13. 자율 주행 모드로 차량을 동작시키기 위한 자율 제어 소프트웨어를 검증하기 위한 시스템으로서, 하나 이상의 프로세서를 갖는 하나 이상의 컴퓨팅 디바이스를 포함하고, 상기 하나 이상의 프로세서는:
    주행 시나리오를 통해 상기 자율 제어 소프트웨어를 1회 실행하여 상기 자율 제어 소프트웨어에 대한 상기 시나리오의 결과를 관찰하고;
    상기 주행 시나리오를 통해 검증 모델을 복수 회 실행하여 상기 복수 회 각각에 대해 상기 검증 모델에 대한 상기 시나리오의 결과를 관찰하고;
    상기 자율 제어 소프트웨어에 대한 상기 시나리오의 결과가 상기 자율 제어 소프트웨어의 제어 하의 가상 차량이 1회 동안 다른 물체와 충돌했음을 표시하는지에 기초하여 상기 자율 제어 소프트웨어가 상기 주행 시나리오를 통과했는지를 결정하고;
    상기 검증 모델에 대한 상기 시나리오의 결과가 상기 검증 모델의 제어 하의 가상 차량이 상기 복수 회 중 어느 하나에서 다른 물체와 충돌했음을 표시하는지에 기초하여 상기 검증 모델이 상기 주행 시나리오를 통과했는지를 결정하고;
    상기 결정들에 기초하여 상기 자율 제어 소프트웨어를 검증하도록 구성되는 시스템.
  14. 제13항에 있어서,
    상기 주행 시나리오는 주행 시나리오들의 주어진 카테고리에 대한 복수의 주행 시나리오 중 하나이고, 상기 자율 제어 소프트웨어를 검증하는 것은 상기 주어진 카테고리에 대한 상기 복수의 주행 시나리오 전부에 걸쳐 상기 자율 제어 소프트웨어 및 상기 검증 모델의 성능을 평가하는 것에 기초하는 시스템.
  15. 제14항에 있어서,
    상기 하나 이상의 프로세서는 상기 자율 제어 소프트웨어에 의해 통과된 상기 주행 시나리오들의 수를, 상기 검증 모델의 복수의 잠재적 응답들에서 적어도 1회 상기 검증 모델에 의해 통과된 시나리오들의 수와 비교하도록 추가로 구성되고, 상기 자율 제어 소프트웨어를 검증하는 것은 상기 비교에 추가로 기초하는 시스템.
  16. 제13항에 있어서,
    상기 하나 이상의 프로세서는 상기 자율 제어 소프트웨어가 상기 주행 시나리오를 통과했는지를 상기 다른 물체와의 임의의 충돌의 심각도 레벨에 추가로 기초하여 결정하도록 추가로 구성되는 시스템.
  17. 제13항에 있어서,
    상기 하나 이상의 프로세서는 상기 검증 모델이 상기 주행 시나리오를 통과했는지를 상기 다른 물체와의 임의의 충돌의 심각도 레벨에 추가로 기초하여 결정하도록 추가로 구성되는 시스템.
  18. 제13항에 있어서,
    상기 하나 이상의 프로세서는 물체들 둘 다가 상기 시나리오에서 각각의 현재 궤적들을 계속 갔을 경우에, 상기 가상 차량이 상기 다른 물체와 충돌하기 전에 상기 시나리오 내에서 미리 결정된 초 수(predetermined number of seconds)에 대응하는 상기 시나리오에서의 상기 가상 차량의 상기 검증 모델 제어 또는 상기 자율 제어 소프트웨어를 제공하기 위한 핸드오버 시간을 식별하도록 추가로 구성되고, 상기 핸드오버 시간은 상기 주행 시나리오를 통해 상기 검증 모델을 실행하고 상기 주행 시나리오를 통해 상기 자율 제어 소프트웨어를 실행하기 위해 사용되는 시스템.
  19. 제13항에 있어서,
    상기 자율 제어 소프트웨어를 추가로 포함하는 시스템.
  20. 제13항에 있어서,
    상기 검증 모델을 추가로 포함하는 시스템.
KR1020207019371A 2018-01-08 2019-01-08 자율 차량들을 위한 소프트웨어 검증 KR102355257B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/864,239 US10831636B2 (en) 2018-01-08 2018-01-08 Software validation for autonomous vehicles
US15/864,239 2018-01-08
PCT/US2019/012713 WO2019136447A1 (en) 2018-01-08 2019-01-08 Software validation for autonomous vehicles

Publications (2)

Publication Number Publication Date
KR20200085363A KR20200085363A (ko) 2020-07-14
KR102355257B1 true KR102355257B1 (ko) 2022-02-08

Family

ID=67139542

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207019371A KR102355257B1 (ko) 2018-01-08 2019-01-08 자율 차량들을 위한 소프트웨어 검증

Country Status (8)

Country Link
US (3) US10831636B2 (ko)
EP (1) EP3710327B1 (ko)
JP (1) JP7183273B2 (ko)
KR (1) KR102355257B1 (ko)
CN (1) CN111565990B (ko)
AU (2) AU2019205817B2 (ko)
SG (1) SG11202005671RA (ko)
WO (1) WO2019136447A1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3525374B1 (en) * 2018-02-07 2021-10-06 Volkswagen Aktiengesellschaft Method for data communication between at least two participants of a wireless communication system, corresponding control unit and vehicle equipped with a control unit as well as computer program
JP6806107B2 (ja) * 2018-03-20 2021-01-06 日本電気株式会社 障害物認識支援装置、障害物認識支援方法、プログラム
EP3584748A1 (de) * 2018-06-20 2019-12-25 Siemens Aktiengesellschaft Verfahren zur erzeugung eines testdatensatzes, verfahren zum testen, verfahren zum betreiben eines systems, vorrichtung, steuerungssystem, computerprogrammprodukt, computerlesbares medium, erzeugung und verwendung
US10896116B1 (en) 2018-10-19 2021-01-19 Waymo Llc Detecting performance regressions in software for controlling autonomous vehicles
US11332132B2 (en) * 2019-08-30 2022-05-17 Argo AI, LLC Method of handling occlusions at intersections in operation of autonomous vehicle
US11494533B2 (en) * 2019-11-27 2022-11-08 Waymo Llc Simulations with modified agents for testing autonomous vehicle software
DE102020204867A1 (de) * 2020-04-17 2021-10-21 Volkswagen Aktiengesellschaft Verfahren und System zum Betreiben einer Fahrmanöverplanung mindestens eines zumindest teilautomatisiert fahrenden Fahrzeugs
US11886193B1 (en) * 2020-06-04 2024-01-30 Nuro, Inc. Methods and apparatus for using scene-based metrics to gate readiness of autonomous systems
EP3940487B1 (en) * 2020-07-14 2023-09-20 Zenuity AB Estimation of probability of collision with increasing severity level for autonomous vehicles
CN111881520B (zh) * 2020-07-31 2022-01-11 广州文远知行科技有限公司 一种自动驾驶测试的异常检测方法、装置、计算机设备及存储介质
KR102335372B1 (ko) * 2020-10-19 2021-12-06 주식회사 오비고 QC(Quality Control) 검증앱을 이용하여 자율주행차량의 동작을 검증하는 방법 및 관제 서버
CN112559371B (zh) * 2020-12-24 2023-07-28 北京百度网讯科技有限公司 一种自动驾驶测试方法、装置及电子设备
KR20230160807A (ko) * 2021-02-12 2023-11-24 파이브 에이아이 리미티드 모바일 로봇 궤적 계획기들에 대한 성능 테스트
US11932260B2 (en) * 2021-03-30 2024-03-19 Motional Ad Llc Selecting testing scenarios for evaluating the performance of autonomous vehicles
US11834070B2 (en) * 2021-07-08 2023-12-05 Waymo Llc Probabilistic simulation sampling from agent data
KR102625974B1 (ko) * 2021-11-29 2024-01-18 주식회사 오비고 자율주행차량의 운행 검증에 필요한 검증 시나리오를 편집하는 방법 및 이를 이용한 서버
KR102434475B1 (ko) * 2022-01-21 2022-08-19 주식회사 모라이 자율 주행 알고리즘의 성능 평가 방법 및 시스템
CN114501516B (zh) * 2022-02-14 2024-03-12 成都市以太节点科技有限公司 一种车地无线通信切换室内测试方法及系统
WO2023186296A1 (en) * 2022-03-30 2023-10-05 Siemens Aktiengesellschaft Determination of an impact impa of deployment of an autonomous vehicle in an environment
KR102579590B1 (ko) * 2022-12-28 2023-09-18 도로교통공단 도로교통법 기반 자율주행차 운전능력 평가시나리오 생성 시스템
DE102023000357B3 (de) 2023-02-06 2024-06-06 Mercedes-Benz Group AG Verfahren zum Erzeugen von Testdaten für eine Simulation eines Assistenzsystems eines zumindest teilweise assistiert betriebenen Kraftfahrzeugs, Computerprogrammprodukt, computerlesbares Speichermedium sowie elektronische Recheneinrichtung

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080091352A1 (en) 2006-10-11 2008-04-17 O'hare James K Automobile collision avoidance system
JP2015049187A (ja) 2013-09-03 2015-03-16 株式会社日立製作所 シミュレーション走行ルート生成方法およびそのシステム
US20150242953A1 (en) 2014-02-25 2015-08-27 State Farm Mutual Automobile Insurance Company Systems and methods for generating data that is representative of an insurance policy for an autonomous vehicle
US20150339928A1 (en) 2015-08-12 2015-11-26 Madhusoodhan Ramanujam Using Autonomous Vehicles in a Taxi Service
US20160314224A1 (en) 2015-04-24 2016-10-27 Northrop Grumman Systems Corporation Autonomous vehicle simulation system
US20160368492A1 (en) 2015-06-16 2016-12-22 Honda Motor Co., Ltd. System and method for providing vehicle collision avoidance at an intersection
US20170132117A1 (en) 2015-11-06 2017-05-11 Ford Global Technologies, Llc Method and device for generating test cases for autonomous vehicles
JP2017173309A (ja) 2016-03-18 2017-09-28 トヨタ自動車株式会社 クラウドソースを利用した車両シミュレーション装置
US20170286570A1 (en) 2016-03-30 2017-10-05 Toyota Jidosha Kabushiki Kaisha Dynamic Virtual Object Generation for Testing Autonomous Vehicles in Simulated Driving Scenarios
US9858621B1 (en) 2014-05-20 2018-01-02 State Farm Mutual Automobile Insurance Company Autonomous vehicle technology effectiveness determination for insurance pricing
US20180107770A1 (en) 2016-10-14 2018-04-19 Zoox, Inc. Scenario description language
US20180341571A1 (en) 2017-05-23 2018-11-29 Uber Technologies, Inc. Software version verification for autonomous vehicles

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4677691B2 (ja) * 2001-07-24 2011-04-27 株式会社日立製作所 自動車の制御方法
US8924049B2 (en) * 2003-01-06 2014-12-30 General Electric Company System and method for controlling movement of vehicles
WO2004090659A2 (en) * 2003-04-10 2004-10-21 Mukesh Dalal Optimizing active decision making using simulated decision making
US20070260438A1 (en) * 2006-05-08 2007-11-08 Langer William J Vehicle testing and simulation using integrated simulation model and physical parts
US7308327B2 (en) * 2006-05-12 2007-12-11 Ford Motor Company Method of application protocol monitoring for programmable logic controllers
GB0611960D0 (en) * 2006-06-16 2006-07-26 Ibm Software testing method and system
US8626565B2 (en) * 2008-06-30 2014-01-07 Autonomous Solutions, Inc. Vehicle dispatching method and system
US20100057405A1 (en) * 2008-08-28 2010-03-04 Sony Corporation Automated software testing environment
US8473171B2 (en) * 2008-10-09 2013-06-25 GM Global Technology Operations LLC Apparatus and method for optimizing a vehicle collision preparation response
US8126642B2 (en) * 2008-10-24 2012-02-28 Gray & Company, Inc. Control and systems for autonomously driven vehicles
US8126736B2 (en) * 2009-01-23 2012-02-28 Warsaw Orthopedic, Inc. Methods and systems for diagnosing, treating, or tracking spinal disorders
US20100228427A1 (en) * 2009-03-05 2010-09-09 Massachusetts Institute Of Technology Predictive semi-autonomous vehicle navigation system
WO2013066809A1 (en) * 2011-11-01 2013-05-10 Raytheon Company System to establish trustworthiness of autonomous agent
KR101703144B1 (ko) * 2012-02-09 2017-02-06 한국전자통신연구원 차량의 자율주행 장치 및 그 방법
US8881126B2 (en) * 2012-07-31 2014-11-04 Oracle International Corporation Systems and methods for testing a compiler through compile-time decision feedback
WO2014106110A1 (en) * 2012-12-31 2014-07-03 Shuster, Gary, Stephen Decision making using algorithmic or programmatic analysis
KR20140095882A (ko) * 2013-01-25 2014-08-04 삼성전자주식회사 모바일 장치를 검증하기 위한 테스트 시스템 및 이의 구동 방법
DE102013213171A1 (de) * 2013-07-04 2015-01-08 Robert Bosch Gmbh Verfahren und Vorrichtung zum Betreiben eines Kraftfahrzeugs in einem automatisierten Fahrbetrieb
EP2865576B1 (en) 2013-10-22 2018-07-04 Honda Research Institute Europe GmbH Composite confidence estimation for predictive driver assistant systems
US9406177B2 (en) 2013-12-20 2016-08-02 Ford Global Technologies, Llc Fault handling in an autonomous vehicle
US9650051B2 (en) * 2013-12-22 2017-05-16 Lytx, Inc. Autonomous driving comparison and evaluation
EP2990290B1 (en) * 2014-09-01 2019-11-06 Honda Research Institute Europe GmbH Method and system for post-collision manoeuvre planning and vehicle equipped with such system
EP3885217A1 (en) * 2015-02-10 2021-09-29 Mobileye Vision Technologies Ltd. Sparse map for autonomous vehicle navigation
US20160357262A1 (en) * 2015-06-05 2016-12-08 Arafat M.A. ANSARI Smart vehicle
US9483948B1 (en) * 2015-08-07 2016-11-01 International Business Machines Corporation Automated control of interactions between self-driving vehicles and pedestrians
DE102015010167B4 (de) * 2015-08-11 2017-12-07 Dspace Digital Signal Processing And Control Engineering Gmbh Berechnung einer Solltrajektorie
US9587952B1 (en) 2015-09-09 2017-03-07 Allstate Insurance Company Altering autonomous or semi-autonomous vehicle operation based on route traversal values
US9751506B2 (en) * 2015-10-27 2017-09-05 GM Global Technology Operations LLC Algorithms for avoiding automotive crashes at left and right turn intersections
US10496766B2 (en) * 2015-11-05 2019-12-03 Zoox, Inc. Simulation system and methods for autonomous vehicles
DE102016220670A1 (de) * 2015-11-06 2017-05-11 Ford Global Technologies, Llc Verfahren und System zum Testen von Software für autonome Fahrzeuge
US10521215B2 (en) * 2015-12-10 2019-12-31 Intel Corporation Technologies for customized crowd-sourced features, automated safety and quality assurance with a technical computing environment
US10073965B2 (en) * 2015-12-15 2018-09-11 Nagravision S.A. Methods and systems for validating an autonomous system that includes a dynamic-code module and a static-code module
US9581461B1 (en) * 2016-01-05 2017-02-28 Allstate Insurance Company Data processing system communicating with a map data processing system to generate a display of one or more segments of one or more vehicle routes
US10474964B2 (en) * 2016-01-26 2019-11-12 Ford Global Technologies, Llc Training algorithm for collision avoidance
US10054944B2 (en) * 2016-04-01 2018-08-21 Jaguar Land Rover Limited System and method for configuring autonomous vehicle responses based on a driver profile
CN105911986A (zh) 2016-04-25 2016-08-31 百度在线网络技术(北京)有限公司 无人驾驶车辆感知测试系统和测试方法
ITUA20163204A1 (it) * 2016-05-06 2017-11-06 Cnh Ind Italia Spa Apparato per la prevenzione automatica delle collisioni.
CN106153352B (zh) * 2016-07-04 2018-08-10 江苏大学 一种无人驾驶车辆测试验证平台及其测试方法
EP3485337B1 (en) * 2016-09-23 2020-10-21 Apple Inc. Decision making for autonomous vehicle motion control
US10421460B2 (en) * 2016-11-09 2019-09-24 Baidu Usa Llc Evaluation framework for decision making of autonomous driving vehicle
EP3352028A1 (de) * 2017-01-23 2018-07-25 dSPACE digital signal processing and control engineering GmbH Verfahren zum test einer steuergerätefunktion eines steuergeräts eines fahrzeugs
CN106951627A (zh) * 2017-03-15 2017-07-14 北京百度网讯科技有限公司 车辆自动驾驶的仿真测试方法、装置、设备及计算机可读存储介质
CN110462530A (zh) * 2017-03-31 2019-11-15 索尼公司 信息处理设备、信息处理方法、计算机程序和程序制造方法
US11282016B2 (en) * 2017-05-23 2022-03-22 Uatc, Llc Individualized risk vehicle matching for an on-demand transportation service
CN107264534B (zh) * 2017-05-23 2019-07-09 北京理工大学 基于驾驶员经验模型的智能驾驶控制系统和方法、车辆
US10431023B1 (en) * 2017-08-21 2019-10-01 Uber Technologies, Inc. Systems and methods to test an autonomous vehicle
US10885240B2 (en) * 2017-11-02 2021-01-05 Uatc, Llc Deterministic simulation framework for autonomous vehicle testing
AU2018267541A1 (en) 2017-11-20 2019-06-06 Ashok Krishnan Systems and methods of training vehicles
US10860018B2 (en) * 2017-11-30 2020-12-08 Tusimple, Inc. System and method for generating simulated vehicles with configured behaviors for analyzing autonomous vehicle motion planners
US10303178B1 (en) * 2017-12-15 2019-05-28 Waymo Llc Collision mitigation static occupancy grid
DE102021109126A1 (de) * 2021-04-13 2022-10-13 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Testen eines Produkts

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080091352A1 (en) 2006-10-11 2008-04-17 O'hare James K Automobile collision avoidance system
JP2015049187A (ja) 2013-09-03 2015-03-16 株式会社日立製作所 シミュレーション走行ルート生成方法およびそのシステム
US20150242953A1 (en) 2014-02-25 2015-08-27 State Farm Mutual Automobile Insurance Company Systems and methods for generating data that is representative of an insurance policy for an autonomous vehicle
US9858621B1 (en) 2014-05-20 2018-01-02 State Farm Mutual Automobile Insurance Company Autonomous vehicle technology effectiveness determination for insurance pricing
US20160314224A1 (en) 2015-04-24 2016-10-27 Northrop Grumman Systems Corporation Autonomous vehicle simulation system
US20160368492A1 (en) 2015-06-16 2016-12-22 Honda Motor Co., Ltd. System and method for providing vehicle collision avoidance at an intersection
US20150339928A1 (en) 2015-08-12 2015-11-26 Madhusoodhan Ramanujam Using Autonomous Vehicles in a Taxi Service
US20170132117A1 (en) 2015-11-06 2017-05-11 Ford Global Technologies, Llc Method and device for generating test cases for autonomous vehicles
JP2017173309A (ja) 2016-03-18 2017-09-28 トヨタ自動車株式会社 クラウドソースを利用した車両シミュレーション装置
US20170286570A1 (en) 2016-03-30 2017-10-05 Toyota Jidosha Kabushiki Kaisha Dynamic Virtual Object Generation for Testing Autonomous Vehicles in Simulated Driving Scenarios
US20180107770A1 (en) 2016-10-14 2018-04-19 Zoox, Inc. Scenario description language
US20180341571A1 (en) 2017-05-23 2018-11-29 Uber Technologies, Inc. Software version verification for autonomous vehicles

Also Published As

Publication number Publication date
AU2019205817B2 (en) 2022-01-27
SG11202005671RA (en) 2020-07-29
US10831636B2 (en) 2020-11-10
EP3710327A4 (en) 2021-09-01
US11645189B2 (en) 2023-05-09
CN111565990A (zh) 2020-08-21
CN111565990B (zh) 2023-07-25
EP3710327A1 (en) 2020-09-23
AU2022202150B2 (en) 2022-07-14
KR20200085363A (ko) 2020-07-14
JP7183273B2 (ja) 2022-12-05
US11210200B2 (en) 2021-12-28
EP3710327B1 (en) 2023-11-08
US20210004313A1 (en) 2021-01-07
WO2019136447A1 (en) 2019-07-11
US20220100635A1 (en) 2022-03-31
US20190213103A1 (en) 2019-07-11
AU2022202150A1 (en) 2022-04-21
AU2019205817A1 (en) 2020-07-09
JP2021509646A (ja) 2021-04-01

Similar Documents

Publication Publication Date Title
KR102355257B1 (ko) 자율 차량들을 위한 소프트웨어 검증
US10896122B2 (en) Using divergence to conduct log-based simulations
US10943414B1 (en) Simulating virtual objects
US11836955B2 (en) Detecting unfamiliar signs
US11385991B1 (en) Collision evaluation for log-based simulations
US11790131B2 (en) Simulations with modified agents for testing autonomous vehicle software
US20220198107A1 (en) Simulations for evaluating driving behaviors of autonomous vehicles
US20220204009A1 (en) Simulations of sensor behavior in an autonomous vehicle
US20230382400A1 (en) Extracting agent intent from log data for running log-based simulations for evaluating autonomous vehicle software
US20240083458A1 (en) Using simulations to identify differences between behaviors of manually-driven and autonomous vehicles
US11126763B1 (en) Realism metric for testing software for controlling autonomous vehicles
US20240017741A1 (en) Validation of trajectory planning for autonomous vehicles

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right