KR20210006926A - 자율 주행 차량에서의 리던던시 - Google Patents

자율 주행 차량에서의 리던던시 Download PDF

Info

Publication number
KR20210006926A
KR20210006926A KR1020207034459A KR20207034459A KR20210006926A KR 20210006926 A KR20210006926 A KR 20210006926A KR 1020207034459 A KR1020207034459 A KR 1020207034459A KR 20207034459 A KR20207034459 A KR 20207034459A KR 20210006926 A KR20210006926 A KR 20210006926A
Authority
KR
South Korea
Prior art keywords
solution
sensor
module
output
proposal
Prior art date
Application number
KR1020207034459A
Other languages
English (en)
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 모셔널 에이디 엘엘씨
Priority to KR1020237005763A priority Critical patent/KR20230030029A/ko
Publication of KR20210006926A publication Critical patent/KR20210006926A/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
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • B60W60/0011Planning or execution of driving tasks involving control alternatives for a single driving scenario, e.g. planning several paths to avoid obstacles
    • 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
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/02Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
    • B60W50/029Adapting to failures or work around with other constraints, e.g. circumvention by avoiding use of failed parts
    • 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, or advanced driver assistance systems for ensuring comfort, stability and safety or drive control systems for propelling or retarding the vehicle
    • B60W30/08Active safety systems predicting or avoiding probable or impending collision or attempting to minimise its consequences
    • B60W30/09Taking automatic action to avoid collision, e.g. braking and steering
    • 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, or advanced driver assistance systems for ensuring comfort, stability and safety or drive control systems for propelling or retarding the vehicle
    • B60W30/08Active safety systems predicting or avoiding probable or impending collision or attempting to minimise its consequences
    • B60W30/095Predicting travel path or likelihood of collision
    • 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
    • B60W40/00Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
    • B60W40/02Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to ambient conditions
    • 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
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/02Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
    • 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
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/02Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
    • B60W50/0205Diagnosing or detecting failures; Failure detection models
    • 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
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/02Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
    • B60W50/023Avoiding failures by using redundant parts
    • 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
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • 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
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • B60W60/0015Planning or execution of driving tasks specially adapted for safety
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01DMEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
    • G01D3/00Indicating or recording apparatus with provision for the special purposes referred to in the subgroups
    • G01D3/10Indicating or recording apparatus with provision for the special purposes referred to in the subgroups with provision for switching-in of additional or auxiliary indicators or recorders
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B9/00Safety arrangements
    • G05B9/02Safety arrangements electric
    • G05B9/03Safety arrangements electric with multiple-channel loop, i.e. redundant control systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/0055Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot with safety arrangements
    • G05D1/0077Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot with safety arrangements using redundant signals or controls
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/0088Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C5/00Registering or indicating the working of vehicles
    • G07C5/08Registering or indicating performance data other than driving, working, idle, or waiting time, with or without registering driving, working, idle or waiting time
    • G07C5/0808Diagnosing performance data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/38Services specially adapted for particular environments, situations or purposes for collecting sensor information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • H04W4/48Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for in-vehicle communication
    • 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
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0001Details of the control system
    • B60W2050/0002Automatic control, details of type of controller or control system architecture
    • B60W2050/0004In digital systems, e.g. discrete-time systems involving sampling
    • B60W2050/0005Processor details or data handling, e.g. memory registers or chip architecture
    • 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
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0001Details of the control system
    • B60W2050/0043Signal treatments, identification of variables or parameters, parameter estimation or state estimation
    • B60W2050/005Sampling
    • 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
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/02Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
    • B60W50/0205Diagnosing or detecting failures; Failure detection models
    • B60W2050/0215Sensor drifts or sensor failures
    • 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
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/02Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
    • B60W50/029Adapting to failures or work around with other constraints, e.g. circumvention by avoiding use of failed parts
    • B60W2050/0292Fail-safe or redundant systems, e.g. limp-home or backup 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
    • B60W2420/00Indexing codes relating to the type of sensors based on the principle of their operation
    • 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
    • B60W2420/00Indexing codes relating to the type of sensors based on the principle of their operation
    • B60W2420/40Photo or light sensitive means, e.g. infrared sensors
    • B60W2420/403Image sensing, e.g. optical camera
    • B60W2420/408
    • 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
    • B60W2420/00Indexing codes relating to the type of sensors based on the principle of their operation
    • B60W2420/54Audio sensitive means, e.g. ultrasound
    • 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
    • B60W2520/00Input parameters relating to overall vehicle dynamics
    • B60W2520/10Longitudinal speed
    • 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
    • B60W2555/00Input parameters relating to exterior conditions, not covered by groups B60W2552/00, B60W2554/00
    • B60W2555/20Ambient conditions, e.g. wind or rain
    • 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
    • B60W2556/00Input parameters relating to data
    • B60W2556/35Data fusion
    • 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
    • B60W2556/00Input parameters relating to data
    • B60W2556/45External transmission of data to or from the vehicle
    • B60W2556/55External transmission of data to or from the vehicle using telemetry
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60YINDEXING SCHEME RELATING TO ASPECTS CROSS-CUTTING VEHICLE TECHNOLOGY
    • B60Y2400/00Special features of vehicle units
    • B60Y2400/30Sensors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]

Abstract

무엇보다도, 자율 주행 차량에서의 리던던시를 위한 기술을 설명한다. 예를 들어, 자율 주행 차량은 2개 이상의 리던던트 자율 주행 차량 동작 서브시스템을 포함할 수 있다.

Description

자율 주행 차량에서의 리던던시
이 설명은 자율 주행 차량(autonomous vehicle)에서의 리던던시(redundancy)에 관한 것이다.
자율 주행 차량은 사람 및/또는 화물을 한 장소로부터 다른 장소로 운송하는 데 사용될 수 있다. 자율 주행 차량은 전형적으로 하나 이상의 시스템을 포함하며, 그 각각은 자율 주행 차량의 하나 이상의 기능을 수행한다. 예를 들어, 하나의 시스템은 제어 기능을 수행할 수 있는 반면, 다른 시스템은 모션 계획 기능을 수행할 수 있다.
본 개시의 일 양태에 따르면, 시스템은 2개 이상의 상이한 자율 주행 차량 동작 서브시스템을 포함하고, 2개 이상의 상이한 자율 주행 차량 동작 서브시스템의 각각의 자율 주행 차량 동작 서브시스템은 2개 이상의 상이한 자율 주행 차량 동작 서브시스템의 다른 자율 주행 차량 동작 서브시스템과 리던던트(redundant)이다. 2개 이상의 상이한 자율 주행 차량 동작 서브시스템의 각각의 동작 서브시스템은 현재 입력 데이터에 기초하여 자율 주행 차량 동작에 대한 솔루션을 제안하도록 구성된 솔루션 제안기(solution proposer), 및 하나 이상의 비용 평가에 기초하여 자율 주행 차량 동작에 대한 제안된 솔루션을 평가하도록 구성된 솔루션 스코어러(solution scorer)를 포함한다. 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 적어도 하나의 자율 주행 차량 동작 서브시스템의 솔루션 스코어러는 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 적어도 하나의 자율 주행 차량 동작 서브시스템의 솔루션 제안기로부터의 제안된 솔루션 둘 모두 및 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 적어도 하나의 다른 자율 주행 차량 동작 서브시스템의 솔루션 제안기로부터의 제안된 솔루션들 중 적어도 하나의 솔루션을 평가하도록 구성된다. 본 시스템은 2개 이상의 상이한 자율 주행 차량 동작 서브시스템과 결합되고 2개 이상의 상이한 자율 주행 차량 동작 서브시스템으로부터의 자율 주행 차량 동작 출력을 관리하도록 구성된 출력 메디에이터(output mediator)를 또한 포함한다.
본 개시의 일 양태에 따르면, 개시된 기술은, 자율 주행 차량(AV)의 AV 시스템 내에서, 출력 메디에이터와 결합된 2개 이상의 리던던트 파이프라인을 동작시키기 위한 방법으로서 구현될 수 있고, 2개 이상의 리던던트 파이프라인 중 제1 파이프라인은 제1 인지 모듈, 제1 로컬화 모듈, 제1 계획 모듈, 및 제1 제어 모듈을 포함하고, 2개 이상의 리던던트 파이프라인 중 제2 파이프라인은 제2 인지 모듈, 제2 로컬화 모듈, 제2 계획 모듈, 및 제2 제어 모듈을 포함하며, 여기서 제1 제어기 모듈 및 제2 제어기 모듈 각각은 출력 메디에이터와 연결된다. 본 방법은, 제1 인지 모듈에 의해, AV의 제1 센서 세트로부터 제1 센서 신호를 수신하고, 제1 인지 모듈에 의해, 제1 센서 신호에 기초하여 제1 월드 뷰 제안(world view proposal)을 생성하는 단계; 제2 인지 모듈에 의해, AV의 제2 센서 세트로부터 제2 센서 신호를 수신하고, 제2 인지 모듈에 의해, 제2 센서 신호에 기초하여 제2 월드 뷰 제안을 생성하는 단계; 제1 인지 모듈에 의해, 제1 인지 비용 함수에 기초하여 제1 월드 뷰 제안과 제2 월드 뷰 제안 중 하나를 선택하고, 제1 인지 모듈에 의해, 선택된 월드 뷰 제안을 제1 월드 뷰로서 제1 로컬화 모듈에 제공하는 단계; 제2 인지 모듈에 의해, 제2 인지 비용 함수에 기초하여 제1 월드 뷰 제안과 제2 월드 뷰 제안 중 하나를 선택하고, 제2 인지 모듈에 의해, 선택된 월드 뷰 제안을 제2 월드 뷰로서 제2 로컬화 모듈에 제공하는 단계; 제1 로컬화 모듈에 의해, 제1 월드 뷰에 기초하여 제1 AV 위치 제안을 생성하는 단계; 제2 로컬화 모듈에 의해, 제2 월드 뷰에 기초하여 제2 AV 위치 제안을 생성하는 단계; 제1 로컬화 모듈에 의해, 제1 로컬화 비용 함수에 기초하여 제1 AV 위치 제안과 제2 AV 위치 제안 중 하나를 선택하고, 제1 로컬화 모듈에 의해, 선택된 AV 위치 제안을 제1 AV 위치로서 제1 계획 모듈에 제공하는 단계; 제2 로컬화 모듈에 의해, 제2 로컬화 비용 함수에 기초하여 제1 AV 위치 제안과 제2 AV 위치 제안 중 하나를 선택하고, 제2 로컬화 모듈에 의해, 선택된 AV 위치 제안을 제2 AV 위치로서 제2 계획 모듈에 제공하는 단계; 제1 계획 모듈에 의해, 제1 AV 위치에 기초하여 제1 루트 제안을 생성하는 단계; 제2 계획 모듈에 의해, 제2 AV 위치에 기초하여 제2 루트 제안을 생성하는 단계; 제1 계획 모듈에 의해, 제1 계획 비용 함수에 기초하여 제1 루트 제안과 제2 루트 제안 중 하나를 선택하고, 제1 계획 모듈에 의해, 선택된 루트 제안을 제1 루트로서 제1 제어 모듈에 제공하는 단계; 제2 계획 모듈에 의해, 제2 계획 비용 함수에 기초하여 제1 루트 제안과 제2 루트 제안 중 하나를 선택하고, 제2 계획 모듈에 의해, 선택된 루트 제안을 제2 루트로서 제2 제어 모듈에 제공하는 단계; 제1 제어 모듈에 의해, 제1 루트에 기초하여 제1 제어 신호 제안을 생성하는 단계; 제2 제어 모듈에 의해, 제2 루트에 기초하여 제2 제어 신호 제안을 생성하는 단계; 제1 제어 모듈에 의해, 제1 제어 비용 함수에 기초하여 제1 제어 신호 제안과 제2 제어 신호 제안 중 하나를 선택하고, 제1 제어 모듈에 의해, 선택된 제어 신호 제안을 제1 제어 신호로서 출력 메디에이터에 제공하는 단계; 제2 제어 모듈에 의해, 제2 제어 비용 함수에 기초하여 제1 제어 신호 제안과 제2 제어 신호 제안 중 하나를 선택하고, 제2 제어 모듈에 의해, 선택된 제어 신호 제안을 제2 제어 신호로서 출력 메디에이터에 제공하는 단계; 및 출력 메디에이터에 의해, 제1 제어 신호와 제2 제어 신호 중 하나를 선택하고, 출력 메디에이터에 의해, 선택된 제어 신호를 제어 신호로서 AV의 액추에이터에 제공하는 단계를 포함한다.
전술한 개시된 기술의 특정 양태는 이하의 잠재적인 장점들 중 하나 이상을 실현하도록 구현될 수 있다. 예를 들어, 다수의 계산 경로(예를 들면, 파이프라인)에서 솔루션 제안(예를 들면, 후보)을 생성하고 그리고/또는 생성된 솔루션 제안을 또한 다수의 계산 경로에서 스코어링하는 것은 각각의 평가의 독립성이 보존되도록 보장한다. 이러한 이유는, 그러한 대안적인 솔루션이 AV 동작 서브시스템 내부의 비용 함수에 기초한 자체 솔루션 제안보다 우수하다고 간주되는 경우에만 각각의 AV 동작 서브시스템이 다른 AV 동작 서브시스템의 솔루션 제안을 채택하기 때문이다. 솔루션 제안의 그러한 풍부성은 잠재적으로 각각의 경로의 전체적인 성능 및 안정성의 증가를 가져온다. 다수의 스테이지에서 솔루션 제안에 대한 교차 스택 평가를 수행함으로써, 출력 메디에이터에게 나중에 제안될 최상의 후보에 대한 합의가 프로세스에서 조기에(초기 스테이지에서) 구축될 수 있다. 이것은 차례로 출력 메디에이터에 대한 선택 부담을 감소시킬 수 있다.
본 개시의 일 양태에 따르면, 시스템은 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 - 2개 이상의 상이한 자율 주행 차량 동작 서브시스템의 각각의 자율 주행 차량 동작 서브시스템은 2개 이상의 상이한 자율 주행 차량 동작 서브시스템의 다른 자율 주행 차량 동작 서브시스템과 리던던트임 -; 및 2개 이상의 상이한 자율 주행 차량 동작 서브시스템과 결합되고 2개 이상의 상이한 자율 주행 차량 동작 서브시스템으로부터의 자율 주행 차량 동작 출력을 관리하도록 구성된 출력 메디에이터를 포함한다. 출력 메디에이터는 2개 이상의 상이한 자율 주행 차량 동작 서브시스템에 대한 과거 성능 데이터와 비교하여 현재 입력 데이터에 기초하여 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 상이한 자율 주행 차량 동작 서브시스템을 우선순위화된 상태로 선택적으로 승격시키도록 구성된다.
본 개시의 일 양태에 따르면, 개시된 기술은 자율 주행 차량의 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 - 그 중 하나가 우선순위화된 상태를 가짐 - 의 출력을 제어하기 위해 출력 메디에이터에 의해 수행되는 방법으로서 구현될 수 있다. 본 방법은, 현재 동작 컨텍스트 하에서, 2개 이상의 상이한 자율 주행 차량 동작 서브시스템으로부터의 출력을 수신하는 단계; 수신된 출력들 중 적어도 하나의 출력이 다른 출력과 상이하다고 결정하는 것에 응답하여, 현재 동작 컨텍스트에 대응하는 자율 주행 차량 동작 서브시스템들 중 하나의 자율 주행 차량 동작 서브시스템을 우선순위화된 상태로 승격시키는 단계; 및 자율 주행 차량을 동작시키기 위한 우선순위화된 상태를 갖는 자율 주행 차량 동작 서브시스템의 출력의 발행을 제어하는 단계를 포함한다.
전술한 기술의 특정 양태는 이하의 장점들 중 하나 이상을 제공할 수 있다. 예를 들어, 동작 엔벨로프의 한 영역을 공유하는 AV 동작 모듈의 컨텍스트 선택적 승격은 운전 컨텍스트에 대한 능동적 적응에 의해 개선된 AV 동작 성능을 가져올 수 있다. 더 구체적으로, 전술한 개시된 기술은 AV 인지 스테이지, AV 로컬화 스테이지, AV 계획 스테이지, 및/또는 AV 제어 스테이지에서의 동작 제어의 유연성을 증가시킨다.
본 개시의 일 양태에 따르면, 자율 주행 차량은 제1 제어 시스템을 포함한다. 제1 제어 시스템은, 적어도 하나의 입력에 따라, 자율 주행 차량이 자율 주행 운전 모드에 있는 동안 그리고 제1 제어 시스템이 선택되는 동안 자율 주행 차량의 제어 동작에 영향을 미치는 출력을 제공하도록 구성된다. 자율 주행 차량은 제2 제어 시스템을 또한 포함한다. 제2 제어 시스템은, 적어도 하나의 입력에 따라, 자율 주행 차량이 자율 주행 운전 모드에 있는 동안 그리고 제2 제어 시스템이 선택되는 동안 자율 주행 차량의 제어 동작에 영향을 미치는 출력을 제공하도록 구성된다. 자율 주행 차량은 적어도 하나의 프로세서를 추가로 포함한다. 적어도 하나의 프로세서는 자율 주행 차량의 제어 동작에 영향을 미칠 제1 제어 시스템 및 제2 제어 시스템 중 적어도 하나를 선택하도록 구성된다.
전술한 기술의 특정 양태는 이하의 장점들 중 하나 이상을 제공할 수 있다. 이 기술은 하나의 제어 시스템이 고장 또는 열화된 성능을 겪는 경우에 제어 동작에서의 리던던시를 제공한다. 제어에서의 리던던시는 또한 AV가 제어 시스템의 측정된 성능에 기초하여 어느 제어 시스템을 사용할지를 선택할 수 있게 한다.
본 개시의 일 양태에 따르면, 자율 주행 차량에서의 센서 고장의 검출 및 핸들링을 위한 시스템 및 기술이 사용된다. 본 개시의 일 양태에 따르면, 자율 주행 차량에서의 센서 고장의 검출 및 핸들링을 위한 기술은, 제1 센서를 통해, 자율 주행 차량이 동작 운전 상태에 있는 동안 자율 주행 차량 외부의 하나 이상의 환경 입력으로부터 제1 센서 데이터 스트림을 생성하는 것 및 제2 센서를 통해, 자율 주행 차량이 동작 운전 상태에 있는 동안 자율 주행 차량 외부의 하나 이상의 환경 입력으로부터 제2 센서 데이터 스트림을 생성하는 것을 포함한다. 제1 센서와 제2 센서는 동일한 유형의 정보를 검출하도록 구성될 수 있다. 본 기술은 제1 센서 데이터 스트림과 제2 센서 데이터 스트림 사이의 차이에 기초하여 비정상 조건을 검출하는 것; 및 검출된 비정상 조건에 응답하여 자율 주행 차량을 제어하기 위한 입력으로서 제1 센서, 제2 센서, 또는 둘 모두 간에 전환하는 것을 추가로 포함한다. 이들 및 다른 양태, 특징, 및 구현예는 기능을 수행하기 위한 방법, 장치, 시스템, 컴포넌트, 프로그램 제품, 수단 또는 단계로서, 및 다른 방식으로 표현될 수 있다.
본 개시의 일 양태에 따르면, 자율 주행 차량은 자율 주행 차량이 동작 운전 상태에 있는 동안 자율 주행 차량 외부의 하나 이상의 환경 입력으로부터 제1 센서 데이터 스트림을 생성하도록 구성된 제1 센서 및 자율 주행 차량이 동작 운전 상태에 있는 동안 자율 주행 차량 외부의 하나 이상의 환경 입력으로부터 제2 센서 데이터 스트림을 생성하도록 구성된 제2 센서를 포함하며, 제1 센서와 제2 센서는 동일한 유형의 정보를 검출하도록 구성된다. 차량은 제1 센서 및 제2 센서와 결합된 프로세서를 포함하고, 프로세서는 제1 센서 데이터 스트림과 제2 센서 데이터 스트림 사이의 차이에 기초하여 비정상 조건을 검출하도록 구성된다. 일부 구현예에서, 프로세서는 비정상 조건의 검출에 응답하여 자율 주행 차량을 제어하기 위한 입력으로서 제1 센서, 제2 센서, 또는 둘 모두 간에 전환하도록 구성된다.
전술한 기술의 특정 양태는 이하의 장점들 중 하나 이상을 제공할 수 있다. 센서 고장을 검출하고 핸들링하는 것은 자율 주행 차량의 안전하고 적절한 동작을 유지하는 데 중요하다. 설명된 기술은 비정상 조건의 검출에 응답하여 자율 주행 차량이 센서 입력들 사이에서 효율적으로 전환할 수 있게 한다. 기능하는 센서의 데이터 스트림을 변환함으로써 대체 센서의 데이터 스트림을 생성하는 것은 자율 주행 차량이 계속하여 안전하게 동작할 수 있게 한다.
본 개시의 일 양태에 따르면, 자율 주행 차량은 자율 주행 차량에 대한 제어 동작에 영향을 미치도록 구성된 제어 시스템, 제어 시스템과 통신하는 제어 프로세서 - 제어 프로세서는 제어 시스템에 의해 실행하기 위한 명령을 결정하도록 구성됨 -, 제어 시스템과 통신하는 원격통신 시스템 - 원격통신 시스템은 외부 소스로부터 명령을 수신하도록 구성됨 - 을 포함하고, 여기서 제어 프로세서는 외부 소스로부터 수신된 명령으로부터 제어 시스템에 의해 실행 가능한 명령을 결정하도록 구성되고 하나 이상의 특정된 조건이 검출될 때 원격통신 시스템과 통신하는 외부 소스가 제어 시스템을 제어할 수 있게 하도록 구성된다.
본 개시의 일 양태에 따르면, 자율 주행 차량은 자율 주행 차량에 대한 제1 제어 동작에 영향을 미치도록 구성된 제어 시스템, 제어 시스템과 통신하는 제어 프로세서 - 제어 프로세서는 제어 시스템에 의해 실행하기 위한 명령을 결정하도록 구성됨 -, 제어 시스템과 통신하는 원격통신 시스템 - 원격통신 시스템은 외부 소스로부터 명령을 수신하도록 구성됨 -, 및 외부 소스로부터 수신된 명령으로부터 제어 시스템에 의해 실행 가능한 명령을 결정하도록 그리고 원격통신 시스템과 통신하는 제어 프로세서 또는 외부 소스가 제어 시스템을 동작시킬 수 있게 하도록 구성된 프로세서를 포함한다.
본 개시의 일 양태에 따르면, 자율 주행 차량은 자율 주행 차량에 대한 제1 제어 동작에 영향을 미치도록 구성된 제1 제어 시스템, 자율 주행 차량에 대한 제1 제어 동작에 영향을 미치도록 구성된 제2 제어 시스템, 및 제1 제어 시스템과 통신하는 원격통신 시스템 - 원격통신 시스템은 외부 소스로부터 명령을 수신하도록 구성됨 -, 외부 소스로부터 수신된 명령으로부터 제1 제어 동작에 영향을 미칠 명령을 결정하도록 구성되고 원격통신 시스템이 외부 소스와 통신하는 능력을 결정하고 이 결정에 따라 제1 제어 시스템 또는 제2 제어 시스템을 선택하도록 구성된 제어 프로세서를 포함한다.
본 개시의 일 양태에 따르면, 제1 자율 주행 차량은 하나 이상의 센서를 갖는다. 제1 자율 주행 차량은 하나 이상의 센서로부터 수신된 데이터에 기초하여 제1 자율 주행 차량의 동작의 양상을 결정한다. 제1 자율 주행 차량은 또한 하나 이상의 다른 자율 주행 차량에서 유래하는 데이터를 수신한다. 제1 자율 주행 차량은 그 결정 및 수신된 데이터를 사용하여 동작을 수행한다.
전술한 기술의 특정 양태는 이하의 장점들 중 하나 이상을 제공할 수 있다. 예를 들어, 자율 주행 차량들 사이의 정보 교환은 자율 주행 차량 플릿 전체의 리던던시를 개선시켜, 이에 의해 그의 동작의 효율성, 안전성 및 유효성을 개선시킬 수 있다. 일 예로서, 제1 자율 주행 차량이 특정한 루트를 따라 주행할 때, 제1 자율 주행 차량은 그의 동작에 영향을 미칠 수 있는 특정 조건을 조우할 수 있다. 제1 자율 주행 차량은 이러한 조건에 관한 정보를 다른 자율 주행 차량에 송신할 수 있고, 따라서 다른 자율 주행 차량이 또한, 해당 동일 루트를 아직 횡단하지 않았더라도, 이 정보에 액세스할 수 있다. 따라서, 다른 자율 주행 차량은 루트의 조건을 참작하기 위해 그리고/또는 루트의 조건을 더 잘 예견하기 위해 그의 동작을 선제적으로 조정할 수 있다.
본 개시의 일 양태에 따르면, 방법은, 자율 주행 차량(AV)에 의해, 환경에서 AV의 자율 주행 운전 기능을 수행하는 단계, AV의 내부 무선 통신 디바이스에 의해, 환경에 위치된 외부 무선 통신 디바이스로부터 외부 메시지를 수신하는 단계, AV의 하나 이상의 프로세서에 의해, 그 기능의 출력을 외부 메시지의 콘텐츠와 또는 콘텐츠에 기초하여 생성된 데이터와 비교하고, 비교의 결과에 따라, AV로 하여금 기동을 수행하게 하는 단계를 포함한다.
본 개시의 일 양태에 따르면, 방법은, 자율 주행 차량(AV)의 운영 체제(OS)에 의해, AV의 데이터 네트워크에 결합된 새로운 컴포넌트를 발견하는 단계, AV OS에 의해, 새로운 컴포넌트가 리던던트 컴포넌트인지를 결정하는 단계, 새로운 컴포넌트가 리던던트 컴포넌트임에 따라, 새로운 컴포넌트의 리던던시 구성을 수행하는 단계, 및 새로운 컴포넌트가 리던던트 컴포넌트가 아님에 따라, 새로운 컴포넌트의 기본 구성을 수행하는 단계를 포함하고, 여기서 본 방법은 하나 이상의 특수 목적 컴퓨팅 디바이스에 의해 수행된다.
전술한 기술의 특정 양태는 이하의 장점들 중 하나 이상을 제공할 수 있다. 새로운 모듈이 추가적인 리던던시를 제공하는지 여부 및/또는 자율 주행 차량의 하나 이상의 기능을 수행하는 유일한 컴포넌트일 것인지 여부를 참작하는 방식으로 컴포넌트가 자율 주행 차량에 추가될 수 있다.
본 개시의 일 양태에 따르면, 자율 주행 차량에 대한 리던던트 계획은 일반적으로 자율 주행 차량이 그의 정의된 동작 도메인 내에서 동작하고 있음을 검출하는 것을 포함한다. 자율 주행 차량이 그의 정의된 동작 도메인 내에서 동작하고 있는 경우, (동작 도메인의 공통 정의를 공유하는) 적어도 2개의 독립적인 계획 모듈은 자율 주행 차량에 대한 궤적을 생성한다. 각각의 계획 모듈은 장면 묘사에서의 하나 이상의 대상체와의 적어도 하나의 충돌에 대해 다른 계획 모듈에 의해 생성된 궤적을 평가한다. (예를 들면, 적어도 하나의 충돌이 검출되는 것으로 인해) 하나의 또는 양쪽 궤적이 안전하지 않은 것으로 결정되는 경우, 자율 주행 차량은 안전 정지 기동(safe stop maneuver)을 수행하거나, 예를 들어, 자율 주행 비상 제동(autonomous emergency braking; AEB) 시스템을 사용하여 비상 제동을 적용한다.
전술한 기술의 특정 양태는 이하의 장점들 중 하나 이상을 제공할 수 있다. 개시된 리던던트 계획은 자율 주행 차량의 안전하고 적절한 동작을 보장하기 위해 독립적인 진단 커버리지를 갖는 독립적인 리던던트 계획 모듈을 포함한다.
본 개시의 일 양태에 따르면, 시뮬레이션을 사용하여 자율 주행 차량의 프로세스 및 시스템의 리던던시를 구현하기 위한 기술이 제공된다. 일 실시예에서, 자율 주행 차량에 의해 수행되는 방법은: 제1 시뮬레이터에 의해, 제2 AV 프로세스/시스템에 의해 출력된 데이터를 사용하여 제1 AV 프로세스/시스템의 제1 시뮬레이션을 수행하는 단계; 제2 시뮬레이터에 의해, 제1 AV 프로세스/시스템에 의해 출력된 데이터를 사용하여 제2 AV 프로세스/시스템의 제2 시뮬레이션을 수행하는 단계; 하나 이상의 프로세서에 의해, 제1 및 제2 프로세스/시스템에 의해 출력된 데이터를 제1 및 제2 시뮬레이터에 의해 출력된 데이터와 비교하는 단계; 및 비교의 결과에 따라, AV로 하여금 안전 모드 기동 또는 다른 액션을 수행하게 하는 단계를 포함한다.
전술한 기술의 특정 양태는 이하의 장점들 중 하나 이상을 제공할 수 있다. 자율 주행 차량의 프로세스/시스템의 리던던시를 위해 시뮬레이션을 사용하는 것은 성능 요건도 충족시키면서 자율 주행 차량의 안전한 동작을 가능하게 한다.
본 개시의 일 양태에 따르면, 시스템은 자율 주행 차량(AV)을 위한 시스템을 구현하는 상호작용 컴포넌트 세트를 포함하는 컴포넌트 인프라스트럭처를 포함하고, 인프라스트럭처는 AV의 동작을 위한 기능을 수행하는 제1 컴포넌트, 제1 소프트웨어 컴포넌트와 동시에 AV의 동작을 위한 제1 기능을 수행하는 제2 컴포넌트, 제1 컴포넌트로부터의 제1 출력을 제2 컴포넌트로부터의 제2 출력과 조합하거나 비교함으로써 AV의 동작 환경의 모델을 생성하고 동작 환경의 모델에 기초하여 AV에 대해 기능을 수행하기 위해 동작 모드를 개시하도록 구성된 인지 회로를 포함한다.
전술한 기술의 특정 양태는 이하의 장점들 중 하나 이상을 제공할 수 있다. 동일한 기능을 수행하는 2개의 컴포넌트의 출력을 조합하여 AV의 동작 환경을 모델링하고, 이어서 동작 환경 모델에 기초하여 AV의 동작 모드를 개시하는 것은 주변 환경을 인지하는 데 사용될 수 있는 더 정확하고 완전한 정보를 제공할 수 있다.
이들 및 다른 양태, 특징, 및 구현예는 기능을 수행하기 위한 방법, 장치, 시스템, 컴포넌트, 프로그램 제품, 수단 또는 단계로서, 및 다른 방식으로 표현될 수 있다.
하나 이상의 구현예에 대한 세부 사항은 첨부 도면 및 아래의 설명에 기재되어 있다. 다른 특징 및 장점은 설명과 도면으로부터, 그리고 청구항으로부터 명백할 수 있다.
도 1은 자율 주행 능력을 갖는 자율 주행 차량의 일 예를 도시한다.
도 2는 예시적인 "클라우드" 컴퓨팅 환경을 도시한다.
도 3은 컴퓨터 시스템의 일 예를 도시한다.
도 4는 자율 주행 차량에 대한 예시적인 아키텍처를 도시한다.
도 5는 인지 모듈에 의해 사용될 수 있는 입력 및 출력의 일 예를 도시한다.
도 6은 LiDAR 시스템의 일 예를 도시한다.
도 7은 동작 중인 LiDAR 시스템을 도시한다.
도 8은 LiDAR 시스템의 동작을 부가적으로 상세하게 도시한다.
도 9는 계획 모듈의 입력과 출력 사이의 관계의 블록 다이어그램을 도시한다.
도 10은 경로 계획에서 사용되는 방향 그래프를 도시한다.
도 11은 제어 모듈의 입력 및 출력의 블록 다이어그램을 도시한다.
도 12는 제어기의 입력, 출력, 및 컴포넌트의 블록 다이어그램을 도시한다.
도 13은 2개 이상의 상승효과적 리던던트(synergistically redundant) 동작 서브시스템을 포함하는 자율 주행 차량(AV) 시스템의 일 예의 블록 다이어그램을 도시한다.
도 14는 상승효과적 리던던트 인지 모듈을 포함하는 AV에 대한 아키텍처의 일 예를 도시한다.
도 15는 상승효과적 리던던트 계획 모듈을 포함하는 AV에 대한 아키텍처의 일 예를 도시한다.
도 16은 2개 이상의 상승효과적 리던던트 동작 파이프라인을 포함하는 AV 시스템의 일 예의 블록 다이어그램을 도시한다.
도 17은 상승효과적 리던던트 2-스테이지 파이프라인을 포함하는 AV에 대한 아키텍처의 일 예를 도시하며, 각각의 2-스테이지 파이프라인은 인지 모듈과 계획 모듈을 포함한다.
도 18은 상승효과적 리던던트 2-스테이지 파이프라인을 포함하는 AV에 대한 아키텍처의 일 예를 도시하며, 각각의 2-스테이지 파이프라인은 계획 모듈과 제어 모듈을 포함한다.
도 19은 상승효과적 리던던트 2-스테이지 파이프라인을 포함하는 AV에 대한 아키텍처의 일 예를 도시하며, 각각의 2-스테이지 파이프라인은 로컬화 모듈과 제어 모듈을 포함한다.
도 20은 2개 이상의 상승효과적 리던던트 동작 파이프라인을 포함하는 AV 시스템의 다른 예의 블록 다이어그램을 도시한다.
도 21은 상승효과적 리던던트 파이프라인을 포함하는 AV에 대한 아키텍처의 일 예를 도시하며, 각각의 파이프라인은 인지 모듈, 로컬화 모듈, 계획 모듈, 및 제어 모듈 중 3개 이상을 포함한다.
도 22 및 도 23은 상승효과적 리던던트 4-스테이지 파이프라인 쌍을 동작시키기 위한 프로세스의 일 예의 플로차트이고, 각각의 파이프라인은 인지 모듈, 로컬화 모듈, 계획 모듈, 및 제어 모듈을 포함한다.
도 24는 4개의 상승효과적 리던던트 동작 파이프라인을 포함하는 AV 시스템의 일 예의 블록 다이어그램을 도시하며, 각각의 동작 파이프라인은 인지 모듈 및 계획 모듈을 포함하고, 각각의 모듈은 솔루션 제안기 및 솔루션 스코어러를 포함한다.
도 25는 2개의 상승효과적 리던던트 동작 파이프라인을 포함하는 AV 시스템의 일 예의 블록 다이어그램을 도시하며, 각각의 동작 파이프라인은 인지 모듈 및 계획 모듈을 포함하고, 각각의 인지 모듈은 솔루션 제안기 및 솔루션 스코어러를 포함하며, 각각의 계획 모듈은 솔루션 스코어러 및 다수의 솔루션 제안기를 포함한다.
도 26은 2개의 상승효과적 리던던트 동작 파이프라인을 포함하는 AV 시스템의 일 예의 블록 다이어그램을 도시하며, 각각의 동작 파이프라인은 인지 모듈 및 계획 모듈을 포함하고, 각각의 인지 모듈은 솔루션 제안기 및 솔루션 스코어러를 포함하며, 각각의 계획 모듈은 솔루션 제안기 및 다수의 솔루션 스코어러를 포함한다.
도 27은 출력 메디에이터와 결합된 상이한 AV 동작 서브시스템의 AV 동작 출력을 관리하기 위해 출력 메디에이터에 의해 수행되는 프로세스의 일 예의 플로차트이다.
도 28 및 도 29는 도 27의 프로세스를 수행하기 위해 출력 메디에이터에 의해 사용되는 계산 컴포넌트 및 데이터 구조를 도시한다.
도 30은 AV에 대한 제어 시스템에서의 리던던시를 제공하기 위한 리던던트 제어 시스템(2900)을 도시한다.
도 31은 본 개시의 적어도 하나의 구현예에 따른 제어 시스템에서의 리던던시를 제공하기 위한 방법(3000)을 나타내는 플로차트를 도시한다.
도 32는 센서 고장을 검출하고 핸들링하기 위한 자율 주행 차량의 센서 관련 아키텍처의 일 예를 도시한다.
도 33은 자율 주행 차량 및 그 내의 센서를 동작시키기 위한 프로세스의 일 예를 도시한다.
도 34는 센서 관련 비정상 조건을 검출하기 위한 프로세스의 일 예를 도시한다.
도 35는 비정상 조건의 검출에 응답하여 센서 데이터 스트림을 변환하기 위한 프로세스의 일 예를 도시한다.
도 36은 원격 조작 시스템의 예시적인 아키텍처를 예시한다.
도 37은 원격 조작 클라이언트의 예시적인 아키텍처를 도시한다.
도 38은 예시적인 원격 조작 시스템을 예시한다.
도 39는 원격 조작자 제어를 활성화시키기 위한 프로세스를 나타내는 플로차트를 도시한다.
도 40은 리던던트 원격 조작자 및 인간 제어를 활성화시키기 위한 프로세스를 나타내는 플로차트를 도시한다.
도 41은 플로차트를 도시한다.
도 42는 자율 주행 차량 플릿 간의 예시적인 정보 교환을 도시한다.
도 43 내지 도 46은 자율 주행 차량들 사이의 예시적인 정보 교환을 도시한다.
도 47 내지 도 50은 자율 주행 차량들 사이의 예시적인 정보 교환, 및 교환된 정보에 기초한 계획된 주행 루트에 대한 예시적인 수정을 도시한다.
도 51 내지 도 53은 자율 주행 차량 플래툰(platoon)의 예시적인 형성을 도시한다.
도 54 내지 도 56은 자율 주행 차량 플래툰의 다른 예시적인 형성을 도시한다.
도 57은 자율 주행 차량들 사이에서 정보를 교환하기 위한 예시적인 프로세스를 보여주는 플로차트 다이어그램이다.
도 58은 일 실시예에 따른, 하나 이상의 외부 무선 통신 디바이스에 의해 제공되는 하나 이상의 외부 메시지를 사용하여 자율 주행 차량에서의 리던던시를 구현하기 위한 시스템의 블록 다이어그램을 도시한다.
도 59는 일 실시예에 따른, 외부 메시지 포맷을 도시한다.
도 60은 일 실시예에 따른, 하나 이상의 외부 무선 통신 디바이스에 의해 제공되는 외부 메시지를 사용하여 자율 주행 차량에서의 리던던시를 제공하기 위한 예시적인 프로세스를 도시한다.
도 61은 자율 주행 차량에서의 리던던트 컴포넌트를 대체하기 위한 예시적인 아키텍처의 블록 다이어그램을 도시한다.
도 62는 자율 주행 차량에서의 리던던트 컴포넌트를 대체하는 예시적인 프로세스의 흐름 다이어그램을 도시한다.
도 63은 리던던트 계획 시스템의 블록 다이어그램을 도시한다.
도 64는 스코프 내 동작(in-scope operation), 진단 커버리지 및 2개의 리던던트 계획 모듈의 출력에 기초하여 자율 주행 차량에 의해 취해질 액션을 예시하는 테이블을 도시한다.
도 65는 리던던트 계획 프로세스의 흐름 다이어그램을 도시한다.
도 66은 시뮬레이션을 사용하여 리던던시를 구현하기 위한 시스템의 블록 다이어그램을 도시한다.
도 67은 시뮬레이션을 사용한 리던던시를 위한 프로세스의 흐름 다이어그램을 도시한다.
도 68은 일 실시예에 따른, 동작 환경을 모델링하기 위해 인지 입력(perception input)을 통합(unionize)하기 위한 시스템의 블록 다이어그램을 도시한다.
도 69는 일 실시예에 따른, 동작 환경을 모델링하기 위해 인지 입력을 통합하기 위한 예시적인 프로세스를 도시한다.
이하의 기술에서는, 설명 목적으로, 본 발명에 대한 완전한 이해를 제공하기 위해 다수의 특정 세부 사항이 기재된다. 그렇지만, 본 발명이 이러한 특정 세부 사항 없이 실시될 수 있음이 명백할 것이다. 다른 경우에, 공지된 구조 및 디바이스는 본 발명을 불필요하게 모호하게 하는 것을 피하기 위하여 블록 다이어그램 형태로 도시된다.
도면에서, 설명을 용이하게 하기 위해, 디바이스, 모듈, 명령 블록 및 데이터 요소를 나타내는 것과 같은, 개략적 요소의 특정 배열 또는 순서가 도시된다. 그렇지만, 본 기술 분야의 통상의 기술자라면, 도면에서의 개략적 요소의 특정 순서 또는 배열이 프로세싱의 특정한 순서 또는 시퀀스, 또는 프로세스의 분리가 요구됨을 암시한다는 것을 의미하지는 않는다는 점을 이해할 것이다. 게다가, 도면에 개략적 요소를 포함시키는 것은, 그러한 요소가 모든 실시예에서 요구됨을 암시한다는 것을 의미하지는 않거나, 또는 그러한 요소에 의해 표현된 특징이 일부 실시예에서 포함되지 않을 수 있거나 다른 요소와 조합되지 않을 수 있음을 암시한다는 것을 의미하지는 않는다.
게다가, 도면에서, 2개 이상의 다른 개략적 요소 사이의 연결, 관계 또는 연관을 예시하기 위해 실선 또는 파선 또는 화살표와 같은 연결 요소가 사용되는 경우에, 임의의 그러한 연결 요소의 부존재는 연결, 관계 또는 연관이 존재할 수 없음을 암시한다는 것을 의미하지는 않는다. 환언하면, 요소들 사이의 일부 연결, 관계 또는 연관은 본 개시를 모호하게 하지 않기 위해 도면에 도시되지 않는다. 추가적으로, 예시를 용이하게 하기 위해, 요소들 사이의 다수의 연결, 관계 또는 연관을 표현하기 위해 단일의 연결 요소가 사용된다. 예를 들어, 연결 요소가 신호, 데이터 또는 명령의 통신을 표현하는 경우에, 본 기술 분야의 통상의 기술자라면, 그러한 요소가, 통신을 수행하기 위해 필요할 수 있는, 하나 또는 다수의 신호 경로(예를 들면, 버스)를 표현한다는 것을 이해할 것이다.
그 예가 첨부 도면에 예시되어 있는, 실시예가 이제 상세하게 언급될 것이다. 이하의 상세한 설명에서, 다양한 기술된 실시예에 대한 완전한 이해를 제공하기 위해 많은 특정 세부 사항이 기재된다. 그렇지만, 다양한 기술된 실시예가 이러한 특정 세부 사항 없이 실시될 수 있다는 것이 본 기술 분야의 통상의 기술자에게 명백할 것이다. 다른 경우에, 실시예의 양태를 불필요하게 모호하게 하지 않기 위해 공지된 방법, 절차, 컴포넌트, 회로, 및 네트워크는 상세하게 기술되지 않았다.
서로 독립적으로 또는 다른 특징들의 임의의 조합과 함께 각각 사용될 수 있는 여러 특징이 이하에서 기술된다. 그렇지만, 임의의 개별 특징은 위에서 논의된 문제들 중 임의의 것을 해결할 수 없거나 또는 위에서 논의된 문제들 중 단지 하나만을 해결할 수 있다. 위에서 논의된 문제들 중 일부는 본원에 기술된 특징들 중 임의의 것에 의해 완전히 해결되지는 않을 수 있다. 비록 여러 표제가 제공되어 있더라도, 특정 표제에 관련되지만 해당 표제를 갖는 섹션에서 발견되지는 않는 정보가 본 설명의 다른 곳에서 발견될 수도 있다. 실시예는 이하의 개요에 따라 본원에 기술된다:
1. 하드웨어 개관
2. 자율 주행 차량 아키텍처
3. 자율 주행 차량 입력
4. 자율 주행 차량 계획
5. 자율 주행 차량 제어
6. 교차 스택 평가
7. 컨텍스트 선택적 모듈
8. 리던던트 제어 시스템
9. 센서 고장 리던던시
10. 원격 조작 리던던시
11. 플릿 리던던시
12. 외부 무선 통신 디바이스
13. 리던던트 컴포넌트 대체
14. 리던던트 계획
15. 시뮬레이션을 사용한 리던던시
16. 인지 입력의 통합체(union)
하드웨어 개관
도 1은 자율 주행 능력을 갖는 자율 주행 차량(100)의 일 예를 도시한다.
본원에서 사용되는 바와 같이, 용어 "자율 주행 능력"은, 완전한 자율 주행 차량, 고도의 자율 주행 차량, 및 조건부 자율 주행 차량을 제한 없이 포함하는, 실시간 인간 개입 없이 차량이 부분적으로 또는 완전하게 동작될 수 있게 하는 기능, 특징, 또는 설비를 지칭한다.
본원에서 사용되는 바와 같이, 자율 주행 차량(AV)은 자율 주행 능력을 갖는 차량이다.
본원에서 사용되는 바와 같이, "차량"은 상품 또는 사람의 운송 수단을 포함한다. 예를 들어, 자동차, 버스, 기차, 비행기, 드론, 트럭, 보트, 선박, 잠수함, 비행선, 모바일 로봇 등. 무인 자동차는 차량의 일 예이다.
본원에서 사용되는 바와 같이, "궤적"은 제1 시공간적 위치로부터 제2 시공간적 위치로 운행하기 위해 생성되는 경로 또는 루트를 지칭한다. 일 실시예에서, 제1 시공간적 위치는 초기 또는 시작 위치라고 지칭되고 제2 시공간적 위치는 목표 또는 목표 위치 또는 목표 장소라고 지칭된다. 일 실시예에서, 시공간적 위치는 현실 세계 위치에 대응한다. 예를 들어, 시공간적 위치는 사람을 태우거나 내려주고 또는 상품을 싣거나 내리는 픽업(pick up) 위치 또는 드롭-오프(drop-off) 위치이다.
본원에서 사용되는 바와 같이, "센서(들)"는 센서를 둘러싼 환경에 관한 정보를 검출하는 하나 이상의 하드웨어 컴포넌트를 포함한다. 하드웨어 컴포넌트들 중 일부는 감지 컴포넌트(예를 들면, 이미지 센서, 생체 측정 센서), 송신 및/또는 수신 컴포넌트(예를 들면, 레이저 또는 라디오 주파수 파 송신기 및 수신기), 아날로그 대 디지털 변환기와 같은 전자 컴포넌트, 데이터 저장 디바이스(예컨대, RAM 및/또는 비휘발성 스토리지), 소프트웨어 또는 펌웨어 컴포넌트, 및 ASIC(application-specific integrated circuit), 마이크로프로세서 및/또는 마이크로컨트롤러와 같은 데이터 프로세싱 컴포넌트를 포함할 수 있다.
본원에서 사용되는 바와 같이, "장면 묘사(scene description)"는 AV 차량 상의 하나 이상의 센서에 의해 검출되거나 AV 외부의 소스에 의해 제공되는 하나 이상의 분류된 또는 레이블링된 대상체를 포함하는 데이터 구조(예를 들면, 리스트) 또는 데이터 스트림이다.
“하나 이상"은 기능이 하나의 요소에 의해 수행되는 것, 기능이 하나 초과의 요소에 의해, 예를 들면, 분산 방식으로, 수행되는 것, 여러 기능이 하나의 요소에 의해 수행되는 것, 여러 기능이 여러 요소에 의해 수행되는 것, 또는 이들의 임의의 조합을 포함한다.
용어 제1, 제2 등이, 일부 경우에, 다양한 요소를 기술하기 위해 본원에서 사용되지만, 이러한 요소가 이러한 용어에 의해 제한되지 않아야 한다는 것이 또한 이해될 것이다. 이러한 용어는 하나의 요소를 다른 요소와 구별하는 데만 사용된다. 예를 들어, 기술된 다양한 실시예의 범위를 벗어나지 않으면서, 제1 접촉은 제2 접촉이라고 지칭될 수 있고, 유사하게 제2 접촉은 제1 접촉이라고 지칭될 수 있다. 제1 접촉과 제2 접촉 둘 모두가 접촉이지만, 동일한 접촉은 아니다.
본원에 기술된 다양한 실시예의 설명에서 사용된 용어는 단지 특정한 실시예를 기술하기 위한 것이며, 제한하는 것으로 의도되지 않는다. 기술된 다양한 실시예 및 첨부된 청구항의 설명에서 사용되는 바와 같이, 단수형은, 문맥이 달리 명확히 표시하지 않는 한, 복수형을 포함하는 것으로 의도되어 있다. 용어 "및/또는"이, 본원에서 사용되는 바와 같이, 열거된 연관 항목들 중 하나 이상의 항목의 임의의 및 모든 가능한 조합을 지칭하고 포함한다는 것이 또한 이해될 것이다. 게다가, 용어 "포함한다" 및/또는 "포함하는"이, 본 설명에서 사용될 때, 언급된 특징, 정수, 단계, 동작, 요소, 및/또는 컴포넌트의 존재를 명기하지만, 하나 이상의 다른 특징, 정수, 단계, 동작, 요소, 컴포넌트, 및/또는 그의 그룹의 존재 또는 추가를 배제하지 않는다는 것이 이해될 것이다.
본원에서 사용되는 바와 같이, 용어 "~ 경우"는 선택적으로 문맥에 따라 "~할 때", 또는 "~시에" 또는 "결정에 응답하여" 또는 "검출에 응답하여"를 의미하는 것으로 해석된다. 마찬가지로, 문구 "~라고 결정된다면" 또는 "[언급된 조건 또는 이벤트]가 검출되는 경우"는 선택적으로 문맥에 따라, "결정할 시에" 또는 "결정에 응답하여" 또는 "[언급된 조건 또는 이벤트]의 검출 시에" 또는 "[언급된 조건 또는 이벤트]의 검출에 응답하여"를 의미하는 것으로 해석된다.
본원에서 사용되는 바와 같이, AV 시스템은 AV의 동작을 지원하는, 하드웨어, 소프트웨어, 저장된 데이터, 및 실시간으로 생성된 데이터의 어레이와 함께 AV를 지칭한다. 일 실시예에서, AV 시스템은 AV 내에 포함된다. 일 실시예에서, AV 시스템은 여러 위치에 걸쳐 확산되어 있을 수 있다. 예를 들어, AV 시스템의 소프트웨어 중 일부는 도 3과 관련하여 아래에서 기술되는 클라우드 컴퓨팅 환경(300)과 유사한 클라우드 컴퓨팅 환경 상에서 구현될 수 있다.
일반적으로, 본 문서는 완전한 자율 주행 차량, 고도의 자율 주행 차량, 및 조건부 자율 주행 차량, 예컨대, 제각기 소위 레벨 5 차량, 레벨 4 차량 및 레벨 3 차량을 포함하는 하나 이상의 자율 주행 능력을 갖는 임의의 차량에 적용 가능한 기술을 기술한다(차량의 자율성 레벨의 분류에 대한 추가 세부 사항에 대해서는, 참조에 의해 그 전체가 포함된, SAE 국제 표준 J3016: 온로드 자동차 자동 운전 시스템에 관한 용어의 분류 및 정의(Taxonomy and Definitions for Terms Related to On-128-172020-02-28 Road Motor Vehicle Automated Driving Systems) 참조). 자율 주행 능력을 갖는 차량은 차량의 조향 또는 속력을 제어하려고 시도할 수 있다. 본 문서에서 설명된 기술은 또한 부분적 자율 주행 차량 및 운전자 보조 차량, 예컨대, 소위 레벨 2 차량 및 레벨 1 차량에도 적용될 수 있다(SAE 국제 표준 J3016: 온로드 자동차 자동 운전 시스템에 관한 용어의 분류 및 정의 참조). 레벨 1, 레벨 2, 레벨 3, 레벨 4 및 레벨 5 차량 시스템 중 하나 이상은 센서 입력의 프로세싱에 기초하여 특정의 동작 조건 하에서 특정의 차량 동작(예를 들면, 조향, 제동, 및 맵 사용)을 자동화할 수 있다. 본 문서에서 설명된 기술은, 완전한 자율 주행 차량으로부터 인간-운전 차량에 이르는, 임의의 레벨에 있는 차량에 혜택을 줄 수 있다.
도 1을 참조하면, AV 시스템(120)은, 대상체(예를 들면, 자연 장애물(191), 차량(193), 보행자(192), 자전거 운전자, 및 다른 장애물)을 피하고 도로 법규(예를 들면, 동작 규칙 또는 운전 선호사항)를 준수하면서, 환경(190)을 통과하여 궤적(198)을 따라 AV(100)를 목적지(199)(때때로 최종 위치라고 지칭됨)로 동작시킨다.
일 실시예에서, AV 시스템(120)은 컴퓨터 프로세서(146)로부터 동작 커맨드를 수신하고 이에 따라 동작하도록 설비된 디바이스(101)를 포함한다. 일 실시예에서, 컴퓨팅 프로세서(146)는 도 3을 참조하여 아래에서 기술되는 프로세서(304)와 유사하다. 디바이스(101)의 예는 조향 제어(102), 브레이크(103), 기어, 가속 페달(accelerator pedal), 앞유리 와이퍼, 사이드-도어 록, 윈도우 컨트롤, 및 방향 지시등을 포함한다.
일 실시예에서, AV 시스템(120)은 AV의 위치, 선속도와 각속도 및 선가속도와 각가속도, 및 헤딩(heading)(예를 들면, AV(100)의 선단의 배향)와 같은 AV(100)의 상태 또는 조건의 속성을 측정 또는 추론하기 위한 센서(121)를 포함한다. 센서(121)의 예는 GPS, 차량 선가속도 및 각도 변화율(angular rate) 둘 모두를 측정하는 IMU(inertial measurement unit), 휠 슬립률(wheel slip ratio)을 측정 또는 추정하기 위한 휠 속력 센서, 휠 브레이크 압력 또는 제동 토크 센서, 엔진 토크 또는 휠 토크 센서, 그리고 조향각 및 각도 변화율 센서이다.
일 실시예에서, 센서(121)는 AV의 환경의 속성을 감지 또는 측정하기 위한 센서를 또한 포함한다. 예를 들어, 가시광, 적외선 또는 열(또는 둘 모두) 스펙트럼식 단안 또는 스테레오 비디오 카메라(122), LiDAR(123), RADAR, 초음파 센서, TOF(time-of-flight) 깊이 센서, 속력 센서, 온도 센서, 습도 센서, 및 강우 센서.
일 실시예에서, AV 시스템(120)은 컴퓨터 프로세서(146)와 연관된 머신 명령 또는 센서(121)에 의해 수집된 데이터를 저장하기 위한 데이터 저장 유닛(142) 및 메모리(144)를 포함한다. 일 실시예에서, 데이터 저장 유닛(142)은 도 3과 관련하여 아래에서 기술되는 ROM(308) 또는 저장 디바이스(310)와 유사하다. 일 실시예에서, 메모리(144)는 아래에서 기술되는 메인 메모리(306)와 유사하다. 일 실시예에서, 데이터 저장 유닛(142) 및 메모리(144)는 환경(190)에 관한 과거 정보, 실시간 정보, 및/또는 예측 정보를 저장한다. 일 실시예에서, 저장된 정보는 맵, 운전 성능, 교통 혼잡 업데이트 또는 기상 조건을 포함한다. 일 실시예에서, 환경(190)에 관한 데이터는 원격에 위치된 데이터베이스(134)로부터 통신 채널을 통해 AV(100)에 송신된다.
일 실시예에서, AV 시스템(120)은 다른 차량의 상태 및 조건, 예컨대, 위치, 선속도와 각속도, 선가속도와 각가속도, 및 AV(100)를 향한 선형 헤딩(linear heading)과 각도 헤딩(angular heading)의 측정된 또는 추론된 속성을 통신하기 위한 통신 디바이스(140)를 포함한다. 이러한 디바이스는 V2V(Vehicle-to-Vehicle) 및 V2I(Vehicle-to-Infrastructure) 통신 디바이스 및 포인트-투-포인트(point-to-point) 또는 애드혹(ad hoc) 네트워크 또는 둘 모두를 통한 무선 통신을 위한 디바이스를 포함한다. 일 실시예에서, 통신 디바이스(140)는 (라디오 및 광학 통신을 포함하는) 전자기 스펙트럼 또는 다른 매체(예를 들면, 공기 및 음향 매체)를 통해 통신한다. V2V(Vehicle-to-Vehicle), V2I(Vehicle-to-Infrastructure) 통신(및 일부 실시예에서, 하나 이상의 다른 유형의 통신)의 조합이 때때로 V2X(Vehicle-to-Everything) 통신이라고 지칭된다. V2X 통신은 전형적으로, 자율 주행 차량과의 통신 및 자율 주행 차량들 사이의 통신을 위한 하나 이상의 통신 표준을 준수한다.
일 실시예에서, 통신 디바이스(140)는 통신 인터페이스를 포함한다. 예를 들어, 유선, 무선, WiMAX, Wi-Fi, 블루투스, 위성, 셀룰러, 광학, 근거리, 적외선, 또는 라디오 인터페이스. 통신 인터페이스는 원격에 위치된 데이터베이스(134)로부터 AV 시스템(120)으로 데이터를 송신한다. 일 실시예에서, 원격에 위치된 데이터베이스(134)는 도 2에 기술된 바와 같은 클라우드 컴퓨팅 환경(200)에 내장된다. 통신 인터페이스(140)는 센서(121)로부터 수집된 데이터 또는 AV(100)의 동작에 관련된 다른 데이터를 원격에 위치된 데이터베이스(134)에 송신한다. 일 실시예에서, 통신 인터페이스(140)는 원격 조작(teleoperation)에 관련되는 정보를 AV(100)에 송신한다. 일부 실시예에서, AV(100)는 다른 원격(예를 들면, "클라우드") 서버(136)와 통신한다.
일 실시예에서, 원격에 위치된 데이터베이스(134)는 또한 디지털 데이터를 저장 및 송신한다(예를 들면, 도로 및 거리 위치와 같은 데이터를 저장함). 그러한 데이터는 AV(100) 상의 메모리(144)에 저장될 수 있거나, 또는 원격에 위치된 데이터베이스(134)로부터 통신 채널을 통해 AV(100)에 송신될 수 있다.
일 실시예에서, 원격에 위치된 데이터베이스(134)는 유사한 시각(time of day)에 궤적(198)을 따라 이전에 주행한 적이 있는 차량의 운전 속성(예를 들면, 속력 및 가속도 프로파일)에 관한 과거 정보를 저장 및 송신한다. 그러한 데이터는 AV(100) 상의 메모리(144)에 저장될 수 있거나, 또는 원격에 위치된 데이터베이스(134)로부터 통신 채널을 통해 AV(100)에 송신될 수 있다.
AV(100) 상에 위치된 컴퓨팅 디바이스(146)는 실시간 센서 데이터 및 사전 정보(prior information) 둘 모두에 기초한 제어 액션을 알고리즘적으로 생성하여, AV 시스템(120)이 자율 주행 운전 능력을 실행할 수 있게 한다.
일 실시예에서, AV 시스템(120)은 AV(100)의 사용자(예를 들면, 탑승자 또는 원격 사용자)에게 정보 및 경고를 제공하고 그로부터 입력을 수신하기 위해 컴퓨팅 디바이스(146)에 결합된 컴퓨터 주변기기(132)를 포함할 수 있다. 일 실시예에서, 주변기기(132)는 도 3을 참조하여 아래에서 논의되는 디스플레이(312), 입력 디바이스(314), 및 커서 컨트롤러(316)와 유사하다. 결합은 무선 또는 유선일 수 있다. 인터페이스 디바이스들 중 임의의 둘 이상이 단일 디바이스에 통합될 수 있다.
도 2는 예시적인 "클라우드" 컴퓨팅 환경을 도시한다. 클라우드 컴퓨팅은 구성 가능한 컴퓨팅 리소스(예를 들면, 네트워크, 네트워크 대역폭, 서버, 프로세싱, 메모리, 스토리지, 애플리케이션, 가상 머신, 및 서비스)의 공유 풀에 대한 편리한 온-디맨드 네트워크 액세스를 가능하게 하기 위한 서비스 전달(service delivery)의 일 모델이다. 전형적인 클라우드 컴퓨팅 시스템에서는, 하나 이상의 대규모 클라우드 데이터 센터가 클라우드에 의해 제공되는 서비스를 전달하는 데 사용되는 머신을 수용한다. 이제 도 2를 참조하면, 클라우드 컴퓨팅 환경(200)은 클라우드(202)를 통해 상호연결되는 클라우드 데이터 센터(204a, 204b, 및 204c)를 포함한다. 데이터 센터(204a, 204b, 및 204c)는 클라우드 컴퓨팅 서비스를 클라우드(202)에 연결된 컴퓨터 시스템(206a, 206b, 206c, 206d, 206e, 및 206f)에 제공한다.
클라우드 컴퓨팅 환경(200)은 하나 이상의 클라우드 데이터 센터를 포함한다. 일반적으로, 클라우드 데이터 센터, 예를 들어, 도 2에 도시된 클라우드 데이터 센터(204a)는 클라우드, 예를 들어, 도 2에 도시된 클라우드(202) 또는 클라우드의 특정한 부분을 구성하는 서버의 물리적 배열체를 지칭한다. 예를 들어, 서버는 클라우드 데이터 센터 내에 룸, 그룹, 로우(row), 및 랙(rack)으로 물리적으로 배열될 수 있다. 클라우드 데이터 센터는 하나 이상의 서버 룸을 포함하는 하나 이상의 구역을 갖는다. 각각의 룸은 하나 이상의 서버 로우를 가지며, 각각의 로우는 하나 이상의 랙을 포함한다. 각각의 랙은 하나 이상의 개별 서버 노드를 포함한다. 구역, 룸, 랙, 및/또는 로우 내의 서버는, 전력 요건, 에너지 요건, 열적 요건, 발열 요건, 및/또는 다른 요건을 포함하는, 데이터 센터 설비의 물리적 인프라스트럭처 요건에 기초하여 그룹으로 배열될 수 있다. 일 실시예에서, 서버 노드는 도 3에서 기술된 컴퓨터 시스템과 유사하다. 데이터 센터(204a)는 다수의 랙을 통해 분산된 다수의 컴퓨팅 시스템을 갖는다.
클라우드(202)는 클라우드 데이터 센터(204a, 204b, 및 204c)를 상호연결시키고 클라우드 컴퓨팅 서비스에 대한 컴퓨팅 시스템(206a 내지 206f)의 액세스를 용이하게 하는 것을 돕는 네트워크 및 네트워킹 리소스(예를 들어, 네트워킹 장비, 노드, 라우터, 스위치, 및 네트워킹 케이블)와 함께 클라우드 데이터 센터(204a, 204b, 및 204c)를 포함한다. 일 실시예에서, 네트워크는 지상 또는 위성 연결을 사용하여 배포된 유선 또는 무선 링크를 사용하여 결합된 하나 이상의 로컬 네트워크, 광역 네트워크, 또는 인터네트워크의 임의의 조합을 나타낸다. 네트워크를 거쳐 교환되는 데이터는, IP(Internet Protocol), MPLS(Multiprotocol Label Switching), ATM(Asynchronous Transfer Mode), 및 프레임 릴레이 등과 같은, 임의의 개수의 네트워크 계층 프로토콜을 사용하여 송신된다. 게다가, 네트워크가 다수의 서브 네트워크의 조합을 나타내는 실시예에서는, 기저 서브 네트워크(underlying sub-network) 각각에서 상이한 네트워크 계층 프로토콜이 사용된다. 일부 실시예에서, 네트워크는, 공중 인터넷과 같은, 하나 이상의 상호연결된 인터네트워크를 나타낸다.
컴퓨팅 시스템(206a 내지 206f) 또는 클라우드 컴퓨팅 서비스 소비자는 네트워크 링크 및 네트워크 어댑터를 통해 클라우드(202)에 연결된다. 일 실시예에서, 컴퓨팅 시스템(206a 내지 206f)은 다양한 컴퓨팅 디바이스, 예를 들어, 서버, 데스크톱, 랩톱, 태블릿, 스마트폰, IoT(Internet of Things) 디바이스, 자율 주행 차량(자동차, 드론, 셔틀, 기차, 버스 등을 포함함) 및 소비자 전자기기로서 구현된다. 컴퓨팅 시스템(206a 내지 206f)은 또한 다른 시스템 내에 또는 그 일부로서 구현될 수 있다.
도 3은 컴퓨터 시스템(300)을 도시한다. 일 구현예에서, 컴퓨터 시스템(300)은 특수 목적 컴퓨팅 디바이스이다. 특수 목적 컴퓨팅 디바이스는 기술을 수행하도록 고정-배선(hard-wired)될 수 있거나, 또는 기술을 수행하도록 지속적으로 프로그래밍되는 하나 이상의 ASIC(application-specific integrated circuit) 또는 FPGA(field programmable gate array)와 같은 디지털 전자 디바이스를 포함할 수 있거나, 또는 펌웨어, 메모리, 다른 스토리지 또는 조합 내의 프로그램 명령에 따라 기술을 수행하도록 프로그래밍되는 하나 이상의 범용 하드웨어 프로세서를 포함할 수 있다. 그러한 특수-목적 컴퓨팅 디바이스는 또한 커스텀 고정-배선 로직, ASIC, 또는 FPGA를 커스텀 프로그래밍과 조합하여 기술을 실현할 수 있다. 특수-목적 컴퓨팅 디바이스는 기술을 구현하기 위한 고정-배선 및/또는 프로그램 로직을 포함하는 데스크톱 컴퓨터 시스템, 휴대용 컴퓨터 시스템, 핸드헬드 디바이스, 네트워크 디바이스, 또는 임의의 다른 디바이스일 수 있다.
컴퓨터 시스템(300)은 정보를 통신하기 위한 버스(302) 또는 다른 통신 메커니즘, 및 정보를 프로세싱하기 위해 버스(302)와 결합된 하드웨어 프로세서(304)를 포함할 수 있다. 하드웨어 프로세서(304)는, 예를 들어, 범용 마이크로프로세서일 수 있다. 컴퓨터 시스템(300)은 프로세서(304)에 의해 실행될 명령 및 정보를 저장하기 위해 버스(302)에 결합된, RAM(random access memory) 또는 다른 동적 저장 디바이스와 같은, 메인 메모리(306)를 또한 포함한다. 메인 메모리(306)는 또한 프로세서(304)에 의해 실행될 명령의 실행 동안 임시 변수 또는 다른 중간 정보를 저장하는 데 사용될 수 있다. 그러한 명령은, 프로세서(304)에 의해 액세스 가능한 비-일시적 저장 매체에 저장되어 있을 때, 컴퓨터 시스템(300)을 명령에서 특정된 동작을 수행하도록 커스터마이징된 특수-목적 머신으로 만든다.
일 실시예에서, 컴퓨터 시스템(300)은, 프로세서(304)를 위한 정적 정보 및 명령을 저장하기 위해 버스(302)에 결합된 ROM(read only memory)(308) 또는 다른 정적 저장 디바이스를 추가로 포함한다. 정보 및 명령을 저장하기 위해, 자기 디스크, 광학 디스크, 또는 솔리드-스테이트 드라이브와 같은, 저장 디바이스(310)가 제공되고 버스(302)에 결합된다.
컴퓨터 시스템(300)은 정보를 컴퓨터 사용자에게 디스플레이하기 위해 CRT(cathode ray tube), LCD(liquid crystal display), 플라스마 디스플레이, LED(light emitting diode) 디스플레이, 또는 OLED(organic light emitting diode) 디스플레이와 같은 디스플레이(312)에 버스(302)를 통해 결합될 수 있다. 문자 숫자식 키 및 다른 키를 포함하는 입력 디바이스(314)는 정보 및 커맨드 선택을 프로세서(304)에 통신하기 위해 버스(302)에 결합된다. 다른 유형의 사용자 입력 디바이스는 방향 정보 및 커맨드 선택을 프로세서(304)에 통신하고 디스플레이(312) 상에서의 커서 움직임을 제어하기 위한, 마우스, 트랙볼, 터치식 디스플레이, 또는 커서 방향 키와 같은, 커서 컨트롤러(316)이다. 이러한 입력 디바이스는 전형적으로, 디바이스가 평면에서의 위치를 특정할 수 있게 하는 2개의 축, 즉 제1 축(예를 들면, x-축) 및 제2 축(예를 들면, y-축)에서의 2 자유도를 갖는다.
일 실시예에 따르면, 본원에서의 기술은 프로세서(304)가 메인 메모리(306)에 포함된 하나 이상의 명령의 하나 이상의 시퀀스를 실행하는 것에 응답하여 컴퓨터 시스템(300)에 의해 수행된다. 그러한 명령은, 저장 디바이스(310)와 같은, 다른 저장 매체로부터 메인 메모리(306) 내로 판독될 수 있다. 메인 메모리(306)에 포함된 명령의 시퀀스의 실행은 프로세서(304)로 하여금 본원에서 기술된 프로세스 단계를 수행하게 한다. 대안적인 실시예에서는, 소프트웨어 명령 대신에 또는 소프트웨어 명령과 조합하여 고정-배선 회로가 사용될 수 있다.
용어 "저장 매체"는, 본원에서 사용되는 바와 같이, 머신으로 하여금 특정 방식으로 동작하게 하는 데이터 및/또는 명령을 저장하는 임의의 비-일시적 매체를 지칭한다. 그러한 저장 매체는 비휘발성 매체 및/또는 휘발성 매체를 포함할 수 있다. 비휘발성 매체는, 예를 들어, 광학 디스크, 자기 디스크, 또는 솔리드-스테이트 드라이브, 예컨대, 저장 디바이스(310)를 포함한다. 휘발성 매체는 동적 메모리, 예컨대, 메인 메모리(306)를 포함한다. 저장 매체의 일반적인 형태는, 예를 들어, 플로피 디스크, 플렉서블 디스크, 하드 디스크, 솔리드-스테이트 드라이브, 자기 테이프, 또는 임의의 다른 자기 데이터 저장 매체, CD-ROM, 임의의 다른 광학 데이터 저장 매체, 홀 패턴을 갖는 임의의 물리적 매체, RAM, PROM, 및 EPROM, FLASH-EPROM, NV-RAM, 또는 임의의 다른 메모리 칩, 또는 카트리지를 포함한다.
저장 매체는 송신 매체와 별개이지만 송신 매체와 함께 사용될 수 있다. 송신 매체는 저장 매체들 사이에서 정보를 전달하는 데 참여한다. 예를 들어, 송신 매체는 버스(302)를 포함하는 와이어를 포함하여, 동축 케이블, 구리 와이어 및 광섬유를 포함한다. 송신 매체는 또한, 라디오 파 및 적외선 데이터 통신 동안 생성되는 것과 같은, 광파 또는 음향파의 형태를 취할 수 있다.
실행을 위해 하나 이상의 명령의 하나 이상의 시퀀스를 프로세서(304)에 반송하는 데 다양한 형태의 매체가 관여될 수 있다. 예를 들어, 명령은 초기에 원격 컴퓨터의 자기 디스크 또는 솔리드-스테이트 드라이브에 보유될 수 있다. 원격 컴퓨터는 동적 메모리에 명령을 로딩하고 모뎀을 사용하여 전화선을 통해 명령을 전송할 수 있다. 컴퓨터 시스템(300)에 로컬인 모뎀은 전화선 상으로 데이터를 수신하고 적외선 송신기를 사용하여 데이터를 적외선 신호로 변환할 수 있다. 적외선 검출기는 적외선 신호로 반송되는 데이터를 수신할 수 있고 적절한 회로는 데이터를 버스(302)에 배치할 수 있다. 버스(302)는 데이터를 메인 메모리(306)로 반송하고, 프로세서(304)는 메인 메모리로부터 명령을 검색 및 실행한다. 메인 메모리(306)에 의해 수신된 명령은 프로세서(304)에 의해 실행되기 전이나 실행된 후에 선택적으로 저장 디바이스(310)에 저장될 수 있다.
컴퓨터 시스템(300)은 버스(302)에 결합된 통신 인터페이스(318)를 또한 포함한다. 통신 인터페이스(318)는 로컬 네트워크(322)에 연결된 네트워크 링크(320)에 대한 2-웨이 데이터 통신(two-way data communication) 결합을 제공한다. 예를 들어, 통신 인터페이스(318)는 ISDN(integrated service digital network) 카드, 케이블 모뎀, 위성 모뎀, 또는 대응하는 유형의 전화선에 대한 데이터 통신 연결을 제공하기 위한 모뎀일 수 있다. 다른 예로서, 통신 인터페이스(318)는 호환 LAN(local area network)에 대한 데이터 통신 연결을 제공하기 위한 LAN 카드일 수 있다. 무선 링크가 또한 구현될 수 있다. 임의의 그러한 구현예에서, 통신 인터페이스(318)는 다양한 유형의 정보를 나타내는 디지털 데이터 스트림을 반송하는 전기 신호, 전자기 신호, 또는 광학 신호를 전송 및 수신한다.
네트워크 링크(320)는 전형적으로 하나 이상의 네트워크를 통한 다른 데이터 디바이스로의 데이터 통신을 제공한다. 예를 들어, 네트워크 링크(320)는 로컬 네트워크(322)를 통해 호스트 컴퓨터(324)로의 연결 또는 ISP(Internet Service Provider)(326)에 의해 운영되는 클라우드 데이터 센터 또는 장비로의 연결을 제공할 수 있다. ISP(326)는 차례로 지금은 "인터넷(328)"이라고 통상적으로 지칭되는 월드-와이드 패킷 데이터 통신 네트워크(world-wide packet data communication network)를 통해 데이터 통신 서비스를 제공한다. 로컬 네트워크(322) 및 인터넷(328) 둘 모두는 디지털 데이터 스트림을 반송하는 전기 신호, 전자기 신호, 또는 광학 신호를 사용한다. 컴퓨터 시스템(300)으로 그리고 컴퓨터 시스템(300)으로부터 디지털 데이터를 반송하는, 다양한 네트워크를 통한 신호 및 통신 인터페이스(318)를 통한 네트워크 링크(320) 상의 신호는 송신 매체의 예시적인 형태이다. 일 실시예에서, 네트워크(320)는 위에서 기술된 클라우드(202)를 포함할 수 있거나 또는 클라우드(202)의 일부일 수 있다.
컴퓨터 시스템(300)은 네트워크(들), 네트워크 링크(320), 및 통신 인터페이스(318)를 통해, 프로그램 코드를 포함하여, 메시지를 전송하고 데이터를 수신할 수 있다. 일 실시예에서, 컴퓨터 시스템(300)은 프로세싱하기 위한 코드를 수신할 수 있다. 수신된 코드는 수신될 때 프로세서(304)에 의해 실행될 수 있고 그리고/또는 추후의 실행을 위해 저장 디바이스(310) 또는 다른 비휘발성 스토리지에 저장될 수 있다.
자율 주행 차량 아키텍처
도 4는 자율 주행 차량(예를 들면, 도 1에 도시된 AV(100))에 대한 예시적인 아키텍처(400)를 도시한다. 아키텍처(400)는 인지 모듈(402), 계획 모듈(404), 제어 모듈(406), 로컬화 모듈(408), 및 데이터베이스 모듈(410)을 포함한다. 각각의 모듈은 AV(100)의 동작에서 소정의 역할을 한다. 다함께, 모듈(402, 404, 406, 408, 및 410)은 도 1에 도시된 AV 시스템(120)의 일부일 수 있다.
사용 중에, 계획 모듈(404)은 목적지(412)를 나타내는 데이터를 수신하고 목적지(412)에 도달(예를 들면, 도착)하기 위해 AV(100)에 의해 주행될 수 있는 루트(414)를 나타내는 데이터를 결정한다. 계획 모듈(404)이 루트(414)를 나타내는 데이터를 결정하기 위해, 계획 모듈(404)은 인지 모듈(402), 로컬화 모듈(408), 및 데이터베이스 모듈(410)로부터 데이터를 수신한다.
인지 모듈(402)은, 예를 들면, 도 1에도 도시된 바와 같이, 하나 이상의 센서(121)를 사용하여 인근의 물리적 대상체를 식별한다. 대상체는 분류되고(예를 들면, 보행자, 자전거, 자동차, 교통 표지판 등과 같은 유형으로 그룹화되고), 분류된 대상체(416)를 포함하는 장면 묘사는 계획 모듈(404)에 제공된다.
계획 모듈(404)은 또한 로컬화 모듈(408)로부터 AV 위치(418)를 나타내는 데이터를 수신한다. 로컬화 모듈(408)은 위치를 계산하기 위해 센서(121)로부터의 데이터 및 데이터베이스 모듈(410)로부터의 데이터(예를 들면, 지리적 데이터)를 사용하여 AV 위치를 결정한다. 예를 들어, 로컬화 모듈(408)은 GNSS(Global Operation Satellite System) 센서로부터의 데이터 및 지리적 데이터를 사용하여 AV의 경도 및 위도를 계산할 수 있다. 일 실시예에서, 로컬화 모듈(408)에 의해 사용되는 데이터는 도로 기하학적 속성의 고-정밀 맵, 도로망 연결 속성을 기술하는 맵, 도로 물리적 속성(예컨대, 교통 속력, 교통량, 차량 및 자전거 운전자 교통 차선의 개수, 차선 폭, 차선 교통 방향, 또는 차선 마커 유형 및 위치, 또는 그 조합)을 기술하는 맵, 및 도로 특징부, 예컨대, 횡단보도, 교통 표지판 또는 다양한 유형의 다른 주행 신호(travel signal)의 공간적 위치를 기술하는 맵을 포함한다.
제어 모듈(406)은 루트(414)를 나타내는 데이터 및 AV 위치(418)를 나타내는 데이터를 수신하고, AV(100)로 하여금 목적지(412)를 향해 루트(414)를 주행하게 할 방식으로 AV의 제어 기능(420a 내지 420c)(예를 들면, 조향, 스로틀링, 제동, 점화)을 동작시킨다. 예를 들어, 루트(414)가 좌회전을 포함하는 경우, 제어 모듈(406)은, 조향 기능의 조향각이 AV(100)로 하여금 좌회전하게 하고 스로틀링 및 제동이 AV(100)로 하여금 이 회전이 이루어지기 전에 지나가는 보행자 또는 차량을 위해 일시정지 및 대기하게 하도록 하는 방식으로 제어 기능(420a 내지 420c)을 동작시킬 것이다.
자율 주행 차량 입력
도 5는 인지 모듈(402)(도 4)에 의해 사용될 수 있는 입력(502a 내지 502d)(예를 들면, 도 1에 도시된 센서(121)) 및 출력(504a 내지 504d)(예를 들면, 센서 데이터)의 일 예를 도시한다. 하나의 입력(502a)은 LiDAR(Light Detection and Ranging) 시스템(예를 들면, 도 1에 도시된 LiDAR(123))이다. LiDAR는 그의 시선에 있는 물리적 대상체에 관한 데이터를 획득하기 위해 광(예를 들면, 적외선 광과 같은 광의 버스트)을 사용하는 기술이다. LiDAR 시스템은 출력(504a)으로서 LiDAR 데이터를 생성한다. 예를 들어, LiDAR 데이터는 환경(190)의 표현을 구성하는 데 사용되는 3D 또는 2D 포인트(포인트 클라우드라고도 알려져 있음)의 집합체일 수 있다.
다른 입력(502b)은 RADAR 시스템이다. RADAR는 인근의 물리적 대상체에 관한 데이터를 획득하기 위해 라디오 파를 사용하는 기술이다. RADAR는 LiDAR 시스템의 시선 내에 있지 않은 대상체에 관한 데이터를 획득할 수 있다. RADAR 시스템(502b)은 출력(504b)으로서 RADAR 데이터를 생성한다. 예를 들어, RADAR 데이터는 환경(190)의 표현을 구성하는 데 사용되는 하나 이상의 라디오 주파수 전자기 신호일 수 있다.
다른 입력(502c)은 카메라 시스템이다. 카메라 시스템은 인근의 물리적 대상체에 관한 정보를 획득하기 위해 하나 이상의 카메라(예를 들면, CCD(charge-coupled device)와 같은 광 센서를 사용하는 디지털 카메라)를 사용한다. 카메라 시스템은 출력(504c)으로서 카메라 데이터를 생성한다. 카메라 데이터는 종종 이미지 데이터(예를 들면, RAW, JPEG, PNG 등과 같은 이미지 데이터 포맷의 데이터)의 형태를 취한다. 일부 예에서, 카메라 시스템은, 카메라 시스템이 깊이를 인지할 수 있게 하는, 예를 들어, 입체시(stereopsis)(스테레오 비전)를 위한, 다수의 독립적인 카메라를 갖는다. 비록 카메라 시스템에 의해 인지되는 대상체가 여기서 "인근"으로 기술되지만, 이것은 AV에 상대적인 것이다. 사용 중에, 카메라 시스템은 멀리 있는, 예를 들어, AV 전방으로 최대 1 킬로미터 이상에 있는 대상체를 "보도록" 구성될 수 있다. 따라서, 카메라 시스템은 멀리 떨어져 있는 대상체를 인지하도록 최적화되어 있는 센서 및 렌즈와 같은 특징부를 가질 수 있다.
다른 입력(502d)은 TLD(traffic light detection) 시스템이다. TLD 시스템은 하나 이상의 카메라를 사용하여, 시각적 운행 정보를 제공하는 교통 신호등, 거리 표지판, 및 다른 물리적 대상체에 관한 정보를 획득한다. TLD 시스템은 출력(504d)으로서 TLD 데이터를 생성한다. TLD 데이터는 종종 이미지 데이터(예를 들면, RAW, JPEG, PNG 등과 같은 이미지 데이터 포맷의 데이터)의 형태를 취한다. TLD 시스템은, 시각적 운행 정보를 제공하는 가능한 한 많은 물리적 대상체에 관한 정보를 획득하기 위해 TLD 시스템이 넓은 시야를 갖는 카메라(예를 들면, 광각 렌즈 또는 어안 렌즈를 사용함)를 사용하여, AV(100)가 이러한 대상체에 의해 제공되는 모든 관련 운행 정보에 액세스한다는 점에서, 카메라를 포함하는 다른 시스템과 상이하다. 예를 들어, TLD 시스템의 시야각은 약 120도 이상일 수 있다.
일부 실시예에서, 출력(504a 내지 504d)은 센서 융합 기술을 사용하여 조합될 수 있다. 따라서, 개별 출력(504a 내지 504d) 중 어느 하나가 AV(100)의 다른 시스템에 제공될 수 있거나(예를 들면, 도 4에 도시된 바와 같은 계획 모듈(404)에 제공됨), 또는 조합된 출력이 동일한 유형(동일한 조합 기술을 사용하는 것 또는 동일한 출력을 조합하는 것 또는 둘 모두)의 단일 조합 출력 또는 다중 조합 출력의 형태 또는 상이한 유형(예를 들면, 상이한 각자의 조합 기술을 사용하는 것 또는 상이한 각자의 출력을 조합하는 것 또는 둘 모두)의 단일 조합 출력 또는 다중 조합 출력의 형태 중 어느 하나로 다른 시스템에 제공될 수 있다. 일부 실시예에서, 조기 융합(early fusion) 기술이 사용된다. 조기 융합 기술은 하나 이상의 데이터 프로세싱 단계가 조합 출력에 적용되기 전에 출력을 조합하는 것을 특징으로 한다. 일부 실시예에서, 늦은 융합(late fusion) 기술이 사용된다. 늦은 융합 기술은 하나 이상의 데이터 프로세싱 단계가 개별 출력에 적용된 후에 출력을 조합하는 것을 특징으로 한다.
도 6은 LiDAR 시스템(602)(예를 들면, 도 5에 도시된 입력(502a))의 일 예를 도시한다. LiDAR 시스템(602)은 광 방출기(606)(예를 들면, 레이저 송신기)로부터 광(604a 내지 604c)을 방출한다. LiDAR 시스템에 의해 방출되는 광은 전형적으로 가시 스펙트럼에 있지 않으며; 예를 들어, 적외선 광이 종종 사용된다. 방출되는 광(604b)의 일부는 물리적 대상체(608)(예를 들면, 차량)와 조우하고, LiDAR 시스템(602)으로 다시 반사된다. (LiDAR 시스템으로부터 방출되는 광은 전형적으로 물리적 대상체, 예를 들면, 고체 형태의 물리적 대상체를 관통하지 않는다). LiDAR 시스템(602)은 또한 반사된 광을 검출하는 하나 이상의 광 검출기(610)를 갖는다. LiDAR 시스템과 연관된 하나 이상의 데이터 프로세싱 시스템은 LiDAR 시스템의 시야(614)를 나타내는 이미지(612)를 생성할 수 있다. 이미지(612)는 물리적 대상체(608)의 경계(616)를 나타내는 정보를 포함한다. 이러한 방식으로, 이미지(612)는 AV 인근의 하나 이상의 물리적 대상체의 경계(616)를 결정하는 데 사용될 수 있다.
도 7은 동작 중인 LiDAR 시스템(602)을 도시한다. 이 도면에 도시된 시나리오에서, AV(100)는 이미지(702) 형태의 카메라 시스템 출력(504c) 및 LiDAR 데이터 포인트(704) 형태의 LiDAR 시스템 출력(504a) 둘 모두를 수신한다. 사용 중에, AV(100)의 데이터 프로세싱 시스템은 이미지(702)를 데이터 포인트(704)와 비교할 수 있다. 특히, 이미지(702)에서 식별된 물리적 대상체(706)가 데이터 포인트(704) 중에서도 식별될 수 있다. 이러한 방식으로, AV(100)는 데이터 포인트(704)의 윤곽 및 밀도에 기초하여 물리적 대상체의 경계를 인지할 수 있다.
도 8은 LiDAR 시스템(602)의 동작을 추가적으로 상세하게 도시한다. 위에서 기술된 바와 같이, AV(100)는 LiDAR 시스템(602)에 의해 검출되는 데이터 포인트의 특성에 기초하여 물리적 대상체의 경계를 검출할 수 있다. 도 8에 도시된 바와 같이, 지면(802)과 같은 평평한 대상체는 LiDAR 시스템(602)으로부터 방출되는 광(804a 내지 804d)을 일관된 방식으로 반사할 것이다. 달리 말하면, LiDAR 시스템(602)이 일관된 간격을 사용하여 광을 방출하기 때문에, 지면(802)은 광을 동일한 일관된 간격으로 다시 LiDAR 시스템(602)으로 반사할 것이다. AV(100)가 지면(802) 위를 주행함에 따라, LiDAR 시스템(602)은 도로를 방해하는 것이 아무 것도 없는 경우 다음 유효 지면 포인트(806)에 의해 반사되는 광을 계속 검출할 것이다. 그렇지만, 대상체(808)가 도로를 방해하는 경우, LiDAR 시스템(602)에 의해 방출되는 광(804e 내지 804f)은 예상되는 일관된 방식과 부합하지 않는 방식으로 포인트(810a 내지 810b)로부터 반사될 것이다. 이 정보로부터, AV(100)는 대상체(808)가 존재한다고 결정할 수 있다.
자율 주행 차량 계획
도 9는 (예를 들면, 도 4에 도시된 바와 같은) 계획 모듈(404)의 입력과 출력 사이의 관계의 블록 다이어그램(900)을 도시한다. 일반적으로, 계획 모듈(404)의 출력은 시작 포인트(904)(예를 들면, 소스 위치 또는 초기 위치)로부터 종료 포인트(906)(예를 들면, 목적지 또는 최종 위치)까지의 루트(902)이다. 루트(902)는 전형적으로 하나 이상의 세그먼트에 의해 정의된다. 예를 들어, 세그먼트는 거리, 도로, 간선도로, 사유 도로, 또는 자동차 주행에 적절한 다른 물리적 영역의 적어도 일 부분에 걸쳐 주행되는 거리일 수 있다. 일부 예에서, 예를 들면, AV(100)가 4륜 구동(4WD) 또는 상시 4륜구동(AWD) 자동차, SUV, 픽업 트럭 등과 같은 오프-로드 주행 가능 차량(off-road capable vehicle)인 경우, 루트(902)는 비포장 경로 또는 탁트인 들판과 같은 "오프-로드" 세그먼트를 포함할 수 있다.
루트(902)에 추가하여, 계획 모듈은 차선-레벨 루트 계획 데이터(908)도 출력한다. 차선-레벨 루트 계획 데이터(908)는 특정한 시간에서의 세그먼트의 조건에 기초하여 루트(902)의 세그먼트를 횡단하는 데 사용된다. 예를 들어, 루트(902)가 다중 차선 간선도로를 포함하는 경우, 차선-레벨 루트 계획 데이터(908)는, 예를 들면, 출구가 다가오고 있는지 여부, 차선들 중 하나 이상이 다른 차량을 갖는지 여부, 또는 수 분 이하 동안에 걸쳐 변화될 수 있는 다른 인자에 기초하여, AV(100)가 다수의 차선 중 한 차선을 선택하는 데 사용할 수 있는 경로 계획 데이터(910)를 포함할 수 있다. 유사하게, 차선-레벨 루트 계획 데이터(908)는 루트(902)의 세그먼트에 특정적인 속력 제약(912)을 포함할 수 있다. 예를 들어, 세그먼트가 보행자 또는 예상치 않은 교통상황(traffic)을 포함하는 경우, 속력 제약(912)은 AV(100)를 예상된 속력보다 더 느린 주행 속력, 예를 들면, 세그먼트에 대한 속력 제한 데이터에 기초한 속력으로 제한할 수 있다.
계획 모듈(404)에의 입력은 (예를 들면, 도 4에 도시된 데이터베이스 모듈(410)로부터의) 데이터베이스 데이터(914), 현재 위치 데이터(916)(예를 들면, 도 4에 도시된 AV 위치(418)), (예를 들면, 도 4에 도시된 목적지(412)에 대한) 목적지 데이터(918), 및 대상체 데이터(920)(예를 들면, 도 4에 도시된 바와 같은 인지 모듈(402)에 의해 인지되는 바와 같은 분류된 대상체(416))를 포함할 수 있다. 일 실시예에서, 데이터베이스 데이터(914)는 계획에 사용되는 규칙을 포함한다. 규칙은 형식 언어를 사용하여, 예를 들어, 불리언 로직을 사용하여 특정된다. AV(100)가 조우하는 임의의 주어진 상황에서, 규칙들 중 적어도 일부는 해당 상황에 적용될 것이다. 규칙이 AV(100)에 이용 가능한 정보, 예를 들면, 주위 환경에 관한 정보에 기초하여 충족되는 조건을 갖는 경우, 규칙이 주어진 상황에 적용된다. 규칙은 우선순위를 가질 수 있다. 예를 들어, "도로가 공도인 경우, 최좌측 차선으로 이동하라"로 되어 있는 규칙은, 출구가 1마일 내로 다가오고 있는 경우, 최우측 차선으로 이동하라"는 것보다 낮은 우선순위를 가질 수 있다.
도 10은, 예를 들면, 계획 모듈(404)(도 4)에 의해 경로 계획에 사용되는 방향 그래프(1000)를 도시한다. 일반적으로, 도 10에 도시된 것과 같은 방향 그래프(1000)는 임의의 시작 포인트(1002)와 종료 포인트(1004) 사이의 경로를 결정하는 데 사용될 수 있다. 현실 세계에서는, 시작 포인트(1002)와 종료 포인트(1004)를 분리하는 거리는 상대적으로 클 수 있거나(예를 들면, 2개의 상이한 대도시 지역에 있음) 또는 상대적으로 작을 수 있다(예를 들면, 도시 블록과 맞닿아 있는 2개의 교차로 또는 다중 차선 도로의 2개의 차선).
방향 그래프(1000)는 AV(100)에 의해 점유될 수 있는 시작 포인트(1002)와 종료 포인트(1004) 사이의 상이한 위치를 나타내는 노드(1006a 내지 1006d)를 갖는다. 일부 예에서, 예를 들면, 시작 포인트(1002)와 종료 포인트(1004)가 상이한 대도시 지역을 나타낼 때, 노드(1006a 내지 1006d)는 도로의 세그먼트를 나타낼 수 있다. 일부 예에서, 예를 들면, 시작 포인트(1002)와 종료 포인트(1004)가 동일한 도로 상의 상이한 위치를 나타낼 때, 노드(1006a 내지 1006d)는 해당 도로 상의 상이한 위치를 나타낼 수 있다. 이러한 방식으로, 방향 그래프(1000)는 다양한 레벨의 입도(granularity)로 정보를 포함할 수 있다. 높은 입도를 갖는 방향 그래프는 또한 더 큰 스케일을 갖는 다른 방향 그래프의 하위그래프일 수 있다. 예를 들어, 시작 포인트(1002)와 종료 포인트(1004)가 멀리 떨어져 있는(예를 들면, 수 마일(many miles) 떨어져 있는) 방향 그래프는 그의 정보 대부분이 낮은 입도일 수 있고 저장된 데이터에 기초하지만, AV(100)의 시야 내의 물리적 위치를 나타내는 그래프의 부분에 대한 일부 높은 입도의 정보를 또한 포함할 수 있다.
노드(1006a 내지 1006d)는 노드와 오버랩될 수 없는 대상체(1008a 내지 1008b)와 별개이다. 입도가 낮을 때, 대상체(1008a 및 1008b)는 자동차에 의해 횡단될 수 없는 영역, 예를 들면, 거리 또는 도로가 없는 구역을 나타낼 수 있다. 입도가 높을 때, 대상체(1008a 및 1008b)는 AV(100)의 시야 내의 물리적 대상체, 예를 들면, 다른 자동차, 보행자, 또는 AV(100)와 물리적 공간을 공유할 수 없는 다른 엔티티를 나타낼 수 있다. 대상체(1008a 내지 1008b) 중 임의의 것은 정적 대상체(예를 들면, 가로등 또는 전신주와 같은 위치를 변경하지 않는 대상체) 또는 동적 대상체(예를 들면, 보행자 또는 다른 자동차와 같은 위치를 변경할 수 있는 대상체)일 수 있다.
노드(1006a 내지 1006d)는 에지(1010a 내지 1010c)에 의해 연결된다. 2개의 노드(1006a 및 1006b)가 에지(1010a)에 의해 연결되는 경우, AV(100)가, 예를 들면, 다른 노드(1006b)에 도착하기 전에 중간 노드로 주행할 필요 없이, 하나의 노드(1006a)와 다른 노드(1006b) 사이에서 주행하는 것이 가능하다. (AV(100)가 노드 사이에서 주행하는 것을 언급할 때, 이는 AV(100)가 각자의 노드에 의해 표현되는 2개의 물리적 위치 사이에서 주행할 수 있다는 것을 의미한다.) 에지(1010a 내지 1010c)는, AV(100)가 제1 노드로부터 제2 노드로, 또는 제2 노드로부터 제1 노드로 주행할 수 있다는 의미에서, 종종 양방향성이다. 그렇지만, 에지(1010a 내지 1010c)는 또한, AV(100)가 제1 노드로부터 제2 노드로 주행할 수 있지만, 제2 노드로부터 제1 노드로 주행할 수 없다는 의미에서, 단방향성일 수 있다. 에지(1010a 내지 1010c)는, 예를 들어, 일방통행로, 거리, 도로, 또는 간선도로의 개별 차선, 또는 법적 또는 물리적 제약으로 인해 일 방향으로만 횡단될 수 있는 다른 특징부를 나타낼 때, 단방향성이다.
사용 중에, 계획 모듈(404)은 방향 그래프(1000)를 사용하여 시작 포인트(1002)와 종료 포인트(1004) 사이의 노드 및 에지로 구성된 경로(1012)를 식별할 수 있다.
에지(1010a 내지 1010c)는 연관된 비용(1014a 및 1014b)을 갖는다. 비용(1014a 및 1014b)은 AV(100)가 해당 에지를 선택하는 경우 소비될 리소스를 나타내는 값이다. 전형적인 리소스는 시간이다. 예를 들어, 하나의 에지(1010a)가 다른 에지(1010b)의 물리적 거리의 2배인 물리적 거리를 나타내는 경우, 제1 에지(1010a)의 연관된 비용(1014a)은 제2 에지(1010b)의 연관된 비용(1014b)의 2배일 수 있다. 시간에 영향을 미칠 수 있는 다른 인자는 예상된 교통상황, 교차로의 개수, 속력 제한 등을 포함한다. 다른 전형적인 리소스는 연비이다. 2개의 에지(1010a 및 1010b)는 동일한 물리적 거리를 나타낼 수 있지만, 예를 들면, 도로 조건, 예상된 날씨 등으로 인해, 하나의 에지(1010a)는 다른 에지(1010b)보다 많은 연료를 필요로 할 수 있다.
계획 모듈(404)이 시작 포인트(1002)와 종료 포인트(1004) 사이의 경로(1012)를 식별할 때, 계획 모듈(404)은 전형적으로, 비용에 최적화된 경로, 예를 들면, 에지의 개별 비용이 함께 가산될 때 가장 적은 전체 비용을 갖는 경로를 선택한다.
일 실시예에서, 도 N1 내지 도 N3을 참조하여 더욱 상세히 기술된 바와 같이, 2개 이상의 리던던트 계획 모듈(404)이 AV에 포함될 수 있다.
자율 주행 차량 제어
도 11은 (예를 들면, 도 4에 도시된 바와 같은) 제어 모듈(406)의 입력 및 출력의 블록 다이어그램(1100)을 도시한다. 제어 모듈은, 예를 들어, 하나 이상의 프로세서(예를 들면, 마이크로프로세서 또는 마이크로컨트롤러 또는 둘 모두와 같은 하나 이상의 컴퓨터 프로세서), 단기 및/또는 장기 데이터 스토리지(예를 들면, 메모리 랜덤-액세스 메모리 또는 플래시 메모리 또는 둘 모두), 및 (예를 들면, 하나 이상의 프로세서에 의해) 명령이 실행될 때 제어기(1102)의 동작을 수행하는 메모리에 저장된 명령을 포함하는 제어기(1102)에 따라 동작한다.
사용 중에, 제어기(1102)는 원하는 출력(1104)을 나타내는 데이터를 수신한다. 원하는 출력(1104)은 전형적으로 속도, 예를 들면, 속력 및 헤딩을 포함한다. 원하는 출력(1104)은, 예를 들어, (예를 들면, 도 4에 도시된 바와 같은) 계획 모듈(404)로부터 수신되는 데이터에 기초할 수 있다. 원하는 출력(1104)에 따라, 제어기(1102)는 스로틀 입력(1106) 및 조향 입력(1108)으로서 사용 가능한 데이터를 생성한다. 스로틀 입력(1106)은 원하는 출력(1104)을 달성하기 위해, 예를 들면, 조향 페달에 관여하거나 또는 다른 스로틀 제어에 관여함으로써, AV(100)의 스로틀(예를 들면, 가속 제어)에 관여하는 정도를 나타낸다. 일부 예에서, 스로틀 입력(1106)은 AV(100)의 브레이크(예를 들면, 감속 제어)에 관여하는 데 사용 가능한 데이터를 또한 포함한다. 조향 입력(1108)은 조향각, 예를 들면, AV의 조향 제어(예를 들면, 조향 휠, 조향각 액추에이터, 또는 조향각을 제어하기 위한 다른 기능성)가 원하는 출력(1104)을 달성하도록 위치설정되어야 하는 각도를 나타낸다.
사용 중에, 제어기(1102)는 스로틀 및 조향에 제공되는 입력을 조정하는 데 사용되는 피드백을 수신한다. 예를 들어, AV(100)가 언덕과 같은 방해물(1110)과 조우하는 경우, AV(100)의 측정된 속력(1112)은 원하는 출력 속력 아래로 낮아질 수 있다. 예를 들면, 측정된 속력과 원하는 출력 사이의 차분(1113)에 기초하여, 필요한 조정이 수행될 수 있도록, 임의의 측정된 출력(1114)이 제어기(1102)에 제공된다. 측정된 출력(1114)은 측정된 위치(1116), 측정된 속도(1118)(속력 및 헤딩을 포함함), 측정된 가속도(1120), 및 AV(100)의 센서에 의해 측정 가능한 다른 출력을 포함할 수 있다.
방해물(1110)에 관한 정보가 또한, 예를 들면, 카메라 또는 LiDAR 센서와 같은 센서에 의해 미리 검출되어, 예측 피드백 모듈(1122)에 제공될 수 있다. 예측 피드백 모듈(1122)은 이어서 정보를 제어기(1102)에 제공할 수 있고, 제어기(1102)는 이 정보를 사용하여 그에 따라 조정할 수 있다. 예를 들어, AV(100)의 센서가 언덕을 검출한("본") 경우, 이 정보는 상당한 감속을 방지하도록 적절한 시간에 스로틀에 관여할 준비를 하기 위해 제어기(1102)에 의해 사용될 수 있다.
도 12는 제어기(1102)의 입력, 출력, 및 컴포넌트의 블록 다이어그램(1200)을 도시한다. 제어기(1102)는 스로틀/브레이크 제어기(1204)의 동작에 영향을 미치는 속력 프로파일러(1202)를 갖는다. 예를 들어, 속력 프로파일러(1202)는, 예를 들면, 제어기(1102)에 의해 수신되고 속력 프로파일러(1202)에 의해 프로세싱되는 피드백에 따라 스로틀/브레이크(1206)를 사용하여 가속에 관여하거나 감속에 관여하도록 스로틀/브레이크 제어기(1204)에 명령할 수 있다.
제어기(1102)는 또한 조향 제어기(1210)의 동작에 영향을 미치는 측방향 추적 제어기(1208)를 갖는다. 예를 들어, 측방향 추적 제어기(1208)는, 예를 들면, 제어기(1102)에 의해 수신되고 측방향 추적 제어기(1208)에 의해 프로세싱되는 피드백에 따라 조향각 액추에이터(1212)의 위치를 조정하도록 조향 제어기(1210)에 명령할 수 있다.
제어기(1102)는 스로틀/브레이크(1206) 및 조향각 액추에이터(1212)를 제어하는 방법을 결정하는 데 사용되는 여러 입력을 수신한다. 계획 모듈(404)은, 예를 들어, AV(100)가 동작을 시작할 때 헤딩을 선택하기 위해 그리고 AV(100)가 교차로에 도달할 때 어느 도로 세그먼트를 횡단할지를 결정하기 위해, 제어기(1102)에 의해 사용되는 정보를 제공한다. 로컬화 모듈(408)은, 예를 들어, 스로틀/브레이크(1206) 및 조향각 액추에이터(1212)가 제어되고 있는 방식에 기초하여 예상되는 위치에 AV(100)가 있는지를 제어기(1102)가 결정할 수 있도록, AV(100)의 현재 위치를 기술하는 정보를 제어기(1102)에 제공한다. 제어기(1102)는 또한 다른 입력(1214)으로부터의 정보, 예를 들면, 데이터베이스, 컴퓨터 네트워크 등으로부터 수신된 정보를 수신할 수 있다.
교차 스택 평가
자율 주행 차량(AV)을 동작시키는 데 사용 가능한 시스템(400) - AV 아키텍처(400)라고도 지칭됨 - 은 도 13에 도시된 바와 같이 수정될 수 있다. AV를 동작시키는 데 사용 가능한 시스템(1300) - 시스템(1300)의 일 부분이 도 13에 도시됨 - 은 2개 이상의 상이한 자율 주행 차량 동작 서브시스템(S)(1310a, 1310b)을 포함하고, 2개 이상의 상이한 AV 동작 서브시스템의 각각의 AV 동작 서브시스템(예를 들면, 1310a)은 2개 이상의 상이한 AV 동작 서브시스템의 다른 AV 동작 서브시스템(예를 들면, 1310b)과 리던던트이다(예를 들어, 인지 모듈(402), 로컬화 모듈(408), 계획 모듈(404), 제어 모듈(406) 또는 이들 모듈 중 적어도 2개의 조합(예를 들면, 파이프라인)의 리던던트 버전임). 여기서, 2개의 상이한 AV 동작 서브시스템(1310a, 1310b)은 각각이 동작 엔벨로프(operating envelope)의 공통/공유 영역에서 AV를 독립적으로 동작시킬 수 있기 때문에 서로 리던던트이다.
예를 들어, 서로 통합되는 모듈들이 AV 동작의 적어도 하나의 공통 양상을 처리할 때, 부분적 리던던시/오버랩(partial redundancy/overlap)이 적용 가능하다. 그러한 경우에, 2개 이상의 상이한 AV 동작 서브시스템 중 적어도 하나의 AV 동작 서브시스템은 2개 이상의 상이한 AV 동작 서브시스템 중 적어도 하나의 다른 AV 동작 서브시스템의 AV 동작 솔루션과 리던던트하지 않는 추가적인 AV 동작 솔루션을 제공하도록 구성된다. 여기서, 2개의 서브시스템 중 어느 하나 또는 둘 모두는, 리던던트 동작 양상에 추가하여, 다른 서브시스템에 의해 제공되는 기능성과 리던던트하지 않는 기능성을 제공할 수 있다.
서로 통합되는 모듈들이, 다른 임무 없이, 완전 리던던트(entirely redundant) 모듈일 때 전체 오버랩(full overlap)이 적용 가능하다. 그러한 경우에, 2개 이상의 상이한 AV 동작 서브시스템 중 적어도 하나의 AV 동작 서브시스템은 2개 이상의 상이한 AV 동작 서브시스템 중 적어도 하나의 다른 AV 동작 서브시스템의 AV 동작 솔루션과 리던던트한 AV 동작 솔루션만을 제공하도록 구성된다.
일부 구현예에서, 상이한 AV 동작 서브시스템(1310a, 1310b)은 AV 동작 서브시스템(1310a, 1310b)의 각자의 기능을 수행하는 하나 이상의 소프트웨어 알고리즘으로서 구현될 수 있다. 일부 구현예에서, 상이한 AV 동작 서브시스템(1310a, 1310b)은 AV 동작 서브시스템(1310a, 1310b)의 각자의 기능을 수행하는 집적 회로로서 구현될 수 있다.
추가적으로, 시스템(1300)은 각자의 연결(1317a, 1317b)을 통해 2개 이상의 상이한 AV 동작 서브시스템(1310a, 1310b)과 결합된 출력 메디에이터(A)(1340)를 포함한다. 일부 구현예에서, 출력 메디에이터(1340)는 출력 메디에이터(1340)의 기능을 수행하는 하나 이상의 소프트웨어 알고리즘으로서 구현될 수 있다. 일부 구현예에서, 출력 메디에이터(1340)는 출력 메디에이터(1340)의 기능을 수행하는 하나 이상의 집적 회로로서 구현될 수 있다. 출력 메디에이터(1340)는 2개 이상의 상이한 AV 동작 서브시스템(1310a, 1310b)으로부터의 AV 동작 출력을 관리하도록 구성된다. 특히, 출력 메디에이터(1340)는 다른 출력보다 하나의 출력을 선택하는 AV 동작 아비터(arbiter)로서 구현될 수 있다. 일반적으로, 출력 메디에이터가 2개 이상의 리던던트 AV 동작 서브시스템의 AV 동작 출력들 중에서 "우승(winning)" AV 동작 출력을 선택하기 위한 여러 방법이 있다.
예를 들어, 출력 메디에이터는 "대체 리던던시(substitution redundancy)"에 따라 동작될 수 있다. 2개의 리던던트 AV 동작 서브시스템의 경우, 2개의 리던던트 AV 동작 서브시스템의 고장 모드가 독립적일 때, "1oo2(1-out-of-2)" 가정에 기초하여, 이러한 아비터 기술이 적용될 수 있다. 여기서, 출력 메디에이터는 2개의 리던던트 AV 동작 서브시스템 중 여전히 작동 중인 AV 동작 서브시스템으로부터의 AV 동작 출력을 선택한다. 양쪽 리던던트 AV 동작 서브시스템으로부터의 AV 동작 출력이 이용 가능한 경우, 출력 메디에이터는 2개의 출력 중 하나를 선택해야 한다. 그렇지만, 2개의 AV 동작 출력은 서로 아주 상이할 수 있다. 일부 경우에, 출력 메디에이터는 미리 결정된 기준에 기초하여 적절한 AV 동작 출력을 선택할 수 있도록 "권위적(authoritative)" 아비터로서 구성될 수 있다. 다른 경우에, 출력 메디에이터는 "벤치 워밍(bench-warming)" 접근법을 사용하여 선택을 수행하는 사소한 아비터(trivial arbiter)로서 구성될 수 있다. 여기서, 2개의 리던던트 AV 동작 서브시스템 중 하나는 지정된 백업이며, 따라서 그의 출력은, 주 AV 동작 서브시스템(prime AV operations subsystem)이 고장나지 않는 한, 무시된다. 이러한 이유로, 벤치 워밍 접근법은 백업 AV 동작 서브시스템을 활용할 수 없다.
다른 예로서, 출력 메디에이터는 다중 리던던트(multiple-redundant) AV 동작 서브시스템에서의 "다수결 리던던시(majority redundancy)"에 따라 동작될 수 있다. 예를 들어, 3개의 리던던트 AV 동작 서브시스템에서, AV 동작 출력을 획득하기 위해 사용된 알고리즘/모델이 올바른 것으로 간주될 때, 그의 HW 및/또는 SW 구현이 3개의 리던던트 AV 동작 서브시스템 중 하나에서 장애가 있을 수 있는 동안, "삼중 리던던시(triple-redundancy)" 가정에 기초하여 이러한 아비터 기술이 적용될 수 있다. 여기서, 출력 메디에이터는 3개의 리던던트 AV 동작 서브시스템 중 2개의 AV 동작 서브시스템으로부터 출력된 AV 동작을 선택한다(또는 동등하게, 다른 2개의 AV 동작 출력과 상이한 AV 동작 출력을 드롭시킨다). 이 접근법의 경우, 출력 메디에이터는 사소한 아비터로서 구성될 수 있다. 이 접근법이 장애 검출의 한 형태를 제공할 수 있지만, 예를 들면, 이 접근법이 3개의 리던던트 AV 동작 서브시스템 중에서 알고리즘/모델의 HW 및/또는 SW 구현이 장애가 있는 AV 동작 서브시스템을 식별할 수 있지만, 다수결 리던던시 접근법이 반드시 고장 허용(failure tolerance)을 증가시키는 것은 아니다.
또 다른 예로서, N > 3개의 리던던트 AV 동작 서브시스템에 대해, 각각의 AV 동작 서브시스템이 상이한 모델을 사용할 때, 출력 메디에이터는 "모빙 리던던시(mobbing redundancy)"에 따라 동작될 수 있다. 여기서, 출력 메디에이터는 가장 많은 수의 AV 동작 서브시스템 간에 공통적인 AV 동작 출력을 우승 AV 동작 출력으로서 선택할 것이다. 다시 한 번 말하지만, 이 접근법을 사용할 때, 출력 메디에이터는 사소한 아비터로서 구성될 수 있다. 그렇지만, 일부 경우에, 반드시 AV 동작 출력이 "가장 올바르기" 때문인 것이 아니라 AV 동작 서브시스템의 서브세트에 의해 사용되는 상이한 모델들이 높은 상관관계를 갖기(highly correlated) 때문에, AV 동작 출력은 AV 동작 서브시스템의 서브세트 간에 공통적이다. 그러한 경우에, "소수 의견(minority report)"은 올바른 것, 즉 AV 동작 서브시스템의 서브세트보다 작은 다수의 AV 동작 서브시스템에 의해 생성된 AV 동작 출력일 수 있다.
도 13을 참조하면, "상승효과적 리던던시(synergistic redundancy)"라는 다른 리던던시 접근법이 아래에서 설명된 예에서 사용될 것이다. 상승효과적 리던던시 접근법은 개선된 성능 및 안정성을 갖는 고도로 리던던트한(highly redundant) 아키텍처를 생성하는 데 사용될 수 있다. 상승효과적 리던던시의 접근법이 인지 및 의사 결정을 위한 복잡한 알고리즘에 적용될 수 있음이 보여질 것이다. 상승효과적 리던던시는 대부분의 엔지니어링 문제에 적용될 수 있으며, 예를 들면, 특정 엔지니어링 문제가 제안 메커니즘 및 스코어링 메커니즘을 포함하는 문제 해결 알고리즘으로서 역할할 때 적용될 수 있다. 예를 들어, 아래의 표 1은, 예를 들면, AV 아키텍처(400)의 계획 모듈(404)에 의해 수행되는 바와 같은, 계획 - 도 9 및 도 10을 또한 참조 -, 및, 예를 들면, AV 아키텍처(400)의 인지 모듈(402)에 의해 수행되는 바와 같은, 인지 - 도 5 내지 도 8을 또한 참조 - 가 동일한 제안 메커니즘 및 스코어링 메커니즘 패턴에 적합하다는 것을 보여준다.
[표 1]
Figure pct00001
표 1에 요약된 정보의 구조는, 도 13에 예시된 바와 같이, 2개 이상의 상이한 AV 동작 서브시스템(1310a, 1310b) 각각이 제안 측면에 관련된 하나 이상의 상이한 컴포넌트, 및 스코어링 측면에 관련된 하나 이상의 상이한 컴포넌트를 갖도록 구현되어 있기 때문에, AV를 동작시키기 위한 시스템(1300)에서 상승효과적 리던던시 접근법이 적용될 수 있다는 것을 제안한다.
도 13은 2개 이상의 상이한 AV 동작 서브시스템(1310a, 1310b)의 각각의 AV 동작 서브시스템(1310a, 1310b)이 현재 입력 데이터에 기초하여 AV 동작에 대한 솔루션을 제안하도록 구성된 솔루션 제안기(SP)(1312a, 1312b), 및 하나 이상의 비용 평가에 기초하여 AV 동작에 대한 제안된 솔루션을 평가하도록 구성된 솔루션 스코어러(SS)(1314a, 1314b)를 포함한다는 것을 보여준다. 솔루션 제안기(1312a, 1312b)는 현재 입력 데이터를 수신하기 위해, 각자의 연결(1311a, 1311b)을 통해, 시스템(1300) 또는, AV 동작 서브시스템(1310a, 1310b)과 동일한 스택(또는 파이프라인)에서 "업스트림"에 배치되는, 다른 AV 동작 서브시스템의 대응하는 센서와 결합된다. 2개 이상의 상이한 AV 동작 서브시스템(1310a, 1310b) 중 적어도 하나의 AV 동작 서브시스템의 솔루션 스코어러(1314a, 1314b)는 2개 이상의 상이한 AV 동작 서브시스템(1310a, 1310b) 중 적어도 하나의 AV 동작 서브시스템의 솔루션 제안기(1312a, 1312b)로부터의 제안된 솔루션 둘 모두 및 2개 이상의 상이한 AV 동작 서브시스템(1310a, 1310b) 중 적어도 하나의 다른 AV 동작 서브시스템의 솔루션 제안기(1312b, 1312a)로부터의 제안된 솔루션 중 적어도 하나의 솔루션을 평가하도록 구성된다. 이러한 방식으로, AV 동작 서브시스템(1310a, 1310b)의 솔루션 스코어러(1314a, 1314b)와 자체 AV 동작 서브시스템(1310a, 1310b)의 솔루션 제안기(1312a, 1312b) 및 다른 AV 동작 서브시스템(1310b, 1310a)의 적어도 하나의 솔루션 제안기(1312b, 1312a) 사이의 정보 교환을 통해 상승효과적 리던던시가 가능하게 되는데, 그 이유는 솔루션 스코어러(1314a, 1314b)가 제안된 솔루션들 중 우승 솔루션을 선택하기 위해 제안된 솔루션들 둘 모두를 평가하기 때문이다. 예를 들면, 멀티 레인 버스(multi-lane bus)로서 구현되는 인트라-인터-스택 연결(intra-inter-stack connection)(1315)은 AV 동작 서브시스템(1310a, 1310b)의 솔루션 제안기(1312a, 1312b)를 동일한 AV 동작 서브시스템(1310a, 1310b)의 솔루션 스코어러(1314a, 1314b) 및 다른 AV 동작 서브시스템(1310b, 1310a)의 솔루션 스코어러(1314b, 1314a) 둘 모두와 결합시키도록 구성된다.
AV 동작 서브시스템(1310a, 1310b)의 솔루션 스코어러(1314a, 1314b)는 다음과 같은 방식으로 동작하도록 구성된다. AV 동작 서브시스템(1310a, 1310b)의 솔루션 스코어러(1314a, 1314b)는, 인트라-인터-스택 연결(1315)을 통해, 동일한 AV 동작 서브시스템(1310a, 1310b)의 솔루션 제안기(1312a, 1312b)로부터의 제안된 솔루션 - 로컬(또는 네이티브) 제안된 솔루션이라고도 지칭됨 -, 및 다른 AV 동작 서브시스템(1310b, 1310a)의 솔루션 제안기(1312b, 1312a)로부터의 다른 제안된 솔루션 - 원격(또는 비-네이티브 또는 크로스 플랫폼) 제안된 솔루션이라고도 지칭됨 - 을 수신한다. 교차 평가를 가능하게 하기 위해, 솔루션 스코어러(1314a, 1314b)는 원격으로 제안된 솔루션과 로컬로 제안된 솔루션 간에 어떤 변환/정규화(translation/normalization)를 수행한다. 이러한 방식으로, 솔루션 스코어러(1314a, 1314b)는 로컬 비용 함수(또는 메트릭)를 사용하여 로컬로 제안된 솔루션과 원격으로 제안된 솔루션 둘 모두를 평가할 수 있다. 예를 들어, 솔루션 스코어러(1314a, 1314b)는 로컬로 제안된 솔루션과 원격으로 제안된 솔루션 둘 모두에 로컬 비용 함수를 적용하여 그 각자의 비용을 결정한다. 마지막으로, 솔루션 스코어러(1314a, 1314b)는 로컬로 제안된 솔루션과 원격으로 제안된 솔루션 중에서 로컬 비용 함수에 기초하여 평가된 비용들 중 더 적은 비용을 갖는 것으로 선택한다. 현재 입력 데이터의 가능성을 최대화하는 제안된 모델(로컬로 또는 원격으로 생성됨)이 올바른 경우, 선택된 솔루션은 제안된 모델에 대응한다.
이러한 방식으로, 솔루션 스코어러(1314a)는 자신이 선택한 솔루션을, AV 동작 서브시스템(1310a)의 출력으로서, 연결(1317a)을 통해 출력 메디에이터(1340)에 제공한다. 또한, 솔루션 스코어러(1314b)는 자신이 선택한 솔루션을, AV 동작 서브시스템(1310b)의 출력으로서, 연결(1317b)을 통해 출력 메디에이터(1340)에 제공한다. 출력 메디에이터(1340)는 AV 동작 서브시스템(1310a)의 출력 또는 AV 동작 서브시스템(1310b)의 출력 중 어느 하나를 선택하기 위해, 다음 섹션에서 상세히 기술되는, 하나 이상의 선택 프로세스를 구현할 수 있다. 이러한 방식으로, 출력 메디에이터(1340)는, 출력 연결(1347)을 통해, 2개 이상의 리던던트 동작 서브시스템(1310a, 1310b)으로부터의 단일 출력을, 선택된 출력의 형태로, 시스템(1300)의 하나 이상의 "다운스트림" 모듈, 또는 시스템(1300)을 사용하는 AV의 하나 이상의 액추에이터에 제공한다.
도 14는 시스템(400)의 수정된 버전을 나타내는 시스템(1400)의 일 예를 도시하며, 수정은 인지 모듈(402)이 리던던트 인지 모듈(1410a, 1410b) 및 인지 출력 메디에이터(1440)로 대체되었다는 것이다. 여기서, 인지 모듈(1410a, 1410b)은 AV 동작 서브시스템(1310a, 1310b)과 같이 구현되었으며, 인지 출력 메디에이터(1440)는 출력 메디에이터(1340)와 같이 구현되었다. 리던던트 인지 모듈(1410a, 1410b)의 솔루션 제안기(솔루션 제안기(1312a, 1312b)와 같이 구현됨)에 의해 제안된 솔루션은, 예를 들어, 월드 뷰 제안을 포함한다. 본 명세서의 이전 섹션에서 언급된 바와 같이, 인지 서브시스템(1410a, 1410b)은 하나 이상의 센서(121), 예를 들면, LiDAR, RADAR, 가시, 적외선, 자외선 또는 다른 파장의 비디오/이미지 데이터, 초음파, TOF(time-of-flight) 깊이, 속력, 온도, 습도, 및/또는 강우 센서로부터, 그리고 데이터베이스(DB)(410)로부터 데이터를 수신할 수 있다. 리던던트 인지 모듈(1410a, 1410b)의 각자의 솔루션 제안기는, 예를 들어, 도 5 내지 도 8과 관련하여 위에서 기술된 바와 같이, 예를 들면, 상향식 인지(대상체 검출), 하향식 태스크 기반 주의, 사전 정보, 점유 그리드 등과 같은, 인지 제안 메커니즘에 기초하여 각자의 월드 뷰 제안을 생성할 수 있다. 리던던트 인지 모듈(1410a, 1410b)의 솔루션 제안기는, 예를 들어, AV의 대응하는 센서 서브세트로부터 수신된 현재 센서 신호로부터의 정보에 기초하여 그 각자의 월드 뷰 제안을 생성할 수 있다. 추가적으로, 리던던트 인지 모듈(1410a, 1410b)의 각자의 솔루션 스코어러(솔루션 스코어러(1314a, 1314b)와 같이 구현됨)는 하나 이상의 비용 평가에 기초하여, 예를 들면, 센서 모델로부터의 가능성의 계산 등과 같은, 각자의 인지 비용 함수의 평가에 기초하여 월드 뷰 제안을 평가할 수 있다. 상승효과적 리던던시를 구현하기 위해, 각각의 인지 모듈(1410a, 1410b)의 솔루션 스코어러는 인지 모듈(1410a, 1410b)의 솔루션 제안기에 의해 생성된 적어도 하나의 월드 뷰 제안 및 다른 인지 모듈(1410b, 1410a)의 솔루션 제안기로부터 인트라-인터-스택 연결(1415)을 통해 수신된 적어도 하나의 월드 뷰 제안을 평가하기 위해 각자의 인지 비용 함수를 사용한다. 인트라-인터-스택 연결(1415)이 인트라-인터-스택 연결(1315)과 같이 구현된다는 점에 유의한다. 그와 같이, 인지 모듈(1410a)의 솔루션 스코어러는 인지 모듈(1410a)의 솔루션 제안기로부터의 월드 뷰 제안과 인지 모듈(1410b)의 솔루션 제안기로부터의 월드 뷰 제안 중 하나를 선택하고 - 선택된 월드 뷰 제안은 제1 인지 비용 함수의 최소치에 대응함 -, 선택된 월드 뷰(1416a)를 인지 모듈(1410a)의 출력으로서 인지 출력 메디에이터(1440)에 제공한다. 또한, 인지 모듈(1410b)의 솔루션 스코어러는 인지 모듈(1410b)의 솔루션 제안기로부터의 월드 뷰 제안과 인지 모듈(1410a)의 솔루션 제안기로부터의 월드 뷰 제안 중 하나를 선택하고 - 선택된 월드 뷰 제안은 제1 인지 비용 함수와 상이한 제2 인지 비용 함수의 최소치에 대응함 -, 선택된 월드 뷰(1416b)를 인지 모듈(1410b)의 출력으로서 인지 출력 메디에이터(1440)에 제공한다. 이러한 방식으로, 월드 뷰 제안은, 예를 들면, 최적화 동안 국부 최소치(local minimum)로의 수렴으로 인해, 다른 인지 모듈(1410b, 1410a)이 상이한 초기 조건을 사용하기 때문에, 또는 다른 인지 모듈(1410b, 1410a)이, 정확히 동일한 초기 조건을 사용하더라도, 상이한 월드 뷰 형성 접근법을 사용하기 때문에, 인지 모듈(1410a, 1410b)에서의 비-최적 솔루션에 연계되는 것을 방지한다.
더욱이, 인지 출력 메디에이터(1440)는 2개의 월드 뷰(1416a, 1416b) 중 하나를 선택하고 이를 다운스트림으로 계획 모듈(404) 및 로컬화 모듈(408)에 제공하며 여기서 이는, 제각기, 루트(414) 및 AV 위치(418)를 결정하는 데 사용될 것이다.
도 15는 시스템(400)의 수정된 버전을 나타내는 시스템(1500)의 일 예를 도시하며, 수정은 계획 모듈(404)이 리던던트 계획 모듈(1510a, 1510b) 및 계획 출력 메디에이터(1540)로 대체되었다는 것이다. 여기서, 계획 모듈(1510a, 1510b)은 AV 동작 서브시스템(1310a, 1310b)과 같이 구현되었으며, 계획 출력 메디에이터(1540)는 출력 메디에이터(1340)와 같이 구현되었다. 리던던트 계획 모듈의 솔루션 제안기(솔루션 제안기(1312a, 1312b)와 같이 구현됨)에 의해 제안된 솔루션은, 예를 들어, 루트 제안을 포함한다. 도 9 및 도 10과 관련하여 위에서 언급된 바와 같이, 루트 제안 - 후보 루트라고도 지칭됨 - 은, 예를 들면, 샘플링 기반 방법 및/또는 최적화 기반 방법을 사용하여, 환경의 물리학 및 현재 위치(418)(로컬화 모듈(408)에 의해 제공됨)에 대한 운전 규칙에 따라 AV 및 다른 AV의 거동을 추론함으로써 결정될 수 있다. 리던던트 계획 모듈(1510a, 1510b)의 각자의 솔루션 제안기는, 예를 들면, 랜덤 샘플링, MPC, 딥 러닝, 미리 정의된 프리미티브 등과 같은, 계획 제안 메커니즘에 기초하여 루트 제안을 생성할 수 있다. 리던던트 계획 모듈(1510a, 1510b)의 솔루션 제안기는, 예를 들어, AV의 인지 모듈(402)로부터 수신된 현재 월드 뷰(416)로부터의 정보, AV의 위치(418), 목적지(412) 및 데이터베이스(DB)(410)로부터의 다른 데이터에 기초하여 그 각자의 솔루션 제안을 생성할 수 있다. 추가적으로, 리던던트 계획 모듈(1510a, 1510b)의 각자의 솔루션 스코어러(솔루션 스코어러(1314a, 1314b)와 같이 구현됨)는 하나 이상의 비용 평가에 기초하여, 예를 들면, 궤적 길이, 안전성, 편의 등에 기초한 궤적 스코어링과 같은, 각자의 계획 비용 함수의 비용 함수 평가를 사용하여 루트 제안을 평가할 수 있다. 상승효과적 리던던시를 구현하기 위해, 각각의 계획 모듈(1510a, 1510b)의 솔루션 스코어러는 계획 모듈(1510a, 1510b)의 솔루션 제안기에 의해 생성된 적어도 하나의 루트 제안 및 다른 계획 모듈(1510b, 1510a)의 솔루션 제안기로부터 인트라-인터-스택 연결(1515)을 통해 수신된 적어도 하나의 루트 제안을 평가한다. 인트라-인터-스택 연결(1515)이 인트라-인터-스택 연결(1315)과 같이 구현된다는 점에 유의한다. 그와 같이, 계획 모듈(1510a)의 솔루션 스코어러는 계획 모듈(1510a)의 솔루션 제안기로부터의 루트 제안과 계획 모듈(1510b)의 솔루션 제안기로부터의 루트 제안 중 하나를 선택하고 - 선택된 루트 제안은 제1 계획 비용 함수의 최소치에 대응함 -, 선택된 루트(1514a)를 계획 모듈(1510a)의 출력으로서 계획 출력 메디에이터(1540)에 제공한다. 또한, 계획 모듈(1510b)의 솔루션 스코어러는 계획 모듈(1510b)의 솔루션 제안기로부터의 루트 제안과 계획 모듈(1510a)의 솔루션 제안기로부터의 루트 제안 중 하나를 선택하고 - 선택된 루트 제안은 제1 계획 비용 함수와 상이한 제2 계획 비용 함수의 최소치에 대응함 -, 선택된 루트(1514b)를 계획 모듈(1510b)의 출력으로서 계획 출력 메디에이터(1540)에 제공한다. 이러한 방식으로, 루트 제안은, 예를 들면, 최적화 동안 국부 최소치로의 수렴으로 인해, 다른 계획 모듈(1510b, 1510a)이 상이한 초기 조건을 사용하기 때문에, 또는 다른 계획 모듈(1510b, 1510a)이, 정확히 동일한 초기 조건을 사용하더라도, 상이한 루트 형성 접근법을 사용하기 때문에, 계획 모듈(1510a, 1510b)에서의 비-최적 솔루션에 연계되는 것을 방지한다.
더욱이, 계획 출력 메디에이터(1540)는 2개의 루트(1514a, 1514b) 중 하나를 선택하고 이를 다운스트림으로 제어기 모듈(406)에 제공하며 여기서 이는 조향 액추에이터(420a), 스로틀 액추에이터(420b), 및/또는 브레이크 액추에이터(420c)를 작동시키기 위한 제어 신호를 결정하는 데 사용될 것이다.
이러한 예가 단일 동작 레벨에서 사용되고 있는 상이한 AV 동작 서브시스템(1310a, 1310b 등)에 대응한다는 점에 유의한다. 일부 구현예에서, 2개 이상의 동작 파이프라인 - 스택이라고도 지칭됨 - 에 대해 상승효과적 리던던시가 구현될 수 있으며, 각각의 파이프라인은 다수의 동작 레벨, 예를 들면, 인지에 대응하는 제1 동작 레벨 및 이에 뒤이은 계획에 대응하는 제2 동작 레벨을 포함한다. 파이프라인에서의 동작 레벨이 파이프라인의 스테이지라고도 지칭된다는 점에 유의한다.
AV를 동작시키는 데 사용 가능한 시스템(1600) - 시스템(1600)의 일 부분이 도 16에 도시됨 - 은 2개 이상의 동작 파이프라인(1602a, 1602b)을 포함하고, 각각의 동작 파이프라인은 2개 이상의 레벨(1604a, 1604b)을 포함한다. 시스템(1600)에서 하나 이상의 레벨에서의 교차 평가로 상승효과적 리던던시가 구현될 수 있다. 아래에서 상세히 기술되는 바와 같이, AV 동작 서브시스템(1310a, 1310b)과 같이 구성된 AV 동작 서브시스템은 2개 이상의 동작 파이프라인(1602a, 1602b) 각각의 다양한 동작 스테이지(1604a, 1604b)에서 사용되며, 따라서 파이프라인(1602a, 1602b)의 각각의 스테이지(1604a, 1604b)는 스테이지(1604a, 1604b)에서의 적어도 하나의 솔루션 제안기로부터의 제안된 솔루션 및 다른 파이프라인(1602b, 1602a)의 동일한 스테이지(1604a, 1604b)로부터의 제안된 솔루션을 평가하도록 구성된 적어도 하나의 솔루션 스코어러를 포함한다. 추가적으로, 시스템(1600)은 2개 이상의 동작 파이프라인(1602a, 1602b) 각각의 마지막 스테이지에 연결된 출력 메디에이터(1640)를 포함한다.
도 16에 도시된 시스템(1600)의 예에서, 동작 스테이지(1602a)의 제1 파이프라인은 제1 AV 동작 서브시스템(1610a)으로서 구현된 제1 스테이지(1604a) 및 제2 AV 동작 서브시스템(1620a)으로서 구현된 제2 스테이지(1604b)를 포함한다. 동작 스테이지(1602b)의 제2 파이프라인은 다른 제1 AV 동작 서브시스템(1610b)으로서 구현된 제1 스테이지(1604a) 및 다른 제2 AV 동작 서브시스템(1620b)으로서 구현된 제2 스테이지(1604b)를 포함한다. 일부 구현예에서, 제2 파이프라인(1602b)의 제1 AV 동작 서브시스템(1610b) 및 제2 AV 동작 서브시스템(1620b)이 전력 공급 장치를 공유한다는 점에 유의한다. 일부 구현예에서, 제2 파이프라인(1602b)의 제1 AV 동작 서브시스템(1610b) 및 제2 AV 동작 서브시스템(1620b)은 그 자신의 각자의 전력 공급장치를 갖는다. 더욱이, 제1 파이프라인(1602a)의 제2 AV 동작 서브시스템(1620a)은 인트라-스택 연결(intra-stack connection)(1621a)을 통해 제1 파이프라인(1602a)의 제1 AV 동작 서브시스템(1610a)과 통신하고, 엔드-스택 연결(end-stack connection)(1627a)을 통해 출력 메디에이터(1640)와 통신하는 반면, 제2 파이프라인(1602b)의 제2 AV 동작 서브시스템(1620b)은 다른 인트라-스택 연결(1621b)을 통해 제2 파이프라인(1602b)의 제1 AV 동작 서브시스템(1610b)과 통신하고, 다른 엔드-스택 연결(1627b)을 통해 출력 메디에이터(1640)와 통신한다. 추가적으로, 아래에서 기술되는 바와 같이, 제1 파이프라인(1602a)의 제1 AV 동작 서브시스템(1610a)과 제2 파이프라인(1602b)의 제1 AV 동작 서브시스템(1610b)은 제1 인트라-인터-스택 연결(1615)을 통해 서로 통신하고, 또한 제1 파이프라인(1602a)의 제2 AV 동작 서브시스템(1620a)과 제2 파이프라인(1602b)의 제2 AV 동작 서브시스템(1620b)은 제2 인트라-인터-스택 연결(1625)을 통해 서로 통신한다.
제1 파이프라인(1602a)의 제1 AV 동작 서브시스템(1610a)은 솔루션 제안기(1612a) 및 솔루션 스코어러(1614a)를 포함한다. 제1 파이프라인(1602a)의 제1 AV 동작 서브시스템(1610a)의 솔루션 제안기(1612a)는 제1 파이프라인(1602a)의 제1 AV 동작 서브시스템(1610a)에 이용 가능한 제1 입력 데이터를 사용하여 제1 스테이지 솔루션을 제안하도록 구성된다. 제2 파이프라인(1602b)의 제1 AV 동작 서브시스템(1610b)은 다른 솔루션 제안기(1612b) 및 다른 솔루션 스코어러(1614b)를 포함한다. 제2 파이프라인(1602b)의 제1 AV 동작 서브시스템(1610b)의 다른 솔루션 제안기(1612b)는 제2 파이프라인(1602b)의 제1 AV 동작 서브시스템(1610b)에 이용 가능한 제2 입력 데이터를 사용하여 대안적인 제1 스테이지 솔루션을 제안하도록 구성된다.
제1 파이프라인(1602a)의 제1 AV 동작 서브시스템(1610a)의 솔루션 스코어러(1614a)는 제1 파이프라인(1602a)의 제1 AV 동작 서브시스템(1610a)의 솔루션 제안기(1612a)로부터의 제1 스테이지 솔루션 및 제2 파이프라인(1602b)의 제1 AV 동작 서브시스템(1610b)의 다른 솔루션 제안기(1612b)로부터의 대안적인 제1 스테이지 솔루션을 평가하도록 구성된다. 제1 파이프라인(1602a)의 제1 AV 동작 서브시스템(1610a)의 솔루션 스코어러(1614a)는, 각각의 제1 스테이지 솔루션 및 대응하는 대안적인 제1 스테이지 솔루션에 대해, 제1 스테이지 솔루션 또는 대안적인 제1 스테이지 솔루션 중 어느 하나로 구성되는 제1 파이프라인(1602a)의 제1 스테이지 출력을, 제1 파이프라인(1602a)의 제2 AV 동작 서브시스템(1620a)에, 제공하도록 구성된다. 제2 파이프라인(1602b)의 제1 AV 동작 서브시스템(1610b)의 솔루션 스코어러(1614b)는 제1 파이프라인(1602a)의 제1 AV 동작 서브시스템(1610a)의 솔루션 제안기(1612a)로부터의 제1 스테이지 솔루션 및 제2 파이프라인(1602b)의 제1 AV 동작 서브시스템(1610b)의 다른 솔루션 제안기(1612b)로부터의 대안적인 제1 스테이지 솔루션을 평가하도록 구성된다. 제2 파이프라인(1602b)의 제1 AV 동작 서브시스템(1610b)의 솔루션 스코어러(1614b)는, 각각의 제1 스테이지 솔루션 및 대응하는 대안적인 제1 스테이지 솔루션에 대해, 제1 스테이지 솔루션 또는 대안적인 제1 스테이지 솔루션 중 어느 하나로 구성되는 제2 파이프라인(1602b)의 제1 스테이지 출력을, 제2 파이프라인(1602b)의 제2 AV 동작 서브시스템(1620b)에, 제공하도록 구성된다.
제1 파이프라인(1602a)의 제2 AV 동작 서브시스템(1620a)은 솔루션 제안기(1622a) 및 솔루션 스코어러(1624a)를 포함한다. 제1 파이프라인(1602a)의 제2 AV 동작 서브시스템(1620a)의 솔루션 제안기(1622a)는 제1 파이프라인(1602a)의 제1 AV 동작 서브시스템(1610a)의 솔루션 스코어러(1614a)로부터의 제1 파이프라인(1602a)의 제1 스테이지 출력을 사용하여 제2 스테이지 솔루션을 제안하도록 구성된다. 제2 파이프라인(1602b)의 제2 AV 동작 서브시스템(1620b)은 다른 솔루션 제안기(1622b) 및 다른 솔루션 스코어러(1624b)를 포함한다. 제2 파이프라인(1602b)의 제2 AV 동작 서브시스템(1620b)의 다른 솔루션 제안기(1622b)는 제2 파이프라인(1602b)의 제1 AV 동작 서브시스템(1610b)의 솔루션 스코어러(1614b)로부터의 제2 파이프라인(1602b)의 제1 스테이지 출력을 사용하여 대안적인 제2 스테이지 솔루션을 제안하도록 구성된다.
제1 파이프라인(1602a)의 제2 AV 동작 서브시스템(1620a)의 솔루션 스코어러(1624a)는 제1 파이프라인(1602a)의 제2 AV 동작 서브시스템(1620a)의 솔루션 제안기(1622a)로부터의 제2 스테이지 솔루션 및 제2 파이프라인(1602b)의 제2 AV 동작 서브시스템(1620b)의 다른 솔루션 제안기(1622b)로부터의 대안적인 제2 스테이지 솔루션을 평가하도록 구성된다. 제1 파이프라인(1602a)의 AV 동작 서브시스템(1620a)의 솔루션 스코어러(1624a)는, 각각의 제2 스테이지 솔루션 및 대응하는 대안적인 제2 스테이지 솔루션에 대해, 제2 스테이지 솔루션 또는 대안적인 제2 스테이지 솔루션 중 어느 하나로 구성되는 제1 파이프라인(1602a)의 제2 스테이지 출력을, 출력 메디에이터(1640)에, 제공하도록 구성된다. 제2 파이프라인(1602b)의 제2 AV 동작 서브시스템(1620b)의 솔루션 스코어러(1624b)는 제1 파이프라인(1602a)의 제2 AV 동작 서브시스템(1620a)의 솔루션 제안기(1622a)로부터의 제2 스테이지 솔루션 및 제2 파이프라인(1602b)의 제2 AV 동작 서브시스템(1620b)의 다른 솔루션 제안기(1622b)로부터의 대안적인 제2 스테이지 솔루션을 평가하도록 구성된다. 제2 파이프라인(1602b)의 제2 AV 동작 서브시스템(1620b)의 솔루션 스코어러(1624b)는, 각각의 제2 스테이지 솔루션 및 대응하는 대안적인 제2 스테이지 솔루션에 대해, 제2 스테이지 솔루션 또는 대안적인 제2 스테이지 솔루션 중 어느 하나로 구성되는 제2 파이프라인(1602b)의 제2 스테이지 출력을, 출력 메디에이터(1640)에, 제공하도록 구성된다.
출력 메디에이터(1640)는 제1 파이프라인(1602a)의 제2 스테이지 출력 또는 제2 파이프라인(1602b)의 제2 스테이지 출력 중 어느 하나를 선택하기 위해, 다음 섹션에서 상세히 기술되는, 하나 이상의 선택 프로세스를 구현할 수 있다. 이러한 방식으로, 출력 메디에이터(1640)는, 출력 연결(1647)을 통해, 2개 이상의 리던던트 파이프라인(1602a, 1602b)으로부터의 단일 출력을, 선택된 출력의 형태로, 시스템(1600)의 하나 이상의 "다운스트림" 모듈, 또는 시스템(1600)을 사용하는 AV의 하나 이상의 액추에이터에 제공한다.
예를 들면, 제1 AV 동작 서브시스템(1610a, 1610b)으로서 또는 제2 AV 동작 서브시스템(1620a, 1620b)으로서 구현되는, 동작 엔벨로프의 한 영역을 공유하는 AV 모듈로부터의 중간 솔루션 제안의 교차 스택 평가를 구현하는 시스템(1600)은, AV 동작 동안, 더 높은 고장 허용, 및 멀티 레벨 AV 동작 스택/파이프라인에서의 잠재적으로 개선된 솔루션을 보장한다. 이러한 이점은 아래에서 기술되는 예에 기초하여 명백해질 것이다.
도 17은 시스템(400)의 수정된 버전을 나타내는 시스템(1700)의 일 예를 도시하며, 수정은 인지 모듈(402)로서 구현된 제1 스테이지와 계획 모듈(404)로서 구현된 제2 스테이지를 갖는 2-스테이지 파이프라인이 2개의 리던던트 2-스테이지 파이프라인 및 출력 메디에이터(1740)로 대체되었다는 것이다. 제1 2-스테이지 파이프라인은 제1 인지 모듈(1710a)로서 구현된 제1 스테이지와 제1 계획 모듈(1720a)로서 구현된 제2 스테이지를 가지며, 제2 2-스테이지 파이프라인은 제2 인지 모듈(1710b)로서 구현된 제1 스테이지와 제2 계획 모듈(1720b)로서 구현된 제2 스테이지를 갖는다.
여기서, 인지 모듈(1710a 및 1710b)은 제1 파이프라인(1602a)의 AV 동작 서브시스템(1610a) 및 제2 파이프라인(1602b)의 AV 동작 서브시스템(1610b)과 같이 구현된다. 인지 모듈(1710a 및 1710b)의 동작은 도 14와 관련하여 위에서 기술된 인지 모듈(1410a, 1410b)의 동작과 유사하다. 예를 들어, 인지 모듈(1710a, 1710b)의 솔루션 제안기(솔루션 제안기(1612a, 1612b)와 같이 구현됨)에 의해 제안된 솔루션은 월드 뷰 제안을 포함한다. 인지 모듈(1710a, 1710b)의 솔루션 제안기는, 예를 들어, 시스템(1700)과 연관된 대응하는 센서(121) 서브세트로부터 수신된 현재 센서 신호로부터의 정보에 기초하여 그 각자의 월드 뷰 제안을 생성할 수 있다. 추가적으로, 인지 모듈(1710a, 1710b)의 각자의 솔루션 스코어러(솔루션 스코어러(1614a, 1614b)와 같이 구현됨)는 하나 이상의 비용 평가에 기초하여, 예를 들면, 각자의 인지 비용 함수의 평가에 기초하여 월드 뷰 제안을 평가할 수 있다. 상승효과적 리던던시를 구현하기 위해, 각각의 인지 모듈(1710a, 1710b)의 솔루션 스코어러는 인지 모듈(1710a, 1710b)의 솔루션 제안기에 의해 생성된 적어도 하나의 월드 뷰 제안 및 다른 인지 모듈(1710b, 1710a)의 솔루션 제안기로부터 인트라-인터-스택 연결(1715)을 통해 수신된 적어도 하나의 월드 뷰 제안을 평가한다. 이러한 방식으로, 제1 인지 모듈(1710a)의 솔루션 스코어러는 제1 인지 모듈(1710a)의 솔루션 제안기로부터의 월드 뷰 제안과 제2 인지 모듈(1710b)의 솔루션 제안기로부터의 월드 뷰 제안 중 하나를 선택하고 - 선택된 월드 뷰 제안은 제1 인지 비용 함수의 최소치에 대응함 -, 선택된 월드 뷰(1716a)를 제1 인지 모듈(1710a)의 출력으로서, 제1 파이프라인의 다운스트림으로, 제1 계획 모듈(1720a)에 제공한다. 또한, 제2 인지 모듈(1710b)의 솔루션 스코어러는 제2 인지 모듈(1710b)의 솔루션 제안기로부터의 월드 뷰 제안과 제1 인지 모듈(1710a)의 솔루션 제안기로부터의 월드 뷰 제안 중 하나를 선택하고 - 선택된 월드 뷰 제안은 제1 인지 비용 함수와 상이한 제2 인지 비용 함수의 최소치에 대응함 -, 선택된 월드 뷰(1716b)를 제2 인지 모듈(1710b)의 출력으로서, 제2 파이프라인의 다운스트림으로, 제2 계획 모듈(1720b)에 제공한다.
더욱이, 계획 모듈(1720a, 1720b)은 제1 파이프라인(1602a)의 AV 동작 서브시스템(1620a) 및 제2 파이프라인(1602b)의 AV 동작 서브시스템(1620b)과 같이 구현되는 반면, 출력 메디에이터(1740)는 출력 메디에이터(1640)와 같이 구현된다. 계획 모듈(1720a 및 1720b) 및 출력 메디에이터(1740)의 동작은 도 15와 관련하여 위에서 기술된 계획 모듈(1510a, 1510b) 및 계획 출력 메디에이터(1540)의 동작과 유사하다. 예를 들어, 계획 모듈(1720a, 1720b)의 솔루션 제안기(솔루션 제안기(1622a, 1622b)와 같이 구현됨)에 의해 제안된 솔루션은 루트 제안을 포함한다. 제1 계획 모듈(1720a)의 솔루션 제안기는 제1 인지 모듈(1710a)에 의해 출력된 월드 뷰(1716a)에 기초하여 그의 루트 제안을 생성하고, 제2 계획 모듈(1720b)의 솔루션 제안기는 제2 인지 모듈(1710b)에 의해 출력된 대안적인 월드 뷰(1716b)에 기초하여 그의 루트 제안을 생성하는 반면, 둘 모두는 목적지(412), 로컬화 모듈(408)로부터 수신된 AV 위치(418), 및 추가로 데이터베이스(DB)(410)로부터 수신된 정보에 기초하여 그 각자의 루트 제안을 생성할 수 있다. 추가적으로, 계획 모듈(1720a, 1720b)의 각자의 솔루션 스코어러(솔루션 스코어러(1624a, 1624b)와 같이 구현됨)는 하나 이상의 비용 평가에 기초하여, 예를 들면, 각자의 계획 비용 함수의 평가에 기초하여 루트 제안을 평가할 수 있다. 상승효과적 리던던시를 구현하기 위해, 각각의 계획 모듈(1720a, 1720b)의 솔루션 스코어러는 계획 모듈(1720a, 1720b)의 솔루션 제안기에 의해 생성된 적어도 하나의 루트 제안 및 다른 계획 모듈(1720b, 1720a)의 솔루션 제안기로부터 인트라-인터-스택 연결(1725)을 통해 수신된 적어도 하나의 루트 제안을 평가한다. 인트라-인터-스택 연결(1715, 1725)이 인트라-인터-스택 연결(1615, 1625)과 같이 구현된다는 점에 유의한다. 이러한 방식으로, 제1 계획 모듈(1720a)의 솔루션 스코어러는 제1 계획 모듈(1720a)의 솔루션 제안기로부터의 루트 제안과 제2 계획 모듈(1720b)의 솔루션 제안기로부터의 루트 제안 중 하나를 선택하고 - 선택된 루트 제안은 제1 계획 비용 함수의 최소치에 대응함 -, 선택된 루트(1714a)를 제1 파이프라인의 계획 스테이지 출력으로서 출력 메디에이터(1740)에 제공한다. 또한, 제2 계획 모듈(1720b)의 솔루션 스코어러는 제2 계획 모듈(1720b)의 솔루션 제안기로부터의 루트 제안과 제1 계획 모듈(1720a)의 솔루션 제안기로부터의 루트 제안 중 하나를 선택하고 - 선택된 루트 제안은 제1 계획 비용 함수와 상이한 제2 계획 비용 함수의 최소치에 대응함 -, 선택된 루트(1714b)를 제2 파이프라인의 계획 스테이지 출력으로서 출력 메디에이터(1740)에 제공한다. 차례로, 출력 메디에이터(1740)는 2개의 루트(1714a, 1714b) 중 하나를 선택하고 이를 다운스트림으로 제어기 모듈(406)에 제공하며 여기서 이는 조향 액추에이터(420a), 스로틀 액추에이터(420b), 및 브레이크 액추에이터(420c)를 작동시키기 위한 제어 신호를 결정하는 데 사용될 것이다.
도 17에 예시된 시스템(1700)의 경우에 도시된 바와 같이, 리던던트 파이프라인에 의해 생성된 월드 뷰 제안의 교차 평가는 인지 스테이지에서 구현될 수 있으며, 리던던트 파이프라인에 의해 생성된 루트 제안의 교차 평가는 계획 스테이지에서 구현될 수 있다. 그렇지만, 리던던트 파이프라인에 의해 생성된 루트 제안에 대한 교차 평가를 계획 스테이지에서 구현하는 일 없이, 리던던트 파이프라인에 의해 생성된 월드 뷰 제안에 대한 교차 평가가 인지 스테이지에서 구현될 수 있다는 점에 유의한다. 일부 구현예에서, 이것은 한 쌍의 인트라-모듈 연결 - 하나의 인트라-모듈 연결은 제1 계획 모듈(1720a)의 루트 제안기와 루트 스코어러를 연결시키고, 다른 인트라-모듈 연결은 제2 계획 모듈(1720b)의 루트 제안기와 루트 스코어러를 연결시킴 - 로서 기능하도록 자동으로 재구성될 수 있는 인트라-인터-스택 연결(1725)을 사용하여 달성될 수 있다. 리던던트 파이프라인에 의해 생성된 루트 제안에 대한 계획 스테이지에서의 교차 평가가 한 쌍의 인트라-모듈 연결을 인트라-인터-스택 연결(1725)로서 기능하도록 자동으로 재구성함으로써 복원될 수 있다는 점에 유의한다. 더욱이, 리던던트 파이프라인에 의해 생성된 월드 뷰 제안에 대한 교차 평가를 인지 스테이지에서 구현하는 일 없이, 리던던트 파이프라인에 의해 생성된 루트 제안에 대한 교차 평가가 계획 스테이지에서 구현될 수 있다는 점에 유의한다. 일부 구현예에서, 이것은 한 쌍의 인트라-모듈 연결 - 하나의 인트라-모듈 연결은 제1 인지 모듈(1710a)의 월드 뷰 제안기와 월드 뷰 스코어러를 연결시키고, 다른 인트라-모듈 연결은 제2 인지 모듈(1710b)의 월드 뷰 제안기와 월드 뷰 스코어러를 연결시킴 - 로서 기능하도록 자동으로 재구성될 수 있는 인트라-인터-스택 연결(1715)을 사용하여 달성될 수 있다. 리던던트 파이프라인에 의해 생성된 월드 뷰 제안에 대한 인지 스테이지에서의 교차 평가가 한 쌍의 인트라-모듈 연결을 인트라-인터-스택 연결(1715)로서 기능하도록 자동으로 재구성함으로써 복원될 수 있다는 점에 유의한다. 일부 상황에서, 월드 뷰 제안의 교차 평가와 루트 제안의 교차 평가 둘 모두를 드롭시킬 필요가 있을 수 있다. 표준 1oo2 대체 리던던시에 대응하는 이러한 상황은, 위에서 기술된 바와 같이, 인트라-인터-스택 연결(1715, 1725) 둘 모두를 재구성하는 것 및 권위적 출력 메디에이터(1740)를 사용하는 것에 의해 달성될 수 있다.
도 18은 시스템(400)의 수정된 버전을 나타내는 시스템(1800)의 일 예를 도시하며, 수정은 계획 모듈(404)로서 구현된 제1 스테이지와 제어기 모듈(406)로서 구현된 제2 스테이지를 갖는 2-스테이지 파이프라인이 2개의 리던던트 2-스테이지 파이프라인 및 출력 메디에이터(1840)로 대체되었다는 것이다. 제1 2-스테이지 파이프라인은 제1 계획 모듈(1720a)로서 구현된 제1 스테이지와 제1 제어기 모듈(1810a)로서 구현된 제2 스테이지를 가지며, 제2 2-스테이지 파이프라인은 제2 계획 모듈(1720b)로서 구현된 제1 스테이지와 제2 제어기 모듈(1810b)로서 구현된 제2 스테이지를 갖는다.
여기서, 계획 모듈(1720a, 1720b)은 제1 파이프라인(1602a)의 AV 동작 서브시스템(1610a) 및 제2 파이프라인(1602b)의 AV 동작 서브시스템(1610b)과 같이 구현된다. 계획 모듈(1720a 및 1720b)의 동작은 도 15와 관련하여 위에서 기술된 계획 모듈(1510a, 1510b)의 동작과 유사하다. 예를 들어, 계획 모듈(1720a, 1720b)의 솔루션 제안기(솔루션 제안기(1612a, 1612b)와 같이 구현됨)에 의해 제안된 솔루션은 루트 제안을 포함한다. 계획 모듈(1720a, 1720b)의 솔루션 제안기는 인지 모듈(402)에 의해 출력된 월드 뷰(416), 로컬화 모듈(408)로부터 수신된 AV 위치(418), 목적지(412), 및 추가로 데이터베이스(DB)(410)로부터 수신된 정보에 기초하여 그 각자의 루트 제안을 생성한다. 추가적으로, 계획 모듈(1720a, 1720b)의 각자의 솔루션 스코어러(솔루션 스코어러(1614a, 1614b)와 같이 구현됨)는 하나 이상의 비용 평가에 기초하여, 예를 들면, 각자의 계획 비용 함수의 평가에 기초하여 루트 제안을 평가할 수 있다. 상승효과적 리던던시를 구현하기 위해, 각각의 계획 모듈(1720a, 1720b)의 솔루션 스코어러는 계획 모듈(1720a, 1720b)의 솔루션 제안기에 의해 생성된 적어도 하나의 루트 제안 및 다른 계획 모듈(1720b, 1720a)의 솔루션 제안기로부터 인트라-인터-스택 연결(1725)을 통해 수신된 적어도 하나의 루트 제안을 평가한다. 이러한 방식으로, 제1 계획 모듈(1720a)의 솔루션 스코어러는 제1 계획 모듈(1720a)의 솔루션 제안기로부터의 루트 제안과 제2 계획 모듈(1720b)의 솔루션 제안기로부터의 루트 제안 중 하나를 선택하고 - 선택된 루트 제안은 제1 계획 비용 함수의 최소치에 대응함 -, 선택된 루트(1814a)를 제1 계획 모듈(1720a)의 출력으로서, 제1 파이프라인의 다운스트림으로, 제1 제어기 모듈(1810a)에 제공한다. 또한, 제2 계획 모듈(1720b)의 솔루션 스코어러는 제2 계획 모듈(1720b)의 솔루션 제안기로부터의 루트 제안과 제1 계획 모듈(1720a)의 솔루션 제안기로부터의 루트 제안 중 하나를 선택하고 - 선택된 루트 제안은 제1 계획 비용 함수와 상이한 제2 계획 비용 함수의 최소치에 대응함 -, 선택된 루트(1814b)를 제2 계획 모듈(1720b)의 출력으로서, 제2 파이프라인의 다운스트림으로, 제2 제어기 모듈(1810b)에 제공한다.
더욱이, 제어기 모듈(1810a, 1810b)은 제1 파이프라인(1602a)의 AV 동작 서브시스템(1620a) 및 제2 파이프라인(1602b)의 AV 동작 서브시스템(1620b)과 같이 구현되는 반면, 출력 메디에이터(1840)는 출력 메디에이터(1640)와 같이 구현된다. 여기서, 제어기 모듈(1810a, 1810b)의 솔루션 제안기(솔루션 제안기(1622a, 1622b)와 같이 구현됨)에 의해 제안된 솔루션은 제어 신호 제안을 포함한다. 제1 제어기 모듈(1810a)의 솔루션 제안기는 제1 계획 모듈(1720a)에 의해 출력된 루트(1814a)에 기초하여 그의 제어 신호 제안을 생성하고, 제2 제어기 모듈(1810b)의 솔루션 제안기는 제2 계획 모듈(1720b)에 의해 출력된 대안적인 루트(1814b)에 기초하여 그의 제어 신호 제안을 생성하는 반면, 둘 모두는 로컬화 모듈(408)로부터 수신된 AV 위치(418)에 기초하여 그 각자의 제어 신호 제안을 생성할 수 있다. 추가적으로, 제어기 모듈(1810a, 1810b)의 각자의 솔루션 스코어러(솔루션 스코어러(1624a, 1624b)와 같이 구현됨)는 하나 이상의 비용 평가에 기초하여, 예를 들면, 각자의 제어 비용 함수의 평가에 기초하여 제어 신호 제안을 평가할 수 있다. 상승효과적 리던던시를 구현하기 위해, 각각의 제어기 모듈(1810a, 1810b)의 솔루션 스코어러는 제어기 모듈(1810a, 1810b)의 솔루션 제안기에 의해 생성된 적어도 하나의 제어 신호 제안 및 다른 제어기 모듈(1810b, 1810a)의 솔루션 제안기로부터 인트라-인터-스택 연결(1815)을 통해 수신된 적어도 하나의 제어 신호 제안을 평가한다. 인트라-인터-스택 연결(1815)이 인트라-인터-스택 연결(1625)과 같이 구현된다는 점에 유의한다. 그와 같이, 제1 제어기 모듈(1810a)의 솔루션 스코어러는 제1 제어기 모듈(1810a)의 솔루션 제안기로부터의 제어 신호 제안과 제2 제어기 모듈(1810b)의 솔루션 제안기로부터의 제어 신호 제안 중 하나를 선택하고 - 선택된 제어 신호 제안은 제1 제어 비용 함수의 최소치에 대응함 -, 선택된 제어 신호를 제1 파이프라인의 제어기 스테이지 출력으로서 출력 메디에이터(1840)에 제공한다. 또한, 제어기 모듈(1810b)의 솔루션 스코어러는 제2 제어기 모듈(1810b)의 솔루션 제안기로부터의 제어 신호 제안과 제1 제어기 모듈(1810a)의 솔루션 제안기로부터의 제어 신호 제안 중 하나를 선택하고 - 선택된 제어 신호 제안은 제1 제어 비용 함수와 상이한 제2 제어 비용 함수의 최소치에 대응함 -, 선택된 제어 신호를 제2 파이프라인의 제어기 스테이지 출력으로서 출력 메디에이터(1840)에 제공한다. 이러한 방식으로, 제어 신호 제안은, 예를 들면, 최적화 동안 국부 최소치로의 수렴으로 인해, 다른 제어 모듈(1810b, 1810a)이 상이한 초기 조건을 사용하기 때문에, 또는 다른 제어 모듈(1810b, 1810a)이, 정확히 동일한 초기 조건을 사용하더라도, 상이한 제어 신호 형성 접근법을 사용하기 때문에, 제어 모듈(1810a, 1810b)에서의 비-최적 솔루션에 연계되는 것을 방지한다.
더욱이, 출력 메디에이터(1840)는 2개의 제어 신호 중 하나를 선택하고, 조향 액추에이터(420a), 스로틀 액추에이터(420b), 및/또는 브레이크 액추에이터(420c)를 작동시키기 위해, 이를 다운스트림으로 제공한다.
도 19는 시스템(400)의 수정된 버전을 나타내는 시스템(1900)의 일 예를 도시하며, 수정은 로컬화 모듈(408)로서 구현된 제1 스테이지와 제어기 모듈(406)로서 구현된 제2 스테이지를 갖는 2-스테이지 파이프라인이 2개의 리던던트 2-스테이지 파이프라인 및 출력 메디에이터(1840)로 대체되었다는 것이다. 제1 2-스테이지 파이프라인은 제1 로컬화 모듈(1910a)로서 구현된 제1 스테이지와 제1 제어기 모듈(1810a)로서 구현된 제2 스테이지를 가지며, 제2 2-스테이지 파이프라인은 제2 로컬화 모듈(1910b)로서 구현된 제1 스테이지와 제2 제어기 모듈(1810b)로서 구현된 제2 스테이지를 갖는다.
여기서, 로컬화 모듈(1910a, 1910b)은 제1 파이프라인(1602a)의 AV 동작 서브시스템(1610a) 및 제2 파이프라인(1602b)의 AV 동작 서브시스템(1610b)과 같이 구현된다. 여기서, 로컬화 모듈(1910a, 1910b)의 솔루션 제안기(솔루션 제안기(1612a, 1612b)와 같이 구현됨)에 의해 제안된 솔루션은 AV 위치 제안을 포함한다. 로컬화 모듈(1910a, 1910b)의 솔루션 제안기는 시스템(1900)과 연관된 대응하는 센서(121) 서브세트로부터 수신된 현재 센서 신호로부터의 정보, 인지 모듈(402)에 의해 출력된 월드 뷰(416), 및 추가로 데이터베이스(DB)(410)로부터 수신된 정보에 기초하여 그 각자의 AV 위치 제안을 생성한다. AV 위치 제안이, 도로, 합법적/불법적 위치, 고도 등과 같은 알려진 인자에 의해 제약될 수 있다는 점에 유의한다. 추가적으로, 로컬화 모듈(1910a, 1910b)의 각자의 솔루션 스코어러(솔루션 스코어러(1614a, 1614b)와 같이 구현됨)는 하나 이상의 비용 평가에 기초하여, 예를 들면, 각자의 로컬화 비용 함수의 평가에 기초하여 AV 위치 제안을 평가할 수 있다. 상승효과적 리던던시를 구현하기 위해, 각각의 로컬화 모듈(1910a, 1910b)의 솔루션 스코어러는 로컬화 모듈(1910a, 1910b)의 솔루션 제안기에 의해 생성된 적어도 하나의 AV 위치 제안 및 다른 로컬화 모듈(1910b, 1910a)의 솔루션 제안기로부터 인트라-인터-스택 연결(1915)을 통해 수신된 적어도 하나의 AV 위치 제안을 평가한다. 인트라-인터-스택 연결(1915)이 인트라-인터-스택 연결(1615)과 같이 구현된다는 점에 유의한다. 그와 같이, 제1 로컬화 모듈(1910a)의 솔루션 스코어러는 제1 로컬화 모듈(1910a)의 솔루션 제안기로부터의 AV 위치 제안과 제2 로컬화 모듈(1910b)의 솔루션 제안기로부터의 AV 위치 제안 중 하나를 선택하고 - 선택된 AV 위치 제안은 제1 로컬화 비용 함수의 최소치에 대응함 -, 선택된 AV 위치(1918a)를 제1 로컬화 모듈(1910a)의 출력으로서, 제1 파이프라인의 다운스트림으로, 제1 제어기 모듈(1810a)에 제공한다. 또한, 제2 로컬화 모듈(1910b)의 솔루션 스코어러는 제2 로컬화 모듈(1910b)의 솔루션 제안기로부터의 AV 위치 제안과 제1 로컬화 모듈(1910a)의 솔루션 제안기로부터의 AV 위치 제안 중 하나를 선택하고 - 선택된 AV 위치 제안은 제1 로컬화 비용 함수와 상이한 제2 로컬화 비용 함수의 최소치에 대응함 -, 선택된 AV 위치(1918b)를 제2 로컬화 모듈(1910b)의 출력으로서, 제2 파이프라인의 다운스트림으로, 제2 제어기 모듈(1810b)에 제공한다. 이러한 방식으로, AV 위치 제안은, 예를 들면, 최적화 동안 국부 최소치로의 수렴으로 인해, 다른 로컬화 모듈(1910b, 1910a)이 상이한 초기 조건을 사용하기 때문에, 또는 다른 로컬화 모듈(1910b, 1910a)이, 정확히 동일한 초기 조건을 사용하더라도, 상이한 AV 위치 형성 접근법을 사용하기 때문에, 로컬화 모듈(1910a, 1910b)에서의 비-최적 솔루션에 연계되는 것을 방지한다.
게다가 도 19에 예시된 예에서, 제1 파이프라인의 제2 스테이지에 있는 제1 제어기 모듈(1810a) 및 제2 파이프라인의 제2 스테이지에 있는 제2 제어기 모듈(1810b)은, 제1 제어기 모듈(1810a)의 솔루션 제안기가 제1 로컬화 모듈(1910a)에 의해 출력된 AV 위치(1918a)에 기초하여 그의 제어 신호 제안을 생성하고, 제2 제어기 모듈(1810b)의 솔루션 제안기가 제2 로컬화 모듈(1910b)에 의해 출력된 대안적인 루트(1918b)에 기초하여 그의 제어 신호 제안을 생성하는 것을 제외하고는, 도 18과 관련하여 위에서 기술된 바와 같이 구현되고 동작된다. 게다가 도 19에 예시된 예에서, 출력 메디에이터(1840)는 도 18과 관련하여 위에서 기술된 바와 같이 구현되고 동작된다.
도 16과 관련하여 위에서 기술된 바와 같이, 제1 및 제2 리던던트 파이프라인(1602a, 1602b)은 각각 2개 이상의 스테이지(1604a, 1604b)를 포함할 수 있다. AV를 동작시키는 데 사용 가능한 시스템(2000) - 시스템(2000)의 일 부분이 도 20에 도시됨 - 은 2개의 동작 파이프라인(1602a, 1602b)을 포함하고, 각각의 동작 파이프라인은 3개의 스테이지(1604a, 1604b, 2004c)를 포함한다. 시스템(1600)은 2개의 동작 파이프라인(1602a, 1602b) 각각의 마지막 스테이지에 연결된 출력 메디에이터(1640)를 또한 포함한다. 상승효과적 리던던시는, 아래에서 기술되는 바와 같이, 시스템(2000)에서 3개의 스테이지 각각에서의 교차 평가로 구현될 수 있다.
여기서, 시스템(2000)의 제1 및 제2 스테이지(1604a, 1604b)는 시스템(1600)과 관련하여 위에서 기술된 바와 같이 구현되었다. 제1 파이프라인(1602a)의 제3 스테이지(2004c)는 제3 AV 동작 서브시스템(2030a)으로서 구현되었고, 제2 파이프라인(1602b)의 제3 스테이지(2004c)는 다른 제3 AV 동작 서브시스템(2030b)으로서 구현되었다. 일부 실시예에서, 제2 파이프라인(1602b)의 제1 AV 동작 서브시스템(1610b), 제2 AV 동작 서브시스템(1620b), 및 제3 AV 동작 서브시스템(2030b)이 전력 공급 장치를 공유한다는 점에 유의한다. 일부 실시예에서, 제2 파이프라인(1602b)의 제1 AV 동작 서브시스템(1610b), 제2 AV 동작 서브시스템(1620b), 및 제3 AV 동작 서브시스템(2030b)은 각각 그 자신의 전력 공급 장치를 갖는다. 더욱이, 제3 AV 동작 서브시스템(2030a)은 제1 파이프라인(1602a)의 인트라-스택 연결(1611a)을 통해 제1 AV 동작 서브시스템(1610a)과 통신하고, 다른 제3 AV 동작 서브시스템(2030b)은 제2 파이프라인(1602b)의 다른 인트라-스택 연결(1611b)을 통해 다른 제1 AV 동작 서브시스템(1610b)과 통신한다. 추가적으로, 아래에서 기술되는 바와 같이, 제1 파이프라인(1602a)의 제3 AV 동작 서브시스템(2030a)과 제2 파이프라인(1602b)의 제3 AV 동작 서브시스템(2030b)은 제3 인트라-인터-스택 연결(2035)을 통해 서로 통신한다.
제1 파이프라인(1602a)의 제3 AV 동작 서브시스템(2030a)은 솔루션 제안기(2032a) 및 솔루션 스코어러(2034a)를 포함한다. 제1 파이프라인(1602a)의 제3 AV 동작 서브시스템(2030a)의 솔루션 제안기(2032a)는 제1 파이프라인(1602a)의 제3 AV 동작 서브시스템(2030a)에 이용 가능한 제1 입력 데이터를 사용하여 제3 스테이지 솔루션을 제안하도록 구성된다. 제2 파이프라인(1602b)의 제3 AV 동작 서브시스템(2030b)은 다른 솔루션 제안기(2032b) 및 다른 솔루션 스코어러(2034b)를 포함한다. 제2 파이프라인(1602b)의 제3 AV 동작 서브시스템(2030b)의 다른 솔루션 제안기(2032b)는 제2 파이프라인(1602b)의 제3 AV 동작 서브시스템(2030b)에 이용 가능한 제2 입력 데이터를 사용하여 대안적인 제3 스테이지 솔루션을 제안하도록 구성된다.
제1 파이프라인(1602a)의 제3 AV 동작 서브시스템(2030a)의 솔루션 스코어러(2034a)는 제1 파이프라인(1602a)의 제3 AV 동작 서브시스템(2030a)의 솔루션 제안기(2032a)로부터의 제3 스테이지 솔루션 및 제2 파이프라인(1602b)의 제3 AV 동작 서브시스템(2030b)의 다른 솔루션 제안기(2032b)로부터의 대안적인 제1 스테이지 솔루션을 평가하도록 구성된다. 제1 파이프라인(1602a)의 제3 AV 동작 서브시스템(2030a)의 솔루션 스코어러(2034a)는, 각각의 제3 스테이지 솔루션 및 대응하는 대안적인 제3 스테이지 솔루션에 대해, 제3 스테이지 솔루션 또는 대안적인 제3 스테이지 솔루션 중 어느 하나로 구성되는 제1 파이프라인(1602a)의 제3 스테이지 출력을, 제1 파이프라인(1602a)의 제1 AV 동작 서브시스템(1610a)에, 제공하도록 구성된다. 제2 파이프라인(1602b)의 제3 AV 동작 서브시스템(2030b)의 솔루션 스코어러(2034b)는 제1 파이프라인(1602a)의 제3 AV 동작 서브시스템(2030a)의 솔루션 제안기(2032a)로부터의 제3 스테이지 솔루션 및 제2 파이프라인(1602b)의 제3 AV 동작 서브시스템(2030b)의 다른 솔루션 제안기(2032b)로부터의 대안적인 제3 스테이지 솔루션을 평가하도록 구성된다. 제2 파이프라인(1602b)의 제3 AV 동작 서브시스템(2030b)의 솔루션 스코어러(2034b)는, 각각의 제3 스테이지 솔루션 및 대응하는 대안적인 제3 스테이지 솔루션에 대해, 제3 스테이지 솔루션 또는 대안적인 제3 스테이지 솔루션 중 어느 하나로 구성되는 제2 파이프라인(1602b)의 제3 스테이지 출력을, 제2 파이프라인(1602b)의 제1 AV 동작 서브시스템(1610b)에, 제공하도록 구성된다.
제1 스테이지(1604a)는 제1 파이프라인(1602a)의 경우 제1 AV 동작 서브시스템(1610a)으로서, 그리고 제2 파이프라인(1602b)의 경우 다른 제1 AV 동작 서브시스템(1610b)으로서 구현되었다. 제1 파이프라인(1602a)의 제1 AV 동작 서브시스템(1610a) 및 제2 파이프라인(1602b)의 다른 제1 AV 동작 서브시스템(1610b)은, 제1 AV 동작 서브시스템(1610a)의 솔루션 제안기가 제3 AV 동작 서브시스템(2030a)으로부터 수신된 제1 파이프라인(1602a)의 제3 스테이지 출력에 기초하여 그의 솔루션 제안을 생성하고, 다른 제1 AV 동작 서브시스템(1610b)의 솔루션 제안기가 다른 제3 AV 동작 서브시스템(2030b)으로부터 수신된 제2 파이프라인(1602b)의 제3 스테이지 출력에 기초하여 그의 솔루션 제안을 생성하는 것을 제외하고는, 도 16과 관련하여 위에서 기술된 바와 같이 구현되고 동작되었다.
게다가 시스템(2000)의 경우, 제2 스테이지(1604b)는 제1 파이프라인(1602a)의 경우 제2 AV 동작 서브시스템(1620a)으로서, 그리고 제2 파이프라인(1602b)의 경우 다른 제2 AV 동작 서브시스템(1620b)으로서 구현되었다. 제1 파이프라인(1602a)의 제2 AV 동작 서브시스템(1620a) 및 제2 파이프라인(1602b)의 다른 제2 AV 동작 서브시스템(1620b)은 도 16과 관련하여 위에서 기술된 바와 같이 구현되고 동작되었다. 게다가 시스템(2000)의 경우, 출력 메디에이터(1640)는 도 16과 관련하여 위에서 기술된 바와 같이 구현되고 동작되었다.
시스템(2000)의 상승효과적 리던던시를 구현하기 위해 시스템(400)을 수정하는 다양한 방식이 아래에서 기술될 것이다.
도 21은 시스템(400)의 수정된 버전을 나타내는 시스템(2100)의 일 예를 도시하며, 하나의 수정은 인지 모듈(402)로서 구현된 시작 스테이지, 계획 모듈(406)로서 구현된 중간 스테이지, 및 제어 모듈(406)로서 구현된 마지막 스테이지를 갖는 3-스테이지 파이프라인이 제1 리던던트 3-스테이지 파이프라인 쌍 및 출력 메디에이터(1840)로 대체되었다는 것이다. 여기서, 제1 3-스테이지 파이프라인은 제1 인지 모듈(1710a)로서 구현된 시작 스테이지, 제1 계획 모듈(1720a)로서 구현된 중간 스테이지, 및 제1 제어 모듈(1810a)로서 구현된 마지막 스테이지를 갖는 반면, 제2 3-스테이지 파이프라인은 제2 인지 모듈(1710b)로서 구현된 시작 스테이지, 제2 계획 모듈(1720b)로서 구현된 중간 스테이지, 및 제2 제어 모듈(1810b)로서 구현된 마지막 스테이지를 갖는다.
시스템(2100)의 제1 리던던트 3-스테이지 파이프라인 쌍의 경우, 인지 모듈(1710a, 1710b)은 제1 파이프라인(1602a)의 AV 동작 서브시스템(2030a) 및 제2 파이프라인(1602b)의 AV 동작 서브시스템(2030b)과 같이 구현되었다. 도 17과 관련하여 위에서 기술된 바와 같이, 인지 모듈(1710a, 1710b)의 솔루션 제안기는, 예를 들어, 시스템(2100)과 연관된 대응하는 센서(121) 서브세트로부터 수신된 현재 센서 신호로부터의 정보에 기초하여 그 각자의 월드 뷰 제안을 생성한다. 상승효과적 리던던시를 구현하기 위해, 각각의 인지 모듈(1710a, 1710b)의 솔루션 스코어러는 인지 모듈(1710a, 1710b)의 솔루션 제안기에 의해 생성된 적어도 하나의 월드 뷰 제안 및 다른 인지 모듈(1710b, 1710a)의 솔루션 제안기로부터 인트라-인터-스택 연결(1715)을 통해 수신된 적어도 하나의 월드 뷰 제안을 평가하고, 이러한 2개의 월드 뷰 제안 중 인지 모듈(1710a, 1710b)에 대응하는 인지 비용 함수를 최소화하는 월드 뷰 제안을 선택하며, 선택된 제안을 월드 뷰(1716a, 1716b)로서, 각자의 파이프라인의 다운스트림으로, 계획 모듈(1720a, 1720b)에 출력한다.
게다가 시스템(2100)의 제1 리던던트 3-스테이지 파이프라인 쌍의 경우, 계획 모듈(1720a, 1720b)이 도 17과 관련하여 위에서 기술된 바와 같이 구현되고 동작되었다. 여기서, 계획 모듈(1720a, 1720b)의 솔루션 제안기는, 예를 들어, 각자의 인지 모듈(1710a, 1710b)로부터의 월드 뷰(1716a, 1716b)에 기초하여 그 각자의 루트 제안을 생성한다. 상승효과적 리던던시를 구현하기 위해, 각각의 계획 모듈(1720a, 1720b)의 솔루션 스코어러는 계획 모듈(1720a, 1720b)의 솔루션 제안기에 의해 생성된 적어도 하나의 루트 제안 및 다른 계획 모듈(1720b, 1720a)의 솔루션 제안기로부터 인트라-인터-스택 연결(1725)을 통해 수신된 적어도 하나의 루트 제안을 평가하고, 이러한 2개의 루트 제안 중 계획 모듈(1720a, 1720b)에 대응하는 계획 비용 함수를 최소화하는 루트 제안을 선택하며, 선택된 제안을 루트(2114a, 2114b)로서, 각자의 파이프라인의 다운스트림으로, 제어 모듈(1810a, 1810b)에 출력한다.
게다가, 시스템(2100)의 제1 리던던트 3-스테이지 파이프라인 쌍의 경우, 제어 모듈(1810a, 1810b) 및 출력 메디에이터(1840)는 도 18과 관련하여 위에서 기술된 바와 같이 구현되고 동작되었다. 여기서, 제어 모듈(1810a, 1810b)의 솔루션 제안기는, 예를 들어, 각자의 계획 모듈(1720a, 1720b)로부터의 루트(2114a, 2114b)에 기초하여 그 각자의 제어 신호 제안을 생성한다. 상승효과적 리던던시를 구현하기 위해, 각각의 제어 모듈(1810a, 1810b)의 솔루션 스코어러는 제어 모듈(1810a, 1810b)의 솔루션 제안기에 의해 생성된 적어도 하나의 제어 신호 제안 및 다른 제어 모듈(1810b, 1810a)의 솔루션 제안기로부터 인트라-인터-스택 연결(1815)을 통해 수신된 적어도 하나의 제어 신호 제안을 평가하고, 이러한 2개의 제어 신호 제안 중 제어 모듈(1810a, 1810b)에 대응하는 제어 비용 함수를 최소화하는 제어 신호 제안을 선택하며, 선택된 제안을 제어 신호로서 출력 메디에이터(1840)에 출력한다. 차례로, 출력 메디에이터(1840)는 제어 모듈(1810a, 1810b)에 의해 제공되는 2개의 제어 신호 중 하나를 선택하고, 조향 액추에이터(420a), 스로틀 액추에이터(420b), 및/또는 브레이크 액추에이터(420c)를 작동시키기 위해, 이를 다운스트림으로 제공한다.
시스템(2100)에 의해 구현되는 시스템(400)의 다른 수정은 인지 모듈(402)로서 구현된 시작 스테이지, 로컬화 모듈(408)로서 구현된 중간 스테이지, 및 제어 모듈(406)로서 구현된 마지막 스테이지를 갖는 3-스테이지 파이프라인이 제2 리던던트 3-스테이지 파이프라인 쌍 및 출력 메디에이터(1840)로 대체되었다는 것이다. 여기서, 제1 3-스테이지 파이프라인은 제1 인지 모듈(1710a)로서 구현된 시작 스테이지, 제1 로컬화 모듈(1910a)로서 구현된 중간 스테이지, 및 제1 제어 모듈(1810a)로서 구현된 마지막 스테이지를 갖는 반면, 제2 3-스테이지 파이프라인은 제2 인지 모듈(1710b)로서 구현된 시작 스테이지, 제2 로컬화 모듈(1910b)로서 구현된 중간 스테이지, 및 제2 제어 모듈(1810b)로서 구현된 마지막 스테이지를 갖는다.
시스템(2100)의 제2 리던던트 3-스테이지 파이프라인 쌍의 경우, 인지 모듈(1710a, 1710b)은, 각각의 인지 모듈(1710a, 1710b)이 선택된 제안을 월드 뷰(1716a, 1716b)로서, 각자의 파이프라인의 다운스트림으로, 로컬화 모듈(1910a, 1910b)에 출력하는 것을 제외하고는, 시스템(2100)의 제1 리던던트 3-스테이지 파이프라인 쌍과 관련하여 위에서 기술된 바와 같이 구현되고 동작된다.
게다가 시스템(2100)의 제2 리던던트 3-스테이지 파이프라인 쌍의 경우, 로컬화 모듈(1910a, 1910b)이 도 19와 관련하여 위에서 기술된 바와 같이 구현되고 동작되었다. 여기서, 로컬화 모듈(1910a, 1910b)의 솔루션 제안기는, 예를 들어, 각자의 인지 모듈(1710a, 1710b)로부터의 월드 뷰(1716a, 1716b)에 기초하여 그 각자의 AV 위치 제안을 생성한다. 상승효과적 리던던시를 구현하기 위해, 각각의 로컬화 모듈(1910a, 1910b)의 솔루션 스코어러는 로컬화 모듈(1910a, 1910b)의 솔루션 제안기에 의해 생성된 적어도 하나의 AV 위치 제안 및 다른 로컬화 모듈(1910b, 1910a)의 솔루션 제안기로부터 인트라-인터-스택 연결(1915)을 통해 수신된 적어도 하나의 AV 위치 제안을 평가하고, 이러한 2개의 AV 위치 제안 중 로컬화 모듈(1910a, 1910b)에 대응하는 로컬화 비용 함수를 최소화하는 AV 위치 제안을 선택하며, 선택된 제안을 AV 위치(2118a, 2118b)로서, 각자의 파이프라인의 다운스트림으로, 제어 모듈(1810a, 1810b)에 출력한다.
게다가 시스템(2100)의 제2 리던던트 3-스테이지 파이프라인 쌍의 경우, 제어 모듈(1810a, 1810b) 및 출력 메디에이터(1840)는 시스템(2100)의 제1 리던던트 3-스테이지 파이프라인 쌍과 관련하여 위에서 기술된 바와 같이 구현되고 동작된다.
시스템(2100)에 의해 구현되는 시스템(400)의 또 다른 수정은 인지 모듈(402)로서 구현된 시작 스테이지, 로컬화 모듈(408)로서 구현된 제1 중간 스테이지, 계획 모듈(404)로서 구현된 제2 중간 스테이지, 및 제어 모듈(406)로서 구현된 마지막 스테이지를 갖는 4-스테이지 파이프라인이 리던던트 4-스테이지 파이프라인 쌍 및 출력 메디에이터(1840)로 대체되었다는 것이다. 여기서, 제1 4-스테이지 파이프라인은 제1 인지 모듈(1710a)로서 구현된 시작 스테이지, 제1 로컬화 모듈(1910a)로서 구현된 제1 중간 스테이지, 제1 계획 모듈(1720a)로서 구현된 제2 중간 스테이지, 및 제1 제어 모듈(1810a)로서 구현된 마지막 스테이지를 갖는 반면, 제2 4-스테이지 파이프라인은 제2 인지 모듈(1710b)로서 구현된 시작 스테이지, 제2 로컬화 모듈(1910b)로서 구현된 제1 중간 스테이지, 제2 계획 모듈(1720b)로서 구현된 제2 중간 스테이지, 및 제2 제어 모듈(1810b)로서 구현된 마지막 스테이지를 갖는다.
시스템(2100)의 리던던트 4-스테이지 파이프라인 쌍의 경우, 인지 모듈(1710a, 1710b)은, 각각의 인지 모듈(1710a, 1710b)이 그의 선택된 제안을 월드 뷰(1716a, 1716b)로서, 각자의 파이프라인의 다운스트림으로, 로컬화 모듈(1910a, 1910b) 및 계획 모듈(1720a, 1720b)에 출력하는 것을 제외하고는, 시스템(2100)의 제1 및 제2 리던던트 3-스테이지 파이프라인 쌍 각각과 관련하여 위에서 기술된 바와 같이 구현된다. 또한 시스템(2100)의 리던던트 4-스테이지 파이프라인 쌍의 경우, 로컬화 모듈(1910a, 1910b)은, 각각의 로컬화 모듈(1910a, 1910b)이 그의 선택된 제안을 AV 위치(2118a, 2118b)로서, 각자의 파이프라인의 다운스트림으로, 제어 모듈(1810a, 1810b) 및 계획 모듈(1720a, 1720b)에 출력하는 것을 제외하고는, 시스템(2100)의 제2 리던던트 3-스테이지 파이프라인 쌍과 관련하여 위에서 기술된 바와 같이 구현되었다. 게다가, 시스템(2100)의 리던던트 4-스테이지 파이프라인 쌍의 경우, 계획 모듈(1720a, 1720b)은 시스템(2100)의 제1 리던던트 3-스테이지 파이프라인 쌍과 관련하여 위에서 기술된 바와 같이 구현된다. 게다가, 시스템(2100)의 리던던트 4-스테이지 파이프라인 쌍의 경우, 제어 모듈(1810a, 1810b) 및 출력 메디에이터(1840)는 시스템(2100)의 제1 리던던트 3-스테이지 파이프라인 쌍과 관련하여 위에서 기술된 바와 같이 구현된다. 시스템(2100)의 리던던트 4-스테이지 파이프라인 쌍은 도 22 및 도 23과 관련하여 아래에서 기술되는 프로세스(2200)를 사용하여 동작될 수 있다.
2210a에서, 제1 인지 모듈(1710a)은 AV의 제1 센서(121) 세트로부터 제1 센서 신호를 수신하고, 제1 센서 신호에 기초하여 제1 월드 뷰 제안을 생성한다. 2210b에서, 제2 인지 모듈(1710b)은 AV의 제2 센서(121) 세트로부터 제2 센서 신호를 수신하고, 제2 센서 신호에 기초하여 제2 월드 뷰 제안을 생성한다.
위에서 언급된 바와 같이, 제1 센서 세트는 제2 센서 세트와 상이할 수 있다. 예를 들어, 2개의 세트가 부분적으로 오버랩되며, 즉, 적어도 하나의 센서를 공통으로 가질 수 있다. 다른 예로서, 2개의 세트가 공통 센서를 갖지 않는다.
일부 구현예에서, 제1 센서(121) 세트로부터 수신된 제1 센서 신호는 제1 세트의 대응하는 센서에 의해 검출된 대상체의 하나 이상의 리스트를 포함하고, 제2 센서(121) 세트로부터 수신된 제2 센서 신호는 제2 세트의 대응하는 센서에 의해 검출된 대상체의 하나 이상의 리스트를 포함한다. 일부 구현예에서, 이러한 리스트는 인지 모듈에 의해 생성된다. 그와 같이, 제1 인지 모듈(1710a)에 의해 제1 월드 뷰 제안을 생성하는 것은 제1 세트의 대응하는 센서에 의해 검출된 대상체의 하나 이상의 제1 리스트를 생성하는 것을 포함할 수 있다. 그리고, 제2 인지 모듈(1710b)에 의해 제2 월드 뷰 제안을 생성하는 것은 제2 세트의 대응하는 센서에 의해 검출된 대상체의 하나 이상의 제2 리스트를 생성하는 것을 포함할 수 있다.
일부 구현예에서, 제1 월드 뷰 제안을 생성하는 것은 제1 인지 제안 메커니즘에 기초하여 제1 인지 모듈(1710a)에 의해 수행될 수 있다. 그리고, 제2 월드 뷰 제안을 생성하는 것은 제1 인지 제안 메커니즘과 상이한 제2 인지 제안 메커니즘에 기초하여 제2 인지 모듈(1710b)에 의해 수행될 수 있다. 다른 구현예에서, 제2 인지 모듈(1710b)은 제1 월드 뷰 제안과 상이하도록 제1 인지 제안 메커니즘에 기초하여 제2 월드 뷰 제안을 생성할 수 있다. 이러한 이유는 그 각자의 월드 뷰 제안을 생성하기 위해 제2 인지 모듈(1710b)에 의해 사용되는 제2 센서 신호가 제1 인지 모듈(1710a)에 의해 사용되는 제1 센서 신호와 상이하기 때문이다.
2220a에서, 제1 인지 모듈(1710a)은 제1 인지 비용 함수에 기초하여 제1 월드 뷰 제안과 제2 월드 뷰 제안 중 하나를 선택하고, 선택된 월드 뷰 제안을 제1 월드 뷰(1716a)로서 제1 로컬화 모듈(1910a)에 제공한다. 2220b에서, 제2 인지 모듈(1710b)은 제2 인지 비용 함수에 기초하여 제1 월드 뷰 제안과 제2 월드 뷰 제안 중 하나를 선택하고, 선택된 월드 뷰 제안을 제2 월드 뷰(1716b)로서 제2 로컬화 모듈(1910b)에 제공한다.
일부 구현예에서, 제1 로컬화 모듈(1910a) 및 제1 계획 모듈(1720a)에 제공되는 제1 월드 뷰(1716a)는 제1 센서 세트에 의해 검출된 하나 이상의 대상체의 제1 대상체 트랙을 포함할 수 있다. 또한, 제2 로컬화 모듈(1910b) 및 제2 계획 모듈(1720b)에 제공되는 제2 월드 뷰(1716b)는 제2 센서 세트에 의해 검출된 하나 이상의 대상체의 제2 대상체 트랙을 포함할 수 있다.
2230a에서, 제1 로컬화 모듈(1910a)은 제1 인지 모듈(1710a)로부터 제1 월드 뷰(1716a)를 수신하고, 제1 월드 뷰(1716a)에 기초하여 제1 AV 위치 제안을 생성한다. 2230b에서, 제2 로컬화 모듈(1910b)은 제2 인지 모듈(1710b)로부터 제2 월드 뷰(1716b)를 수신하고, 제2 월드 뷰(1716b)에 기초하여 제2 AV 위치 제안을 생성한다.
제1 로컬화 모듈(1910a)이 제1 센서(121) 세트로부터 제1 센서 신호의 적어도 일 부분을 수신할 수 있다는 점에 유의한다. 이러한 방식으로, 제1 AV 위치 제안을 생성하는 것은 제1 센서 신호와 제1 월드 뷰(1716a)의 조합에 기초하여 제1 로컬화 모듈(1910a)에 의해 수행된다. 또한, 제2 로컬화 모듈(1910b)이 제2 센서(121) 세트로부터 제2 센서 신호의 적어도 일 부분을 수신할 수 있다는 점에 유의한다. 이러한 방식으로, 제2 AV 위치 제안을 생성하는 것은 제2 센서 신호와 제2 월드 뷰(1716b)의 다른 조합에 기초하여 제2 로컬화 모듈(1910b)에 의해 수행된다. 예를 들어, 제1 및 제2 AV 위치 제안을 생성하기 위해, 제1 및 제2 로컬화 모듈(1910a, 1910b)은 맵 기반 로컬화, LiDAR 맵 기반 로컬화, RADAR 맵 기반 로컬화, 시각적 맵 기반 로컬화, 시각적 주행 거리 측정(visual odometry), 및 특징부 기반 로컬화를 포함한 하나 이상의 로컬화 알고리즘을 사용할 수 있다.
일부 구현예에서, 제1 AV 위치 제안을 생성하는 것은 제1 로컬화 알고리즘에 기초하여 제1 로컬화 모듈(1910a)에 의해 수행될 수 있다. 그리고, 제2 AV 위치 제안을 생성하는 것은 제1 로컬화 알고리즘과 상이한 제2 로컬화 알고리즘에 기초하여 제2 로컬화 모듈(1910b)에 의해 수행될 수 있다. 다른 구현예에서, 제2 로컬화 모듈(1910b)은 제1 로컬화 알고리즘을 사용하여 제2 AV 위치 제안을 생성하고 제1 AV 위치 제안과 상이한 제2 AV 위치 제안을 획득할 수 있다. 그러한 이유는 제1 로컬화 알고리즘에 대한 입력으로서 제2 로컬화 모듈(1910b)에 의해 사용되는 제2 센서 신호와 제2 월드 뷰(1716b)의 조합이 제1 로컬화 알고리즘에 대한 입력으로 제1 로컬화 모듈(1910a)에 의해 사용되는 제1 센서 신호와 제1 월드 뷰(1716a)의 조합과 상이하기 때문이다. 제1 로컬화 알고리즘을 상이한 입력에 적용하면 상이한 AV 위치 제안을 결과할 수 있다.
2240a에서, 제1 로컬화 모듈(1910a)은 제1 로컬화 비용 함수에 기초하여 제1 AV 위치 제안과 제2 AV 위치 제안 중 하나를 선택하고, 선택된 AV 위치 제안을 제1 AV 위치(2118a)로서 제1 계획 모듈(1720a)에 제공한다. 2240b에서, 제2 로컬화 모듈(1910b)은 제2 로컬화 비용 함수에 기초하여 제1 AV 위치 제안과 제2 AV 위치 제안 중 하나를 선택하고, 선택된 AV 위치 제안을 제2 AV 위치(2118b)로서 제2 계획 모듈(1720b)에 제공한다. 제1 계획 모듈(1720a) 및 제1 제어 모듈(1810a)에 제공되는 제1 AV 위치(2118a)가 AV의 현재 위치의 제1 추정치를 포함할 수 있고, 제2 계획 모듈(1720b) 및 제2 제어 모듈(1810b)에 제공되는 제2 AV 위치(2118b)가 AV의 현재 위치의 제2 추정치를 포함할 수 있다는 점에 유의한다.
2250a에서, 제1 계획 모듈(1720a)은 제1 로컬화 모듈(1910a)로부터 제1 AV 위치(2118a)를 수신하고, 제1 AV 위치(2118a)에 기초하여 제1 루트 제안을 생성한다. 2250b에서, 제2 계획 모듈(1720b)은 제2 로컬화 모듈(1910b)로부터 제2 AV 위치(2118b)를 수신하고, 제2 AV 위치(2118b)에 기초하여 제2 루트 제안을 생성한다.
제1 계획 모듈(1720a)이 제1 인지 모듈(1710a)로부터 제1 월드 뷰(1716a)를 수신할 수 있다는 점에 유의한다. 이러한 방식으로, 제1 루트 제안을 생성하는 것은 제1 AV 위치(2118a)와 제1 월드 뷰(1716a)의 조합에 기초하여 제1 계획 모듈(1720a)에 의해 수행된다. 또한, 제2 계획 모듈(1720b)이 제2 인지 모듈(1710b)로부터 제2 월드 뷰(1716b)를 수신할 수 있다는 점에 유의한다. 이러한 방식으로, 제2 루트 제안을 생성하는 것은 제2 AV 위치(2118b)와 제2 월드 뷰(1716b)의 다른 조합에 기초하여 제2 계획 모듈(1720b)에 의해 수행된다.
일부 구현예에서, 제1 루트 제안을 생성하는 것은 제1 계획 알고리즘에 기초하여 제1 계획 모듈(1720a)에 의해 수행될 수 있다. 그리고, 제2 루트 제안을 생성하는 것은 제1 계획 알고리즘과 상이한 제2 계획 알고리즘에 기초하여 제2 계획 모듈(1720b)에 의해 수행될 수 있다. 다른 구현예에서, 제2 계획 모듈(1720b)은 제1 계획 알고리즘을 사용하여 제2 루트 제안을 생성하고 제1 루트 제안과 상이한 제2 루트 제안을 획득할 수 있다. 그러한 이유는 제1 계획 알고리즘에 대한 입력으로서 제2 로컬화 모듈(1910b)에 의해 사용되는 제2 AV 위치(2118b)와 제2 월드 뷰(1716b)의 조합이 제1 계획 알고리즘에 대한 입력으로 제1 계획 모듈(1720a)에 의해 사용되는 제1 AV 위치(2118a)와 제1 월드 뷰(1716a)의 조합과 상이하기 때문이다. 제1 계획 알고리즘을 상이한 입력에 적용하면 상이한 루트 제안을 결과할 수 있다.
일부 구현예에서, 계획 모듈(1720a, 1720b)에 의해 루트 제안을 생성하는 것은 AV의 현재 위치와 AV의 목적지(412) 사이의 각자의 경로를 제안하는 것을 포함할 수 있다.
일부 구현예에서, 계획 모듈(1720a, 1720b)에 의해 루트 제안을 생성하는 것은 AV 및 하나 이상의 다른 차량의 거동을 추론하는 것을 포함할 수 있다. 일부 경우에, 검출된 대상체 리스트를 AV의 현재 위치와 연관된 운전 규칙과 비교함으로써 거동이 추론된다. 예를 들어, 자동차가 미국에서는 도로의 우측을 주행하고, 영국에서는 도로의 좌측을 주행하며, 도로의 법적 측면에 있을 것으로 예상된다. 다른 경우에, 검출된 대상체 리스트를 차량의 현재 위치와 연관된 운전 규칙에 의해 차량이 동작하도록 허용된 위치와 비교함으로써 거동이 추론된다. 예를 들어, 자동차는 인도에서, 도로를 벗어나(off road), 건물을 통해, 기타 등등으로 주행하도록 허용되지 않는다. 일부 경우에, 각각의 검출된 대상체에 대한 등속(constant velocity) 또는 등가속(constant acceleration) 모델을 통해 거동이 추론된다. 일부 구현예에서, 계획 모듈(1720a, 1720b)에 의해 루트 제안을 생성하는 것은 추론된 거동에 부합하고 하나 이상의 검출된 대상체를 피하는 각자의 경로를 제안하는 것을 포함할 수 있다.
2260a에서, 제1 계획 모듈(1720a)은 제1 계획 비용 함수에 기초하여 제1 루트 제안과 제2 루트 제안 중 하나를 선택하고, 선택된 루트 제안을 제1 루트(2114a)로서 제1 제어 모듈(1810a)에 제공한다. 2260b에서, 제2 계획 모듈(1720b)은 제2 계획 비용 함수에 기초하여 제1 루트 제안과 제2 루트 제안 중 하나를 선택하고, 선택된 루트 제안을 제2 루트(2114b)로서 제2 제어 모듈(1810b)에 제공한다.
일부 구현예에서, 제1 루트 제안과 제2 루트 제안 중 하나를 선택하는 것은 각자의 월드 뷰(1716a, 1716b) 및 거동 추론 모델에 기초하여 충돌 가능성을 평가하는 것을 포함할 수 있다.
2270a에서, 제1 제어 모듈(1810a)은 제1 계획 모듈(1720a)로부터 제1 루트(2114a)를 수신하고, 제1 루트(2114a)에 기초하여 제1 제어 신호 제안을 생성한다. 2270b에서, 제2 제어 모듈(1810b)은 제2 계획 모듈(1720b)로부터 제2 루트(2114b)를 수신하고, 제2 루트(2114b)에 기초하여 제2 제어 신호 제안을 생성한다.
제1 제어 모듈(1810a)이 제1 로컬화 모듈(1910a)로부터 제1 AV 위치(2118a)를 수신할 수 있다는 점에 유의한다. 이러한 방식으로, 제1 제어 신호 제안을 생성하는 것은 제1 AV 위치(2118a)와 제1 루트(2114a)의 조합에 기초하여 제1 제어 모듈(1810a)에 의해 수행된다. 또한, 제2 제어 모듈(1810b)이 제2 로컬화 모듈(1910b)로부터 제2 AV 위치(2118b)를 수신할 수 있다는 점에 유의한다. 이러한 방식으로, 제2 제어 신호 제안을 생성하는 것은 제2 AV 위치(2118b)와 제2 루트(1714b)의 다른 조합에 기초하여 제2 제어 모듈(1810b)에 의해 수행된다.
2280a에서, 제1 제어 모듈(1810a)은 제1 제어 비용 함수에 기초하여 제1 제어 신호 제안과 제2 제어 신호 제안 중 하나를 선택하고, 선택된 제어 신호 제안을 제1 제어 신호로서 출력 메디에이터(1840)에 제공한다. 2280b에서, 제2 제어 모듈(1810b)은 제2 제어 비용 함수에 기초하여 제1 제어 신호 제안과 제2 제어 신호 제안 중 하나를 선택하고, 선택된 제어 신호 제안을 제2 제어 신호로서 출력 메디에이터(1840)에 제공한다.
2290에서, 출력 메디에이터(1840)는 제1 제어 모듈(1810a)로부터의 제1 제어 신호 및 제2 제어 모듈(1810b)로부터의 제2 제어 신호를 수신하거나 그에 액세스한다. 여기서, 출력 메디에이터(1840)는 다음 섹션에서 상세히 기술되는 선택 절차를 사용함으로써 제1 제어 신호와 제2 제어 신호 중 하나를 선택한다. 이러한 방식으로, 출력 메디에이터(1840)는 선택된 제어 신호를 제어 신호로서 AV의 하나 이상의 액추에이터(예를 들면, 420a, 420b, 420c)에 제공한다. 출력 메디에이터(1840)가 선택된 제어 신호를 AV의 적절한 액추에이터에 전송하거나 그의 전송을 지시하는 방식은 다음 섹션에서 상세히 기술된다.
상승효과적 리던던시를 구현하는 시스템(1300, 1600 및 2000)의 예는 각자의 AV 동작 서브시스템(1310a, 1310b, 1610a, 1610b, 1620a, 1620b, 2030a, 2030b)의 각각의 스코어러(1314a, 1314b, 1614a, 1614b, 1624a, 1624b, 2034a, 2034b)가, 다른 AV 동작 서브시스템(1310b, 1310a, 1610b, 1610a, 1620b, 1620a, 2030b, 2030a)에 의해 제안된 솔루션의 우수성을 "확신"한다면, 그 솔루션을 채택할 수 있다는 것을 나타낸다. 위에서 기술된 바와 같이, "확신"은 자체 AV 동작 서브시스템의 제안기(1312a, 1312b, 1612a, 1612b, 1622a, 1622b, 2032a, 2032b)로부터 수신된 네이티브 솔루션과 나란히 다른 AV 동작 서브시스템의 제안기(1312b, 1312a, 1612b, 1612a, 1622b, 1622a, 2032b, 2032a)로부터 수신된 대안적인 솔루션에 대한 비용 함수 평가를 수행하는 것을 포함한다. 이러한 방식으로, 파이프라인의 동일한 스테이지에 있는 AV 동작 서브시스템 각각은 AV 동작 서브시스템이 서로의 솔루션 제안을 평가할 수 없는 경우보다 나은 성능을 보인다. 이것은 잠재적으로 더 높은 고장 허용을 가져온다.
일부 구현예에서, 파이프라인 쌍의 특정 스테이지에서 솔루션의 다양성을 증가시키는 것이 바람직하며, 이는 이 스테이지의 "창의성(creativity)"을 증가시키는 것과 동등하다. 예를 들어, AV 시스템 통합자(AV system integrator)는 N > 2개의 상이한 루트 제안(예를 들면, N = 4임)을 생성하고 이어서 평가하는 것에 기초하여 선택된 루트를 제어기 모듈에 제공하기를 원할 수 있다. 이 목표를 달성하는 리던던트 파이프라인의 다양한 예가 아래에서 기술된다.
도 24는 N개의 리던던트 파이프라인(PLA, PLB, PLC, PLD) 및 출력 메디에이터(A)를 사용하여 N개의 상이한 루트 제안을 생성하고 상승효과적으로 평가하는 목표를 달성하는 시스템(2400)을 도시한다. 여기서, 각각의 리던던트 파이프라인(PLA, PLB, PLC, PLD)은 각자의 인지 모듈(PA, PB, PC, PD)로서 구현된 제1 스테이지 및 각자의 계획 모듈(RA, RB, RC, RD)로서 구현된 제2 스테이지를 포함한다. 도 24에 예시된 예에서, 각각의 인지 모듈(PA, PB, PC, PD)은 각자의 솔루션 제안기(SPPA, SPPB, SPPC, SPPD) 및 각자의 솔루션 스코어러(SSPA, SSPB, SSPC, SSPD)를 포함한다. 그리고 각각의 계획 모듈(RA, RB, RC, RD)은 각자의 솔루션 제안기(SPRA, SPRB, SPRC, SPRD) 및 각자의 솔루션 스코어러(SSRA, SSRB, SSRC, SSRD)를 포함한다. 동일한 파이프라인(PLA, PLB, PLC, PLD) 내에서, 인지 모듈(PA, PB, PC, PD)의 솔루션 스코어러(SSPA, SSPB, SSPC, SSPD)가 각자의 인트라-스택 연결(CPR)을 통해 계획 모듈(RA, RB, RC, RD)의 솔루션 제안기(SPRA, SPRB, SPRC, SPRD)와 통신한다는 점에 유의한다. 또한 계획 모듈(RA, RB, RC, RD)의 솔루션 스코어러(SSRA, SSRB, SSRC, SSRD)가 각자의 엔드-스택 연결(CRA)을 통해 출력 메디에이터(A)와 통신한다는 점에 유의한다. 더욱이, 각각의 인지 모듈(Pj)의 솔루션 제안기(SPPj)는, 인트라-인터-스택 연결(CP)을 통해, 그가 속하는 인지 모듈(Pj)의 솔루션 스코어러(SSPj)와 통신하고 나머지 인지 모듈(Pk)의 각자의 솔루션 스코어러(SSPk≠j)와 통신한다(단, j, k ∈ {A, B, C, D}임). 예를 들어, 솔루션 제안기(SPPA)는 동일한 파이프라인(PLA) 내의 솔루션 스코어러(SSPA)와 통신하고, 리던던트 파이프라인(PLB, PLC 및 PLD)에, 제각기, 걸쳐 있는 솔루션 스코어러(SSPB, SSPC 및 SSPD) 각각과 통신한다. 기타 등등이다. 또한, 각각의 계획 모듈(Rj)의 솔루션 제안기(SPRj)는, 다른 인트라-인터-스택 연결(CR)을 통해, 그가 속하는 계획 모듈(Rj)의 솔루션 스코어러(SSRj)와 통신하고 나머지 계획 모듈(Rk)의 각자의 솔루션 스코어러(SSRk≠j)와 통신한다(단, j, k ∈ {A, B, C, D}임). 예를 들어, 솔루션 제안기(SPRA)는 동일한 파이프라인(PLA) 내의 솔루션 스코어러(SSRA)와 통신하고, 리던던트 파이프라인(PLB, PLC 및 PLD)에, 제각기, 걸쳐 있는 솔루션 스코어러(SSRB, SSRC 및 SSRD) 각각과 통신한다. 기타 등등이다. 인트라-인터-스택 연결(CP, CR)이, 예를 들면, 위에서 기술된 인트라-인터-스택 연결(1315, 1415, 1515, 1615, 1625, 1715, 1725, 1815, 1915, 2035 등)과 같이, 각자의 멀티 레인 버스로서 구현될 수 있다.
시스템(2400)의 인지 스테이지에서 다음과 같은 방식으로 상승효과적 리던던시가 구현될 수 있다. 각각의 인지 모듈(Pj)의 솔루션 제안기(SPPj)는 (도 24에 도시되지 않은) 시스템(2400)과 연관된 대응하는 센서 서브세트로부터의 이용 가능한 센서 신호에 기초하여 각자의 월드 뷰 제안을 생성한다. 각각의 인지 모듈(Pj)의 솔루션 스코어러(SSPj)는 인지 모듈(Pj)의 솔루션 제안기(SPPj)로부터 그리고 나머지 인지 모듈(Pk)의 솔루션 제안기(SPPk≠j)로부터 각자의 월드 뷰 제안을, 인트라-인터-스택 연결(CP)을 통해, 수신하고(단, j, k ∈ {A, B, C, D}임), 솔루션 스코어러(SSPj)와 연관된 인지 비용 함수를 사용함으로써 모든 수신된 제안을 평가한다. 예를 들어, 인지 모듈(PA)의 솔루션 스코어러(SSPA)는 제1 인지 비용 함수를 사용하여 솔루션 제안기(SPPA, SPPB, SPPC, SPPD)로부터 수신된 월드 뷰 제안을 평가하는 반면, 인지 모듈(PB)의 솔루션 스코어러(SSPB)는 제2 인지 비용 함수를 사용하여 솔루션 제안기(SPPA, SPPB, SPPC, SPPD)로부터 수신된 월드 뷰 제안을 평가하며, 기타 등등이다. 각각의 인지 모듈(Pj)의 솔루션 스코어러(SSPj)는 수신된 월드 뷰 제안들 중 솔루션 스코어러(SSPj)와 연관된 인지 비용 함수의 가장 작은 값에 대응하는 월드 뷰 제안을 우승 월드 뷰로서 선택한다. 예를 들어, 인지 모듈(PA)의 솔루션 스코어러(SSPA)는 솔루션 제안기(SPPA, SPPB, SPPC, SPPD)로부터 수신된 월드 뷰 제안에 제1 인지 비용 함수를 적용하고, 솔루션 제안기(SPPB)에 의해 제안된 월드 뷰에 대응하는 제1 인지 비용 함수 값이 솔루션 제안기(SPPA, SPPC, SPPD)에 의해 제안된 나머지 월드 뷰 각각에 대응하는 제1 인지 비용 함수 값보다 작다고 결정할 수 있다. 이러한 이유로, 인지 모듈(PA)의 솔루션 스코어러(SSPA)는 인지 모듈(PB)의 솔루션 제안기(SPPB)에 의해 제안된 월드 뷰를, 파이프라인(PLA)의 인트라-스택 연결(CPR)을 통해, 계획 모듈(RA)의 솔루션 제안기(SPRA)에 제공할 것이다. 이 상황은 한 "원격 솔루션"이 "로컬 솔루션" 및 다른 원격 솔루션에 대해 우승하는 경우에 대응한다는 점에 유의한다. 한편, 인지 모듈(PB)의 솔루션 스코어러(SSPB)는 솔루션 제안기(SPPA, SPPB, SPPC, SPPD)로부터 수신된 월드 뷰 제안에 제2 인지 비용 함수를 적용하고, 솔루션 제안기(SPPB)에 의해 제안된 월드 뷰에 대응하는 제2 인지 비용 함수 값이 솔루션 제안기(SPPA, SPPC, SPPD)에 의해 제안된 나머지 월드 뷰 각각에 대응하는 제2 인지 비용 함수 값보다 작다고 결정할 수 있다. 이러한 이유로, 인지 모듈(PB)의 솔루션 스코어러(SSPB)는 인지 모듈(PB)의 솔루션 제안기(SPPB)에 의해 제안된 월드 뷰를, 파이프라인(PLB)의 인트라-스택 연결(CPR)을 통해, 계획 모듈(RB)의 솔루션 제안기(SPRB)에 제공할 것이다. 이 상황은 "로컬 솔루션"이 다수의 "원격 솔루션"에 대해 우승하는 경우에 대응한다는 점에 유의한다. 기타 등등이다.
시스템(2400)의 계획 스테이지에서 다음과 같은 방식으로 상승효과적 리던던시가 구현될 수 있다. 각각의 계획 모듈(Rj)의 솔루션 제안기(SPRj)는 인지 모듈(Pj)의 솔루션 스코어러(SSPj)로부터, 파이프라인(PLj)의 인트라-스택 연결(CPR)을 통해, 수신된 각자의 우승 월드 뷰에 기초하여 각자의 루트 제안을 생성한다. 각각의 계획 모듈(Rj)의 솔루션 스코어러(SSRj)는 계획 모듈(Rj)의 솔루션 제안기(SPRj)로부터 그리고 나머지 계획 모듈(Rk)의 솔루션 제안기(SPRk≠j)로부터 각자의 루트 제안을, 인트라-인터-스택 연결(CR)을 통해, 수신하고(단, j, k ∈ {A, B, C, D}임), 솔루션 스코어러(SSRj)와 연관된 계획 비용 함수를 사용함으로써 모든 수신된 제안을 평가한다. 예를 들어, 계획 모듈(RA)의 솔루션 스코어러(SSRA)는 제1 계획 비용 함수를 사용하여 솔루션 제안기(SPRA, SPRB, SPRC, SPRD)로부터 수신된 루트 제안을 평가하는 반면, 계획 모듈(RB)의 솔루션 스코어러(SSRB)는 제2 계획 비용 함수를 사용하여 솔루션 제안기(SPRA, SPRB, SPRC, SPRD)로부터 수신된 루트 제안을 평가하며, 기타 등등이다. 각각의 계획 모듈(Rj)의 솔루션 스코어러(SSRj)는 수신된 루트 제안들 중 솔루션 스코어러(SSRj)와 연관된 계획 비용 함수의 가장 작은 값에 대응하는 루트 제안을 우승 루트로서 선택한다. 예를 들어, 계획 모듈(RA)의 솔루션 스코어러(SSRA)는 솔루션 제안기(SPRA, SPRB, SPRC, SPRD)로부터 수신된 루트 제안에 제1 계획 비용 함수를 적용하고, 솔루션 제안기(SPRB)에 의해 제안된 루트에 대응하는 제1 계획 비용 함수 값이 솔루션 제안기(SPRA, SPRC, SPRD)에 의해 제안된 나머지 루트 각각에 대응하는 제1 계획 비용 함수 값보다 작다고 결정할 수 있다. 이러한 이유로, 계획 모듈(RA)의 솔루션 스코어러(SSRA)는 계획 모듈(RB)의 솔루션 제안기(SPRB)에 의해 제안된 루트를, 파이프라인(PLA)에 대응하는 엔드-스택 연결(CRA)을 통해, 출력 메디에이터(A)에 제공할 것이다. 한편, 계획 모듈(RB)의 솔루션 스코어러(SSRB)는 솔루션 제안기(SPRA, SPRB, SPRC, SPRD)로부터 수신된 루트 제안에 제2 계획 비용 함수를 적용하고, 솔루션 제안기(SPRB)에 의해 제안된 루트에 대응하는 제2 계획 비용 함수 값이 솔루션 제안기(SPRA, SPRC, SPRD)에 의해 제안된 나머지 루트 각각에 대응하는 제2 계획 비용 함수 값보다 작다고 결정할 수 있다. 이러한 이유로, 계획 모듈(RB)의 솔루션 스코어러(SSRB)는 계획 모듈(RB)의 솔루션 제안기(SPRB)에 의해 제안된 루트를, 파이프라인(PLB)에 대응하는 엔드-스택 연결(CRA)을 통해, 출력 메디에이터(A)에 제공할 것이다. 기타 등등이다.
출력 메디에이터(A)는 파이프라인(PLA, PLB, PLC, PLD)에 의해 제공되는 루트들 중 하나를 선택하기 위해, 다음 섹션에서 상세히 기술되는, 하나 이상의 선택 프로세스를 구현할 수 있다. 이러한 방식으로, 출력 메디에이터(A)는 리던던트 파이프라인(PLA, PLB, PLC, PLD) 내에서 생성되고 평가된 N = 4개의 루트 중 단일 루트를 제어기 모듈에 제공할 수 있거나 또는 제어기 모듈에 제공하도록 지시할 수 있다.
일부 경우에, 특정 스테이지에서 원하는 개수의 리던던트 솔루션 제안을 제공하기 위해 2개 초과의 멀티 스테이지 파이프라인을 구현하는 것은 너무 비용이 많이 들 수 있다. 예를 들어, AV 시스템 통합자는, N > 2개의 상이한 루트 제안(예를 들면, N = 4임)을 생성하고 이어서 평가하는 것에 기초하여 선택된 루트를 제어기 모듈에 제공하기를 원하면서, 리던던트 파이프라인의 개수를 2개로 유지하도록 요구할 수 있다. 이 목표를 달성하는 리던던트 파이프라인 쌍의 다양한 예가 아래에서 기술된다.
도 25는, N1개의 루트 제안이 제1 파이프라인(PL1)에 의해 제공되고, N2개의 루트 제안이 제2 파이프라인(PL2)에 의해 제공되도록(단, N1 + N2 = N임), 리던던트 파이프라인 쌍(PL1, PL2) 및 출력 메디에이터(A)를 사용하여 N개의 상이한 루트 제안을 생성하고 상승효과적으로 평가하는 목표를 달성하는 시스템(2500)을 도시한다. 여기서, 각각의 리던던트 파이프라인(PL1, PL2)은 각자의 인지 모듈(P1, P2)로서 구현된 제1 스테이지 및 각자의 계획 모듈(R1, R2)로서 구현된 제2 스테이지를 포함한다. 도 25에 예시된 예에서, 각각의 인지 모듈(P1, P2)은 각자의 솔루션 제안기(SPP1, SPP2) 및 각자의 솔루션 스코어러(SSP1, SSP2)를 포함한다. 그리고 각각의 계획 모듈(R1, R2)은 각자의 개수(N1, N2)의 솔루션 제안기(SPR1i, SPR2i) 및 각자의 솔루션 스코어러(SSR1, SSR2)(단, i ∈ {A, B, ...}임)를 포함한다. 도 25에 예시된 예에서, N1 = 2이고 N2 = 2이다. 동일한 파이프라인(PL1, PL2) 내에서, 인지 모듈(P1, P2)의 솔루션 스코어러(SSP1, SSP2)가 파이프라인(PL1, PL2)의 인트라-스택 연결(CPR)을 통해 계획 모듈(R1, R2)의 N1, N2개의 솔루션 제안기(SPR1i, SPR2i) 전부와 통신한다는 점에 유의한다. 또한 계획 모듈(R1, R2)의 솔루션 스코어러(SSR1, SSR2)가 각자의 엔드-스택 연결(CRA)을 통해 출력 메디에이터(A)와 통신한다는 점에 유의한다. 더욱이, 각각의 인지 모듈(P1, P2)의 솔루션 제안기(SPP1, SPP2)는, 인트라-인터-스택 연결(CP)을 통해, 인지 모듈(P1, P2)의 솔루션 스코어러(SSP1, SSP2)와 통신하고 다른 인지 모듈(P2, P1)의 솔루션 스코어러(SSP2, SSP1)와 통신한다. 또한, 각각의 계획 모듈(R1, R2)의 각각의 솔루션 제안기(SPR1i, SPR2i)는, 다른 인트라-인터-스택 연결(CR)을 통해, 계획 모듈(R1, R2)의 솔루션 스코어러(SSR1, SSR2)와 통신하고 다른 계획 모듈(R2, R1)의 솔루션 스코어러(SSR2, SSR1)와 통신한다.
여기서 N = 2를 제외하고, 시스템(2400)의 인지 스테이지에서 상승효과적 리던던시가 구현된 방식으로 시스템(2500)의 인지 스테이지에서 상승효과적 리던던시가 구현될 수 있다. 시스템(2500)의 계획 스테이지에서 다음과 같은 방식으로 상승효과적 리던던시가 구현될 수 있다. 계획 모듈(R1)의 N1개의 솔루션 제안기(SPR1i) 각각은 인지 모듈(P1)의 솔루션 스코어러(SSP1)로부터, 파이프라인(PL1)의 인트라-스택 연결(CPR)을 통해, 수신된 제1 월드 뷰에 기초하여 각자의 루트 제안을 생성하고, 계획 모듈(R2)의 N2개의 솔루션 제안기(SPR2i) 각각은 인지 모듈(P2)의 솔루션 스코어러(SSP2)로부터, 파이프라인(PL2)의 인트라-스택 연결(CPR)을 통해, 수신된 제2 월드 뷰에 기초하여 각자의 루트 제안을 생성한다. 계획 모듈(R1, R2)의 솔루션 스코어러(SSR1, SSR2)는 계획 모듈(R1, R2)의 N1, N2개의 솔루션 제안기(SPR1i, SPR2i) 로부터 그리고 다른 계획 모듈(R2, R1)의 N2, N1개의 솔루션 제안기(SPR2i, SPR1i)로부터 각자의 루트 제안을, 인트라-인터-스택 연결(CR)을 통해, 수신하고, 솔루션 스코어러(SSR1, SSR2)와 연관된 계획 비용 함수를 사용함으로써 N = N1 + N2개의 수신된 제안 전부를 평가한다. 예를 들어, 계획 모듈(R1)의 솔루션 스코어러(SSR1)는 제1 파이프라인(PL1)의 솔루션 제안기(SPR1A, SPR1B)로부터 그리고 제2 파이프라인(PL2)의 솔루션 제안기(SPR2A, SPR2B)로부터 수신된 루트 제안을 제1 계획 비용 함수를 사용하여 평가하는 반면, 계획 모듈(R2)의 솔루션 스코어러(SSR2)는 제2 파이프라인(PL2)의 솔루션 제안기(SPR2A, SPR2B)로부터 그리고 제1 파이프라인(PL1)의 솔루션 제안기(SPR1A, SPR1B)로부터 수신된 루트 제안을 제2 계획 비용 함수를 사용하여 평가한다. 각각의 계획 모듈(Rj)의 솔루션 스코어러(SSRj)는 수신된 루트 제안들 중 솔루션 스코어러(SSRj)와 연관된 계획 비용 함수의 가장 작은 값에 대응하는 루트 제안을 우승 루트로서 선택한다. 예를 들어, 계획 모듈(R1)의 솔루션 스코어러(SSR1)는 솔루션 제안기(SPR1A, SPR1B, SPR2A, SPR2B)로부터 수신된 루트 제안에 제1 계획 비용 함수를 적용하고, 솔루션 제안기(SPR1B)에 의해 제안된 루트에 대응하는 제1 계획 비용 함수 값이 솔루션 제안기(SPR1A, SPR2A, SPR2B)에 의해 제안된 나머지 루트 각각에 대응하는 제1 계획 비용 함수 값보다 작다고 결정할 수 있다. 이러한 이유로, 계획 모듈(R1)의 솔루션 스코어러(SSR1)는 계획 모듈(R1)의 솔루션 제안기(SPR1B)에 의해 제안된 루트를, 파이프라인(PL1)에 대응하는 엔드-스택 연결(CRA)을 통해, 출력 메디에이터(A)에 제공할 것이다. 이 상황은 한 "로컬 솔루션"이 다른 로컬 솔루션 및 다수의 "원격 솔루션"에 대해 우승하는 경우에 대응한다는 점에 유의한다. 한편, 계획 모듈(R2)의 솔루션 스코어러(SSR2)는 솔루션 제안기(SPR1A, SPR1B, SPR2A, SPR2B)로부터 수신된 루트 제안에 제2 계획 비용 함수를 적용하고, 솔루션 제안기(SPR1B)에 의해 제안된 루트에 대응하는 제2 계획 비용 함수 값이 솔루션 제안기(SPR1A, SPR2A, SPR2B)에 의해 제안된 나머지 루트 각각에 대응하는 제2 계획 비용 함수 값보다 작다고 결정할 수 있다. 이러한 이유로, 계획 모듈(R2)의 솔루션 스코어러(SSR2)는 계획 모듈(R1)의 솔루션 제안기(SPR1B)에 의해 제안된 루트를, 파이프라인(PL2)에 대응하는 엔드-스택 연결(CRA)을 통해, 출력 메디에이터(A)에 제공할 것이다. 이 상황은 한 "원격 솔루션"이 다수의 "로컬 솔루션" 및 다른 원격 솔루션에 대해 우승하는 경우에 대응한다는 점에 유의한다.
도 25에 예시된 예의 경우, 출력 메디에이터(A)는 리던던트 파이프라인 쌍(PL1, PL2)에 의해 제공되는 루트들 중 하나를 선택하기 위해, 다음 섹션에서 상세히 기술되는, 하나 이상의 선택 프로세스를 구현할 수 있다. 이러한 방식으로, 출력 메디에이터(A)는 리던던트 파이프라인(PL1, PL2)에 의해 생성되고 그 내에서 평가된 N = 4개의 루트 중 단일 루트를 제어기 모듈에 제공할 수 있다.
시스템(2500)의 일부 구현예에서, 솔루션 스코어러(SSR1, SSR2)가 그의 로컬 비용 함수를 사용하여 N1, N2개의 로컬 솔루션 제안기(SPR1i, SPR2i)에 의해 로컬로 제안된 솔루션들을 비교하고 그 중에서 선호된 솔루션을 선택할 수 있다는 점에 유의한다. 후속하여, 또는 동시적으로, 솔루션 스코어러(SSR1, SSR2)는 그의 로컬 비용 함수를 사용하여 N2, N1개의 원격 솔루션 제안기(SPR2i, SPR1i)에 의해 원격으로 제안된 솔루션들을 비교하고 그 중에서 선호된 솔루션을 선택할 수 있다. 후자의 비교를 수행하기 위해, 솔루션 스코어러(SSR1, SSR2)가 먼저 수신된 원격 제안 솔루션을 변환 및/또는 정규화하고, 따라서 그의 로컬 비용 함수를 그에 적용할 수 있다. 다음에, 솔루션 스코어러(SSR1, SSR2)는 선호되는 로컬로 제안된 솔루션과 선호되는 원격으로 제안된 솔루션 중에서 로컬 비용 함수에 기초하여 평가된 비용 값들 중 더 적은 비용 값을 갖는 것을 선택한다. 이러한 방식으로 선택을 수행함으로써, 솔루션 스코어러(SSR1, SSR2)는 변환/정규화 동작을 거친 N2, N1개의 제안된 원격 솔루션의 스코어를 그 자체 간에 비교하고, 그 중 최상의 원격 솔루션만이 이어서 변환/정규화 동작을 거칠 필요가 없었던 N1, N2개의 제안된 네이티브 솔루션 중 최상의 네이티브 솔루션과 비교된다. 따라서, 변환/정규화된 제안된 원격 솔루션과 제안된 로컬 솔루션 간의 직접 비교 횟수가 1회로 감소될 수 있다.
시스템(2500)의 일부 구현예에서, 솔루션 스코어러(SSR1, SSR2)는 N1, N2개의 로컬 솔루션 제안기(SPR1i, SPR2i)에 의해 로컬로 제안된 2개 이상의 솔루션과 N2, N1개의 원격 솔루션 제안기(SPR2i, SPR1i)에 의해 원격으로 제안된 2개 이상의 솔루션을, 출처별로 먼저 그룹화함이 없이 수신되는 순서대로, 비교한다. 물론, 솔루션 스코어러(SSR1, SSR2)는 먼저 원격으로 제안된 솔루션 각각을 변환/정규화하고 나서 이에 로컬 비용 함수를 적용할 수 있다. 여기서, 솔루션 스코어러(SSR1, SSR2)는 - (i) 수신된 제안된 솔루션과 (ii) 현재 선호되는 제안된 솔루션 중에서, 후자는 제안된 솔루션들 간의 이전 비교로부터 얻어진 것임 - 로컬 비용 함수에 기초하여 평가된 비용 값들 중 더 작은 비용 값을 가지는 것을 새로운 선호되는 제안된 솔루션으로서 선택한다. 이러한 방식으로 선택을 수행함으로써, 솔루션 스코어러(SSR1, SSR2)는, 전술한 구현예에서 기술된 바와 같이, 동일한 출처의 다른 솔루션을 기다릴 필요없이 가장 최근에 수신된 제안된 솔루션의 비교를 즉시 계속할 수 있다.
전술한 구현예들 중 어느 하나에서, 하나 초과의 로컬로 제안된 솔루션에 대한 액세스를 계획 모듈(R1, R2)의(또는 일반적으로 AV 동작 서브시스템의) 솔루션 스코어러(SSR1, SSR2)에 제공함으로써, 솔루션 스코어러(SSR1, SSR2)는 전체 시스템(2500)에 대한 솔루션 결정(solution making) 속도를 실질적으로 감소시키지 않으면서 비-최적 솔루션을 피할 수 있다.
2개의 로컬로 제안된 솔루션 사이의 비교, 2개의 원격으로 제안된 솔루션 사이의 비교, 또는 로컬로 제안된 솔루션과 원격으로 제안된 솔루션 사이의 비교이든 간에, 위에서 기술된 비교들 중 임의의 것에서, 솔루션 스코어러(SSR1, SSR2)는 차이가 임계치, 예를 들면, 10%, 5%, 1%, 0.5% 또는 0.1% 차이를 초과하는 경우 로컬 비용 함수에 기초하여 평가된 비용들 중 더 작은 비용을 가지는 제안된 솔루션을 선호되는 솔루션으로서 선택한다. 그렇지만, 2개의 제안된 솔루션의 비용의 차이가 임계 차이를 초과하지 않는 경우, 솔루션 스코어러(SSR1, SSR2)는 추가적인 비용 평가에 기초하여 제안된 솔루션들을 비교하고 AV의 동작을 위해 선택된 하나 이상의 선행 솔루션과의 연속성에 유리한 것을 선택하도록 구성된다. 예를 들어, 새로운 제안된 솔루션에 대해 반환된 로컬 비용 함수 값이 "일반적으로 선호되는" 제안된 솔루션에 대해 반환된 것보다 임계치 미만만큼 더 낮은 경우, 그것이 미리 결정된 거리보다 작은 거리만큼 일반적으로 선호되는 제안 솔루션과 상이한 경우에만 새로운 제안된 솔루션이 새로운 선호되는 제안 솔루션으로서 선택될 것이다. 이것은 현재 동작으로부터 우승 솔루션에 대응하는 동작으로 전환할 때 AV 동작에서의 저크(jerk)(매끄럽지 않음)를 방지한다. 일부 구현예에서, 솔루션 스코어러(SSR1, SSR2)는 하나의 제안된 솔루션이 다른 제안된 솔루션보다 선호되는 때를 추적하고, AV 플릿에 걸쳐 해당 정보를 공유하여 다른 솔루션이 결국 더 나아졌을 수 있는 때를 추적할 수 있다.
일부 경우에, 다수의 리던던트 파이프라인 각각당 단지 하나의 네이티브 솔루션을 생성하고, 예를 들어, 시스템(1600, 2400)에 대해 위에서 기술된 바와 같이 상승효과적 리던던시를 구현하는 것으로 충분할 수 있다. 그렇지만, 파이프라인의 특정 스테이지에 대해 파이프라인당 다수의 솔루션 스코어러를 사용하여 특정 스테이지에서 생성된 단일 네이티브 솔루션 및 단일 원격 솔루션을 스코어링함으로써 더 풍부한 상승효과적 리던던시가 구현될 수 있다. 예를 들어, 리던던트 파이프라인 쌍의 경우, 아래에서 기술되는 바와 같이, 특정 스테이지에 N1개의 솔루션 스코어러를 갖는 파이프라인 쌍의 제1 파이프라인은 N1개의 방식으로 네이티브 솔루션과 원격 솔루션 각각을 평가할 수 있고, 특정 스테이지에 N2개의 솔루션 스코어러를 갖는 파이프라인 쌍의 제2 파이프라인은 N2개의 방식으로 네이티브 솔루션과 원격 솔루션 각각을 평가할 수 있다.
도 26은, 제1 루트 제안이 제1 파이프라인(PL1)에 의해 생성되고 제2 루트 제안이 제2 파이프라인(PL2)에 의해 생성되도록, 리던던트 파이프라인 쌍(PL1, PL2) 및 출력 메디에이터(A)를 사용하여, 2개의 상이한 루트 제안을 생성하고 이들을 N > 2개의 방식으로 상승효과적으로 평가하는 시스템(2600)을 도시하며, 여기서 제1 및 제2 루트 제안은 제1 파이프라인(PL1)에 의해 N1개의 방식으로 그리고 제2 파이프라인(PL2)에 의해 N2개의 방식으로 평가된다. 여기서, 리던던트 파이프라인(PL1, PL2) 각각은 각자의 인지 모듈(P1, P2)로서 구현된 제1 스테이지 및 각자의 계획 모듈(R1, R2)로서 구현된 제2 스테이지를 포함한다. 도 26에 예시된 예에서, 각각의 인지 모듈(P1, P2)은 각자의 솔루션 제안기(SPP1, SPP2) 및 각자의 솔루션 스코어러(SSP1, SSP2)를 포함한다. 그리고 각각의 계획 모듈(R1, R2)은 각자의 솔루션 제안기(SPR1, SPR2), 각자의 개수(N1, N2)의 솔루션 스코어러(SSR1i, SSR2i), 및 각자의 계획 아비터(AR1, AR2)(단, i ∈ {A, B, ... }임)를 포함한다. 도 26에 예시된 예에서, N1 = 2이고 N2 = 2이다. 동일한 파이프라인(PL1, PL2) 내에서, 인지 모듈(P1, P2)의 솔루션 스코어러(SSP1, SSP2)가 파이프라인(PL1, PL2)의 인트라-스택 연결(CPR)을 통해 계획 모듈(R1, R2)의 솔루션 제안기(SPR1, SPR2)와 통신한다는 점에 유의한다. 계획 모듈(R1, R2) 내에서, N1, N2개의 솔루션 스코어러(SSR1i, SSR2i) 전부는 인트라-모듈 연결(CRR)을 통해 계획 아비터(AR1, AR2)와 통신한다. 또한 계획 모듈(R1, R2)의 계획 아비터(AR1, AR2)가 각자의 엔드-스택 연결(CRA)을 통해 출력 메디에이터(A)와 통신한다는 점에 유의한다. 더욱이, 각각의 인지 모듈(P1, P2)의 솔루션 제안기(SPP1, SPP2)는, 인트라-인터-스택 연결(CP)을 통해, 인지 모듈(P1, P2)의 솔루션 스코어러(SSP1, SSP2)와 통신하고 다른 인지 모듈(P2, P1)의 솔루션 스코어러(SSP2, SSP1)와 통신한다. 또한, 각각의 계획 모듈(R1, R2)의 솔루션 제안기(SPR1, SPR2)는, 다른 인트라-인터-스택 연결(CR)을 통해, 계획 모듈(R1, R2)의 각각의 솔루션 스코어러(SSR1i, SSR2i)와 통신하고 다른 계획 모듈(R1, R2)의 각각의 솔루션 스코어러(SSR2i, SSR1i)와 통신한다.
여기서 N = 2를 제외하고, 시스템(2400)의 인지 스테이지에서 상승효과적 리던던시가 구현된 방식으로 시스템(2600)의 인지 스테이지에서 상승효과적 리던던시가 구현될 수 있다. 시스템(2600)의 계획 스테이지에서 다음과 같은 방식으로 상승효과적 리던던시가 구현될 수 있다. 계획 모듈(R1)의 솔루션 제안기(SPR1)는 인지 모듈(P1)의 솔루션 스코어러(SSP1)로부터, 파이프라인(PL1)의 인트라-스택 연결(CPR)을 통해, 수신된 제1 월드 뷰에 기초하여 제1 루트 제안을 생성하고, 계획 모듈(R2)의 솔루션 제안기(SPR2)는 인지 모듈(P2)의 솔루션 스코어러(SSP2)로부터, 파이프라인(PL2)의 인트라-스택 연결(CPR)을 통해, 수신된 제2 월드 뷰에 기초하여 제2 루트 제안을 생성한다.
계획 모듈(R1, R2)의 N1, N2개의 솔루션 스코어러(SSR1i, SSR2i) 각각은, 인트라-인터-스택 연결(CR)을 통해, 계획 모듈(R1)의 솔루션 제안기(SPR1)로부터 제1 루트 제안을 수신하고 계획 모듈(R2)의 솔루션 제안기(SPR2)로부터 제2 루트 제안을 수신하며, 솔루션 스코어러(SSR1i, SSR2i)와 연관된 계획 비용 함수를 사용하여 제1 루트 제안 및 제2 루트 제안 둘 모두를 평가한다. 예를 들어, 솔루션 스코어러(SSR1A)는 제1 계획 비용 함수를 사용하여 제1 루트 제안과 제2 루트 제안을 평가하고, 솔루션 스코어러(SSR1B)는 제2 계획 비용 함수를 사용하여 제1 루트 제안과 제2 루트 제안을 평가한다. 여기서, 제1 계획 비용 함수와 제2 계획 비용 함수는 상이한 축, 예를 들면, 안전성, 편의 등을 따라 제1 루트 제안과 제2 루트 제안 각각을 평가할 수 있다. 또한, 솔루션 스코어러(SSR2A)는 제3 계획 비용 함수를 사용하여 제1 루트 제안과 제2 루트 제안을 평가하고, 솔루션 스코어러(SSR2B)는 제4 계획 비용 함수를 사용하여 제1 루트 제안과 제2 루트 제안을 평가한다. 각각의 솔루션 스코어러(SSR1i, SSR2i)는 제1 루트 제안 및 제2 루트 제안 중 솔루션 스코어러(SSR1i, SSR2i)와 연관된 계획 비용 함수의 가장 작은 값에 대응하는 루트 제안을 우승 루트로서 선택한다. 여기서, 제3 계획 비용 함수와 제4 계획 비용 함수는 동일한 축을 따라 그러나 상이한 모델, 사전 정보 등으로 제1 루트 제안과 제2 루트 제안 각각을 평가할 수 있다.
예를 들어, 솔루션 스코어러(SSR1A)는 제1 계획 비용 함수를 제1 루트 제안 및 제2 루트 제안에 적용하고 솔루션 제안기(SPR1)에 의해 제안된 제1 루트에 대응하는 제1 계획 비용 함수 값이 솔루션 제안기(SPR2)에 의해 제안된 제2 루트에 대응하는 제1 계획 비용 함수 값보다 작다고 결정할 수 있다. 이러한 이유로, 계획 모듈(R1)의 솔루션 스코어러(SSR1A)는 제1 루트를, 계획 모듈(R1)의 인트라-모듈 연결(CRR)을 통해, 계획 아비터(AR1)에 제공할 것이다. 한편, 솔루션 스코어러(SSR1B)는 제2 계획 비용 함수를 제1 루트 제안 및 제2 루트 제안에 적용하고 솔루션 제안기(SPR1)에 의해 제안된 제1 루트에 대응하는 제2 계획 비용 함수 값이 솔루션 제안기(SPR2)에 의해 제안된 제2 루트에 대응하는 제2 계획 비용 함수 값보다 작다고 결정할 수 있다. 이러한 이유로, 계획 모듈(R1)의 솔루션 스코어러(SSR1B)는 제1 루트를, 계획 모듈(R1)의 인트라-모듈 연결(CRR)을 통해, 계획 아비터(AR1)에 제공할 것이다. 계획 아비터(AR1)는 계획 모듈(R1)의 리던던트 솔루션 스코어러(SSR1A, SSR1B)에 의해 제공되는 루트들 중 하나를 선택하기 위해, 예를 들면, 다음 섹션에서 상세히 기술되는 것과 같은, 하나 이상의 선택 프로세스를 구현할 수 있다. 위에서 기술된 예시적인 상황에서, 솔루션 스코어러(SSR1A, SSR1B)는 동일한 루트를 제공했으며, 따라서 계획 아비터(AR1)는, 파이프라인(PL1)에 대응하는 엔드-스택 연결(CRA)을 통해, 제1 루트를 출력 메디에이터(A)에 단순히 중계한다. 이러한 동작이 파이프라인(PL1)에서 수행되는 동안, 솔루션 스코어러(SSR2A)는 제3 계획 비용 함수를 제1 루트 제안 및 제1 루트 제안에 적용하고 솔루션 제안기(SPR2)에 의해 제안된 제2 루트에 대응하는 제3 계획 비용 함수 값이 솔루션 제안기(SPR1)에 의해 제안된 제1 루트에 대응하는 제3 계획 비용 함수 값보다 작다고 결정할 수 있다. 이러한 이유로, 계획 모듈(R2)의 솔루션 스코어러(SSR2A)는 제2 루트를, 계획 모듈(R2)의 인트라-모듈 연결(CRR)을 통해, 계획 아비터(AR1)에 제공할 것이다. 한편, 솔루션 스코어러(SSR2B)는 제4 계획 비용 함수를 제1 루트 제안 및 제2 루트 제안에 적용하고 솔루션 제안기(SPR1)에 의해 제안된 제1 루트에 대응하는 제4 계획 비용 함수 값이 솔루션 제안기(SPR2)에 의해 제안된 제2 루트에 대응하는 제4 계획 비용 함수 값보다 작다고 결정할 수 있다. 이러한 이유로, 계획 모듈(R2)의 솔루션 스코어러(SSR2B)는 제1 루트를, 계획 모듈(R2)의 인트라-모듈 연결(CRR)을 통해, 계획 아비터(AR2)에 제공할 것이다. 계획 아비터(AR2)는 계획 모듈(R2)의 리던던트 솔루션 스코어러(SSR2A, SSR2B)에 의해 제공되는 루트들 중 하나를 선택하기 위해, 예를 들면, 다음 섹션에서 상세히 기술되는 것과 같은, 하나 이상의 선택 프로세스를 구현할 수 있다. 위에서 기술된 상황에서, 솔루션 스코어러(SSR2A, SSR2B)는 상이한 루트를 제공했으며, 따라서 계획 아비터(AR2)는 먼저 자체 선택 프로세스를 적용해야만 하고, 이어서, 파이프라인(PL2)에 대응하는 엔드-스택 연결(CRA)을 통해, 제1 루트와 제2 루트 중에서 선택된 루트를 출력 메디에이터(A)로 중계할 수 있다.
도 26에 예시된 예의 경우, 출력 메디에이터(A)는 리던던트 파이프라인 쌍(PL1, PL2)에 의해 제공되는 루트들 중 하나를 선택하기 위해, 다음 섹션에서 상세히 기술되는, 하나 이상의 선택 프로세스를 구현할 수 있다. 이러한 방식으로, 출력 메디에이터(A)는 리던던트 파이프라인(PL1, PL2) 내에서 생성되고 리던던트 파이프라인(PL1, PL2) 내에서 N > 2개의 방식으로 평가된 제1 루트와 제2 루트 중 단일 루트를 제어기 모듈에 제공할 수 있다.
위에서 기술된 바와 같이 AV를 동작시키기 위해 사용 가능한 시스템의 예에서 구현된 상승효과적 리던던시는 다음과 같은 이유로 플러그 앤 플레이(plug-and-play) 아키텍처에 대응한다. 위에서 언급된 바와 같이, 위에서 기술된 AV 동작 서브시스템 각각은, 예를 들면, 위에서 X14로 표기된 순수 스코어러(pure scorer) 또는, 예를 들면, 위에서 X12로 표기된 순수 제안기(pure proposer)(단, X ∈ {F, G, H, I, J, K }임) 중 어느 하나인 컴포넌트를 포함한다. 이것은 함께 통합되어 있는 솔루션 제안기와 솔루션 스코어러를 갖는 AV 동작 서브시스템, 또는 파이프라인 내에 함께 통합되어 있는 2개의 상이한 AV 동작 서브시스템을 갖는 파이프라인과 대조적이다. 각각의 AV 동작 서브시스템에 대해 순수 스코어러 또는 순수 제안기 중 어느 하나인 컴포넌트를 사용하는 측면은 OEM 컴포넌트, 즉 서드파티에 의해 설계 및/또는 제작된 AV 동작 서브시스템(모듈이라고도 지칭됨)을 사용하는 것을 가능하게 한다. 예를 들어, AV 시스템 통합자는, 서드파티 모듈이 대응하는 스테이지에 신뢰할 수 있는 모듈을 포함하는 하나 이상의 다른 파이프라인과 개시된 상승효과적 리던던시를 통해 통합되는 테스트 파이프라인에 배치되는 한, 서드파티 모듈의 "내부(under-the-hood)" 구성을 완전히 이해할 필요가 없다. 이러한 방식으로, 다양한 상황이 테스트될 수 있으며, 서드파티 모듈이 목표 선택 빈도를 충족시키는 선택 빈도로 교차 평가 동안 선택되는 제안에 기여한다면 유용한 것으로 그리고/또는 신뢰성 있는 것으로 간주될 수 있다. 그렇지만, 개시된 교차 평가 동안 서드파티 모듈이 기여하는 제안의 선택 빈도가 충족되지 않는 경우, 서드파티 모듈이 테스트 파이프라인으로부터 제거될 수 있다.
더욱 더 세분화된(granular) 레벨에서, 서드파티 제안기들의 통합체가 사용 사례를 커버하는 한, 제안기(X12)가 임의의 서드파티에 의해 설계 및 제작될 수 있다. 계획 스테이지에서, 위에서 기술된 것과 같이 상승효과적 리던던트 AV 동작 시스템에 통합될 수 있는 그러한 제안기의 예는 정형화된 계획, 예를 들면, 지금 정지(stop now), 차선 추종(follow lane), 앞 차량 추종(follow vehicle ahead)을 계획하기 위한 서드파티 제안기를 포함한다. 다른 예는, 예를 들어, 코너 사례를 해결하기 위해 임의의 애드혹 휴리스틱(ad-hoc heuristics)을 계획하기 위한 서드파티 제안기를 포함한다. 서드파티 제안기의 제안이 서드파티 제안기와 통신하는 - 동일한 AV 동작 서브시스템 또는 다른 리던던트 파이프라인의 동일한 스테이지에 배치된 AV 동작 서브시스템으로부터의 - 하나 이상의 스코어러에 의해 충분히 자주 선택되지 않는 것으로 검출될 때 서드파티 제안기가 AV 동작 서브시스템으로부터 제거될 수 있다. 서드파티 제안기에 의해 충족되어야 하는 목표 선택 빈도는 하나 이상의 현재 사용되는 제안기의 성능에 기초하여 확립될 수 있다. 이러한 방식으로, 개시된 시스템에서 구현되는 교차 평가는 "불량(bad)" 제안기에 의해 사용되는 계산 리소스가 불량 제안기의 제거 시에 AV 시스템에 의해 복구될 수 있게 한다.
상승효과적 리던던시를 각각 구현하는, AV를 동작시키는 데 사용 가능한 시스템(1300, 1600, 2000, 2400, 2500 및 2600)의 예는 잠재적으로 추가 장점을 제공할 수 있다. 다수의 계산 경로(예를 들면, 파이프라인)에서 솔루션 제안(예를 들면, 후보)을 생성하고 그리고/또는 생성된 솔루션 제안을 또한 다수의 계산 경로에서 스코어링하는 것은 각각의 평가의 독립성이 보존되도록 보장한다. 이러한 이유는, 그러한 대안적인 솔루션이 AV 동작 서브시스템 내부의 비용 함수에 기초한 자체 솔루션 제안보다 우수하다고 간주되는 경우에만 각각의 AV 동작 서브시스템이 다른 AV 동작 서브시스템의 솔루션 제안을 채택하기 때문이다. 솔루션 제안의 그러한 풍부성은 잠재적으로 각각의 경로의 전체적인 성능 및 안정성의 증가를 가져온다. 다수의 스테이지에서 솔루션 제안에 대한 교차 스택 평가를 수행함으로써, 출력 메디에이터에게 나중에 제안될 최상의 후보에 대한 합의가 프로세스에서 조기에(초기 스테이지에서) 구축될 수 있다. 이것은 차례로 출력 메디에이터에 대한 선택 부담을 감소시킬 수 있다.
2개 이상의 리던던트 파이프라인에 의해 제공되는 각자의 출력들 중 하나의 출력을 선택하기 위해 출력 메디에이터(1340, 1640, A)에 의해 사용되는 다양한 선택 절차가 다음에 기술된다.
컨텍스트 선택적 모듈
도 13(또는 도 16, 도 20, 도 24, 도 25, 도 26)을 참조하면, 자율 주행 차량(AV)을 동작시키는 데 사용 가능한 시스템(1300)(또는 1600, 2000, 2400, 2500, 2600)은 2개 이상의 상이한 AV 동작 서브시스템(1310a, 1310b)(또는 1620a, 1620b, R1, R2, ...) - 2개 이상의 상이한 AV 동작 서브시스템(1310a, 1310b)(또는 1620a, 1620b, R1, R2)의 각각의 AV 동작 서브시스템은 2개 이상의 상이한 AV 동작 서브시스템(1310b, 1310a)(또는 1620b, 1620a, R2, R1) 중 다른 AV 동작 서브시스템과 리던던트임) - 및 2개 이상의 상이한 AV 동작 서브시스템(1310a, 1310b)(또는 1620a, 1620b, R1, R2, ...)과 결합되고 2개 이상의 상이한 AV 동작 서브시스템(1310a, 1310b)(또는 1620a, 1620b, R1, R2, ...)으로부터의 AV 동작 출력을 관리하도록 구성된 출력 메디에이터(1340)(또는 1640, A)를 포함한다. 시스템(1600, 2000)의 경우에, 출력 메디에이터(1640)와 결합되는 2개 이상의 상이한 AV 동작 서브시스템(1620a, 1620b)(또는 출력 메디에이터(A)와 결합되는 2개 이상의 상이한 AV 동작 서브시스템(R1, R2,...)이 리던던트 파이프라인(1602a, 1602b)(또는 PL1, PL2, ...)의 마지막 스테이지에 대응한다는 점에 유의한다.
이전 섹션에서 기술된 예 각각에서, 출력 메디에이터(1340)(또는 1640, 또는 A)는 2개 이상의 상이한 AV 동작 서브시스템(1310a, 1310b)(또는 1620a, 1620b, 또는 R1, R2, ...) 중 단일의 AV 동작 서브시스템을 2개 이상의 상이한 AV 동작 서브시스템(1310a, 1310b)(또는 1620a, 1620b, 또는 R1, R2, ...)에 대한 과거 성능 데이터와 비교하여 현재 입력 데이터에 기초하여 우선순위화된 상태로 선택적으로 승격시키도록 구성된다. 예를 들어, 하나의 리던던트 서브시스템은 간선도로 운전을 핸들링하도록 설계될 수 있고 다른 리던던트 서브시스템은 도시 운전을 핸들링하도록 설계될 수 있으며; 리던던트 서브시스템들 중 어느 하나는 운전 환경에 기초하여 우선순위화될 수 있다. 일단 우선순위화된 상태로 승격되면, AV 동작 모듈(1310a, 1310b)(또는 1620a, 1620b 또는 R1, R2)은 그의 출력이 나머지 AV 동작 서브시스템(1310b, 1310a)(또는 1620b, 1620a 또는 R2, R1)의 출력보다 선호된다. 이러한 방식으로, 출력 메디에이터(1340)(또는 1640)는 나머지 AV 동작 서브시스템(1310b, 1310a)(또는 1620b, 1620a, R2, R1)으로부터 수신된 모든 다른 출력보다 AV 동작 서브시스템(1310a, 1310b)(또는 1620a, 1620b, 또는 A)으로부터 수신된 하나의 AV 동작 출력을 선택하는 사실상 AV 동작 아비터로서 동작한다.
도 27은 N개의 상이한 AV 동작 서브시스템으로부터의, OP1, OP2, ..., OPN으로 표기된, AV 동작 출력을 관리하기 위해 N개의 상이한 AV 동작 서브시스템(단, N ≥ 2임)과 결합된 출력 메디에이터에 의해 사용되는 프로세스(2700)의 일 예의 플로차트이다. 프로세스(2700)는 대응하는 예시적인 시스템(1300, 1600, 2000, 2500 또는 2600(단, N = 2임), 또는 2400(단, N = 4 임))의 출력 메디에이터(1340, 1640, 또는 A)에 의해 수행될 수 있다.
2710에서, 출력 메디에이터는 N개의 상이한 AV 동작 서브시스템 중 하나의 AV 동작 서브시스템에 우선순위화된 상태를 지정하고 나머지 AV 동작 서브시스템에 비-우선순위화된 상태를 지정한다. 이 동작은 프로세스(100)의 시작에서, 예를 들면, 출력 메디에이터가 전원이 켜지거나, 리셋되거나, 또는 업그레이드된 소프트웨어로 패치되는 등일 때, 출력 메디에이터와 통신하는 N개의 상이한 AV 동작 서브시스템 각각에 초기 상태를 할당하기 위해 수행된다. 도 28에 예시된 예에서, 출력 메디에이터(1340)(또는 1640, A)는 N개의 상이한 AV 동작 서브시스템(1310a, 1310b, ..., 1310N(또는 1620a, 1620b, ..., 1620N, 또는 R1, R2, ...)의 AV 동작 서브시스템 식별자(ID)의 어레이(2805)에 액세스할 수 있다. 일단 출력 메디에이터(1340)가 N개의 상이한 AV 동작 서브시스템(1310a, 1310b, ..., 1310N) 중 하나의 AV 동작 서브시스템(예를 들면, 1310b)에 우선순위화된 상태를 지정하면, 출력 메디에이터(1340)는 우선순위 포인터를 사용하여 우선순위화된 상태를 갖는 AV 동작 서브시스템(2815)의 ID를 가리키고 따라서, 이 예에서, 우선순위화된 상태를 갖는 것이 1310b이고 나머지 AV 동작 서브시스템(1310a, ..., 1310N) 중의 다른 AV 동작 서브시스템이 아니라는 사실을 추적한다.
도 27을 또다시 참조하면, 2720에서, 출력 메디에이터는, 제각기, N개의 상이한 AV 동작 서브시스템으로부터 N개의 출력을 수신하며, 즉, 제1 AV 동작 서브시스템의 출력(OP1), ..., 및 제N AV 동작 서브시스템의 출력(OPN)을 수신한다. 2개의 리던던트 인지 모듈(1410a, 1410b)을 포함하는 예시적인 시스템(1400)에서, 출력 메디에이터(1440)는 두 가지 버전의 월드 뷰(1416a, 1416b)를 수신한다. 2개의 리던던트 계획 모듈(1510a, 1510b)(또는 1720a, 1720b)을 포함하는 예시적인 시스템(1500)(또는 1700)에서, 출력 메디에이터(1540)(또는 1740)는 두 가지 버전의 루트(1414a, 1414b)(또는 1714a, 1714b)를 수신한다. 2개의 리던던트 계획 모듈(R1, R2)을 포함하는 예시적인 시스템(2500 또는 2600) 각각에서, 출력 메디에이터(A)는 또한 두 가지 버전의 루트를 수신한다. 그렇지만, 4개의 리던던트 계획 모듈(R1, R2, R3, R4)을 포함하는 예시적인 시스템(2400)에서, 출력 메디에이터(A)는 네 가지 버전의 루트를 수신한다. 게다가 2개의 리던던트 제어 모듈(1810a, 1810b)을 포함하는 예시적인 시스템(1800, 1900 또는 2100) 각각에서, 출력 메디에이터(1840)는 조향 액추에이터(420a), 스로틀 액추에이터(420b), 및/또는 브레이크 액추에이터(420c)를 제어하기 위한 두 가지 버전의 제어 신호를 수신한다.
2725에서, 출력 메디에이터(예를 들면, 1340, 또는 1640, A)는 제1 AV 동작 서브시스템, ...및 제N AV 동작 서브시스템 각각이 동일한 출력(OP)을 제공하는지 여부를 결정한다. 등가적으로, 출력 메디에이터는, 2725에서, 제1 AV 동작 서브시스템의 출력(OP1), ..., 및 제N AV 동작 서브시스템의 출력(OPN)이 서로 동일한지 여부를 결정한다.
이전 섹션에서 기술된 시스템(예를 들면, 1300, 1600, 2000, 2400, 2500, 2600)이 상승효과적 리던던시를 구현하였기 때문에, 리던던트 파이프라인의 동일한 스테이지에 배치된 N개의 AV 동작 서브시스템이 서로의 제안된 솔루션을 평가하도록 구성된다는 점에 유의한다. 이러한 이유로, N개의 AV 동작 서브시스템 중 하나의 AV 동작 서브시스템에 의해 제안된 특정 솔루션이 N개의 AV 동작 서브시스템 전부에 의해 독립적으로 채택되고 그로부터 출력될 가능성이 있다. 그러한 경우에, 출력 메디에이터가 N개의 AV 동작 서브시스템 전부로부터 동일한 출력(OP)을 수신할 때, 출력 메디에이터는 동작 세트(2730 내지 2760)를 건너뛰며, 따라서 건너뛴 동작을 수행하는 데 사용되었을 계산 리소스를 절약할 것이다.
도 28에 예시된 예에서, 출력 메디에이터(1340)(또는 1640, A)는 출력 비교기(2825)를 사용하여, 수신된 AV 동작 서브시스템 출력(2822)을 비교한다.
일부 구현예에서, 출력 비교기(2825)는 수신된 AV 동작 서브시스템 출력(2822)을 그 각자의 출처 표시자를 비교하는 것에 의해 비교할 것이다. 여기서, 솔루션 제안기(1312a, 1312b, 1622a, 1622b, SPRA, SPRB, SPRC, SPRD)는 그 각자의 솔루션 제안을 자신이 속하는 AV 동작 서브시스템의 ID를 나타내는 솔루션 식별자로 마킹한다. 예를 들어, 솔루션 제안기(1312a)에 의해 제안된 솔루션은 이 솔루션이 AV 동작 서브시스템(1310a)에서 유래하였음을 명시하는 출처 표시자로 마킹될 것인 반면, 솔루션 제안기(1312b)에 의해 제안된 대안적인 솔루션은 이 솔루션이 리던던트 AV 동작 서브시스템(1310b)에서 유래하였음을 명시하는 출처 표시자로 마킹될 것이다. 이러한 방식으로, 출력 메디에이터에 의해 수신되는 제1 AV 동작 서브시스템의 출력(OP1), ..., 및 제N AV 동작 서브시스템의 출력(OPN) 각각은 그것이 유래한 AV 동작 서브시스템을 식별해주는 각자의 출처 표시자를 담고 있을 것이다. 따라서, 이러한 구현예에서, 출력 메디에이터의 출력 비교기(2825)는 수신된 AV 동작 서브시스템 출력(2822)의 각자의 출처 표시자를 간단히 검사하여 이들이 동일한지 또는 이들 중 적어도 하나가 다른 것과 상이한지를 결정할 것이다. 예를 들어, 출력 메디에이터(A)가 리던던트 계획 모듈(RA, RB, RC, RD)로부터 수신된 4개의 루트 각각이, 예를 들면, 계획 모듈(RB)을 식별해주는, 동일한 출처 표시자를 담고 있다고 결정하는 경우, 출력 메디에이터(A)는 4개의 루트를 하나의 동일한 루트로서, 여기서 계획 모듈(RB)에서 유래하고 4개의 계획 모듈(RA, RB, RC, RD) 전부에 의해 채택된 루트로서 취급한다. 다른 예로서, 출력 메디에이터(A)가 리던던트 계획 모듈(RA, RB, RC, RD)로부터 수신된 4개의 루트 중 적어도 하나의 루트가 다른 출처 표시자와 상이한 출처 표시자를 담고 있는 경우, 출력 메디에이터(A)는 해당 루트를 다른 3개의 루트와 상이한 것으로 취급한다.
일부 구현예에서, 출력 비교기(2825)는 출력들 간의 상대 거리를 평가함으로써 수신된 AV 동작 서브시스템 출력(2822)을 비교할 것이다. 제i AV 동작 서브시스템의 출력(OPi)과 제j AV 동작 서브시스템의 출력(OPj) 사이의 거리가 임계 거리보다 큰 경우, 이들 출력은 상이한 것으로, 즉 OPi ≠ OPj(단 i ≠ j이고 i,j = 1...N임)인 것으로 간주된다. 그렇지 않고 제i AV 동작 서브시스템의 출력(OPi)과 제j AV 동작 서브시스템의 출력(OPj) 사이의 거리가 임계 거리보다 작거나 같은 경우, 이들 출력은 동일한 것으로, 즉 OPi = OPj인 것으로 간주된다. 예시적인 시스템(1400)에서, 출력 메디에이터(1440)는, 2개의 리던던트 인지 모듈(1410a, 1410b)로부터, 2개의 월드 뷰(1416a, 1416b)를 수신한다. 여기서, 출력 메디에이터(1440)는 2개의 월드 뷰(1416a, 1416b)를 월드 뷰들 사이의 거리가 임계 월드 뷰 거리보다 작거나 같은 경우 동일한 것으로, 또는 월드 뷰들 사이의 거리가 임계 월드 뷰 거리보다 큰 경우 상이한 것으로 취급할 것이다. 예시적인 시스템(1500)에서, 출력 메디에이터(1540)는, 2개의 리던던트 계획 모듈(1510a, 1510b)로부터, 2개의 루트(1514a, 1514b)를 수신한다. 여기서, 출력 메디에이터(1540)는 2개의 루트(1514a, 1514b)를 루트들 사이의 거리가 임계 루트 거리보다 작거나 같은 경우 동일한 것으로, 또는 루트들 사이의 거리가 임계 루트 거리보다 큰 경우 상이한 것으로 취급할 것이다.
2725Y에서, 출력 메디에이터가 제1 AV 동작 서브시스템의 출력(OP1), ..., 및 제N AV 동작 서브시스템의 출력(OPN)이 서로 동일한 경우, 2770에서, 출력 메디에이터는 우선순위화된 상태를 가지는 AV 동작 서브시스템의 출력의 발행을 제어한다. 출력 메디에이터가 우선순위화된 상태를 가지는 AV 동작 서브시스템의 출력의 발행을 제어하는 다양한 방식이 아래에서 상세히 기술된다.
그렇지만, 2725N에서, 출력 메디에이터가 제1 AV 동작 서브시스템의 출력(OP1), ..., 및 제N AV 동작 서브시스템의 출력(OPN) 중 적어도 하나의 출력이 나머지 출력과 상이하다고 결정하는 경우, 2730에서, 출력 메디에이터는 현재 입력 데이터에 액세스한다. 도 28은 출력 메디에이터(1340)(또는 1640, A)가 현재 입력 데이터(2831)에 액세스하는 것을 도시한다. 도 29는 현재 입력 데이터(2831)가, 예를 들면, 데이터베이스 모듈(410) 또는 원격 지리 위치 시스템에 의해 저장된 맵 데이터(2832); 예를 들어, 로컬화 모듈(408)에 의해 제공되는 위치 데이터(2838); 예를 들어, 인지 모듈(402)에 의해 제공되는 교통 데이터(2836); 로컬 센서(121) 또는 원격 기상 모니터링/예보 시스템에 의해 제공되는 기상 데이터(2834); 로컬 또는 원격 시계에 의해 제공되는 시각(time of day) 데이터(2835); 및 AV의 속력계에 의해 제공된 속력 데이터(2833)를 포함한다.
2740에서, 출력 메디에이터는 현재 입력 데이터에 기초하여 현재 동작 컨텍스트를 결정한다. 예를 들어, 출력 메디에이터는 (i) 현재 입력 데이터를 포함하는 매핑의 입력 데이터 부분을 식별하기 위해, 그리고 (ii) 현재 동작 컨텍스트를 식별된 입력 데이터 부분에 매핑되는 동작 컨텍스트로서 결정하기 위해 입력 데이터 대 동작 컨텍스트의 매핑을 사용할 수 있다. 입력 데이터 대 동작 컨텍스트의 매핑은, 예를 들어, 룩업 테이블(LUT)로서 구현될 수 있다.
이제 도 28 및 도 29 둘 모두를 참조하면, 이 목적을 위해 출력 메디에이터(1340)(또는 1640, A)에 의해 사용되는 LUT는 입력 데이터/컨텍스트 룩업 테이블(LUT)(2842)로서 구현된다. 입력 데이터/컨텍스트 LUT(2842)는 M개의 미리 정의된 동작 컨텍스트, 및 입력 데이터 유형과 범위의 2개 이상의 그룹을 포함하며, 그룹은 M개의 미리 정의된 동작 컨텍스트(단, M ≥ 2임)에 매핑된다. 예를 들어, 고속도로에 대응하는 위치 데이터(2838)와 맵 데이터(2832), 및 45 내지 75mph 범위의 속력 데이터(2833)를 포함하는 그룹은 "고속도로 운전"이라는 동작 컨텍스트에 매핑된다. 다른 예로서, 일반 도로(surface street)에 대응하는 위치 데이터(2838)와 맵 데이터(2832), 및 5 내지 45mph 범위의 속력 데이터(2833)를 포함하는 그룹은 "일반 도로 운전"이라는 동작 컨텍스트에 매핑된다. 또 다른 예로서, 낮은 내지 중간 교통량에 대응하는 교통 데이터(2838), 및 19:00시 내지 06:00시 범위의 시각 데이터(2835)를 포함하는 그룹은 "야간 운전"이라는 동작 컨텍스트에 매핑된다. 또 다른 예로서, 중간 내지 높은 교통량에 대응하는 교통 데이터(2838), 및 06:00시 내지 19:00시 범위의 시각 데이터(2835)를 포함하는 그룹은 "주간 운전"이라는 동작 컨텍스트에 매핑된다. 또 다른 예로서, 비, 진눈깨비 또는 눈에 대응하는 기상 데이터(2834), 및 5 내지 30mph 범위의 속력 데이터(2833)를 포함하는 그룹은 "악천후 운전"이라는 동작 컨텍스트에 매핑된다. 또 다른 예로서, 강수량 부족에 대응하는 기상 데이터(2834), 및 30 내지 75mph 범위의 속력 데이터(2833)를 포함하는 그룹은 "맑은 날씨 운전"이라는 동작 컨텍스트에 매핑된다. 다른 많은 미리 정의된 동작 컨텍스트가 입력 데이터/컨텍스트 LUT(2842)에 정의되어 있을 수 있다.
출력 메디에이터(1340)(또는 1640, A)는 입력 데이터/컨텍스트 LUT(2842)에 포함된 입력 데이터 유형과 범위의 그룹 중 어느 것이 현재 입력 데이터(2831)를 포함하는지를 식별한다. 예를 들어, 현재 입력 데이터(2831)가 AV가 현재 405 SANTA MONICA FREEWAY에 위치되고 AV 속력이 55mph임을 나타내는 위치 데이터(2838)와 맵 데이터(2832)를 포함하는 경우, 출력 메디에이터(1340)(또는 1640)는 현재 입력 데이터(2831)를 포함하는 입력 데이터 유형과 범위의 입력 데이터/컨텍스트 LUT(2842)의 그룹을 고속도로에 대응하는 위치 데이터(2838)와 맵 데이터(2832), 및 45 내지 75mph 범위의 속력 데이터(2833)를 포함하는 그룹으로서 식별한다. 현재 입력 데이터(2831)를 포함하는 입력 데이터/컨텍스트 LUT(282)의 그룹을 식별함으로써, 출력 메디에이터(1340)(또는 1640, A)는 AV의 현재 동작 컨텍스트(2845)를 식별된 그룹에 매핑되는 동작 컨텍스트로서 결정한다. 전술한 예에서, 고속도로에 대응하는 위치 데이터(2838)와 맵 데이터(2832), 및 45 내지 75mph 범위의 속력 데이터(2833)를 포함하는 그룹을 식별함으로써, 출력 메디에이터(1340)(또는 1640, A)는 AV의 현재 동작 컨텍스트(2845)가 "고속도로 운전"이라고 결정한다. 일단 출력 메디에이터(1340)(또는 1640, A)가 이러한 방식으로 현재 동작 컨텍스트(2845)를 결정하면, 출력 메디에이터는 현재 동작 컨텍스트(2845)의 식별자를 가리키는 컨텍스트 포인터를 사용하여, 이 예에서, 현재 동작 컨텍스트가 입력 데이터/컨텍스트 LUT(282)에서 조회된 나머지 동작 컨텍스트로부터의 다른 것이 아니라 "고속도로 운전"이라는 사실을 추적할 수 있다.
2750에서, 출력 메디에이터는 현재 동작 컨텍스트에 대응하는 AV 동작 서브시스템을 식별한다. 예를 들어, 출력 메디에이터는 동작 컨텍스트 대 AV 동작 서브시스템의 ID의 매핑을 사용하여 (i) 현재 동작 컨텍스트와 매칭하는 매핑의 동작 컨텍스트를 선택하고 (ii) 현재 동작 컨텍스트에 대응하는 AV 동작 서브시스템을 선택된 동작 컨텍스트에 매핑된 ID를 가지는 AV 동작 서브시스템으로서 식별할 수 있다. 동작 컨텍스트 대 AV 동작 서브시스템의 ID의 매핑은 N개의 상이한 AV 동작 서브시스템의 과거 성능 데이터를 나타낸다.
일부 구현예에서, 출력 메디에이터는 머신 러닝을 사용하여 특정 동작 컨텍스트 대 AV 동작 서브시스템의 ID의 매핑을 결정한다. 예를 들어, 머신 러닝 알고리즘은 AV 동작 서브시스템의 과거 데이터를 처리하여, AV의 N개의 상이한 AV 동작 서브시스템의 각각의 AV 동작 서브시스템이 N개의 상이한 AV 동작 서브시스템의 나머지 AV 동작 서브시스템과 상이한, 그보다 더 나은 또는 더 나쁜 성능을 보이는 AV에 대한 하나 이상의 특정 동작 컨텍스트를 결정한다. 일부 구현예에서, 과거 데이터는 현재 여정(trip)에 대해 수집되는 데이터를 포함하고, 동작 컨텍스트 대 AV 동작 서브시스템의 ID의 매핑의 결정은 실시간으로 실행된다. 일부 구현예에서, 과거 데이터는 이전 여정에 대해 수집된 데이터를 포함하고, 동작 컨텍스트 대 AV 동작 서브시스템의 ID의 매핑의 결정은, 현재 여정 이전에, 예를 들면, 밤새, 실행되었다.
일부 구현예에서, 머신 러닝 알고리즘은 AV 동작 서브시스템에 대한 실질적인 개선이 결정된 후에만 AV 동작 서브시스템을 특정 동작 컨텍스트에 매핑한다. 예를 들어, 과거 성능 데이터가 특정 동작 컨텍스트에서 실질적으로 더 나은 성능을 보여줄 경우에만 AV 동작 서브시스템이 특정 동작 컨텍스트에 매핑될 것이다. 일 예로서, 특정 AV 동작 서브시스템이 특정 동작 컨텍스트에 대해 선호되는 AV 동작 서브시스템보다, 100회 중 52회, 더 나은 성능을 가지는 경우, 특정 AV 동작 서브시스템은 이 특정 동작 컨텍스트에 대한 선호되는 상태로 승격되지 않을 것이다. 예를 들어, 선호되는 상태의 변경이 구현되기 위해서는 성능 개선이 20% 이상이어야 한다. 그와 같이, 특정 AV 동작 서브시스템이 특정 동작 컨텍스트에 대해 선호되는 AV 동작 서브시스템보다, 100회 중 61회, 더 나은 성능을 가지는 경우, 특정 AV 동작 서브시스템은 이 특정 동작 컨텍스트에 대한 선호되는 상태로 승격될 것이다. 성능 개선은 특정 AV 동작 서브시스템에 의해 제공된 솔루션이 이전에 선호된 AV 동작 서브시스템에 의해 제공된 솔루션보다 미리 결정된 델타만큼 더 낮은 비용을 갖는 것의 관점에서 측정될 뿐만 아니라, 특정 AV 동작 서브시스템에 의해 제공된 솔루션과 이전에 선호된 AV 동작 서브시스템에 의해 제공된 솔루션 사이의 거리가 미리 결정된 차이보다 작은 것의 관점에서 측정된다.
동작 컨텍스트 대 AV 동작 서브시스템의 ID의 매핑의 결정의 결과는 AV 플릿에 걸쳐 공유된다. 예를 들어, 머신 러닝 알고리즘은 AV 플릿 내의 상이한 AV에서 N개의 상이한 AV 동작 서브시스템을 사용하는 것에 관련된 과거 성능 데이터를 처리한다. 이러한 방식으로 머신 러닝 알고리즘에 의해 획득된 결과는 직접적으로, 예를 들면, 서로 근접해 있는 AV와의 애드혹 통신을 통해, 또는, 예를 들면, 도 2와 관련하여 위에서 기술된 것과 같은, 다수의 AV의 동작을 조율하기 위한 중앙 제어 시스템을 통해 플릿의 다른 AV와 공유될 수 있다. AV 플릿에 걸쳐 N개의 상이한 AV 동작 서브시스템의 결정의 결과를 공유함으로써, 동일한 서브시스템을 사용하는 AV 플릿에 걸쳐 있는 데이터의 분석을 사용함으로써 개별 AV 성능이 개선될 수 있다.
동작 컨텍스트 대 AV 동작 서브시스템의 ID의 매핑은, 예를 들어, 다른 LUT로서 구현될 수 있다. 도 28을 또다시 참조하면, 이 목적을 위해 출력 메디에이터(1340)(또는 1640, A)에 의해 사용되는 다른 LUT는 컨텍스트/서브시스템 LUT(2852)로서 구현된다. 컨텍스트/서브시스템 LUT(2852)는 N개의 AV 동작 서브시스템 ID 및 M개의 미리 정의된 동작 컨텍스트를 포함하며, N개의 ID는 M개의 동작 컨텍스트(단, M, N ≥ 2임)에 매핑된다. 도 28에 도시된 이러한 예시적인 컨텍스트/서브시스템 LUT(2852)에서, AV 동작 서브시스템 ID는 M개의 동작 컨텍스트 중 하나 이상에 매핑되는 반면, 동작 컨텍스트는 단일 AV 동작 서브시스템 ID에 매핑된다는 점에 유의한다. 예를 들어, AV 동작 서브시스템(1310a)의 ID는 제1 동작 컨텍스트, 예를 들면, "고속도로 주행"에 매핑되는 반면, AV 동작 서브시스템(1310N)의 ID는 제j 동작 컨텍스트, 예를 들면, "야간 운전"에 매핑된다. 다른 예로서, AV 동작 서브시스템(1310b)의 ID는 제2 동작 컨텍스트, 예를 들면, "일반 도로 운전"에 그리고 제M 동작 컨텍스트, 예를 들면, "악천후 운전"에 매핑된다. 도 24를 참조하면, 계획 모듈(RA)의 ID는 동작 컨텍스트 "고속도로, 맑은 날씨 운전"에 매핑될 수 있고, 계획 모듈(RB)의 ID는 다른 동작 컨텍스트 "고속도로, 악천후 운전"에 매핑될 수 있으며, 계획 모듈(RC)의 ID는 또 다른 동작 컨텍스트 "일반 도로, 맑은 날씨 운전"에 매핑될 수 있고, 계획 모듈(RD)의 ID는 또 다른 동작 컨텍스트 "일반 도로, 악천후 운전"에 매핑될 수 있다. 이 예에서, 계획 모듈(RD)의 ID는, 동시에, 예를 들어, 동작 컨텍스트 "교통 체증(heavy-traffic) 운전"에 매핑될 수 있다.
출력 메디에이터(1340(또는 1640))는 현재 동작 컨텍스트(2845)와 매칭하는 컨텍스트/서브시스템 LUT(2852)에 포함된 동작 컨텍스트를 선택한다. 예를 들어, 현재 동작 컨텍스트(2845)가 "일반 도로 운전"인 경우, 출력 메디에이터(1340)(또는 1640, A)는 컨텍스트/서브시스템 LUT(2852)에 포함된 동작 컨텍스트 중에서, "일반 도로 운전"이라고 레이블링된, 제2 동작 컨텍스트를 선택한다. 현재 동작 컨텍스트(2845)와 매칭하는 컨텍스트/서브시스템 LUT(2852)에 포함된 동작 컨텍스트를 선택함으로써, 출력 메디에이터(1340)(또는 1640, A)는 AV 동작 서브시스템(2855)의 ID를 선택된 동작 컨텍스트에 매핑되는 AV 동작 서브시스템의 ID로서 식별하고, 따라서, 매핑된 AV 동작 서브시스템(2855)을 현재 동작 컨텍스트(2845)에 대응하는 것으로 식별한다. 전술한 예에서, 컨텍스트/서브시스템 LUT(2852)에 포함된 제2 동작 컨텍스트를 선택함으로써, 출력 메디에이터(1340)(또는 1640, A)는 AV 동작 서브시스템(1310a, 1310b, ..., 1310N)의 ID 중에서 AV 동작 서브시스템(1310b)의 ID를 식별하고, 따라서, AV 동작 서브시스템(1310b)을 "일반 도로 운전"에 대응하는 것으로 식별한다. 일단 출력 메디에이터(1340)(또는 1640, A)가 이러한 방식으로 AV 동작 서브시스템(2855)을 식별하면, 출력 메디에이터는 AV 동작 서브시스템(2855)의 식별자를 가리키는 서브시스템 포인터를 사용하여, 이 예에서, 식별된 AV 동작 서브시스템이 컨텍스트/서브시스템 LUT(2852)에서 조회된 나머지 AV 동작 서브시스템(1310a, ..., 1310N)으로부터의 다른 것이 아니라 1310b이라는 사실을 추적할 수 있다.
2755에서, 출력 메디에이터는 식별된 AV 동작 서브시스템이 우선순위화된 상태를 갖는 AV 동작 서브시스템인지 여부를 검증한다. 도 28에 예시된 예에서, 출력 메디에이터(1340)(또는 1640, A)는 현재 동작 컨텍스트(2845)에 대응하는 컨텍스트/서브시스템 LUT(2852)로부터 AV 동작 서브시스템(2855)의 ID가 우선순위화된 상태를 갖는 AV 동작 서브시스템(2815)의 ID와 동일하다고 결정할 수 있고, 따라서, 식별된 AV 동작 서브시스템(2855)이 우선순위화된 상태를 갖는다고 검증한다. 또는, 출력 메디에이터(1340)(또는 1640)는 현재 동작 컨텍스트(2845)에 대응하는 컨텍스트/서브시스템 LUT(2852)로부터 AV 동작 서브시스템(2855)의 ID가 우선순위화된 상태를 갖는 AV 동작 서브시스템(2815)의 ID와 상이하다고 결정할 수 있고, 따라서, 식별된 AV 동작 서브시스템이 비-우선순위화된 상태를 갖는다고 검증한다.
2755Y에서, 출력 메디에이터가 식별된 AV 동작 서브시스템이 우선순위화된 상태를 갖는 AV 동작 서브시스템이라고 결정하는 경우, 2770에서, 출력 메디에이터는 우선순위화된 상태를 갖는 AV 동작 서브시스템의 출력의 발행을 제어한다. 출력 메디에이터가 우선순위화된 상태를 가지는 AV 동작 서브시스템의 출력의 발행을 제어하는 다양한 방식이 아래에서 상세히 기술된다.
그렇지만, 2755N에서, 출력 메디에이터가 식별된 AV 동작 서브시스템이 우선순위화된 상태를 가지는 AV 동작 서브시스템과 상이하다고 결정하는 경우, 2760에서, 출력 메디에이터는 우선순위화된 상태를 가지는 AV 동작 서브시스템을 비-우선순위화된 상태로 강등시키고, 식별된 AV 동작 서브시스템을 우선순위화된 상태로 승격시킨다. 도 28에 예시된 예에서, 출력 메디에이터(1340)(또는 1640, A)는 우선순위 포인터를 2755N에서 강등되기 전에 우선순위화된 상태를 가졌던 AV 동작 서브시스템(2815)의 ID를 가리키는 것으로부터 2755N에서 승격된 이후 우선순위화된 상태를 가지는 AV 동작 서브시스템(2855)의 ID를 가리키는 것으로 리디렉션(redirect)한다.
이러한 방식으로, 일부 구현예에서, 출력 메디에이터(예를 들면, 1340 또는 1640, A)는 AV가 현재 있는 거리의 유형에 기초하여 AV 동작 서브시스템을 승격시킨다. 예를 들어, 출력 메디에이터는 N개의 상이한 AV 동작 서브시스템 중에서 식별된 AV 동작 서브시스템(2855)을 다음과 같은 2개의 인자에 기초하여 우선순위화된 상태로 선택적으로 승격시키도록 구성된다. 제1 인자는 현재 입력 데이터(2831)가 (입력 데이터/컨텍스트 LUT(2842)에 기초하여) 현재 동작 컨텍스트(2845)가 도시 거리 또는 간선도로 운전 조건임을 나타낸다는 것이다. 제2 인자는, 컨텍스트/서브시스템 LUT(2852)의 형태로 표현되는, 과거 성능 데이터가 식별된 AV 동작 서브시스템(2855)이 N개의 상이한 AV 동작 서브시스템의 나머지 AV 동작 서브시스템보다 현재 동작 컨텍스트(2845)에서 더 나은 성능을 보임을 나타낸다는 것이다.
일부 구현예에서, 출력 메디에이터(예를 들면, 1340 또는 1640, A)는 AV가 현재 경험하는 교통상황에 기초하여 AV 동작 서브시스템을 승격시킨다. 예를 들어, 출력 메디에이터는 N개의 상이한 AV 동작 서브시스템 중에서 식별된 AV 동작 서브시스템(2855)을 다음과 같은 2개의 인자에 기초하여 우선순위화된 상태로 선택적으로 승격시키도록 구성된다. 제1 인자는 현재 입력 데이터(2831)가 (입력 데이터/컨텍스트 LUT(2842)에 기초하여) 현재 동작 컨텍스트(2845)가 특정 교통 조건을 수반한다는 것을 나타낸다는 것이다. 제2 인자는, 컨텍스트/서브시스템 LUT(2852)의 형태로 표현되는, 과거 성능 데이터가 식별된 AV 동작 서브시스템(2855)이 N개의 상이한 AV 동작 서브시스템의 나머지 AV 동작 서브시스템보다 현재 동작 컨텍스트(2845)에서 더 나은 성능을 보임을 나타낸다는 것이다.
일부 구현예에서, 출력 메디에이터(예를 들면, 1340 또는 1640, A)는 AV가 현재 경험하는 날씨에 기초하여 AV 동작 서브시스템을 승격시킨다. 예를 들어, 출력 메디에이터는 N개의 상이한 AV 동작 서브시스템 중에서 식별된 AV 동작 서브시스템(2855)을 다음과 같은 2개의 인자에 기초하여 우선순위화된 상태로 선택적으로 승격시키도록 구성된다. 제1 인자는 현재 입력 데이터(2831)가 (입력 데이터/컨텍스트 LUT(2842)에 기초하여) 현재 동작 컨텍스트(2845)가 특정 기상 조건을 수반한다는 것을 나타낸다는 것이다. 제2 인자는, 컨텍스트/서브시스템 LUT(2852)의 형태로 표현되는, 과거 성능 데이터가 식별된 AV 동작 서브시스템(2855)이 N개의 상이한 AV 동작 서브시스템의 나머지 AV 동작 서브시스템보다 현재 동작 컨텍스트(2845)에서 더 나은 성능을 보임을 나타낸다는 것이다.
일부 구현예에서, 출력 메디에이터(예를 들면, 1340 또는 1640, A)는 AV가 현재 동작되는 시각에 기초하여 AV 동작 서브시스템을 승격시킨다. 예를 들어, 출력 메디에이터는 N개의 상이한 AV 동작 서브시스템 중에서 식별된 AV 동작 서브시스템(2855)을 다음과 같은 2개의 인자에 기초하여 우선순위화된 상태로 선택적으로 승격시키도록 구성된다. 제1 인자는 현재 입력 데이터(2831)가 (입력 데이터/컨텍스트 LUT(2842)에 기초하여) 현재 동작 컨텍스트(2845)가 특정 시각이라는 것을 나타낸다는 것이다. 제2 인자는, 컨텍스트/서브시스템 LUT(2852)의 형태로 표현되는, 과거 성능 데이터가 식별된 AV 동작 서브시스템(2855)이 N개의 상이한 AV 동작 서브시스템의 나머지 AV 동작 서브시스템보다 현재 동작 컨텍스트(2845)에서 더 나은 성능을 보임을 나타낸다는 것이다.
일부 구현예에서, 출력 메디에이터(예를 들면, 1340 또는 1640, A)는 AV의 현재 속력에 기초하여 AV 동작 서브시스템을 승격시킨다. 예를 들어, 출력 메디에이터는 N개의 상이한 AV 동작 서브시스템 중에서 식별된 AV 동작 서브시스템(2855)을 다음과 같은 2개의 인자에 기초하여 우선순위화된 상태로 선택적으로 승격시키도록 구성된다. 제1 인자는 현재 입력 데이터(2831)가 (입력 데이터/컨텍스트 LUT(2842)에 기초하여) 현재 동작 컨텍스트(2845)가 특정 속력 범위를 수반한다는 것을 나타낸다는 것이다. 제2 인자는, 컨텍스트/서브시스템 LUT(2852)의 형태로 표현되는, 과거 성능 데이터가 식별된 AV 동작 서브시스템(2855)이 N개의 상이한 AV 동작 서브시스템의 나머지 AV 동작 서브시스템보다 현재 동작 컨텍스트(2845)에서 더 나은 성능을 보임을 나타낸다는 것이다.
이어서, 2770에서, 출력 메디에이터는 우선순위화된 상태를 가지는 AV 동작 서브시스템의 출력의 발행을 제어한다. 먼저, 프로세스(2700)가 동작(2725Y, 2755Y 또는 2760) 중 어느 하나를 수행한 후에 동작(2770)에 도달한다는 점에 유의한다. 즉, 출력 메디에이터로부터 다운스트림으로 제공될 AV 동작 서브시스템의 출력이, 2770에서 이제, 즉, 현재 동작 컨텍스트에서, 우선순위화된 상태를 가지는 AV 동작 서브시스템으로부터 수신되었음을 확인할 시에 2770이 수행된다.
일부 구현예에서, 2770에서, 출력 메디에이터(예를 들면, 1340 또는 1640, A)는 우선순위화된 AV 동작 서브시스템(예를 들면, 2815)에게, 그로부터 다운스트림으로, 그의 AV 동작 출력을 곧바로 다음 AV 동작 서브시스템에 또는 AV의 액추에이터에 제공하도록 지시한다. 여기서, 출력 메디에이터는 우선순위화된 AV 동작 서브시스템의 출력을 그의 목적지로 중계하지 않고, 그 대신에 그렇게 하는 것은 우선순위화된 AV 동작 서브시스템 자체이다. 예시적인 시스템(1700)에서, 일단 출력 메디에이터(1740)가 계획 모듈(1720b)이 현재 동작 컨텍스트에서 우선순위화된 상태를 가진다는 것을 확인하면, 출력 메디에이터(1740)는 계획 모듈(1720b)에게 계획 모듈(1720b)의 루트(1714b)를, 다운스트림으로, 제어 모듈(406)에 제공하도록 지시한다.
다른 구현예에서, 2770에서, 출력 메디에이터에 의해, 2720에서, 수신된 우선순위화된 AV 서브시스템(예를 들면, 2815)의 출력을, 다운스트림으로, 다음 AV 동작 서브시스템에 또는 AV의 액추에이터에 제공하는 것은 출력 메디에이터(예를 들면, 1340 또는 1640, A) 자체이다. 예시적인 시스템(1700)에서, 일단 출력 메디에이터(1740)가 계획 모듈(1720b)이 현재 동작 컨텍스트에서 우선순위화된 상태를 가진다는 것을 확인하면, 출력 메디에이터(1740)는 계획 모듈(1720b)의 루트(1714b)를, 다운스트림으로, 제어 모듈(406)로 중계한다.
동작 시퀀스(2720 내지 2770)는 각각의 클록 사이클에서 출력 메디에이터(예를 들어, 1340, 또는 1640, A)에 의해 수행된다. 그와 같이, 이러한 동작은 향후 클록 사이클 동안 반복적으로 수행된다. 이러한 방식으로 프로세스(2700)를 수행함으로써, 시스템(1300)(또는 1600, 2000 등)의 AV 동작 성능이 컨텍스트 기반 승격(context sensitive promotion)을 수행함으로써, 예를 들면, 운전 컨텍스트에 능동적으로 적응함으로써, 개선될 것이다.
리던던트 제어 시스템
도 30은 AV에 대한 제어 시스템에서의 리던던시를 제공하기 위한 리던던트 제어 시스템(3000)을 도시한다. 도 1의 AV(100)와 같은 AV는 리던던트 제어 시스템(3000)을 포함할 수 있다. 리던던트 제어 시스템(3000)은 컴퓨터 프로세서(3010), 제1 제어 시스템(3020), 및 제2 제어 시스템(3030)을 포함한다. 일 실시예에서, 컴퓨터 프로세서(3010)는 단지 하나의 프로세서를 포함한다. 일 실시예에서, 컴퓨터 프로세서(3010)는 하나 초과의 프로세서를 포함한다. 컴퓨터 프로세서(3010)는 실시간 센서 데이터 및 사전 정보 둘 모두에 기초하여 제어 액션을 알고리즘적으로 생성하도록 구성된다. 일 실시예에서, 컴퓨터 프로세서(3010)는 도 1에서 참조된 컴퓨터 프로세서(146)와 실질적으로 유사하다. 컴퓨터 프로세서(3010)는 진단 모듈(3011) 및 아비터 모듈(3012)을 포함할 수 있다.
일 실시예에서, 제1 제어 시스템(3020) 및 제2 제어 시스템(3030)은 제어 모듈(3023, 3033)을 포함한다. 일 실시예에서, 제어 모듈(3023, 3033)은 도 4를 참조하여 이전에 기술된 제어 모듈(406)과 실질적으로 유사하다. 일 실시예에서, 제어 모듈(3023, 3033)은 도 11을 참조하여 이전에 기술된 제어기(1102)와 실질적으로 유사한 제어기를 포함한다. 일 실시예에서, 예를 들면, 도 13 내지 도 29를 참조하여 이전에 기술된 바와 같이, 하나의 제어 시스템은 다른 제어 시스템에 의해 출력되는 데이터를 사용한다.
제1 제어 시스템(3020) 및 제2 제어 시스템(3030)은 컴퓨터 프로세서(3010)로부터 동작 커맨드를 수신하고 이에 따라 기능하도록 구성된다. 그렇지만, 제1 제어 시스템(3020) 및 제2 제어 시스템(3030)은, 도어 록 제어기, 윈도우 제어기, 방향 지시등 제어기, 앞유리 와이퍼 제어기, 및 브레이크 제어기와 같은, 다양한 다른 유형의 제어기를 포함할 수 있다.
제1 제어 시스템(3020) 및 제2 제어 시스템(3030)은 제어 디바이스(3021, 3031)를 또한 포함한다. 일 실시예에서, 제어 디바이스(3021, 3031)는 제어 동작(3040)에 영향을 미치는 제어 시스템(3020, 3030)의 능력을 용이하게 한다. 제어 디바이스(3021, 3031)의 예는 조향 메커니즘/칼럼, 휠, 액슬, 브레이크 페달, 브레이크, 연료 시스템, 기어 시프터, 기어, 스로틀 메커니즘(예를 들면, 가스 페달(gas pedal)), 앞유리 와이퍼, 사이드-도어 록, 윈도우 컨트롤, 및 방향 지시등을 포함하지만, 이에 제한되지 않는다. 일 예에서, 제1 제어 시스템(3020) 및 제2 제어 시스템(3030)은 조향각 제어기 및 스로틀 제어기를 포함한다. 제1 제어 시스템(3020) 및 제2 제어 시스템(3030)은 적어도 하나의 제어 동작(3040)에 영향을 미치는 출력을 제공하도록 구성된다. 일 실시예에서, 출력은 가속 제어에 사용되는 데이터이다. 일 실시예에서, 출력은 조향각 제어에 사용되는 데이터이다. 일 실시예에서, 제어 동작(3040)은 AV(100)의 움직임 방향에 영향을 미치는 것을 포함한다. 일 실시예에서, 제어 동작(3040)은 AV(100)의 속력을 변경하는 것을 포함한다. 제어 동작의 예는 AV(100)가 가속/감속하게 하는 것 및 AV(100)를 조향하는 것을 포함하지만 이에 제한되지 않는다.
일 실시예에서, 제어 시스템(3020, 3030)은 AV(100)의 속력 및 배향의 변화를 관리하는 것을 포함하는 제어 동작(3040)에 영향을 미친다. 본원에 기술된 바와 같이, 속력 프로파일은 AV(100)로 하여금 제1 속력으로부터 적어도 제2 속력으로 전환하게 하는 가속도 또는 저크의 변화에 관련된다. 예를 들어, 들쭉날쭉한 속력 프로파일은 가속 또는 감속을 통한 AV(100)의 속력의 급격한 변화를 나타낸다. 들쭉날쭉한 속력 프로파일을 가진 AV(100)은 속력들 간에 급속히 전환하고, 따라서 승객이 급격한 가속/감속으로 인해 불쾌한/불편한 정도의 힘을 경험하게 할 수 있다. 게다가, 매끄러운 속력 프로파일은 AV(100)를 제1 속력으로부터 제2 속력으로 전환하는 AV(100)의 속력의 점진적인 변화를 나타낸다. 매끄러운 속력 프로파일은 AV(100)가 더 느린 변화율로 속력들 간에 전환하도록 보장하며, 따라서 승객이 경험하는 가속/감속의 힘을 감소시킨다. 일 실시예에서, 제어 시스템(3020, 3030)은, 가속도, 저크, 자운스(jounce), 스냅(snap), 크래클(crackle), 또는 시간에 대한 속력의 다른 고차 도함수, 또는 이들의 조합을 포함하여, 시간에 대한 속력의 다양한 도함수를 제어한다.
일 실시예에서, 제어 시스템(3020, 3030)은 AV(100)의 조향 프로파일에 영향을 미친다. 조향 프로파일은 AV(100)를 제1 방향으로부터 제2 방향으로 배향시키기 위한 조향각의 변화에 관련된다. 예를 들어, 들쭉날쭉한 조향 프로파일은 AV(100)로 하여금 더 높은/더 급격한 각도의 배향들 간에 전환하게 하는 것을 포함한다. 들쭉날쭉한 조향 프로파일은 승객 불편을 유발할 수 있으며 AV(100)가 뒤집어질 확률을 증가시킬 수 있다. 매끄러운 조향 프로파일은 AV(100)로 하여금 더 낮은/더 넓은 각도의 배향들 간에 전환하게 하는 것을 포함한다. 매끄러운 조향 프로파일은 다양한 환경 조건에서 AV(100)를 동작시키는 동안 증가된 승객 편의 및 안전성에 이르게 한다.
일 실시예에서, 제1 제어 시스템(3020) 및 제2 제어 시스템(3030)은 실질적으로 유사한 제어 동작(3040)에 영향을 미치는 제어 시스템(3020, 3030)의 능력을 용이하게 하는 상이한 제어 디바이스(3021, 3031)를 포함한다. 예를 들어, 제1 제어 시스템(3020)은 스로틀 제어 동작에 영향을 미치는 스로틀 메커니즘, 브레이크 페달, 및 기어 시프터를 포함할 수 있는 반면, 제2 제어 시스템(3030)은 스로틀 제어 동작에 영향을 미치는 연료 시스템, 브레이크 및 기어를 포함할 수 있다. 일 실시예에서, 조향 메커니즘은 조향 휠이다. 그렇지만, 조향 메커니즘은, 조이스틱 또는 레버 조향 장치와 같은, AV(100)의 방향을 조향하는 데 사용되는 임의의 메커니즘일 수 있다. AV(100)를 조향하기 위해, 제1 제어 시스템(3020)은 AV(100)의 조향 메커니즘을 포함할 수 있는 반면, 제2 제어 시스템(3030)은 휠 또는 액슬을 포함할 수 있다. 따라서, 제1 제어 시스템(3020)과 제2 제어 시스템(3030)은 별개의 디바이스를 제어하면서 둘 모두가 동일한 제어 동작(예를 들면, 조향, 스로틀 제어 등)을 수행할 수 있는 2개의 리던던트 제어 시스템을 가능하게 하도록 함께 기능할 수 있다. 일 실시예에서, 제1 제어 시스템(3020)과 제2 제어 시스템(3030)은 동일한 디바이스를 포함하면서 동일한 제어 동작에 영향을 미친다. 예를 들어, 제1 제어 시스템(3020)과 제2 제어 시스템(3030) 둘 모두는 조향 동작 및 스로틀 동작에 영향을 미치는 조향 메커니즘, 브레이크 페달, 기어 시프터, 및 가스 페달을 포함할 수 있다. 게다가, 제1 제어 시스템(3020)과 제2 제어 시스템(3030)은 오버랩되는 디바이스는 물론 개별 디바이스를 동시에 포함할 수 있다. 예를 들어, 제1 제어 시스템(3020) 및 제2 제어 시스템(3030)이 조향 동작을 제어하기 위한 AV(100)의 조향 칼럼을 포함할 수 있는 반면, 제1 제어 시스템(3020)은 스로틀 동작을 제어하기 위한 스로틀 메커니즘을 포함할 수 있고, 제2 제어 시스템(3030)은 스로틀 동작을 제어하기 위한 AV(100)의 휠을 포함할 수 있다.
제1 제어 시스템(3020) 및 제2 제어 시스템(3030)은 적어도 하나의 입력에 따라 그 각자의 출력을 제공한다. 예를 들어, 도 12를 참조하여 앞서 나타낸 바와 같이, 제어 시스템(3020, 3030)은 AV(100)에 대한 헤딩을 선택하고 어느 도로 세그먼트를 횡단할지를 결정하기 위해 제어 시스템(3020, 3030)에 의해 사용되는 정보를 제공하는, 도 4를 참조하여 이전에 논의된 계획 모듈(404)과 같은, 계획 모듈로부터 입력을 수신할 수 있다. 입력은 또한, AV(100)의 디바이스가 제어되고 있는 방식에 기초하여 예상되는 위치에 AV(100)가 있는지를 제어 시스템(3020, 3030)이 결정할 수 있도록, AV(100)의 현재 위치를 기술하는 정보를 제어 시스템(3020, 3030)에 제공하는, 도 4를 참조하여 이전에 논의된 로컬화 모듈(408)과 같은, 로컬화 모듈로부터 수신되는 정보에 대응할 수 있다. 입력은 또한, 도 11을 참조하여 앞서 기술된 예측 피드백 모듈(1122)과 같은, 피드백 모듈에 대응할 수 있다. 입력은 데이터베이스, 컴퓨터 네트워크 등으로부터 수신되는 정보를 또한 포함할 수 있다. 일 실시예에서, 입력은 원하는 출력이다. 원하는 출력은, 예를 들어, 계획 모듈(404)에 의해 수신되는 정보에 기초한 속력 및 헤딩을 포함할 수 있다. 일 실시예에서, 제1 제어 시스템(3020) 및 제2 제어 시스템(3030)은 동일한 입력에 기초하여 출력을 제공한다. 일 실시예에서, 제1 제어 시스템(3020)은 제1 입력에 기초하여 출력을 제공하는 반면, 제2 제어 시스템(3030)은 제2 입력에 기초하여 출력을 제공한다.
컴퓨터 프로세서(3010)는 아비터 모듈(3012)을 이용하여 AV(100)의 제어 동작에 영향을 미칠 제1 제어 시스템(3020) 및 제2 제어 시스템(3030) 중 적어도 하나를 선택하도록 구성된다. 어느 하나의 제어 시스템의 선택은 다양한 기준에 기초할 수 있다. 예를 들어, 일 실시예에서, 아비터 모듈(3012)은 제어 시스템(3020, 3030)의 성능을 평가하고 일정 시간 기간에 걸친 제1 제어 시스템(3020) 및 제2 제어 시스템(3030)의 성능에 기초하여 제1 제어 시스템(3020) 또는 제2 제어 시스템(3030) 중 적어도 하나를 선택하도록 구성된다. 예를 들어, 제어 시스템 성능을 평가하는 것은 제어 시스템(3020, 3030)의 응답성 또는 제어 시스템의 응답의 정확도를 평가하는 것을 포함할 수 있다. 일 실시예에서, 응답성의 평가는 제어 시스템이, 예를 들어, 가속도의 변화에 영향을 미치는 입력을 수신하는 것과 제어 시스템(3020 또는 3030)이 가속도를 변경하기 위해 스로틀 제어 메커니즘에 작용하는 것 사이의 지연(lag)을 결정하는 것을 포함한다. 유사하게, 정확도의 평가는 제어 시스템에 의한 액추에이터의 요구된 작동과 제어 시스템에 의해 적용되는 실제 작동 사이의 에러 또는 차이를 결정하는 것을 포함한다. 일 실시예에서, 컴퓨터 프로세서(3010)는 제1 제어 시스템(3020) 및 제2 제어 시스템(3030) 중 적어도 하나의 제어 시스템의 고장을 식별하도록 구성된 진단 모듈(3011)을 포함한다. 고장은 부분적(partial)이거나 전체적(complete)일 수 있거나, 제어 시스템(3020, 3030)은 적어도 하나의 고장 조건을 충족시킬 수 있다. 부분적인 고장은 일반적으로 서비스의 열화를 지칭할 수 있는 반면, 전체적인 고장은 일반적으로 실질적으로 완전한 서비스 상실을 지칭할 수 있다. 예를 들어, 조향과 관련하여 AV(100)에 대한 제어와 관해, 전체적인 고장은 AV(100)를 조향하는 능력의 완전한 상실일 수 있는 반면, 부분적인 고장은 조향 제어에 대한 AV(100)의 응답성의 열화일 수 있다. 스로틀 제어와 관련하여, 전체적인 고장은 AV(100)를 가속시키는 능력의 완전한 상실일 수 있는 반면, 부분적인 고장은 스로틀 제어에 대한 AV(100)의 응답성의 열화일 수 있다.
일 실시예에서, 고장 조건은 제어 시스템이 무응답(nonresponsive)으로 되는 것, 제어 시스템에 대한 잠재적 보안 위협, 조향 디바이스/스로틀 디바이스가 잠금/재밍(jamming)되는 것, 또는 AV(100)가 그의 원하는 출력으로부터 벗어날 위험을 증가시키는 다양한 다른 고장 조건을 포함한다. 예를 들어, 제1 제어 시스템(3020)이 AV(100) 상의 조향 칼럼(또는 다른 조향 메커니즘)을 제어하고 있고 제2 제어 시스템(3030)이 AV(100)의 휠(또는 액슬)을 직접적으로 제어하고 있다고 가정하면, 컴퓨터 프로세서(3010)는 조향 칼럼이 제자리에 잠금되는 경우(예를 들면, 제어 시스템 고장 조건) 조향 동작을 수행하기 위해 제2 제어 시스템(3030)을 선택할 수 있다. 또한, 제1 제어 시스템(3020)이 AV(100) 상의 가스 페달(또는 다른 스로틀 메커니즘)을 제어하고 있고, 제2 제어 시스템(3030)이 AV(100)의 연료 시스템을 직접적으로 제어하고 있다고 가정하면, 컴퓨터 프로세서(3010)는 가스 페달이 컴퓨터 프로세서(3010)로부터 전송된 커맨드에 무응답으로 되는 경우(예를 들면, 제어 시스템 고장 조건) 스로틀 동작을 수행하기 위해 제2 제어 시스템(3030)을 선택할 수 있다. 이러한 시나리오는 예시적인 것이며 제한적인 것을 의미하지 않으며, 다양한 다른 시스템 고장 시나리오가 존재할 수 있다.
도 11을 참조하여 위에서 나타낸 바와 같이, 일 실시예에서, 제1 제어 시스템(3020) 및 제2 제어 시스템(3030)의 제어기는, 제각기, 제1 피드백 시스템 및 제2 피드백 시스템으로부터 피드백을 수신하여 이용하도록 구성된다. 피드백 시스템은 센서 세트, 센서 유형, 또는 피드백 알고리즘을 포함할 수 있다. 일 실시예에서, 제1 제어 시스템(3020) 및 제2 제어 시스템(3030)은 동일한 피드백 시스템으로부터 피드백을 수신하도록 구성된다. 일 실시예에서, 제1 제어 시스템(3020)은 제1 피드백 시스템으로부터 피드백을 수신하도록 구성되는 반면, 제2 제어 시스템(3030)은 제2 피드백 시스템으로부터 피드백을 수신하도록 구성된다. 예를 들어, 제1 제어 시스템(3020)은 AV(100) 상의 LiDAR 센서로부터만 피드백을 수신할 수 있는 반면, 제2 제어 시스템(3030)은 AV(100) 상의 카메라로부터만 피드백을 수신할 수 있다. 피드백은, AV(100)의 위치, 속도 또는 가속도와 같은, 측정된 출력 피드백을 포함할 수 있다. 피드백은, 도 11을 참조하여 위에서 기술된 예측 피드백 모듈(1122)과 같은, 예측 피드백 모듈로부터의 예측 피드백을 또한 포함할 수 있다. 일 실시예에서, 컴퓨터 프로세서(3010)는 제1 제어 시스템(3020) 및 제2 제어 시스템(3030) 중 적어도 하나의 제어 시스템의 고장을, 있는 경우, 식별하기 위해 제1 피드백 시스템 및 제2 피드백 시스템으로부터의 피드백을 비교하도록 구성된다.
예를 들어, 제1 제어 시스템(3020) 및 제2 제어 시스템(3030)이 특정 에러 범위 내에서 25 MPH의 원하는 속력 출력으로 AV(100)의 스로틀 동작에 영향을 미치도록 구성되어 있다고 가정한다. 예를 들어, 제1 제어 시스템(3020)에 대응하는 제1 피드백 시스템이 5분의 시간 기간에 걸쳐 AV(100)의 평균 속력을 15 MPH인 것으로 측정하고, 제2 피드백 모듈이 5분의 시간 기간에 걸쳐 AV(100)의 평균 속력을 24 MPH인 것으로 측정하는 경우, 컴퓨터 프로세서(3010)는 제1 제어 시스템(3010)이 고장 조건을 경험하고 있다고 결정할 수 있다. 이전에 나타낸 바와 같이, 컴퓨터 프로세서(3010)가 하나의 제어 시스템의 고장을 식별할 때, 컴퓨터 프로세서(3010)는 제어 동작에 영향을 미칠 다른 제어 시스템을 선택할 수 있다.
제어 시스템(3020, 3030)은 제어 알고리즘(3022, 3032)을 사용하여 제어 동작(3040)에 영향을 미칠 수 있다. 예를 들어, 일 실시예에서, 제어 알고리즘(3022/3032)은 AV(100)의 조향각을 조정한다. 일 실시예에서, 제어 알고리즘(3022/3032)은 AV(100)에 대한 스로틀 제어를 조정한다. 일 실시예에서, 제1 제어 시스템(3020)은 제어 동작(3040)에 영향을 미칠 때 제1 제어 알고리즘(3022)을 사용한다. 일 실시예에서, 제2 제어 시스템(3030)은 제어 동작에 영향을 미칠 때 제2 제어 알고리즘(3032)을 사용한다. 예를 들어, 제1 제어 시스템(3020)은 제1 제어 알고리즘(3022)을 사용하여 AV(100)에 적용되는 조향각을 조정할 수 있는 반면, 제2 제어 시스템(3030)은 제2 제어 알고리즘(3032)을 사용하여 AV(100)에 적용되는 스로틀을 조정할 수 있다.
일 실시예에서, 양쪽 제어 시스템(3020, 3030)은 동일한 알고리즘을 사용하여 제어 동작(3040)에 영향을 미친다. 일 실시예에서, 제어 알고리즘(3022, 3032)은, 도 11을 참조하여 이전에 기술된 바와 같은 측정된 피드백 모듈(1114) 및 예측 피드백 모듈(1122)과 같은, 피드백 모듈에 대응하는 알고리즘인 제어 피드백 알고리즘이다.
일 실시예에서, 컴퓨터 프로세서(3010)는, 예를 들어, AV(100)의 센서에 의해 검출되는 정보에 기초하여 제1 제어 시스템(3020) 및 제2 제어 시스템(3030) 중 하나 또는 둘 모두의 동작을 방해하는 적어도 하나의 환경 조건을 식별하도록 구성된다. 환경 조건은 반응성 조향/스로틀 동작이 더욱 중요해질 수 있게 하는 비, 눈, 안개, 먼지, 불충분한 햇빛, 또는 다른 조건을 포함한다. 예를 들어, 비 또는 눈으로 인한 미끄러운 조건은 조향 제어에 대응하는 반응성의 중요성을 증가시킬 수 있다. 제1 제어 시스템(3020) 및 제2 제어 시스템(3030)의 응답성과 관련하여 측정된 성능에 기초하여, 컴퓨터 프로세서(3010)는 조향 응답성에 관해 최고의 측정된 성능을 갖는 제어 시스템을 선택할 수 있다. 다른 예로서, 안개, 먼지 또는 햇빛으로 인한 저 가시성(low-visibility) 조건 동안, 스로틀 제어 응답성이 더 중요해질 수 있다. 그 경우에, 컴퓨터 프로세서(3010)는 스로틀 제어 응답성에 대해 최고의 측정된 성능을 갖는 제어 시스템을 선택할 수 있다.
AV(100)를 제어할 수 있는 2개의 제어 시스템을 갖는 리던던트 제어 시스템은 제어 실패와 연관된 위험을 완화시킨다. 또한, 컴퓨터 프로세서가 성능 진단, 피드백, 환경 조건에 기초하여 제어 시스템들 중에서 선택할 수 있기 때문에, (정확도 및 효율성 면에서의) AV(100)의 운전 성능이 향상될 수 있다.
도 31은 본 개시의 적어도 하나의 구현예에 따른 제어 시스템에서의 리던던시를 제공하기 위한 방법(3100)을 나타내는 플로차트를 도시한다. 일 실시예에서, 도 30을 참조하여 위에서 기술된 리던던트 제어 시스템(3000)은 제어 시스템에서의 리던던시를 제공하기 위한 방법(3100)을 수행한다. 방법(3100)은 동작 정보를 수신하는 단계(블록(3110)), 어느 제어 동작에 영향을 미칠지를 결정하는 단계(블록(3120)), 및 제어 동작에 영향을 미칠 제어 시스템을 선택하는 단계(블록(3130))를 포함한다. 일단 제어 시스템이 선택되면, 방법(3100)은 제어 기능을 생성하는 단계(블록(3140)) 및 선택된 제어 시스템에 의해 출력을 생성하는 단계(블록(3150))를 포함한다.
제어 시스템에서의 리던던시를 제공하기 위한 방법(3100)은 동작 정보를 수신하는 단계(블록(3110))를 포함한다. 이것은, 적어도 하나의 프로세서에 의해, AV 시스템, AV 시스템의 제어 시스템, 및/또는 AV가 동작하고 있는 주변 환경에 관한 정보를 수신하는 것을 포함한다. 일 실시예에서, 적어도 하나의 프로세서는 도 30을 참조하여 이전에 기술된 바와 같은 컴퓨터 프로세서(3010)이다. 예를 들어, 리던던트 제어 시스템(3000)이 방법(3100)을 수행하고 있는 일 실시예에서, 컴퓨터 프로세서(3010)는 일정 시간 기간에 걸쳐 각각의 제어 시스템(3020, 3030)의 성능 통계에 관련된 정보를 수신한다. 예를 들어, 성능 통계는 각각의 제어 시스템(3020, 3030)의 응답성 및/또는 정확도에 관련될 수 있다. 도 30의 진단 모듈(3011)과 같은, 진단 모듈은 수신된 성능 정보를 분석하고 비교할 수 있다. 일 실시예에서, 수신된 성능 정보는 피드백 시스템으로부터 수신되는 피드백 정보이다. 피드백 시스템은 하나 이상의 제어 시스템에 대응할 수 있다. 일 실시예에서, 각각의 제어 시스템은 개별 피드백 시스템에 대응한다. 예를 들어, 제1 제어 시스템은 제1 피드백 시스템에 대응할 수 있는 반면, 제2 제어 시스템은 제2 피드백 시스템에 대응할 수 있다.
일 실시예에서, 진단 모듈은 수신된 동작 정보에 기초하여 적어도 하나의 제어 시스템의, 전체적인 고장 또는 부분적인 고장 중 어느 하나인, 고장을 식별한다. 고장은 고장 조건에 기초할 수 있다. 고장 조건은 제어 시스템이 적어도 부분적으로 동작하지 않는 것 또는 제어 시스템이 원하는 출력을 일관되게 제공하지 못하는 것을 포함할 수 있다. 일 실시예에서, 컴퓨터 프로세서(3010)는 AV 시스템이 주변 환경을 검출하고 이를 통과하여 운행하는 능력에 영향을 미칠 수 있는 비, 눈, 안개, 먼지, 또는 다른 환경 조건과 같은 환경 조건에 관한 정보를 수신한다.
방법(3100)은 어느 제어 동작에 영향을 미칠지를 결정하는 단계(블록(3120))를 또한 포함한다. 일 실시예에서, 컴퓨터 프로세서는 어느 제어 동작에 영향을 미칠지를 결정한다. 도 30을 참조하여 이전에 기술된 바와 같이, 이 결정은 계획 모듈에 기초할 수 있다. 제어 동작은 스로틀 동작 및/또는 조향 동작을 포함할 수 있다.
방법(3100)은 제어 동작에 영향을 미칠 제어 시스템을 선택하는 단계(블록(3130))를 추가로 포함한다. 도 30을 참조하여 앞서 나타낸 바와 같이, 도 30의 제어 시스템(3020, 3030)과 같은 제어 시스템은 동일한 제어 디바이스를 사용하여 실질적으로 유사한 제어 동작에 영향을 미치도록 구성될 수 있거나 또는 상이한 제어 디바이스를 사용하여 유사한 제어 동작에 영향을 미칠 수 있다. 일 실시예에서, 컴퓨터 프로세서는 수신된 동작 정보를 이용하여 제어 동작에 영향을 미치기 위해 어느 제어 시스템을 사용할지를 선택한다. 예를 들어, 컴퓨터 프로세서는 수신된 성능 통계를 사용하여 각각의 제어 시스템의 성능을 분석하고 더 바람직한 성능 통계에 대응하는 제어 시스템(예를 들면, 더 높은 응답성 또는 정확도를 보여주는 성능 통계를 갖는 제어 시스템)을 선택할 수 있다. 다른 예로서, 컴퓨터 프로세서는 하나의 제어 시스템에서 고장(전체적인 고장 또는 부분적인 고장 중 어느 하나)를 식별하고 고장을 식별하는 것에 기초하여 제어 동작에 영향을 미칠 다른 제어 시스템을 선택할 수 있다. 컴퓨터 프로세서는 또한 환경 조건에 관련된 수신된 정보를 사용할 수 있고, 이 정보를 사용하여 제어 동작에 영향을 미치기 위해 어느 제어 시스템을 사용할지를 선택할 수 있다. 예를 들어, AV가 비가 오는 조건에서 동작하고 있다고 가정하면, 컴퓨터 프로세서는 비가 오는 조건에서 동작하는 데 더 적합할 수 있는 제어 시스템을 선택할 수 있다.
방법(3100)은 제어 기능을 생성하는 단계(블록(3140))를 포함한다. 일단 제어 시스템이 사용을 위해 선택되면, 컴퓨터 프로세서는 제어 기능을 알고리즘적으로 생성하여 제어 시스템에 전송한다. 이러한 제어 기능은 실시간 센서 데이터 및/또는 사전 정보에 기초할 수 있다.
방법(3100)은 선택된 제어 시스템에 의해 출력을 생성하는 단계(블록(3150))를 또한 포함한다. 제어 기능을 수신하는 것에 응답하여, 선택된 제어 시스템은 하나 이상의 제어 동작에 영향을 미치는 출력을 제공한다. 출력은 가속 제어에 사용 가능한 데이터 및/또는 조향각 제어에 사용 가능한 데이터일 수 있다. 출력은 제어 알고리즘을 포함할 수 있다. 예를 들어, 알고리즘은 피드백 시스템으로부터 수신되는 피드백에 기초하는 피드백 알고리즘일 수 있다. 일 실시예에서, 제1 제어 시스템은 제어 동작에 영향을 미치기 위해 제1 알고리즘을 사용하는 반면, 제2 제어 시스템은 제어 동작에 영향을 미치기 위해 제2 알고리즘을 사용한다. 일 실시예에서, 하나의 알고리즘은 조향각을 조정하는 쪽으로의 바이어스(bias)를 조정 기술로서 포함한다. 일 실시예에서, 하나의 알고리즘은 스로틀을 조정하는 쪽으로의 바이어스를 조정 기술로서 포함한다.
출력은 적어도 하나의 입력에 따라 생성될 수 있다. 입력은 AV에 대한 헤딩을 선택하고 어느 도로 세그먼트를 횡단할지를 결정하기 위해 제어 시스템에 의해 사용되는 정보를 제공하는 계획 모듈로부터 입력될 수 있다. AV의 디바이스가 제어되고 있는 방식에 기초하여 예상되는 위치에 AV가 있는지를 제어 시스템이 결정할 수 있도록, 입력은 AV의 현재 위치를 기술하는 정보를 제공하는 로컬화 모듈로부터 수신되는 정보에 대응할 수 있다. 입력은 또한, 도 11을 참조하여 앞서 기술한 바와 같은, 피드백 모듈에 대응할 수 있다. 입력은 데이터베이스, 컴퓨터 네트워크 등으로부터 수신되는 정보를 또한 포함할 수 있다. 일 실시예에서, 입력은 원하는 출력이다. 원하는 출력은, 예를 들어, 계획 모듈에 의해 수신되는 정보에 기초한 속력 및 헤딩을 포함할 수 있다. 일 실시예에서, 제어 시스템은 동일한 입력에 기초하여 출력을 제공한다. 일 실시예에서, 하나의 제어 시스템은 제1 입력에 기초하여 출력을 제공하는 반면, 다른 제어 시스템은 제2 입력에 기초하여 출력을 제공한다.
센서 고장 리던던시
도 32는 센서 고장을 검출하고 핸들링하기 위한 자율 주행 차량(3205)(예를 들면, 도 1에 도시된 AV(100))의 센서 관련 아키텍처의 일 예를 도시한다. 자율 주행 차량(3205)은 제1 센서(3210a), 제1 버퍼(3215a), 제1 멀티플렉서(3225a), 제2 센서(3210b), 제2 버퍼(3215b), 제2 멀티플렉서(3225b), 제1 변환기(3220a), 제2 변환기(3220b), 이상 검출기(3240), 센서 선택기(3235), 및 자율 주행 차량 프로세서(3250)를 포함한다. 센서(3210a 및 3210b)의 다양한 예는 LiDAR, RADAR, 카메라, 라디오 주파수(RF), 초음파, 적외선, 및 자외선을 포함한다. 다른 유형의 센서가 가능하다. 2개의 센서가 도시되어 있지만, 자율 주행 차량(3205)은 임의의 개수의 센서를 사용할 수 있다.
일 실시예에서, 센서(3210a 및 3210b)는 자율 주행 차량이 동작 운전 상태에 있는 동안 자율 주행 차량(3205) 외부의 대상체, 기상 조건, 또는 도로 조건과 같은 하나 이상의 환경 입력으로부터 각자의 센서 데이터 스트림을 생성하도록 구성된다. 예를 들어, 프로세서(3250)는 센서 데이터 스트림을 사용하여 자연 장애물, 다른 차량, 보행자, 또는 자전거 운전자와 같은 대상체를 검출하고 피한다. 센서(3210a 및 3210b)는 동일한 유형의 정보를 검출하도록 구성된다. 센서(3210a 및 3210b)는 감지 주파수, 센서 배치, 감지 신호의 범위, 또는 감지 신호의 진폭과 같은 하나 이상의 상이한 센서 특성을 사용한다. 일부 구현예에서, 자율 주행 차량은 차량이 시동(turn on)되거나 활성화되었을 때 동작 운전 상태에 있다.
일 실시예에서, 프로세서(3250)는 버퍼(3215a 및 3215b) 및 멀티플렉서(3225a 및 3225b)를 통해 센서(3210a 및 3210b)와 통신 가능하게 결합된다. 일부 구현예에서, 센서(3210a 및 3210b)는 센서(3210a 및 3210b) 내의 아날로그 대 디지털 변환기(ADC)에 의해 생성되는 샘플을 포함하는 센서 데이터 스트림을 생성한다. 상이한 스트림으로부터의 샘플은 각자의 버퍼(3215a 및 3215b)에 저장된다. 센서 선택기(3235)는 멀티플렉서(3225a 및 3225b)를 제어하여 센서 데이터 스트림 간에 전환하도록 구성된다. 센서(3210a 및 3210b)가 정상적으로 기능하는 공칭 상태에서, 센서 선택기(3235)는 센서(3210a)로부터의 스트림이 프로세서(3250)로 흐르게 하기 위해 신호를 멀티플렉서(3225a)에 전송하고, 센서(3210b)로부터의 스트림이 프로세서(3250)로 흐르게 하기 위해 신호를 멀티플렉서(3225b)에 전송한다.
일 실시예에서, 이상 검출기(3240)는 각자의 센서(3210a 및 3210b)에 의해 생성되고 있는 센서 데이터 스트림 간의 차이에 기초하여 비정상 조건을 검출하도록 구성된다. 일부 구현예에서, 센서(3210a 및 3210b)를 덮는 먼지 또는 다른 물질에 의해 야기된 것과 같은 센서 폐색(sensor blockage) 또는 센서 오작동을 나타내는 하나 이상의 샘플 값에 기초하여 비정상 조건이 검출된다. 일부 구현예에서, 비정상 조건은 하나 이상의 누락된 샘플에 기초하여 검출 가능하다. 예를 들어, 제1 센서(3210a)는 특정 시간 인덱스에 대한 샘플을 생성했을 수 있지만, 제2 센서(3210b)는 동일한 시간 인덱스에 대한 샘플을 생성하지 않았다. 일 실시예에서, 비정상 조건은 AV(100) 또는 AV(100)의 서브시스템에 대한 악의적인 행위자로부터의 외부 침입 또는 공격의 결과이다. 예를 들어, 해커는 잘못된 데이터를 전송하거나, 데이터를 훔치거나, AV(100)가 오작동하게 하거나, 또는 다른 악의적인 목적으로 AV(100)에 액세스하려고 시도할 수 있다.
비정상 조건의 경우에, 변환기(3220a 및 3220b)는 기능하는 센서(3210a 및 3210b)로부터의 센서 데이터 스트림을 변환하여 정상적으로 기능하지 않는 센서(3210a 및 3210b)에 대한 대체 스트림을 생성한다. 이상 검출기(3240)가, 예를 들어, 제2 센서(3210b)와 연관된 비정상 조건을 검출하는 경우, 센서 선택기(3235)는 변환기(3220b)로부터의 출력, 예를 들면, 대체 스트림이 프로세서(3250)로 흐르게 하기 위해 신호를 멀티플렉서(3225b)에 전송할 수 있다.
예를 들어, 센서(3210a 및 3210b)는 자율 주행 차량(3205)의 좌측 및 우측으로부터와 같이 상이한 각도에서 자율 주행 차량(3205) 전방의 도로의 비디오를 캡처한다. 일 구현예에서, 우측 센서(3210b)가 고장나는 경우, 변환기(3220b)는 좌측 센서(3210a)에 의해 생성되는 스트림의 아핀 변환을 수행하여 우측 센서(3210b)에 의해 생성되고 있던 스트림의 대체 버전을 생성한다. 그와 같이, 2개의 상이한 카메라 각도를 예상하고 있는 프로세서(3250)에서 실행 중인 비디오 프로세싱 루틴은 대체 스트림을 사용하여 계속 기능할 수 있다.
다른 예에서, 센서(3210a 및 3210b)는 가시 및 적외선과 같은 상이한 파장 범위에서 이미지를 캡처한다. 일 구현예에서, 가시 범위 센서가 비정상 조건을 경험하는 경우, 가시 범위 이미지 데이터를 사용하여 보행자를 검출하도록 구성된 루틴이 적외선 센서 스트림의 변환된 버전을 사용하여 계속 기능할 수 있도록 변환기는 적외선 데이터를 가시 범위로 변환한다.
일부 구현예에서, 프로세서(3250)는 이상 검출기(3240) 및 센서 선택기(3235)를 포함한다. 예를 들어, 프로세서(3250)는 자율 주행 차량(3205)을 제어하기 위한 입력으로서 센서(3210a 및 3210b) 간에 전환하도록 구성된다. 일부 구현예에서, 프로세서(3250)는 센서(3210a 및 3210b)의 테스트 또는 리셋을 수행함으로써 비정상 조건을 해결하기 위해 진단 모듈과 통신한다.
도 33은 자율 주행 차량 및 그 내의 센서를 동작시키기 위한 프로세스의 일 예를 도시한다. 3305에서, 자율 주행 차량은, 제1 센서를 통해, 자율 주행 차량이 동작 운전 상태에 있는 동안 자율 주행 차량 외부의 하나 이상의 환경 입력으로부터 제1 센서 데이터 스트림을 생성한다. 센서의 다양한 예는 LiDAR, RADAR, 카메라, RF, 초음파, 적외선, 및 자외선을 포함한다. 다른 유형의 센서가 가능하다. 환경 입력의 다양한 예는 인근 대상체, 기상 조건, 또는 도로 조건을 포함한다. 다른 유형의 환경 입력이 가능하다. 일부 구현예에서, 자율 주행 차량 내에서 이 프로세스를 수행하는 프로세서는 센서로 하여금 센서 데이터 스트림을 생성하기 시작하게 하기 위한 커맨드를 전송하도록 구성된다.
3310에서, 자율 주행 차량은, 제2 센서를 통해, 자율 주행 차량이 동작 운전 상태에 있는 동안 자율 주행 차량 외부의 하나 이상의 환경 입력으로부터 제2 센서 데이터 스트림을 생성한다. 일 구현예에서, 제1 센서와 제2 센서는 동일한 유형의 정보를 검출하도록 구성된다. 예를 들어, 이러한 센서는 인근 대상체, 기상 조건, 또는 도로 조건과 같은 동일한 종류의 입력을 검출할 수 있다. 일부 구현예에서, 센서는 하나 이상의 상이한 센서 특성을 사용하여 동일한 유형의 정보를 검출할 수 있다. 센서 특성의 다양한 예는 감지 주파수, 카메라 배치, 감지 신호의 범위, 및 감지 신호의 진폭을 포함한다. 다른 유형의 센서 특성이 가능하다. 일부 구현예에서, 제2 센서는 동일한 센서 특성을 가짐으로써 제1 센서와 동일하다. 일부 구현예에서, 제2 센서는 상이한 주파수, 상이한 범위 또는 진폭, 또는 상이한 대면각(facing angle)과 같은 하나 이상의 상이한 센서 특성 하에서 동작한다. 예를 들어, 2개의 센서는 2개의 상이한 주파수 범위를 사용하여 동일한 유형의 정보, 예를 들면, 도로 위험요소의 존재를 검출할 수 있다.
3315에서, 자율 주행 차량은 제1 센서 데이터 스트림과 제2 센서 데이터 스트림 사이의 차이에 기초하여 비정상 조건이 있는지 여부를 결정한다. 비정상 조건의 다양한 예는 센서 값 변동이 임계치를 초과하는 것, 또는 센서 또는 시스템 오작동을 포함한다. 다른 유형의 비정상 조건이 가능하다. 예를 들어, 차이는 센서 데이터 스트림들 중 하나에서의 하나 이상의 누락된 샘플에 기초하여 발생할 수 있다. 일부 구현예에서, 차이는 2개 이상의 센서 데이터 스트림 간에 값을 비교함으로써 결정된다. 일부 구현예에서, 차이는 2개 이상의 센서 데이터 스트림 간에 이미지 프레임을 비교함으로써 결정된다. 예를 들어, 하나의 카메라 센서는 폐색하지만 다른 센서는 폐색하지 않는 먼지가 프레임마다 변하지 않는 대체로 흑색인 픽셀 또는 픽셀 값을 갖는 이미지 프레임을 생성할 수 있는 반면, 폐색되지 않은 카메라 센서는 더 높은 다이내믹 레인지의 색상을 갖는 이미지 프레임을 생성할 수 있다. 일부 구현예에서, 차이는 각각의 스트림의 값을 각자의 센서에 대한 과거 기준치(norm)와 비교함으로써 결정된다. 일부 구현예에서, 차이는 각각의 스트림에 대한 샘플링 윈도우 내에서 획득된 샘플의 개수를 카운팅함으로써 결정된다. 일부 구현예에서, 차이는 센서 스트림들 간의 공분산을 계산함으로써 결정된다.
3320에서, 자율 주행 차량은 비정상 조건이 검출되었는지 여부를 결정한다. 일부 구현예에서, 미리 결정된 개수의 누락된 센서 샘플은 비정상 조건 검출을 트리거할 수 있다. 일부 구현예에서, 미리 결정된 임계치보다 큰 상이한 스트림들 간의 샘플 편차는 비정상 조건 검출을 트리거한다. 일부 구현예에서, 센서는 오작동 코드를 보고하고, 이는, 차례로, 비정상 조건 검출을 트리거한다.
3325에서, 그러한 검출이 없는 경우, 자율 주행 차량은 제1 센서와 제2 센서를 이용하여 자율 주행 차량을 제어한다. 일 실시예에서, 센서 데이터 스트림은 인근 대상체에 부딪히는 것을 방지하거나, 속력을 조정하거나, 또는 제동을 조정하는 데 사용된다. 예를 들어, 자율 주행 차량은 센서들 중 하나 이상의 센서의 스트림으로부터의 샘플을 충돌 방지 루틴과 같은 자율 주행 차량의 제어 루틴에 전달한다. 3330에서, 비정상 조건이 검출된 경우, 자율 주행 차량은 검출된 비정상 조건에 응답하여 자율 주행 차량을 제어하기 위한 입력으로서 제1 센서, 제2 센서, 또는 제1 및 제2 센서 둘 모두 간에 전환한다. 일부 구현예에서, 제1 센서가 비정상 조건과 연관되면, 자율 주행 차량은 제2 센서의 스트림 또는 제2 센서의 스트림으로부터 도출된 대체 버전으로 전환한다. 일부 구현예에서, 자율 주행 차량은, 비정상 조건의 검출에 응답하여, 비정상 조건을 해결하기 위해 제1 센서, 제2 센서 또는 둘 모두에 대해 진단 루틴을 수행한다.
일부 구현예에서, 자율 주행 차량은 동일한 시간 인덱스에 대응하는 상이한 센서 데이터 스트림으로부터의 샘플에 액세스하고 샘플에 기초하여 3315에서의 차이를 계산한다. 미리 결정된 임계치를 초과하는 차이에 기반하여 비정상 조건이 검출된다. 일부 구현예에서, 각각의 스트림에 대한 차이는 스트림의 예상 값과의 비교에 기초하여 결정된다. 일부 구현예에서, 자율 주행 차량은 동일한 시간 범위에 대응하는 상이한 센서 데이터 스트림으로부터의 샘플에 액세스하고, 각각의 스트림에 대한 평균 샘플 값을 계산하며, 평균에 기초하여 3315에서의 차이를 계산한다.
일부 구현예에서, 제1 센서 데이터 스트림과 제2 센서 데이터 스트림 사이의 차이는 센서 데이터 스트림 내에서의 누락된 샘플의 검출에 기초한다. 예를 들어, 센서는 하나 이상의 누락된 샘플을 결과하는 일시적인 또는 부분적인 고장을 경험할 수 있으며, 예를 들어, 카메라가 하나 이상의 프레임을 누락시킬 수 있다. 또한, 자율 주행 차량은 차량 네트워크 혼잡, 프로세서 속도 저하(slow-down), (예를 들면, 해커에 의한) 외부 공격, 네트워크 침입, 또는 샘플 저장 오버플로와 같은 이벤트로 인해 샘플을 드롭시킬 수 있다. 누락된 샘플은 자율 주행 차량을 다른 센서로 전환하도록 트리거할 수 있다.
일 실시예에서, 예를 들면, 도 13 내지 도 29를 참조하여 이전에 기술된 바와 같이, 하나의 센서 시스템은 다른 센서 시스템에 의해 출력된 데이터를 사용하여 비정상 조건을 검출한다.
도 34는 센서 관련 비정상 조건을 검출하기 위한 프로세스의 일 예를 도시한다. 3405에서, 자율 주행 차량은 운전 조건에 응답하여 샘플링 시간 윈도우의 지속기간을 제어한다. 예를 들어, 빠른 속력과 같은 운전 조건, 기상 조건, 및 거친 도로 또는 비포장 도로와 같은 도로 조건은 덜 정확한 센서 판독치 또는 샘플들 간의 더 많은 변동을 제공할 수 있다. 그와 같이, 비정상 조건을 검출하기 위해 더 많은 샘플이 요구되는 경우, 샘플링 시간 윈도우가 증가된다. 그렇지만, 일부 구현예에서, 샘플링 시간 윈도우의 지속기간은 미리 결정된다. 3410에서, 자율 주행 차량은 샘플링 시간 윈도우에 걸쳐 제1 센서 데이터 스트림 내에서 제1 데이터 값 세트를 캡처한다. 일부 구현예에서, 데이터 값은 버퍼에 저장된다. 3415에서, 자율 주행 차량은 샘플링 시간 윈도우에 걸쳐 제2 센서 데이터 스트림 내에서 제2 데이터 값 세트를 캡처한다. 3420에서, 자율 주행 차량은 제1 데이터 값 세트와 제2 데이터 값 세트 사이의 편차에 기초하여 비정상 조건을 검출한다. 일부 구현예에서, 자율 주행 차량은 2개 이상의 데이터 값 세트 간의 차이를 결정하기 위해 이상 검출기를 동작시킨다. 일부 구현예에서, 폐색된 센서는 저분산(low-variance) 데이터 값 시리즈를 생성하는 반면, 폐색되지 않은 센서는 더 높은 다이내믹 레인지의 데이터 값을 생성한다. 예를 들어, 진흙이 카메라 렌즈를 완전히 덮고 있는 경우, 대응하는 카메라 센서는 색상, 밝기, 또는 둘 다의 변동이 최소한이거나 전혀 없는 값을 생성한다. 눈이 렌즈를 덮고 있는 경우, 센서가 진흙 예와는 상이한 값을 생성할 것이지만, 픽셀 값의 변동이 최소한이거나 전혀 없는 값을 여전히 생성할 것이다. 카메라 렌즈에 장애물 또는 이물질이 없는 경우, 카메라는 더 많은 색상 및 밝기 변동과 같은 더 많은 값 범위를 갖는 값을 생성한다. 각자의 데이터 값 세트에서의 그러한 편차는 비정상 조건 이벤트를 트리거할 수 있다.
도 35는 비정상 조건의 검출에 응답하여 센서 데이터 스트림을 변환하기 위한 프로세스의 일 예를 도시한다. 3505에서, 프로세스는 제1 및 제2 센서 데이터 스트림을 자율 주행 차량의 제어기에 제공한다. 이 예에서, 2개의 데이터 스트림이 사용된다. 그렇지만, 추가적인 데이터 스트림이 제어기에 제공될 수 있다.
3510에서, 프로세스는 제1 센서 데이터 스트림 내에서 비정상 조건이 검출되는지 여부를 결정한다. 비정상 조건이 검출되지 않는 경우, 3505에서, 프로세스는 센서 데이터 스트림을 계속 제공한다. 비정상 조건이 검출되는 경우, 3515에서, 프로세스는 제2 센서 데이터 스트림의 변환을 수행하여 제1 센서 데이터 스트림의 대체 버전을 생성한다. 일 실시예에서, 제2 센서 데이터 스트림의 변환을 수행하는 것은 제2 센서 데이터 스트림 내의 값에 액세스하고 값을 수정하여 제1 센서 데이터 스트림을 대체하기에 적합한 대체 스트림을 생성하는 것을 포함한다. 일부 구현예에서, 값을 수정하는 것은 아핀 변환과 같은 변환을 적용하는 것을 포함한다. 아핀 변환의 예는 평행이동(translation), 스케일링, 반사, 회전, 전단 매핑(shear mapping), 유사성 변환(similarity transformation) 및 이들의 합성(composition)을 임의의 조합 및 시퀀스로 포함한다. 다른 유형의 변환이 가능하다. 일부 구현예에서, 값을 수정하는 것은 전압 범위, 주파수, 또는 둘 모두를 변경하기 위해 필터를 적용하는 것을 포함한다. 예를 들어, 일부 구현예에서, 제2 센서의 출력 값 범위가 제1 센서보다 큰 경우, 제2 센서 값은 제1 센서에 대한 예상 값 범위 내에 들어맞도록 압축된다. 일부 구현예에서, 제2 센서의 출력 주파수 범위가 제1 센서와 상이한 경우, 제2 센서 값은 제1 센서에 대한 예상 주파수 범위 내에 들어맞도록 압축 및/또는 시프트된다.
3520에서, 프로세스는 제2 센서 데이터 스트림 및 제1 센서 데이터 스트림의 대체 버전을 제어기에 제공한다. 3525에서, 프로세스는 제1 센서에 대해 진단 루틴을 수행한다. 일 구현예에서, 진단 루틴은 어떤 센서 컴포넌트가 고장났는지 등을 식별하기 위해 센서 검사, 리셋, 또는 루틴을 수행하는 것을 포함한다.
3530에서, 프로세스는 비정상 조건이 해결되었는지 여부를 결정한다. 일부 구현예에서, 프로세스는 센서가 기능하고 있음을 보고하는 센서 상태 업데이트를 수신한다. 일부 구현예에서, 프로세스는 센서가 또다시 샘플을 생성하고 있음을 검출한다. 일부 구현예에서, 프로세스는 상이한 센서 데이터 스트림이 다시 한번 유사한 통계적 속성을 갖는다는 것을 검출한다. 예를 들어, 일부 구현예에서, 프로세스는 각각의 스트림에 대한 이동 평균(running average)을 계산하고 평균이 예상 범위 내에 있는지 여부를 결정한다. 일부 구현예에서, 프로세스는 각각의 스트림에 대한 이동 평균을 계산하고 평균들 사이의 차이가 미리 결정된 임계치를 초과하지 않는지 여부를 결정한다. 일부 구현예에서, 프로세스는 각각의 스트림에 대한 편차를 계산하고 편차가 미리 결정된 임계치를 초과하지 않는지 여부를 결정한다. 비정상 조건이 해결되는 경우, 3505에서, 프로세스는 공칭의 변환되지 않은 센서 데이터 스트림을 제어기에 계속 제공한다. 비정상 조건이 해결되지 않는 경우, 3515에서, 프로세스는 제2 센서 데이터 스트림 내의 다음 데이터 세트에 대해 변환을 계속 수행한다.
일부 구현예에서, AV는 주 센서(primary sensor) 및 보조 센서(secondary sensor)를 포함한다. 보조 센서가 트리거될 때, AV 제어기는 보조 센서가 주 센서와 동일한지 여부 또는 보조 센서가 하나 이상의 상이한 파라메트릭 설정, 물리적 설정, 또는 유형을 갖는지를 결정할 수 있다. 동일한 경우, AV 제어기는 주 센서 데이터 스트림을 보조 센서 데이터 스트림으로 대체할 수 있다. 상이한 경우, AV 제어기는 보조 센서로부터의 원시 센서 데이터를 변환하여 원하는 정보를 추출할 수 있다. 일부 구현예에서, 2개의 카메라가 상이한 각도로 도로를 향하고 있는 경우, 보조 카메라로부터의 데이터는 주 카메라의 시야와 매칭하도록 아핀 변환된다. 일부 구현예에서, 주 센서는 (예를 들면, 보행자를 검출하기 위한) 가시 범위 카메라이고 보조 센서는 (예를 들면, 대상체의 열 시그너처를 검출하기 위한 및/또는 열 시그너처 등에 기초하여 대상체의 검출을 확인하기 위한) 적외선 범위 카메라이다. 가시 범위 카메라가 문제를 경험하는 경우, 가시 범위 기반 이미지 프로세싱 알고리즘이 보행자를 계속 검출할 수 있도록 AV 제어기는 적외선 데이터를 가시 범위로 변환한다.
원격 조작 리던던시
도 36은 원격 조작 시스템(3690)의 예시적인 아키텍처를 예시한다. 일 실시예에서, 원격 조작 시스템(3690)은, 전형적으로 AV 시스템(3692)의 AV(3600)에 설치된, 원격 조작 클라이언트(3601)(예를 들면, 하드웨어, 소프트웨어, 펌웨어, 또는 이들 중 2개 이상의 조합)를 포함한다. 원격 조작 클라이언트(3601)는 AV 시스템(3692)의 컴포넌트(예를 들면, 센서(3603), 통신 디바이스(3604), 사용자 인터페이스 디바이스, 프로세서(3606), 제어기(3607), 또는 기능 디바이스, 또는 이들의 조합)와 상호작용하여 정보 및 커맨드를 전송 및 수신한다. 원격 조작 클라이언트(3601)는 통신 네트워크(3605)(예를 들면, 적어도 부분적으로 무선일 수 있는 로컬 네트워크(322) 및/또는 인터넷(328))를 통해 원격 조작 서버(3610)와 통신한다.
일 실시예에서, 원격 조작 서버(3610)는 AV(3600)로부터 떨어진 원격 위치에 위치된다. 원격 조작 서버(3610)는 통신 네트워크(3605)를 사용하여 원격 조작 클라이언트(3601)와 통신한다. 일 실시예에서, 원격 조작 서버(3610)는 다수의 원격 조작 클라이언트와 동시에 통신하고; 예를 들어, 원격 조작 서버(3610)는 다른 AV 시스템(3694)의 일부인 다른 AV(3650)의 다른 원격 조작 클라이언트(3651)와 통신한다. 클라이언트(3601 및 3651)는 하나 이상의 데이터 소스(3620)(예를 들면, 중앙 서버(3622), 원격 센서(3624), 및 원격 데이터베이스(3626) 또는 이들의 조합)와 통신하여 자율 주행 운전 능력을 구현하기 위한 데이터(예를 들면, 도로망, 맵, 날씨, 및 교통상황)를 수집한다. 원격 조작 서버(3610)는 또한 AV 시스템(3692 또는 3694 또는 둘 모두)에 대한 원격 조작을 위해 원격 데이터 소스(3620)와 통신한다.
일 실시예에서, 원격 조작 서버(3610)에 의해 제시되는 사용자 인터페이스(3612)는 인간 원격 조작자(3614)가 AV 시스템(3692)에 대한 원격 조작에 참여할 수 있게 한다. 일 실시예에서, 인터페이스(3612)는 AV 시스템(3692)이 인지했거나 인지하고 있는 것을 원격 조작자(3614)에게 렌더링한다. 렌더링은 전형적으로 센서 신호에 기초하거나 또는 시뮬레이션에 기초한다. 일 실시예에서, 사용자 인터페이스(3612)는 원격 조작자(3614)를 대신하여 임의의 결정을 내리는 자동 개입 프로세스(3611)로 대체된다. 일 실시예에서, 인간 원격 조작자(3614)는 증강 현실(AR) 또는 가상 현실(VR) 디바이스를 사용하여 AV 시스템(3692)에 대한 원격 조작에 참여한다. 예를 들어, 인간 원격 조작자(3614)는 센서 신호를 실시간으로 수신하기 위해 VR 박스에 앉아 있거나 VR 헤드셋을 사용한다. 유사하게, 인간 원격 조작자(3614)는 수신된 센서 신호에 AV 시스템(3692)의 진단 정보를 투영하거나 중첩하기 위해 AR 헤드셋을 이용한다.
일 실시예에서, 원격 조작 클라이언트(3601)는 단일 원격 조작자(3614)가 사용자 인터페이스(3612) 상에서 원격 조작 세션을 수행하도록 다양한 정보를 전송하고 집계하는 2개 이상의 원격 조작 서버와 통신한다. 일 실시예에서, 원격 조작 클라이언트(3601)는 개별 사용자 인터페이스를 상이한 원격 조작자에게 제공하는 2개 이상의 원격 조작 서버와 통신하여, 둘 이상의 원격 조작자가 원격 조작 세션에 공동으로 참여할 수 있게 한다. 일 실시예에서, 원격 조작 클라이언트(3601)는 둘 이상의 원격 조작자 중 어느 것이 원격 조작 세션에 참여할지를 결정하기 위한 로직을 포함한다. 일 실시예에서, 자동 프로세스는 인터페이스 및 원격 조작자를 대신하여 원격 조작을 자동화한다. 일 실시예에서, 둘 이상의 원격 조작자는 AR 및 VR 디바이스를 사용하여 AV 시스템(3692)을 협업적으로 원격 조작한다. 일 실시예에서, 둘 이상의 원격 조작자 각각은 AV 시스템(3692)의 개별 서브시스템을 원격 조작한다.
일 실시예에서, 생성된 원격 조작 이벤트에 기초하여, AV 시스템(3692)과 AV 및 원격 조작자(원격 상호작용) 간의 상호작용을 시작하도록 원격 조작 시스템에 요청하는, 원격 조작 요청이 생성된다. 요청에 응답하여, 원격 조작 시스템은 이용 가능한 원격 조작자를 할당하고 원격 조작 요청을 원격 조작자에게 제시한다. 일 실시예에서, 원격 조작 요청은 AV 시스템(3692)의 정보(예를 들면, 그 중에서도, 계획된 궤적, 인지된 환경, 차량 컴포넌트, 또는 이들의 조합)를 포함한다. 한편, 원격 조작자에 의해 원격 조작이 발행되기를 기다리는 동안, AV 시스템(3692)은 폴백 또는 디폴트 동작을 구현한다.
도 37은 원격 조작 클라이언트(3601)의 예시적인 아키텍처를 도시한다. 일 실시예에서, 원격 조작 클라이언트(3601)는 메모리(3722)에 저장되고 프로세서(3720)에 의해 실행되는 소프트웨어 모듈로서 구현되고, AV 시스템과의 원격 상호작용을 시작하도록 원격 조작 시스템에 요청하는 원격 조작 핸들링 프로세스(3736)를 포함한다. 일 실시예에서, 원격 조작 클라이언트(3601)는 데이터 버스(3710), 프로세서(3720), 메모리(3722), 데이터베이스(3724), 제어기(3734) 및 통신 인터페이스(3726) 중 하나 이상을 포함하는 하드웨어로서 구현된다.
일 실시예에서, AV 시스템(3692)은 자율적으로 동작한다. 일단 원격 조작자(3614)가 원격 조작 요청을 수락하고 원격 상호작용에 참여하면 원격 상호작용이 달라질 수 있다. 예를 들어, 원격 조작 서버(3610)는 가능한 원격 조작을 인터페이스(3612)를 통해 원격 조작자(3614)에게 추천하고, 원격 조작자(3614)는 추천된 원격 조작들 중 하나 이상을 선택하고 AV 시스템(3692)으로 하여금 선택된 원격 조작을 실행하게 하는 신호를 원격 조작자 서버(3610)가 AV 시스템(3692)에 전송하게 한다. 일 실시예에서, 원격 조작 서버(3610)는 AV 시스템의 환경을 사용자 인터페이스(3612)를 통해 원격 조작자(3614)에게 렌더링하고, 원격 조작자(3614)는 최적의 원격 조작을 선택하기 위해 환경을 분석한다. 일 실시예에서, 원격 조작자(3614)는 특정 원격 조작을 개시하기 위해 컴퓨터 코드를 입력한다. 예를 들어, 원격 조작자(3614)는 인터페이스(3612)를 사용하여 AV의 운전을 계속할 AV에 대한 추천된 궤적을 드로잉한다.
원격 상호작용에 기초하여, 원격 조작자(3614)는 적합한 원격 조작을 발행하고, 이 원격 조작은 이어서 원격 조작 핸들링 프로세스(3736)에 의해 프로세싱된다. 원격 조작 핸들링 프로세스(3736)는 AV(3600)의 자율 주행 운전 능력에 영향을 미치기 위해 원격 조작 요청을 AV 시스템(3692)에 전송한다. 일단 AV 시스템이 원격 조작의 실행을 완료(또는 원격 조작을 중단(abort))하거나 또는 원격 조작이 원격 조작자(3614)에 의해 종료(terminate)되면, 원격 조작이 종료된다. AV 시스템(3692)은 자율 주행 모드로 복귀하고 AV 시스템(3692)은 다른 원격 조작 이벤트에 대해 리스닝한다.
도 38은 예시적인 원격 조작 시스템(3800)을 예시한다. 일 실시예에서, (도 36 및 도 37에서의) 원격 조작 클라이언트(3601)는 (AV 시스템(3810)과 유사한) AV 시스템(3710)의 일부로서 통합된다. 일 실시예에서, 원격 조작 클라이언트(3601)는 AV 시스템(3692)과 별개되며 네트워크 링크를 통해 AV 시스템(3692)과의 통신을 유지한다. 일 실시예에서, 원격 조작 클라이언트(3601)는 AV 시스템 모니터링 프로세스(3820), 원격 조작 이벤트 핸들링 프로세스(3830), 및 원격 조작 커맨드 핸들링 프로세스(3840)를 포함한다. 일 실시예에서, AV 시스템 모니터링 프로세스(3820)는 분석을 위해, 예를 들어, AV 시스템(3692)의 상태를 결정하기 위해 시스템 정보 및 데이터(3692)를 판독한다. 분석 결과는 원격 조작 이벤트 핸들링 프로세스(3830)에 대한 원격 조작 이벤트(3822)를 생성한다. 원격 조작 이벤트 핸들링 프로세스(3830)는 원격 조작 요청(3834)을 원격 조작 서버(3850)에 전송하고 폴백 요청(3832)을 원격 조작 커맨드 핸들링 프로세스(3840)에 전송할 수 있다. 일 실시예에서, 원격 조작 서버(3850)는 원격 조작자(3870)가 AV 시스템(3692)과 원격 상호작용을 수행하기 위한 사용자 인터페이스(3860)를 제시한다. 사용자 인터페이스를 통한 원격 조작자(3870)의 액션에 응답하여, 원격 조작 서버는 원격 조작 커맨드 핸들링 프로세스(3840)에 의해 사용되는 형태로 원격 조작을 표현하는 원격 조작 커맨드(3852)를 발행한다. 원격 조작 커맨드 핸들링 프로세스(3840)는 원격 조작 커맨드를 AV 시스템(3692)에 유용한 형태로 표현된 AV 시스템 커맨드(382)로 변환하고 이 커맨드를 AV 시스템(3692)에 전송한다.
도 36 내지 도 38을 참조하면, 일 실시예에서, AV 시스템 모니터링 프로세스(3820)는 AV 시스템(3692)의 동작 상태(예를 들면, 속도, 가속도, 조향, 데이터 통신, 인지, 및 궤적 계획)를 모니터링하기 위해 시스템 정보 및 데이터(3812)를 수신한다. 동작 상태는 AV 시스템(3692)의 하드웨어 컴포넌트 또는 소프트웨어 프로세스 또는 둘 모두의 출력, 또는 연관된 양을 측정함으로써 출력을, 예를 들면, 계산적으로 또는 통계적으로, 간접적으로 추론하는 것, 또는 둘 모두에 기초할 수 있다. 일 실시예에서, AV 시스템 모니터링 프로세스(3820)는 동작 상태로부터 정보를 도출한다(예를 들면, 통계치를 계산하거나, 또는 모니터링된 조건을 데이터베이스에서의 지식과 비교함). 일 실시예에서, 모니터링 프로세스(3820)는 모니터링된 동작 상태 또는 도출된 정보 또는 둘 모두에 기초하여 원격 조작 이벤트(3822)를 검출하고 원격 조작(3852)에 대한 요청을 생성한다.
일 실시예에서, AV 시스템(3692)의 하나 이상의 컴포넌트(예를 들면, 도 1의 120)가 비정상적이거나 예상치 못한 조건에 있을 때 원격 조작 이벤트(3822)가 발생한다. 일 실시예에서, 비정상 조건은 AV 시스템(3692)의 하드웨어에서의 오작동이다. 예를 들어, 브레이크가 오작동하고; 펑크난 타이어가 발생하며; 비전 센서의 시야가 폐색되거나 비전 센서가 동작을 멈추며; 센서의 프레임 레이트가 임계치 아래로 떨어지고; AV 시스템(3692)의 움직임이 현재 조향각, 스로틀 레벨, 브레이크 레벨, 또는 이들의 조합과 매칭하지 않는다. 다른 비정상 조건은, 오류 소프트웨어 코드와 같은, 에러를 결과하는 소프트웨어에서의 오작동; 통신 네트워크(3605), 따라서 원격 조작자(3870)와 통신하는 감소된 능력과 같은 감소된 신호 강도; 증가된 잡음 레벨; AV 시스템(3692)의 환경에서 인지되는 알려지지 않은 대상체; 모션 계획 프로세스가 계획 에러로 인해 목표를 향한 궤적을 찾지 못하는 것; 데이터 소스(예를 들면, 데이터베이스(3602 또는 3626), 센서, 또는 맵 데이터 소스)에 대한 액세스 불가능성(inaccessibility); 또는 이들의 조합을 포함한다. 일 실시예에서, 비정상 조건은 하드웨어 오작동과 소프트웨어 오작동의 조합이다. 일 실시예에서, 비정상 조건은 비정상적인 환경 인자, 예를 들어, 폭우 또는 폭설, 극한 기상 조건, 비정상적으로 많은 수의 반사 표면의 존재, 교통 체증, 사고 등의 결과로 발생한다.
일 실시예에서, AV 시스템(3692)은 자율적으로 동작한다. 그러한 동작 동안, 제어 시스템(3607)(도 36)은 AV 시스템(3692)의 제어 동작에 영향을 미친다. 예를 들어, 제어 시스템(3607)은 스로틀/브레이크(1206) 및 조향각 액추에이터(1212)(도 12)를 제어하는 제어기(1102)를 포함한다. 제어기(3607)는 스로틀/브레이크(1206) 및 조향각 액추에이터(1212)와 같은 제어 컴포넌트에 의해 실행하기 위한 명령을 결정한다. 이러한 명령은 그러면 다양한 컴포넌트, 예를 들면, 조향각을 제어하기 위한 조향 액추에이터 또는 다른 기능성; 스로틀/브레이크(1206), 가속기, 또는 AV 시스템(3692)의 다른 이동성 컴포넌트(mobility component)를 제어한다.
일 실시예에서, AV 시스템 모니터링 프로세스(3820)는 원격 조작 이벤트(3822)를 생성하는 에러 리스트를 포함한다. 예를 들어, 브레이크 고장 또는 시각적 데이터의 손실과 같은 중대한 에러. 일 실시예에서, AV 시스템 모니터링 프로세스(3820)는 고장 또는 에러를 검출하고 원격 조작 이벤트(3822)를 생성하기 전에 검출된 에러를 에러 리스트와 비교한다. 그러한 경우에, 원격 조작 이벤트(3822)는 원격 조작 이벤트 핸들링 프로세스(3830)에 전송되고 원격 조작 이벤트 핸들링 프로세스(3830)는 원격 조작 요청(3834)을 서버(3850)에 전송한다. 원격 조작자(3870)는 통신 네트워크(3605)와 함께 동작하는 통신 인터페이스(3604)를 통해 원격 조작 클라이언트(3601)와 통신하는 원격 조작 커맨드 핸들링 프로세스(3840)에 원격 조작 커맨드(3852)를 전송한다. 통신 인터페이스(3604)는 네트워크 트랜시버(Wi-Fi 트랜시버, 및/또는 WiMAX 트랜시버, 블루투스 트랜시버, BLE 트랜시버, IR 트랜시버 등)를 포함할 수 있다. 통신 네트워크(3605)는 원격 조작 클라이언트(3601)가 명령을 수신하도록 외부 소스로부터(예를 들면, 원격 조작자(3870)로부터 서버(3850)를 통해) 명령을 송신한다.
일단 수신되면, 원격 조작 클라이언트(3601)는 외부 소스로부터 수신된 명령(예를 들면, 원격 조작자(3870)로부터 중계된 AV 시스템 커맨드(382))을 사용하여 스로틀/브레이크(1206) 및 조향각 액추에이터(1212)와 같은 AV 시스템(3692)에 의해 실행 가능한 명령을 결정하여, 원격 조작자(3870)가 AV 시스템(3692)의 동작을 제어할 수 있게 한다.
원격 조작 클라이언트(3601)는 원격 조작 이벤트(3822)를 트리거하는 하나 이상의 특정된 조건이 검출될 때 원격 조작자(3870)로부터 수신된 명령을 사용하는 것으로 전환한다. 이러한 특정된 조건은 센서들(3603) 중 하나 이상으로부터의 하나 이상의 입력에 기초한다. 원격 조작 클라이언트(3601)는 차량에 배치된 센서(3603)로부터 수신된 데이터가 하나 이상의 특정된 조건을 충족시키는지를 결정하고, 이 결정에 따라, 원격 조작자(3870)가 통신 네트워크(3605)를 통해 AV 시스템(3692)을 제어할 수 있게 한다. 원격 조작 클라이언트(3601)에 의해 검출되는 특정된 조건은 차량의 소프트웨어 및/또는 하드웨어의 고장과 같은 비상 조건을 포함한다. 예를 들어, 브레이크, 스로틀 또는 가속기 오작동, 펑크난 타이어, 차량의 연료 부족(running out of gas) 또는 배터리 충전과 같은 엔진 에러; 센서가 유용한 데이터를 제공하는 것을 중단하는 것, 또는 차량이 규칙 또는 입력에 응답하지 않는 것의 검출.
차량이 로컬 제어(제어기(3607))를 원격 조작 클라이언트(3601)를 통한 원격 조작자(3870)에 의한 제어로 전환하게 하는 특정된 조건은 자율 주행 차량의 탑승자로부터 수신되는 입력을 포함한다. 예를 들어, 탑승자는 센서에 의해 검출되지 않은 응급 상황(예를 들면, 의료 응급 상황, 화재, 사고, 홍수)을 인식할 수 있다. 차량의 사용자 또는 탑승자는 컴퓨팅 디바이스(146)(도 1)에 결합된 컴퓨터 주변기기들(132) 중 하나를 사용하여 또는 입력 디바이스(314) 또는 마우스, 트랙볼, 터치식 디스플레이(도 3)와 같은 커서 컨트롤러(316)에서 버튼을 누르거나 원격 조작 커맨드를 활성화시킬 수 있다. 이 버튼은 자율 주행 차량의 내부에서 임의의 탑승자가 쉽게 접근할 수 있게 위치되어 있다. 일 실시예에서, 다수의 승객을 위해 차량의 내부에서 다수의 버튼이 이용 가능하다.
원격 조작을 활성화시키는 특정된 조건은 환경 조건을 포함한다. 이러한 환경 조건은 비 또는 얼음으로 인한 미끄러운 도로, 안개 또는 눈으로 인한 가시성 상실과 같은, 날씨 관련 조건을 포함한다. 도로 상의 알려지지 않은 대상체의 존재, (예를 들면, 공사로 인한) 차선 마커의 손실, 또는 도로 유지 보수로 인한 고르지 않은 표면과 같은 환경 조건은 도로와 관련될 수 있다.
일 실시예에서, 원격 조작 클라이언트(3601)는 자율 주행 차량이 이전에 주행되지 않은 도로에 현재 위치되는지를 결정한다. 이전에 알려지지 않은 도로에 존재하는 것은 특정된 조건들 중 하나이며, 원격통신 시스템이 (예를 들면, 원격 조작자(3870)로부터의) 명령을 원격 조작 클라이언트(3601)에 제공할 수 있게 한다. 이전에 알려지지 않은 또는 주행되지 않은 도로는 AV의 현재 위치를 주행된 도로의 리스트를 포함하는 AV의 데이터베이스(3602)에 있는 것과 비교함으로써 결정될 수 있다. 원격 조작 클라이언트(3601)는 또한, 원격에 위치된 데이터베이스(134 또는 3626)와 같은, 원격 정보를 질의하기 위해 통신 네트워크(3605)를 통해 통신한다. 원격 조작 클라이언트(3601)는 차량의 현재 위치가 알려지지 않은 도로에 있다고 결정하기 전에 차량의 위치를 이용 가능한 모든 데이터베이스와 비교한다.
대안적으로, 자율 주행 차량(3600)는 단순히 자율 주행 차량(3600)의 제어 동작에 영향을 미치는 로컬 제어기(3607)를 포함한다. 원격 조작 클라이언트(3601)의 일부인 제2 프로세서(3720)는 제어기(3607)와 통신한다. 프로세서(3720)는 제어기(3607)에 의해 실행하기 위한 명령을 결정한다. 통신 네트워크(3605)는 통신 디바이스(3604)를 통해 프로세서(3720)와 통신하고, 원격통신 디바이스는 원격 조작자(3614)와 같은 외부 소스로부터 명령을 수신하도록 구성된다. 프로세서(3720)는 외부 소스로부터 수신된 명령으로부터 제어기(3607)에 의해 실행 가능한 명령을 결정하고, 하나 이상의 특정된 조건이 검출될 때 수신된 명령이 제어기(3607)를 제어할 수 있게 하도록 구성된다.
도 36 내지 도 38을 또다시 참조하면, 자율 주행 차량(3600)은 자율적으로 동작하거나 또는 원격 조작자(3614)에 의해 동작된다. 일 실시예에서, AV 시스템(3692)은 원격 조작과 자율 동작 사이에서 자동으로 전환된다. AV(3600)는 자율 주행 차량의 동작을 제어하는 제어기(3607)를 가지며, 프로세서(3606)는 제어기(3607)와 통신한다. 프로세서(3606)는 제어기(3607)에 의해 실행하기 위한 명령을 결정한다. 이러한 요소는 로컬 제어 시스템의 일부이다.
원격통신 디바이스(3604)는 제어기(3607)와 통신한다. 원격통신 디바이스(3604)는 (통신 네트워크(3605) 상의 원격 조작 서버(3610)를 통해) 원격 조작자(3614)와 같은 외부 소스로부터 명령을 수신한다. 원격통신 디바이스(3604)는 제2 리던던트 제어 소프트웨어 모듈로서 역할하는 원격 조작 클라이언트(3601)에 명령을 전송하기 위해 AV 시스템(3692)과 통신한다. 원격 조작 클라이언트(3601)의 일부인 프로세서(3720)는 외부 소스로부터(예를 들면, 원격 조작 서버(3610)를 통해 원격 조작자(3614)로부터) 수신되는 명령으로부터 제어기(3607)에 의해 실행 가능한 명령을 결정한다. 프로세서(3720)는 이어서 하나 이상의 특정된 조건이 검출될 때 로컬 제어기(3607)로부터 제어권을 받는다.
대안적으로, 원격 조작 클라이언트(3601)는 자율 주행 차량(3600)의 일부이고 자율 주행 차량(3600)의 동작을 또한 제어할 수 있는 제2 리던던트 제어 모듈로서 역할한다. 제2 제어기(3734)는 제2 프로세서(3720)와 통신하고, 제2 프로세서(3720)는 제2 제어기(3734)에 의해 실행하기 위한 명령을 결정한다. 원격통신 네트워크(3605)는 통신 디바이스(3604)를 통해 프로세서(3734)와 통신하고, 프로세서(3734)는 원격 조작자(3614)로부터 명령을 수신한다. 프로세서(3720)는 원격 조작자(3614)로부터 수신되는 신호로부터 제2 제어기(3734)에 의해 실행 가능한 명령을 결정하고, 하나 이상의 특정된 조건이 검출될 때 차량을 동작시키기 위해 신호를 제2 제어기(3734)로 중계한다.
(예를 들면, 로컬 제어기(3607)에 의한) 로컬 제어로부터 원격 조작 클라이언트(3601)를 통한 원격 조작자(3614)에 의한 제어로 차량에 대한 제어의 전환을 나타내는 특정된 조건은 자율 주행 차량의 탑승자로부터 수신되는 입력을 포함한다. 탑승자는 센서에 의해 검출되지 않은 응급 상황(예를 들면, 의료 응급 상황, 화재, 사고, 홍수)을 인식할 수 있다. 차량의 사용자 또는 탑승자는 컴퓨팅 디바이스(146)(도 1)에 결합된 컴퓨터 주변기기들(132) 중 하나를 사용하여 또는 입력 디바이스(314) 또는 마우스, 트랙볼, 터치식 디스플레이(도 3)와 같은 커서 컨트롤러(316)에서 버튼을 누르거나 원격 조작 커맨드를 활성화시킬 수 있다. 이 버튼은 자율 주행 차량의 내부에서 임의의 탑승자가 쉽게 접근할 수 있게 위치되어 있다. 일 실시예에서, 차량의 내부에서 다수의 버튼이 이용 가능하다.
원격 조작을 활성화시키는 특정된 조건은 환경 조건을 포함한다. 이러한 환경 조건은 비 또는 얼음으로 인한 미끄러운 도로, 안개 또는 눈으로 인한 가시성 상실과 같은, 날씨 관련 조건을 포함한다. 도로 상의 알려지지 않은 대상체의 존재, (예를 들면, 공사로 인한) 차선 마커의 손실, 또는 도로 유지 보수로 인한 고르지 않은 표면과 같은 환경 조건이 또한 도로와 관련될 수 있다.
일 실시예에서, 원격 조작 클라이언트(3601)는 자율 주행 차량이 이전에 주행되지 않은 도로에 현재 위치되는지를 결정한다. 이전에 알려지지 않은 도로에 존재하는 것은 특정된 조건들 중 하나로서 역할하고, 원격통신 시스템이 (예를 들면, 원격 조작자(3870)로부터의) 명령을 원격 조작 클라이언트(3601)에 제공할 수 있게 한다. 이전에 알려지지 않은 또는 주행되지 않은 도로는 AV의 현재 위치를 주행된 도로의 리스트를 포함하는 AV의 데이터베이스(3602)에 있는 것과 비교함으로써 결정될 수 있다. 원격 조작 클라이언트(3601)는 또한, 원격에 위치된 데이터베이스(134 또는 3626)와 같은, 원격 정보를 질의하기 위해 통신 네트워크(3605)를 통해 통신한다. 원격 조작 클라이언트(3601)는 차량의 현재 위치가 알려지지 않은 도로에 있다고 결정하기 전에 차량의 위치를 이용 가능한 모든 데이터베이스와 비교한다.
위에서 언급된 바와 같이, 도 36 내지 도 38을 계속 참조하면, AV 시스템(3692)의 자율 주행 동작 동안, AV 시스템(3692)은 때때로 원격 조작자(3614)와 통신하지 못할 수 있다. 이러한 통신 실패는, 소프트웨어 오작동 또는 하드웨어 오작동(예를 들면, 통신 디바이스(3604)의 오작동 또는 손상)과 같은, AV 시스템(3692)에서의 오작동으로서 발생할 수 있다. 통신 실패는, 소프트웨어 고장 또는 정전으로 인해 서버(3610)가 오프라인으로 되는 것과 같은, 원격 조작 시스템의 오작동으로서 발생할 수 있다. 통신 실패는 또한 AV(3600)가 그의 환경 여기저기로 이동하고 통신 네트워크(3605)의 네트워크 신호 강도가 감소되거나 존재하지 않는 영역으로 주행하는 자연스러운 결과로서 발생할 수 있다. 신호 강도의 손실은, 예를 들어, Wi-Fi 커버리지가 없는 "데드 존"에서, 터널, 주차장에서, 다리 아래에서, 또는 건물 또는 산과 같은 신호 차단 특징부로 둘러싸인 장소에서 발생할 수 있다.
일 실시예에서, AV 시스템(3692)은 원격 조작 시스템(3690)과 연락될 때는 연결성 운전 모드(connectivity driving mode)를 이용하고, 원격 조작 시스템과 연락되지 않을 때는 비-연결성 운전 모드(non-connectivity driving mode)를 이용한다. 일 실시예에서, AV 시스템(3692)은 원격 조작자(3614)에 대한 연결을 상실했음을 검출한다. AV 시스템(3692)은 연결성 운전 모드를 활용하고 더 낮은 위험을 갖는 운전 전략을 이용한다. 예를 들어, 더 낮은 위험을 갖는 운전 전략은 차량의 속도를 감소시키는 것, AV와 앞 차량 사이의 차간 거리(following distance)를 증가시키는 것, AV 차량으로 하여금 서행하게 하거나 정지하게 하는 센서에 의해 검출되는 대상체의 크기를 감소시키는 것 등을 포함한다. 운전 전략은 단일 차량 동작(예를 들면, 속력 변경) 또는 다수의 차량 동작을 포함할 수 있다.
일 실시예에서, AV(3600)는 연결성 모드에서 비-연결성 모드로 전환하기 전에 일정 시간 기간을 기다리며, 예를 들면, 2초, 5초, 60초를 기다린다. 지연(delay)은 차량의 거동에 빈번한 변화를 야기시키지 않으면서 AV 시스템(3692)이 진단을 실행할 수 있게 하거나, 또는 (예를 들어, AV(3600)가 터널을 청소하는 것과 같이) 연결성 상실이 다른 방식으로 해결될 수 있게 한다.
연결성 모드와 비-연결성 모드 전환을 수행하기 위해, AV 시스템(3692)은 자율 주행 모드 동안 AV(3600)의 제어 동작에 영향을 미치는 제어기(3607), 및 원격 조작자 모드에 있을 때 자율 주행 차량의 제어 동작에 영향을 미치는 제2 제어기(3734)를 갖는다. 원격통신 디바이스(3604)는 제2 제어기 모듈(3734)과 통신하고, 원격통신 디바이스(3604)는 통신 네트워크(3605)의 일부이고 원격 조작 서버(3610)를 통해 원격 조작자(3614)로부터 명령을 수신하도록 구성된다.
원격 조작 클라이언트(3601)는, 제어기(3734)에 의해 판독 가능하도록 명령을 중계하거나 변환하고 원격 조작자(3614)로부터 수신되는 명령을 바탕으로 제어 동작에 영향을 미치는, 프로세서(3720)를 포함한다. 프로세서(3720)는 또한 외부 소스와 통신하는, 예를 들면, 통신 네트워크(3605)와 통신하는 원격통신 디바이스(3604)의 능력을 결정하도록 구성된다. 프로세서(3720)가 통신이 적절하다고 결정하는 경우, 프로세서(3720)는 로컬 프로세서(3606) 및 제어기(3607)가, 예를 들면, 연결성 모드에서 동작하도록 제어 동작을 제어한다는 신호를 전송한다. 일 실시예에서, 프로세서(3720)는 통신이 적절하고 신호가 원격 조작자(3614)로부터 수신되고 있다고 결정한다. 프로세서(3720)는 명령을 제어기(3607)로 중계하거나, 또는 대안적으로, 원격 조작 클라이언트(3601)의 프로세서(3734)로 하여금 제어 동작에 대한 제어를 떠맡게 한다. 일 실시예에서, 프로세서(3720)는 통신 네트워크(3605)와의 통신이 적절하지 않다고 결정한다. 그러한 상황에서, 프로세서(3720)는, 예를 들면, 메모리(3722)로부터 비-연결성 운전 전략을 로딩한다. 프로세서(3720)는 이러한 비-연결성 운전 전략을 제어기(3607)에 또는 대안적으로 제어기(3734)에 전송한다. AV 시스템(3692)은 계속 동작하지만, 원격 조작자(3614)에 의한 개입이 예상될 수 있는 경우 정상 동작 동안과는 상이한 명령 세트로 동작한다.
통신 네트워크(3605)가 무선 네트워크인 일 실시예에서, 프로세서(3720)는 무선 네트워크의 신호 강도를 결정하는 것에 의해 원격 조작자(3614)와 통신하는 원격통신 디바이스(3604)의 능력을 결정한다. 임계 신호 강도가 선택되고, 검출된 신호 강도가 이 임계치 아래로 떨어지는 경우, AV 시스템(3692)은 프로세서(3720)가 차량의 동작 시스템에 커맨드를 전송하는 비-연결성 모드로 전환한다.
연결성 모드에서의 동작 동안, 프로세서(3606)는 AV(3600)의 동작을 결정하기 위해 알고리즘 또는 알고리즘 세트를 사용한다. 대안적으로, 프로세서(3722)는 동일한 알고리즘 또는 알고리즘 세트를 사용한다. 시스템이 비-연결성 모드에 진입할 때, 프로세서는 제1 알고리즘 또는 알고리즘 세트와 상이한 제2 알고리즘 또는 알고리즘 세트를 사용한다. 전형적으로, 제1 알고리즘의 출력은 제2 알고리즘의 출력보다 공격적인 움직임 및 거동을 생성하도록 AV의 동작에 영향을 미친다. 즉, 연결성 모드에 있을 때, 제어기(3607)는 차량이 비-연결성 모드에 있을 때(그리고, 예를 들어, 제어기(3822)에 의해 제어될 때) 실행되는 동작보다 높은 위험(예를 들어, 높은 속력)을 갖는 동작을 실행한다. AV 시스템(3692)이 인간 원격 조작자 개입을 상실했을 때, AV 시스템(3692)은 원격 조작 개입이 가능할 때보다 보수적인 거동을 나타낸다(예를 들면, 속도를 감소시키고, 차량과 앞 차량 사이의 차간 거리를 증가시키며, AV 차량으로 하여금 서행하게 하거나 정지하게 하는 센서에 의해 검출된 대상체의 크기를 감소시킴). 일 실시예에서, 제1 알고리즘의 출력은 제2 알고리즘의 출력보다 보수적인 움직임 및 거동을 생성하도록 AV의 동작에 영향을 미친다. 안전 장치(safety feature)로서, AV 시스템(3692)은 기본적으로 더 보수적인 명령 세트를 사용한다.
도 39는 에러가 검출될 때 AV(3600)에 대한 원격 조작자 제어를 활성화시키기 위한 프로세스(3900)를 나타내는 플로차트를 도시한다. 일 실시예에서, 프로세스는 AV(3600)의 원격 조작 클라이언트(3601) 컴포넌트에 의해 수행될 수 있다. 도 39를 참조하면, 단계(3902)에서, 자율 주행 차량은 제어 시스템에 의해 실행하기 위한 명령을 결정한다. 제어 시스템은 자율 주행 차량의 제어 동작에 영향을 미치도록 구성된다. 제어 프로세서는 제어 시스템 및 원격통신 시스템과 통신한다. 예를 들어, 제어 시스템은 제어 시스템(3607)일 수 있고, 원격통신 시스템은 도 36의 원격통신 시스템(3605)일 수 있다. 단계(3904)에서 원격통신 시스템은 외부 소스로부터 명령을 수신한다. 단계(3906)에서 제어 프로세서는 외부 소스로부터 수신된 명령으로부터 제어 시스템에 의해 실행 가능한 명령을 결정한다. 단계(3908)에서, 제어 프로세서는 또한 하나 이상의 특정된 조건이 검출될 때 원격통신 시스템과 통신하는 외부 소스가 제어 시스템을 제어할 수 있게 한다. 제어 프로세서는 자율 주행 차량 상의 하나 이상의 센서(예를 들면, 도 36에서의 센서(3603))로부터 또는 자율 주행 차량의 탑승자로부터(예를 들면, 자율 주행 차량 내부의 통지 인터페이스로부터) 수신되는 데이터가 하나 이상의 특정된 조건을 충족시키는지를 결정하고, 이 결정에 따라 원격통신 시스템이 제어 시스템을 동작시키고/제어 프로세서에 지시하며/제어 시스템을 개시할 수 있게 한다. 일 실시예에서, 제어 프로세서에 의해 검출된 하나 이상의 특정된 조건은 비상 조건, 환경 조건, 제어 프로세서의 고장, 또는 자율 주행 차량이 이전에 주행되지 않은 도로에 있는지(예를 들면, 주행된 도로에 대한 데이터베이스로부터의 데이터를 사용함)를 포함한다. 일 실시예에서, 원격통신 시스템은 원격 조작자(예를 들면, 원격 조작자(3614))에 의해 이루어진 입력에 기초한 명령을 수신한다.
도 39는 또한 AV(3600)에 대한 리던던트 원격 조작자 및 인간 제어를 활성화시키기 위한 프로세스(3900)를 나타내는 플로차트를 도시한다. 일 실시예에서, 프로세스는 AV(3600)의 원격 조작 클라이언트(3601) 컴포넌트에 의해 수행될 수 있다. 도 39를 참조하면, 단계(3902)에서, 자율 주행 차량은 제어 시스템에 의해 실행하기 위한 명령을 결정한다. 예를 들어, 제어 시스템은 도 36의 제어 시스템(3607)일 수 있다. 제어 시스템은 자율 주행 차량의 제어 동작에 영향을 미치도록 구성된다. 제어 프로세서는 제어 시스템과 통신하고 원격통신 시스템과 통신한다. 예를 들어, 원격통신 시스템은 도 36의 원격통신 시스템(3605)일 수 있다. 단계(3904)에서, 원격통신 시스템은 서버(3600)를 통해 외부 소스, 예를 들면, 원격 조작자(3614)로부터 명령을 수신한다. 단계(3906)에서, 제어 프로세서는 외부 소스로부터 수신된 명령으로부터 제어 시스템에 의해 실행 가능한 명령을 중계한다. 일 실시예에서, 명령이 중계되거나 또는 명령을 사용 가능한 포맷으로 변환하기 위해 계산이 행해진다. 단계(3908)에서, 제어 프로세서는 또한 원격통신 시스템과 통신하는 외부 소스가 제어 시스템을 제어할 수 있게 한다. 일 실시예에서, 제어 프로세서는 하나 이상의 특정된 조건이 검출될 때 원격통신 시스템이 제어 시스템을 동작시킬 수 있게 한다. 일 실시예에서, 특정된 조건은 자율 주행 차량 상의 하나 이상의 센서로부터 또는 자율 주행 차량의 탑승자로부터 또는 자율 주행 차량 내부 내의 통지 인터페이스로부터 수신되는 데이터에 기초하고, 이 결정에 따라 원격통신 시스템이 제어 시스템을 제어할 수 있게 한다. 일 실시예에서, 제어 프로세서에 의해 검출된 하나 이상의 특정된 조건은 비상 조건, 환경 조건, 제어 프로세서의 고장, 자율 주행 차량이 이전에 주행되지 않은 도로에 있는지(예를 들면, 주행된 도로에 대한 데이터베이스로부터의 데이터를 사용함)를 또한 포함한다. 일 실시예에서, 원격통신 시스템은 원격 조작자에 의해 이루어진 입력에 기초한 명령을 수신한다.
도 40은 원격 조작자에 대한 이용 가능한 연결성에 따른 상이한 운전 전략에 따라 AV(3600)의 동작을 제어하기 위한 프로세스(4000)를 나타내는 플로차트를 도시한다. 일 실시예에서, 프로세스는 AV(3600)의 원격 조작 클라이언트(3601)에 의해 수행될 수 있다. 도 40을 참조하면, 단계(4002)에서, 자율 주행 차량은 외부 소스로부터 제어 시스템에 의해 실행하기 위한 명령을 수신한다. 제어 시스템은 자율 주행 차량의 제1 제어 시스템 또는 제2 제어 시스템, 예를 들어, 도 36의 제어기(3607) 또는 도 37의 제어기(3734)일 수 있다. 제어 프로세서는 제어 시스템과 통신하고, 외부 소스, 예를 들면, 프로세서(3720 또는 3606)로부터 명령을 송신하는 원격통신 시스템과 통신한다. 단계(4004)에서, 이 시스템은 외부 소스로부터 수신된 명령으로부터 제어 시스템에 의해 실행 가능한 명령을 결정한다. 이 시스템은, 단계(4008)에서, 외부 소스와 통신하는 원격통신 시스템의 능력을 결정하고, 이어서 이 결정에 따라 제1 제어 시스템 또는 제2 제어 시스템을 선택한다. 일 실시예에서, 외부 소스와 통신하는 원격통신 시스템의 능력을 결정하는 것은 원격통신 시스템(예를 들면, 원격통신 시스템(3605))이 명령을 송신하는 무선 네트워크의 신호 강도의 메트릭을 결정하는 것(도 41에서의 플로차트(4100)의 단계(4102)) 또는 자율 주행 차량 상의 무선 신호 수신기가 손상되었다는 표시를 결정하는 것을 포함한다. 일 실시예에서, 제1 제어 시스템은 제1 알고리즘을 사용하고 제2 제어 시스템은 제1 제어 시스템과 상이한 제2 알고리즘을 사용한다. 일 실시예에서, 제1 알고리즘의 출력은 제2 알고리즘의 출력보다 공격적이거나 보수적인 자율 주행 차량의 움직임을 생성하기 위해 제1 제어 동작에 영향을 미치고, 디폴트로서 하나의 알고리즘을 사용한다.
플릿 리던던시
일부 실시예에서, 다수의 자율 주행 차량(예를 들면, 자율 주행 차량 플릿)은 서로 정보를 교환하고, 교환된 정보에 기초하여 자동화된 태스크를 수행한다. 일 예로서, 각각의 자율 주행 차량은, 자율 주행 차량 자체에 관한 정보(예를 들면, 차량 상태, 위치, 속력, 헤딩 또는 배향, 고도, 배터리 레벨 등), 자율 주행 차량에 의해 수행되거나 수행될 동작에 관한 정보(예를 들면, 자율 주행 차량에 의해 횡단되는 루트, 자율 주행 차량에 의해 횡단될 계획된 루트, 자율 주행 차량의 의도된 목적지, 자율 주행 차량에 할당된 태스크 등), 자율 주행 차량의 환경에 관한 정보(예를 들면, 자율 주행 차량에 근접한 대상체를 나타내는 센서 데이터, 교통 정보, 사이니지 정보 등), 또는 자율 주행 차량의 동작과 연관된 임의의 다른 정보와 같은, 다양한 차량 원격 측정 데이터(vehicle telemetry data)를 개별적으로 생성 및/또는 수집할 수 있다. 각각의 자율 주행 차량이 그의 동작을 수행하는 데 사용되는 더 많은 양의 정보에 액세스할 수 있도록, 이러한 정보가 자율 주행 차량들 사이에 교환될 수 있다.
이러한 정보 교환은 다양한 기술적 이점을 제공할 수 있다. 예를 들어, 자율 주행 차량들 사이의 정보 교환은 자율 주행 차량 플릿 전체의 리던던시를 개선시켜, 이에 의해 그의 동작의 효율성, 안전성 및 유효성을 개선시킬 수 있다. 일 예로서, 제1 자율 주행 차량이 특정한 루트를 따라 주행할 때, 제1 자율 주행 차량은 그의 동작에 영향을 미칠 수 있는 특정 조건(예를 들면, 도로에 있는 장애물, 교통 혼잡 등)을 조우할 수 있다. 제1 자율 주행 차량은 이러한 조건에 관한 정보를 다른 자율 주행 차량에 송신할 수 있고, 따라서 다른 자율 주행 차량이 또한, 해당 동일 루트를 아직 횡단하지 않았더라도, 이 정보에 액세스할 수 있다. 따라서, 다른 자율 주행 차량은 루트의 조건을 참작하고(예를 들면, 해당 루트를 완전히 피하고, 특정 지역에서 더 천천히 횡단하며, 특정 지역에서 특정 차선을 사용하고, 기타임) 그리고/또는 루트의 조건을 더 잘 예견하기 위해 그의 동작을 선제적으로 조정할 수 있다.
유사하게, 하나 이상의 추가적인 자율 주행 차량이 해당 동일 루트를 횡단할 때, 이들은 해당 조건 및/또는 제1 자율 주행 차량이 관측하지 못한 임의의 다른 조건에 관한 추가적인 정보를 독립적으로 수집하고, 해당 정보를 다른 자율 주행 차량에 송신할 수 있다. 따라서, 루트에 관한 리던던트 정보가 수집되어 자율 주행 차량들 사이에서 교환되며, 이에 의해 임의의 조건이 누락될 가능성을 감소시킨다. 게다가, 자율 주행 차량은 리던던트 정보에 기초하여 루트의 조건에 관한 합의를 결정할 수 있고, 이에 의해 (예를 들면, 조건을 잘못 식별하거나 잘못 해석할 가능성을 감소시킴으로써) 수집된 정보의 정확도 및 신뢰성을 개선시킬 수 있다. 따라서, 자율 주행 차량은 더 효과적이고 더 안전하며 더 효율적인 방식으로 동작할 수 있다.
도 42는 영역(4206)에 있는 자율 주행 차량(4202a 내지 4202c) 플릿 간의 예시적인 정보 교환을 도시한다. 일부 실시예에서, 자율 주행 차량(4202a 내지 4202c) 중 하나 이상은 도 1과 관련하여 기술된 자율 주행 차량(100)과 유사한 방식으로 구현된다.
일부 실시예에서, 자율 주행 차량(4202a 내지 4202c) 플릿은 서로 직접적으로(예를 들면, 그들 사이의 피어-투-피어 네트워크 연결을 통해) 정보를 교환한다. 일 예로서, 정보가 (예를 들면, 라인(4204a)으로 표시된 바와 같이) 자율 주행 차량(4202a)과 자율 주행 차량(4202b) 사이에서 교환된다. 다른 예로서, 정보가 (예를 들면, 라인(4204b)으로 표시된 바와 같이) 자율 주행 차량(4202b)과 자율 주행 차량(4202c) 사이에서 교환된다. 실제로, 자율 주행 차량은 임의의 다른 개수(예를 들면, 1개, 2개, 3개, 4개 또는 그 이상)의 다른 자율 주행 차량과 정보를 교환할 수 있다.
일부 실시예에서, 자율 주행 차량(4202a 내지 4202c) 플릿은 중개자(intermediary)를 통해 정보를 교환한다. 예를 들어, 자율 주행 차량(4202a 내지 4202c) 각각은 (예를 들면, 라인(4204c 내지 4204e)으로 표시된 바와 같이) 정보를 컴퓨터 시스템(4200)에 송신한다. 차례로, 컴퓨터 시스템(4200)은 수신된 정보의 일부 또는 전부를 자율 주행 차량(4202a 내지 4202c) 중 하나 이상에 송신할 수 있다. 일부 실시예에서, 컴퓨터 시스템(4200)은 자율 주행 차량(4202a 내지 4202c) 각각으로부터 멀리 떨어져 있다(예를 들어, 원격 서버 시스템). 일부 실시예에서, 컴퓨터 시스템(4200)은 도 1과 관련하여 기술된 원격 서버(136) 및/또는 도 1 및 도 3과 관련하여 기술된 클라우드 컴퓨팅 환경(300)과 유사한 방식으로 구현된다.
다른 예로서, 자율 주행 차량은 정보를 다른 자율 주행 차량에 송신할 수 있다. 차례로, 해당 자율 주행 차량은 수신된 정보의 일부 또는 전부를 다른 자율 주행 차량에 송신할 수 있다. 일부 실시예에서, 자율 주행 차량으로부터의 정보는, 정보가 여러 자율 주행 차량 간에 순차적으로 분배되도록, 체인 내의 다른 다수의 자율 주행 차량에 송신될 수 있다.
일부 실시예에서, 정보 교환은 단방향이다(예를 들면, 자율 주행 차량은, 직접적으로 또는 간접적으로, 정보를 다른 자율 주행 차량에 송신하지만, 그에 회답하여 해당 자율 주행 차량으로부터 어떠한 정보도 수신하지 않음). 일부 실시예에서, 정보 교환은 양방향이다(예를 들면, 자율 주행 차량은, 직접적으로 또는 간접적으로, 정보를 다른 자율 주행 차량에 송신하고, 또한 그에 회답하여, 직접적으로 또는 간접적으로, 해당 자율 주행 차량으로부터 정보를 수신함).
일부 실시예에서, 하나의 자율 주행 차량으로부터의 정보가 플릿 내의 모든 다른 자율 주행 차량과 교환된다. 예를 들어, 도 42에 도시된 바와 같이, 자율 주행 차량(4202b)으로부터의 정보가 다른 자율 주행 차량(4202a 및 4202c) 각각과 공유된다. 일부 실시예에서, 하나의 자율 주행 차량으로부터의 정보가 플릿 내의 다른 자율 주행 차량의 서브세트와 교환된다. 예를 들어, 도 1에 도시된 바와 같이, 자율 주행 차량(4202a)으로부터의 정보가 다른 자율 주행 차량(4202b)과는 공유되지만, 다른 자율 주행 차량(4202c)과는 공유되지 않는다.
일부 실시예에서, 정보가 특정 영역에 있는(예를 들어, 영역(4206) 내의) 자율 주행 차량들 사이에서 선택적으로 교환된다. 예를 들어, 정보가 특정 정치적 영역(예를 들면, 특정 국가, 주, 카운티, 지방(province), 도시, 타운, 자치구(borough) 또는 다른 정치적 영역), 특정 미리 정의된 영역(예를 들면, 특정 미리 정의된 경계를 갖는 영역), 일시적으로 정의된 영역(예를 들면, 동적 경계를 갖는 영역), 또는 임의의 다른 영역에 있는 자율 주행 차량들 사이에서 교환될 수 있다. 일부 실시예에서, 정보가 서로 근접해 있는(예를 들면, 서로로부터의 특정 임계 거리 미만에 있는) 자율 주행 차량들 사이에서 선택적으로 교환된다. 일부 경우에, 정보가, 영역 또는 대한 자율 주행 차량의 서로에 근접성에 관계없이, 자율 주행 차량들 사이에서 교환된다.
자율 주행 차량(4202a 내지 4202c) 및/또는 컴퓨터 시스템(4200)은 하나 이상의 통신 네트워크를 통해 정보를 교환할 수 있다. 통신 네트워크는 데이터가 전송되고 공유될 수 있는 임의의 네트워크일 수 있다. 예를 들어, 통신 네트워크는 LAN(local area network) 또는, 인터넷과 같은, WAN(wide-area network)일 수 있다. 통신 네트워크는 다양한 네트워킹 인터페이스, 예를 들어, (Wi-Fi, WiMAX, 블루투스, 적외선, 셀룰러 또는 모바일 네트워킹, 라디오 등과 같은) 무선 네트워킹 인터페이스를 사용하여 구현될 수 있다. 일부 실시예에서, 자율 주행 차량(4202a 내지 4202c) 및/또는 컴퓨터 시스템(4200)은, 하나 이상의 네트워킹 인터페이스를 사용하여, 하나 초과의 통신 네트워크를 통해 정보를 교환한다.
다양한 정보가 자율 주행 차량들 사이에서 교환될 수 있다. 예를 들어, 자율 주행 차량은 차량 원격 측정 데이터(예를 들면, 자율 주행 차량의 하나 이상의 센서에 의해 획득되는 하나 이상의 측정치, 판독치, 및/또는 샘플을 포함하는 데이터)를 교환할 수 있다. 차량 원격 측정 데이터는 다양한 정보를 포함할 수 있다. 일 예로서, 차량 원격 측정 데이터는 하나 이상의 센서(예를 들면, 광 검출기, 카메라 모듈, LiDAR 모듈, RADAR 모듈, 교통 신호등 검출 모듈, 마이크로폰, 초음파 센서, TOF(time-of-flight) 깊이 센서, 속력 센서, 온도 센서, 습도 센서, 및 강우 센서 등)로부터 획득되는 데이터를 포함할 수 있다. 예를 들어, 이것은 자율 주행 차량의 센서에 의해 캡처되는 하나 이상의 비디오, 이미지, 또는 사운드를 포함할 수 있다.
다른 예로서, 차량 원격 측정 데이터는 자율 주행 차량의 현재 조건에 관한 정보를 포함할 수 있다. 예를 들어, 이것은 (예를 들면, GNSS 센서를 갖는 로컬화 모듈에 의해 결정되는 바와 같은) 자율 주행 차량의 위치, (예를 들면, 속력 또는 속도 센서에 의해 결정되는 바와 같은) 속력 또는 속도, (예를 들면, 가속도계에 의해 결정되는 바와 같은) 가속도, (예를 들면, 고도계에 의해 결정되는 바와 같은) 고도, 및/또는 (예를 들면, 나침반 또는 자이로스코프에 의해 결정되는 바와 같은) 헤딩 또는 배향에 관한 정보를 포함할 수 있다. 이것은 자율 주행 차량 및/또는 그의 서브컴포넌트들 중 하나 이상의 서브컴포넌트의 상태에 관한 정보를 또한 포함할 수 있다. 예를 들어, 이것은 자율 주행 차량이 정상적으로 동작하고 있음을 나타내는 정보, 또는 자율 주행 차량의 동작에 관련된 하나 이상의 이상(abnormality)을 나타내는 정보(예를 들면, 에러 표시, 경고, 고장 표시 등)를 포함할 수 있다. 다른 예로서, 이것은 자율 주행 차량의 하나 이상의 특정 서브컴포넌트가 정상적으로 동작하고 있음을 나타내는 정보, 또는 해당 서브컴포넌트에 관련된 하나 이상의 이상을 나타내는 정보를 포함할 수 있다.
다른 예로서, 차량 원격 측정 데이터는 자율 주행 차량의 과거 조건에 관한 정보를 포함할 수 있다. 예를 들어, 이것은 자율 주행 차량의 과거 위치, 속력, 가속도, 고도, 및/또는 헤딩 또는 배향에 관한 정보를 포함할 수 있다. 이것은 자율 주행 차량 및/또는 그의 서브컴포넌트들 중 하나 이상의 서브컴포넌트의 과거 상태에 관한 정보를 또한 포함할 수 있다.
다른 예로서, 차량 원격 측정 데이터는 특정 위치 및 시간에서 자율 주행 차량에 의해 관측된 현재 및/또는 과거 환경 조건에 관한 정보를 포함할 수 있다. 예를 들어, 이것은 자율 주행 차량에 의해 관측된 도로의 교통 조건, 자율 주행 차량에 의해 관측된 도로의 폐쇄 또는 차단, 자율 주행 차량에 의해 관측된 교통량 및 교통 속력, 자율 주행 차량에 의해 관측된 대상체 또는 위험 요소, 자율 주행 차량에 의해 관측된 날씨에 관한 정보, 또는 다른 정보를 포함할 수 있다.
일부 실시예에서, 차량 원격 측정 데이터는 관측치 또는 측정치가 획득된 특정 위치 및/또는 시간의 표시를 포함한다. 예를 들어, 차량 원격 측정 데이터는 각각의 관측치 또는 측정치와 연관된 지리적 좌표 및 타임스탬프를 포함할 수 있다.
일부 실시예에서, 차량 원격 측정 데이터는 또한 차량 원격 측정 데이터가 유효한 시간 기간을 표시한다. 이것이 유용할 수 있는데, 그 이유는, 예를 들어, 자율 주행 차량이, 데이터의 신뢰성을 결정할 수 있도록, 수신된 데이터가 사용하기에 충분히 "신선(fresh)한지"(예를 들면, 10초, 30초, 1분, 5분, 10분, 30분, 1 시간, 2 시간, 3 시간, 12 시간, 또는 24 시간 내의 것인지) 여부를 결정할 수 있기 때문이다. 예를 들어, 자율 주행 차량이 그에 근접해 있는 다른 차량의 존재를 검출하는 경우, 자율 주행 차량은 검출된 차량에 관한 정보가 (예를 들면, 검출된 차량이 상대적으로 짧은 시간 기간 동안 특정 위치에 있을 것으로 예상되기 때문에) 상대적으로 더 짧은 시간 기간 동안 유효하다는 것을 표시할 수 있다. 다른 예로서, 자율 주행 차량이 사이니지(예를 들면, 정지 표지판)의 존재를 검출하는 경우, 자율 주행 차량은 검출된 사이니지에 관한 정보가 (예를 들면, 사이니지가 상대적으로 더 긴 시간 기간 동안 일정 위치에 있을 것으로 예상되기 때문에) 상대적으로 더 긴 시간 기간 동안 유효하다는 것을 표시할 수 있다. 실제로, 차량 원격 측정 데이터가 유효한 시간 기간은 차량 원격 측정 데이터의 성질에 따라 달라질 수 있다.
자율 주행 차량(4202a 내지 4202c)은 상이한 빈도, 레이트, 또는 패턴에 따라 정보를 교환할 수 있다. 예를 들어, 자율 주행 차량(4202a 내지 4202c)은 주기적으로(예를 들면, 순환적으로 반복되는 방식으로, 예컨대, 특정 빈도로) 정보를 교환할 수 있다. 다른 예로서, 자율 주행 차량(4202a 내지 4202c)은 간헐적으로 또는 산발적으로 정보를 교환할 수 있다. 다른 예로서, 자율 주행 차량(4202a 내지 4202c)은 하나 이상의 트리거 조건이 충족되는 경우(예를 들면, 특정 유형의 정보가 자율 주행 차량에 의해 수집될 때, 특정 유형의 시간에, 특정 이벤트가 발생할 때 등) 정보를 교환할 수 있다. 다른 예로서, 자율 주행 차량은 연속적으로 또는 실질적으로 연속적으로 정보를 교환할 수 있다.
일부 실시예에서, 자율 주행 차량(4202a 내지 4202c)은 이들이 수집하는 정보의 서브세트를 교환한다. 일 예로서, 각각의 자율 주행 차량(4202a 내지 4202c)은 (예를 들면, 하나 이상의 센서를 사용하여) 정보를 수집할 수 있고, 수집된 정보의 서브세트를 하나 이상의 다른 자율 주행 차량(4202a 내지 4202c)과 선택적으로 교환할 수 있다. 일부 실시예에서, 자율 주행 차량(4202a 내지 4202c)은 이들이 수집하는 정보의 전부 또는 실질적으로 전부를 교환한다. 일 예로서, 각각의 자율 주행 차량(4202a 내지 4202c)은 (예를 들면, 하나 이상의 센서를 사용하여) 정보를 수집할 수 있고, 수집된 정보의 전부 또는 실질적으로 전부를 하나 이상의 다른 자율 주행 차량(4202a 내지 4202c)과 선택적으로 교환할 수 있다.
자율 주행 차량들 사이의 정보 교환은 자율 주행 차량 플릿 전체의 리던던시를 개선시켜, 이에 의해 그의 동작의 효율성, 안전성 및 유효성을 개선시킬 수 있다. 일 예로서, 자율 주행 차량은 특정 루트의 조건에 관한 정보를 교환할 수 있으며, 따라서 다른 자율 주행 차량이 해당 조건을 참작하고 그리고/또는 루트의 조건을 더 잘 예견하기 위해 그의 동작을 선제적으로 조정할 수 있다.
일 예로서, 도 43은 영역(4206)에 있는 2개의 자율 주행 차량(4202a 및 4202b)을 도시한다. 자율 주행 차량(4202a 및 4202b) 둘 모두는 도로(4300)를 따라(예를 들면, 제각기, 방향(4302a 및 4302b)으로) 주행하고 있다. 이들이 운행함에 따라, 자율 주행 차량(4202a 및 4202b) 각각은 그 각자의 동작 및 주변 환경에 관한 정보(예를 들면, 차량 원격 측정 데이터)를 수집한다.
이 예에서, 위험 요소(4304)가 도로(4300)에 존재한다. 위험 요소(4304)는, 예를 들어, 도로(4300)에 대한 장애물, 도로(4300) 위 또는 근처의 대상체, 도로(4300)에 대한 교통 패턴의 변화(예를 들면, 우회 또는 차선 폐쇄), 또는 차량의 통행에 영향을 미칠 수 있는 또 하나의 다른 조건일 수 있다. 선도(leading) 자율 주행 차량(4202b)이 위험 요소(4304)를 조우할 때, 그 자율 주행 차량은 위험 요소(4304)에 관한 정보(예를 들면, 위험 요소(4304)의 성질을 식별해주는 센서 데이터 및/또는 다른 차량 원격 측정 데이터, 위험 요소의 위치, 관측이 이루어진 시간 등)를 수집한다.
도 44에 도시된 바와 같이, 자율 주행 차량(4202b)은 수집된 정보의 일부 또는 전부를 (예를 들면, 하나 이상의 데이터 항목(4306)의 형태로) 컴퓨터 시스템(4200)에 송신한다. 도 45에 도시된 바와 같이, 차례로, 컴퓨터 시스템(4200)은 수신된 정보의 일부 또는 전부를 (예를 들면, 하나 이상의 데이터 항목(4308)의 형태로) 자율 주행 차량(4202a)에 송신한다. 따라서, 비록 자율 주행 차량(4202a)이 도로(4300)를 따라 자율 주행 차량(4202b)의 후방에 있고 위험 요소(4304)를 아직 조우하지 않았지만, 자율 주행 차량(4202a)이 위험 요소(4304)에 관한 정보에 액세스할 수 있다.
이 정보를 사용하여, 자율 주행 차량(4202a)은 위험 요소(4304)를 참작하기 위해 선제적 조치를 취할 수 있다(예를 들면, 위험 요소(4304)에 접근함에 따라 서행하고, 위험 요소(4304)를 피하기 위해 차선 변경을 수행하며, 그의 센서들 중 하나 이상의 센서를 사용하여 위험 요소(4304)에 대해 능동적으로 탐색하고, 기타임). 예를 들어, 도 46에 도시된 바와 같이, 자율 주행 차량(4202a)이 위험 요소(4304)에 접근함에 따라, 자율 주행 차량(4202a)은 자율 주행 차량(4202b)으로부터의 공유 정보는 물론, 자율 주행 차량(4202a) 자체가 (예를 들면, 그 자신의 센서에 기초하여) 수집하는 정보에 액세스할 수 있다. 이러한 조합된 정보를 사용하여, 자율 주행 차량(4202a)은 더 안전하고 효과적인 방식으로 위험 요소(4304)를 횡단할 수 있다.
일부 실시예에서, 자율 주행 차량은 하나 이상의 다른 자율 주행 차량으로부터 수신된 정보에 기초하여 자신의 루트를 수정한다. 예를 들어, 자율 주행 차량이 장애물, 혼잡, 또는 도로의 특정 부분을 안전한 및/또는 효율적인 방식으로 운행하는 것을 방해하는 임의의 다른 조건을 조우하는 경우, 다른 자율 주행 차량은 자신의 루트를 수정하여 도로의 이러한 특정 부분을 피할 수 있다.
일 예로서, 도 47은 영역(4206)에 있는 2개의 자율 주행 차량(4202a 및 4202b)을 도시한다. 자율 주행 차량(4202a 및 4202b) 둘 모두는 도로(4700)를 따라(예를 들면, 제각기, 방향(4702a 및 4702b)으로) 주행하고 있다. 이들이 운행함에 따라, 자율 주행 차량(4202a 및 4202b) 각각은 그 각자의 동작 및 주변 환경에 관한 정보(예를 들면, 차량 원격 측정 데이터)를 수집한다.
이 예에서, 자율 주행 차량은, 도로(4700)를 사용하여, 루트(4706)(점선으로 표시됨)를 따라 목적지 위치(4704)로 운행할 계획이다. 그렇지만, 도로(4700)는 위험 요소(4708)에 의해 차단되어, 이를 지나는 교통의 효율적인 및/또는 안전한 흐름을 방해한다. 선도 자율 주행 차량(4202b)이 위험 요소(4708)를 조우할 때, 그 자율 주행 차량은 위험 요소(4708)에 관한 정보(예를 들면, 위험 요소(4708)의 성질을 식별해주는 센서 데이터 및/또는 다른 차량 원격 측정 데이터, 위험 요소의 위치, 관측이 이루어진 시간 등)를 수집한다. 또한, 수집된 정보에 기초하여, 자율 주행 차량(4202b)은 위험 요소(4708)가 안전한 및/또는 효율적인 방식으로 횡단될 수 없다고(예를 들면, 위험 요소(4708)가 도로(4700)를 완전히 차단하고, 통과 교통(through traffic)을 특정 정도로 서행시키며, 도로를 통행에 안전하지 않게 만들며, 기타라고) 결정할 수 있다.
도 48에 도시된 바와 같이, 자율 주행 차량(4202b)은 수집된 정보의 일부 또는 전부를 (예를 들면, 하나 이상의 데이터 항목(4710)의 형태로) 컴퓨터 시스템(4200)에 송신한다. 도 49에 도시된 바와 같이, 차례로, 컴퓨터 시스템(4200)은 수신된 정보의 일부 또는 전부를 (예를 들면, 하나 이상의 데이터 항목(4712)의 형태로) 자율 주행 차량(4202a)에 송신한다. 따라서, 비록 자율 주행 차량(4202a)이 도로(4700)를 따라 자율 주행 차량(4202b)의 후방에 있고 위험 요소(4708)를 아직 조우하지 않았지만, 자율 주행 차량(4202a)이 위험 요소(4708)에 관한 정보(예를 들면, 위험 요소(4708)가 안전한 및/또는 효율적인 방식으로 횡단될 수 없음을 나타내는 정보)에 액세스할 수 있다.
이 정보에 기초하여, 자율 주행 차량(4202a)은 위치(4704)로의 자신의 루트를 수정할 수 있다. 일 예로서, 자율 주행 차량(4202a)은, 자율 주행 차량(4202b)으로부터의 정보에 기초하여, 원래 루트(4706)를 사용하여 위치(4704)로 운행하는 데 필요한 시간 길이(예를 들면, 위험 요소(4708)를 횡단하는 것과 연관된 시간 지연을 포함함)를 결정할 수 있다. 게다가, 자율 주행 차량(4202a)은 위치(4704)로 운행하기 위한 하나 이상의 대안적인 루트(예를 들면, 위험 요소(4708)를 갖는 도로의 부분을 피하는 하나 이상의 루트)를 결정할 수 있다. 특정 대안적인 루트가 더 짧은 양의 시간 내에 횡단될 수 있는 경우, 자율 주행 차량(4202a)은 그 대신에 대안적인 루트와 일치하도록 자신의 계획된 루트를 수정할 수 있다.
일 예로서, 자율 주행 차량(4202a)은, 자율 주행 차량(4202b)으로부터의 정보에 기초하여, 위험 요소(4708)를 갖는 도로(4700)의 부분이 통행할 수 없고 그리고/또는 안전하게 횡단될 수 없다고 결정할 수 있다. 게다가, 자율 주행 차량(4202a)은 위험 요소(4708)를 갖는 도로(4700)의 부분을 이용하지 않는, 위치(4704)로 운행하기 위한 하나 이상의 대안적인 루트를 결정할 수 있다. 이 정보에 기초하여, 자율 주행 차량(4202a)은 그 대신에 대안적인 루트와 일치하도록 자신의 계획된 루트를 수정할 수 있다.
예를 들어, 도 50에 도시된 바와 같이, 자율 주행 차량(4202a)은, 자율 주행 차량(4202b)으로부터 수신된 정보에 기초하여, 위험 요소(4708)를 갖는 도로(4700)의 부분이 통행할 수 없고 그리고/또는 안전하게 횡단될 수 없다고 결정할 수 있다. 이에 응답하여, 자율 주행 차량(4202a)은 위험 요소(4708)를 갖는 도로(4700)의 부분를 우회하는 대안적인 루트(4714)(예를 들면, 다른 도로(4716)를 이용하는 루트)를 결정할 수 있다. 따라서, 자율 주행 차량(4202a)은 루트(4714)를 사용하여 위치(4704)로 운행할 수 있고, 위험 요소(4708) 자체를 아직 조우하지 않았더라도, 위험 요소(4708)를 피할 수 있다.
비록 도 43 내지 도 46 및 도 47 내지 도 50이 위험 요소에 관한 정보의 교환을 도시하지만, 이들은 단지 예시적인 예이다. 실제로, 자율 주행 차량은 자율 주행 차량 전체의 동작을 향상시키기 위해 그의 주변 환경의 임의의 측면에 관한 임의의 정보를 교환할 수 있다. 예로서, 자율 주행 차량은 특정 루트를 따라 관측된 교통 또는 혼잡, 특정 루트를 따라 관측된 사이니지, 특정 루트를 따라 관측된 랜드마크(예를 들면, 건물, 나무, 사업체, 교차로, 횡단보도 등), 특정 루트를 따라 관측된 교통 패턴(예를 들면, 흐름 방향, 교통 차선, 우회로, 차선 폐쇄 등), 특정 루트를 따라 관측된 날씨(예를 들면, 비, 눈, 진눈깨비, 얼음, 바람, 안개 등)에 관한 정보 또는 임의의 다른 정보를 교환할 수 있다. 추가 예로서, 자율 주행 차량은 환경의 변화(예를 들면, 특정 루트를 따른 교통 또는 혼잡의 변화, 특정 루트를 따른 사이니지의 변화, 특정 루트를 따른 랜드마크의 변화, 특정 루트를 따른 교통 패턴의 변화, 특정 루트를 따른 날씨의 변화, 또는 임의의 다른 변화)에 관한 정보를 교환할 수 있다. 게다가, 자율 주행 차량은 해당 관측이 이루어진 위치, 해당 관측이 이루어진 시간, 및 해당 관측이 유효한 시간 기간을 식별해주는 정보를 교환할 수 있다. 따라서, 각각의 자율 주행 차량은 자체적으로 수집하는 정보뿐만 아니라, 하나 이상의 다른 자율 주행 차량에 의해 수집된 정보에도 액세스할 수 있어, 이에 의해 자율 주행 차량이 더 안전하고 더 효과적인 방식으로 환경을 횡단할 수 있게 한다.
게다가, 비록 도 43 내지 도 46 및 도 47 내지 도 50이 중개 컴퓨터 시스템(4200)을 통한 정보 교환을 도시하지만, 그럴 필요는 없다. 예를 들어, 자율 주행 차량(4202a 및 4202b)은 다른 중개자(예를 들면, 하나 이상의 다른 자율 주행 차량)를 통해 또는 서로 직접적으로(예를 들면, 피어-투-피어 네트워크 연결을 통해) 정보를 교환할 수 있다.
일부 실시예에서, 2개 이상의 자율 주행 차량은 그 각자의 목적지로 운행하는 동안 "플래툰"을 형성한다. 자율 주행 차량 플래툰은, 예를 들어, 일정 시간 기간에 걸쳐 서로 근접하여 주행하는 2개 이상의 자율 주행 차량의 그룹일 수 있다. 일부 실시예에서, 자율 주행 차량 플래툰은 특정 측면에서 서로 유사한 2개 이상의 자율 주행 차량의 그룹이다. 일 예로서, 플래툰 내의 자율 주행 차량 각각은 플래툰 내의 다른 자율 주행 차량과 동일한 하드웨어 구성(예를 들면, 동일한 차량 제조사, 차량 모델, 차량 형상, 차량 치수, 내부 레이아웃, 센서 구성, 고유 파라미터, 차량 내(on-vehicle) 컴퓨팅 인프라스트럭처, 차량 제어기, 및/또는 다른 차량 또는 서버와의 통신 대역폭)을 가질 수 있다. 다른 예로서, 플래툰 내의 자율 주행 차량 각각은 제한되거나 미리 정의된 하드웨어 구성 풀로부터의 특정 하드웨어 구성을 가질 수 있다.
일부 실시예에서, 자율 주행 차량 플래툰은 하나 이상의 공통 교통 차선을 점유하도록(예를 들면, 단일 차선을 따라 단일 파일 라인(single file line)으로, 또는 다수의 차선을 따라 다수의 라인으로), 특정 지역(예를 들면, 특정 지구, 도시, 주, 국가, 대륙, 또는 다른 영역) 내에서 주행하도록, 일반적으로 유사한 속력으로 주행하도록, 그리고/또는 자율 주행 차량으로부터 그 전방으로 또는 그 후방으로 일반적으로 유사한 거리를 유지하도록 주행할 수 있다. 일부 실시예에서, 플래툰을 이루어 주행하는 자율 주행 차량은 (예를 들어, 개선된 공기 역학적 특성, 더 적은 횟수의 서행 등으로 인해) 자율 주행 차량이 개별적으로 주행하는 것보다 더 적은 동력(power)을 소비한다(예를 들면, 더 적은 연료 및/또는 더 적은 전력을 소비함).
일부 실시예에서, 플래툰 내의 하나 이상의 자율 주행 차량은 플래툰 내의 하나 이상의 다른 자율 주행 차량의 동작을 지시한다. 예를 들어, 플래툰 내의 선도 자율 주행 차량은 플래툰을 위해 루트, 속도(rate of speed), 주행 차선 등을 결정하고, 그에 따라 동작하도록 플래툰 내의 다른 자율 주행 차량에 지시할 수 있다. 다른 예로서, 플래툰 내의 선도 자율 주행 차량은 루트, 속도, 주행 차선 등을 결정할 수 있으며, 플래툰 내의 다른 자율 주행 차량은 (예를 들면, 단일 파일 라인으로, 또는 다수의 차선을 따라 다수의 라인으로) 선도 자율 주행 차량을 따를 수 있다.
일부 실시예에서, 자율 주행 차량은 서로와의 특정 유사성에 기초하여 플래툰을 형성한다. 예를 들어, 자율 주행 차량은, 유사한 위치에 배치되고, 유사한 목적지 위치를 가지며, (부분적으로 또는 전체적으로) 유사한 루트를 운행할 계획이고, 그리고/또는 다른 유사성이 있는 경우, 플래툰을 형성할 수 있다.
일 예로서, 도 51은 영역(4206)에 있는 2개의 자율 주행 차량(4202a 및 4202b)을 도시한다. 자율 주행 차량(4202a)은 위치(5100a)로 운행할 계획이고, 자율 주행 차량(4202b)은 위치(5100b)로 운행할 계획이다.
자율 주행 차량(4202a 및 4202b)은 그 각자의 목적지 위치로의 그의 계획된 주행에 관한 차량 원격 측정 데이터를 교환한다. 예를 들어, 도 51에 도시된 바와 같이, 자율 주행 차량(4202a 및 4202b) 각각은 차량 원격 측정 데이터를 (예를 들면, 제각기, 하나 이상의 데이터 항목(5102a 및 5102b)의 형태로) 컴퓨터 시스템(4200)에 송신한다. 차량 원격 측정 데이터는, 예를 들어, 자율 주행 차량의 현재 위치, 그의 목적지 위치, 그의 헤딩 또는 배향, 및 자율 주행 차량이 목적지 위치로 운행할 계획인 루트를 포함할 수 있다.
수신된 정보에 기초하여, 컴퓨터 시스템(4200)은 자율 주행 차량(4202a, 4202b)이 서로 플래툰을 형성해야 하는지 여부를 결정한다. 자율 주행 차량이 플래툰을 형성해야 하는지 여부를 결정할 때 다양한 인자가 고려될 수 있다. 예를 들어, 2개 이상의 자율 주행 차량이 서로에 더 가까이 있는 경우, 이는 플래툰을 형성하는 데 유리하게 작용할 수 있다. 반대로, 2개 이상의 자율 주행 차량이 서로로부터 더 멀리 있는 경우, 이는 플래툰을 형성하는 데 불리하게 작용할 수 있다.
다른 예로서, 2개 이상의 자율 주행 차량이 서로에 더 가까이 있는 목적지 위치를 갖는 경우, 이는 플래툰을 형성하는 데 유리하게 작용할 수 있다. 반대로, 2개 이상의 자율 주행 차량이 서로로부터 더 멀리 있는 목적지 위치를 갖는 경우, 이는 플래툰을 형성하는 데 불리하게 작용할 수 있다.
다른 예로서, 2개 이상의 자율 주행 차량이 유사한 계획된 루트를 가지는 경우(또는 그의 계획된 루트의 부분이 유사한 경우), 이는 플래툰을 형성하는 데 유리하게 작용할 수 있다. 반대로, 2개 이상의 자율 주행 차량이 유사하지 않은 계획된 루트를 가지는 경우(또는 그의 계획된 루트의 부분이 유사하지 않은 경우), 이는 플래툰을 형성하는 데 불리하게 작용할 수 있다.
다른 예로서, 2개 이상의 자율 주행 차량이 유사한 헤딩 또는 배향을 갖는 경우, 이는 플래툰을 형성하는 데 유리하게 작용할 수 있다. 반대로, 2개 이상의 자율 주행 차량이 유사하지 않은 헤딩 또는 배향을 가지는 경우, 이는 플래툰을 형성하는 데 불리하게 작용할 수 있다.
이 예에서, 자율 주행 차량(4202a, 4202b)의 현재 위치, 그의 목적지 위치, 및 그의 계획된 루트가 대체로 유사하다. 따라서, 컴퓨터 시스템(4200)은 (예를 들면, 자율 주행 차량(4202b)과 플래툰을 형성하라는 명령(5104a)을 자율 주행 차량(4202a)에 송신하고, 자율 주행 차량(4202a)과 플래툰을 형성라는 명령(5104b)을 자율 주행 차량(4202b)에 송신함으로써) 서로 플래툰을 형성하라는 명령을 자율 주행 차량(4202a 및 4202b)에 송신한다.
도 53에 도시된 바와 같이, 이에 응답하여, 자율 주행 차량(4202a 및 4202b)은 (예를 들면, 특정 위치에 집결하고, 집단적으로 방향(5104)으로 나아가는 것에 의해) 플래툰을 형성하고, 집단적으로 그 각자의 목적지 위치를 향해 운행한다.
도 51 내지 도 53에 도시된 예에서, 자율 주행 차량(4202a 및 4202b)은 중개 컴퓨터 시스템(4200)을 통해 정보를 교환한다. 그렇지만, 이러할 필요는 없다. 예를 들어, 일부 실시예에서, 자율 주행 차량은 서로 직접적으로 정보를 교환하고, 원격 컴퓨터 시스템으로부터의 명시적인 명령 없이 서로 플래툰을 형성한다.
일 예로서, 도 54는 영역(4206)에 있는 2개의 자율 주행 차량(4202a 및 4202b)을 도시한다. 자율 주행 차량(4202a)은 위치(5400a)로 운행할 계획이고, 자율 주행 차량(4202b)은 위치(5400b)로 운행할 계획이다.
자율 주행 차량(4202a 및 4202b)은 그 각자의 목적지 위치로의 그의 계획된 주행에 관한 차량 원격 측정 데이터를 서로 직접적으로 교환한다. 예를 들어, 도 54에 도시된 바와 같이, 자율 주행 차량(4202a 및 4202b) 각각은 차량 원격 측정 데이터를 (예를 들면, 제각기, 하나 이상의 데이터 항목(5402a 및 5402b)의 형태로) 상대방에 송신한다. 차량 원격 측정 데이터는, 예를 들어, 자율 주행 차량의 현재 위치, 그의 목적지 위치, 그의 헤딩 또는 배향, 및 자율 주행 차량이 목적지 위치로 운행할 계획인 루트를 포함할 수 있다.
수신된 정보에 기초하여, 자율 주행 차량(4202a, 4202b) 중 하나 또는 둘 모두는 플래툰을 형성할지 여부를 결정할 수 있다. 위에서 기술된 바와 같이, 자율 주행 차량이 플래툰을 형성해야 하는지 여부를 결정하는 데 다양한 인자(예를 들면, 자율 주행 차량의 현재 위치, 자율 주행 차량의 목적지 위치, 헤딩 또는 배향, 및/또는 자율 주행 차량의 계획된 루트의 유사성)가 고려될 수 있다.
일부 실시예에서, 자율 주행 차량은 하나 이상의 다른 자율 주행 차량과 플래툰을 형성할지 여부를 결정하고, 만약 그렇다면, 해당 자율 주행 차량에 플래툰에 합류하라는 초대장(invitation)을 송신한다. 각각의 초대받은 자율 주행 차량은 초대를 수락하고 플래툰에 합류하거나, 또는 초대를 거부하고 플래툰 없이 진행할 수 있다(예를 들면, 다른 플래툰과 함께 주행하거나 개별적으로 주행함).
이 예에서, 자율 주행 차량(4202a, 4202b)의 현재 위치, 그의 목적지 위치, 및 그의 계획된 루트가 대체로 유사하다. 이 정보에 기초하여, 자율 주행 차량(4202b)은 자율 주행 차량(4202a)과 플래툰을 형성해야 한다고 결정하고, 플래툰에 합류하라는 초대장(5106)을 자율 주행 차량(4202a)에 송신한다.
도 55에 도시된 바와 같이, 이에 응답하여, 자율 주행 차량(4202a)은 초대를 수락하는 응답(5108)을 자율 주행 차량(4202b)에 송신할 수 있다. 도 56에 도시된 바와 같이, 초대의 수락에 응답하여, 자율 주행 차량(4202a 및 4202b)은 (예를 들면, 특정 위치에 집결하고, 집단적으로 방향(5410)으로 나아가는 것에 의해) 플래툰을 형성하고, 집단적으로 그 각자의 목적지 위치를 향해 운행한다.
비록 도 51 내지 도 53 및 도 54 내지 도 56이 플래툰을 형성하는 2개의 자율 주행 차량의 예를 도시하지만, 이는 단지 예시적인 예이다. 실제로, 임의의 개수(예를 들면, 2개, 3개, 4개 또는 그 이상)의 자율 주행 차량이 플래툰을 형성할 수 있다.
게다가, 일부 실시예에서, 자율 주행 차량은, 상황에 따라, 동적으로 플래툰에 합류 및/또는 플래툰에서 이탈한다. 예를 들어, 자율 주행 차량은 플래툰에 합류하여 자율 주행 차량과 플래툰에 공통인 루트의 특정 부분을 운행할 수 있다. 그렇지만, 자율 주행 차량의 루트가 플래툰의 루트로부터 벗어날 때, 자율 주행 차량은 플래툰에서 이탈하고, 다른 플래툰에 합류하거나 또는 개별적으로 그의 목적지로 계속할 수 있다.
위에서 기술된 바와 같이(예를 들면, 도 51 내지 도 53 및 도 54 내지 도 56과 관련하여), 2개 이상의 자율 주행 차량이 서로 플래툰을 형성하여 그 각자의 목적지로 운행할 수 있다. 그렇지만, 실제로, 플래툰은 자율 주행이 아닌 하나 이상의 차량 및/또는 완전 자율 주행이 아닌 하나 이상의 차량을 또한 포함할 수 있다. 게다가, 플래툰은 완전 자율 주행 동작을 할 수 있지만 현재 "수동" 모드에서 동작되고 있는(예를 들면, 인간 탑승자에 의해 수동으로 동작되고 있는) 하나 이상의 자율 주행 차량을 포함할 수 있다. 수동으로 동작되는 차량이 플래툰의 일부일 때, 인간 탑승자에게 플래툰에 따라 자신의 차량의 동작에 관한 명령(예를 들면, 특정 시간에 특정 위치로 운행하고, 다른 차량을 기다리며, 특정 교통 차선에서 주행하고, 특정 속력으로 주행하며, 다른 차량의 전방 또는 그 후방에서 다른 차량과 특정 거리를 유지하라는 등의 명령)이 제공될 수 있다. 일부 실시예에서, 명령은 컴퓨터 시스템(예를 들면, 컴퓨터 시스템(4200))에 의해 생성되고 (예를 들면, 스마트 폰과 같은, 탑승자의 모바일 전자 디바이스, 및/또는 차량 내의 온보드 전자 디바이스를 사용하여) 실행을 위해 차량의 탑승자에게 제시된다.
도 57은 자율 주행 차량들 간에 정보를 교환하기 위한 예시적인 프로세스(5700)를 도시한다. 프로세스(5700)는, 적어도 부분적으로, 본원에 기술된 시스템들 중 하나 이상을 사용하여(예를 들면, 하나 이상의 컴퓨터 시스템, AV 시스템, 자율 주행 차량 등을 사용하여) 수행될 수 있다. 일부 실시예에서, 프로세스(5700)는, 부분적으로 또는 전체적으로, 하나 이상의 센서(예를 들면, 하나 이상의 LiDAR 센서, RADAR 센서, 광 검출기, 초음파 센서 등)를 갖는 자율 주행 차량에 의해 수행된다.
프로세스(5700)에서, 제1 자율 주행 차량은 하나 이상의 센서로부터 수신된 데이터에 기초하여 제1 자율 주행 차량의 동작의 양상을 결정한다(단계(5710)). 일 예로서, 제1 자율 주행 차량은 주행 루트의 계획, 주변 환경에 있는 대상체(예를 들면, 다른 차량, 표지판, 보행자, 랜드마크 등)의 식별, 도로의 조건의 평가(예를 들면, 제1 자율 주행 차량에 의해 횡단될 도로를 따라 교통 패턴, 혼잡, 우회로, 위험 요소, 장애물 등의 식별), 자율 주행 차량의 환경에 있는 사이니지의 해석, 또는 제1 자율 주행 차량의 동작과 연관된 임의의 다른 양상에 관한 차량 원격 측정 데이터를 수집 및/또는 생성할 수 있다.
일부 실시예에서, 하나 이상의 센서로부터 수신된 데이터는 자율 주행 차량의 환경에 있는 대상체(예를 들면, 다른 차량, 보행자, 장벽, 교통 제어 디바이스 등), 및/또는 도로의 조건(예를 들면, 포트홀, 지표수/지표 얼음 등)의 표시를 포함한다. 일부 실시예에서, 센서는 차량에 근접한 대상체 및/또는 도로 조건을 검출하여, 차량이 환경을 통과하여 더 안전하게 운행할 수 있게 한다. 이 정보가 다른 차량과 공유되어, 전반적인 동작을 개선시킬 수 있다.
제1 자율 주행 차량은 또한 하나 이상의 다른 자율 주행 차량에서 유래하는 데이터를 수신한다(단계(5720)). 예를 들어, 제1 자율 주행 차량은, 인근의 자율 주행 차량, 특정 자율 주행 차량 플릿 내의 다른 자율 주행 차량, 및/또는 과거에 도로의 특정 섹션 또는 특정 루트를 횡단한 자율 주행 차량과 같은, 하나 이상의 다른 자율 주행 차량으로부터 차량 원격 측정 데이터를 수신할 수 있다.
제1 자율 주행 차량은 그 결정 및 수신된 데이터를 사용하여 동작을 수행한다(단계(5730)). 예를 들어, 제1 자율 주행 차량에 의해 수집되거나 생성된 정보는 그의 전반적인 동작을 개선시키기 위해(예를 들면, 더 효율적인 주행 루트를 계획하고, 주변 환경에 있는 대상체를 더 정확하게 식별하며, 도로의 조건을 더 정확하게 평가하고, 자율 주행 차량의 환경에 있는 사이니지를 더 정확하게 해석하는 등을 위해) 다른 자율 주행 차량에서 유래하는 데이터로 보강(enrich)되거나 보완될 수 있다
일부 실시예에서, 제1 자율 주행 차량은 또한 자신이 수집하거나 생성하는 정보를 하나 이상의 다른 자율 주행 차량과 공유한다. 예를 들어, 제1 자율 주행 차량은 하나 이상의 센서로부터 수신된 데이터의 적어도 일 부분을 다른 자율 주행 차량들 중 적어도 하나에 송신할 수 있다. 따라서, 제1 자율 주행 차량에 이용 가능한 데이터가 다른 자율 주행 차량과 공유될 수 있어, 다른 자율 주행 차량의 전반적인 동작을 개선시킬 수 있다.
일부 실시예에서, 하나 이상의 다른 자율 주행 차량에서 유래하는 데이터는 하나 이상의 다른 자율 주행 차량에서 유래하는 데이터가 유효한 시간 기간의 표시를 포함한다. 이것이 유용할 수 있는데, 그 이유는, 예를 들어, 자율 주행 차량이 데이터의 신뢰성을 결정할 수 있도록, 자율 주행 차량이 수신된 데이터가 사용하기에 충분히 "신선한지" 여부를 결정할 수 있기 때문이다.
일부 실시예에서, 제1 자율 주행 차량이 데이터를 수신하는 하나 이상의 다른 자율 주행 차량은 제1 자율 주행 차량이 도로를 횡단하기 전에 도로를 횡단했을 수 있다. 게다가, 하나 이상의 다른 자율 주행 차량에서 유래하는 데이터는 하나 이상의 다른 자율 주행 차량이 도로를 횡단했을 때의 도로의 조건의 표시를 포함한다. 이것이 유용할 수 있는데, 그 이유는, 예를 들어, 센서 데이터가 동일한 도로를 횡단하는 자율 주행 차량들 간에 공유되고, 따라서 차량들 각각과 관련이 있을 가능성이 더 많기 때문이다.
일부 실시예에서, 하나 이상의 다른 자율 주행 차량에서 유래하는 데이터는 하나 이상의 다른 자율 주행 차량에 의해 횡단된 하나 이상의 경로의 표시를 포함한다. 이것이 유용할 수 있는데, 그 이유는, 예를 들어, 자율 주행 차량이 경로 설정(routing) 결정을 개선시키기 위해 경로 설정 데이터를 공유할 수 있기 때문이다.
일부 실시예에서, 하나 이상의 다른 자율 주행 차량에서 유래하는 데이터는 하나 이상의 다른 자율 주행 차량에 의해 횡단된 하나 이상의 경로를 따른 교통 패턴에 대한 하나 이상의 수정의 표시를 포함한다. 이것이 유익할 수 있는데, 그 이유는, 예를 들어, 자율 주행 차량이, 일방통행로가 양방통행로가 되는 것과 같은, 교통 패턴의 변화를 공유하여, 다른 차량의 향후 경로 설정을 개선시킬 수 있기 때문이다.
일부 실시예에서, 하나 이상의 다른 자율 주행 차량에서 유래하는 데이터는 하나 이상의 다른 자율 주행 차량에 의해 횡단된 하나 이상의 경로를 따른 하나 이상의 장애물 또는 방해물의 표시를 추가로 포함한다. 이것이 유용할 수 있는데, 그 이유는, 예를 들어, 자율 주행 차량이 다른 자율 주행 차량의 향후 경로 설정을 개선시키기 위해, 관측된 포트홀 또는 장벽과 같은, 장애물 또는 방해물에 관한 정보를 공유할 수 있기 때문이다.
일부 실시예에서, 하나 이상의 다른 자율 주행 차량에서 유래하는 데이터는 하나 이상의 다른 자율 주행 차량에 의해 횡단된 하나 이상의 경로를 따른 하나 이상의 대상체에 대한 변경의 표시를 포함한다. 예를 들어, 차량은 다른 차량의 향후 경로 설정을 개선시키기 위해, 나무 또는 표지판과 같은, 도로의 측면에 있는 랜드마크에 관한 정보를 공유할 수 있다.
일부 실시예에서, 자율 주행 차량은 하나 이상의 다른 자율 주행 차량과 함께 플래툰을 형성하고, 집단적으로 그 각자의 목적지 위치를 향해 운행한다. 예를 들어, 자율 주행 차량은, 하나 이상의 다른 자율 주행 차량에서 유래하는 데이터에 기초하여, 하나 이상의 다른 자율 주행 차량의 목적지가 제1 자율 주행 차량의 목적지와 유사하다고 결정할 수 있다. 이 결정에 응답하여, 제1 자율 주행 차량은 차량 플래툰을 형성하라는 요청 또는 초대장을 하나 이상의 다른 자율 주행 차량에 송신할 수 있다. 이것이 유용할 수 있는데, 그 이유는, 예를 들어, 동일한 위치로 주행하는 차량이 해당 위치까지 "플래툰을 형성(platoon)"하여 더 적은 동력을 소비(예를 들면, 더 적은 연료 및/또는 더 적은 전력을 소비)할 수 있기 때문이다.
일부 실시예에서, 하나 이상의 다른 자율 주행 차량에서 유래하는 데이터는 하나 이상의 다른 자율 주행 차량의 환경의 조건의 표시를 포함한다. 따라서, 자율 주행 차량은 그의 주변 환경에 대한 정보를 다른 차량으로부터 수신할 수 있어, 센서 시스템의 신뢰성/리던던시를 개선시킬 수 있다.
일부 실시예에서, 자율 주행 차량은 하나 이상의 다른 자율 주행 차량으로부터 수신된 환경 조건에 관한 정보에 기초하여 자신의 계획된 주행 루트를 조정한다. 예를 들어, 제1 자율 주행 차량은 하나 이상의 다른 자율 주행 차량의 환경의 조건의 표시에 기초하여 자신의 루트를 수정할 수 있다. 따라서, 이것은 자율 주행 차량이 다른 자율 주행 차량로부터 수신된 정보에 기초하여 스스로를 경로 재설정(reroute)할 수 있게 한다.
일부 실시예에서, 하나 이상의 다른 자율 주행 차량에서 유래하는 데이터는 하나 이상의 다른 자율 주행 차량의 상태를 포함한다. 하나 이상의 다른 자율 주행 차량의 상태는 하나 이상의 다른 자율 주행 차량의 위치, 하나 이상의 다른 자율 주행 차량의 속력 또는 속도, 또는 하나 이상의 다른 자율 주행 차량의 가속도에 관한 정보를 포함할 수 있다. 이것이 유익할 수 있는데, 그 이유는, 예를 들어, 차량이 서로에 대해 더 일관되게 동작할 수 있도록, 차량이 원격 측정 데이터를 공유할 수 있게 하기 때문이다.
일부 실시예에서, 자율 주행 차량은, 중앙 컴퓨터 시스템과 같은, 중개자를 통해 정보를 교환한다. 일 예로서, 제1 자율 주행 차량은 제1 자율 주행 차량 및 하나 이상의 다른 자율 주행 차량의 동작을 제어하도록 구성된 외부 제어 시스템(예를 들면, 다수의 자율 주행 차량의 동작을 조율하기 위한 중앙 제어 시스템)으로 정보를 송신 및/또는 그로부터 정보를 수신하기 위해 제1 자율 주행 차량의 통신 엔진(예를 들면, Wi-Fi, WiMAX, 또는 셀룰러 트랜시버)을 사용할 수 있다. 이것은 차량이 중앙 제어 시스템과 정보를 교환할 수 있게 하여, 전반적인 동작을 개선시킨다.
일부 실시예에서, 자율 주행 차량들이 정보를 직접적으로(예를 들면, 피어-투-피어 연결을 통해) 교환한다. 일 예로서, 제1 자율 주행 차량은 제1 자율 주행 차량의 통신 엔진(예를 들면, Wi-Fi, WiMAX 또는 셀룰러 트랜시버)을 사용하여 하나 이상의 피어-투-피어 네트워크 연결을 통해 하나 이상의 자율 주행 차량으로 정보를 송신 및/또는 그로부터 정보를 수신할 수 있다. 이것은 차량이 중앙 컴퓨터 시스템을 필요로 하지 않고 애드혹 기반으로 다른 차량과 정보를 교환할 수 있게 하여, 동작의 유연성을 개선시킨다.
외부 무선 통신 디바이스
일 실시예에서, 자율 주행 차량 외부에 위치되는 하나 이상의 무선 통신 디바이스에 의해 제공되는 정보를 사용하여 자율 주행 차량에서 리던던시가 구현될 수 있다. 본원에서 사용되는 바와 같이, "무선 통신 디바이스"는, 블루투스, 근거리(Near Field), Wi-Fi, 적외선, 자유 공간 광학, 음향, 페이징, 셀룰러, 위성, 마이크로파 및 텔레비전, 라디오 방송 및 DSRC(dedicated short-range radio communication) 무선 프로토콜을 포함하지만 이에 제한되지 않는, 하나 이상의 무선 통신 프로토콜 및 기술을 사용하여 하나 이상의 자율 주행 차량으로/으로부터 정보를 전송 및/또는 수신하는 임의의 디바이스를 의미한다. 자율 주행 차량 외부에 위치되는 무선 통신 디바이스는 이후부터 "외부" 무선 통신 디바이스라고 지칭되고, 자율 주행 차량 상에 또는 그 내에 위치되는 무선 통신 디바이스는 이후부터 "내부" 무선 통신 디바이스라고 지칭된다. 무선 통신 디바이스는 물리적 구조물(예를 들면, 건물, 교량, 타워, 교량, 교통 신호등, 교통 표지판, 광고판), 도로 세그먼트, 차량, 공중 드론, 모바일 디바이스(예를 들면, 스마트 폰, 스마트 시계 , 피트니스 밴드, 태블릿 컴퓨터, 식별 팔찌) 상에 또는 그 내에 설치될 수 있고 인간 또는 다른 동물에 의해 휴대되거나 착용(예를 들면, 애완동물 목걸이(pet collar)에 부착)될 수 있다. 일 실시예에서, 무선 통신 디바이스는 약 1MHz 내지 약 10GHz의 주파수 범위에서 라디오 주파수(RF) 신호를 수신 및/또는 전송할 수 있다.
일부 실시예에서, 외부 무선 통신 디바이스는 하나 이상의 무선 통신 프로토콜을 사용하여 무선 통신 매체를 통해 하나 이상의 자율 주행 차량으로 (단방향) 신호를 브로드캐스팅하도록 구성된다. 그러한 실시예에서, 외부 무선 통신 디바이스는 자율 주행 차량의 내부 무선 통신 디바이스와 페어링하거나 "핸드셰이킹"할 필요가 없다. 다른 실시예에서, 외부 무선 통신 디바이스는 내부 무선 통신 디바이스와 "페어링"하여 내부 무선 통신 디바이스와의 양방향 통신 세션을 확립한다. 내부 무선 통신 디바이스는 신호 내의 하나 이상의 메시지를 디코딩하고 메시지(이후부터 "외부 메시지"라고 지칭됨)로부터 하나 이상의 페이로드를 파싱하거나 추출하는 수신기를 포함한다. 페이로드는, 도 58 내지 도 60을 참조하여 기술되는 바와 같이, 자율 주행 차량에서의 리던던시를 구현하는 데 사용되는 콘텐츠를 포함한다.
외부 메시지는, 도 59를 참조하여 기술되는 바와 같이, 헤더, 페이로드 및 에러 검출 및 정정 코드를 제한 없이 포함하는, 임의의 원하는 포맷을 가질 수 있다. 일 실시예에서, 내부 무선 통신 디바이스에 의해 페이로드가 메시지로부터 추출될 수 있기 전에 하나 이상의 인증 단계가 요구된다. 일 실시예에서, 페이로드는 암호화되어 있고, 따라서 암호화 키 또는 다른 비밀 정보를 사용하여 내부 무선 통신 디바이스에 의해 판독될 수 있기 전에 복호화되어야 한다. 다른 실시예에서, 페이로드는 인증 또는 암호화 없이 공중에 액세스 가능하다(예를 들면, 공개 브로드캐스트 메시지). 아래에서 더욱 상세히 기술되는 바와 같이, 페이로드의 내용은, 계획 기능, 로컬화 기능, 인지 기능 및 제어 기능을 포함하지만 이에 제한되지 않는, 자율 주행 차량에 의해 수행되는 다양한 기능에 대한 리던던시를 제공하는 데 사용된다.
도 58은 일 실시예에 따른, 하나 이상의 외부 무선 통신 디바이스에 의해 제공되는 하나 이상의 외부 메시지를 사용하여 자율 주행 차량에서의 리던던시를 구현하기 위한 시스템(5800)의 블록 다이어그램을 도시한다. 시스템(5800)은 외부 무선 통신 디바이스(5802 내지 5805)와 통신하는 내부 무선 통신 디바이스(5801)를 갖는 AV(100)를 포함한다. 무선 통신 디바이스(5802 내지 5805)는, 제각기, 통신 링크(5806a 내지 5806b)를 통해 하나 이상의 외부 메시지를 AV(100)에 통신한다. 도시된 예에서, 디바이스(5802)는 AV(100)를 뒤따르는 다른 차량(5807)에 설치되고, 디바이스(5804)는 셀 타워 송신기이며, 디바이스(5805)는 도로변 RF 비컨이고, 디바이스(5803)는 사용자(5808)에 의해 휴대되거나 착용되는 모바일 디바이스(예를 들면, 스마트 폰 또는 웨어러블 컴퓨터)이다. 디바이스(5802 내지 5805) 각각은 AV(100)의 동작 도메인에 관련된 외부 메시지에 대한 콘텐츠를 제공하는 하나 이상의 정보 소스에 유선으로 또는 무선으로 결합된다. 정보 소스의 일부 예는 저장 디바이스, 센서, 신호 시스템(signaling system) 및 온라인 서비스를 포함하지만 이에 제한되지 않는다. 예시적인 센서는 특정 지리적 영역(예를 들면, 거리 교차로)의 이미지를 캡처하는 건물에 장착된 스테레오 카메라 또는 도로 세그먼트에 위치된 속력 센서이다. 예시적인 신호 시스템은 도로 교차로에 있는 교통 신호이다. 온라인 서비스의 일부 예는 교통 서비스, 정부 서비스, 차량 제조업체 또는 OEM 서비스, 소프트웨어 업데이트를 위한 OTA(over-the-air) 서비스, 원격 조작자(remote operator) 서비스, 일기 예보 서비스, 엔터테인먼트 서비스, 내비게이션 지원 서비스 등을 포함하지만, 이에 제한되지 않는다. 도시된 예에서, 셀 타워(5804)는 네트워크(5809a)를 통해 온라인 서비스(5810a)에 결합되고, 도로변 RF 비컨(5805)은 네트워크(5809b)를 통해 온라인 서비스(5810b)에 결합되며, 또한 저장 디바이스(5811) 및 속력 센서(5812)에 결합된다.
일 실시예에서, 외부 무선 통신 디바이스(5805)는 도로 세그먼트에 위치되고 AV(100)의 속력을 검출하기 위해 하나 이상의 속력 센서(5812)에 결합되는 도로변 RF 비컨이다. AV(100)가 도로변 RF 비컨(5805)의 통신 범위 내에 위치될 때, AV(100)는 통신 링크(5806c)를 통해 외부 무선 통신 디바이스(5805)에 의해 브로드캐스팅되는 RF 신호를 수신하고 디코딩한다. 일 실시예에서, RF 신호는 하나 이상의 속력 센서(5812)에 의해 생성된 AV(100)에 대한 속력 데이터를 포함하는 페이로드를 포함한다. AV(100)는 무선 통신 디바이스(5805)로부터 수신된 속력 데이터를 AV(100)에 탑재된 속력계 또는 다른 센서에 의해 검출된 속력과 비교한다. 속력 데이터 간의 불일치가 검출되는 경우, AV(100)는 AV(100)의 온보드 센서(예를 들면, 속력계) 또는 서브시스템의 고장을 추론하고 "안전 정지" 기동 또는 다른 적합한 액션(예를 들면, 서행하는 것)을 수행한다.
다른 실시예에서, (이 예에서는 AV(100)를 뒤따르는) 차량(5807)에 설치된 외부 무선 통신 디바이스(5802)는 차량(5807)의 온보드 센서(예를 들면, LiDAR, 스테레오 카메라)에 의해 관측되는 바와 같은 AV(100)의 운전 상태를 포함하는 외부 메시지를 AV(100)에 전송할 수 있다. 운전 상태는, 속력, 차선 정보, 비정상적인 조향 또는 제동 패턴 등을 포함하지만 이에 제한되지 않는, 차량(5807)에 의해 관측되는 AV(100)의 다수의 운전 파라미터를 포함할 수 있다. 차량(5807)의 센서에 의해 캡처된 이 정보는 통신 라인(5806a)을 통해 AV(100)에 송신되는 외부 메시지의 페이로드에서 전송될 수 있다. 수신될 때, AV(100)는 외부에서 생성된 이 운전 상태를 내부에서 생성된 자신의 운전 상태와 비교하여 운전 파라미터들 간의 임의의 불일치를 발견한다. 불일치가 발견되는 경우, AV(100)는 "안전 정지" 기동 또는 다른 액션(예를 들면, 서행하는 것, AV(100)를 상이한 차선으로 조향하는 것)을 개시할 수 있다. 예를 들어, 차량(5807)으로부터의 외부 메시지는 AV(100)가 간선도로의 차선 1에서 주행하고 있음을 나타내는 운전 상태를 포함할 수 있으며, 여기서 AV(100)의 온보드 센서는 시스템 또는 센서 고장으로 인해 AV(100)가 간선도로의 차선 2에서 주행하고 있음을 나타낼 수 있다. 이 예에서, 외부 메시지는 AV(100)를 올바른 차선 1로 조향하거나 또는 서행과 같은 어떤 다른 액션을 수행하거나 또는 "안전 정지" 기동을 수행하는 데 사용될 수 있는 리던던트 제어 정보를 제공하였다.
일 실시예에서, 외부 무선 통신 디바이스는 AV(100)의 동작에 대한 속력 제한 또는 어떤 다른 제약을 시행하기 위해 사용될 수 있다. 예를 들어, 법 집행 당국 또는 주 당국, 시 당국 또는 지방 자치 당국은 스쿨 존(school zone) 또는 공사 구역(construction zone)에서의 30 mph의 속력 제한을, AV가 스쿨 존 내에 또는 공사 현장 근처에 있는 동안 해당 속력 제한을 무시(bypass)하는 것을 방지하는 제어 정보를 외부 무선 통신 디바이스를 통해 AV에 송신함으로써, 시행할 수 있다. 유사하게, AV(100)는 먼지가 차량에 들어가는 것을 방지하기 위해 그의 환기 시스템을 자동으로 조정하여 통풍구를 닫고 공기를 재순환시킬 수 있다. 다른 예에서, 무선 통신 디바이스는 거리 측정을 계산함으로써 AV(100)를 승차 구역(loading zone), 충전 스테이션 또는 다른 정지 장소로 안전하게 유도(예를 들면, 바이 와이어로(by wire) 유도)하기 위해 사용된다.
다른 예에서, 외부 무선 통신 디바이스(5803 내지 5805)는 자신이 위치된 특정 지리적 영역에 관한 정보를 브로드캐스팅할 수 있다. 예를 들어, 외부 무선 통신 디바이스(5803 내지 5805)는 스쿨 존, 공사 현장, 승차 구역, 드론 착륙장, 철도 건널목, 교량, 터널 등에 진입할 때 AV(100)에 광고할 수 있다. 맵, 경로 설정, 및 장면 묘사를 업데이트하고 필요한 경우 잠재적으로 AV(100)를 경고 모드에 두기 위해 그러한 외부 위치 정보가 사용될 수 있다. 예를 들어, 스쿨 존에 위치된 외부 무선 통신 디바이스는 학교가 현재 수업 중이고 따라서 많은 학생이 스쿨 존에서 돌아다닐 수 있음을 광고할 수 있다. 이 정보는 AV(100)의 인지 모듈에 의해 제공되는 장면 묘사와 상이할 수 있다. 불일치가 검출되는 경우, 시스템 또는 센서 고장이 있을 수 있고, AV(100)는 학생과의 충돌을 피하기 위해 서행하고, 자신의 루트 또는 차선을 변경하며 그리고/또는 자신의 센서 및/또는 스캔 속도(scan rate)를 조정하도록 명령받을 수 있다. 다른 예에서, 공사 구역에 위치된 외부 무선 통신 디바이스는 공사 활동이 진행 중임을 광고할 수 있으며, 공사 구역이 장면 묘사에 포함되지 않은 경우, AV(100)는 자신의 속력을 늦추고, 차선을 변경하며 그리고/또는 공사 구역 및 공사 작업자 및/또는 중장비와의 잠재적 충돌을 피하기 위해 우회로 루트를 계산하도록 명령받을 수 있다.
일 실시예에서, 외부 무선 통신 디바이스는 카메라, LiDAR, RADAR 등과 같은 하나 이상의 인지 센서에 결합된다. 일 실시예에서, 외부 무선 통신 디바이스(5804)는 AV(100)에 의해 주행된 도로 세그먼트의 일 부분의 방해물 없는 뷰를 제공하기 위해 상승된 위치에 배치된다. 도시된 예에서, 외부 무선 통신 디바이스(5804)는 유틸리티 타워(utility tower)에 배치되고 장면 묘사를 AV(100)에 제공한다. AV(100)는 외부에서 생성된 장면 묘사와 그의 내부에서 생성된 장면 묘사를 비교하여, 내부에서 생성된 장면 묘사로부터 대상체가 누락되어 잠재적인 센서 고장을 나타내는지를 결정한다. 예를 들어, AV의 LiDAR가 대상체(예를 들면, 대형 트럭)에 의해 부분적으로 폐색되기 때문에 내부에서 생성된 장면 묘사가 도로 세그먼트 상의 양보 표지판을 포함하지 않을 수 있다. 이 예에서, 외부에서 생성된 장면 묘사와 내부에서 생성된 장면 묘사의 비교는 누락된 양보 표지판을 발견할 것이고, AV(100)의 온보드 센서가 AV(100)가 진행할 수 있음을 나타낼 때까지 서행하거나 정지하는 것에 의해 AV(100)가 양보 표지판을 준수하도록 제어되게 한다.
일 실시예에서, 외부 무선 통신 디바이스는 교통 신호등에 결합되고 교통 신호등 상태를 나타내는 신호를 AV(100)에 전송한다. 예를 들어, AV(100)가 교차로에 접근할 때, AV(100)는 교통 신호등에 결합된 외부 무선 통신 디바이스와의 연결을 확립하여 교통 신호등의 현재 상태를 나타내는 신호를 수신할 수 있다. 외부 교통 신호등 상태가 AV(100)에 의해 인지된(예를 들면, 자신의 온보드 카메라 센서를 사용하여 인지된) 교통 신호등 상태와 상이한 경우, AV(100)는 서행하거나 "안전 정지" 기동을 개시할 수 있다. 다른 예에서, 교통 신호등에 결합된 외부 무선 통신 디바이스는 교통 신호가 변경될 시간을 나타내는 외부 메시지를 송신할 수 있어, AV(100)가 동력을 절약하기 위해 신호 변경보다 앞서 정지하거나 또는 그의 엔진을 재시동하는 것과 같은 동작을 수행할 수 있게 한다.
다른 실시예에서, 외부 무선 통신 디바이스(5803)는 보행자 또는 동물에 의해 휴대되거나 착용되는 휴대용 디바이스(예를 들면, 모바일 폰, 스마트 워치, 피트니스 밴드, 식별 디바이스)이다. 예를 들어, 외부 무선 통신 프로세서(5803)는 보행자의 위치(또는 거리) 및/또는 속력을 AV(100)에 전송할 수 있다. AV(100)는 보행자의 위치를 내부에서 생성된 장면 묘사와 비교할 수 있다. 불일치가 있는 경우, AV(100)는 "안전 정지" 기동 또는 다른 액션을 수행할 수 있다. 일부 실시예에서, 외부 무선 통신 디바이스(5803)는 착용자가 어린이, 신체 장애자, 노인, 애완동물 등임을 나타내는 것과 같은 식별 정보를 제공하도록 프로그래밍될 수 있다. 다른 예에서, 차량에 의한 무선 신호 스캔에서 수신되는 많은 수의 외부 무선 통신 디바이스로부터의 신호 강도는 센서 고장으로 인해 또는 센서가 손상되었기(예를 들면, 대상체에 의해 폐색되었기) 때문에 내부에서 생성된 장면 묘사에 포함되지 않았을 수 있는 사람들의 무리를 나타내기 위해 사용될 수 있다.
일 실시예에서, AV(100)의 무선 통신 디바이스(5801)는 3개의 외부 무선 통신 디바이스와 연결을 확립하고, 예를 들어, 삼변 측량 알고리즘을 사용하여 AV(100)의 위치를 결정하기 위해 신호 강도 측정치 및 외부 무선 통신 디바이스의 광고된 위치를 사용한다. 다른 실시예에서, AV(100)의 위치는 셀룰러 네트워크 또는 외부 센서(예를 들면, 외부 카메라)에 의해 추정되고 외부 메시지의 페이로드에서 AV(100)에 제공될 수 있다. AV(100)는 외부 무선 통신 디바이스에 의해 제공되는 정보로부터 생성된 위치를 시각적 주행 거리 측정을 사용하여 온보드 GNSS 수신기 또는 카메라에 의해 계산된 AV(100)의 위치와 비교할 수 있다. 센서가 고장나거나 좋지 않은 운행 솔루션(예를 들면, 높은 수평 위치 에러)을 제공하는 경우, 외부에서 생성된 정보를 사용하여 결정된 위치가 "안전 정지" 기동 또는 다른 액션에서 AV(100)에 의해 사용될 수 있다.
일 실시예에서, 주차되고 무선 통신 디바이스 장치를 장착한 차량은 위치 정보를 AV(100)에 제공하기 위한 애드혹 무선 네트워크를 형성하는 데 사용된다. 예를 들어, 동일한 지리적 영역에 위치되고 동일한 플릿 서비스에 속하는 주차된 또는 운행 중단된(out-of-service) 차량은 AV(100)에 의해 수행되는 GNSS 수신기 및 시각적 주행거리계 로컬화 기술과 리던던트인 단거리 통신 기반 로컬화 서비스를 제공하는 데 사용될 수 있다. 주차된 또는 운행 중단된 차량은 자신의 위치를 클라우드에 송신할 수 있으며 따라서 플릿이 그 차량의 위치를 결정하거나 또는 그 차량의 위치를 AV(100)에 직접적으로 전송할 수 있다. 주차된 또는 운행 중단된 차량에 의해 송신된 RF 신호는 AV(100)의 위치를 결정하기 위해, 주차된 또는 운행 중단된 차량의 알려진 위치와 함께, AV(100)에 의해 사용될 수 있다.
도 59는 일 실시예에 따른, 외부 메시지 포맷(5900)을 예시한다. 외부 메시지 포맷(5900)은 헤더(5902), 공개 메시지(5904), 하나 이상의 개인(예를 들어, 암호화된) 메시지(5906) 및 에러 검출/정정 코드(5906)를 포함한다. 공개 메시지(5904) 및 하나 이상의 개인 메시지(5906)는 집합적으로 외부 메시지의 "페이로드"라고 지칭된다.
헤더(5902)는, 타임스탬프 및 각각의 페이로드의 개수, 유형 및 크기를 포함하지만 이에 제한되지 않는, 외부 메시지를 파싱 및 디코딩하기 위해 무선 통신 수신기에 의해 사용될 수 있는 메타데이터를 포함한다. 공개 메시지(5904)는 암호화되지 않으며, 교통 조건 정보, 앰버 경보(Amber alert), 기상 통보, 공공 서비스 공지 등을 포함하지만 이에 제한되지 않는, 임의의 무선 통신 수신기에 의해 소비될 수 있는 콘텐츠를 포함한다. 일 실시예에서, 하나 이상의 개인 메시지(5906)는 암호화되고, 더 상세한 교통 및 기상 통보, 커스터마이즈된 엔터테인먼트 콘텐츠, 웹 사이트 또는 포털에 대한 URL 등을 포함하지만 이에 제한되지 않는, 콘텐츠에 액세스하도록 인가된 무선 통신 수신기에 의해 소비될 수 있는 콘텐츠를 포함한다.
일 실시예에서, 외부 메시지 포맷(5900)은 상이한 서비스 제공자에 의해 제공되는 콘텐츠를 포함하는 개인 메시지(5906)를 포함하고, 각각의 개인 메시지는 서비스의 가입자에게 제공될 수 있는 복호화를 위한 개인 키를 필요로 한다. 이러한 특징은 상이한 AV 플릿 서비스가 단일 외부 메시지를 사용하여 그 각자의 개인 메시지(5906)를 그의 가입자 베이스에 전달할 수 있게 한다. 각각의 플릿 서비스는 향상된 또는 프리미엄 콘텐츠가 외부 메시지 내의 개인 메시지(5906)에서 전달되게 하기 위해 그의 가입자에게 개인 키를 제공할 수 있다. 이 특징은, 각각의 콘텐츠 공급자가 그 자신의 독점적인 무선 통신 디바이스를 설치하지 않고, 단일 외부 무선 통신 디바이스가 각종의 상이한 콘텐츠 공급자의 콘텐츠를 전달할 수 있게 한다. 예를 들어, 도시는 무선 통신 디바이스를 설치 및 운영하고, 이어서 라이선스 요금을 받고 콘텐츠 제공자에게 외부 메시지 내의 개인 메시지 슬롯을 라이선싱할 수 있다.
일 실시예에서, 외부 메시지는 외부 무선 통신 디바이스로부터 단일 차량에 의해 수신되고, 이어서 단일 차량에 의해 단일 차량 근처에 있는 다른 차량에 재브로드캐스트팅될 수 있으며, 따라서 외부 무선 통신 디바이스의 커버리지 영역 내에 있지 않은 지리적 영역에서 바이러스성 방식(viral manner)으로 외부 메시지를 전파할 수 있다.
도 60은 일 실시예에 따른, 하나 이상의 외부 무선 통신 디바이스에 의해 제공되는 외부 정보를 사용하여 자율 주행 차량에서의 리던던시를 제공하기 위한 예시적인 프로세스(6000)를 도시한다. 일 실시예에서, 방법은: AV에 의해, 환경에서 AV의 자율 주행 운전 기능(예를 들면, 로컬화 기능, 계획 기능, 인지 기능, 제어 기능)을 수행하는 단계(6001); AV의 내부 무선 통신 디바이스에 의해, 환경에 위치된(예를 들면, 다른 차량에 설치된, 보행자 또는 동물에 휴대되거나 착용된, 유틸리티 타워에 설치된) 외부 무선 통신 디바이스(예를 들면, RF 비컨, 적외선 디바이스, 자유 공간 광학 디바이스, 음향 디바이스, 마이크로파 디바이스)로부터 외부 메시지를 수신하는 단계(6002); AV의 하나 이상의 프로세서에 의해, 기능의 출력을 외부 메시지의 콘텐츠 또는 콘텐츠에 기초하여 생성된 데이터와 비교하는 단계(6003)(예를 들면, 장면 묘사를 비교하는 것, AV의 위치 좌표를 비교하는 것, 운전 상태를 비교하는 것); 및 비교의 결과에 따라, AV로 하여금 기동을 수행하게 하는 단계(6004)(예를 들면, 안전 정지 기동을 수행하는 것, AV의 속력을 변경하는 것, 제동을 거는 것, 차선 변경을 개시하는 것)를 포함한다.
리던던트 컴포넌트 대체
인지와 같은, 자율 주행 기능을 수행하기 위한 많은 수의 추가적인 컴포넌트(예를 들면, 센서, ECU, 액추에이터)로 인해 대규모 AV 플릿은 유지 관리하기가 어렵다. 플릿 차량의 가동시간(uptime)을 극대화하기 위해, 손상되었거나 업그레이드를 필요로 하는 AV 컴포넌트는 신속하게 대체될 필요가 있을 것이다. 개인용 컴퓨터와 마찬가지로, AV는 "플러그 앤 플레이"(PnP) 기술을 활용하여 AV가 정비소에 있는 시간의 양을 감소시킬 수 있다. PnP를 사용하면, 물리적 디바이스 구성 또는 리소스 충돌을 해결하는 기술자 개입을 필요로 함이 없이 AV에 추가되는 하드웨어 컴포넌트가 자동으로 발견될 수 있다.
그렇지만, 개인용 컴퓨터와 달리, AV는 그의 중요한 시스템에 리던던시가 내장되어 있을 수 있다. 일부 경우에, AV의 안전한 동작을 보장하기 위해 리던던트 컴포넌트가 리던던시 모델과 호환될 필요가 있다. 예를 들어, 도 13 내지 도 29를 참조하여 이전에 기술된 바와 같이, 하나의 센서는 다른 센서에 의해 출력된 데이터를 사용하여 센서들 중 하나가 고장났는지 또는 향후 고장날 것인지를 결정할 수 있다. AV의 다른 컴포넌트와 리던던트인 비호환 대체 컴포넌트가 설치되어 있고, 대체 컴포넌트가 다른 컴포넌트로부터의 데이터에 의존하는 경우, 대체 컴포넌트가 AV로 하여금 오작동하게 할 수 있다.
호환성은 사양 호환성(예를 들면, 하드웨어, 소프트웨어 및 센서 어트리뷰트), 버전 호환성, 호환 데이터 레이트, 및 알고리즘 호환성(예를 들면, 매칭/검출 알고리즘)을 포함할 수 있지만 이에 제한되지 않는다. 예를 들어, 대체 스테레오 카메라는 대응하는 LiDAR 센서에서 사용되는 매칭 알고리즘과 동일한 매칭 알고리즘을 사용할 수 있으며, 여기서 리던던시 모델은 2개의 알고리즘이 상이할 것을 요구한다.
리던던시 비호환성을 해결하기 위해, 기본 PnP 구성 프로세스 대신에 또는 그에 추가적으로 별도의 리던던시 구성 프로세스가 수행된다. 일 실시예에서, 리던던시 구성 프로세스는 기본 PnP 구성 단계를 포함하지만 대체 컴포넌트가 리던던시 모델을 위반하는지를 검출하기 위해 추가적인 단계를 또한 수행한다.
일 실시예에서, AV에 추가되는 컴포넌트가 AV 운영 체제(OS)에게 자신을 확인시켜 줄 수 있고 AV OS로부터의 리소스 할당을 수락할 수 있도록, 컴포넌트는 PnP 호환된다. 이 확인의 일부로서, AV OS가 컴포넌트가 리던던시 모델을 위반하는지를 결정할 수 있도록 컴포넌트의 능력을 충분히 상세히 기술하는 특성 리스트가 AV OS에 제공될 수 있다. 일부 예시적인 특성은 하드웨어의 제조업체, 모델 및 버전, 및 컴포넌트가 소프트웨어/펌웨어를 사용하는 경우 컴포넌트에 대한 소프트웨어/펌웨어 버전을 포함하지만 이에 제한되지 않는다. 다른 특성은, LiDAR 센서에 대한 범위, 분해능, 정확도 및 대상체 검출 알고리즘, 또는 스테레오 카메라에 대한 센서 분해능, (z 축에 대한) 깊이 분해능, 비트 깊이, 픽셀 크기, 프레임 레이트, 초점 거리, FOV(field-of-view), 노출 범위 및 매칭 알고리즘(예를 들면, OpenCV 블록 매처, OpenCV SGBM 매처)와 같은, 컴포넌트별(component specific) 성능 사양일 수 있다.
일 실시예에서, 호스트 컴퓨터에서 실행되는 비휘발성 펌웨어(예를 들면, 기본 입/출력 서비스(BIOS))는 AV 내의 상이한 컴포넌트에 관한 정보를 수집하고 컴포넌트에 리소스를 할당하는 루틴을 포함한다. 펌웨어는 또한 이 정보를 AV OS에 통신하고, AV OS는 AV 컴포넌트가 리던던시 모델에 따라 올바르게 작동하게 하기 위해 이 정보를 사용하여 그의 드라이버 및 다른 소프트웨어를 구성한다. 일 실시예에서, AV OS는 컴포넌트가 AV 애플리케이션에 의해 사용되기 위해 필요한 컴포넌트에 대한 디바이스 드라이버를 셋업한다. AV OS는 또한 AV의 운전자(또는 정비소에 있는 기술자)와 통신하여, 구성에 대한 변경을 통지하고 필요한 경우 기술자가 리소스 설정을 변경할 수 있게 한다. 이 통신은 AV에 있는 디스플레이를 통하거나, 진단 장비의 디스플레이를 통하거나, AV 텔레매틱스 데이터 스트림을 통하거나, 또는 임의의 다른 적합한 출력 메커니즘을 통할 수 있다.
도 61은 AV에서의 리던던트 컴포넌트를 대체하기 위한 예시적인 아키텍처(6100)의 블록 다이어그램을 도시한다. 일 실시예에서, 아키텍처(6100)는 통신 인터페이스(6101), 컴퓨팅 플랫폼(6102), 호스트 프로세서(6103), 저장 디바이스(6104) 및 컴포넌트 허브(6105 및 6106)를 포함한다. 컴포넌트 허브(6105)는 컴포넌트(6107, 6108 및 6109)에 결합된다. 컴포넌트 허브(6106)는 컴포넌트(6110 및 6111)에 결합된다. 컴포넌트 허브(6106)는 손상된 컴포넌트(예를 들어, 손상된 카메라)를 대체하기 위해 새로운 컴포넌트(6113)를 수용하기 위한 추가 슬롯/포트(6112)를 또한 포함한다. 일 실시예에서, 각각의 컴포넌트 허브(6105, 6106)는 컴포넌트로부터 컴퓨팅 플랫폼(6102)(예를 들어, 자동 운전 서버)으로의 데이터 집중기 및/또는 데이터 라우터로서 동작한다.
도시된 예에서, 통신 인터페이스(6101)는 "I/O 가상화"에 대한 하드웨어 지원을 제공하는 PCIe(Peripheral Component Interconnect Express) 스위치이며, 이는 상위 계층 프로토콜이 물리적 연결(예를 들면, HDBaseT 연결)로부터 추상화된다는 것을 의미한다. 컴포넌트는, 센서, 액추에이터, 컨트롤러, 스피커, I/O 디바이스를 포함하지만 이에 제한되지 않는, PnP 능력을 갖는 임의의 하드웨어 디바이스일 수 있다.
일 실시예에서, PnP 기능은 부팅 프로세스 동안 BIOS 펌웨어에 의해 수행된다. 부팅 프로세스의 적절한 단계에서, BIOS는 AV에서 PnP 컴포넌트를 발견하고 구성하는 절차를 따를 것이다. 예시적인 기본 PnP 구성은 다음과 같은 단계를 포함한다: 1) 시스템 컴포넌트를 위해 예약된 것을 제외한, 이용 가능한 인터럽트 요청(IRQ), 직접 메모리 액세스(DMA) 채널 및 I/O 어드레스의 리소스 테이블을 생성하는 단계; 2) AV 버스 또는 스위치에서 PnP 디바이스 및 비-PnP 디바이스에 대해 탐색하고 식별하는 단계; 3) 비휘발성 메모리에 저장된 마지막으로 알려진 시스템 구성을 로딩하는 단계; 4) 현재 구성을 마지막으로 알려진 구성과 비교하는 단계. 현재 구성 및 마지막으로 알려진 구성이 변경되지 않은 경우; 5) 부팅을 계속한다.
현재 구성 및 마지막으로 알려진 구성이 변경되는 경우, 다음과 같은 추가적인 단계가 수행된다: 6) 비-PnP 디바이스에 의해 사용되고 있는 리소스 테이블 내의 임의의 리소스를 제거함으로써 시스템 재구성을 시작하는 단계; 7) 임의의 추가적인 시스템 리소스가 비-PnP 컴포넌트에 의해 사용하도록 예약되어 있는지를 알아보기 위해 BIOS 설정을 검사하고 이들 중 임의의 것을 리소스 테이블로부터 제거하는 단계; 8) 리소스 테이블에 남아 있는 리소스 중의 리소스를 PnP 카드에 할당하고 컴포넌트에 그의 새로운 할당을 통보하는 단계; 9) 이를 새로운 시스템 구성으로서 저장함으로써 구성 데이터를 업데이트하는 단계; 및 10) 부팅 프로세스를 계속하는 단계.
기본 구성이 완료된 후에, 새로운 컴포넌트가 AV의 다른 컴포넌트와 리던던트 쌍을 형성하는지를 결정하기 위해 리던던시 테이블(예를 들면, 저장 디바이스(6104)에 저장됨)을 탐색하는 것을 포함하는 리던던시 구성이 수행되며, 여기서 리던던트 컴포넌트 쌍은 AV의 리던던시 모델을 위반하지 않도록 호환되어야 한다. 새로운 컴포넌트(6113)가 리던던시 테이블에 있는 경우, 새로운 컴포넌트(6113)에 의해 제공되는 특성 리스트(예를 들면, 성능 사양, 센서 어트리뷰트)가 저장 디바이스(6104)에 저장된 리던던시 모델에 의해 요구되는 특성 리스트와 비교된다. 비호환성을 나타내는 특성의 미스매치가 있는 경우, AV의 운전자 또는 기술자(예를 들면, AV가 자동차 정비소에 있는 경우)는 (예를 들면, 디스플레이를 통해) 비호환성에 대해 통지받는다. 일 실시예에서, AV의 리던던시 모델을 위반하지 않는 호환 컴포넌트가 추가될 때까지 AV가 운전될 수 없도록 AV가 또한 디스에이블될 수 있다.
도 62는 AV에서의 리던던트 컴포넌트를 대체하는 예시적인 프로세스(6200)의 흐름 다이어그램을 도시한다.
프로세스(6200)는 AV의 데이터 네트워크에 결합된 새로운 컴포넌트를 검출하는 것으로 시작된다(6201). 예를 들어, 컴포넌트는 PCIe 스위치를 통해 데이터 네트워크에 결합될 수 있다. 컴포넌트의 일부 예는 다수의 컴포넌트에 결합된 센서, 액추에이터, 컨트롤러 및 허브를 포함하지만 이에 제한되지 않는다.
프로세스(6200)는 AV OS가 새로운 컴포넌트를 발견하는 것(6201), 및 새로운 컴포넌트가 리던던트 컴포넌트이고 대응(counterpart) 리던던트 컴포넌트를 갖는지를 결정하는 것(6202)에 의해 계속된다. 예를 들어, 도 61을 참조하여 기술된 바와 같이, 새로운 컴포넌트가 리던던트 컴포넌트를 대체하고 따라서 AV에 대한 리던던시 모델을 준수해야 하는지를 결정하기 위해 리던던시 테이블이 탐색될 수 있다.
새로운 컴포넌트가 리던던트 컴포넌트인 것에 따라, 프로세스(6200)는 리던던시 구성을 수행한다(6203). 새로운 컴포넌트가 리던던트 컴포넌트가 아닌 것에 따라, 프로세스(6200)는 기본 구성을 수행한다(6204). 기본 구성 단계 및 리던던시 구성 단계는 도 61을 참조하여 이전에 기술되었다. 일 실시예에서, 리던던시 구성은 기본 구성 및 새로운 모듈이 AV의 리던던시 모델을 준수하는지를 결정하기 위한 추가 단계를 포함한다.
리던던트 계획
일 실시예에서, 인지 모듈은 장면 묘사가 자율 주행 차량의 동작 도메인 내에 있는지("스코프 내"인지)를 결정하는 스코프 내 검사 모듈에 장면 묘사를 제공한다. 자율 주행 차량의 동작 도메인은, 자율 주행 차량에 알려져 있는 지리적 영역 내의 모든 고정 및 동적 대상체를 포함하는, 자율 주행 차량이 동작하고 있는 지리적 영역이다. 장면 묘사가 자율 주행 차량의 동작 도메인 내에 있지 않은 하나 이상의 대상체(예를 들면, 새로운 정지 표지판, 공사 구역, 교통을 안내하는 경찰관, 유효하지 않은 도로망 그래프)를 포함할 때 "스코프 내" 조건이 위반된다.
장면 묘사가 "스코프 내"인 경우, 인지 모듈은 2개의 독립적이고 리던던트인 계획 모듈에 대한 입력으로서 장면 묘사를 제공한다. 각각의 계획 모듈은 거동 추론 모듈 및 모션 계획 모듈을 포함한다. 모션 계획 모듈 각각은 자율 주행 차량의 위치 및 정적 맵 데이터를 입력으로서 받는 모션 계획 알고리즘을 사용하여 자율 주행 차량에 대한 궤적(또는 궤적 노선(trajectory corridor))을 생성한다. 일 실시예에서, 자율 주행 차량의 위치는 도 4를 참조하여 기술된 바와 같은, 로컬화 모듈(408)과 같은, 로컬화 모듈에 의해 또는 자율 주행 차량 외부의 소스에 의해 제공된다.
각각의 계획 모듈은 다른 계획 모듈에 의해 생성된 궤적(또는 궤적 노선)을 수신하고 장면 묘사에서의 적어도 하나의 대상체와의 충돌에 대해 궤적을 평가한다. 거동 추론 모듈은 상이한 거동 추론 모델을 사용한다. 예를 들어, 제1 계획 모듈에 의해 구현되는 제1 거동 추론 모듈은 등속(CV) 및/또는 등가속(CA) 모델을 사용하여 제2 계획 모듈에 의해 생성되는 궤적(또는 궤적 노선)을 평가할 수 있다. 유사하게, 제2 계획 모듈에서 구현되는 제2 거동 추론 모듈은 머신 러닝 알고리즘을 사용하여 제1 계획 모듈에 의해 생성되는 제1 궤적(또는 궤적 노선)을 평가할 수 있다.
일 실시예에서, 각각의 계획 모듈의 데이터 입력/출력은 계획 모듈과 연관된 하드웨어 및/또는 소프트웨어 에러를 검출하기 위해 독립적인 진단 모니터링 및 타당성 검사를 받는다. 리던던트 계획 모듈들 간의 공통 원인 고장(common cause failure)이 없기 때문에, 리던던트 계획 모듈이 하드웨어 및/또는 소프트웨어 에러로 인해 동시에 고장날 가능성은 없다. 진단 모니터링 및 타당성 검사의 결과와 궤적 평가의 결과는, 안전 정지 기동 또는 비상 제동과 같은, 자율 주행 차량에 대한 적절한 액션을 결정한다.
일 실시예에서, 계획 모듈들 중 하나는 공칭 동작 조건 동안 사용되고, 다른 계획 모듈은 자기 차선(ego-lane)에서의 안전한 정지를 위해 사용된다(이후부터 "성능 저하 모드(degraded mode)"라고도 지칭됨). 일 실시예에서, 계획 모듈은 적어도 하나의 대상체와의 충돌에 대해 다른 계획 모듈에 의해 제공되는 궤적을 평가하는 것 이외의 어떠한 기능도 수행하지 않는다.
도 63은 일 실시예에 따른, 리던던트 계획 시스템(6300)의 블록 다이어그램을 도시한다. 시스템(6300)은 인지 모듈(6301), 스코프 내 검사 모듈(6302) 및 계획 모듈(6303a, 6303b)을 포함한다. 계획 모듈(6303a)은 거동 추론 모듈(6304a), 모션 계획 모듈(6305a) 및 온보드 진단(OBD) 모듈(6306a)을 추가로 포함한다. 계획 모듈(6303b)은 거동 추론 모듈(6304b), 모션 계획 모듈(6305b) 및 OBD 모듈(6306b)을 추가로 포함한다.
인지 모듈(6301)(도 4를 참조하여 인지 모듈(402)이라고 이전에 기술됨)은 하나 이상의 센서를 사용하여 인근의 물리적 대상체를 식별한다. 일 실시예에서, 대상체는 유형(예를 들면, 보행자, 자전거, 자동차, 교통 표지판 등)으로 분류되고, 분류된 대상체(416)를 포함하는 장면 묘사("장면 묘사"라고도 지칭됨)가 리던던트 계획 모듈(6303a, 6303b)에 제공된다. 리던던트 계획 모듈(6303a, 6303b)은 또한 로컬화 모듈(408)(도 4에 도시됨) 또는 AV 외부의 소스로부터 AV 위치(418)를 나타내는 데이터(예를 들면, 위도, 경도, 고도)를 수신한다. 일 실시예에서, 장면 묘사는 AV 외부의 소스(예를 들면, 클라우드 기반 소스, V2V를 사용하는 다른 AV)에 의해 무선 통신 매체를 통해 제공된다.
스코프 내 검사 모듈(6302)은 장면 묘사가 "스코프 내"인지를 결정하는데, 스코프 내라는 것은 장면 묘사가 AV의 동작 도메인 내에 있다는 것을 의미한다. "스코프 내"인 경우, 스코프 내 검사 모듈(6302)은 스코프 내 신호를 출력한다. AV의 정의된 동작 도메인에 따라, 스코프 내 검사 모듈(6302)은 AV의 동작 도메인이 위반되었는지를 결정하기 위해 "스코프 외(out-of-scope)" 조건을 찾아본다. 스코프 외 조건의 일부 예는 공사 구역, 일부 기상 조건(예를 들어, 폭풍, 폭우, 짙은 안개 등), 교통을 안내하는 경찰관 및 유효하지 않은 도로망 그래프(예를 들면, 새로운 정지 표지판, 차선 폐쇄)를 포함하지만, 이에 제한되지 않는다. 자율 주행 차량이 스코프 외에서 동작하고 있다는 사실을 인식하지 못하는 경우, 자율 주행 차량의 안전한 동작이 보장될 수 없다(예를 들면, 자율 주행 차량이 정지 신호를 무시하고 달릴 수 있음). 일 실시예에서, AV가 "스코프 내" 검사를 통과하지 못하면 안전 정지 기동을 결과한다.
스코프 내 신호는 계획 모듈(6303a, 6303b)에 입력된다. "스코프 내"인 경우, 모션 계획 모듈(6305a, 6305b)은 이 예시적인 실시예에서, 제각기, 궤적 A 및 궤적 B라고 지칭되는 AV에 대한 궤적을 독립적으로 생성한다. 도 9를 참조하여 기술된 바와 같이, 모션 계획 모듈(6305a, 6305b)은 궤적 A 및 궤적 B를 독립적으로 생성하기 위해 공통의 또는 상이한 모션 계획 알고리즘, 정적 맵 및 AV 위치를 사용한다.
궤적 A는 계획 모듈(6303b)의 거동 추론 모듈(6304b)에 입력되고 궤적 B는 계획 모듈(6303a)의 거동 추론 모듈(6304a)에 입력된다. 거동 추론 모듈(6304a, 6304b)은 궤적 A와 궤적 B가 장면 묘사에서의 적어도 하나의 대상체와 충돌하는지를 결정하기 위해 상이한 거동 추론 모델을 구현한다. 장면 묘사에서의 대상체와의 충돌을 결정하기 위해 임의의 원하는 거동 추론 모델이 사용될 수 있다. 일 실시예에서, 거동 추론 모듈(6304a)은 등속(CV) 모델 및/또는 등가속(CA) 모델을 사용하여 대상체 거동을 추론하고, 거동 추론 모듈(6304b)은 머신 러닝 모델(예를 들면, 컨볼루션 신경 네트워크, 딥 러닝, 서포트 벡터 머신, 분류기)을 사용하여 대상체 거동을 추론한다. 거동 추론 모델의 다른 예는 게임 이론 모델(game-theoretic model), POMDP(partially observable Markov decision process)를 사용하는 확률 모델, 신경 네트워크에 의해 파라미터화된 가우시안 혼합 모델, 비파라메트릭 예측 모델, IRL(inverse reinforcement learning) 모델 및 생성적 적대 모방 학습(generative adversarial imitation learning) 모델을 포함하지만 이에 제한되지 않는다.
일 실시예에서, 거동 추론 모듈(6304a, 6304b)의 출력 신호(예를 들면, 예/아니오)는 궤적 A 및/또는 궤적 B가 장면 묘사에서의 적어도 하나의 대상체와 충돌하는지 여부를 나타낸다. 충돌 검출의 경우에, 출력 신호는 "안전 정지" 기동 또는 비상 제동에 영향을 미치기 위해, 도 4를 참조하여 기술된 바와 같은 제어 모듈(406)과 같은, 다른 AV 모듈로 라우팅될 수 있다. 일 실시예에서, "안전 정지 기동"은 비상 상황(예를 들면, 시스템 오작동, 자율 주행 차량 내의 승객에 의해 개시된 비상 정지, 자연 재해, 악천후 조건, 자율 주행 차량 또는 환경 내의 다른 차량과 관련된 도로 사고 등) 동안 자율 주행 차량에 의해 수행되는 기동이다.
일 실시예에서, OBD(6306a) 및 OBD(6306b)는, 그 각자의 입력/출력을 모니터링하는 것 및 하드웨어 및/또는 소프트웨어 에러를 검출하기 위해 타당성 검사를 수행하는 것을 포함하여, 제각기, 계획 모듈(6303a, 6303b)에 대한 독립적인 진단 커버리지를 제공한다. OBD(6306a) 및 OBD(6306b)는 그 각자의 진단 테스트의 결과(예를 들면, 합격/불합격(Pass/Fail))의 결과를 나타내는 신호를 출력한다. 일 실시예에서, 고장의 유형 및 고장의 심각도 레벨을 나타내는 코드(예를 들면, 이진 코드)와 같은, 다른 출력 신호 또는 데이터가 OBD(6306a) 및 OBD(6306b)에 의해 제공될 수 있다. 고장의 경우에, 출력 신호는 "안전 정지" 기동 또는 비상 제동에 영향을 미치기 위해, 도 4를 참조하여 기술된 제어 모듈(406)과 같은, 다른 AV 모듈로 라우팅될 수 있다.
도 64는 도 63에 도시된 리던던트 계획 모듈에 의해 수행되는 리던던트 계획 로직을 예시하는 표를 도시한다. 표에서의 각각의 행은 AV에 의해 수행될 특정 액션을 가져오는 출력 신호들의 조합을 나타낸다. 표의 행 1을 참조하면, 장면 묘사가 AV 동작 도메인의 스코프 내에 있고("스코프 내"), 진단 불합격 또는 충돌로 인한 안전하지 않은 궤적이 없는 경우, AV는 공칭 동작 조건을 유지한다. 표의 행 2과 행 3을 참조하면, "스코프 내"이고 계획 모듈(6303a 또는 6303b)을 커버하는 진단이 불합격을 나타내는 경우, 어느 정도의 리던던시가 손실되고 AV는 자기 차선에서 "안전 정지" 기동을 개시한다. 행 4 및 행 5를 참조하면, "스코프 내"이고 양쪽 계획 모듈(6303a, 6303b)에 대한 진단이 통과되며, 계획 모듈(6303a) 또는 계획 모듈(6303b) 중 어느 하나가 충돌로 인한 안전하지 않은 궤적을 검출하는 경우, 계획 모듈(6303a)과 계획 모듈(6303b) 사이에 궤적의 안전성에 관한 의견 차이(disagreement)가 있고, AV는 자기 차선에서 "안전 정지"기동을 개시한다. 행 6을 참조하면, 양쪽 계획 모듈(6303a, 6303b)에 대한 진단이 통과되고 양쪽 계획 모듈(6303a, 6303b)이 충돌을 검출한 경우, AV는, 예를 들어, AV 내의 ADAS(Advanced Driver Assistance System) 컴포넌트를 사용하여 AEB를 개시한다. 일 실시예에서, 공칭 동작 조건 동안에는 계획 모듈(6303a)만이 사용되고, AV가 "성능 저하" 모드에서 동작하고 있을 때는 자기 차선에서의 안전한 정지를 위해 계획 모듈(6303b)만이 사용된다.
도 65는 리던던트 계획 프로세스(6500)의 흐름 다이어그램을 도시한다. 프로세스(6500)는 도 3 및 도 4에 도시된 AV 아키텍처에 의해 구현될 수 있다. 프로세스(6500)는 인지 모듈 또는 외부 소스로부터 동작 환경의 장면 묘사 및 AV 동작 도메인의 묘사(description)를 획득하는 것(6501)으로 시작될 수 있다. 프로세스(6500)는 장면 묘사가 AV(6502)의 동작 도메인 내에 있는지를 결정하는 것(6502)으로 계속된다. 아니오인 경우, 프로세스(6500)는 종료된다. 예인 경우, 프로세스(6500)는 리던던트 계획 모듈들 중 하나 또는 둘 모두에 대한 진단이 하드웨어 및/또는 소프트웨어의 고장을 나타내는지를 결정한다(6503). 고장을 결정하는 것에 따라, AV(6510)에 의해 "안전 정지" 기동이 개시된다.
하드웨어 및/또는 소프트웨어로 인한 고장이 없다고 결정하는 것에 따라, 프로세스(6500)는, 제1 계획 모듈에 의해, 장면 묘사 및 AV 위치를 사용하여 제1 궤적을 생성하는 것(6504), 및 제2 계획 모듈에 의해, 장면 묘사 및 AV 위치를 사용하는 제2 궤적을 생성하는 것(6505)으로 계속된다. 프로세스(6500)는 충돌에 대해 제1 계획 모듈의 제1 거동 추론 모델을 사용하여 제2 궤적을 평가하는 것, 및 충돌에 대해 제2 계획 모듈의 제2 거동 추론 모델을 사용하여 제1 궤적을 평가하는 것(6507)으로 계속된다. 프로세스(6500)가 제1 궤적 및 제2 궤적 둘 모두가 안전하다고 결정하는 것(6508)에 따라, AV는 공칭 조건 하에서 동작하고(6509) 리던던시는 영향을 받지 않는다. 프로세스(6500)가 제1 궤적 또는 제2 궤적 중 하나가 안전하지 않다고 결정하는 것(6511)에 따라, AV는 자기 차선에서 "안전 정지" 기동을 수행한다(6510). 프로세스(6500)가 제1 궤적 및 제2 궤적이 안전하지 않다고 결정하는 것(6508)에 따라, AV는 최후의 수단으로 비상 제동을 수행한다(6512).
시뮬레이션을 사용한 리던던시
제1 프로세스/서브시스템/시스템의 출력을 제2 프로세스/서브시스템/시스템의 시뮬레이션에 대한 입력으로 사용하는 것, 및 제2 프로세스/서브시스템/시스템의 출력을 제1 프로세스/서브시스템/시스템의 시뮬레이션에 대한 입력으로 사용하는 것에 의해 프로세스/서브시스템/시스템에 대한 리던던시를 제공하기 위해 AV 프로세스, 서브시스템 및 시스템의 시뮬레이션이 사용된다. 추가적으로, 각각의 프로세스/서브시스템/시스템은 소프트웨어 또는 하드웨어 에러에 대한 독립적인 진단 모니터링을 받는다. 리던던시 프로세서는 각각의 프로세스/서브시스템/시스템의 출력, 각각의 시뮬레이션의 출력 및 진단 모니터링의 결과를 입력으로 받아서 프로세스들 또는 시스템들 중 하나 또는 둘 모두의 잠재적인 고장이 있는지를 결정한다. 프로세스/서브시스템/시스템의 고장을 결정하는 것에 따라, 자율 주행 차량은 "안전 정지" 기동 또는 다른 액션(예를 들면, 비상 제동)을 수행한다. 일 실시예에서, 시뮬레이션을 조정하기 위해(예를 들면, 시뮬레이션에 사용되는 하나 이상의 모델을 조정하기 위해) 하나 이상의 외부 인자(예를 들면, 환경 조건, 도로 조건, 교통 조건, AV 특성, 시각) 및/또는 운전자 프로파일(예를 들면, 연령, 숙련도 레벨(skill level), 운전 패턴)이 사용된다.
본원에서 사용되는 바와 같이, "시뮬레이션"은, 프로세스 또는 시스템의 주요 특성, 거동 및 기능을 표현하는 "모델"에 의해 표현될 수 있거나 표현되지 않을 수 있는, AV 센서 또는 서브시스템의 현실 세계 프로세스 또는 시스템의 동작의 모방을 의미한다.
본원에서 사용되는 바와 같이, "모델"은 현실의 의도적인 추상화를 의미하며, 그 결과 현실 세계 프로세스 또는 시스템의 개념화 및 기본 가정과 제약의 규정을 결과한다.
도 66은 시뮬레이션을 사용하여 리던던시를 구현하기 위한 시스템(6600)의 블록 다이어그램을 도시한다. 일 실시예에서, 시스템(6600)은 인터페이스(6601a, 6601b), 진단 모듈(6602a, 6602b), 시뮬레이터(6603a, 6603b) 및 리던던시 프로세서(6604)를 포함한다. 진단 모듈(6602a, 6602b)은 하드웨어 및/또는 소프트웨어로 구현되고, 시뮬레이터(6603a, 6603b)는 하나 이상의 컴퓨터 프로세서에서 실행되는 소프트웨어로 구현된다.
공칭 동작 모드에서 동작할 때, 제1 AV 프로세스/서브시스템/시스템으로부터의 데이터 A는 인터페이스(6601a)에 입력되고, 인터페이스(6601a)는 데이터 A를 시뮬레이터(6603b)에 용인 가능한 형태로 변환 및/또는 포맷팅한다. 변환/포맷팅된 데이터 A는 이어서 진단 모듈(6602a)에 입력되고, 진단 모듈(6602a)은 하드웨어 및 소프트웨어 에러에 대해 모니터링하고 모니터링의 결과를 나타내는 데이터 또는 신호(예를 들면, 합격 또는 불합격)를 출력한다. 데이터 A는 이어서 시뮬레이터(6603b)("시뮬레이터 B")에 입력되고, 시뮬레이터(6603b)는 데이터 A를 사용하여 제2 AV 프로세스/서브시스템/시스템의 시뮬레이션을 수행한다.
동시에(예를 들면, 병렬로), 제2 AV 프로세스/서브시스템/시스템으로부터의 데이터 B는 인터페이스(6601b)에 입력되고, 인터페이스(6601b)는 데이터 B를 시뮬레이터(6603a)에 용인 가능한 형태로 변환 및/또는 포맷팅한다. 변환/포맷팅된 데이터 B는 이어서 진단 모듈(6602b)에 입력되고, 진단 모듈(6602b)은 하드웨어 및 소프트웨어 에러에 대해 모니터링하고 모니터링의 결과를 나타내는 데이터 또는 신호(예를 들면, 합격 또는 불합격)를 출력한다. 데이터 B는 이어서 시뮬레이터(6603a)("시뮬레이터 A")에 입력되고, 시뮬레이터(6603a)는 데이터 B를 사용하여 제1 AV 프로세스/시스템의 시뮬레이션을 수행한다.
일 실시예에서, 시스템(6600)은 실시간(RT) 시뮬레이션 및 HIL(hardware-in-the-Loop) 기술을 사용하여 구현되며, 여기서 하드웨어(예를 들면, 센서, 컨트롤러, 액추에이터)는 I/O 인터페이스(6601a, 6601b)에 의해 RT 시뮬레이터(6603a, 6603b)에 결합된다. 일 실시예에서, I/O 인터페이스(6601a, 6601b)는 하드웨어에 의해 출력된 아날로그 신호를 RT 시뮬레이션에 의해 프로세싱될 수 있는 디지털 값으로 변환하는 아날로그-디지털 변환기(ADC) 및 디지털-아날로그 변환기(DAC)를 포함한다. I/O 인터페이스(6601a, 6601b)는 또한 전기적 연결, 전력 및 데이터 집계(예를 들면, 버퍼)를 제공할 수 있다.
데이터 A, 데이터 B, 진단 모듈(6602a, 6602b)의 출력 및 시뮬레이터(6603a, 6603b)의 출력(시뮬레이션된 데이터 A, 데이터 B) 모두는 리던던시 프로세서(6604)에 입력된다. 리던던시 프로세스(6604)는 제1 또는 제2 프로세스/시스템의 고장이 발생했는지 여부를 결정하기 위해 이러한 입력에 로직을 적용한다. 제1 또는 제2 프로세스/시스템의 고장이 발생했다고 결정하는 것에 따라, AV는 "안전 정지" 기동 또는 다른 액션을 수행한다. 제1 또는 제2 프로세스/시스템의 고장이 발생하지 않았다고 결정하는 것에 따라, AV는 계속해서 공칭 모드로 동작한다.
일 실시예에서, 리던던시 프로세서(6604)에 의해 구현되는 로직이 아래 표 I에 나타내어져 있다.
[표 I]
Figure pct00002
위의 표 I에 나타낸 바와 같이, 진단 모듈 A와 진단 모듈 B가 고장을 나타내지 않고 시뮬레이터 A와 시뮬레이터 B가 고장을 나타내지 않는 경우, AV는 공칭 동작 모드에서 계속된다. 적어도 하나의 진단 모듈이 고장을 나타내거나 또는 하나의 시뮬레이터가 고장을 나타내는 경우, AV는 고장나지 않은 프로세스/시스템을 사용하여 안전 정지 기동 또는 다른 액션을 수행한다. 양쪽 시뮬레이터가 고장을 나타내는 경우, AV는 비상 제동을 수행한다.
일 실시예에서, 시뮬레이터(6603b, 6603a)는 저장 디바이스(6605b, 6605a)로부터 실시간 데이터 스트림 및/또는 과거 데이터를 수신한다. 데이터 스트림 및 저장 디바이스(6605a, 6605b)는 시뮬레이션되는 프로세스/시스템의 하나 이상의 모델을 조정하기 위해 외부 인자 및/또는 운전자 프로파일을 사용하는 시뮬레이터(6603a, 6603b)에 외부 인자 및/또는 운전자 프로파일을 제공한다. 외부 인자의 일부 예는 기상 조건(예를 들면, 비, 눈, 진눈깨비, 안개, 기온, 풍속), 도로 조건(예를 들면, 가파른 경사면, 폐쇄된 차선, 우회로), 교통 조건(예를 들면, 교통 속력, 사고), 시각(예를 들면, 주간 또는 야간), AV 특성(예를 들면, 제조업체, 모델, 연식(year), 구성, 연료 또는 배터리 레벨, 타이어 압력) 및 운전자 프로파일(예를 들면, 연령, 숙련도 레벨, 운전 패턴)을 포함하지만 이에 제한되지 않는다. 외부 인자는 시뮬레이터(6603a, 6603b)에서 하나 이상의 모델을 조정하거나 "튜닝"하는 데 사용될 수 있다. 예를 들어, 특정 센서(예를 들면, LiDAR)는 빗속에서 동작할 때 상이하게 거동할 수 있고 다른 센서(예를 들면, 카메라)는 야간에 또는 안개 속에서 동작할 때 상이하게 거동할 수 있다.
예시적인 운전자 프로파일은 운전자의 연령, 숙련도 레벨 및 과거 운전 패턴을 포함한다. 과거 운전 패턴은 가속 및 제동 패턴을 포함할 수 있지만, 이에 제한되지 않는다. 운전 패턴은 AV의 프로세서에 구현된 머신 러닝 알고리즘(예를 들면, 딥 러닝 알고리즘)을 사용하여 시간 경과에 따라 학습될 수 있다.
일 실시예에서, 시뮬레이터(6603a, 6603b) 중 하나 또는 둘 모두는 AV 및 다른 고정 및 동적 대상체(예를 들면, 다른 차량, 보행자, 건물, 교통 신호등)를 포함하는 인지 모듈(402)에 의해 제공되는 장면 묘사 및 고정 맵 데이터를 사용하여 가상 세계를 구현한다. 시뮬레이터(6603a, 6603b)는 AV가 어떻게 작동할 것인지 및 고장이 발생할 가능성이 있는지 여부를 결정하기 위해 외부 인자 및/또는 운전자 프로파일을 사용하여 가상 세계에서 AV를 시뮬레이션한다(예를 들면, 2D 또는 3D 시뮬레이션).
일 실시예에서, 데이터 저장 디바이스(6505a, 6605b)에 저장된 과거 데이터는 AV 프로세스/시스템의 과거 고장을 분석하고 AV 프로세스/시스템의 향후 고장을 예측하기 위해 데이터 분석을 수행하는 데 사용된다.
시스템(6600)의 동작을 추가로 예시하기 위해, 예시적인 시나리오가 기술되지 않을 것이다. 이 예시적인 시나리오에서, 2개의 리던던트센서인 LiDAR 센서와 스테레오 카메라가 시뮬레이션된다. AV는 공칭 동작 모드로 도로 세그먼트에서 주행하고 있다. LiDAR는 도 4에 도시된 인지 모듈(402)에 의해 프로세싱되는 포인트 클라우드 데이터를 출력한다. 인지 모듈(402)은 LiDAR 포인트 클라우드 데이터로부터 검출되는 하나 이상의 분류된 대상체(예를 들면, 차량, 보행자)를 포함하는 제1 장면 묘사를 출력한다. LiDAR 프로세싱과 동시에(예를 들면, 병렬로), 스테레오 카메라는 스테레오 이미지를 캡처하고 이 스테레오 이미지는 인지 모듈(402)에도 입력된다. 인지 모듈(402)은 스테레오 이미지 데이터로부터 검출되는 하나 이상의 분류된 대상체에 대한 제2 장면 묘사를 출력한다.
LiDAR 및 스테레오 카메라는 동시에 실행되는 독립적인 HIL 프로세스에 포함된다. 제1 HIL 프로세스는 제1 장면 묘사를 사용하여 스테레오 카메라의 동작을 시뮬레이션하는 제1 RT 시뮬레이터(6603b)에 제1 I/O 인터페이스(6601a)를 통해 결합된 LiDAR 하드웨어를 포함한다. 제2 HIL 프로세스는 제2 장면 묘사를 사용하여 LiDAR 하드웨어를 시뮬레이션하는 제2 RT 시뮬레이터(6603a)에 제2 I/O 인터페이스(6601b)를 통해 결합된 스테레오 카메라 하드웨어를 포함한다. 추가적으로, LiDAR와 스테레오 카메라 둘 모두는 하드웨어 및/또는 소프트웨어 에러에 대해, 제각기, 독립적인 진단 모듈(6602a, 6602b)에 의해 모니터링된다. 시뮬레이터(6603a, 6603b)는 하나 이상의 하드웨어 프로세서에서 구현된다. I/O 인터페이스(6601a, 6601b)는 시뮬레이터(6603a, 6603b)에 필요한 경우 전기 연결을 제공하고, 전력을 공급하며, 데이터 집계, 변환 및 포맷팅을 수행하는 하드웨어 및/또는 소프트웨어 또는 펌웨어이다.
LiDAR 시뮬레이터(6603b)는 스테레오 카메라 데이터로부터 생성된 제2 장면 묘사에서의 분류된 대상체의 위치 좌표를 사용하여 시뮬레이션된 LiDAR 장면 묘사를 계산한다. LiDAR 깊이 데이터는 광선 투사(ray-casting) 기술 및 로컬화 모듈(408)(도 4)로부터 획득되는 AV의 위치를 사용하여 시뮬레이션될 수 있다. 동시에, 스테레오 카메라 시뮬레이터(6603a)는 시뮬레이션된 스테레오 카메라 장면 묘사를 계산하기 위해 LiDAR 포인트 클라우드 데이터로부터 생성된 제1 장면 묘사에서의 대상체의 위치 좌표를 사용한다. 각각의 시뮬레이터(6603a, 6603b)는 출력으로서 그 각자의 시뮬레이션된 장면 묘사를 리던던시 프로세서(6604)에 제공한다. 추가적으로, 진단 모듈(6602a, 6620b) 각각은 합격/불합격 표시자를 리던던시 프로세서(6604)에 출력한다.
리던던시 프로세서(6604)는 위의 표 I에 도시된 로직을 실행한다. 예를 들어, 진단 모듈(6602a, 6602b)이 LiDAR 또는 스테레오 카메라 하드웨어 또는 소프트웨어가 고장났음을 나타내지 않고, LiDAR 장면 묘사가 시뮬레이션된 LiDAR 장면 묘사와 매칭하며(예를 들면, 모든 분류된 대상체가 양쪽 장면 묘사에서 참작됨), 스테레오 카메라 장면 묘사가 시뮬레이션된 스테레오 카메라 장면 묘사와 매칭하는 경우, AV는 계속해서 공칭 모드에서 동작한다. LiDAR 및 스테레오 카메라 하드웨어 또는 소프트웨어가 고장나지 않았고 LiDAR 장면 묘사 또는 스테레오 카메라 장면 묘사 중 하나가 그의 대응하는 시뮬레이션 장면 묘사와 매칭하지 않는 경우, AV는 "안전 정지" 기동 또는 다른 액션을 수행한다. LiDAR 또는 스테레오 카메라 중 하나가 하드웨어 또는 소프트웨어 고장을 갖는 경우, AV는 "안전 정지" 기동 또는 다른 액션을 수행한다. LiDAR 및 스테레오 카메라가 하드웨어 또는 소프트웨어 에러를 갖지 않고 LiDAR 장면 묘사 또는 스테레오 카메라 장면 묘사 중 어느 것도 그의 시뮬레이션된 장면 묘사와 매칭하지 않는 경우, AV는 비상 제동을 건다.
위에서 설명된 예시적인 시나리오는 인지/계획 프로세스/서브시스템/시스템에 제한되지 않는다. 오히려, 로컬화 및 제어와 같은, 다른 AV 기능에 사용되는 프로세스/서브시스템/시스템을 시뮬레이션하기 위해 시뮬레이터가 사용될 수 있다. 예를 들어, GNSS 수신기는 관성 데이터(예를 들면, IMU 데이터), LiDAR 맵 기반 로컬화 데이터, 시각적 주행 거리 측정 데이터(예를 들면, 이미지 데이터를 사용함), 또는 RADAR 또는 비전 기반 특징 맵 데이터(예를 들면, 비-LiDAR 시리즈 생성 센서를 사용함)를 사용하여 시뮬레이션될 수 있다.
일 실시예에서, 예를 들면, 도 13 내지 도 29를 참조하여 이전에 기술된 바와 같이, 하나의 시뮬레이터는 다른 시뮬레이터에 의해 출력되는 데이터를 사용한다.
도 67은 시뮬레이션을 사용한 리던던시를 위한 프로세스(6700)의 흐름 다이어그램을 도시한다. 프로세스(6700)는 도 4에 도시된 시스템(400)에 의해 구현될 수 있다.
프로세스(6700)는, 도 66을 참조하여 기술된 바와 같이, 제1 시뮬레이터에 의해, 제2 AV 프로세스/시스템(예를 들면, 스테레오 카메라)에 의해 출력된 데이터(예를 들어, 스테레오 카메라 데이터)를 사용하여 제1 AV 프로세스/시스템의 시뮬레이션을 수행하는 것(예를 들어, LiDAR를 시뮬레이션하는 것)(6701)으로 시작된다,
프로세스(6700)는, 제2 시뮬레이터에 의해, 제2 AV 프로세스/시스템에 의해 출력된 데이터를 사용하여 제1 AV 프로세스/시스템의 시뮬레이션을 수행하는 것(6702)으로 계속된다.
프로세스(6700)는 제1 및 제2 프로세스 및 시스템의 출력(예를 들면, LiDAR 포인트 클라우드 데이터 및 스테레오 카메라 데이터에 기초한 장면 묘사)을 그의 대응하는 시뮬레이션된 프로세스 및 시스템의 출력과 비교하는 것(6703), 및 고장이 발생했다고(또는 예측 모델에 기초하여 향후 발생할 것이라고) 결정하는 것(6704)에 따라, AV로 하여금 "안전 정지" 기동 또는 다른 액션을 수행하게 하는 것(6705)으로 계속된다. 그렇지 않은 경우, AV로 하여금 공칭 모드에서 계속 동작하게 한다(6706).
일 실시예에서, 프로세스(6700)는, 독립적인 진단 모듈에 의해, 하드웨어 또는 소프트웨어 에러에 대해 리던던트 프로세스 또는 시스템을 모니터링하는 것, 및 진단 모듈의 출력(예를 들면, 합격/불합격 표시자)을 시뮬레이터의 출력과 조합하여 사용하여 리던던트 프로세스들 또는 시스템들 중 하나 또는 둘 모두의 고장이 발생했는지 또는 발생할 것인지를 결정하는 것, 및 AV로 하여금 고장에 응답하여 액션(예를 들면, "안전 정지"기동, 비상 제동, 공칭 모드)을 취하게 하는 것을 포함한다.
인지 입력의 통합체
도 68은 일 실시예에 따른, 동작 환경을 모델링하기 위해 인지 입력을 통합하기 위한 차량 시스템의 블록 다이어그램을 도시한다. 차량 시스템(6800)은 2개 이상의 인지 컴포넌트, 예를 들면, 인지 컴포넌트(6802 및 6803)를 포함하며, 각각은 동작 환경(6801)에 대해 인지 기능을 독립적으로 수행할 수 있다. 예시적인 인지 기능은 동작 환경(6801)에 존재하는 다양한 대상체 및 배경의 검출, 추적, 및 분류를 포함한다. 일 실시예에서, 인지 컴포넌트(6802 및 6803)는 도 4에 도시된 인지 모듈(402)의 컴포넌트이다.
일 실시예에서, 인지 컴포넌트는 하드웨어 및 소프트웨어 기반 인지 기술 둘 모두를 구현한다. 예를 들어, 인지 컴포넌트(6802)는 LiDAR, RADAR, 소나, 스테레오 비전 시스템, 모노 비전 시스템 등과 같은 상호보완적인 센서, 예를 들면, 도 1에 도시된 센서(121)로 구성된 하드웨어 모듈(6804)을 포함할 수 있다. 인지 컴포넌트(6802)는 인지 기능을 보조하기 위해 하나 이상의 소프트웨어 알고리즘을 실행하는 소프트웨어 모듈(6806)을 추가로 포함할 수 있다. 예를 들어, 소프트웨어 알고리즘은 피드포워드 신경 네트워크, 순환 신경 네트워크, 완전 컨볼루션 신경 네트워크, 영역 기반 컨볼루션 신경 네트워크, YOLO(You-Only-Look-Once) 검출 모델, SDD(single-shot detector), 스테레오 매칭 알고리즘 등을 포함할 수 있다. 하드웨어 모듈(6804) 및 소프트웨어 모듈(6806)은 인지 컴포넌트(6802)에 대한 전반적인 인지 정확도를 개선시키기 위해 그 각자의 인지 출력을 공유, 비교 및 교차 검사할 수 있다.
일 실시예에서, 인지 컴포넌트들 각각은 독립적이고 상호보완적인 인지 기능을 수행한다. 상이한 인지 기능으로부터의 결과는 프로세서(6810)에 의해 교차 검사되고 융합(예를 들면, 조합)될 수 있다. 동작 환경에 따라, 하나의 인지 기능은 특정 대상체 또는 조건을 검출하는 데 더 적합할 수 있고, 다른 인지 기능은 다른 대상체 또는 조건을 검출하는 데 더 적합할 수 있으며, 하나의 인지 기능으로부터의 데이터는 다른 인지 기능으로부터의 데이터를 상호보완적인 방식으로 보강하는 데 사용될 수 있다. 일 예로서, 인지 컴포넌트(6802)는 조밀한 자유 공간 검출을 수행할 수 있는 반면, 인지 컴포넌트(6803)는 대상체 기반 검출 및 추적을 수행할 수 있다. 자유 공간은 장애물을 포함하지 않고 차량이 안전하게 운전할 수 있는 동작 환경(6801)에서의 영역으로서 정의된다. 예를 들어, 점유되지 않은 노면은 자유 공간이지만 도로 갓길("고장 차선(breakdown lane)"이라고도 지칭됨)은 자유 공간이 아니다. 차량이 자유 공간에서 운전하는 것만이 안전하므로 자유 공간 검출은 자율 주행/반자율 주행 운전에 필수적인 인지 기능이다. 다른 한편으로, 대상체 기반 검출 및 추적의 목표는 현재 존재를 발견하고 동작 환경(6801)에서의 대상체의 향후 궤적을 예측하는 것이다. 따라서, 주변 환경을 더 잘 이해하기 위해 양쪽 인지 기능을 사용하여 획득된 데이터가 조합될 수 있다.
프로세서(6810)는 인지 컴포넌트(6802 및 6803)로부터의 독립적인 출력을 비교하고 융합하여 동작 환경(6814)의 통합 모델(unionized model)을 생성한다. 일 예에서, 인지 컴포넌트로부터의 각각의 인지 출력은 출력이 정확할 확률을 나타내는 신뢰도 점수와 연관된다. 인지 컴포넌트는 연관된 데이터의 정확도에 영향을 미칠 수 있는 인자에 기초하여 신뢰도 점수를 생성하며, 예를 들면, 폭풍우 동안 생성된 데이터는 맑은 날씨 동안 생성된 데이터보다 낮은 신뢰도 점수를 가질 수 있다. 통합(unionization)의 정도는 신뢰도 점수 및 통합에 대한 원하는 주의 레벨(level of caution)에 기초한다. 예를 들어, 거짓 양성(false positive)이 거짓 음성(false negative)보다 훨씬 선호되는 경우, 낮은 신뢰도 점수를 갖는 검출된 대상체가 높은 신뢰도 점수를 갖는 검출된 자유 공간에 계속 추가될 것이다.
일 예에서, 인지 컴포넌트(6802)는 동작 환경(6801)에서 자유 공간을 검출하기 위해 하나 이상의 LiDAR 또는 카메라, 예를 들면, 모노 또는 스테레오 카메라를 사용할 수 있다. LiDAR는 3D 대상체 맵을 직접적으로 출력할 수 있지만, 다른 기술에 비해 제한된 동작 범위를 가지며 불리한 기상 조건에서 성능 저하에 봉착할 수 있다. 반대로, 모노 또는 스테레오 카메라는 상이한 색상을 감지할 수 있지만, 카메라는 동작을 위해 조명을 필요로 하며 라이팅(lighting) 변화로 인해 왜곡된 데이터를 생성할 수 있다.
일 실시예에서, 자유 공간을 검출하는 데 있어서 LiDAR 및 카메라 둘 모두의 사용의 성능 이점을 획득하기 위해, 인지 컴포넌트(6802)는 양쪽 유형의 센서를 사용하여 리던던트 측정치를 취득하고 인지 데이터를 함께 융합할 수 있다. 예를 들어, 인지 컴포넌트(6802)는 LiDAR의 동작 범위를 넘어서는 깊이 데이터를 캡처하기 위해 스테레오 카메라를 사용할 수 있다. 인지 컴포넌트(6802)는 이어서 3D 대상체 맵에서의 공간 구조물을 스테레오 카메라 출력의 공간 구조물과 매칭시킴으로써 LiDAR에 의해 생성된 3D 대상체 맵을 확장할 수 있다.
다른 예에서, 인지 컴포넌트는 LiDAR 및 모노 카메라로부터 획득된 데이터를 융합할 수 있다. 모노 카메라는 전형적으로 2차원 이미지 평면에서 대상체를 인지하며, 이는 대상체들 사이의 거리의 측정을 방해한다. 따라서, 거리 측정을 지원하기 위해, 모노 카메라로부터의 출력이, 예를 들어 소프트웨어 모듈(6806)에서 실행되는, 신경 네트워크에 먼저 공급될 수 있다. 일 실시예에서, 신경 네트워크는 모노 카메라 이미지로부터 대상체들 사이의 거리를 검출 및 추정하도록 트레이닝된다. 일 실시예에서, 인지 컴포넌트(6802)는 신경 네트워크에 의해 생성된 거리 정보를 LiDAR로부터의 3D 대상체 맵과 조합한다.
일 예에서, 인지 컴포넌트(6803)는 하나 이상의 360° 모노 카메라 및 RADAR를 사용하여 동작 환경(6801)의 리던던트 측정치를 취할 수 있다. 예를 들어, RADAR에 의해 검출된 대상체는 360° 모노 카메라에 의해 캡처된 파노라마 이미지 출력에 오버레이될 수 있다.
일 실시예에서, 인지 컴포넌트(6803)는 동작 환경(6801)에서의 대상체를 검출 및 추적하기 위해 하나 이상의 소프트웨어 알고리즘을 사용한다. 예를 들어, 소프트웨어 모듈(6807)은 카테고리 검출기, 예를 들면, 신경 네트워크 분류기에 의해 검출된 대상체를 링크시켜 대상체 궤적을 형성하는 다중 모델 대상체 추적기를 구현할 수 있다. 일 실시예에서, 신경 네트워크 분류기는, 차량, 보행자, 도로 표지판, 도로 마킹 등과 같은, 동작 환경(6801)에서 흔히 볼 수 있는 대상체를 분류하도록 트레이닝된다. 일 예에서, 대상체 추적기는 이미지 시퀀스에 걸쳐 대상체를 연관시키도록 트레이닝된 신경 네트워크일 수 있다. 신경 네트워크는 위치, 형상, 또는 색상과 같은 대상체 특성을 사용하여 연관을 수행할 수 있다.
일 실시예에서, 프로세서(6810)는 인지 컴포넌트(6802)로부터의 출력을 인지 컴포넌트(6803)로부터의 출력과 비교하여 인지 컴포넌트들 중 하나의 인지 컴포넌트의 고장 또는 고장률을 검출한다. 예를 들어, 각각의 인지 컴포넌트는 그 각자의 출력에 신뢰도 점수를 할당할 수 있는데 그 이유는 상이한 인지 기능, 예를 들면, 자유 공간 검출과 대상체 검출 및 추적이 상이한 조건에서 상이한 신뢰도를 갖는 결과를 생성할 수 있기 때문이다. 비일관성(inconsistency)이 나타날 때, 프로세서(6810)는 더 낮은 신뢰도 점수를 갖는 인지 컴포넌트로부터의 출력을 무시한다. 다른 예에서, 차량 시스템(6800)은 상이한 인지 방법을 구현하는 제3 인지 컴포넌트를 갖는다. 이 예에서, 프로세서(6810)는 제3 인지 컴포넌트로 하여금 제3 인지 기능을 수행하게하고, 예를 들면, 3개의 인지 컴포넌트 중 2개 사이의 출력 일관성에 기초하여, 다수결 결과에 의존한다.
일 실시예에서, 프로세서(6810)는 인지 컴포넌트(6802 및 6803)로 하여금 서로에 대한 안전성 검사를 제공하게 한다. 예를 들어, 초기에, 인지 컴포넌트(6802)는 LiDAR를 사용하여 동작 환경(6801)에서 자유 공간을 검출하도록 구성되는 반면, 인지 컴포넌트(6803)는 신경 네트워크와 스테레오 카메라의 조합을 사용하여 대상체를 검출 및 추적하도록 구성된다. 교차 안전성 검사를 수행하기 위해, 프로세서(6810)는 신경 네트워크와 스테레오 카메라로 하여금 자유 공간 검출을 수행하게 하고 LiDAR로 하여금 대상체 검출 및 추적을 수행하게 할 수 있다.
도 69는 일 실시예에 따른, 동작 환경의 모델을 생성하기 위해 인지 입력을 통합하기 위한 예시적인 프로세스(6900)를 도시한다. 편의상, 차량 시스템, 예를 들면, 도 68의 차량 시스템(6800)에 의해 수행되는 바와 같은 예시적인 프로세스(6900)가 아래에서 기술될 것이다.
차량 시스템은 제1 컴포넌트로 하여금 기능을 수행하게 한다(단계(6902)). 예를 들어, 기능은 인지 기능일 수 있고, 제1 컴포넌트는 하나 이상의 LiDAR, 스테레오 카메라, 모노 카메라, RADAR, 소나 등을 포함하는 하드웨어 인지 시스템일 수 있다. 다른 예에서, 제1 컴포넌트는 하드웨어 센서로부터의 데이터 출력을 수신 및 분석하도록 구성된 소프트웨어 프로그램일 수 있다. 일 실시예에서, 소프트웨어 프로그램은 이미지 데이터 또는 대상체 맵에서 대상체를 검출 및 추적하도록 트레이닝된 신경 네트워크이다.
차량 시스템은 동시에 제2 컴포넌트로 하여금 제1 컴포넌트와 동일한 기능을 수행하게 한다(단계(6904)). 예를 들어, 제2 컴포넌트는 동작 환경에 대해 인지 기능을 수행하기 위한 제1 컴포넌트와 유사한 하드웨어 인지 시스템 또는 소프트웨어 프로그램일 수 있다.
제1 컴포넌트와 제2 컴포넌트가 각자의 데이터 출력을 생성한 후에, 차량 시스템은 출력들을 조합하고 비교하여 동작 환경의 모델을 생성한다(단계(6906) 및 단계(6908)). 예를 들어, 제1 컴포넌트는 동작 환경에서 자유 공간을 검출하도록 구성될 수 있는 반면, 제2 컴포넌트는 동작 환경에서 대상체를 검출 및 추적하도록 구성될 수 있다. 차량 시스템은 그 각자의 공간적 특징을 매칭시키는 것에 의해 제1 컴포넌트로부터의 출력과 제2 컴포넌트로부터의 출력을 비교하고, 동작 환경의 통합 모델을 생성할 수 있다. 통합 모델은 제1 컴포넌트 또는 제2 컴포넌트 단독에 의한 출력에 비해 동작 환경의 더 정확한 표현일 수 있다.
동작 환경의 통합 모델을 획득한 후에, 차량 시스템은 모델의 특성에 기초하여 동작을 개시한다(단계(6910)). 예를 들어, 차량 시스템은 동작 환경 모델에 존재하는 장애물을 피하기 위해 차량 속도 및 궤적을 조정할 수 있다.
전술한 설명에서, 본 발명의 실시예는 구현마다 달라질 수 있는 다수의 특정 세부 사항을 참조하여 기술되었다. 따라서, 상세한 설명 및 도면은 제한적인 관점보다는 예시적인 관점에서 보아야 한다. 본 발명의 범위의 유일한 독점적인 지표, 및 출원인이 본 발명의 범위가 되도록 의도한 것은, 본 출원에서 특정 형태로 나오는 일련의 청구항의 문언적 등가 범위이며, 그러한 청구항이 나오는 특정 형태는 임의의 후속 보정을 포함한다. 그러한 청구항에 포함된 용어에 대한 본원에서 명시적으로 기재된 임의의 정의는 청구항에서 사용되는 그러한 용어의 의미를 결정한다. 추가적으로, 전술한 설명 및 이하의 청구항에서 용어 "추가로 포함하는"이 사용될 때, 이 문구에 뒤따르는 것은 추가적인 단계 또는 엔티티, 또는 이전에 언급된 단계 또는 엔티티의 서브-단계/서브-엔티티일 수 있다.
항목 1. 시스템으로서,
2개 이상의 상이한 자율 주행 차량 동작 서브시스템 - 2개 이상의 상이한 자율 주행 차량 동작 서브시스템의 각각의 자율 주행 차량 동작 서브시스템은 2개 이상의 상이한 자율 주행 차량 동작 서브시스템의 다른 자율 주행 차량 동작 서브시스템과 리던던트이고;
2개 이상의 상이한 자율 주행 차량 동작 서브시스템의 각각의 동작 서브시스템은:
현재 입력 데이터에 기초하여 자율 주행 차량 동작에 대한 솔루션을 제안하도록 구성된 솔루션 제안기, 및
하나 이상의 비용 평가에 기초하여 자율 주행 차량 동작에 대한 제안된 솔루션을 평가하도록 구성된 솔루션 스코어러를 포함하며;
2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 적어도 하나의 자율 주행 차량 동작 서브시스템의 솔루션 스코어러는 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 적어도 하나의 자율 주행 차량 동작 서브시스템의 솔루션 제안기로부터의 제안된 솔루션 둘 모두 및 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 적어도 하나의 다른 자율 주행 차량 동작 서브시스템의 솔루션 제안기로부터의 제안된 솔루션 중 적어도 하나의 솔루션을 평가하도록 구성됨 -; 및
2개 이상의 상이한 자율 주행 차량 동작 서브시스템과 결합되고 2개 이상의 상이한 자율 주행 차량 동작 서브시스템으로부터의 자율 주행 차량 동작 출력을 관리하도록 구성된 출력 메디에이터를 포함하는, 시스템.
항목 2. 항목 1에 있어서, 2개 이상의 상이한 자율 주행 차량 동작 서브시스템은 자율 주행 차량 동작의 인지 스테이지에 포함되는, 시스템.
항목 3. 임의의 선행 항목에 있어서, 2개 이상의 상이한 자율 주행 차량 동작 서브시스템은 자율 주행 차량 동작의 로컬화 스테이지에 포함되는, 시스템.
항목 4. 임의의 선행 항목에 있어서, 2개 이상의 상이한 자율 주행 차량 동작 서브시스템은 자율 주행 차량 동작의 계획 스테이지에 포함되는, 시스템.
항목 5. 임의의 선행 항목에 있어서, 2개 이상의 상이한 자율 주행 차량 동작 서브시스템은 자율 주행 차량 동작의 제어 스테이지에 포함되는, 시스템.
항목 6. 임의의 선행 항목에 있어서, 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 적어도 하나의 자율 주행 차량 동작 서브시스템의 솔루션 스코어러는 (i) 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 적어도 하나의 자율 주행 차량 동작 서브시스템의 솔루션 제안기들 중 2개 이상의 솔루션 제안기로부터의 제안된 솔루션들 중 선호되는 솔루션, 및 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 적어도 다른 자율 주행 차량 동작 서브시스템으로부터의 대안적인 솔루션들 중 선호되는 솔루션을 결정하고, (ii) 선호되는 솔루션을 선호되는 대안적인 솔루션과 비교하며, (iii) 비교에 기초하여 선호되는 솔루션과 선호되는 대안적인 솔루션 중에서 선택하도록 구성되는, 시스템.
항목 7. 임의의 선행 항목에 있어서, 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 적어도 하나의 자율 주행 차량 동작 서브시스템의 솔루션 스코어러는 비용 평가에 기초하여 제안된 솔루션과 대안적인 솔루션 간에 비교하고 자율 주행 차량의 동작을 위해 선택된 하나 이상의 선행 솔루션과의 연속성에 유리한 것을 선택하도록 구성되는, 시스템.
항목 8. 임의의 선행 항목에 있어서, 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 적어도 하나의 자율 주행 차량 동작 서브시스템의 솔루션 스코어러는 제안된 솔루션을 2개 이상의 상이한 자율 주행 차량 동작 서브시스템의 다른 자율 주행 차량 동작 서브시스템으로부터 수신된 하나 초과의 대안적인 솔루션과 비교하고, 제안된 솔루션과 대안적인 솔루션 중에서 선택하도록 구성되는, 시스템.
항목 9. 항목 1 내지 항목 8 중 어느 한 항목에 있어서, 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 적어도 하나의 다른 자율 주행 차량 동작 서브시스템은 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 적어도 하나의 자율 주행 차량 동작 서브시스템의 자율 주행 차량 동작 솔루션과 리던던트하지 않는 추가적인 자율 주행 차량 동작 솔루션을 제공하도록 구성되는, 시스템.
항목 10. 항목 1 내지 항목 8 중 어느 한 항목에 있어서, 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 적어도 하나의 다른 자율 주행 차량 동작 서브시스템은 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 적어도 하나의 자율 주행 차량 동작 서브시스템의 자율 주행 차량 동작 솔루션과 리던던트하는 자율 주행 차량 동작 솔루션만을 제공하도록 구성되는, 시스템.
항목 11. 항목 1 내지 항목 8 중 어느 한 항목에 있어서, 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 각각은 동작 스테이지들의 파이프라인을 포함하고, 파이프라인에서의 각각의 스테이지는 스테이지 내의 적어도 하나의 솔루션 제안기로부터의 제안된 솔루션을 평가하도록 구성된 적어도 하나의 솔루션 스코어러를 포함하며, 각각의 파이프라인으로부터의 적어도 하나의 솔루션 스코어러는 다른 파이프라인으로부터의 제안된 솔루션을 평가하도록 구성되는, 시스템.
항목 12. 항목 11에 있어서, 동작 스테이지들의 파이프라인은:
제1 파이프라인의 제1 스테이지 솔루션 제안기;
제1 파이프라인의 제1 스테이지 솔루션 제안기로부터의 솔루션을 평가하도록 구성된 제1 파이프라인의 제1 스테이지 솔루션 스코어러;
제1 파이프라인의 제2 스테이지 솔루션 제안기;
제1 파이프라인의 제2 스테이지 솔루션 제안기로부터의 솔루션을 평가하도록 구성된 제1 파이프라인의 제2 스테이지 솔루션 스코어러;
제2 파이프라인의 제1 스테이지 솔루션 제안기;
제2 파이프라인의 제1 스테이지 솔루션 제안기로부터의 솔루션을 평가하도록 구성된 제2 파이프라인의 제1 스테이지 솔루션 스코어러;
제2 파이프라인의 제2 스테이지 솔루션 제안기; 및
제2 파이프라인의 제2 스테이지 솔루션 제안기로부터의 솔루션을 평가하도록 구성된 제2 파이프라인의 제2 스테이지 솔루션 스코어러를 포함하고;
제1 파이프라인의 제1 스테이지 솔루션 스코어러는 제2 파이프라인의 제1 스테이지 솔루션 제안기로부터의 솔루션을 평가하도록 구성되고;
제2 파이프라인의 제1 스테이지 솔루션 스코어러는 제1 파이프라인의 제1 스테이지 솔루션 제안기로부터의 솔루션을 평가하도록 구성되며;
제1 파이프라인의 제2 스테이지 솔루션 스코어러는 제2 파이프라인의 제2 스테이지 솔루션 제안기로부터의 솔루션을 평가하도록 구성되고;
제2 파이프라인의 제2 스테이지 솔루션 스코어러는 제1 파이프라인의 제2 스테이지 솔루션 제안기로부터의 솔루션을 평가하도록 구성되는, 시스템.
항목 13. 항목 12에 있어서, 제1 스테이지 솔루션 제안기, 제1 스테이지 솔루션 스코어러, 제2 스테이지 솔루션 제안기, 및 제2 스테이지 솔루션 스코어러를 포함하는 제2 파이프라인의 컴포넌트는 전력 공급 장치를 공유하는, 시스템.
항목 14. 항목 12에 있어서, 제1 스테이지는 현재 입력 데이터에 기초하여 자율 주행 차량 동작의 인지된 현재 상태를 결정하도록 구성된 인지 스테이지를 포함하고, 제2 스테이지는 제1 스테이지로부터의 출력에 기초하여 자율 주행 차량 동작에 대한 계획을 결정하도록 구성된 계획 스테이지를 포함하는, 시스템.
항목 15. 항목 14에 있어서, 제1 파이프라인의 제1 스테이지 솔루션 제안기는 상향식 인지(대상체 검출), 하향식 태스크 중심 주의, 사전 정보, 또는 점유 그리드 중 적어도 하나를 포함하는 인지 생성 메커니즘을 구현하고, 제1 파이프라인의 제1 스테이지 솔루션 스코어러는 센서 모델로부터의 가능성의 계산 중 적어도 하나를 포함하는 인지 평가 메커니즘을 구현하는, 시스템.
항목 16. 항목 12에 있어서, 제1 스테이지는 현재 입력 데이터에 기초하여 자율 주행 차량 동작에 대한 계획을 결정하도록 구성된 계획 스테이지를 포함하고, 제2 스테이지는 제1 스테이지로부터의 출력에 기초하여 자율 주행 차량 동작에 대한 제어 신호를 결정하도록 구성된 제어 스테이지를 포함하는, 시스템.
항목 17. 항목 16에 있어서, 제1 파이프라인의 제1 스테이지 솔루션 제안기는 랜덤 샘플링, MPC, 딥 러닝, 또는 미리 정의된 프리미티브 중 적어도 하나를 포함하는 계획 생성 메커니즘을 구현하고, 제1 파이프라인의 제1 스테이지 솔루션 스코어러는 궤적 길이, 안전성, 또는 편의에 기초한 궤적 스코어링 중 적어도 하나를 포함하는 계획 평가 메커니즘을 구현하는, 시스템.
항목 18. 항목 12에 있어서, 제1 스테이지는 현재 입력 데이터에 기초하여 자율 주행 차량의 현재 위치를 결정하도록 구성된 로컬화 스테이지를 포함하고, 제2 스테이지는 제1 스테이지로부터의 출력에 기초하여 자율 주행 차량 동작에 대한 제어 신호를 결정하도록 구성된 제어 스테이지를 포함하는, 시스템.
항목 19. 항목 12에 있어서, 동작 스테이지들의 파이프라인은:
제1 파이프라인의 제3 스테이지 솔루션 제안기;
제1 파이프라인의 제3 스테이지 솔루션 제안기로부터의 솔루션을 평가하도록 구성된 제1 파이프라인의 제3 스테이지 솔루션 스코어러;
제2 파이프라인의 제3 스테이지 솔루션 제안기; 및
제2 파이프라인의 제3 스테이지 솔루션 제안기로부터의 솔루션을 평가하도록 구성된 제2 파이프라인의 제3 스테이지 솔루션 스코어러를 포함하고;
제1 파이프라인의 제3 스테이지 솔루션 스코어러는 제2 파이프라인의 제3 스테이지 솔루션 제안기로부터의 솔루션을 평가하도록 구성되고;
제2 파이프라인의 제3 스테이지 솔루션 스코어러는 제1 파이프라인의 제3 스테이지 솔루션 제안기로부터의 솔루션을 평가하도록 구성되는, 시스템.
항목 20. 항목 1 내지 항목 19 중 어느 한 항목의 시스템을 사용하여 자율 주행 차량을 동작시키는 방법.
항목 21. 데이터 프로세싱 장치로 하여금 항목 1 내지 항목 19 중 어느 한 항목의 시스템을 사용하여 자율 주행 차량을 동작시키게 하도록 동작 가능한 명령을 인코딩하는 비-일시적 컴퓨터 판독 가능 매체.
항목 22. 자율 주행 차량(AV)의 AV 시스템 내에서, 출력 메디에이터와 결합된 2개 이상의 리던던트 파이프라인을 동작시키기 위한 방법으로서, 2개 이상의 리던던트 파이프라인 중 제1 파이프라인은 제1 인지 모듈, 제1 로컬화 모듈, 제1 계획 모듈, 및 제1 제어 모듈을 포함하고, 2개 이상의 리던던트 파이프라인 중 제2 파이프라인은 제2 인지 모듈, 제2 로컬화 모듈, 제2 계획 모듈, 및 제2 제어 모듈을 포함하며, 제1 제어기 모듈 및 제2 제어기 모듈 각각은 출력 메디에이터와 연결되고, 이 방법은:
제1 인지 모듈에 의해, AV의 제1 센서 세트로부터 제1 센서 신호를 수신하고, 제1 인지 모듈에 의해, 제1 센서 신호에 기초하여 제1 월드 뷰 제안을 생성하는 단계;
제2 인지 모듈에 의해, AV의 제2 센서 세트로부터 제2 센서 신호를 수신하고, 제2 인지 모듈에 의해, 제2 센서 신호에 기초하여 제2 월드 뷰 제안을 생성하는 단계;
제1 인지 모듈에 의해, 제1 인지 비용 함수에 기초하여 제1 월드 뷰 제안과 제2 월드 뷰 제안 중 하나를 선택하고, 제1 인지 모듈에 의해, 선택된 월드 뷰 제안을 제1 월드 뷰로서 제1 로컬화 모듈에 제공하는 단계;
제2 인지 모듈에 의해, 제2 인지 비용 함수에 기초하여 제1 월드 뷰 제안과 제2 월드 뷰 제안 중 하나를 선택하고, 제2 인지 모듈에 의해, 선택된 월드 뷰 제안을 제2 월드 뷰로서 제2 로컬화 모듈에 제공하는 단계;
제1 로컬화 모듈에 의해, 제1 월드 뷰에 기초하여 제1 AV 위치 제안을 생성하는 단계;
제2 로컬화 모듈에 의해, 제2 월드 뷰에 기초하여 제2 AV 위치 제안을 생성하는 단계;
제1 로컬화 모듈에 의해, 제1 로컬화 비용 함수에 기초하여 제1 AV 위치 제안과 제2 AV 위치 제안 중 하나를 선택하고, 제1 로컬화 모듈에 의해, 선택된 AV 위치 제안을 제1 AV 위치로서 제1 계획 모듈에 제공하는 단계;
제2 로컬화 모듈에 의해, 제2 로컬화 비용 함수에 기초하여 제1 AV 위치 제안과 제2 AV 위치 제안 중 하나를 선택하고, 제2 로컬화 모듈에 의해, 선택된 AV 위치 제안을 제2 AV 위치로서 제2 계획 모듈에 제공하는 단계;
제1 계획 모듈에 의해, 제1 AV 위치에 기초하여 제1 루트 제안을 생성하는 단계;
제2 계획 모듈에 의해, 제2 AV 위치에 기초하여 제2 루트 제안을 생성하는 단계;
제1 계획 모듈에 의해, 제1 계획 비용 함수에 기초하여 제1 루트 제안과 제2 루트 제안 중 하나를 선택하고, 제1 계획 모듈에 의해, 선택된 루트 제안을 제1 루트로서 제1 제어 모듈에 제공하는 단계;
제2 계획 모듈에 의해, 제2 계획 비용 함수에 기초하여 제1 루트 제안과 제2 루트 제안 중 하나를 선택하고, 제2 계획 모듈에 의해, 선택된 루트 제안을 제2 루트로서 제2 제어 모듈에 제공하는 단계;
제1 제어 모듈에 의해, 제1 루트에 기초하여 제1 제어 신호 제안을 생성하는 단계;
제2 제어 모듈에 의해, 제2 루트에 기초하여 제2 제어 신호 제안을 생성하는 단계;
제1 제어 모듈에 의해, 제1 제어 비용 함수에 기초하여 제1 제어 신호 제안과 제2 제어 신호 제안 중 하나를 선택하고, 제1 제어 모듈에 의해, 선택된 제어 신호 제안을 제1 제어 신호로서 출력 메디에이터에 제공하는 단계;
제2 제어 모듈에 의해, 제2 제어 비용 함수에 기초하여 제1 제어 신호 제안과 제2 제어 신호 제안 중 하나를 선택하고, 제2 제어 모듈에 의해, 선택된 제어 신호 제안을 제2 제어 신호로서 출력 메디에이터에 제공하는 단계; 및
출력 메디에이터에 의해, 제1 제어 신호와 제2 제어 신호 중 하나를 선택하고, 출력 메디에이터에 의해, 선택된 제어 신호를 제어 신호로서 AV의 액추에이터에 제공하는 단계를 포함하는, 방법.
항목 23. 항목 22에 있어서,
제1 센서 세트로부터 수신된 제1 센서 신호는 제1 세트의 대응하는 센서에 의해 검출된 대상체의 하나 이상의 리스트를 포함하고,
제2 센서 세트로부터 수신된 제2 센서 신호는 제2 세트의 대응하는 센서에 의해 검출된 대상체의 하나 이상의 리스트를 포함하는, 방법.
항목 24. 항목 22에 있어서,
제1 월드 뷰 제안을 생성하는 단계는 제1 세트의 대응하는 센서에 의해 검출된 대상체의 하나 이상의 제1 리스트를 생성하는 단계를 포함하고,
제2 월드 뷰 제안을 생성하는 단계는 제2 세트의 대응하는 센서에 의해 검출된 대상체의 하나 이상의 리스트를 생성하는 단계를 포함하는, 방법.
항목 25. 항목 22 내지 항목 24 중 어느 한 항목에 있어서,
제1 월드 뷰 제안을 생성하는 단계는 제1 인지 제안 메커니즘에 기초하여 수행되고,
제2 월드 뷰 제안을 생성하는 단계는 제1 인지 제안 메커니즘과 상이한 제2 인지 제안 메커니즘에 기초하여 수행되는, 방법.
항목 26. 항목 22 내지 항목 25 중 어느 한 항목에 있어서,
적어도 제1 로컬화 모듈에 제공되는 제1 월드 뷰는 제1 센서 세트에 의해 검출된 하나 이상의 대상체의 제1 대상체 트랙을 포함하고,
적어도 제2 로컬화 모듈에 제공되는 제2 월드 뷰는 제2 센서 세트에 의해 검출된 하나 이상의 대상체의 제2 대상체 트랙을 포함하는, 방법.
항목 27. 항목 22 내지 항목 26 중 어느 한 항목에 있어서, 제1 센서 세트는 제2 센서 세트와 상이한, 방법.
항목 28. 항목 22에 있어서,
제1 로컬화 모듈에 의해, 제1 센서 세트로부터 제1 센서 신호의 적어도 일 부분을 수신하는 단계 - 제1 AV 위치 제안을 생성하는 단계는 제1 센서 신호에 추가로 기초함 -, 및
제2 로컬화 모듈에 의해, 제2 센서 세트로부터 제2 센서 신호의 적어도 일 부분을 수신하는 단계 - 제2 AV 위치 제안을 생성하는 단계는 제2 센서 신호에 추가로 기초함 - 를 추가로 포함하는, 방법.
항목 29. 항목 28에 있어서, 제1 및 제2 AV 위치 제안을 생성하는 단계는 맵 기반 로컬화, LiDAR 맵 기반 로컬화, RADAR 맵 기반 로컬화, 시각적 맵 기반 로컬화, 시각적 주행 거리 측정, 및 특징부 기반 로컬화를 포함한 하나 이상의 로컬화 알고리즘을 사용하는, 방법.
항목 30. 항목 22, 항목 27 및 항목 28 중 어느 한 항목에 있어서,
제1 AV 위치 제안을 생성하는 단계는 제1 로컬화 알고리즘에 기초하여 수행되고,
제2 AV 위치 제안을 생성하는 단계는 제1 로컬화 알고리즘과 상이한 제2 로컬화 알고리즘에 기초하여 수행되는, 방법.
항목 31. 항목 22 및 항목 28 내지 항목 30 중 어느 한 항목에 있어서,
적어도 제1 계획 모듈에 제공되는 제1 AV 위치는 AV의 현재 위치의 제1 추정치를 포함하고,
적어도 제2 계획 모듈에 제공되는 제2 AV 위치는 AV의 현재 위치의 제2 추정치를 포함하는, 방법.
항목 32. 항목 22에 있어서,
제1 계획 모듈에 의해, 제1 인지 모듈로부터 제1 월드 뷰를 수신하는 단계 - 제1 루트 제안을 생성하는 단계는 제1 월드 뷰에 추가로 기초함 -, 및
제2 계획 모듈에 의해, 제2 인지 모듈로부터 제2 월드 뷰를 수신하는 단계 - 제2 루트 제안을 생성하는 단계는 제2 월드 뷰에 추가로 기초함 - 를 추가로 포함하는, 방법.
항목 33. 항목 22 또는 항목 32에 있어서,
제1 루트 제안을 생성하는 단계는 제1 계획 알고리즘에 기초하여 수행되고,
제2 루트 제안을 생성하는 단계는 제1 계획 알고리즘과 상이한 제2 계획 알고리즘에 기초하여 수행되는, 방법.
항목 34. 항목 22, 항목 32 및 항목 33 중 어느 한 항목에 있어서, 제1 및 제2 루트 제안을 생성하는 단계는 AV의 현재 위치와 AV의 목적지 사이의 각자의 경로를 제안하는 단계를 포함하는, 방법.
항목 35. 항목 22 및 항목 32 내지 항목 34 중 어느 한 항목에 있어서, 제1 및 제2 루트 제안을 생성하는 단계는 AV 및 하나 이상의 다른 차량의 거동을 추론하는 단계를 포함하는, 방법.
항목 36. 항목 35에 있어서, 거동은 검출된 대상체 리스트를 AV의 현재 위치와 연관된 운전 규칙과 비교함으로써 추론되는, 방법.
항목 37. 항목 35에 있어서, 거동은 검출된 대상체 리스트를 차량의 현재 위치와 연관된 운전 규칙에 의해 차량이 동작하도록 허용된 위치와 비교함으로써 추론되는, 방법.
항목 38. 항목 35에 있어서, 거동은 각각의 검출된 대상체에 대한 등속 또는 등가속 모델을 통해 추론되는, 방법.
항목 39. 항목 35에 있어서, 제1 및 제2 루트 제안을 생성하는 단계는 추론된 거동에 부합하고 하나 이상의 검출된 대상체를 피하는 각자의 경로를 제안하는 단계를 포함하는, 방법.
항목 40. 항목 32에 있어서, 제1 및 제2 루트 제안을 선택하는 단계는 각자의 월드 뷰 및 거동 추론 모델에 기초하여 충돌 가능성을 평가하는 단계를 포함하는, 방법.
항목 41. 항목 22에 있어서,
제1 제어 모듈에 의해, 제1 로컬화 모듈로부터 제1 AV 위치를 수신하는 단계 - 제1 제어 신호 제안을 생성하는 단계는 제1 AV 위치에 추가로 기초함 -, 및
제2 제어 모듈에 의해, 제2 로컬화 모듈로부터 제2 AV 위치를 수신하는 단계 - 제2 제어 신호 제안을 생성하는 단계는 제2 AV 위치에 추가로 기초함 - 를 추가로 포함하는, 방법.
항목 42. 항목 22 또는 항목 41에 있어서,
제1 제어 신호 제안을 생성하는 단계는 제1 제어 알고리즘에 기초하여 수행되고,
제2 제어 신호 제안을 생성하는 단계는 제2 제어 알고리즘에 기초하여 수행되는, 방법.
항목 43. 시스템으로서,
2개 이상의 상이한 자율 주행 차량 동작 서브시스템 - 2개 이상의 상이한 자율 주행 차량 동작 서브시스템의 각각의 자율 주행 차량 동작 서브시스템은 2개 이상의 상이한 자율 주행 차량 동작 서브시스템의 다른 자율 주행 차량 동작 서브시스템과 리던던트임 -; 및
2개 이상의 상이한 자율 주행 차량 동작 서브시스템과 결합되고 2개 이상의 상이한 자율 주행 차량 동작 서브시스템으로부터의 자율 주행 차량 동작 출력을 관리하도록 구성된 출력 메디에이터를 포함하고,
출력 메디에이터는 2개 이상의 상이한 자율 주행 차량 동작 서브시스템에 대한 과거 성능 데이터와 비교하여 현재 입력 데이터에 기초하여 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 상이한 자율 주행 차량 동작 서브시스템을 우선순위화된 상태로 선택적으로 승격시키도록 구성되는, 시스템.
항목 44. 항목 43에 있어서, 2개 이상의 상이한 자율 주행 차량 동작 서브시스템은 자율 주행 차량 동작의 인지 스테이지에 포함되는, 시스템.
항목 45. 임의의 선행 항목에 있어서, 2개 이상의 상이한 자율 주행 차량 동작 서브시스템은 자율 주행 차량 동작의 로컬화 스테이지에 포함되는, 시스템.
항목 46. 임의의 선행 항목에 있어서, 2개 이상의 상이한 자율 주행 차량 동작 서브시스템은 자율 주행 차량 동작의 계획 스테이지에 포함되는, 시스템.
항목 47. 임의의 선행 항목에 있어서, 2개 이상의 상이한 자율 주행 차량 동작 서브시스템은 자율 주행 차량 동작의 제어 스테이지에 포함되는, 시스템.
항목 48. 항목 43 내지 항목 47 중 어느 한 항목에 있어서, 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 상이한 자율 주행 차량 동작 서브시스템의 제1 자율 주행 차량 동작 서브시스템은 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 상이한 자율 주행 차량 동작 서브시스템의 제2 자율 주행 차량 동작 서브시스템의 자율 주행 차량 동작 결정과 리던던트하지 않는 추가적인 자율 주행 차량 동작 결정을 제공하도록 구성되는, 시스템.
항목 49. 항목 43 내지 항목 47 중 어느 한 항목에 있어서, 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 상이한 자율 주행 차량 동작 서브시스템의 제1 자율 주행 차량 동작 서브시스템은 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 상이한 자율 주행 차량 동작 서브시스템의 제2 자율 주행 차량 동작 서브시스템의 자율 주행 차량 동작 결정과 리던던트하는 자율 주행 차량 동작 결정만을 제공하도록 구성되는, 시스템.
항목 50. 항목 43 내지 항목 47 중 어느 한 항목에 있어서, 출력 메디에이터는 과거 성능 데이터가 특정 동작 컨텍스트에서 실질적으로 더 나은 성능을 보여줄 때에만 자율 주행 차량 동작 서브시스템을 우선순위화된 상태로 승격시키도록 구성되는, 시스템.
항목 51. 항목 43 내지 항목 50 중 어느 한 항목에 있어서, 출력 메디에이터는, 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 하나의 자율 주행 차량 동작 서브시스템이 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 나머지 자율 주행 차량 동작 서브시스템과 상이한 성능을 보이는 자율 주행 차량에 대한 하나 이상의 특정 동작 컨텍스트를 결정하기 위해, 과거 성능 데이터에 대해 동작하는 머신 러닝 알고리즘으로부터의 결과에 기초하여 자율 주행 차량 동작 서브시스템을 우선순위화된 상태로 승격시키도록 구성되는, 시스템.
항목 52. 항목 51에 있어서, 머신 러닝 알고리즘은 자율 주행 차량 플릿 내의 상이한 자율 주행 차량에서 2개 이상의 상이한 자율 주행 차량 동작 서브시스템을 사용하는 것에 관련된 과거 성능 데이터에 대해 동작하는, 시스템.
항목 53. 항목 43, 항목 51 또는 항목 52에 있어서, 출력 메디에이터는 현재 동작 컨텍스트가 도시 거리 또는 간선도로 운전 조건 중 어느 하나임을 나타내는 현재 입력 데이터에 기초하여, 그리고 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 상이한 자율 주행 차량 동작 서브시스템이 현재 동작 컨텍스트에서 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 나머지 자율 주행 차량 동작 서브시스템과 상이한 성능을 보임을 나타내는 과거 성능 데이터에 기초하여 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 상이한 자율 주행 차량 동작 서브시스템을 우선순위화된 상태로 선택적으로 승격시키도록 구성되는, 시스템.
항목 54. 항목 43, 항목 51 또는 항목 52에 있어서, 출력 메디에이터는 현재 동작 컨텍스트가 특정 기상 조건을 수반함을 나타내는 현재 입력 데이터에 기초하여, 그리고 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 상이한 자율 주행 차량 동작 서브시스템이 현재 동작 컨텍스트에서 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 나머지 자율 주행 차량 동작 서브시스템과 상이한 성능을 보임을 나타내는 과거 성능 데이터에 기초하여 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 상이한 자율 주행 차량 동작 서브시스템을 우선순위화된 상태로 선택적으로 승격시키도록 구성되는, 시스템.
항목 55. 항목 43, 항목 51 또는 항목 52에 있어서, 출력 메디에이터는 현재 동작 컨텍스트가 특정 교통 조건을 수반함을 나타내는 현재 입력 데이터에 기초하여, 그리고 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 상이한 자율 주행 차량 동작 서브시스템이 현재 동작 컨텍스트에서 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 나머지 자율 주행 차량 동작 서브시스템과 상이한 성능을 보임을 나타내는 과거 성능 데이터에 기초하여 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 상이한 자율 주행 차량 동작 서브시스템을 우선순위화된 상태로 선택적으로 승격시키도록 구성되는, 시스템.
항목 56. 항목 43, 항목 51 또는 항목 52에 있어서, 출력 메디에이터는 현재 동작 컨텍스트가 특정 시각 동안임을 나타내는 현재 입력 데이터에 기초하여, 그리고 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 상이한 자율 주행 차량 동작 서브시스템이 현재 동작 컨텍스트에서 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 나머지 자율 주행 차량 동작 서브시스템과 상이한 성능을 보임을 나타내는 과거 성능 데이터에 기초하여 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 상이한 자율 주행 차량 동작 서브시스템을 우선순위화된 상태로 선택적으로 승격시키도록 구성되는, 시스템.
항목 57. 항목 43, 항목 51 또는 항목 52에 있어서, 출력 메디에이터는 현재 동작 컨텍스트가 특정 속력 범위를 수반함을 나타내는 현재 입력 데이터에 기초하여, 그리고 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 상이한 자율 주행 차량 동작 서브시스템이 현재 동작 컨텍스트에서 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 나머지 자율 주행 차량 동작 서브시스템과 상이한 성능을 보임을 나타내는 과거 성능 데이터에 기초하여 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 중 상이한 자율 주행 차량 동작 서브시스템을 우선순위화된 상태로 선택적으로 승격시키도록 구성되는, 시스템.
항목 58. 항목 43 내지 항목 57 중 어느 한 항목에 있어서, 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 각각은 자율 주행 차량 동작에 대한 인지 기능성 및 계획 기능성 둘 모두를 구현하는, 시스템.
항목 59. 항목 43 내지 항목 57 중 어느 한 항목에 있어서, 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 각각은 자율 주행 차량 동작에 대한 인지 기능성 및 제어 기능성 둘 모두를 구현하는, 시스템.
항목 60. 항목 43 내지 항목 59 중 어느 한 항목의 시스템을 사용하여 자율 주행 차량을 동작시키는 방법.
항목 61. 데이터 프로세싱 장치로 하여금 항목 43 내지 항목 59 중 어느 한 항목의 시스템을 사용하여 자율 주행 차량을 동작시키게 하도록 동작 가능한 명령을 인코딩하는 비-일시적 컴퓨터 판독 가능 매체.
항목 62. 자율 주행 차량의 2개 이상의 상이한 자율 주행 차량 동작 서브시스템 - 그 중 하나가 우선순위화된 상태를 가짐 - 의 출력을 제어하기 위해 출력 메디에이터에 의해 수행되는 방법으로서,
현재 동작 컨텍스트 하에서, 2개 이상의 상이한 자율 주행 차량 동작 서브시스템으로부터의 출력을 수신하는 단계;
수신된 출력들 중 적어도 하나의 출력이 다른 출력과 상이하다고 결정하는 것에 응답하여, 현재 동작 컨텍스트에 대응하는 자율 주행 차량 동작 서브시스템들 중 하나의 자율 주행 차량 동작 서브시스템을 우선순위화된 상태로 승격시키는 단계; 및
자율 주행 차량을 동작시키기 위한 우선순위화된 상태를 갖는 자율 주행 차량 동작 서브시스템의 출력의 발행을 제어하는 단계를 포함하는, 방법.
항목 63. 항목 62에 있어서, 우선순위화된 상태를 갖는 자율 주행 차량 동작 서브시스템으로부터의 출력의 발행을 제어하는 단계는 우선순위화된 상태를 갖는 자율 주행 차량 동작 서브시스템에게 그의 출력을 출력 메디에이터로부터 다운스트림에 배치되고 송신된 출력을 사용하여 자율 주행 차량을 동작시키는 자율 주행 차량의 컴포넌트에 송신하도록 지시하는 단계를 포함하는, 방법.
항목 64. 항목 62에 있어서, 우선순위화된 상태를 갖는 자율 주행 차량 동작 서브시스템으로부터의 출력의 발행을 제어하는 단계는 우선순위화된 상태를 갖는 자율 주행 차량 동작 서브시스템의 출력을 출력 메디에이터로부터 다운스트림에 배치되고 송신된 출력을 사용하여 자율 주행 차량을 동작시키는 자율 주행 차량의 컴포넌트에 송신하는 단계를 포함하는, 방법.
항목 65. 항목 62 내지 항목 64 중 어느 한 항목에 있어서, 승격시키는 단계는 현재 동작 컨텍스트에 대응하는 자율 주행 차량 동작 서브시스템이 우선순위화된 상태를 결여한다고 결정하는 것에 응답하여 수행되는, 방법.
항목 66. 항목 62 내지 항목 64 중 어느 한 항목에 있어서,
동일한 현재 동작 컨텍스트 하에서 다음 클록 사이클 동안, 2개 이상의 상이한 자율 주행 차량 동작 서브시스템으로부터의 다른 출력을 수신하는 단계; 및
수신된 출력이 동일하다고 결정하는 것에 응답하여, 우선순위화된 상태를 갖는 자율 주행 차량 동작 서브시스템이 현재 동작 컨텍스트에 대응하는지 여부에 상관없이 우선순위화된 상태를 갖는 자율 주행 차량 동작 서브시스템의 다른 출력의 발행을 제어하는 단계를 추가로 포함하는, 방법.
항목 67. 항목 62 내지 항목 64 중 어느 한 항목에 있어서,
동일한 현재 동작 컨텍스트 하에서 다음 클록 사이클 동안, 2개 이상의 상이한 자율 주행 차량 동작 서브시스템으로부터의 다른 출력을 수신하는 단계; 및
수신된 다른 출력들 중 적어도 하나의 출력이 다른 출력과 상이하다고 결정하는 것에 응답하여, 현재 동작 컨텍스트에 대응하는 자율 주행 차량 동작 서브시스템이 우선순위화된 상태를 갖는다고 결정하는 단계를 추가로 포함하는, 방법.
항목 68. 항목 62 내지 항목 65 중 어느 한 항목에 있어서, 현재 동작 컨텍스트에 대응하는 자율 주행 차량 동작 서브시스템 중 하나를 우선순위화된 상태로 승격시키기 전에, 이 방법은:
현재 입력 데이터에 액세스하는 단계,
현재 입력 데이터에 기초하여 현재 동작 컨텍스트를 결정하는 단계, 및
현재 동작 컨텍스트에 대응하는 자율 주행 차량 동작 서브시스템을 식별하는 단계를 추가로 포함하는, 방법.
항목 69. 항목 68에 있어서, 현재 입력 데이터에 기초하여 현재 동작 컨텍스트를 결정하는 단계는 입력 데이터/컨텍스트 룩업 테이블을 사용하여 수행되는, 방법.
항목 70. 항목 69에 있어서, 입력 데이터/컨텍스트 룩업 테이블에 의해 조회되는 입력 데이터는 교통 데이터, 맵 데이터, AV 위치 데이터, 시각 데이터, 속력 데이터 또는 기상 데이터 중 하나 이상을 포함하는, 방법.
항목 71. 항목 68에 있어서, 현재 동작 컨텍스트에 대응하는 자율 주행 차량 동작 서브시스템을 식별하는 단계는 컨텍스트/서브시스템 룩업 테이블을 사용하여 수행되는, 방법.
항목 72. 항목 62 내지 항목 71 중 어느 한 항목에 있어서,
2개 이상의 자율 주행 차량 동작 서브시스템은 복수의 인지 모듈이고 그의 출력은 각자의 월드 뷰이며,
이 방법은 우선순위화된 상태를 갖는 인지 모듈에 의해 제공되는 월드 뷰의, 출력 메디에이터로부터 다운스트림에 배치된 계획 모듈로의, 발행을 제어하는 단계를 포함하는, 방법.
항목 73. 항목 62 내지 항목 71 중 어느 한 항목에 있어서,
2개 이상의 자율 주행 차량 동작 서브시스템은 복수의 계획 모듈이고 그의 출력은 각자의 루트이며,
이 방법은 우선순위화된 상태를 갖는 계획 모듈에 의해 제공되는 루트의, 출력 메디에이터로부터 다운스트림에 배치된 제어 모듈로의, 발행을 제어하는 단계를 포함하는, 방법.
항목 74. 항목 62 내지 항목 71 중 어느 한 항목에 있어서,
2개 이상의 자율 주행 차량 동작 서브시스템은 복수의 로컬화 모듈이고 그의 출력은 각자의 AV 위치이며,
이 방법은 우선순위화된 상태를 갖는 로컬화 모듈에 의해 제공되는 AV 위치의, 출력 메디에이터로부터 다운스트림에 배치된 제어 모듈로의, 발행을 제어하는 단계를 포함하는, 방법.
항목 75. 항목 62 내지 항목 71 중 어느 한 항목에 있어서,
2개 이상의 자율 주행 차량 동작 서브시스템은 복수의 제어 모듈이고 그의 출력은 각자의 제어 신호이며,
이 방법은 우선순위화된 상태를 갖는 제어 모듈에 의해 제공되는 제어 신호의, 출력 메디에이터로부터 다운스트림에 배치된 액추에이터로의, 발행을 제어하는 단계를 포함하는, 방법.
항목 76. 자율 주행 차량으로서,
적어도 하나의 입력에 따라, 자율 주행 차량이 자율 주행 운전 모드에 있는 동안 그리고 제1 제어 시스템이 선택되는 동안 자율 주행 차량의 제어 동작에 영향을 미치는 출력을 제공하도록 구성된 제1 제어 시스템;
적어도 하나의 입력에 따라, 자율 주행 차량이 자율 주행 운전 모드에 있는 동안 그리고 제2 제어 시스템이 선택되는 동안 자율 주행 차량의 제어 동작에 영향을 미치는 출력을 제공하도록 구성된 제2 제어 시스템; 및
자율 주행 차량의 제어 동작에 영향을 미칠 제1 제어 시스템 및 제2 제어 시스템 중 적어도 하나를 선택하도록 구성된 적어도 하나의 프로세서를 포함하는, 자율 주행 차량.
항목 77. 항목 76에 있어서, 적어도 하나의 프로세서는 일정 시간 기간에 걸친 제1 제어 시스템 및 제2 제어 시스템의 성능에 따라 제1 제어 시스템 및 제2 제어 시스템 중 적어도 하나의 제어 시스템을 선택하도록 구성되는, 자율 주행 차량.
항목 78. 항목 76 또는 항목 77에 있어서, 적어도 하나의 프로세서는 제1 제어 시스템 및 제2 제어 시스템 중 적어도 하나의 제어 시스템의 고장을 식별하도록 구성되는, 자율 주행 차량.
항목 79. 항목 76 내지 항목 78 중 어느 한 항목에 있어서, 적어도 하나의 프로세서는 제1 제어 시스템의 고장을 식별하는 것에 따라 제2 제어 시스템을 선택하도록 구성되는, 자율 주행 차량.
항목 80. 항목 76 내지 항목 79 중 어느 한 항목에 있어서, 적어도 하나의 프로세서는
제1 제어 시스템 및 제2 제어 시스템 중 적어도 하나의 제어 시스템의 동작을 방해하는 환경 조건을 식별하고,
식별된 환경 조건에 따라 제1 제어 시스템 및 제2 제어 시스템 중 적어도 하나의 제어 시스템을 선택하도록 구성되는, 자율 주행 차량.
항목 81. 항목 76 내지 항목 80 중 어느 한 항목에 있어서, 제1 제어 시스템은 제1 피드백 시스템으로부터의 피드백을 수신하도록 구성되고, 제2 제어 시스템은 제2 피드백 시스템으로부터의 피드백을 수신하도록 구성되는, 자율 주행 차량.
항목 82. 항목 81에 있어서, 적어도 하나의 프로세서는 제1 제어 시스템 및 제2 제어 시스템 중 적어도 하나의 제어 시스템의 고장을 식별하기 위해 제1 피드백 시스템으로부터의 피드백과 제2 피드백 시스템으로부터의 피드백을 비교하도록 구성되는, 자율 주행 차량.
항목 83. 항목 76 내지 항목 82 중 어느 한 항목에 있어서, 제1 제어 시스템은 제1 입력에 따라 동작하고, 제2 제어 시스템은 제2 입력에 따라 동작하는, 자율 주행 차량.
항목 84. 항목 76 내지 항목 82 중 어느 한 항목에 있어서, 제1 제어 시스템은 제1 입력에 따라 동작하고, 제2 제어 시스템은 제1 입력에 따라 동작하는, 자율 주행 차량.
항목 85. 항목 76 내지 항목 84 중 어느 한 항목에 있어서, 제1 제어 시스템은 제어 동작에 영향을 미칠 때 제1 알고리즘을 사용하도록 구성되고, 제2 제어 시스템은 제어 동작에 영향을 미칠 때 제2 알고리즘을 사용하도록 구성되는, 자율 주행 차량.
항목 86. 항목 85에 있어서, 제1 알고리즘 및 제2 알고리즘은 제어 피드백 알고리즘인, 자율 주행 차량.
항목 87. 항목 85 또는 항목 86에 있어서, 제1 알고리즘은 조향각을 조정하고, 제2 알고리즘은 스로틀 제어를 조정하는, 자율 주행 차량.
항목 88. 항목 76 내지 항목 86 중 어느 한 항목에 있어서, 제1 제어 시스템은 조향에 영향을 미치기 위해 조향 메커니즘을 사용하도록 구성되고, 제2 제어 시스템은 조향에 영향을 미치기 위해 조향 메커니즘 이외의 기능성을 사용하도록 구성되는, 자율 주행 차량.
항목 89. 항목 88에 있어서, 조향 메커니즘 이외의 기능성은 자율 주행 차량의 휠에 대한 직접적인 제어 및 자율 주행 차량의 액슬에 대한 직접적인 제어 중 적어도 하나를 포함하는, 자율 주행 차량.
항목 90. 항목 76 내지 항목 86 중 어느 한 항목에 있어서, 제1 제어 시스템은 가속도에 영향을 미치기 위해 스로틀 제어 메커니즘을 사용하도록 구성되고, 제2 제어 시스템은 가속도에 영향을 미치기 위해 스로틀 제어 메커니즘 이외의 기능성을 사용하도록 구성되는, 자율 주행 차량.
항목 91. 항목 90에 있어서, 스로틀 제어 메커니즘 이외의 기능성은 자율 주행 차량의 엔진에 대한 직접적인 제어 및 자율 주행 차량의 연료 시스템에 대한 직접적인 제어 중 적어도 하나를 포함하는, 자율 주행 차량.
항목 92. 항목 76 내지 항목 91 중 어느 한 항목에 있어서, 제어 동작은 자율 주행 차량의 속력 및 자율 주행 차량의 배향 중 적어도 하나를 제어하는, 자율 주행 차량.
항목 93. 항목 76 내지 항목 92 중 어느 한 항목에 있어서, 제어 동작은 자율 주행 차량의 속력 평탄도(smoothness) 및 자율 주행 차량의 배향 평탄도 중 적어도 하나를 제어하는, 자율 주행 차량.
항목 94. 항목 76 내지 항목 93 중 어느 한 항목에 있어서, 제어 동작은 자율 주행 차량의 가속도, 저크, 자운스, 스냅, 및 크래클 중 적어도 하나를 제어하는, 자율 주행 차량.
항목 95. 항목 76 내지 항목 94 중 어느 한 항목에 있어서, 적어도 하나의 프로세서는 아비터 모듈 및 진단 모듈 중 적어도 하나를 포함하는, 자율 주행 차량.
항목 96. 자율 주행 차량으로서,
자율 주행 차량이 동작 운전 상태에 있는 동안 자율 주행 차량 외부의 하나 이상의 환경 입력으로부터 제1 센서 데이터 스트림을 생성하도록 구성된 제1 센서;
자율 주행 차량이 동작 운전 상태에 있는 동안 자율 주행 차량 외부의 하나 이상의 환경 입력으로부터 제2 센서 데이터 스트림을 생성하도록 구성된 제2 센서 - 제1 센서와 제2 센서는 동일한 유형의 정보를 검출하도록 구성됨 -; 및
제1 센서 및 제2 센서와 결합된 프로세서 - 프로세서는 제1 센서 데이터 스트림과 제2 센서 데이터 스트림 사이의 차이에 기초하여 비정상 조건을 검출하도록 구성되고, 프로세서는 비정상 조건의 검출에 응답하여 자율 주행 차량을 제어하기 위한 입력으로서 제1 센서, 제2 센서, 또는 둘 모두 간에 전환하도록 구성됨 - 를 포함하는, 자율 주행 차량.
항목 97. 항목 96에 있어서, 프로세서는 샘플링 시간 윈도우에 걸쳐 제1 센서 데이터 스트림 내에서 제1 데이터 값 세트를 캡처하도록 구성되고, 프로세서는 샘플링 시간 윈도우에 걸쳐 제2 센서 데이터 스트림 내에서 제2 데이터 값 세트를 캡처하도록 구성되며, 프로세서는 제1 데이터 값 세트와 제2 데이터 값 세트 사이의 편차를 결정함으로써 비정상 조건을 검출하도록 구성되는, 자율 주행 차량.
항목 98. 항목 97에 있어서, 프로세서는 운전 조건에 응답하여 샘플링 시간 윈도우의 지속기간을 제어하도록 구성되는, 자율 주행 차량.
항목 99. 항목 97에 있어서, 샘플링 시간 윈도우의 지속기간은 미리 결정되는, 자율 주행 차량.
항목 100. 항목 96 내지 항목 99 중 어느 한 항목에 있어서, 프로세서는 제1 센서 데이터 스트림의 제1 샘플 및 제2 센서 데이터 스트림의 제2 샘플에 기초하여 차이를 결정하도록 구성되고, 제1 샘플 및 제2 샘플은 동일한 시간 인덱스에 대응하는, 자율 주행 차량.
항목 101. 항목 100에 있어서, 프로세서는 차이가 미리 결정된 임계치를 초과하는 것에 기초하여 비정상 조건을 검출하도록 구성되는, 자율 주행 차량.
항목 102. 항목 96 내지 항목 101 중 어느 한 항목에 있어서, 프로세서는 제1 센서 데이터 스트림 내에서의 누락된 샘플의 검출에 기초하여 차이를 결정하도록 구성되는, 자율 주행 차량.
항목 103. 항목 96 내지 항목 102 중 어느 한 항목에 있어서, 제1 센서와 제2 센서는 하나 이상의 상이한 센서 특성을 사용하여 동일한 유형의 정보를 검출하는, 자율 주행 차량.
항목 104. 항목 103에 있어서, 제1 센서는 비정상 조건과 연관되고, 프로세서는, 비정상 조건의 검출에 응답하여, 제2 센서 데이터 스트림의 변환을 수행하여 제1 센서 데이터 스트림의 대체 버전을 생성하도록 구성되는, 자율 주행 차량.
항목 105. 항목 96 내지 항목 102 중 어느 한 항목에 있어서, 제2 센서는 제1 센서의 리던던트 버전인, 자율 주행 차량.
항목 106. 항목 96 내지 항목 105 중 어느 한 항목에 있어서, 프로세서는, 비정상 조건의 검출에 응답하여, 비정상 조건을 해결하기 위해 제1 센서, 제2 센서 또는 둘 모두에 대해 진단 루틴을 수행하도록 구성되는, 자율 주행 차량.
항목 107. 자율 주행 차량을 동작시키는 방법으로서,
제1 센서를 통해, 자율 주행 차량이 동작 운전 상태에 있는 동안 자율 주행 차량 외부의 하나 이상의 환경 입력으로부터 제1 센서 데이터 스트림을 생성하는 단계;
제2 센서를 통해, 자율 주행 차량이 동작 운전 상태에 있는 동안 자율 주행 차량 외부의 하나 이상의 환경 입력으로부터 제2 센서 데이터 스트림을 생성하는 단계 - 제1 센서와 제2 센서는 동일한 유형의 정보를 검출하도록 구성됨 -;
제1 센서 데이터 스트림과 제2 센서 데이터 스트림 사이의 차이에 기초하여 비정상 조건을 검출하는 단계; 및
검출된 비정상 조건에 응답하여 자율 주행 차량을 제어하기 위한 입력으로서 제1 센서, 제2 센서, 또는 둘 모두 간에 전환하는 단계를 포함하는, 방법.
항목 108. 항목 107에 있어서,
샘플링 시간 윈도우에 걸쳐 제1 센서 데이터 스트림 내에서 제1 데이터 값 세트를 캡처하는 단계; 및
샘플링 시간 윈도우에 걸쳐 제2 센서 데이터 스트림 내에서 제2 데이터 값 세트를 캡처하는 단계를 포함하고,
비정상 조건을 검출하는 단계는 제1 데이터 값 세트와 제2 데이터 값 세트 사이의 편차를 결정하는 단계를 포함하는, 방법.
항목 109. 항목 108에 있어서,
운전 조건에 응답하여 샘플링 시간 윈도우의 지속기간을 제어하는 단계를 포함하는, 방법.
항목 110. 항목 108에 있어서, 샘플링 시간 윈도우의 지속기간은 미리 결정되는, 방법.
항목 111. 항목 107 내지 항목 110 중 어느 한 항목에 있어서, 차이는 제1 센서 데이터 스트림의 제1 샘플 및 제2 센서 데이터 스트림의 제2 샘플에 기초하고, 제1 샘플 및 제2 샘플은 동일한 시간 인덱스에 대응하는, 방법.
항목 112. 항목 111에 있어서, 비정상 조건을 검출하는 단계는 차이가 미리 결정된 임계치를 초과하는지 여부를 결정하는 단계를 포함하는, 방법.
항목 113. 항목 107 내지 항목 112 중 어느 한 항목에 있어서, 차이는 제1 센서 데이터 스트림 내에서의 누락된 샘플의 검출에 기초하는, 방법.
항목 114. 항목 107 내지 항목 113 중 어느 한 항목에 있어서, 제1 센서와 제2 센서는 하나 이상의 상이한 센서 특성을 사용하여 동일한 유형의 정보를 검출하는, 방법.
항목 115. 항목 114에 있어서,
비정상 조건의 검출에 응답하여, 제2 센서 데이터 스트림의 변환을 수행하여 제1 센서 데이터 스트림의 대체 버전을 생성하는 단계 - 제1 센서는 비정상 조건과 연관됨 - 를 포함하는, 방법.
항목 116. 항목 107 내지 항목 113 중 어느 한 항목에 있어서, 제2 센서는 제1 센서의 리던던트 버전인, 방법.
항목 117. 항목 107 내지 항목 116 중 어느 한 항목에 있어서,
비정상 조건의 검출에 응답하여, 비정상 조건을 해결하기 위해 제1 센서, 제2 센서 또는 둘 모두에 대해 진단 루틴을 수행하는 단계를 포함하는, 방법.
항목 118. 자율 주행 차량으로서,
자율 주행 차량에 대한 제어 동작에 영향을 미치도록 구성된 제어 시스템;
제어 시스템과 통신하는 제어 프로세서 - 제어 프로세서는 제어 시스템에 의해 실행하기 위한 명령을 결정하도록 구성됨 -;
제어 시스템과 통신하는 원격통신 시스템 - 원격통신 시스템은 외부 소스로부터 명령을 수신하도록 구성됨 - 을 포함하고,
제어 프로세서는 외부 소스로부터 수신된 명령으로부터 제어 시스템에 의해 실행 가능한 명령을 결정하도록 구성되고 하나 이상의 특정된 조건이 검출될 때 원격통신 시스템과 통신하는 외부 소스가 제어 시스템을 제어할 수 있게 하도록 구성되는, 자율 주행 차량.
항목 119. 항목 118에 있어서, 제어 프로세서는 자율 주행 차량 상의 하나 이상의 센서로부터 수신된 데이터가 하나 이상의 특정된 조건을 충족시키는지를 결정하고, 이 결정에 따라 원격통신 시스템이 제어 시스템을 제어할 수 있게 하도록 구성되는, 자율 주행 차량.
항목 120. 항목 118에 있어서, 제어 프로세서에 의해 검출된 하나 이상의 특정된 조건은 비상 조건을 포함하는, 자율 주행 차량.
항목 121. 항목 118에 있어서, 제어 프로세서는 자율 주행 차량의 탑승자로부터 수신된 입력으로부터 하나 이상의 특정된 조건을 검출하는, 자율 주행 차량.
항목 122. 항목 121에 있어서, 입력은 자율 주행 차량의 내부 내의 통지 인터페이스로부터 수신되는, 자율 주행 차량.
항목 123. 항목 118에 있어서, 하나 이상의 특정된 조건은 환경 조건을 포함하는, 자율 주행 차량.
항목 124. 항목 118에 있어서, 하나 이상의 특정된 조건은 제어 프로세서의 고장을 포함하는, 자율 주행 차량.
항목 125. 항목 118에 있어서, 제어 프로세서는 자율 주행 차량이 특정된 조건들 중 하나로서 이전에 주행되지 않은 도로에 있는지를 결정하고, 이 결정에 따라 원격통신 시스템이 제어 시스템을 제어할 수 있게 하도록 구성되는, 자율 주행 차량.
항목 126. 항목 125에 있어서, 자율 주행 차량이 이전에 주행되지 않은 도로에 있다는 결정은 주행된 도로의 데이터베이스로부터의 데이터를 사용하여 이루어지는, 자율 주행 차량.
항목 127. 항목 118에 있어서, 원격통신 시스템은 원격 조작자에 의해 이루어진 입력에 기초한 명령을 수신하는, 자율 주행 차량.
항목 128. 자율 주행 차량으로서,
자율 주행 차량에 대한 제1 제어 동작에 영향을 미치도록 구성된 제어 시스템;
제어 시스템과 통신하는 제어 프로세서 - 제어 프로세서는 제어 시스템에 의해 실행하기 위한 명령을 결정하도록 구성됨 -;
제어 시스템과 통신하는 원격통신 시스템 - 원격통신 시스템은 외부 소스로부터 명령을 수신하도록 구성됨 -; 및
외부 소스로부터 수신된 명령으로부터 제어 시스템에 의해 실행 가능한 명령을 결정하도록 그리고 원격통신 시스템과 통신하는 제어 프로세서 또는 외부 소스가 제어 시스템을 동작시킬 수 있게 하도록 구성된 프로세서를 포함하는, 자율 주행 차량.
항목 129. 항목 128에 있어서, 제어 프로세서는 하나 이상의 특정된 조건이 검출될 때 원격통신 시스템이 제어 시스템을 동작시킬 수 있게 하도록 구성되는, 자율 주행 차량.
항목 130. 항목 129에 있어서, 제어 프로세서에 의해 검출된 하나 이상의 특정된 조건은 비상 조건을 포함하는, 자율 주행 차량.
항목 131. 항목 129에 있어서, 제어 프로세서는 자율 주행 차량의 탑승자로부터 수신된 입력으로부터 하나 이상의 특정된 조건을 검출하는, 자율 주행 차량.
항목 132. 항목 131에 있어서, 입력은 자율 주행 차량의 내부 내의 통지 인터페이스로부터 수신되는, 자율 주행 차량.
항목 133. 항목 128에 있어서, 하나 이상의 특정된 조건은 환경 조건을 포함하는, 자율 주행 차량.
항목 134. 항목 129에 있어서, 하나 이상의 특정된 조건은 제어 프로세서의 고장을 포함하는, 자율 주행 차량.
항목 135. 항목 129에 있어서, 제어 프로세서는 자율 주행 차량이 특정된 조건들 중 하나로서 이전에 주행되지 않은 도로에 있는지를 결정하고, 이 결정에 따라 원격통신 시스템이 제어 시스템을 제어할 수 있게 하도록 구성되는, 자율 주행 차량.
항목 136. 항목 128에 있어서, 자율 주행 차량이 이전에 주행되지 않은 도로에 있다는 결정은 주행된 도로의 데이터베이스로부터의 데이터를 사용하여 이루어지는, 자율 주행 차량.
항목 137. 항목 129에 있어서, 외부 소스는 원격 조작자에 의해 이루어진 입력에 기초한 명령을 수신하는, 자율 주행 차량.
항목 138. 자율 주행 차량으로서,
자율 주행 차량에 대한 제1 제어 동작에 영향을 미치도록 구성된 제1 제어 시스템;
자율 주행 차량에 대한 제1 제어 동작에 영향을 미치도록 구성된 제2 제어 시스템; 및
제1 제어 시스템과 통신하는 원격통신 시스템 - 원격통신 시스템은 외부 소스로부터 명령을 수신하도록 구성됨 -;
외부 소스로부터 수신된 명령으로부터 제1 제어 동작에 영향을 미칠 명령을 결정하도록 구성되고 원격통신 시스템이 외부 소스와 통신하는 능력을 결정하고 이 결정에 따라 제1 제어 시스템 또는 제2 제어 시스템을 선택하도록 구성된 제어 프로세서를 포함하는, 자율 주행 차량.
항목 139. 항목 138에 있어서, 외부 소스와 통신하는 원격통신 시스템의 능력을 결정하는 것은 원격통신 시스템이 명령을 송신하는 무선 네트워크의 신호 강도의 메트릭을 결정하는 것을 포함하는, 자율 주행 차량.
항목 140. 항목 138에 있어서, 제1 제어 시스템은 제1 알고리즘을 사용하고 제2 제어 시스템은 제1 제어 시스템과 상이한 제2 알고리즘을 사용하는, 자율 주행 차량.
항목 141. 항목 140에 있어서, 제1 알고리즘의 출력은 제2 알고리즘의 출력보다 공격적인 자율 주행 차량의 움직임을 생성하기 위해 제1 제어 동작에 영향을 미치는, 자율 주행 차량.
항목 142. 항목 140에 있어서, 제1 알고리즘의 출력은 제2 알고리즘의 출력보다 보수적인 자율 주행 차량의 움직임을 생성하기 위해 제1 제어 동작에 영향을 미치는, 자율 주행 차량.
항목 143. 항목 142에 있어서, 제어 프로세서는 기본적으로 제1 제어 시스템을 사용하도록 구성되는, 자율 주행 차량.
항목 144. 항목 138에 있어서, 외부 소스와 통신하는 원격통신 시스템의 능력을 결정하는 것은 자율 주행 차량 상의 무선 신호 수신기가 손상되었다는 표시를 결정하는 것을 포함하는, 자율 주행 차량.
항목 145. 방법으로서,
하나 이상의 센서를 갖는 제1 자율 주행 차량에서:
하나 이상의 센서로부터 수신된 데이터에 기초하여 제1 자율 주행 차량의 동작의 양상을 결정하는 단계;
하나 이상의 다른 자율 주행 차량에서 유래하는 데이터를 수신하는 단계; 및
그 결정 및 수신된 데이터를 사용하여 동작을 수행하는 단계를 포함하는, 방법.
항목 146. 항목 145에 있어서,
하나 이상의 센서로부터 수신된 데이터의 적어도 일 부분을 다른 자율 주행 차량들 중 적어도 하나에 송신하는 단계를 추가로 포함하는,방법.
항목 147. 항목 145 또는 항목 146에 있어서, 하나 이상의 센서로부터 수신된 데이터는 제1 자율 주행 차량의 환경 내의 대상체의 표시 또는 도로의 조건 중 적어도 하나를 포함하는, 방법.
항목 148. 항목 145 내지 항목 147 중 어느 한 항목에 있어서, 하나 이상의 다른 자율 주행 차량에서 유래하는 데이터는 하나 이상의 다른 자율 주행 차량에서 유래하는 데이터가 유효한 시간 기간의 표시를 포함하는, 방법.
항목 149. 항목 145 내지 항목 148 중 어느 한 항목에 있어서, 제1 자율 주행 차량이 도로를 횡단하기 전에 하나 이상의 다른 자율 주행 차량이 도로를 횡단했고, 하나 이상의 다른 자율 주행 차량에서 유래하는 데이터는 하나 이상의 다른 자율 주행 차량이 도로를 횡단했을 때의 도로의 조건의 표시를 포함하는, 방법.
항목 150. 항목 145 내지 항목 149 중 어느 한 항목에 있어서, 하나 이상의 다른 자율 주행 차량에서 유래하는 데이터는 하나 이상의 다른 자율 주행 차량에 의해 횡단된 하나 이상의 경로의 표시를 포함하는, 방법.
항목 151. 항목 150에 있어서, 하나 이상의 다른 자율 주행 차량에서 유래하는 데이터는 하나 이상의 다른 자율 주행 차량에 의해 횡단된 하나 이상의 경로를 따른 교통 패턴에 대한 하나 이상의 수정의 표시를 추가로 포함하는, 방법.
항목 152. 항목 150에 있어서, 하나 이상의 다른 자율 주행 차량에서 유래하는 데이터는 하나 이상의 다른 자율 주행 차량에 의해 횡단된 하나 이상의 경로를 따른 하나 이상의 장애물의 표시를 추가로 포함하는, 방법.
항목 153. 항목 150에 있어서, 하나 이상의 다른 자율 주행 차량에서 유래하는 데이터는 하나 이상의 다른 자율 주행 차량에 의해 횡단된 하나 이상의 경로를 따른 하나 이상의 대상체에 대한 변경의 표시를 추가로 포함하는, 방법.
항목 154. 항목 150에 있어서,
하나 이상의 다른 자율 주행 차량에서 유래하는 데이터에 기초하여, 하나 이상의 다른 자율 주행 차량의 목적지가 제1 자율 주행 차량의 목적지와 유사하다고 결정하는 단계, 및
하나 이상의 다른 자율 주행 차량의 목적지가 제1 자율 주행 차량의 목적지와 유사하다고 결정하는 것에 응답하여, 차량 플래툰을 형성하기 위한 요청을 하나 이상의 다른 자율 주행 차량에 송신하는 단계를 추가로 포함하는, 방법.
항목 155. 항목 145 내지 항목 154 중 어느 한 항목에 있어서, 하나 이상의 다른 자율 주행 차량에서 유래하는 데이터는 하나 이상의 다른 자율 주행 차량의 환경의 조건의 표시를 포함하는, 방법.
항목 156. 항목 155에 있어서, 하나 이상의 다른 자율 주행 차량의 환경의 조건의 표시에 기초하여 제1 자율 주행 차량의 루트를 수정하는 단계를 추가로 포함하는, 방법.
항목 157. 항목 145 내지 항목 156 중 어느 한 항목에 있어서, 하나 이상의 다른 자율 주행 차량에서 유래하는 데이터는 하나 이상의 다른 자율 주행 차량의 상태를 포함하는, 방법.
항목 158. 항목 145 내지 항목 157 중 어느 한 항목에 있어서, 하나 이상의 다른 자율 주행 차량의 상태는 하나 이상의 다른 자율 주행 차량의 위치, 하나 이상의 다른 자율 주행 차량의 속도, 또는 하나 이상의 다른 자율 주행 차량의 가속도 중 적어도 하나를 포함하는, 방법.
항목 159. 항목 145 내지 항목 158 중 어느 한 항목에 있어서, 제1 자율 주행 차량의 통신 엔진을 사용하여 제1 자율 주행 차량 및 하나 이상의 다른 자율 주행 차량의 동작을 제어하도록 구성된 외부 제어 시스템으로 정보를 송신 및/또는 그로부터 정보를 수신하는 단계를 추가로 포함하는, 방법.
항목 160. 항목 145 내지 항목 159 중 어느 한 항목에 있어서, 제1 자율 주행 차량의 통신 엔진을 사용하여 하나 이상의 피어-투-피어 네트워크 연결을 통해 하나 이상의 자율 주행 차량으로 정보를 송신 및/또는 그로부터 정보를 수신하는 단계를 추가로 포함하는, 방법.
항목 161. 항목 145 내지 항목 160 중 어느 한 항목에 있어서, 동작은 제1 자율 주행 차량의 루트를 계획하는 것, 제1 자율 주행 차량의 환경에서 대상체를 식별하는 것, 제1 자율 주행 차량에 의해 횡단될 도로의 조건을 평가하는 것, 또는 자율 주행 차량의 환경 내의 사이니지를 해석하는 것 중 하나인, 방법.
항목 162. 제1 디바이스로서,
하나 이상의 프로세서;
메모리; 및
메모리에 저장된 하나 이상의 프로그램을 포함하고, 하나 이상의 프로그램은 항목 145 내지 항목 161 중 어느 한 항목의 방법을 수행하기 위한 명령을 포함하는, 제1 디바이스.
항목 163. 제1 디바이스의 하나 이상의 프로세서에 의해 실행하기 위한 하나 이상의 프로그램을 포함하는 비-일시적 컴퓨터 판독 가능 저장 매체로서, 하나 이상의 프로그램은, 하나 이상의 프로세서에 의해 실행될 때, 제1 디바이스로 하여금 항목 145 내지 항목 161 중 어느 한 항목의 방법을 수행하게 하는 명령을 포함하는, 비-일시적 컴퓨터 판독 가능 저장 매체.
항목 164. 방법으로서,
자율 주행 차량(AV)에 의해, 환경에서 AV의 자율 주행 운전 기능을 수행하는 단계;
AV의 내부 무선 통신 디바이스에 의해, 환경에 위치된 외부 무선 통신 디바이스로부터 외부 메시지를 수신하는 단계;
AV의 하나 이상의 프로세서에 의해, 기능의 출력을 외부 메시지의 콘텐츠와 또는 콘텐츠에 기초하여 생성된 데이터와 비교하는 단계; 및
비교의 결과에 따라, AV로 하여금 기동을 수행하게 하는 단계를 포함하는, 방법.
항목 165. 항목 164에 있어서, 기능은 로컬화이고 콘텐츠는 AV의 위치 또는 환경에서의 대상체의 위치를 포함하는, 방법.
항목 166. 항목 164에 있어서, 기능은 인지이고 콘텐츠는 환경에서의 대상체 및 그 각자의 위치를 포함하는, 방법.
항목 167. 항목 166에 있어서,
하나 이상의 프로세서에 의해, 대상체의 각자의 위치를 사용하여 대상체로 환경의 장면 묘사를 업데이트하는 단계; 및
업데이트된 장면 묘사를 사용하여 인지 기능을 수행하는 단계를 추가로 포함하는, 방법.
항목 168. 항목 164에 있어서, 외부 메시지는 환경에서 동작하는 하나 이상의 다른 차량으로부터 브로드캐스팅되거나 송신되는, 방법.
항목 169. 항목 164에 있어서, 콘텐츠는 AV의 운전 상태 또는 하나 이상의 다른 차량의 운전 상태를 포함하는, 방법.
항목 170. 항목 164에 있어서, 콘텐츠는 교통 신호등 상태 데이터를 포함하는, 방법.
항목 171. 항목 164에 있어서, 콘텐츠는 AV의 동작에 대한 속력 제한을 시행하기 위해 사용되는, 방법.
항목 172. 항목 164에 있어서, 콘텐츠는 AV에 의해 내부적으로 생성되는 장면 묘사를 생성 또는 업데이트하는 데 사용되는, 방법.
항목 173. 항목 164 내지 항목 172 중 어느 한 항목에 있어서, 기동은 안전 정지 기동 또는 림프 모드(limp mode)인, 방법.
항목 174. 항목 164 내지 항목 172 중 어느 한 항목에 있어서, 콘텐츠는 공개 메시지 및 하나 이상의 암호화된 개인 메시지를 포함하는, 방법.
항목 175. 자율 주행 차량(AV) 시스템으로서,
하나 이상의 프로세서;
메모리; 및
메모리에 저장된 하나 이상의 프로그램을 포함하고, 하나 이상의 프로그램은 항목 164 내지 항목 174 중 어느 한 항목의 방법을 수행하기 위한 명령을 포함하는, 자율 주행 차량(AV) 시스템.
항목 176. 자율 주행 차량(AV) 시스템의 하나 이상의 프로세서에 의해 실행하기 위한 하나 이상의 프로그램을 포함하는 비-일시적 컴퓨터 판독 가능 저장 매체로서, 하나 이상의 프로그램은, 하나 이상의 프로세서에 의해 실행될 때, AV 시스템으로 하여금 항목 164 내지 항목 174 중 어느 한 항목의 방법을 수행하게 하는 명령을 포함하는, 비-일시적 컴퓨터 판독 가능 저장 매체.
항목 177. 방법으로서,
자율 주행 차량(AV)의 운영 체제(OS)에 의해, AV의 데이터 네트워크에 결합된 새로운 컴포넌트를 발견하는 단계;
AV OS에 의해, 새로운 컴포넌트가 리던던트 컴포넌트인지를 결정하는 단계;
새로운 컴포넌트가 리던던트 컴포넌트인 것에 따라,
새로운 컴포넌트의 리던던시 구성을 수행하는 단계; 및
새로운 컴포넌트가 리던던트 컴포넌트가 아닌 것에 따라,
새로운 컴포넌트의 기본 구성을 수행하는 단계를 포함하고,
이 방법은 하나 이상의 특수 목적 컴퓨팅 디바이스에 의해 수행되는, 방법.
항목 178. 항목 177에 있어서, 새로운 컴포넌트의 기본 구성을 수행하는 단계는:
부팅 프로세스를 시작하는 단계;
이용 가능한 인터럽트 요청, 직접 메모리 액세스(DMA) 채널 및 입/출력(I/O) 어드레스의 리소스 테이블을 생성하는 단계;
새로운 컴포넌트에 대한 마지막으로 알려진 구성을 로딩하는 단계;
새로운 컴포넌트의 현재 구성을 새로운 컴포넌트의 마지막으로 알려진 구성과 비교하는 단계;
현재 구성 및 마지막으로 알려진 구성이 변경되지 않은 것에 따라,
부팅 프로세스를 계속하는 단계를 추가로 포함하는, 방법.
항목 179. 항목 178에 있어서, 현재 구성 및 마지막으로 알려진 구성이 변경된 것에 따라,
리소스 테이블로부터 임의의 예약된 시스템 리소스를 제거하는 단계;
리소스 테이블에 남아 있는 리소스 중에서 리소스를 새로운 컴포넌트에 할당하는 단계;
새로운 컴포넌트에 그의 새로운 할당을 통보하는 단계; 및
새로운 컴포넌트에 대한 구성 데이터를 업데이트하는 단계; 및
부팅 프로세스를 계속하는 단계를 포함하는, 방법.
항목 180. 항목 177에 있어서, 새로운 컴포넌트는 복수의 컴포넌트에 결합하는 허브인, 방법.
항목 181. 항목 177에 있어서, 새로운 컴포넌트가 리던던트 컴포넌트인지를 결정하는 단계는 새로운 컴포넌트에 대해 리던던시 테이블을 탐색하는 단계를 포함하는, 방법.
항목 182. 항목 177에 있어서, 새로운 컴포넌트에 대한 리던던시 구성을 수행하는 단계는 새로운 컴포넌트가 AV의 리던던시 모델에 부합하는지를 결정하는 단계를 포함하는, 방법.
항목 183. 항목 182에 있어서, 새로운 컴포넌트가 AV의 리던던시 모드에 부합하는지를 결정하는 단계는:
새로운 컴포넌트의 하나 이상의 특성을 리던던시 모델에 의해 요구되는 하나 이상의 특성과 비교하는 단계; 및
비교에 기초하여 새로운 컴포넌트가 리던던시 모델에 부합하는지를 결정하는 단계를 추가로 포함하는, 방법.
항목 184. 항목 183에 있어서, 특성은 성능 사양 또는 센서 어트리뷰트인, 방법.
항목 185. 항목 183에 있어서, 하나 이상의 특성을 비교하는 단계는 새로운 컴포넌트에 의해 사용되는 알고리즘이 AV의 대응하는 리던던트 컴포넌트에 의해 사용되는 알고리즘과 동일하거나 상이하다고 결정하는 단계를 포함하는, 방법.
항목 186. 항목 185에 있어서, 새로운 컴포넌트는 스테레오 카메라이고 대응하는 리던던트 컴포넌트는 LiDAR인, 방법.
항목 187. 자율 주행 차량으로서,
하나 이상의 컴퓨터 프로세서;
하나 이상의 컴퓨터 프로세서에 의해 실행될 때, 동작들을 수행하게 하는 명령을 저장하는 하나 이상의 비-일시적 저장 매체를 포함하며, 동작들은:
자율 주행 차량(AV)의 운영 체제(OS)에 의해, AV의 데이터 네트워크에 결합된 새로운 컴포넌트를 발견하는 것;
AV OS에 의해, 새로운 컴포넌트가 리던던트 컴포넌트인지를 결정하는 것;
새로운 컴포넌트가 리던던트 컴포넌트인 것에 따라,
새로운 컴포넌트의 리던던시 구성을 수행하는 것; 및
새로운 컴포넌트가 리던던트 컴포넌트가 아닌 것에 따라,
새로운 컴포넌트의 기본 구성을 수행하는 것을 포함하고,
이 방법은 하나 이상의 특수 목적 컴퓨팅 디바이스에 의해 수행되는, 자율 주행 차량.
항목 188. 하나 이상의 컴퓨팅 디바이스에 의해 실행될 때, 항목 177에 열거된 방법을 수행하게 하는 명령을 저장하는 하나 이상의 비-일시적 저장 매체.
항목 189. 하나 이상의 컴퓨팅 디바이스에 의해 실행될 때, 동작들을 수행하게 하는 명령을 수반하는 머신 실행 동작을 수행하는 단계를 포함하는 방법으로서, 동작들은:
자율 주행 차량(AV)의 운영 체제(OS)에 의해, AV의 데이터 네트워크에 결합된 새로운 컴포넌트를 발견하는 것;
AV OS에 의해, 새로운 컴포넌트가 리던던트 컴포넌트인지를 결정하는 것;
새로운 컴포넌트가 리던던트 컴포넌트인 것에 따라,
새로운 컴포넌트의 리던던시 구성을 수행하는 것; 및
새로운 컴포넌트가 리던던트 컴포넌트가 아닌 것에 따라,
새로운 컴포넌트의 기본 구성을 수행하는 것을 포함하고,
머신 실행 동작은 상기 명령을 전송하는 것, 상기 명령을 수신하는 것, 상기 명령을 저장하는 것, 또는 상기 명령을 실행하는 것 중 적어도 하나인, 방법.
항목 190. 방법으로서,
자율 주행 차량(AV)의 인지 모듈로부터, 장면 묘사를 획득하는 단계 - 장면 묘사는 AV의 하나 이상의 센서에 의해 검출된 하나 이상의 대상체를 포함함 -;
장면 묘사가 AV의 동작 도메인 내에 있는지를 결정하는 단계;
장면 묘사가 AV의 동작 도메인 내에 있는 것에 따라:
AV의 제1 모션 계획 모듈에 의해, 장면 묘사 및 AV의 위치를 적어도 부분적으로 사용하여 AV의 제1 궤적을 생성하는 단계;
AV의 제2 모션 계획 모듈에 의해, 장면 묘사 및 AV 위치를 적어도 부분적으로 사용하여 AV의 제2 궤적을 생성하는 단계;
제1 루트 계획 모듈의 제1 거동 추론 모델에 의해, 제2 궤적을 평가하여 제2 궤적이 장면 묘사에서의 하나 이상의 대상체와 충돌하는지를 결정하는 단계;
제2 계획 모듈의 제2 거동 추론 모델에 의해, 제1 궤적을 평가하여 제1 궤적이 장면 묘사에서의 하나 이상의 대상체와 충돌하는지를 결정하는 단계 - 제2 거동 추론 모델은 제1 거동 추론 모델과 상이함 -; 및
평가에 기초하여, 제1 궤적 또는 제2 궤적이 장면 묘사에 포함된 하나 이상의 대상체와 충돌하는지를 결정하는 단계; 및
제1 궤적 또는 제2 궤적이 장면 묘사에 있는 하나 이상의 대상체와 충돌한다고 결정하는 것에 따라,
AV로 하여금 안전 정지 기동 또는 비상 제동을 수행하게 하는 단계를 포함하는, 방법.
항목 191. 항목 190에 있어서, 제1 거동 추론 모델은 등속 모델 또는 등가속 모델이고, 제2 거동 추론 모델은 머신 러닝 모델인, 방법.
항목 192. 항목 190에 있어서, 제1 거동 추론 모델 또는 제2 거동 추론 모델은 POMDP(partially observable Markov decision process)를 사용하는 확률 모델인, 방법.
항목 193. 항목 190에 있어서, 제1 거동 추론 모델 또는 제2 거동 추론 모델은 신경 네트워크에 의해 파라미터화되는 가우시안 혼합 모델(Gaussian mixture model)인, 방법.
항목 194. 항목 190에 있어서, 제1 거동 추론 모델 또는 제2 거동 추론 모델은 IRL(inverse reinforcement learning) 모델인, 방법.
항목 195. 항목 190에 있어서,
제1 계획 모듈에 대한 제1 진단 커버리지를 제공하는 단계;
제2 계획 모듈에 대한 제2 진단 커버리지를 제공하는 단계;
제1 진단 커버리지 및 제2 진단 커버리지에 기초하여, 제1 계획 모듈 또는 제2 계획 모듈과 연관된 하드웨어 또는 소프트웨어 에러가 있는지를 결정하는 단계; 및
제1 계획 모듈 및 제2 계획 모듈과 연관된 하드웨어 또는 소프트웨어 에러가 없고 제1 궤적 또는 제2 궤적이 장면 묘사에 있는 하나 이상의 대상체와 충돌한다고 결정하는 것에 따라,
AV로 하여금 안전 정지 기동을 수행하게 하는 단계를 추가로 포함하는, 방법.
항목 196. 항목 195에 있어서,
제1 계획 모듈 또는 제2 계획 모듈과 연관된 하드웨어 또는 소프트웨어 에러가 있다고 결정하는 것에 따라,
AV로 하여금 안전 정지 기동을 수행하게 하는 단계를 추가로 포함하는, 방법.
항목 197. 항목 190에 있어서,
제1 루트 계획 시스템에 대한 제1 진단 커버리지를 제공하는 단계;
제2 루트 계획 시스템에 대한 제2 진단 커버리지를 제공하는 단계; 및
진단 커버리지에 기초하여, 제1 계획 모듈 또는 제2 계획 모듈과 연관된 하드웨어 또는 소프트웨어 에러가 있는지를 결정하는 단계; 및
AV에 하드웨어 또는 소프트웨어 에러가 없고 제1 궤적 및 제2 궤적이 장면 묘사에 있는 하나 이상의 대상체와 충돌한다고 결정하는 것에 따라,
AV로 하여금 비상 제동을 수행하게 하는 단계를 추가로 포함하는, 방법.
항목 198. 항목 190에 있어서, 장면 묘사는 무선 통신 매체를 통해 AV 외부의 소스로부터 적어도 부분적으로 획득되는, 방법.
항목 199. 항목 190에 있어서, 장면 묘사는 무선 통신 매체를 통해 다른 자율 주행 차량으로부터 적어도 부분적으로 획득되는, 방법.
항목 200. 자율 주행 차량으로서,
하나 이상의 컴퓨터 프로세서; 및
하나 이상의 컴퓨터 프로세서에 의해 실행될 때, 항목 1 내지 항목 10 중 어느 한 항목의 방법을 수행하게 하는 명령을 저장하는 하나 이상의 비-일시적 저장 매체를 포함하는, 자율 주행 차량.
항목 201. 하나 이상의 컴퓨팅 디바이스에 의해 실행될 때, 항목 190 내지 항목 199 중 어느 한 항목의 방법을 수행하게 하는 명령을 저장하는 하나 이상의 비-일시적 저장 매체.
항목 202. 자율 주행 차량(AV)에 의해 수행되는 방법으로서,
제1 시뮬레이터에 의해, 제2 AV 프로세스/시스템에 의해 출력된 데이터를 사용하여 제1 AV 프로세스/시스템의 제1 시뮬레이션을 수행하는 단계;
제2 시뮬레이터에 의해, 제1 AV 프로세스/시스템에 의해 출력된 데이터를 사용하여 제2 AV 프로세스/시스템의 제2 시뮬레이션을 수행하는 단계;
하나 이상의 프로세서에 의해, 제1 및 제2 프로세스/시스템에 의해 출력된 데이터를 제1 및 제2 시뮬레이터에 의해 출력된 데이터와 비교하는 단계; 및
비교의 결과에 따라, AV로 하여금 안전 모드 기동 또는 다른 액션을 수행하게 하는 단계를 포함하는, 방법.
항목 203. 항목 202에 있어서,
제1 진단 디바이스에 의해, 제1 AV 프로세스/시스템의 제1 진단 모니터링을 수행하는 단계;
제2 진단 디바이스에 의해, 제2 AV 프로세스/시스템의 제2 진단 모니터링을 수행하는 단계; 및
제1 및 제2 진단 모니터링에 따라, AV로 하여금 안전 모드 기동 또는 다른 액션을 수행하게 하는 단계를 추가로 포함하는, 방법.
항목 204. 항목 202에 있어서,
제1 또는 제2 시뮬레이터에 의해, 하나 이상의 외부 인자를 수신하는 단계; 및
제1 또는 제2 시뮬레이터에 의해, 외부 인자에 기초하여 하나 이상의 모델을 조정하는 단계를 추가로 포함하는, 방법.
항목 205. 항목 204에 있어서, 외부 인자는 기상 조건을 포함하는, 방법.
항목 206. 항목 204에 있어서, 외부 인자는 도로 조건을 포함하는, 방법.
항목 207. 항목 204에 있어서, 외부 인자는 교통 조건을 포함하는, 방법.
항목 208. 항목 204에 있어서, 외부 인자는 AV 특성을 포함하는, 방법.
항목 209. 항목 204에 있어서, 외부 인자는 시각을 포함하는, 방법.
항목 210. 항목 202에 있어서,
제1 또는 제2 시뮬레이터에 의해, 운전자 프로파일을 수신하는 단계; 및
제1 또는 제2 시뮬레이터에 의해, 운전자 프로파일에 기초하여 하나 이상의 모델을 조정하는 단계를 추가로 포함하는, 방법.
항목 211. 항목 210에 있어서, 운전자 프로파일은 운전 패턴을 포함하는, 방법.
항목 212. 자율 주행 차량으로서,
하나 이상의 컴퓨터 프로세서;
하나 이상의 컴퓨터 프로세서에 의해 실행될 때, 동작들을 수행하게 하는 명령을 저장하는 하나 이상의 비-일시적 저장 매체를 포함하며, 동작들은:
제1 시뮬레이터에 의해, 제2 AV 프로세스/시스템에 의해 출력된 데이터를 사용하여 제1 AV 프로세스/시스템의 제1 시뮬레이션을 수행하는 것;
제2 시뮬레이터에 의해, 제1 AV 프로세스/시스템에 의해 출력된 데이터를 사용하여 제2 AV 프로세스/시스템의 제2 시뮬레이션을 수행하는 것;
하나 이상의 프로세서에 의해, 제1 및 제2 프로세스/시스템에 의해 출력된 데이터를 제1 및 제2 시뮬레이터에 의해 출력된 데이터와 비교하는 것; 및
비교의 결과에 따라, AV로 하여금 안전 모드 기동 또는 다른 액션을 수행하게 하는 것을 포함하는, 자율 주행 차량.
항목 213. 하나 이상의 컴퓨팅 디바이스에 의해 실행될 때, 항목 202에 열거된 방법을 수행하게 하는 명령을 저장하는 하나 이상의 비-일시적 저장 매체.
항목 214. 하나 이상의 컴퓨팅 디바이스에 의해 실행될 때, 동작들을 수행하게 하는 명령을 수반하는 머신 실행 동작을 수행하는 단계를 포함하는 방법으로서, 동작들은:
제1 시뮬레이터에 의해, 제2 AV 프로세스/시스템에 의해 출력된 데이터를 사용하여 제1 AV 프로세스/시스템의 제1 시뮬레이션을 수행하는 것;
제2 시뮬레이터에 의해, 제1 AV 프로세스/시스템에 의해 출력된 데이터를 사용하여 제2 AV 프로세스/시스템의 제2 시뮬레이션을 수행하는 것;
하나 이상의 프로세서에 의해, 제1 및 제2 프로세스/시스템에 의해 출력된 데이터를 제1 및 제2 시뮬레이터에 의해 출력된 데이터와 비교하는 것; 및
비교의 결과에 따라, AV로 하여금 안전 모드 기동 또는 다른 액션을 수행하게 하는 것을 포함하며,
머신 실행 동작은 상기 명령을 전송하는 것, 상기 명령을 수신하는 것, 상기 명령을 저장하는 것, 또는 상기 명령을 실행하는 것 중 적어도 하나인, 방법.
항목 215. 시스템으로서,
자율 주행 차량(AV)을 위한 시스템을 구현하는 상호작용 컴포넌트 세트를 포함하는 컴포넌트 인프라스트럭처를 포함하고, 이 인프라스트럭처는:
AV의 동작을 위한 기능을 수행하는 제1 컴포넌트;
제1 소프트웨어 컴포넌트와 동시에 AV의 동작을 위한 제1 기능을 수행하는 제2 컴포넌트;
제1 컴포넌트로부터의 제1 출력을 제2 컴포넌트로부터의 제2 출력과 조합하거나 비교함으로써 AV의 동작 환경의 모델을 생성하고;
동작 환경의 모델에 기초하여 AV에 대해 기능을 수행하기 위해 동작 모드를 개시하도록 구성된 인지 회로를 포함하는, 시스템.
항목 216. 항목 215에 있어서, 기능은 인지이고, 제1 컴포넌트는 조밀한 자유 공간 검출을 구현하고, 제2 컴포넌트는 대상체 기반 검출 및 추적을 구현하는, 시스템.
항목 217. 항목 216에 있어서, 조밀한 자유 공간 검출은 조밀한 LiDAR(light detection and ranging) 센서의 출력 및 하나 이상의 스테레오 또는 모노 카메라로부터의 리던던트 측정을 사용하는, 시스템.
항목 218. 항목 216에 있어서, 조밀한 자유 공간 검출은 센서 데이터 융합을 사용하는, 시스템.
항목 219. 항목 216에 있어서, 센서 데이터 융합은 스테레오 카메라 깊이 데이터와 함께 LiDAR(ight detection and ranging) 출력을 사용하는, 시스템.
항목 220. 항목 218에 있어서, 센서 데이터 융합은 하나 이상의 모노 카메라에 결합된 자유 공간 신경 네트워크의 출력과 함께 LiDAR(light detection and ranging) 출력을 사용하는, 시스템.
항목 221. 항목 216에 있어서, 대상체 기반 검출 및 추적은 하나 이상의 360° 모노 카메라 및 하나 이상의 RADAR로부터의 측정을 사용하는, 시스템.
항목 222. 항목 216에 있어서, 대상체 기반 검출 및 추적은 대상체를 추적하기 위한 다중 모델 대상체 추적기와 함께 대상체를 분류하기 위한 신경 네트워크 분류기를 사용하는, 시스템.
항목 223. 항목 216에 있어서, 대상체 기반 검출 및 추적은 대상체를 추적하기 위한 신경 네트워크와 함께 대상체를 분류하기 위한 신경 네트워크를 사용하는, 시스템.
항목 224. 항목 215에 있어서, 인지 회로는:
제1 컴포넌트의 출력과 제2 컴포넌트의 출력을 비교하고;
제1 컴포넌트 또는 제2 컴포넌트의 고장을 검출하며;
고장을 검출하는 것에 따라, 다른 컴포넌트를 배타적으로 사용하여 AV에 대한 기능을 제공하도록 구성되는, 시스템.
항목 225. 항목 215에 있어서, 인지 회로는:
제1 컴포넌트의 출력과 제2 컴포넌트의 출력을 비교하고;
비교에 따라, 제1 컴포넌트로 하여금 제2 컴포넌트에 대한 안전성 검사를 제공하게 하거나 또는 제2 컴포넌트로 하여금 제1 컴포넌트에 대한 안전성 검사를 제공하게 하도록 구성되는, 시스템.

Claims (23)

  1. 자율 주행 차량으로서,
    상기 자율 주행 차량이 동작 운전 상태에 있는 동안 상기 자율 주행 차량 외부의 하나 이상의 환경 입력으로부터 제1 센서 데이터 스트림을 생성하도록 구성된 제1 센서;
    상기 자율 주행 차량이 상기 동작 운전 상태에 있는 동안 상기 자율 주행 차량 외부의 상기 하나 이상의 환경 입력으로부터 제2 센서 데이터 스트림을 생성하도록 구성된 제2 센서 - 상기 제1 센서와 상기 제2 센서는 동일한 유형의 정보를 검출하도록 구성됨 -; 및
    상기 제1 센서 및 상기 제2 센서와 결합된 프로세서 - 상기 프로세서는 상기 제1 센서 데이터 스트림과 상기 제2 센서 데이터 스트림 사이의 차이에 기초하여 비정상 조건을 검출하도록 구성되고, 상기 프로세서는 상기 비정상 조건의 검출에 응답하여 상기 자율 주행 차량을 제어하기 위한 입력으로서 상기 제1 센서, 상기 제2 센서, 또는 둘 모두 간에 전환하도록 구성됨 -
    를 포함하는, 자율 주행 차량.
  2. 제1항에 있어서,
    상기 프로세서는 샘플링 시간 윈도우에 걸쳐 상기 제1 센서 데이터 스트림 내에서 제1 데이터 값 세트를 캡처하도록 구성되고, 상기 프로세서는 상기 샘플링 시간 윈도우에 걸쳐 상기 제2 센서 데이터 스트림 내에서 제2 데이터 값 세트를 캡처하도록 구성되며, 상기 프로세서는 상기 제1 데이터 값 세트와 상기 제2 데이터 값 세트 사이의 편차를 결정함으로써 상기 비정상 조건을 검출하도록 구성되는 것인, 자율 주행 차량.
  3. 제2항에 있어서,
    상기 프로세서는 운전 조건에 응답하여 상기 샘플링 시간 윈도우의 지속기간을 제어하도록 구성되는 것인, 자율 주행 차량.
  4. 제2항에 있어서,
    상기 샘플링 시간 윈도우의 지속기간은 미리 결정되는 것인, 자율 주행 차량.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 프로세서는 상기 제1 센서 데이터 스트림의 제1 샘플 및 상기 제2 센서 데이터 스트림의 제2 샘플에 기초하여 상기 차이를 결정하도록 구성되고, 상기 제1 샘플 및 상기 제2 샘플은 동일한 시간 인덱스에 대응하는 것인, 자율 주행 차량.
  6. 제5항에 있어서,
    상기 프로세서는 상기 차이가 미리 결정된 임계치를 초과하는 것에 기초하여 상기 비정상 조건을 검출하도록 구성되는 것인, 자율 주행 차량.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 프로세서는 상기 제1 센서 데이터 스트림 내에서의 누락된 샘플의 검출에 기초하여 상기 차이를 결정하도록 구성되는 것인, 자율 주행 차량.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 제1 센서와 상기 제2 센서는 하나 이상의 상이한 센서 특성을 사용하여 상기 동일한 유형의 정보를 검출하는 것인, 자율 주행 차량.
  9. 제8항에 있어서,
    상기 제1 센서는 상기 비정상 조건과 연관되고, 상기 프로세서는, 상기 비정상 조건의 검출에 응답하여, 상기 제2 센서 데이터 스트림의 변환을 수행하여 상기 제1 센서 데이터 스트림의 대체 버전을 생성하도록 구성되는 것인, 자율 주행 차량.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 제2 센서는 상기 제1 센서의 리던던트 버전인 것인, 자율 주행 차량.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    상기 프로세서는, 상기 비정상 조건의 검출에 응답하여, 상기 비정상 조건을 해결하기 위해 상기 제1 센서, 상기 제2 센서 또는 둘 모두에 대해 진단 루틴을 수행하도록 구성되는 것인, 자율 주행 차량.
  12. 자율 주행 차량을 동작시키는 방법으로서,
    제1 센서를 통해, 상기 자율 주행 차량이 동작 운전 상태에 있는 동안 상기 자율 주행 차량 외부의 하나 이상의 환경 입력으로부터 제1 센서 데이터 스트림을 생성하는 단계;
    제2 센서를 통해, 상기 자율 주행 차량이 상기 동작 운전 상태에 있는 동안 상기 자율 주행 차량 외부의 상기 하나 이상의 환경 입력으로부터 제2 센서 데이터 스트림을 생성하는 단계 - 상기 제1 센서와 상기 제2 센서는 동일한 유형의 정보를 검출하도록 구성됨 -;
    상기 제1 센서 데이터 스트림과 상기 제2 센서 데이터 스트림 사이의 차이에 기초하여 비정상 조건을 검출하는 단계; 및
    상기 검출된 비정상 조건에 응답하여 상기 자율 주행 차량을 제어하기 위한 입력으로서 상기 제1 센서, 상기 제2 센서, 또는 둘 모두 간에 전환하는 단계
    를 포함하는, 방법.
  13. 제12항에 있어서,
    샘플링 시간 윈도우에 걸쳐 상기 제1 센서 데이터 스트림 내에서 제1 데이터 값 세트를 캡처하는 단계; 및
    상기 샘플링 시간 윈도우에 걸쳐 상기 제2 센서 데이터 스트림 내에서 제2 데이터 값 세트를 캡처하는 단계
    를 포함하고,
    상기 비정상 조건을 검출하는 단계는 상기 제1 데이터 값 세트와 상기 제2 데이터 값 세트 사이의 편차를 결정하는 단계를 포함하는 것인, 방법.
  14. 제13항에 있어서,
    운전 조건에 응답하여 상기 샘플링 시간 윈도우의 지속기간을 제어하는 단계
    를 포함하는, 방법.
  15. 제13항에 있어서,
    상기 샘플링 시간 윈도우의 지속기간은 미리 결정되는 것인, 방법.
  16. 제12항 내지 제15항 중 어느 한 항에 있어서,
    상기 차이는 상기 제1 센서 데이터 스트림의 제1 샘플 및 상기 제2 센서 데이터 스트림의 제2 샘플에 기초하고, 상기 제1 샘플 및 상기 제2 샘플은 동일한 시간 인덱스에 대응하는 것인, 방법.
  17. 제16항에 있어서,
    상기 비정상 조건을 검출하는 단계는 상기 차이가 미리 결정된 임계치를 초과하는지 여부를 결정하는 단계를 포함하는 것인, 방법.
  18. 제12항 내지 제17항 중 어느 한 항에 있어서,
    상기 차이는 상기 제1 센서 데이터 스트림 내에서의 누락된 샘플의 검출에 기초하는 것인, 방법.
  19. 제12항 내지 제18항 중 어느 한 항에 있어서,
    상기 제1 센서와 상기 제2 센서는 하나 이상의 상이한 센서 특성을 사용하여 상기 동일한 유형의 정보를 검출하는 것인, 방법.
  20. 제19항에 있어서,
    상기 비정상 조건의 검출에 응답하여, 상기 제2 센서 데이터 스트림의 변환을 수행하여 상기 제1 센서 데이터 스트림의 대체 버전을 생성하는 단계 - 상기 제1 센서는 상기 비정상 조건과 연관됨 -
    를 포함하는, 방법.
  21. 제12항 내지 제20항 중 어느 한 항에 있어서,
    상기 제2 센서는 상기 제1 센서의 리던던트 버전인 것인, 방법.
  22. 제12항 내지 제21항 중 어느 한 항에 있어서,
    상기 비정상 조건의 검출에 응답하여, 상기 비정상 조건을 해결하기 위해 상기 제1 센서, 상기 제2 센서 또는 둘 모두에 대해 진단 루틴을 수행하는 단계
    를 포함하는, 방법.
  23. 하나 이상의 컴퓨팅 디바이스에 의해 실행될 때, 제12항 내지 제22항 중 어느 한 항의 방법을 수행하게 하는 명령을 저장하는 하나 이상의 비-일시적 저장 매체.
KR1020207034459A 2018-10-30 2019-10-30 자율 주행 차량에서의 리던던시 KR20210006926A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237005763A KR20230030029A (ko) 2018-10-30 2019-10-30 자율 주행 차량에서의 리던던시

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862752447P 2018-10-30 2018-10-30
US62/752,447 2018-10-30
PCT/US2019/058949 WO2020092635A1 (en) 2018-10-30 2019-10-30 Redundancy in autonomous vehicles

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237005763A Division KR20230030029A (ko) 2018-10-30 2019-10-30 자율 주행 차량에서의 리던던시

Publications (1)

Publication Number Publication Date
KR20210006926A true KR20210006926A (ko) 2021-01-19

Family

ID=70464217

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207034459A KR20210006926A (ko) 2018-10-30 2019-10-30 자율 주행 차량에서의 리던던시
KR1020237005763A KR20230030029A (ko) 2018-10-30 2019-10-30 자율 주행 차량에서의 리던던시

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020237005763A KR20230030029A (ko) 2018-10-30 2019-10-30 자율 주행 차량에서의 리던던시

Country Status (7)

Country Link
US (1) US20210163021A1 (ko)
KR (2) KR20210006926A (ko)
CN (1) CN112969622A (ko)
DE (1) DE112019005425T5 (ko)
DK (1) DK202070218A1 (ko)
GB (5) GB2613298B (ko)
WO (1) WO2020092635A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4089499A1 (en) * 2021-05-11 2022-11-16 Toyota Jidosha Kabushiki Kaisha Autonomous driving system, autonomous driving control method, and non-transitory storage medium

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11216007B2 (en) * 2018-07-16 2022-01-04 Phantom Auto Inc. Normalization of intelligent transport system handling characteristics
US11466998B1 (en) 2019-02-15 2022-10-11 State Farm Mutual Automobile Insurance Company Systems and methods for dynamically generating optimal routes for management of multiple vehicles
US11466997B1 (en) 2019-02-15 2022-10-11 State Fram Mutual Automobile Insurance Company Systems and methods for dynamically generating optimal routes for vehicle operation management
US11560153B2 (en) * 2019-03-07 2023-01-24 6 River Systems, Llc Systems and methods for collision avoidance by autonomous vehicles
DE102019107443A1 (de) * 2019-03-22 2020-09-24 Robert Bosch Gmbh Verfahren und Vorrichtung zum Betrieb eines Roboters mit verbesserter Objektdetektion
WO2020202380A1 (ja) * 2019-03-29 2020-10-08 本田技研工業株式会社 制御装置、制御方法及びプログラム
US20220204003A1 (en) * 2019-05-07 2022-06-30 Kontrol Gmbh Formal Verification for the Development and Real-Time Application of Autonomous Systems
AT522167B1 (de) * 2019-06-13 2020-09-15 Avl List Gmbh Verfahren und Vorrichtung zur vorausschauenden Fahrzeugkontrolle
CN112114840B (zh) * 2019-06-21 2023-01-06 华为技术有限公司 软件升级方法、装置及系统
US11549815B2 (en) * 2019-06-28 2023-01-10 GM Cruise Holdings LLC. Map change detection
JP2021015565A (ja) * 2019-07-16 2021-02-12 トヨタ自動車株式会社 車両制御装置
US11392122B2 (en) 2019-07-29 2022-07-19 Waymo Llc Method for performing a vehicle assist operation
US11301700B2 (en) * 2019-08-22 2022-04-12 Wipro Limited System and method for safely parking an autonomous vehicle on sensor anomaly
US11900244B1 (en) * 2019-09-30 2024-02-13 Amazon Technologies, Inc. Attention-based deep reinforcement learning for autonomous agents
US11619942B2 (en) * 2019-10-15 2023-04-04 Robert Bosch Gmbh Controlling an autonomous vehicle when the autonomous vehicle is outside of its operational design domain
US11370419B2 (en) * 2019-11-13 2022-06-28 Robert Bosch Gmbh Use of driver assistance collision mitigation systems with autonomous driving systems
KR20210066984A (ko) * 2019-11-28 2021-06-08 현대자동차주식회사 자율 발렛 주차를 지원하는 시스템 및 방법, 그리고 이를 위한 인프라 및 차량
DE102019218718B4 (de) * 2019-12-02 2023-11-16 Volkswagen Aktiengesellschaft Steuerungssystem zur Steuerung eines Betriebs eines selbstfahrenden Fahrzeugs sowie Kraftfahrzeug
CN115280388A (zh) * 2019-12-23 2022-11-01 上海诺基亚贝尔股份有限公司 虚拟动态编队
KR20210095359A (ko) * 2020-01-23 2021-08-02 엘지전자 주식회사 로봇, 로봇의 제어 방법 및 로봇을 제어하기 위한 서버
US20210232913A1 (en) * 2020-01-27 2021-07-29 Honda Motor Co., Ltd. Interpretable autonomous driving system and method thereof
JP7234967B2 (ja) * 2020-02-17 2023-03-08 トヨタ自動車株式会社 衝突回避支援装置
US11661895B2 (en) * 2020-02-24 2023-05-30 General Electric Comapny Autonomous safety mode for distributed control of turbomachines
US11644846B2 (en) * 2020-03-31 2023-05-09 GM Cruise Holdings LLC. System and method for real-time lane validation
US11210869B2 (en) 2020-03-31 2021-12-28 Calpro Adas Solutions, Llc Vehicle safety feature identification and calibration
US11453409B2 (en) * 2020-04-21 2022-09-27 Baidu Usa Llc Extended model reference adaptive control algorithm for the vehicle actuation time-latency
KR20210138201A (ko) * 2020-05-11 2021-11-19 현대자동차주식회사 자율 주행 제어 방법 및 장치
CN111762179B (zh) * 2020-05-11 2022-07-12 广州文远知行科技有限公司 车辆控制方法、装置、车辆和计算机可读存储介质
DE102020206168A1 (de) * 2020-05-15 2021-11-18 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Lokalisieren eines Fahrzeugs in Relation zu einem Umfeldmodell um eine Fahrtrajektorie
WO2021233552A1 (de) * 2020-05-22 2021-11-25 Tsu Gmbh Gesellschaft Für Technik, Sicherheit Und Umweltschutz Mbh Redundante steuerlogik für sicherheitskritische automatisierungssysteme auf der basis künstlicher neuronaler netze
US11352023B2 (en) 2020-07-01 2022-06-07 May Mobility, Inc. Method and system for dynamically curating autonomous vehicle policies
US11644835B2 (en) * 2020-07-29 2023-05-09 Toyota Research Institute, Inc. Game-theoretic planning for risk-aware interactive agents
US11643082B2 (en) * 2020-08-05 2023-05-09 Toyota Motor Engineering & Manufacturing North America, Inc. Systems and methods for determining real-time lane level snow accumulation
US20230022896A1 (en) * 2020-08-10 2023-01-26 Jun Luo System and method for managing flexible control of vehicles by diverse agents in autonomous driving simulation
US11713979B2 (en) * 2020-08-27 2023-08-01 Here Global B.V. Method, apparatus, and computer program product for generating a transition variability index related to autonomous driving
US11691643B2 (en) 2020-08-27 2023-07-04 Here Global B.V. Method and apparatus to improve interaction models and user experience for autonomous driving in transition regions
US11687094B2 (en) 2020-08-27 2023-06-27 Here Global B.V. Method, apparatus, and computer program product for organizing autonomous vehicles in an autonomous transition region
US11610412B2 (en) * 2020-09-18 2023-03-21 Ford Global Technologies, Llc Vehicle neural network training
DE102020212035A1 (de) * 2020-09-24 2022-03-24 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren, Datenverarbeitungsmodul und Datenverarbeitungsnetzwerk zur Verarbeitung von Daten
US11386776B2 (en) 2020-10-05 2022-07-12 Qualcomm Incorporated Managing a driving condition anomaly
CN112434564B (zh) * 2020-11-04 2023-06-27 北方工业大学 公交车内异常聚集行为的检测系统
CN112347906B (zh) * 2020-11-04 2023-06-27 北方工业大学 公交车内异常聚集行为的检测方法
US11807259B2 (en) * 2020-11-30 2023-11-07 Nuro, Inc. Hardware systems for an autonomous vehicle
US11199404B1 (en) * 2020-12-09 2021-12-14 Baker Hughes Holdings Llc Camera triggering and multi-camera photogrammetry
US11827243B2 (en) * 2020-12-13 2023-11-28 Pony Ai Inc. Automated vehicle safety response methods and corresponding vehicle safety systems with serial-parallel computing architectures
JP2023553980A (ja) 2020-12-14 2023-12-26 メイ モビリティー,インコーポレイテッド 自律車両安全プラットフォームシステム及び方法
US20220196830A1 (en) * 2020-12-17 2022-06-23 Aptiv Technologies Limited Vehicle Routing Based on Availability of Radar-Localization Objects
US11738777B2 (en) 2020-12-21 2023-08-29 Zoox, Inc. Dynamic autonomous control engagement
US11912302B2 (en) * 2020-12-21 2024-02-27 Zoox, Inc. Autonomous control engagement
WO2022144959A1 (ja) * 2020-12-28 2022-07-07 本田技研工業株式会社 車両制御装置、車両システム、車両制御方法、およびプログラム
US11708066B2 (en) * 2021-01-21 2023-07-25 Motional Ad Llc Road surface condition guided decision making and prediction
US20220281478A1 (en) * 2021-03-02 2022-09-08 Steering Solutions Ip Holding Corporation Motion monitoring safety diagnostic for the detection of erroneous autonomous motion requests
EP4063222A1 (en) * 2021-03-24 2022-09-28 Zenseact AB Precautionary vehicle path planning
US20220306119A1 (en) * 2021-03-25 2022-09-29 Ford Global Technologies, Llc Location-based vehicle operation
US11472436B1 (en) 2021-04-02 2022-10-18 May Mobility, Inc Method and system for operating an autonomous agent with incomplete environmental information
US11639180B1 (en) * 2021-06-30 2023-05-02 Gm Cruise Holdings Llc Notifications from an autonomous vehicle to a driver
CN113386796A (zh) * 2021-07-08 2021-09-14 北京三快在线科技有限公司 无人车控制方法、装置、系统、存储介质及电子设备
US20230029093A1 (en) * 2021-07-20 2023-01-26 Nissan North America, Inc. Computing Framework for Vehicle Decision Making and Traffic Management
DE102021208005A1 (de) 2021-07-26 2023-01-26 Robert Bosch Gesellschaft mit beschränkter Haftung Verarbeitung von Satellitendaten zum Erweitern oder Vervollständigen von Messdaten
CN113370721B (zh) * 2021-07-29 2023-06-20 中国人民解放军国防科技大学 三轴无人车应对野外特种任务的控制策略及系统
US11851074B2 (en) * 2021-08-25 2023-12-26 Cyngn, Inc. System and method of large-scale autonomous driving validation
DE102021211257A1 (de) 2021-10-06 2023-04-06 Zf Friedrichshafen Ag Angriffen auf ein künstliches neuronales Netzwerk vorbeugen
CN113885330B (zh) * 2021-10-26 2022-06-17 哈尔滨工业大学 一种基于深度强化学习的信息物理系统安全控制方法
CN113895451B (zh) * 2021-10-27 2023-07-18 东风汽车集团股份有限公司 一种基于自动驾驶系统的安全冗余与故障诊断系统及方法
US11880428B2 (en) 2021-11-12 2024-01-23 Toyota Motor Engineering & Manufacturing North America, Inc. Methods and systems for updating perception models based on geolocation features
EP4198573A1 (en) * 2021-12-14 2023-06-21 Tusimple, Inc. System and method for detecting rainfall for an autonomous vehicle
US20230182772A1 (en) * 2021-12-14 2023-06-15 Zoox, Inc. Autonomous vehicle operations related to detection of an unsafe passenger pickup/delivery condition
CN114132337B (zh) * 2021-12-31 2024-03-26 阿维塔科技(重庆)有限公司 车辆的故障管理方法、装置以及车辆
WO2023154568A1 (en) 2022-02-14 2023-08-17 May Mobility, Inc. Method and system for conditional operation of an autonomous agent
US11959760B2 (en) * 2022-02-21 2024-04-16 Motional Ad Llc Passenger preference route and alternative destination estimator
CN116767264A (zh) * 2022-03-09 2023-09-19 北京图森智途科技有限公司 具有传感器冗余的车辆
US20230350354A1 (en) * 2022-04-28 2023-11-02 Woven By Toyota, Inc. Method of optimizing execution of a function on a control system and apparatus for the same
US11810459B1 (en) 2022-05-09 2023-11-07 Aptiv Technologies Limited Vehicle localization based on radar detections in garages
US20240062478A1 (en) * 2022-08-15 2024-02-22 Middle Chart, LLC Spatial navigation to digital content
CN115610346B (zh) * 2022-09-29 2024-04-12 重庆赛力斯凤凰智创科技有限公司 汽车风险控制方法、汽车、计算机设备和存储介质

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4594714A (en) * 1983-05-02 1986-06-10 United Technologies Corporation Dual-actuator monitor
US6493618B2 (en) * 2000-03-15 2002-12-10 Toyota Jidosha Kabushiki Kaisha Vehicle control using multiple sensors
US20100019964A1 (en) * 2008-07-24 2010-01-28 Gm Global Technology Operations, Inc. Adaptive vehicle control system with driving style recognition and road condition recognition
DE112011102158A5 (de) * 2010-06-28 2013-05-02 Schaeffler Technologies AG & Co. KG Verfahren zur Erkennung der Anwesenheit eines Fahrers in einem Kraftfahrzeug
EP2628057A1 (en) * 2010-10-11 2013-08-21 General Electric Company Systems, methods, and apparatus for detecting shifts in redundant sensor signals
WO2012050473A1 (en) * 2010-10-11 2012-04-19 General Electric Company Systems, methods, and apparatus for detecting agreement for individual channels among redundant sensor signals
JP5149416B2 (ja) * 2011-04-06 2013-02-20 ファナック株式会社 ロボットの異常検出機能を有するロボットシステム及びその制御方法
US9349234B2 (en) * 2012-03-14 2016-05-24 Autoconnect Holdings Llc Vehicle to vehicle social and business communications
US10692370B2 (en) * 2014-03-03 2020-06-23 Inrix, Inc. Traffic obstruction detection
EP3127403B8 (en) * 2014-04-04 2019-04-10 Signify Holding B.V. System and methods to support autonomous vehicles via environmental perception and sensor calibration and verification
SG10201407100PA (en) * 2014-10-30 2016-05-30 Nec Asia Pacific Pte Ltd System For Monitoring Event Related Data
JP6419302B2 (ja) * 2015-02-27 2018-11-07 株式会社フジクラ センサノード、及びセンサノードの制御方法
US9785145B2 (en) * 2015-08-07 2017-10-10 International Business Machines Corporation Controlling driving modes of self-driving vehicles
EP3356899B1 (en) * 2015-09-28 2021-12-29 Uatc, Llc Method of operating an autonomous vehicle having independent auxiliary control unit
US9988008B2 (en) * 2015-10-26 2018-06-05 Active Knowledge Ltd. Moveable internal shock-absorbing energy dissipation padding in an autonomous vehicle
US9630619B1 (en) * 2015-11-04 2017-04-25 Zoox, Inc. Robotic vehicle active safety systems and methods
US9632502B1 (en) * 2015-11-04 2017-04-25 Zoox, Inc. Machine-learning systems and techniques to optimize teleoperation and/or planner decisions
US9916703B2 (en) * 2015-11-04 2018-03-13 Zoox, Inc. Calibration for autonomous vehicle operation
JP6723530B2 (ja) * 2015-12-29 2020-07-15 華為技術有限公司Huawei Technologies Co.,Ltd. 切り替え方法およびポータブル電子デバイス
US10410113B2 (en) * 2016-01-14 2019-09-10 Preferred Networks, Inc. Time series data adaptation and sensor fusion systems, methods, and apparatus
US9883403B2 (en) * 2016-05-15 2018-01-30 Fmr Llc Monitoring presence of authorized user during user session based upon mobile computing device motion
US10007264B2 (en) * 2016-07-14 2018-06-26 Baidu Usa Llc Autonomous vehicle human driver takeover mechanism using electrodes
AT519164A3 (de) * 2016-08-16 2018-10-15 Fts Computertechnik Gmbh Fehlertolerantes Verfahren und Vorrichtung zur Steuerung einer autonomen technischen Anlage auf der Basis eines konsolidierten Umweltmodells
DE102017216083B4 (de) * 2016-09-13 2023-08-17 Hl Klemove Corp. Vorrichtung und Verfahren zur Stoßabsorption für ein Fahrzeug
EP3805889A1 (en) * 2016-12-23 2021-04-14 Mobileye Vision Technologies Ltd. Navigational system monitoring host and target vehicle behaviour
WO2018170074A1 (en) * 2017-03-14 2018-09-20 Starsky Robotics, Inc. Vehicle sensor system and method of use
US10479376B2 (en) * 2017-03-23 2019-11-19 Uatc, Llc Dynamic sensor selection for self-driving vehicles
US11377108B2 (en) * 2017-04-03 2022-07-05 Motional Ad Llc Processing a request signal regarding operation of an autonomous vehicle
US10526992B2 (en) * 2017-04-05 2020-01-07 GM Global Technology Operations LLC Method and system to detect and mitigate sensor degradation
US10883436B2 (en) * 2017-04-12 2021-01-05 GM Global Technology Operations LLC Method and system to control propulsion systems having sensor or actuator degradation
DE102017206485A1 (de) * 2017-04-18 2018-10-18 Robert Bosch Gmbh Vorrichtung und Verfahren zur Steuerung eines Fahrzeugs
JP6841162B2 (ja) * 2017-05-25 2021-03-10 株式会社デンソー 電子制御装置
JP6848769B2 (ja) * 2017-08-29 2021-03-24 トヨタ自動車株式会社 車載中継装置、情報処理システム、中継装置、情報処理方法、及びプログラム
IL308640A (en) * 2018-03-18 2024-01-01 Driveu Tech Ltd Device, system and method for autonomous driving and remotely controlled vehicles
WO2019189525A1 (ja) * 2018-03-27 2019-10-03 パナソニックIpマネジメント株式会社 自動運転制御装置、車両およびデマンド調停システム
US20220194412A1 (en) * 2020-12-18 2022-06-23 Lyft, Inc. Validating Vehicle Sensor Calibration

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4089499A1 (en) * 2021-05-11 2022-11-16 Toyota Jidosha Kabushiki Kaisha Autonomous driving system, autonomous driving control method, and non-transitory storage medium

Also Published As

Publication number Publication date
GB202017386D0 (en) 2020-12-16
WO2020092635A1 (en) 2020-05-07
GB2587275A (en) 2021-03-24
DK202070218A1 (en) 2020-07-13
GB2613740B (en) 2023-12-06
GB202303553D0 (en) 2023-04-26
DE112019005425T5 (de) 2021-07-22
GB2613298A (en) 2023-05-31
GB2613509A (en) 2023-06-07
GB2610938B (en) 2023-09-06
GB2613509B (en) 2023-11-22
GB202303756D0 (en) 2023-04-26
GB2613740A (en) 2023-06-14
GB2610938A (en) 2023-03-22
US20210163021A1 (en) 2021-06-03
GB202303153D0 (en) 2023-04-19
GB202213300D0 (en) 2022-10-26
KR20230030029A (ko) 2023-03-03
CN112969622A (zh) 2021-06-15
GB2587275B (en) 2022-10-26
GB2613298B (en) 2023-12-20

Similar Documents

Publication Publication Date Title
KR20210006926A (ko) 자율 주행 차량에서의 리던던시
CN111915917B (zh) 计算机实现的方法、存储介质和运载工具
US11827241B2 (en) Adjusting lateral clearance for a vehicle using a multi-dimensional envelope
KR20200126935A (ko) 센서 고장에 대한 자율 주행 차량 대응방안을 구현하기 위한 시스템 및 방법
US11945440B2 (en) Data driven rule books
CN113313936A (zh) 用于运载工具的交通灯检测系统
KR20210055617A (ko) 미리 계산되거나 동적으로 생성된 궤적 뱅크로부터의 궤적 예측
US11568688B2 (en) Simulation of autonomous vehicle to improve safety and reliability of autonomous vehicle
CN113044025A (zh) 用于运载工具的安全系统
US20220289198A1 (en) Automated emergency braking system
KR20220054534A (ko) 거동 규칙 검사를 사용한 차량 작동
KR20200138673A (ko) 속력 프로파일 추정
US20220234589A1 (en) Surface guided vehicle behavior
GB2598804A (en) Managing power of electronic devices on a vehicle
US11926342B2 (en) Autonomous vehicle post-action explanation system
US20220289199A1 (en) Brake arbitration
US20220097725A1 (en) Av path planning with calibration information
EP4309040A1 (en) Real time integrity check of gpu accelerated neural network

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
E601 Decision to refuse application
AMND Amendment
X601 Decision of rejection after re-examination
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL NUMBER: 2023101000355; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20230217

Effective date: 20230607