KR102542970B1 - 데이터 기반 규칙 북 - Google Patents

데이터 기반 규칙 북 Download PDF

Info

Publication number
KR102542970B1
KR102542970B1 KR1020220097929A KR20220097929A KR102542970B1 KR 102542970 B1 KR102542970 B1 KR 102542970B1 KR 1020220097929 A KR1020220097929 A KR 1020220097929A KR 20220097929 A KR20220097929 A KR 20220097929A KR 102542970 B1 KR102542970 B1 KR 102542970B1
Authority
KR
South Korea
Prior art keywords
vehicle
autonomous vehicle
driving
computer system
data
Prior art date
Application number
KR1020220097929A
Other languages
English (en)
Other versions
KR20220112742A (ko
Inventor
안드레아 센시
코스티안틴 슬럿스키
아스바사만 아샤 데비
추아 저 쉬안
지리앙 천
Original Assignee
모셔널 에이디 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 모셔널 에이디 엘엘씨 filed Critical 모셔널 에이디 엘엘씨
Publication of KR20220112742A publication Critical patent/KR20220112742A/ko
Priority to KR1020230073411A priority Critical patent/KR20230085127A/ko
Application granted granted Critical
Publication of KR102542970B1 publication Critical patent/KR102542970B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/01Detecting movement of traffic to be counted or controlled
    • G08G1/0104Measuring and analyzing of parameters relative to traffic conditions
    • G08G1/0125Traffic data processing
    • G08G1/0133Traffic data processing for classifying traffic situation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60KARRANGEMENT OR MOUNTING OF PROPULSION UNITS OR OF TRANSMISSIONS IN VEHICLES; ARRANGEMENT OR MOUNTING OF PLURAL DIVERSE PRIME-MOVERS IN VEHICLES; AUXILIARY DRIVES FOR VEHICLES; INSTRUMENTATION OR DASHBOARDS FOR VEHICLES; ARRANGEMENTS IN CONNECTION WITH COOLING, AIR INTAKE, GAS EXHAUST OR FUEL SUPPLY OF PROPULSION UNITS IN VEHICLES
    • B60K35/00Instruments specially adapted for vehicles; Arrangement of instruments in or on vehicles
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60KARRANGEMENT OR MOUNTING OF PROPULSION UNITS OR OF TRANSMISSIONS IN VEHICLES; ARRANGEMENT OR MOUNTING OF PLURAL DIVERSE PRIME-MOVERS IN VEHICLES; AUXILIARY DRIVES FOR VEHICLES; INSTRUMENTATION OR DASHBOARDS FOR VEHICLES; ARRANGEMENTS IN CONNECTION WITH COOLING, AIR INTAKE, GAS EXHAUST OR FUEL SUPPLY OF PROPULSION UNITS IN VEHICLES
    • B60K35/00Instruments specially adapted for vehicles; Arrangement of instruments in or on vehicles
    • B60K35/20Output arrangements, i.e. from vehicle to user, associated with vehicle functions or specially adapted therefor
    • B60K35/21Output arrangements, i.e. from vehicle to user, associated with vehicle functions or specially adapted therefor using visual output, e.g. blinking lights or matrix displays
    • B60K35/22Display screens
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60KARRANGEMENT OR MOUNTING OF PROPULSION UNITS OR OF TRANSMISSIONS IN VEHICLES; ARRANGEMENT OR MOUNTING OF PLURAL DIVERSE PRIME-MOVERS IN VEHICLES; AUXILIARY DRIVES FOR VEHICLES; INSTRUMENTATION OR DASHBOARDS FOR VEHICLES; ARRANGEMENTS IN CONNECTION WITH COOLING, AIR INTAKE, GAS EXHAUST OR FUEL SUPPLY OF PROPULSION UNITS IN VEHICLES
    • B60K35/00Instruments specially adapted for vehicles; Arrangement of instruments in or on vehicles
    • B60K35/20Output arrangements, i.e. from vehicle to user, associated with vehicle functions or specially adapted therefor
    • B60K35/28Output arrangements, i.e. from vehicle to user, associated with vehicle functions or specially adapted therefor characterised by the type of the output information, e.g. video entertainment or vehicle dynamics information; characterised by the purpose of the output information, e.g. for attracting the attention of the driver
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
    • B60W30/10Path keeping
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
    • B60W30/18Propelling the vehicle
    • B60W30/18009Propelling the vehicle related to particular drive situations
    • B60W30/18154Approaching an intersection
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
    • B60W30/18Propelling the vehicle
    • B60W30/18009Propelling the vehicle related to particular drive situations
    • B60W30/18159Traversing an intersection
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
    • B60W30/18Propelling the vehicle
    • B60W30/18009Propelling the vehicle related to particular drive situations
    • B60W30/18163Lane change; Overtaking manoeuvres
    • 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
    • B60W40/04Traffic 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
    • 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/08Estimation 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 drivers or passengers
    • B60W40/09Driving style or behaviour
    • 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/08Interaction between the driver and the control system
    • B60W50/14Means for informing the driver, warning the driver or prompting a driver intervention
    • 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/0013Planning or execution of driving tasks specially adapted for occupant comfort
    • 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
    • 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/005Handover processes
    • B60W60/0051Handover processes from occupants to vehicle
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0055Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots with safety arrangements
    • G05D1/0061Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots with safety arrangements for transition from automatic pilot to manual pilot and vice versa
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0214Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/60Intended control result
    • G05D1/617Safety or protection, e.g. defining protection zones around obstacles or avoiding hazards
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/80Arrangements for reacting to or preventing system or operator failure
    • G05D1/81Handing over between on-board automatic and on-board manual control
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/01Detecting movement of traffic to be counted or controlled
    • G08G1/0104Measuring and analyzing of parameters relative to traffic conditions
    • G08G1/0108Measuring and analyzing of parameters relative to traffic conditions based on the source of data
    • G08G1/0112Measuring and analyzing of parameters relative to traffic conditions based on the source of data from the vehicle, e.g. floating car data [FCD]
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/01Detecting movement of traffic to be counted or controlled
    • G08G1/0104Measuring and analyzing of parameters relative to traffic conditions
    • G08G1/0137Measuring and analyzing of parameters relative to traffic conditions for specific applications
    • G08G1/0145Measuring and analyzing of parameters relative to traffic conditions for specific applications for active traffic flow control
    • 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/0062Adapting control system settings
    • B60W2050/0063Manual parameter input, manual setting means, manual initialising or calibrating means
    • B60W2050/0064Manual parameter input, manual setting means, manual initialising or calibrating means using a remote, e.g. cordless, transmitter or receiver unit, e.g. remote keypad or mobile phone
    • 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/0062Adapting control system settings
    • B60W2050/0075Automatic parameter input, automatic initialising or calibrating means
    • 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/08Interaction between the driver and the control system
    • B60W50/14Means for informing the driver, warning the driver or prompting a driver intervention
    • B60W2050/146Display means
    • 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
    • B60W2400/00Indexing codes relating to detected, measured or calculated conditions or factors
    • 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
    • B60W2520/00Input parameters relating to overall vehicle dynamics
    • B60W2520/06Direction of travel
    • 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
    • B60W2540/00Input parameters relating to occupants
    • B60W2540/30Driving style
    • 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
    • B60W2554/00Input parameters relating to objects
    • B60W2554/40Dynamic objects, e.g. animals, windblown objects
    • B60W2554/404Characteristics
    • B60W2554/4042Longitudinal 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
    • B60W2554/00Input parameters relating to objects
    • B60W2554/80Spatial relation or speed relative to objects
    • B60W2554/801Lateral distance
    • 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
    • B60W2554/00Input parameters relating to objects
    • B60W2554/80Spatial relation or speed relative to objects
    • B60W2554/802Longitudinal distance
    • 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/60Traffic rules, e.g. speed limits or right of way
    • 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/05Big data
    • 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/10Historical data
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60YINDEXING SCHEME RELATING TO ASPECTS CROSS-CUTTING VEHICLE TECHNOLOGY
    • B60Y2300/00Purposes or special features of road vehicle drive control systems
    • B60Y2300/10Path keeping
    • B60Y2300/12Lane keeping
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60YINDEXING SCHEME RELATING TO ASPECTS CROSS-CUTTING VEHICLE TECHNOLOGY
    • B60Y2300/00Purposes or special features of road vehicle drive control systems
    • B60Y2300/18Propelling the vehicle
    • B60Y2300/18008Propelling the vehicle related to particular drive situations
    • B60Y2300/18158Approaching intersection
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60YINDEXING SCHEME RELATING TO ASPECTS CROSS-CUTTING VEHICLE TECHNOLOGY
    • B60Y2300/00Purposes or special features of road vehicle drive control systems
    • B60Y2300/18Propelling the vehicle
    • B60Y2300/18008Propelling the vehicle related to particular drive situations
    • B60Y2300/18166Overtaking, changing lanes

Landscapes

  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Chemical & Material Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Analytical Chemistry (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Combustion & Propulsion (AREA)
  • Game Theory and Decision Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Business, Economics & Management (AREA)
  • Medical Informatics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • Traffic Control Systems (AREA)

Abstract

본 개시는 자율 주행 차량이 도로 상에서 다양한 시나리오에 직면할 때 자율 주행 차량의 의사 결정을 돕기 위해 인간 운전 행동을 사용하기 위한 기술을 제공한다. 각각의 시나리오에 대해, 자율 주행 차량이 그 시나리오에서 어떻게 기동하는지를 좌우하는 모델이 인간 운전 행동에 기초하여 생성될 수 있다. 이 모델을 사용한 결과로서, 자율 주행 차량의 신뢰성과 안전성이 개선될 수 있다. 그에 부가하여, 모델이 자율 주행 차량에 프로그래밍되어 있기 때문에, 자율 주행 차량은, 많은 경우에, 운전 행동을 실시간으로 결정하기 위해 복잡한 계산을 구현하는 데 리소스를 소비할 필요가 없다.

Description

데이터 기반 규칙 북{DATA DRIVEN RULE BOOKS}
본 설명은 데이터 기반 규칙 북에 관한 것이다.
자율 주행 차량은, 예를 들어, 도로 사망자수, 교통 정체, 주차 혼잡을 감소시키는 것 및 연비를 개선시키는 것에 의해, 인간 운전 차량에 비해 이점이 있다. 운전 결정을 할 때, 전형적인 자율 주행 차량 시스템은 센서 데이터를 활용하여 차량의 환경에 있다고 자율 주행 차량 시스템이 알고 있는 주변 환경의 대상체 - 예컨대, 다른 차량 및 장애물 - 를 고려한다. 그렇지만, 자율 주행 차량 시스템은 인간 운전 행동에 대한 데이터를 사용하는 것으로부터 이득을 볼 수 있다.
일반적으로, 본 개시는 자율 주행 차량이 도로 상에서 다양한 시나리오에 직면할 때 자율 주행 차량의 의사 결정을 돕기 위해 인간 운전 행동을 사용하기 위한 기술을 제공한다. 더 구체적으로는, 본 개시는, 무엇보다도, 무통제 교통 교차로를 통과하여 운전하는 동안의, 주차된 차량을 추월하여 운전하고, 차도 무단 횡단자(jaywalker)의 존재 하에 운전하는 동안의 인간 행동을 모델링하기 위한 실시예를 논의한다.
이들 및 다른 양태, 특징, 및 실시예는 기능을 수행하기 위한 방법, 장치, 시스템, 컴포넌트, 프로그램 제품, 수단 또는 단계로서, 그리고 다른 방식으로 표현될 수 있으며, 청구항을 포함한, 이하의 설명으로부터 명백하게 될 것이다.
도 1은 자율 주행 능력을 갖는 자율 주행 차량(autonomous vehicle)의 일 예를 도시한다.
도 2는 예시적인 "클라우드" 컴퓨팅 환경을 예시한다.
도 3은 컴퓨터 시스템을 예시한다.
도 4는 자율 주행 차량에 대한 예시적인 아키텍처를 도시한다.
도 5는 인지 모듈에 의해 사용될 수 있는 입력 및 출력의 일 예를 도시한다.
도 6은 LiDAR 시스템의 일 예를 도시한다.
도 7은 동작 중인 LiDAR 시스템을 도시한다.
도 8은 LiDAR 시스템의 동작을 부가적으로 상세하게 도시한다.
도 9는 계획 모듈의 입력과 출력 사이의 관계의 블록 다이어그램을 도시한다.
도 10은 경로 계획에서 사용되는 방향 그래프를 도시한다.
도 11은 제어 모듈의 입력 및 출력의 블록 다이어그램을 도시한다.
도 12는 제어기의 입력, 출력, 및 컴포넌트의 블록 다이어그램을 도시한다.
도 13은 무통제 교통 교차로에서 합류하려고 시도하는 자율 주행 차량의 일 예를 예시한다.
도 14는 무통제 교통 교차로를 통과하여 운전하기 위한 자율 주행 차량 운전 모델을 생성하기 위해 컴퓨터 시스템이 취할 수 있는 액션을 예시한다.
도 15는 동일한 차선에 있는 정지 차량을 지나가려고 시도하는 자율 주행 차량의 일 예를 예시한다.
도 16은 동일한 차선에 있는 정지 차량을 추월하여 운전하기 위한 자율 주행 차량 운전 모델을 생성하기 위해 컴퓨터 시스템이 취할 수 있는 액션을 예시한다.
도 17은 인접 차선이 동일한 방향의 교통을 갖는 2개의 차선을 갖는 도로 상에서 자율 주행 차량이 운전하고 있을 때 차도 무단 횡단자를 피하기 위한 시나리오를 예시한다.
도 18은 인접 차선이 반대 방향의 교통을 갖는 2개의 차선을 갖는 도로 상에서 자율 주행 차량이 운전하고 있을 때 차도 무단 횡단자를 피하기 위한 시나리오를 예시한다.
도 19는 자율 주행 차량이 단일 차선을 갖는 도로 상에서 운전하고 있을 때 차도 무단 횡단자를 피하기 위한 시나리오를 예시한다.
도 20은 엔티티(예를 들어, 차도 무단 횡단자, 동물, 자전거 운전자, 또는 다른 적합한 엔티티)를 피하기 위한 자율 주행 차량 운전 모델을 생성하기 위해 컴퓨터 시스템이 취할 수 있는 액션을 예시한다.
도 21은 자율 주행 차량 운전 모델을 사용하여 무통제 교통 교차로를 통과하여 운전하기 위해 자율 주행 차량이 수행할 수 있는 액션을 예시한다.
도 22는 자율 주행 차량 운전 모델을 사용하여 동일한 차선에 있는 정지 차량을 추월하여 운전하기 위해 자율 주행 차량이 수행할 수 있는 액션을 예시한다.
도 23은 자율 주행 차량 운전 모델을 사용하여 동일한 차선에 있는 엔티티(예를 들어, 보행자)를 피하기 위해 자율 주행 차량이 수행할 수 있는 액션을 예시한다.
도 24는 특정 교통 기동에 대한 인간 운전 행동의 모델을 생성하기 위해 컴퓨터 시스템이 수행할 수 있는 액션을 예시한다.
도 25는 복수의 수동 운전 차량(manually-operated vehicle)의 운전 행동을 기술하는 하나의 가능한 데이터 세트를 예시한다.
설명을 위한 이하의 기술에서는, 본 발명에 대한 완전한 이해를 제공하기 위해 다수의 특정 세부사항이 기재된다. 그렇지만, 본 발명이 이 특정 세부사항 없이 실시될 수 있음이 명백할 것이다. 다른 경우에, 공지된 구조 및 디바이스는 본 발명을 불필요하게 모호하게 하는 것을 피하기 위하여 블록 다이어그램 형태로 도시된다.
도면에서, 기술을 용이하게 하기 위해, 디바이스, 모듈, 명령 블록 및 데이터 요소를 나타내는 것과 같은, 개략적 요소의 특정 배열 또는 순서가 도시된다. 그렇지만, 본 기술 분야의 통상의 기술자라면, 도면에서의 개략적 요소의 특정 순서 또는 배열이 프로세싱의 특정한 순서 또는 시퀀스, 또는 프로세스의 분리가 요구된다는 것을 암시하는 것을 의미하지는 않는다는 점을 이해할 것이다. 게다가, 도면에 개략적 요소를 포함시키는 것은, 그러한 요소가 모든 실시예에서 요구된다는 것을 암시하는 것을 의미하지 않거나, 또는 그러한 요소에 의해 표현된 특징이 일부 실시예에서 포함되지 않거나 또는 다른 요소와 조합되지 않을 수 있다는 점을 암시하는 것을 의미하지 않는다.
게다가, 도면에서, 2개 이상의 다른 개략적 요소 사이의 연결, 관계 또는 연관을 예시하기 위해 실선 또는 파선 또는 화살표와 같은 연결 요소가 사용되는 경우에, 임의의 그러한 연결 요소의 부재는 연결, 관계 또는 연관이 존재할 수 없다는 점을 암시하는 것을 의미하지 않는다. 환언하면, 요소들 사이의 일부 연결, 관계, 또는 연관은 본 개시를 모호하게 하지 않기 위해 도면에 도시되지 않는다. 그에 부가하여, 예시를 용이하게 하기 위해, 요소들 사이의 다수의 연결, 관계 또는 연관을 표현하기 위해 단일의 연결 요소가 사용된다. 예를 들어, 연결 요소가 신호, 데이터 또는 명령의 통신을 표현하는 경우, 본 기술 분야의 통상의 기술자라면, 그러한 요소가, 통신을 수행하기 위해 필요할 수 있는, 하나 또는 다수의 신호 경로(예를 들어, 버스)를 표현한다는 것을 이해할 것이다.
그 예가 첨부 도면에 예시되어 있는, 실시예가 이제 상세하게 언급될 것이다. 이하의 상세한 설명에서, 다양한 기술된 실시예에 대한 완전한 이해를 제공하기 위해 많은 특정 세부사항이 기재된다. 그렇지만, 다양한 기술된 실시예가 이 특정 세부사항 없이 실시될 수 있다는 것이 본 기술 분야의 통상의 기술자에게 명백할 것이다. 다른 경우에, 실시예의 양태를 불필요하게 모호하게 하지 않기 위해 공지된 방법, 절차, 컴포넌트, 회로, 및 네트워크는 상세하게 기술되지 않았다.
서로 독립적으로 또는 다른 특징들의 임의의 조합과 함께 각각 사용될 수 있는 여러 특징이 이하에 기술된다. 그렇지만, 임의의 개별 특징은 위에서 논의된 문제들 중 임의의 것을 해결할 수 없거나 또는 위에서 논의된 문제들 중 단지 하나만을 해결할 수 있다. 위에서 논의된 문제들 중 일부는 본원에 기술된 특징들 중 임의의 것에 의해 완전히 해결되지는 않을 수 있다. 비록 여러 표제가 제공되어 있더라도, 특정 표제에 관련되지만 해당 표제를 갖는 섹션에서 발견되지 않은 정보가 본 설명의 다른 곳에서 발견될 수도 있다. 실시예는 이하의 개요에 따라 본원에 기술된다.
1. 일반적 개관
2. 시스템 개관
3. 자율 주행 차량 아키텍처
4. 자율 주행 차량 입력
5. 자율 주행 차량 계획
6. 자율 주행 차량 제어
7. 무통제 교통 교차로를 통과하는 인간 운전 행동의 모델링
8. 정지 차량을 추월하여 운전하는 인간 운전 행동의 모델링
9. 차도 무단 횡단자를 피하는 인간 운전 행동의 모델링
10. 자율 주행 차량에서 인간 운전 행동의 모델의 사용
11. 신경 네트워크를 사용한 인간 운전 행동에 대한 모델의 생성
일반적 개관
일반적으로, 본 개시는 자율 주행 차량이 도로 상에서 다양한 시나리오에 직면할 때 자율 주행 차량의 의사 결정을 돕기 위해 인간 운전 행동을 사용하기 위한 기술을 제공한다. 각각의 시나리오에 대해, 자율 주행 차량이 그 시나리오에서 어떻게 기동하는지를 좌우하는 모델이 인간 운전 행동에 기초하여 생성될 수 있다. 이 모델을 사용한 결과로서, 자율 주행 차량의 신뢰성과 안전성이 개선될 수 있다. 그에 부가하여, 모델이 자율 주행 차량에 프로그래밍되어 있기 때문에, 자율 주행 차량은, 많은 경우에, 운전 행동을 실시간으로 결정하기 위해 복잡한 계산을 구현하는 데 리소스를 소비할 필요가 없다.
시스템 개관
도 1은 자율 주행 능력을 갖는 자율 주행 차량(100)의 일 예를 도시한다.
본원에서 사용되는 바와 같이, 용어 "자율 주행 능력"은, 완전한 자율 주행 차량, 고도의 자율 주행 차량, 및 조건부 자율 주행 차량을 제한 없이 포함하는, 실시간 인간 개입 없이 차량이 부분적으로 또는 완전하게 동작될 수 있게 하는 기능, 특징, 또는 설비를 지칭한다.
본원에서 사용되는 바와 같이, 자율 주행 차량(AV)은 자율 주행 능력을 갖는 차량이다.
본원에서 사용되는 바와 같이, "차량"은 상품 또는 사람의 운송 수단을 포함한다. 예를 들어, 자동차, 버스, 기차, 비행기, 드론, 트럭, 보트, 선박, 잠수함, 비행선 등. 무인 자동차는 차량의 일 예이다.
본원에서 사용되는 바와 같이, "궤적"은 AV를 제1 시공간적 위치로부터 제2 시공간적 위치로 운행시키는 경로 또는 루트를 지칭한다. 일 실시예에서, 제1 시공간적 위치는 초기 또는 시작 위치라고 지칭되고 제2 시공간적 위치는 목적지, 최종 위치, 목표, 목표 위치, 또는 목표 장소라고 지칭된다. 일부 예에서, 궤적은 하나 이상의 세그먼트(예를 들어, 도로의 섹션)로 구성되고, 각각의 세그먼트는 하나 이상의 블록(예를 들어, 차선 또는 교차로의 부분)으로 구성된다. 일 실시예에서, 시공간적 위치는 현실 세계 위치에 대응한다. 예를 들어, 시공간적 위치는 사람을 태우거나 내려주고 또는 상품을 싣거나 내리는 픽업(pick up) 또는 드롭-오프(drop-off) 위치이다.
본원에서 사용되는 바와 같이, "센서(들)"는 센서를 둘러싼 환경에 관한 정보를 검출하는 하나 이상의 하드웨어 컴포넌트를 포함한다. 하드웨어 컴포넌트들 중 일부는 감지 컴포넌트(예를 들어, 이미지 센서, 생체측정 센서), 송신 및/또는 수신 컴포넌트(예를 들어, 레이저 또는 라디오 주파수 파 송신기 및 수신기), 아날로그 대 디지털 변환기와 같은 전자 컴포넌트, 데이터 저장 디바이스(예컨대, RAM 및/또는 비휘발성 스토리지), 소프트웨어 또는 펌웨어 컴포넌트, 및 ASIC(application-specific integrated circuit), 마이크로프로세서 및/또는 마이크로컨트롤러와 같은 데이터 프로세싱 컴포넌트를 포함할 수 있다.
본원에서 사용되는 바와 같이, "장면 묘사(scene description)"는 AV 차량 상의 하나 이상의 센서에 의해 검출되거나 AV 외부의 소스에 의해 제공되는 하나 이상의 분류된 또는 라벨링된 대상체를 포함하는 데이터 구조(예를 들어, 리스트) 또는 데이터 스트림이다.
본원에서 사용되는 바와 같이, "도로"는 차량에 의해 횡단될 수 있는 물리적 영역이고, 명명된 주요 도로(예를 들어, 도시 거리, 주간 고속도로 등)에 대응할 수 있거나, 또는 명명되지 않은 주요 도로(예를 들어, 주택 또는 사무실 건물 내의 사유 도로, 주차장 섹션, 공터 섹션, 시골 지역의 비포장 경로 등)에 대응할 수 있다. 일부 차량(예를 들어, 4륜 구동 픽업 트럭, 스포츠 유틸리티 차량 등)은 차량 진행에 대해 특히 적합하지 않은 다양한 물리적 영역을 횡단할 수 있기 때문에, "도로"는 임의의 지자체 또는 다른 정부 또는 행정처에 의해 주요 도로로서 공식적으로 규정되지 않은 물리적 영역일 수 있다.
본원에서 사용되는 바와 같이, "차선"은 차량에 의해 횡단될 수 있는 도로의 일부이다. 차선은 때때로 차선 마킹(lane marking)에 기초하여 식별된다. 예를 들어, 차선은 차선 마킹 사이의 공간의 대부분 또는 전부에 대응할 수 있거나, 또는 차선 마킹 사이의 공간의 단지 일부(예를 들어, 50% 미만)에 대응할 수 있다. 예를 들어, 멀리 이격된 차선 마킹을 갖는 도로는 차선 마킹들 사이에 둘 이상의 차량을 수용할 수 있어서, 하나의 차량이 차선 마킹을 횡단하지 않으면서 다른 차량을 추월할 수 있고, 따라서 차선 마킹들 사이의 공간보다 좁은 차선을 갖거나 차선 마킹들 사이에 2개의 차선을 갖는 것으로 해석될 수 있다. 차선은 차선 마킹의 부재 시에도 해석될 수 있다. 예를 들어, 차선은 환경의 물리적 특징, 예를 들어, 시골 지역에서의 주요 도로를 따라 있는 바위 및 나무 또는, 예를 들어, 미개발 지역에서의 피할 자연 장애물에 기초하여 규정될 수 있다. 차선은 또한 차선 마킹 또는 물리적 특징과 무관하게 해석될 수 있다. 예를 들어, 차선은 차선 경계로서 해석될 특징이 달리 없는 영역에서 장애물이 없는 임의의 경로에 기초하여 해석될 수 있다. 예시적인 시나리오에서, AV는 들판 또는 공터의 장애물 없는 부분을 통해 차선을 해석할 수 있다. 다른 예시적인 시나리오에서, AV는 차선 마킹을 갖지 않는 넓은 (예를 들어, 2개 이상의 차선을 위해 충분히 넓은) 도로를 통해 차선을 해석할 수 있다. 이 시나리오에서, AV는 차선에 관한 정보를 다른 AV에 전달할 수 있어서, 다른 AV가 동일한 차선 정보를 사용하여 그 자신들 간에 경로 계획을 조정할 수 있다.
용어 "OTA(over-the-air) 클라이언트"는 임의의 AV, 또는 AV에 내장되거나, AV에 결합되거나, 또는 AV와 통신하는 임의의 전자 디바이스(예를 들어, 컴퓨터, 제어기, IoT 디바이스, 전자 제어 유닛(ECU))를 포함한다.
용어 "OTA(over-the-air) 업데이트"는, 셀룰러 모바일 통신(예를 들어, 2G, 3G, 4G, 5G), 라디오 무선 영역 네트워크(예를 들어, WiFi) 및/또는 위성 인터넷을 포함하지만 이에 제한되지 않는, 독점적인 및/또는 표준화된 무선 통신 기술을 사용하여 OTA 클라이언트에 전달되는 소프트웨어, 펌웨어, 데이터 또는 구성 설정, 또는 이들의 임의의 조합에 대한 임의의 업데이트, 변경, 삭제, 또는 추가를 의미한다.
용어 "에지 노드"는 AV와 통신하기 위한 포털을 제공하고 OTA 업데이트를 스케줄링하여 OTA 클라이언트에 전달하기 위해 다른 에지 노드 및 클라우드 기반 컴퓨팅 플랫폼과 통신할 수 있는 네트워크에 결합된 하나 이상의 에지 디바이스를 의미한다.
용어 "에지 디바이스"는 에지 노드를 구현하고 기업 또는 서비스 제공자(예를 들어, VERIZON, AT&T) 코어 네트워크에 물리적 무선 액세스 포인트(AP)를 제공하는 디바이스를 의미한다. 에지 디바이스의 예는 컴퓨터, 제어기, 송신기, 라우터, 라우팅 스위치, IAD(integrated access device), 멀티플렉서, MAN(metropolitan area network) 및 WAN(wide area network) 액세스 디바이스를 포함하지만, 이에 제한되지 않는다.
"하나 이상"은 하나의 요소에 의해 수행되는 기능, 하나 초과의 요소에 의해, 예를 들어, 분산 방식으로, 수행되는 기능, 하나의 요소에 의해 수행되는 여러 기능, 여러 요소에 의해 수행되는 여러 기능, 또는 이들의 임의의 조합을 포함한다.
또한, 용어, 제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 차량 시스템 중 하나 이상은 센서 입력의 프로세싱에 기초하여 특정의 동작 조건 하에서 특정의 차량 동작(예를 들어, 조향, 제동, 및 맵 사용)을 자동화할 수 있다. 본원에서 개시된 기술은, 완전한 자율 주행 차량으로부터 인간-운전 차량에 이르는, 임의의 레벨에 있는 차량에 혜택을 줄 수 있다.
자율 주행 차량은 인간 운전자를 필요로 하는 차량보다 장점이 있다. 한 가지 장점은 안전성이다. 예를 들어, 2016년에, 미국은 9100억 달러의 사회적 비용으로 추정되는 600만 건의 자동차 사고, 240만 건의 부상, 4만 명의 사망자, 및 1300만 건의 차량 충돌을 경험했다. 1억 마일 주행당 미국 교통 사망자수는, 부분적으로 차량에 설치된 추가적인 안전 대책으로 인해, 1965년과 2015년 사이에 약 6명으로부터 1명으로 줄었다. 예를 들어, 충돌이 발생할 것이라는 부가적인 0.5초의 경고는 전후 충돌의 60%를 완화시키는 것으로 여겨진다. 그렇지만, 수동적 안전 특징(예를 들어, 시트 벨트, 에어백)은 이 수치를 개선시키는 데 한계에 도달했을 것이다. 따라서 차량의 자동 제어와 같은, 능동적 안전 대책이 이러한 통계치를 개선시키는 데 유망한 다음 단계이다. 인간 운전자가 95%의 충돌에서 중요한 충돌전 사건에 책임있는 것으로 여겨지기 때문에, 자동 운전 시스템은, 예를 들어, 중요한 상황을 인간보다 잘 신뢰성있게 인식하고 피하는 것에 의해; 더 나은 의사 결정을 하고, 교통 법규를 준수하며, 미래의 사건을 인간보다 더 잘 예측하는 것에 의해; 그리고 차량을 인간보다 더 잘 신뢰성 있게 제어하는 것에 의해 더 나은 안전성 결과를 달성할 수 있다.
도 1을 참조하면, AV 시스템(120)은, 대상체(예를 들어, 자연 장애물(191), 차량(193), 보행자(192), 자전거 운전자, 및 다른 장애물)을 피하고 도로 법규(예를 들어, 동작 규칙 또는 운전 선호도)를 준수하면서, 환경(190)을 통과하여 궤적(198)을 따라 AV(100)를 목적지(199)(때때로 최종 위치라고 지칭됨)로 동작시킨다.
일 실시예에서, AV 시스템(120)은 컴퓨터 프로세서(146)로부터의 동작 커맨드를 수신하고 이에 따라 작동하도록 설비된 디바이스(101)를 포함한다. 차량이 액션(예를 들어, 운전 기동)을 수행하게 하는 실행가능 명령(또는 명령 세트)을 의미하기 위해 용어 "동작 커맨드"를 사용한다. 동작 커맨드는, 제한 없이, 차량이 전진을 시작하고, 전진을 중지하며, 후진을 시작하고, 후진을 중지하며, 가속하고, 감속하며, 좌회전을 수행하고, 우회전을 수행하기 위한 명령을 포함할 수 있다. 일 실시예에서, 컴퓨팅 프로세서(146)는 도 3을 참조하여 아래에서 기술되는 프로세서(304)와 유사하다. 디바이스(101)의 예는 조향 제어(102), 브레이크(103), 기어, 가속기 페달 또는 다른 가속 제어 메커니즘, 앞유리 와이퍼, 사이드-도어 락, 윈도 제어, 및 방향 지시등을 포함한다.
일 실시예에서, AV 시스템(120)은 AV의 위치, 선형 속도 및 선형 가속도, 각속도 및 각가속도, 및 방향(예를 들어, AV(100)의 선단의 배향)과 같은 AV(100)의 상태 또는 조건의 특성을 측정 또는 추론하기 위한 센서(121)를 포함한다. 센서(121)의 예는 GPS, 차량 선형 가속도 및 각속도(angular rate) 둘 모두를 측정하는 IMU(inertial measurement unit), 휠 슬립 비(wheel slip ratio)를 측정 또는 추산하기 위한 휠 속력 센서, 휠 브레이크 압력 또는 제동 토크 센서, 엔진 토크 또는 휠 토크 센서, 및 조향각(steering angle) 및 각속도 센서이다.
일 실시예에서, 센서(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)를 향한 선형 및 각도 방향의 측정된 또는 추론된 특성을 통신하기 위한 통신 디바이스(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)는 하루 중 유사한 시간에서 궤적(198)을 따라 이전에 진행한 차량의 운전 특성(예를 들어, 속력 및 가속도 프로파일)에 관한 이력 정보를 저장 및 송신한다. 일 구현예에서, 그러한 데이터는 AV(100) 상의 메모리(144)에 저장될 수 있거나, 원격에 위치된 데이터베이스(134)로부터 통신 채널을 통해 AV(100)에 송신될 수 있다.
AV(100) 상에 위치된 컴퓨팅 디바이스(146)는 실시간 센서 데이터 및 이전 정보 둘 모두에 기초한 제어 액션을 알고리즘적으로 생성하여, AV 시스템(120)이 자율 주행 능력을 실행할 수 있게 한다.
일 실시예에서, AV 시스템(120)은 AV(100)의 사용자(예를 들어, 탑승자 또는 원격 사용자)에게 정보 및 경보를 제공하고 사용자로부터 입력을 수신하기 위해 컴퓨팅 디바이스(146)에 결합된 컴퓨터 주변기기(132)를 포함한다. 일 실시예에서, 주변기기(132)는 도 3을 참조하여 아래에서 논의되는 디스플레이(312), 입력 디바이스(314), 및 커서 제어기(316)와 유사하다. 결합은 무선 또는 유선이다. 인터페이스 디바이스들 중 임의의 둘 이상이 단일 디바이스에 통합될 수 있다.
일 실시예에서, AV 시스템(120)은, 예를 들어, 승객에 의해 특정되거나 승객과 관련된 프로파일에 저장된, 승객의 프라이버시 레벨을 수신하고 시행한다. 승객의 프라이버시 레벨은 승객과 연관된 특정한 정보(예를 들어, 승객 편의 데이터, 생체 데이터 등)가 사용되도록, 승객 프로파일에 저장되도록, 및/또는 클라우드 서버(136)에 저장되어 승객 프로필과 연관되도록 할 수 있는 방법을 결정한다. 일 실시예에서, 프라이버시 레벨은 일단 승차가 완료되면 삭제되는 승객과 연관된 특정한 정보를 특정한다. 일 실시예에서, 프라이버시 레벨은 승객과 연관된 특정한 정보를 특정하고 정보에 액세스하도록 인가되는 하나 이상의 엔티티를 식별해준다. 정보에 액세스하도록 인가되는 특정된 엔티티의 예는 다른 AV, 서드파티 AV 시스템, 또는 정보에 잠재적으로 액세스할 수 있는 임의의 엔티티를 포함할 수 있다.
승객의 프라이버시 레벨은 하나 이상의 입도 레벨로 특정될 수 있다. 일 실시예에서, 프라이버시 레벨은 저장 또는 공유될 특정 정보를 식별해준다. 일 실시예에서, 승객이 자신의 개인 정보가 저장 또는 공유되지 않도록 특정할 수 있도록 승객과 연관된 모든 정보에 프라이버시 레벨이 적용된다. 특정한 정보에 액세스하도록 허용되는 엔티티의 지정이 다양한 입도 레벨로 특정될 수 있다. 특정한 정보에 액세스하도록 허용되는 다양한 엔티티 세트는, 예를 들어, 다른 AV, 클라우드 서버(136), 특정 서드파티 AV 시스템 등을 포함할 수 있다.
일 실시예에서, AV 시스템(120) 또는 클라우드 서버(136)는 승객과 연관된 특정 정보가 AV(100) 또는 다른 엔티티에 의해 액세스될 수 있는지를 결정한다. 예를 들어, 특정한 시공간적 위치와 관련된 승객 입력에 액세스하려고 시도하는 서드파티 AV 시스템은 승객과 연관된 정보에 액세스하기 위해, 예를 들어, AV 시스템(120) 또는 클라우드 서버(136)로부터 인가를 획득해야 한다. 예를 들어, AV 시스템(120)은 시공간적 위치와 관련된 승객 입력이 서드파티 AV 시스템, AV(100), 또는 다른 AV에 제공될 수 있는지 여부를 결정하기 위해 승객의 특정된 프라이버시 레벨을 사용한다. 이것은 승객의 프라이버시 레벨이 어느 다른 엔티티가 승객의 액션에 관한 데이터 또는 승객과 연관된 다른 데이터를 수신하도록 허용되는지를 특정할 수 있게 한다.
도 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)은 버스(302)에 결합된, 프로세서(304)에 의해 실행될 명령 및 정보를 저장하기 위한, RAM(random access memory) 또는 다른 동적 저장 디바이스와 같은, 메인 메모리(306)를 또한 포함한다. 일 구현예에서, 메인 메모리(306)는 프로세서(304)에 의해 실행될 명령의 실행 동안 임시 변수 또는 다른 중간 정보를 저장하는 데 사용된다. 그러한 명령은, 프로세서(304)에 액세스 가능한 비-일시적 저장 매체에 저장될 때, 컴퓨터 시스템(300)을 명령에서 특정된 동작을 수행하도록 커스터마이징된 특수-목적 머신으로 렌더링한다.
일 실시예에서, 컴퓨터 시스템(300)은, 프로세서(304)를 위한 정적 정보 및 명령을 저장하기 위해 버스(302)에 결합된 ROM(read only memory)(308) 또는 다른 정적 저장 디바이스를 추가로 포함한다. 자기 디스크, 광학 디스크, 솔리드-스테이트 드라이브, 또는 3차원 크로스 포인트 메모리와 같은, 저장 디바이스(310)가 제공되고 정보 및 명령을 저장하기 위해 버스(302)에 결합된다.
일 실시예에서, 컴퓨터 시스템(300)은 버스(302)를 통해, 정보를 컴퓨터 사용자에게 디스플레이하기 위한, CRT(cathode ray tube), LCD(liquid crystal display), 플라스마 디스플레이, LED(light emitting diode) 디스플레이, 또는 OLED(organic light emitting diode) 디스플레이와 같은, 디스플레이(312)에 결합된다. 문자 숫자식 및 다른 키를 포함하는 입력 디바이스(314)는 정보 및 커맨드 선택을 프로세서(304)에 통신하기 위해 버스(302)에 결합된다. 다른 타입의 사용자 입력 디바이스는, 디스플레이(312) 상에서 커서 움직임을 제어하고 프로세서(304)에 방향 정보 및 커맨드 선택을 통신하기 위한, 마우스, 트랙볼, 터치식 디스플레이, 또는 커서 방향 키와 같은, 커서 제어기(316)이다. 이 입력 디바이스는 전형적으로, 디바이스가 평면에서 위치를 특정할 수 있게 하는 2개의 축, 즉 제1 축(예를 들어, x-축) 및 제2 축(예를 들어, y-축)에서의 2 자유도를 갖는다.
일 실시예에 따르면, 본원에서의 기술은 프로세서(304)가 메인 메모리(306)에 포함된 하나 이상의 명령의 하나 이상의 시퀀스를 실행하는 것에 응답하여 컴퓨터 시스템(300)에 의해 수행된다. 그러한 명령은, 저장 디바이스(310)와 같은, 다른 저장 매체로부터 메인 메모리(306) 내로 판독된다. 메인 메모리(306)에 포함된 명령의 시퀀스의 실행은 프로세서(304)로 하여금 본원에서 기술된 프로세스 단계를 수행하게 한다. 대안적인 실시예에서는, 소프트웨어 명령 대신에 또는 소프트웨어 명령과 조합하여 고정-배선 회로가 사용된다.
용어 "저장 매체"는 본원에서 사용되는 바와 같이 머신으로 하여금 특정 방식으로 동작하게 하는 데이터 및/또는 명령을 저장하는 임의의 비-일시적 매체를 지칭한다. 그러한 저장 매체는 비휘발성 매체 및/또는 휘발성 매체를 포함한다. 비휘발성 매체는, 예를 들어, 광학 디스크, 자기 디스크, 솔리드-스테이트 드라이브, 또는 3차원 크로스 포인트 메모리, 예컨대, 저장 디바이스(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)(때때로 인지 회로라고 지칭됨), 계획 모듈(planning module)(404)(때때로 계획 회로라고 지칭됨), 제어 모듈(406)(때때로 제어 회로라고 지칭됨), 로컬화 모듈(localization module)(408)(때때로 로컬화 회로라고 지칭됨), 및 데이터베이스 모듈(410)(때때로 데이터베이스 회로라고 지칭됨)을 포함한다. 각각의 모듈은 AV(100)의 동작에서 소정의 역할을 한다. 다함께, 모듈(402, 404, 406, 408 및 410)은 도 1에 도시된 AV 시스템(120)의 일부일 수 있다. 일부 실시예에서, 모듈(402, 404, 406, 408, 및 410) 중 임의의 모듈은 컴퓨터 소프트웨어(예를 들어, 컴퓨터 판독 가능 매체 상에 저장된 실행 가능한 코드) 및 컴퓨터 하드웨어(예를 들어, 하나 이상의 마이크로프로세서, 마이크로컨트롤러, ASIC(application-specific integrated circuit), 하드웨어 메모리 디바이스, 다른 타입의 집적 회로, 다른 타입의 컴퓨터 하드웨어, 또는 이러한 것 중 임의의 것 또는 모든 것의 조합)의 조합이다. 모듈(402, 404, 406, 408, 및 410)의 각각의 모듈은 때때로 프로세싱 회로(예를 들어, 컴퓨터 하드웨어, 컴퓨터 소프트웨어, 또는 이 둘의 조합)라고 지칭된다. 모듈(402, 404, 406, 408, 및 410) 중 임의의 것 또는 모든 것의 조합은 또한 프로세싱 회로의 일 예이다.
사용 중에, 계획 모듈(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)의 공간적 위치를 기술하는 맵을 포함한다. 일 실시예에서, 고-정밀 맵은 자동 또는 수동 주석 달기(annotation)를 통해 저-정밀 맵에 데이터를 추가함으로써 구성된다.
제어 모듈(406)은 궤적(414)을 나타내는 데이터와 AV 위치(418)를 나타내는 데이터를 수신한다. 제어 모듈(406)은 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, 픽업 트럭 등과 같은 오프-로드 주행 가능 차량인 경우, 루트(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)의 시계 내의 물리적 위치를 나타내는 그래프의 부분에 대한 일부 높은 입도 정보도 포함한다.
일 실시예에서, 입도가 낮을 때, 대상체(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 노드로 진행할 수 있지만, AV(100)가 제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)은 전형적으로, 비용에 최적화된 경로, 예를 들어, 에지의 개별 비용이 함께 가산될 때 최소 전체 비용을 갖는 경로를 선택한다. 다른 실시예에서, 다른 동작이 적용될 수 있다.
자율 주행 차량 제어
도 11은 (예를 들어, 도 4에 도시된 바와 같은) 제어 모듈(406)의 입력 및 출력의 블록 다이어그램(1100)을 도시한다. 제어 모듈은, 예를 들어, 프로세서(304)와 유사한 하나 이상의 프로세서(예를 들어, 마이크로프로세서 또는 마이크로컨트롤러 또는 양자 모두와 같은 하나 이상의 컴퓨터 프로세서), 메인 메모리(306)와 유사한 단기 및/또는 장기 데이터 스토리지(예를 들어, 메모리 랜덤-액세스 메모리 또는 플래시 메모리 또는 양자 모두), ROM(308), 및 저장 디바이스(310)를 포함하는 제어기(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)은 원하는 출력 속력 아래로 낮아진다. 일 실시예에서, 임의의 측정된 출력(1114)은, 예를 들어, 측정된 속력과 원하는 출력 사이의 차분(1113)에 기초하여, 필요한 조정이 수행되도록 제어기(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)의 위치를 조정하도록 조향 제어기(1204)에 명령한다.
제어기(1102)는 스로틀/브레이크(1206) 및 조향각 액추에이터(1212)를 제어하는 방법을 결정하는 데 사용되는 여러 입력을 수신한다. 계획 모듈(404)은, 예를 들어, AV(100)가 동작을 시작할 때 방향을 선택하고 AV(100)가 교차로에 도달할 때 어느 도로 세그먼트를 횡단할지를 결정하기 위해, 제어기(1102)에 의해 사용되는 정보를 제공한다. 로컬화 모듈(408)은, 예를 들어, 스로틀/브레이크(1206) 및 조향각 액추에이터(1212)가 제어되고 있는 방식에 기초하여 예상되는 위치에 AV(100)가 있는지를 제어기(1102)가 결정할 수 있도록, AV(100)의 현재 위치를 기술하는 정보를 제어기(1102)에 제공한다. 일 실시예에서, 제어기(1102)는 다른 입력(1214)으로부터의 정보, 예를 들어, 데이터베이스, 컴퓨터 네트워크 등으로부터 수신된 정보를 수신한다.
무통제 교통 교차로를 통과하는 인간 운전 행동의 모델링
자율 주행 차량의 경우, 무통제 교통 교차로를 통과하여 운전하는 것은 다양한 이유로 어려운 일이다. 예를 들어, 자율 주행 차량은, 지나가는 차량의 속력을 실시간으로 계산하는 것에 부가하여, 충돌을 피하기 위해 합류할 충분한 시간이 있는지 여부를 결정해야 한다. 그 계산은 실시간으로 이루어져야 하며, 이는 자율 주행 차량에 많은 양의 프로세싱 능력을 요구하거나 또는, 프로세싱이 서버에서 수행될 때, 서버에 대한 고속 접속을 요구한다. 따라서, 무통제 교통 교차로를 통과하여 운전하기 위한 모델(예를 들어, 규칙 세트)을 생성하는 것은 자율 주행 차량이 더 적은 프로세싱 능력 및/또는 네트워크 접속성을 사용할 수 있게 한다.
도 13은 무통제 교통 교차로에서 합류하려고 시도하는 자율 주행 차량의 일 예를 예시한다. 자율 주행 차량(1302)은 교차로(1300)에 합류하기 위해 기다리는 것으로 예시되어 있다. 이 시점에서, 자율 주행 차량(1302)은 교차로에 합류할지 여부를 결정하기 위해 계산을 수행해야 한다. 구체적으로, 자율 주행 차량(1302)은 교차로(1300)에 합류하는 것이 자율 주행 차량(1302)으로 하여금 교차로(1300)에 접근하는 다른 차량들(1304 및 1306) 중 하나 이상과 충돌하게 할 것인지 여부를 결정해야 한다. 그에 부가하여, 자율 주행 차량(1302)은 교차로(1300)에 합류하는 것이 다른 차량들(예를 들어, 차량들(1034 및 1306)) 중 하나 이상으로 하여금 감속하게 할 것인지 및/또는 갑자기 정지하게 할 것인지 여부를 결정할 수 있다. 자율 주행 차량(1302)은 이 두 가지 결정과 지나치게 보수적인 것, 따라서 각각의 교차로에서 너무 오래 기다리는 것 사이에서 균형을 이루어야 한다. 차량은 승객 편의 및 교통 통과량(traffic throughput)을 최대화하는 것을 고려하여 이러한 결정을 해야 한다(예를 들어, 인간 운전자가 특정 상황 세트에서 기동을 수행할지 여부를 결정함). 일 구현예에서, 결정을 할 때, 자율 주행 차량(1302)은 무통제 교통 교차로를 통과하는 인간 행동을 모델링하는 자율 주행 차량 운전 모델을 사용한다.
도 14의 프로세스(1400)는 무통제 교통 교차로를 통과하여 운전하기 위한 자율 주행 차량 운전 모델을 생성하기 위해 컴퓨터 시스템이 취할 수 있는 액션을 예시한다. 도 14 및 본 개시에서의 다른 도면은 액션을 수행하는 컴퓨터 시스템을 참조하여 기술된다. 그렇지만, 본 기술 분야의 통상의 기술자는 도 14 및 다른 도면의 액션이 개시된 컴포넌트(예를 들어, 프로세서(146), 인지 모듈(402), 계획 모듈(404), 제어 모듈(406) 또는 다른 적합한 컴포넌트와 같은 자율 주행 차량에 로컬인 컴포넌트)에 의해 수행될 수 있다는 것을 이해할 것이다. 대안적으로, 컴퓨터 시스템의 일부 모듈은 자율 주행 차량으로부터 원격에 위치될 수 있고 일부 액션은 원격으로 수행되어 자율 주행 차량으로 송신될 수 있는 반면 다른 액션은 자율 주행 차량에서 수행될 수 있다.
블록(1405)에서, 컴퓨터 시스템은 복수의 수동 운전 차량(예를 들어, 인간 조작자에 의해 운전되고 운전 행동이 인간 조작자의 운전 기술에 의해 영향을 받는 차량)의 운전 행동을 결정하며, 각각의 수동 운전 차량은 대응하는 무통제 교통 교차로(예를 들어, 교통 신호등 또는 교통 경찰과 같은, 교통 통제자의 안내 없이 제2 차선으로부터의 교통이 합류하는 제1 교통 차선의 일 부분)에서의 교통 합류 행동에 관여했다. 운전 행동은 무통제 교통 교차로에 합류하려고 의도하는 또는 다른 차량이 무통제 교통 교차로에 합류하는 것을 관찰하는 인간 조작자의 운전 반응을 나타낸다. 도 13은 차량(1302)이 무통제 교통 교차로에서 합류하려고 시도하고 있는 경우의 무통제 교통 교차로의 일 예를 예시한다.
일 실시예에서, 컴퓨터 시스템은, 자율 주행 차량 운전 모델을 결정할 때, 수동 운전 차량이 교차로에서 교통에 합류하려고 시도했는지 또는 교차로에서 교통에 합류하려고 시도하지 않았는지를 결정하도록 구성된다. 예를 들어, 컴퓨터 시스템은 교통 합류 행동의 각각의 데이터 세트를 통해 반복하여 수동 운전 차량이 합류하려고 시도했는지 또는 합류하려고 시도하지 않았는지를 결정할 수 있다. 컴퓨터 시스템은 합류하려는 시도와 연관된 데이터를 합류하려는 시도 없음과 연관된 데이터와 분리시킬 수 있다. 컴퓨터 시스템은, 아래에서 논의되는 바와 같이, 모델을 생성할 때 이들 데이터 세트 중 하나 또는 둘 모두를 사용할 수 있다.
일 실시예에서, 운전 행동을 결정할 때, 컴퓨터 시스템은 대응하는 무통제 교통 교차로에 합류한 차량(예를 들어, "출발(go)" 결정)을 식별하고, (1) 대응하는 무통제 교통 교차로를 향해 운전하고 있던 복수의 다른 차량의 각자의 속력, (2) 합류한 차량에서부터 복수의 다른 차량의 각각의 다른 차량의 거리 및 (3) 다른 차량 각각의 차선을 결정한다. 예를 들어, 컴퓨터 시스템은 하나 이상의 무통제 교통 교차로로부터 수집된 데이터를 수신하고 수집된 데이터로부터, 합류한 차량(예를 들어, "출발" 결정)에 대응하는 데이터 세트를 생성할 수 있다. 일 실시예에서, 모델은 교차로 레벨에서 훈련될 수 있다. 즉, 특정 교차로에 대한 모델이 저장되고, 자율 주행 차량이 특정 교차로에 접근할 때, 해당 교차로가 검출되고, 그 모델이 검색되어 해당 교차로에 대해 사용된다. 일 실시예에서, 모델은 도시 레벨에서 훈련될 수 있다. 즉, 특정 도시에 대한 모델이 저장되고, 자율 주행 차량이 해당 도시에 있는 것으로 검출될 때, 그 모델이 검색되어 해당 도시 내에서 사용된다. 일 실시예에서, 모델은 관할권 레벨 또는 국가 레벨에서 사용될 수 있다. 즉, 자율 주행 차량이 특정 관할권 내에 또는 특정 국가에 있을 때, 그 모델이 검색되어 사용한다. 본 기술 분야의 통상의 기술자는 모델의 사용 또는 사용 레벨이 한 지역 내에서의 운전 법규 및/또는 운전 행동의 동질성에 의존할 수 있음을 이해할 것이다.
블록(1410)에서, 컴퓨터 시스템은 운전 행동에 기초하여 자율 주행 차량 운전 모델을 결정하며, 자율 주행 차량 운전 모델은 무통제 교통 교차로에서 교통에 합류하려고 운전하는 자율 주행 차량에 의해 구현될 자율 주행 차량 운전 행동(예를 들어, 합류할지 또는 합류하지 않을지)을 기술한다. 예를 들어, 자율 주행 차량의 주어진 속도 및 방향에 대해, 모델은 자율 주행 차량에 출발하도록(즉, 교통 교차로에 합류하도록) 또는 출발하지 않도록(즉, 기다리도록) 명령한다.
일 실시예에서, 컴퓨터 시스템은 운전 행동과 연관된 데이터를 분석하고 수동 운전 차량이 교차로에 합류한 상이한 시나리오를 식별한다. 즉, 컴퓨터 시스템은 교차로에서부터 교차로에 접근하는 각각의 다른 차량의 거리 및 각각의 차량의 속력을 분석할 수 있다. 그 정보에 기초하여, 컴퓨터 시스템은 교차로에 합류하는 것에 대한 모델(예를 들어, 하나 이상의 규칙)을 구축할 수 있다. 규칙은, 교차로를 향해 진행하는 각각의 다른 차량이 특정한 거리 이상 떨어져 있고 특정한 속력보다 빠르지 않게 진행하고 있을 때, 자율 주행 차량이 무통제 교통 교차로에 합류하는 것을 진행해야 한다는 것을 나타낼 수 있다. 일 실시예에서, 컴퓨터 시스템은 교차로에 접근하는 다른 차량의 속력 및 거리에 기초하여 하나 이상의 규칙을 생성한다.
일 실시예에서, 컴퓨터 시스템은 교차로에 합류하지 않은 수동 운전 차량에 대한 데이터를 고려할 수 있다. 구체적으로, 컴퓨터 시스템은 대응하는 무통제 교통 교차로에 합류하지 않은 차량(예를 들어, "출발 금지(no go)" 결정)을 식별한다. 대응하는 무통제 교통 교차로에 합류하지 않은 차량들의 각각의 차량에 대해, 대응하는 무통제 교통 교차로를 향해 운전하고 있던 각각의 차량의 근방에 있는 다른 차량들의 각자의 속력, 합류하지 않은 각각의 차량에서부터 다른 차량들의 각각의 다른 차량의 거리 및 각각의 다른 차량의 차선을 결정한다. 예를 들어, 컴퓨터 시스템은 수동 운전 차량이 교차로에 합류하지 않은 인스턴스에 대한 데이터를 필터링할 수 있다. 컴퓨터 시스템은 교차로를 향해 진행하는 각각의 다른 차량의 속력 및 거리를 분석할 수 있다. 분석에 기초하여, 컴퓨터 시스템은 모델을 생성할 수 있다(또는 교차로에 합류한 수동 운전 차량에 대한 데이터를 고려하여 생성된 하나 이상의 규칙을 모델에 추가할 수 있다). 예를 들어, 규칙은 하나 이상의 차량이 특정한 속력보다 큰 속력으로 교차로를 향해 진행하고 있고 특정한 거리보다 교차로에 더 가까운 경우 자율 주행 차량이 교차로에 합류해서는 안된다는 것을 나타낼 수 있다. 일 실시예에서, 컴퓨터 시스템은 다수의 규칙(예를 들어, 속력에 대한 규칙 및 거리에 대한 규칙)을 생성한다.
일 실시예에서, 컴퓨터 시스템은, 생성하거나 모델에 추가할 때, 각각의 접근 차량이 위치된 차선을 고려한다. 예를 들어, 컴퓨터 시스템은 접근 차량의 속력, 교차로에서부터 접근 차량의 거리 및 접근 차량의 차선(예를 들어, 접근 차량이 수동 운전 차량이 합류하려고 시도하고 있는 차선에 있는지 여부)의 조합을 나타내는 규칙을 생성할 수 있다.
일 실시예에서, 컴퓨터 시스템은, 교차로를 향해 운전하는 다른 차량들의 속력, 교차로에서부터 다른 차량의 거리 및 다른 차량 각각과 연관된 차선을 고려하여, 무통제 교통 교차로에 합류한 수동 운전 차량에 관한 데이터와 무통제 교통 교차로에 합류하지 않은 수동 운전 차량에 관한 데이터 둘 모두에 기초하여 모델을 생성한다. 예를 들어, 컴퓨터 시스템은 수동 운전 차량이 교차로에 합류했을 때의 각각의 다른 차량의 최대 속력 및 최대 거리를 계산하고 모델의 규칙을 최대 속력 및/또는 최대 거리에 기반할 수 있다. 규칙은 교차로에서부터 각각의 차량의 거리가 교차로에서부터 접근 차량의 최대 거리 미만이고 그리고/또는 접근 차량 각각의 속력이 최대 속력 미만인 경우 자율 주행 차량이 교차로에 합류해야 한다는 것을 나타낼 수 있다. 일 실시예에서, 모델의 규칙은, 수집된 데이터에 기초하여, 접근 차량이 자율 주행 차량이 합류하려고 시도하고 있는 차선에 있지 않은 경우, 속력 규칙과 거리 규칙이 무시될 수 있다는 규칙을 포함할 수 있다.
일 실시예에서, 컴퓨터 시스템은 무통제 교차로에 언제 합류해야 하는지에 관해 신경 네트워크를 훈련시키기 위해 수동 운전 차량에 관한 수집된 데이터를 신경 네트워크에 대한 입력으로 사용한다. 입력은 각각의 접근 차량에 대한 속력 데이터, 거리 데이터 및 차선 데이터를 포함할 수 있다.
일 실시예에서, 자율 주행 차량 운전 모델은, 무통제 교통 교차로를 향해 운전하고 있던 특정의 차량에 대해, 교차로를 향해 운전하고 있던 다른 차량의 속력, 특정의 차량에서부터 각각의 다른 차량의 거리 및 각각의 다른 차량의 차선을 매핑한다. 예를 들어, 컴퓨터 시스템은 데이터를 통해 반복하여 접근 차량의 속력, 거리 및 차선을 별도의 데이터 구조에 저장할 수 있다. 자율 주행 차량이 무통제 교차로에 합류하려고 시도하고 있을 때 매핑된 데이터가 프로세싱될 수 있도록, 매핑된 데이터가 모델에 추가될 수 있다. 일 실시예에서, 데이터를 훈련 데이터로서 신경 네트워크에 입력되도록 준비시키기 위해 데이터가 매핑될 수 있다.
일 실시예에서, 추적 시스템(예를 들어, 다수의 센서를 포함하고 차량의 운전을 감지하는 센서 시스템)이 무통제 교통 교차로에 위치된다(또는 다수의 추적 시스템이 다수의 교통 교차로에 위치된다). 컴퓨터 시스템은, 각각의 추적 시스템으로부터, 운전 행동을 추적하는 감지의 결과를 수신한다. 컴퓨터 시스템은 수신된 데이터에 기초하여 또는 데이터가 수신될 때 자율 주행 차량 운전 모델을 업데이트할 수 있다.
일 실시예에서, 컴퓨터 시스템은 자율 주행 차량 운전 모델에 대한 베이스라인 모델(baseline model)을 생성한다. 구체적으로, 컴퓨터 시스템은 데이터(예를 들어, 수동 운전 차량의 합류 행동과 연관된 수신된 데이터)를 수집하고, 수집된 데이터로부터 데이터 세트를 식별하며, 데이터 세트를 베이스라인 모델에 피팅(fit)한다. 일 실시예에서, 컴퓨터 시스템은 우도비(likelihood ratio), Cox and Snell, Nagelkerke, McFadden 또는 Tjur 중 하나를 사용하여 베이스라인 모델을 생성한다.
도 14의 프로세스(1400)가 계속됨에 따라, 블록(1415)에서, 컴퓨터 시스템은 제어 회로를 사용하여 자율 주행 차량 운전 모델에 따라 자율 주행 차량을 동작시킨다. 일 실시예에서, 컴퓨터 시스템은 자율 주행 차량에 위치되고 자율 주행 차량 운전 모델에 따라 운전 명령을 생성한다. 구체적으로, 컴퓨터 시스템은 (예를 들어, 센서 입력에 기초하여) 자율 주행 차량에서부터 무통제 교통 교차로를 향해 운전하는 다른 차량까지의 거리 및 다른 차량의 속력을 결정한다. 컴퓨터 시스템은 자율 주행 차량 운전 모델에 따라 거리와 속력을 프로세싱하고, 거리와 속력을 프로세싱한 결과에 기초하여 무통제 교통 교차로에서 교통에 합류하거나 합류하지 말라는 명령을, 제어 회로에, 제공한다. 예를 들어, 자율 주행 차량 운전 모델은 속력, 거리를 입력으로서 받고, 그 정보에 기초하여, 자율 주행 차량이 교차로에 합류하는 것을 진행해야 하는지 또는 합류하지 않아야 하는지에 대한 결정을 출력할 수 있다. 출력이 자율 주행 차량이 합류해야 한다는 것을 나타내면, 컴퓨터 시스템은 교차로에 합류하라는 자율 주행 차량에 대한 하나 이상의 운전 커맨드를 생성한다. 출력이 자율 주행 차량이 교차로에 합류해서는 안된다는 것을 나타내면, 컴퓨터 시스템은 다른 차량이 교차로를 통과할 때 또다시 결정 프로세스를 시작한다.
일 실시예에서, 비-일시적 컴퓨터 판독 가능 저장 매체가 제공된다. 비-일시적 컴퓨터 판독 가능 저장 매체는 디바이스의 하나 이상의 프로세서에 의해 실행하기 위한 하나 이상의 프로그램을 저장하며, 하나 이상의 프로그램은, 하나 이상의 프로세서에 의해 실행될 때, 디바이스로 하여금 위에서 기술된 액션을 수행하게 하는 명령을 포함한다.
일 실시예에서, 컴퓨터 시스템은 자율 주행 차량과 분리되어 있고 자율 주행 차량으로부터 원격에 또는 자율 주행 차량 상에 위치될 수 있다. 컴퓨터 시스템은 복수의 수동 운전 차량의 운전 행동을 결정하도록 구성되며, 각각의 수동 운전 차량은 대응하는 무통제 교통 교차로에서 교통 합류 행동에 관여했다. 자율 주행 차량은 컴퓨터 실행 가능 명령을 저장하는 하나 이상의 컴퓨터 판독 가능 매체 및 컴퓨터 시스템에 통신 가능하게 결합되고 컴퓨터 실행 가능 명령을 실행하도록 구성된 하나 이상의 프로세서를 포함한다.
일 실시예에서, 자율 주행 차량은 컴퓨터 시스템으로부터 운전 행동을 수신하고, 운전 행동에 기초하여 자율 주행 차량 운전 모델을 결정하며, 자율 주행 차량 운전 모델은 무통제 교통 교차로에서 교통 합류 행동에 관여하는 자율 주행 차량에 의해 구현될 자율 주행 차량 운전 행동을 기술한다. 자율 주행 차량은 위에서 논의된 임의의 방법에 기초하여 자율 주행 차량 운전 모델을 결정할 수 있다. 자율 주행 차량은 이어서 자율 주행 차량 운전 모델에 따라 스스로 운행(self-operate)한다. 일 실시예에서, 컴퓨터 시스템은 차량과 분리되어 있으며 차량에 운전 행동을 제공할 수 있다. 일 실시예에서, 컴퓨터 시스템은 차량에 탑재되어(on-board) 있다.
일 실시예에서, 컴퓨터 시스템은 특정 상황 세트에서 인간 조작자가 무엇을 할 것인지를 예측한다. 예를 들어, 자율 주행 차량이 운전하고 있고 교차로에 합류하려고 시도하는 다른 차량(예를 들어, 인간-운전 차량)을 검출하면, 컴퓨터 시스템은 동일한 모델을 사용하여 인간 조작자가 합류를 시도할 것인지 또는 기다릴 것인지를 결정할 수 있다. 컴퓨터 시스템은 이 결정에 따라 차량을 운전할 수 있다. 따라서 컴퓨터 시스템이, 모델에 기초하여, 차량이 합류를 진행할 것이라고 결정하면, 컴퓨터 시스템은 충돌을 피하기 위해 차량을 약간 감속시킬 수 있다. 일 실시예에서, 자율 주행 차량이 교차로를 통과할 때까지 다른 차량이 기다릴 것으로 예측된다고 컴퓨터 시스템이 결정하면 컴퓨터 시스템은 차량을 가속시킨다. 일 실시예에서, 컴퓨터 시스템은 결정을 하기 위해 동일한 데이터에 기초하여 상이한 규칙을 갖는 상이한 모델을 생성할 수 있다.
정지 차량을 추월하여 운전하는 인간 운전 행동의 모델링
자율 주행 차량의 경우, 동일한 차선에 있는 정지 차량을 추월하여 운전하려고 시도하는 것은 다양한 이유로 어려운 일이다. 예를 들어, 자율 주행 차량은, 자체 속력 및 정지 차량까지의 거리에 부가하여, 인접 차선(들)에 있는 임의의 차량을 고려하여 정지 차량을 추월하기에 충분한 거리 및/또는 시간이 있는지 여부를 결정해야 한다. 그 계산은 실시간으로 이루어져야 하며, 이는 자율 주행 차량에 많은 양의 프로세싱 능력을 요구하거나 또는, 프로세싱이 서버에서 수행될 때, 서버에 대한 고속 접속을 요구한다. 따라서, 정지 차량를 추월하여 운전하기 위한 모델(예를 들어, 규칙 세트)을 생성하는 것은 자율 주행 차량이 더 적은 프로세싱 능력 및/또는 네트워크 접속성을 사용할 수 있게 한다.
도 15는 동일한 차선에 있는 정지 차량을 추월하려고 시도하는 자율 주행 차량의 일 예를 예시한다. 자율 주행 차량(1502)은 조건이 동일한 차선에 있는 정지 차량을 추월하기에 적절하다고 결정하는 것으로 예시되어 있다. 추월 기동 이전에, 자율 주행 차량(1502)은 어느 지점에서 정지 차량(1504)을 추월하는 것이 최적이거나 안전한지를 결정하기 위해 계산을 수행해야 한다. 구체적으로, 자율 주행 차량(1502)은 인접 차선에 있는 차량을 추월하는 것이 자율 주행 차량(1502)으로 하여금 인접 차선에 있을 수 있는 다른 차량과 충돌하게 할 것인지 여부와 추월을 하기에 충분한 종방향 거리 및 횡방향 거리가 이용 가능한지 여부를 결정해야 한다. 일 실시예에서, 자율 주행 차량(1502)은 이 결정과 지나치게 보수적인 것, 따라서 정지된 차량 뒤에서 너무 여러 번 정지하는 것 사이에서 균형을 이루어야 한다. 차량은 승객 편의 및 운전 시간을 최대화하는 것을 고려하여 이러한 결정을 해야 한다(예를 들어, 인간 운전자가 특정 상황 세트에서 기동을 수행할지 여부를 결정함). 일 구현예에서, 결정을 할 때, 자율 주행 차량(1502)은 동일한 차선에 있는 정지 차량을 추월하려고 시도하는 동안의 인간 행동을 모델링하는 자율 주행 차량 운전 모델을 사용한다.
도 16의 프로세스(1600)는 동일한 차선에 있는 정지 차량을 추월하여 운전하기 위한 자율 주행 차량 운전 모델을 생성하기 위해 컴퓨터 시스템이 취할 수 있는 액션을 예시한다. 도 16 및 본 개시에서의 다른 도면은 액션을 수행하는 컴퓨터 시스템을 참조하여 기술된다. 그렇지만, 본 기술 분야의 통상의 기술자는 도 16 및 다른 도면의 액션이 개시된 컴포넌트(예를 들어, 프로세서(146), 인지 모듈(402), 계획 모듈(404), 제어 모듈(406) 또는 다른 적합한 컴포넌트와 같은 자율 주행 차량에 로컬인 컴포넌트)에 의해 수행될 수 있다는 것을 이해할 것이다. 대안적으로, 컴퓨터 시스템의 일부 모듈은 자율 주행 차량으로부터 원격에 위치될 수 있고 일부 액션은 원격으로 수행되어 자율 주행 차량으로 송신될 수 있는 반면 다른 액션은 자율 주행 차량에서 수행될 수 있다.
블록(1605)에서, 컴퓨터 시스템은 복수의 수동 운전 차량(예를 들어, 인간 조작자에 의해 운전되고 운전 행동이 인간 조작자의 운전 기술에 의해 영향을 받는 차량)의 운전 행동을 결정하며, 각각의 수동 운전 차량은 동일한 차선에 있는 정지 차량을 추월하여 운전되었다(예를 들어, 정지 차량은 수동 운전 차량과 동일한 차선에 주차되거나 정차(stall)해 있을 수 있으며 인접 차선에서의 교통은 자율 주행 차량이 향하고 있는 것과 동일하거나 반대 방향으로 향할 수 있다). 운전 행동은 (i) 인간 운전자의 차량보다 앞서 있는, (ii) 인간 운전자의 차량과 동일한 차선에 있는, 그리고 (iii) 정지해 있는 차량을 추월하여 운전하려고 의도하는 인간 운전자의 운전 반응을 나타낸다.
일 실시예에서, 컴퓨터 시스템은 수동 운전 차량의 운전 행동을 기술하는 데이터를 수신한다. 데이터는 수동 운전 차량의 속도, 수동 운전 차량의 방향, 각각의 수동 운전 차량과 대응하는 정지 차량 사이의 종방향 거리, 각각의 수동 운전 차량이 정지 차량을 추월하여 운전하고 있었을 경우 횡방향 거리, 인접 차선의 방향 및 다른 적합한 데이터 중 하나 이상을 포함할 수 있다. 일 실시예에서, 모델은 도로 레벨에서 훈련될 수 있다. 즉, 특정 도로에 대한 모델이 저장되고, 자율 주행 차량이 특정 도로 상에 있을 때, 해당 도로가 검출되고, 그 모델이 검색되어 해당 도로에 대해 사용된다. 일 실시예에서, 모델은 도시 레벨에서 훈련될 수 있다. 즉, 특정 도시에 대한 모델이 저장되고, 자율 주행 차량이 해당 도시에 있는 것으로 검출될 때, 그 모델이 검색되어 해당 도시 내에서 사용된다. 일 실시예에서, 모델은 관할권 레벨 또는 국가 레벨에서 사용될 수 있다. 즉, 자율 주행 차량이 특정 관할권 내에 또는 특정 국가에 있을 때, 그 모델이 검색되어 사용한다. 본 기술 분야의 통상의 기술자는 모델의 사용 또는 사용 레벨이 한 지역 내에서의 운전 법규 및/또는 운전 행동의 동질성에 의존할 수 있음을 이해할 것이다.
일 실시예에서, 운전 행동을 결정하는 것은 각각의 수동 운전 차량이 대응하는 정지 차량을 추월하여 운전하기 위해 차선을 변경했다고 결정하는 것을 포함한다. 예를 들어, 컴퓨터 시스템은 수동 운전 차량과 연관된 수신된 데이터를 분석하고 수동 운전 차량이 (예를 들어, 정지 차량 뒤에서 정지하는 대신에) 정지 차량을 추월하여 운전하기 위해 차선을 변경한 경우의 데이터의 서브세트를 결정할 수 있다. 일 실시예에서, 수동 운전 차량이 정지 차량을 추월하여 운전하기 위해 차선을 변경하지 않은 시나리오와 연관된 데이터는 필터링 제거되는데 그 이유는 그것이 특정한 시나리오에서 유용하지 않을 수 있기 때문이다. 그렇지만, 상이한 실시예에서, 차선을 변경하지 않은(예를 들어, 정지 차량 뒤에서 정지한) 차량에 관한 데이터는 자율 주행 차량이 정지 차량을 추월하여 운전하려고 시도하는 대신에 어느 지점에서(예를 들어, 어느 속력 및 거리에서) 정지해야 하는지를 결정하는 데 유용하다.
일 실시예에서, 운전 행동을 결정하는 것은 각각의 수동 운전 차량이 인접 차선으로의 차선 변경을 개시했을 때 각각의 수동 운전 차량과 대응하는 정지 차량 사이의 종방향 거리를 결정하는 것을 포함한다. 예를 들어, 도 15는 종방향 거리의 일 예를 예시한다. 각각의 수동 운전 차량의 종방향 거리를 결정하는 것은 시스템이 인간 운전자가 어느 거리에서 차선 변경을 시작했는지를 평가하고 자율 주행 차량 운전 모델을 통해 해당 행동을 에뮬레이션할 수 있게 한다. 예를 들어, 컴퓨터 시스템은 각각의 수동 운전 차량에 대한 종방향 거리를 분석하고, 정지 차량에서부터의 거리에 기초하여 차선을 변경하기 위한 모델(예를 들어, 하나 이상의 규칙)을 생성할 수 있다. 컴퓨터 시스템은, 거리에 기초하여, 평균(mean) 거리, 중앙값(median) 거리 및 최빈값(mode) 거리 중 하나 이상을 계산하고 하나 이상의 규칙을 그 거리에 기반할 수 있다. 예를 들어, 규칙은 자율 주행 차량이 정지 차량에서부터 특정 거리에서 차선 변경을 시작해야 한다는 것을 나타낼 수 있으며, 여기서 특정 거리는 운전 행동과 연관된 데이터로부터 계산된 평균 거리, 최빈값 거리 또는 중앙값 거리일 수 있다.
일 실시예에서, 운전 행동을 결정하는 것은 차선 변경을 개시할 때의 각각의 수동 운전 차량의 속력을 결정하는 것을 포함한다. 예를 들어, 컴퓨터 시스템은 각각의 수동 운전 차량에 대응하는 속력을 분석하고 수동 운전 차량이 정지 차량을 추월하여 운전하기 위해 차선 변경을 시작한 평균 속력, 최빈값 속력 및 중앙값 속력 중 하나 이상을 결정할 수 있다. 컴퓨터 시스템은 속력에 기초한 규칙을 생성하거나 모델에 추가할 수 있다. 예를 들어, 규칙은 자율 주행 차량의 속력이 최빈값 속력, 평균 속력 또는 중앙값 속력 중 하나보다 크면, 제어 회로가 자율 주행 차량을 더 낮은 속력으로 감속시켜야 한다는 것을 나타낼 수 있다.
일 실시예에서, 운전 행동을 결정하는 것은 각각의 수동 운전 차량이 정지 차량을 추월하여 운전했을 때 각각의 정지 차량과 인접 차선에 있는 대응하는 수동 운전 차량 사이의 횡방향 거리를 결정하는 것을 포함한다. 예를 들어, 컴퓨터 시스템은 정지 차량을 추월할 때 각각의 수동 운전 차량이 대응하는 정지 차량에 얼마나 가까웠는지를 분석할 수 있다. 컴퓨터 시스템은 수동 운전 차량이 대응하는 정지 차량을 추월하는 각각의 인스턴스에 대한 평균 횡방향 거리, 중앙값 횡방향 거리 및 최빈값 횡방향 거리 중 하나 이상을 결정할 수 있다. 컴퓨터 시스템은 이 정보에 기초하여 자율 주행 차량 운전 모델을 생성 및/또는 업데이트할 수 있다. 즉, 컴퓨터 시스템은 자율 주행 차량이 결정된 거리들 중 하나보다 작지 않은 횡방향 거리에서 정지 차량을 추월할 수 있게 하는 방식으로 자율 주행 차량이 기동해야 한다는 것을 나타내는 규칙을 생성할 수 있다.
일 실시예에서, 운전 행동을 결정하는 것은 각각의 수동 운전 차량의 차선에 인접한 차선에서의 교통 방향을 결정하는 것을 포함한다. 인접 차선에서의 교통 방향에 대한 데이터는 인간 운전자가 특정 기동을 수행할 때 교통 방향을 고려하는지 여부를 나타낼 수 있다. 예를 들어, 동일한 방향의 교통을 갖는 인접 차선이 있는 곳에서 그리고 상이한 방향의 교통을 갖는 인접 차선이 있는 다른 곳에서 기동을 수행할 때 각각의 특정 기동의 특성(예를 들어, 속력, 시작 거리, 기동이 수행되는지 또는 차량이 정지되는지, 및/또는 다른 적합한 특성)의 변화가 임계치 내에 있다면, 컴퓨터 시스템은 차선 방향이 기동에 영향을 미치지 않는다고 결정한다. 그렇지만, 특성의 변화가 임계치를 충족시키거나 임계치를 초과하면, 컴퓨터 시스템은 차선 방향이 기동에 영향을 미친다고 결정한다. 예를 들어, 컴퓨터 시스템은 정지 차량을 추월하여 운전할 때 수동 운전 차량의 각각의 차선 변경 기동을 분석하고, 각각의 수동 운전 차량이 동일한 방향의 차선 또는 상이한 방향의 차선으로 차선을 변경했는지를 결정할 수 있다. 예를 들어, 컴퓨터 시스템이, 많은 경우에 또는 대부분의 경우에, 수동 운전 차량이 동일한 방향의 차선으로 차선을 변경했다고 결정하면, 컴퓨터 시스템은 동일한 방향의 차선으로 차선을 변경하는 모델을 생성하거나 업데이트한다. 그렇지만, 인접 차선이 수동 운전 차량의 차선과 동일한 방향이 아니면, 컴퓨터 시스템은 수동 운전 차량의 운전자에 의해 어떤 액션이 취해졌는지를 분석하고 그 액션을 모델에 추가할 수 있다(예를 들어, 운전자는 정지했고 기다렸다).
도 16의 프로세스(1600)를 계속하기 위해, 블록(1610)에서, 컴퓨터 시스템은 운전 행동에 기초하여 자율 주행 차량 운전 모델을 결정하며, 자율 주행 차량 운전 모델은 동일한 차선에 있는 정지 차량을 추월하여 운전하려고 시도하는 자율 주행 차량에 의해 구현될 자율 주행 차량 운전 행동을 기술한다. 예를 들어, 컴퓨터 시스템은 수동 운전 차량의 각각의 인스턴스를 분석하고, 수동 운전 차량이 추월 기동을 시작한, 수동 운전 차량과 정지 차량 사이의 최소 거리(종방향 거리)를 결정할 수 있다. 컴퓨터 시스템은 이 정보에 기초하여 모델의 일부(예를 들어, 규칙)를 생성할 수 있다. 규칙은 자율 주행 차량이 정지 차량으로부터 최소 종방향 거리 이상 떨어져 있다면, 자율 주행 차량이 추월 기동을 시작할 수 있다는 것을 나타낼 수 있다.
다른 예에서, 컴퓨터 시스템은 수동 운전 차량의 각각의 인스턴스를 분석하고, 수동 운전 차량이 정지 차량을 추월하고 있었을 때의 수동 운전 차량과 정지 차량 사이의 최소 거리(횡방향 거리)를 결정할 수 있다. 그 거리에 기초하여, 컴퓨터 시스템은 (예를 들어, 자율 주행 차량 운전 모델에 포함시킬) 규칙을 생성할 수 있다. 예를 들어, 규칙은 최소 횡방향 거리에 도달할 때까지 자율 주행 차량이 다른 차선으로 계속 변경해야 한다는 것을 나타낼 수 있다. (방향 전환(turn)의 정도에 기초하여) 최소 횡방향 거리에 도달할 때, 자율 주행 차량은 차선 변경을 완료하기 위해 그의 방향을 조정해야 한다.
일 실시예에서, 자율 주행 차량 운전 모델은 운전 행동에 기초하여 자율 주행 차량이 정지 차량을 추월하기 위해 언제 차선 변경을 개시해야 하는지를 결정하도록 구성된다. 예를 들어, 운전 행동에 기초하여, 컴퓨터 시스템은 동일한 차선에 있는 정지 차량을 추월하기 위한 모델(예를 들어, 하나 이상의 규칙을 포함함)을 생성할 수 있다. 위에서 논의된 바와 같이, 컴퓨터 시스템은, 운전 행동 데이터로부터, 수동 운전 차량이 정지 차량을 추월하기 위해 추월 기동을 시작한, 평균 종방향 거리, 최빈값 종방향 거리, 중앙값 종방향 거리, 최대 종방향 거리, 및 최소 종방향 거리 중 하나 이상을 결정할 수 있다. 컴퓨터 시스템은 그 정보에 기초하여 하나 이상의 규칙을 생성할 수 있다. 예를 들어, 규칙은 자율 주행 차량이 정지 차량에서부터 특정한 종방향 거리 이상 떨어져 있을 때 자율 주행 차량이 추월 기동을 시작할 수 있다는 것을 나타낼 수 있다. 그 종방향 거리는 평균 종방향 거리, 최빈값 종방향 거리, 중앙값 종방향 거리, 최대 종방향 거리, 최소 종방향 거리, 또는 다른 적합한 종방향 거리일 수 있다.
일 실시예에서, 컴퓨터 시스템은, 자율 주행 차량 운전 모델을 생성할 때, 각각의 수동 운전 차량의 속력을 고려한다. 예를 들어, 컴퓨터 시스템은, 운전 행동에 기초하여, 평균, 최빈값(예를 들어, 속력을 반올림할 때), 중앙값, 최댓값, 및 최솟값 중 하나 이상을 결정할 수 있다. 값들 중 하나 이상에 기초하여, 컴퓨터 시스템은 자율 주행 차량이 결정된 속력을 달성하기 위해 정지 차량을 추월하기 전에 속도를 높여야/속도를 줄여야 한다는 것을 나타내는 규칙을 생성할 수 있다. 일 실시예에서, 컴퓨터 시스템은 속력과 종방향 거리의 조합에 기초하여 규칙을 생성한다. 예를 들어, 컴퓨터 시스템은 수동 운전 차량의 운전 행동을 분석하고, 각각의 수동 운전 차량에 대해, 수동 운전 차량이 이동하고 있던 속력 및 추월 기동이 시작되었던 종방향 거리를 결정할 수 있다. 따라서, 속력과 종방향 거리의 쌍에 기초하여, 컴퓨터 시스템은, 자율 주행 차량이 특정한 속도로 이동하고 있으면, 추월 기동이 특정 거리에서(또는 특정 거리에 도달하기 전에) 시작되어야 한다는 것을 나타내는 규칙을 생성할 수 있다.
부가적으로 또는 대안적으로, 컴퓨터 시스템은, 자율 주행 차량이 정지 차량에 너무 가까워서, 자율 주행 차량의 속력에 기초하여, 추월 기동을 수행하기 위해 더 많은 거리가 필요한 경우, 운전 행동의 파라미터 내에서 추월 기동이 이루어질 수 있도록 자율 주행 차량이 속도를 줄여야 한다는 것을 나타내는 (자율 주행 차량 운전 모델에 대한) 규칙을 생성할 수 있다.
일 실시예에서, 컴퓨터 시스템은 수동 운전 차량이 차선을 변경한 차선(예를 들어, 인접 차선)의 방향을 고려하여 자율 주행 차량 운전 모델을 생성/업데이트한다. 예를 들어, 컴퓨터 시스템은, 인접 차선이 자율 주행 차량의 차선과 상이한 방향으로 있는 경우, 자율 주행 차량이 최소 종방향 거리에서(그리고, 일부 경우에, 인접 차선에서 가능한 한 적은 시간을 소비하기 위해 증가된 속력으로) 차선을 변경해야(추월 기동을 시작해야) 하고, 이어서 자율 주행 차량이 정지 차량을 추월할 때, 자율 주행 차량이 즉시 다시 차선을 변경해야 한다는 것을 나타내는 모델에 대한 규칙을 생성할 수 있다. 다른 예에서, 인접 차선이 자율 주행 차량이 운전하고 있는 차선과 같은 방향으로 있는 경우, 컴퓨터 시스템은 자율 주행 차량이 최소 거리에 도달하기 일정 시간/거리 이전에 차선을 변경해야 한다는 것을 나타내는 규칙을 생성할 수 있다.
도 16의 프로세스(1600)를 계속하기 위해, 블록(1615)에서, 컴퓨터 시스템은, 제어 회로를 사용하여, 자율 주행 차량 운전 모델에 따라 자율 주행 차량을 동작시킨다. 위에서 논의된 바와 같이, 컴퓨터 시스템은 자율 주행 차량에 위치될 수 있거나 또는 자율 주행 차량으로부터 원격에 위치될 수 있다. 컴퓨터 시스템이 자율 주행 차량에 위치되는 경우에, 컴퓨터 시스템은 자율 주행 차량 운전 모델에 따라 운전하도록 다른 차량 시스템에 지시할 수 있다. 컴퓨터 시스템이 자율 주행 차량으로부터 원격에 위치되는 경우에, 컴퓨터 시스템은 커맨드를 (예를 들어, 무선 네트워크를 통해) 차량에 전송할 수 있다.
일 실시예에서, 컴퓨터 시스템은 특정 상황 세트에서 인간 조작자가 무엇을 할 것인지를 예측한다. 예를 들어, (예를 들어, 승객이 차량에서 내릴 필요가 있기 때문에) 자율 주행 차량이 차선에서 정지해야 하는 경우, 이 시스템은 동일한 모델을 사용하여 후방 운전 차량(vehicle driving behind)이 (예를 들어, 그의 속력 및 정지 차량에서부터의 거리가 주어진 경우) 추월하여 운전하거나 정지하기에 충분한 거리를 갖는지 여부를 결정할 수 있다. 일 실시예에서, 컴퓨터 시스템은 결정을 하기 위해 동일한 데이터에 기초하여 상이한 규칙을 갖는 상이한 모델을 생성할 수 있다.
일 실시예에서, 컴퓨터 시스템은 이하의 액션을 수행함으로써 자율 주행 차량 운전 모델에 따라 자율 주행 차량을 동작시킨다. 컴퓨터 시스템은 자율 주행 차량의 속력, 자율 주행 차량의 방향, 및 인접 차선에서의 교통 방향을 결정한다. 예를 들어, 컴퓨터 시스템은 차량에 위치된 (위에서 설명된 바와 같은) 하나 이상의 센서(예를 들어, 카메라, RADAR, LiDAR, 및/또는 다른 적합한 센서)로부터 그 정보를 수신할 수 있다. 자율 주행 차량 운전 모델을 사용하여, 컴퓨터 시스템은 동일한 차선에 있는 정지 차량을 추월하기 위한 종방향 거리와 횡방향 거리를 결정한다. 예를 들어, 컴퓨터 시스템은 자율 주행 차량 운전 모델에 액세스하고 모델과 연관된 하나 이상의 규칙을 검색할 수 있다. 규칙은 종방향 거리, 횡방향 거리, 및 차선 방향 중 하나 이상에 대한 임계치를 포함할 수 있다. 컴퓨터 시스템은 센서 데이터를 규칙에 적용하고, 이 적용에 기초하여, 적어도 자율 주행 차량과 정지 차량 사이의 거리가 종방향 거리보다 클 때 차선 변경을 개시하여, 적어도 횡방향 거리를 두고 정지 차량을 추월하라는 명령을 자율 주행 차량에 제공할 수 있다.
일 실시예에서, 자율 주행 차량은 인접 차선이 반대 방향으로 이동하는 교통을 갖는 경우(예를 들어, 반대 방향의 교통을 갖는 2개의 차선을 갖는 2차선 도로 상에서) 자율 주행 차량이 전방 이동 차량(moving vehicle in front)을 추월하려고 시도하는 상황에 이 모델을 적용한다. 이 상황에서, 자율 주행 차량은 (예를 들어, 전방 차량 뒤에서 운전하는 동안) 추월 기동을 진행할지 또는 더 나은 기회를 기다릴지를 결정해야 한다. 이 실시예 및 다른 실시예에서, 자율 주행 차량은 인간 조작자 결정을 나타내는 데이터를 사용하여, 상이한 방향으로 흐르는 교통을 갖는 인접 차선에 합류하는 것을 진행할지 여부를 결정한다. 이 결정은, 예를 들어, 전방 차량의 속력, 인접 차선에 있는 임의의 다가오는 차량의 속력 및/또는 거리, 및 교통 법규(예를 들어, 추월이 허용되는지 여부, 속력 제한, 및/또는 다른 적합한 교통 법규)에 기초한다.
일 실시예에서, 컴퓨터 시스템은 운전 행동을 추적하기 위해 정지 차량에 또는 그 근처에 위치된 추적 시스템(예를 들어, 수동 운전 차량의 운전 행동을 감지하고 운전 행동을 추적 시스템과 동일한 위치에 있을 수 있거나 그렇지 않을 수 있는 컴퓨터 시스템에 송신하는 센서 시스템)으로부터 데이터를 수신한다. 예를 들어, 정지 차량은 추월하여 운전하려고 시도하고 있는 각각의 차량을 추적하고 다른 차량의 속력, 차량이 추월 기동을 시작할 때의 종방향 거리, 기동이 실행될 때의 횡방향 거리, 및 다른 적합한 데이터를 기록하는 센서를 포함할 수 있다.
일 실시예에서, 운전 행동 데이터를 수집하여 프로세싱하는 컴퓨터 시스템은 차량과 분리되어 있을 수 있다. 예를 들어, 컴퓨터 시스템은 차량에 추가될 수 있는 모듈일 수 있거나 또는 차량으로부터 원격에 위치될 수 있다. 컴퓨터 시스템은 복수의 수동 운전 차량(예를 들어, 수동 운전 차량은 인간 조작자에 의해 운전되고 운전 행동이 인간 조작자의 운전 기술에 의해 영향을 받는 차량)의 운전 행동(예를 들어, 운전 행동은 (i) 인간 조작자의 차량보다 앞서 있는, (ii) 인간 조작자의 차량과 동일한 차선에 있는 그리고 (iii) 정지해 있는 차량을 추월하여 운전하려고 의도하는 인간 조작자의 운전 반응을 나타냄)을 결정하도록 구성되며, 각각의 수동 운전 차량은 동일한 차선에 있는 정지 차량을 추월하여 운전되었다(예를 들어, 정지 차량은 수동 운전 차량과 동일한 차선에 주차되거나 정차해 있을 수 있으며; 인접 차선에서의 교통은 AV와 동일하거나 반대 방향으로 향할 수 있다).
자율 주행 차량은, 이 경우에, 컴퓨터 실행 가능 명령을 저장하는 하나 이상의 컴퓨터 판독 가능 매체(예를 들어, 하나 이상의 하드 드라이브, 플래시 드라이버를 포함하는 저장 디바이스) 및 컴퓨터 시스템에 통신 가능하게 결합되고 컴퓨터 실행 가능 명령을 실행하도록 - 실행은 이하의 동작을 수행함 - 구성된 하나 이상의 프로세서를 포함한다. 자율 주행 차량은, 차량에 의해, 컴퓨터 시스템으로부터 운전 행동을 수신한다. 예를 들어, 자율 주행 차량은 수집된 운전 행동에 기초하여 프로세싱된 데이터를 수신할 수 있다. 자율 주행 차량은 종방향 거리, 속력, 횡방향 거리, 차선 방향, 및 다른 적합한 정보를 수신할 수 있다.
자율 주행 차량은 추적된 운전 행동에 기초하여 자율 주행 차량 운전 모델(예를 들어, 자율 주행 차량의 주어진 속도 및 방향에 대해, 이 모델은 정지 차량을 추월하여 운전하도록 자율 주행 차량에 명령함)을 결정/생성하며, 자율 주행 차량 운전 모델은 자율 주행 차량이 운전하고 있는 동일한 차선에 있는 정지 차량을 추월하여 운전하기 위해 자율 주행 차량에 의해 구현될 자율 주행 차량 운전 행동(예를 들어, 자율 주행 차량의 속도 및 방향)을 기술한다. 이 경우에, 자율 주행 차량은 위에서 설명된 액션(예를 들어, 수신된 데이터를 사용하는 규칙을 생성하는 것)을 사용하여 모델을 생성할 수 있다. 자율 주행 차량은 이어서 자율 주행 차량 운전 모델에 따라 스스로 운행한다.
위에서 논의된 바와 같이, 컴퓨터 시스템은 자율 주행 차량에 위치될 수 있거나 또는 자율 주행 차량과 분리되어 있을 수 있다(예를 들어, 자율 주행 차량으로부터 멀리 떨어져 위치될 수 있음). 컴퓨터 시스템은 차량과 분리되어 있다. 컴퓨터 시스템은, 이 경우에, 수집된 데이터를 분석하고 운전 행동을 자율 주행 차량에 제공할 수 있으며, 자율 주행 차량은 차례로 자율 주행 차량 운전 모델을 생성할 수 있다. 일 실시예에서, 자율 주행 차량은 특정 자율 주행 차량의 기동/운전 제한/특성을 고려하여 자율 주행 차량 운전 모델을 생성한다. 예를 들어, 브레이크가 걸릴 때 차량이 속도를 줄이는 데 걸리는 시간량, 자율 주행 차량의 중량, 센서의 감도(예를 들어, 정지 차량이 어느 거리에서 검출될 수 있는지) 및 자율 주행 차량의 다른 적합한 제한/특성.
일 실시예에서, 비-일시적 컴퓨터 판독 가능 저장 매체가 제공된다. 비-일시적 컴퓨터 판독 가능 저장 매체는 디바이스의 하나 이상의 프로세서에 의해 실행하기 위한 하나 이상의 프로그램을 저장하며, 하나 이상의 프로그램은, 하나 이상의 프로세서에 의해 실행될 때, 디바이스로 하여금 위에서 기술된 액션을 수행하게 하는 명령을 포함한다.
차도 무단 횡단자를 피하는 인간 운전 행동의 모델링
자율 주행 차량의 경우, (동일한 차선에 있든 자율 주행 차량 근처에 있는 차선들 중 하나에 있든) 도로에 있는 차도 무단 횡단자를 피하려고 시도하는 것은 다양한 이유로 어려운 일이다. 예를 들어, 자율 주행 차량은, 자체 속력 및 위치에 부가하여, 차도 무단 횡단자가 자율 주행 차량의 차선에 있기 전이나 그 후에 차도 무단 횡단자를 피하기에 충분한 거리 및/또는 시간(그의 속력이 주어진 경우)이 있는지 여부, 또는 자율 주행 차량이 인접 차선으로 변경해야 하는지 여부(인접 차선이 이용 가능한 경우)를 결정해야 한다. 자율 주행 차량은 또한 인접 차선(들)에 있는 임의의 차량을 고려해야 한다. 그 계산은 실시간으로 이루어져야 하며, 이는 자율 주행 차량에 많은 양의 프로세싱 능력을 요구하거나 또는, 프로세싱이 서버에서 수행될 때, 서버에 대한 고속 접속을 요구한다. 그에 부가하여, 자율 주행 차량은 교차로(1300)에 합류하는 것이 인접 차선에 있는 차량으로 하여금 감속하게 할 것인지 및/또는 갑자기 정지하게 할 것인지 여부를 결정해야 한다. 자율 주행 차량은 이 결정과 지나치게 보수적인 것, 따라서 차도 무단 횡단자가 차선에서 나가기를 너무 오래 기다리는 것 사이에서 균형을 이루어야 한다. 차량은 승객 편의 및 교통 통과량을 최대화하는 것을 고려하여 이러한 결정을 해야 한다(예를 들어, 인간 운전자가 특정 상황 세트에서 기동을 수행할지 여부를 결정함). 따라서, 차도 무단 횡단자의 존재 시에 운전하기 위한 모델(예를 들어, 규칙 세트)을 생성하는 것은 자율 주행 차량이 더 적은 프로세싱 능력 및/또는 네트워크 접속성을 사용할 수 있게 한다.
도 17 내지 도 19는 차도 무단 횡단자를 피하는 것에 관련된 다양한 시나리오의 예를 예시한다. 도 17은 인접 차선이 동일한 방향의 교통을 갖는 2개의 차선을 갖는 도로 상에서 자율 주행 차량이 운전하고 있을 때 차도 무단 횡단자를 피하기 위한 시나리오를 예시한다. 인접 차선에서의 교통 방향에 대한 데이터는 인간 운전자가 특정 기동을 수행할 때 교통 방향을 고려하는지 여부를 나타낼 수 있다. 예를 들어, 동일한 방향의 교통을 갖는 인접 차선이 있는 곳에서 그리고 상이한 방향의 교통을 갖는 인접 차선이 있는 다른 곳에서 기동을 수행할 때 각각의 특정 기동의 특성(예를 들어, 속력, 시작 거리, 기동이 수행되는지 또는 차량이 정지되는지, 및/또는 다른 적합한 특성)의 변화가 임계치 내에 있다면, 컴퓨터 시스템은 차선 방향이 기동에 영향을 미치지 않는다고 결정한다. 그렇지만, 특성의 변화가 임계치를 충족시키거나 임계치를 초과하면, 컴퓨터 시스템은 차선 방향이 기동에 영향을 미친다고 결정한다. 구체적으로, 도 17은 동일한 방향으로 교통을 허용하는 2개의 차선(차선(1702) 및 차선(1704))을 갖는 도로를 예시한다. 자율 주행 차량(1706)은 차선(1704)에서 진행하고 있다. 차량과 동일한 차선(차선(1704))에 차도 무단 횡단자(1708)가 또한 있다. 이 시나리오에서, 자율 주행 차량은 차도 무단 횡단자를 어떻게 피할지를 결정해야 한다. 예를 들어, 자율 주행 차량은 차선을 변경할지, 속도를 줄일지, 정지할지, 아무것도 하지 않을지, 상이한 기동을 수행할지, 또는 여러 기동의 조합을 수행할지를 결정해야 한다. 결정을 할 때, 자율 주행 차량은 자체 속력, 인접 차선에서의 교통, 차도 무단 횡단자의 속도(속력과 방향 둘 모두), 및 다른 적합한 인자와 같은 인자를 고려해야 할지도 모른다.
도 18은 인접 차선이 반대 방향의 교통을 갖는 2개의 차선을 갖는 도로 상에서 자율 주행 차량이 운전하고 있을 때 차도 무단 횡단자를 피하기 위한 시나리오를 예시한다. 구체적으로, 도 18은 상이한 방향으로 교통을 허용하는 2개의 차선(차선(1802) 및 차선(1804))을 갖는 도로를 예시한다. 자율 주행 차량(1806)은 차선(1804)에서 진행하고 있다. 차량과 동일한 차선(차선(1804))에 차도 무단 횡단자(1808)가 또한 있다. 이 시나리오에서, 자율 주행 차량은 차도 무단 횡단자(1808)를 어떻게 피할지를 결정해야 한다. 예를 들어, 자율 주행 차량은 차선을 변경할지(이는 그 위치에서 불법일 수 있음), 속도를 줄일지, 정지할지, 아무것도 하지 않을지, 상이한 기동을 수행할지, 또는 여러 기동의 조합을 수행할지를 결정해야 한다. 결정을 할 때, 자율 주행 차량은 자체 속력, 인접 차선에서의 교통, 차도 무단 횡단자의 속도(속력과 방향 둘 모두), 교통 규칙, 및 다른 적합한 인자와 같은 인자를 고려해야 할지도 모른다. 일 실시예에서, 모델은 도로 레벨에서 훈련될 수 있다. 즉, 특정 도로에 대한 모델이 저장되고, 자율 주행 차량이 특정 도로에 접근할 때, 해당 도로가 검출되고, 그 모델이 검색되어 해당 도로에 대해 사용된다. 일 실시예에서, 모델은 도시 레벨에서 훈련될 수 있다. 즉, 특정 도시에 대한 모델이 저장되고, 자율 주행 차량이 해당 도시에 있는 것으로 검출될 때, 그 모델이 검색되어 해당 도시 내에서 사용된다. 일 실시예에서, 모델은 관할권 레벨 또는 국가 레벨에서 사용될 수 있다. 즉, 자율 주행 차량이 특정 관할권 내에 또는 특정 국가에 있을 때, 그 모델이 검색되어 사용한다. 본 기술 분야의 통상의 기술자는 모델의 사용 또는 사용 레벨이 한 지역 내에서의 운전 법규 및/또는 운전 행동의 동질성에 의존할 수 있음을 이해할 것이다.
도 19는 자율 주행 차량이 단일 차선을 갖는 도로 상에서 운전하고 있을 때 차도 무단 횡단자를 피하기 위한 시나리오를 예시한다. 구체적으로, 도 19는 자율 주행 차량(1906)이 진행하고 있는 하나의 차선(차선(1902))을 갖는 도로를 예시한다. 차량과 동일한 차선(차선(1902))에 차도 무단 횡단자(1908)가 또한 있다. 이 시나리오에서, 자율 주행 차량은 차도 무단 횡단자(1908)를 어떻게 피할지를 결정해야 한다. 예를 들어, 자율 주행 차량은 길가에 댈지(pull over)(길 어깨가 있는 경우), 속도를 줄일지, 정지할지, 아무것도 하지 않을지, 상이한 기동을 수행할지, 또는 여러 기동의 조합을 수행할지를 결정해야 한다. 결정을 할 때, 자율 주행 차량은 자체 속력, 길 어깨의 존재, 차도 무단 횡단자의 속도(속력과 방향 둘 모두), 교통 규칙, 및 다른 적합한 인자와 같은 인자를 고려해야 할지도 모른다. 본 명세서에서 언급되는 바와 같이, 용어 "길 어깨"는, 자동차가 정지할 필요가 있는 경우, 자동차가 정지할 수 있는 도로의 측면에 있는 지면 영역을 지칭한다.
도 20의 프로세스(2000)는 엔티티(예를 들어, 차도 무단 횡단자, 동물, 자전거 운전자, 또는 다른 적합한 엔티티)를 피하기 위한 자율 주행 차량 운전 모델을 생성하기 위해 컴퓨터 시스템이 취할 수 있는 액션을 예시한다. 도 20 및 본 개시에서의 다른 도면은 액션을 수행하는 컴퓨터 시스템을 참조하여 기술된다. 그렇지만, 본 기술 분야의 통상의 기술자는 도 20 및 다른 도면의 액션이 개시된 컴포넌트(예를 들어, 프로세서(146), 인지 모듈(402), 계획 모듈(404), 제어 모듈(406) 또는 다른 적합한 컴포넌트와 같은 자율 주행 차량에 로컬인 컴포넌트)에 의해 수행될 수 있다는 것을 이해할 것이다. 대안적으로, 컴퓨터 시스템의 일부 모듈은 자율 주행 차량으로부터 원격에 위치될 수 있고 일부 액션은 원격으로 수행되어 자율 주행 차량으로 송신될 수 있는 반면 다른 액션은 자율 주행 차량에서 수행될 수 있다.
블록(2005)에서, 컴퓨터 시스템은 복수의 수동 운전 차량의 운전 행동을 결정하며(예를 들어, 수동 운전 차량은 인간 조작자에 의해 운전되고 운전 행동이 인간 조작자의 운전 기술에 영향을 받는 차량임), 각각의 수동 운전 차량은 대응하는 엔티티가 진입한 차선에서 운전되었다. 예를 들어, 운전 행동은 차도 무단 횡단자가 인간 조작자의 차량의 운전 차선에 진입하는 것을 관찰하는 인간 조작자의 운전 반응을 나타낸다. 차도 무단 횡단자는 인간, 동물, 자전거 운전자, 또는 다른 적합한 엔티티일 수 있다.
일 실시예에서, 운전 행동을 결정하는 것은 각각의 수동 운전 차량이 운전된 차선을 구성하는 차선의 개수를 결정하는 것을 포함한다. 예를 들어, 컴퓨터 시스템은, 각각의 수동 운전 차량에 대해, 수동 운전 차량이 운전하고 있던 도로에서의 차선의 개수를 결정할 수 있다. 도 17 내지 도 19는 1개의 차선을 갖는 도로와 2개의 차선을 가진 도로의 예를 도시하지만, 본 기술 분야의 통상의 기술자는 더 많은 차선을 갖는 다른 시나리오가 본 개시에 의해 고려된다는 것을 이해할 것이다. 이 정보가 중요한데, 그 이유는 이 정보가, 자율 주행 차량 운전 모델을 통해, 어느 기동이 시도될 수 있고 어느 기동이 시도될 수 없는지(예를 들어, 인접 차선이 이용 가능한 경우, 인접 차선으로 변경)를 차량에 알릴 수 있기 때문이다.
일 실시예에서, 컴퓨터 시스템은 각각의 수동 운전 차량이 운전된 도로의 각각의 차선에서의 교통 방향을 결정한다. 예를 들어, 도 17은 동일한 방향으로 교통을 갖는 2개의 차선을 예시하며, 잠재적으로 차량이 인접 차선으로 변경할 수 있게 한다. 도 18은 상이한 방향으로 교통을 갖는 2개의 차선을 예시하며, 잠재적으로 자율 주행 차량이 가질 수 있는 옵션으로부터 차선 변경 기동을 제거한다.
일 실시예에서, 컴퓨터 시스템은, 운전 행동을 결정할 때, 각각의 수동 운전 차량이 운전된 차선에 진입하기 전에 대응하는 엔티티가 건너간 차선의 개수를 결정한다. 예를 들어, 엔티티가 특정 방향으로 하나 또는 2개의 차선을 건넜다면, 이는 엔티티가 그 차선으로 돌아가지 않을 것이라는 단서를 인간 운전자에게 제공했을 수 있다. 이 시나리오는 수동 운전 차량의 조작자를 엔티티가 이미 건너간 인접 차선에 합류하도록 유도했을 수 있다. 컴퓨터 시스템은 이 정보에 기초하여 자율 주행 차량 운전 모델을 생성/업데이트할 수 있다. 예를 들어, 컴퓨터 시스템은, 그 정보에 기초하여, 한 규칙을 모델에 추가할 수 있으며, 이 규칙은, 엔티티가 자율 주행 차량이 운전하고 있는 차선에 진입하기 전에 특정한 차선을 건넜다면, 자율 주행 차량이 엔티티가 건너갔던 차선에 합류해야 한다는 것을 나타낸다.
일 실시예에서, 컴퓨터 시스템은, 운전 행동을 결정할 때, 대응하는 엔티티가 각각의 수동 운전 차량이 운전된 차선에 진입하기 전에 그 개수의 차선을 건너갔던 각도를 결정한다. 예를 들어, 횡단(crossing)의 각도에 관한 정보는 인간 운전자에게 엔티티의 궤적을 알려주었을 수 있으며, 그에 의해 엔티티의 궤적을 피하는 기동으로 엔티티를 피할 수 있게 한다. 그 정보에 기초하여, 컴퓨터 시스템은 모델에 대한 규칙을 생성할 수 있다. 규칙은 각도(및 엔티티의 속력)에 기초하여 엔티티의 궤적을 계산하는 것을 요구할 수 있다. 규칙은, 엔티티의 궤적에 기초하여, 가능한 경우, 엔티티의 궤적의 반대 방향에 위치되는 차선으로 차선을 변경해야 한다는 것을 나타낼 수 있다.
일 실시예에서, 컴퓨터 시스템은, 운전 행동을 결정할 때, 대응하는 엔티티가 지정된 횡단 위치에서 차선을 건넜다고 결정한다(예를 들어, 지정된 횡단 위치는 횡단보도 또는 흑백 줄무늬 횡단보도(zebra crossing) 또는 공사 구역이다). 예를 들어, 엔티티의 횡단 위치가 지정된 횡단 위치인 경우, 컴퓨터 시스템은 정지하기 위한 모델에 대한 규칙을 생성할 수 있다. 규칙은 (예를 들어, 사람이 지정된 횡단 위치에서 언제든지 건너도록 허용되어 있는) 그 위치의 교통 규칙을 고려할 수 있다.
일 실시예에서, 컴퓨터 시스템은, 운전 행동을 결정할 때, 대응하는 엔티티가 지정된 횡단 위치 및 각각의 수동 운전 차량이 운전된 차선의 일 부분을 포함하는 궤적을 따르고 있었다고 결정하고, 지정된 횡단 위치를 제외시킨다. 예를 들어, 보행자가 지정된 횡단 위치에서 건너가고 있는 경우, 해당 보행자는 차도 무단 횡단자가 아닐 수 있고 따라서 이 시나리오가 적용되지 않을 수 있다. 따라서, 컴퓨터 시스템은 모델 구축 프로세스로부터 그 데이터를 제거할 수 있다. 일 실시예에서, 컴퓨터 시스템은 지정된 횡단 위치가 차지하는 영역을 확장한다. 즉, 컴퓨터 시스템은 보행자가 차도 무단 횡단자가 아니라는 결정에 관한 데이터를 위해 완충 지대(buffer zone)를 생성할 수 있다. 예를 들어, 지역이 공사 구역인 경우, 차도 무단 횡단자는 걸어가기 위한 공사 구역을 둘러싼 완충 지대를 제공받는다.
일 실시예에서, 컴퓨터 시스템은, 운전 행동을 결정할 때, 대응하는 엔티티와 각각의 수동 운전 차량 사이의 거리, 각각의 수동 운전 차량의 속력, 대응하는 엔티티의 속력 및 대응하는 엔티티의 방향 중 적어도 하나를 결정한다. 예를 들어, 컴퓨터 시스템은 수동 운전 차량의 속력, 엔티티의 속력 및 방향을 분석하고 인간 운전자가 엔티티를 피하기 위해 어느 기동(들)을 수행했는지를 결정할 수 있다. 예를 들어, 운전 행동에 기초하여, 컴퓨터 시스템은, 자율 주행 차량이 특정한 속력으로 진행하고 있으며 엔티티에서부터 특정한 거리에 위치되는 경우, 자율 주행 차량이 인접 차선으로 차선을 변경하거나 (예를 들어, 차도 무단 횡단자가 차선에서 벗어날 수 있도록 충분히 느리게) 속도를 줄여야 하거나, 정지하거나, 또는 여러 기동의 조합을 수행해야 한다는 것을 나타내는 규칙을 생성할 수 있다.
도 20을 계속하기 위해, 블록(2010)에서, 컴퓨터 시스템은 운전 행동에 기초하여 자율 주행 차량 운전 모델을 결정하며, 자율 주행 차량 운전 모델은 엔티티를 피하도록 운전하려고 시도하는 자율 주행 차량에 의해 구현될 자율 주행 차량 운전 행동(예를 들어, 자율 주행 차량의 속도 및 방향)을 기술한다. 예를 들어, 이 모델은, 엔티티에 대한 자율 주행 차량의 주어진 속도 및 방향에 대해, 엔티티를 피하기 위해 자율 주행 차량에 의해 수행될 기동을 나타내는 규칙을 포함할 수 있다.
일 실시예에서, 컴퓨터 시스템은, 자율 주행 차량 운전 모델을 결정할 때, 각각의 수동 운전 차량의 각각의 결정된 속력 및 방향에 대해, 차량 행동을 수정하지 않으면서 대응하는 엔티티가 차선을 건널 수 있게 하기 위한 각각의 수동 운전 차량과 대응하는 엔티티 사이의 최소 거리를 결정한다. 예를 들어, 이 모델은, 자율 주행 차량이 (운전 행동에 기초한) 특정한 거리 이상 떨어져 있고 (운전 행동에 기초한) 특정한 속력보다 빠르게 이동하지 않는 경우, (예를 들어, 현재 시간에서 엔티티가 존재하는 위치에서 차량이 운전하고 있을 때 엔티티가 차량의 차선을 벗어날 것이기 때문에) 자율 주행 차량이 아무런 액션도 취해서는 안된다는 규칙을 포함할 수 있다.
일 실시예에서, 컴퓨터 시스템은, 자율 주행 차량 운전 모델을 생성할 때, 자율 주행 차량 운전 행동에 기초하여 자율 주행 차량이 엔티티를 피하기 위해 언제 차선 변경을 개시해야 하는지를 결정하도록 구성된다. 예를 들어, 컴퓨터 시스템은, 인접 차선이 이용 가능하고 엔티티가, 자신의 궤적에 기초하여, 자율 주행 차량이 엔티티와 나란히(even) 있을 때 인접 차선에 있을 것으로 예상되지 않는 경우, 자율 주행 차량이 인접 차선으로 차선을 변경해야 한다는 것을 나타내는 규칙을 생성할 수 있다.
도 20의 프로세스(2000)를 계속하기 위해, 블록(2015)에서, 컴퓨터 시스템은, 제어 회로를 사용하여, 자율 주행 차량 운전 모델에 따라 자율 주행 차량을 동작시킨다. 위에서 논의된 바와 같이, 컴퓨터 시스템은 자율 주행 차량에 위치될 수 있거나 또는 자율 주행 차량으로부터 원격에 위치될 수 있다. 컴퓨터 시스템이 자율 주행 차량에 위치되는 경우에, 컴퓨터 시스템은 자율 주행 차량 운전 모델에 따라 운전하도록 다른 차량 시스템에 지시할 수 있다. 컴퓨터 시스템이 자율 주행 차량으로부터 원격에 위치되는 경우에, 컴퓨터 시스템은 커맨드를 (예를 들어, 무선 네트워크를 통해) 차량에 전송할 수 있다.
일 실시예에서, 컴퓨터 시스템은 이하의 액션을 취함으로써 자율 주행 차량 운전 모델에 따라 자율 주행 차량을 동작시킨다. 컴퓨터 시스템은 자율 주행 차량의 속력과 방향 및 엔티티의 속력과 방향을 결정한다. 자율 주행 차량 운전 모델을 사용하여, 컴퓨터 시스템은 자율 주행 차량의 속력과 방향 및 엔티티의 속력과 방향에 대해 자율 주행 차량과 엔티티 사이의 최소 거리를 결정한다. 컴퓨터 시스템은 자율 주행 차량의 운전 행동을 수정하라는 명령을 자율 주행 차량에 제공한다. (예를 들어, 엔티티를 피하기 위해 속도를 줄이거나 엔티티가 건너간 차선으로의 변경을 개시함).
일 실시예에서, 컴퓨터 시스템과 차량은 자율 주행 운전 시스템의 일부일 수 있다. 컴퓨터 시스템은 차량에 내장될 수 있거나 차량으로부터 원격에 위치될 수 있는 별도의 시스템(예를 들어, 모듈)일 수 있다. 두 경우 모두에서, 컴퓨터 시스템은 복수의 수동 운전 차량(예를 들어, 수동 운전 차량은 인간 조작자에 의해 운전되고 운전 행동이 인간 조작자의 운전 기술에 영향을 받는 차량임)의 운전 행동(예를 들어, 운전 행동은 동일한 차선에 있는 보행자를 피하려고 의도하는 인간 조작자의 운전 반응을 나타냄)을 추적하도록 구성된다. 구체적으로, 각각의 수동 운전 차량은 대응하는 엔티티가 진입한 차선에서 운전되었다(예를 들어, 엔티티는 보행자 또는 동물일 수 있음).
자율 주행 차량은 컴퓨터 실행 가능 명령을 저장하는 하나 이상의 컴퓨터 판독 가능 매체 및 컴퓨터 시스템에 통신 가능하게 결합되고 컴퓨터 실행 가능 명령을 실행하도록 - 실행은 이하의 동작을 수행함 - 구성된 하나 이상의 프로세서를 포함한다(예를 들어, 탑재하고 있다). 차량에 의해, 컴퓨터 시스템으로부터 운전 행동을 수신하는 것 및, 컴퓨터 시스템에 의해, 운전 행동에 기초하여 자율 주행 차량 운전 모델(예를 들어, 자율 주행 차량의 주어진 속도 및 방향에 대해, 차선을 변경할지 또는 정지할지)을 결정하는 것. 위에서 기술된 바와 같이, 자율 주행 차량 운전 모델은 엔티티를 피하기 위해 자율 주행 차량에 의해 구현될 자율 주행 차량 운전 행동(예를 들어, 자율 주행 차량의 속도 및 방향)을 기술한다. 자율 주행 차량은 이어서 자율 주행 차량 운전 모델에 따라 스스로 운행할 수 있다.
일 예에서, 컴퓨터 시스템은 원격 위치에(예를 들어, 차량으로부터 멀리 떨어진 데이터 센터에) 존재하고 수동 운전 차량으로부터 수집되는 운전 행동 데이터를 수집하고 프로세싱한다. 운전 행동 데이터는 각각의 수동 운전 차량이 엔티티(예를 들어, 보행자)를 어떻게 피했는지를 기술하는 다양한 값을 포함할 수 있다. 컴퓨터 시스템은 운전 행동을 자율 주행 차량에 송신하고, 자율 주행 차량은 차례로 엔티티를 피하기 위한 자율 주행 차량 운전 모델을 결정/생성한다. 차량은 이어서 도로 상에서 엔티티 피하기 상황이 발생할 때 이 모델에 따라 스스로 운행한다.
일 실시예에서, 이 시스템은 추적 시스템(예를 들어, 차량의 운전 행동을 감지하고 운전 행동을 컴퓨터 시스템에 송신하는 센서 시스템)을 포함한다. 추적 시스템은 운전 행동을 추적하기 위해 하나 이상의 수동 운전 차량에 설치된 컴포넌트 및 운전 행동을 검출하기 위해 도로 근처에 설치된 컴포넌트를 포함할 수 있다.
자율 주행 차량에서 인간 운전 행동의 모델의 사용
자율 주행 차량 운전 모델을 구축/생성하기 위한 다양한 시나리오가 본 개시에서 상술되었다. 그렇지만, 모델을 올바르게 사용하는 것이 자율 주행 차량의 안전성에 필수적이다. 도 21 내지 도 23은 기술된 운전 시나리오에서 모델을 사용할 때 (예를 들어, 자율 주행 차량의) 프로세싱 회로가 수행하는 액션을 예시한다.
도 21의 프로세스(2100)는 자율 주행 차량 운전 모델을 사용하여 무통제 교통 교차로를 통과하여 운전하기 위해 자율 주행 차량이 수행할 수 있는 액션을 예시한다. 도 21 및 본 개시에서의 다른 도면은 액션을 수행하는 프로세싱 회로를 참조하여 기술된다. 그렇지만, 본 기술 분야의 통상의 기술자는 도 21 및 다른 도면의 액션이 다른 컴포넌트(예를 들어, 프로세서(146), 인지 모듈(402), 계획 모듈(404), 제어 모듈(406) 또는 다른 적합한 컴포넌트)에 의해 수행될 수 있다는 것을 이해할 것이다. 블록(2105)에서, 프로세싱 회로(예를 들어, 프로세서(146))는 자율 주행 차량의 환경과 연관된 센서 데이터를 수신한다. 예를 들어, 프로세싱 회로는 LiDAR 데이터, RADAR 데이터, 카메라 데이터, 및 다른 적합한 데이터를 수신할 수 있다. 블록(2110)에서, 프로세싱 회로(예를 들어, 프로세서(146))는, 센서 데이터에 기초하여, 자율 주행 차량이 무통제 교통 교차로에 도달했다고 결정한다. 예를 들어, 프로세싱 회로는 LiDAR 데이터와 조합하여 카메라 데이터를 분석하여 자율 주행 차량이 무통제 교차로(예를 들어, 교통 신호등이 없음)에 있다고 결정할 수 있다.
블록(2115)에서, 프로세싱 회로는 무통제 교통 교차로에서 교통에의 교통 합류 행동에 관여한 차량의 운전 행동을 모델링하는 자율 주행 차량 운전 모델을 검색한다. 자율 주행 차량 운전 모델은 복수의 수동 운전 차량의 운전 행동과 연관된 데이터에 기초하며, 여기서 각각의 수동 운전 차량은 대응하는 무통제 교통 교차로에서 교통 합류 행동에 관여했다. 예를 들어, 프로세싱 회로는 메모리(144)(도 1)로부터 운전 모델을 검색할 수 있다. 일 실시예에서, 프로세싱 회로는 데이터베이스(410)로부터 자율 주행 차량 운전 모델을 검색할 수 있다. 일 실시예에서, 모델은 교차로 레벨에서 훈련될 수 있다. 즉, 특정 교차로에 대한 모델이 저장되고, 자율 주행 차량이 특정 교차로에 접근할 때, 해당 교차로가 검출되고, 그 모델이 검색되어 해당 교차로에 대해 사용된다. 일 실시예에서, 모델은 도시 레벨에서 훈련될 수 있다. 즉, 특정 도시에 대한 모델이 저장되고, 자율 주행 차량이 해당 도시에 있는 것으로 검출될 때, 그 모델이 검색되어 해당 도시 내에서 사용된다. 일 실시예에서, 모델은 관할권 레벨 또는 국가 레벨에서 사용될 수 있다. 즉, 자율 주행 차량이 특정 관할권 내에 또는 특정 국가에 있을 때, 그 모델이 검색되어 사용한다. 본 기술 분야의 통상의 기술자는 모델의 사용 또는 사용 레벨이 한 지역 내에서의 운전 법규 및/또는 운전 행동의 동질성에 의존할 수 있음을 이해할 것이다.
블록(2120)에서, 프로세싱 회로는 자율 주행 차량 운전 모델을 센서 데이터에 적용한다. 자율 주행 차량 운전 모델은 (예를 들어, 운전 행동에 기초한) 하나 이상의 규칙을 포함하고 차량의 환경의 입력을 수용할 수 있다. 자율 주행 차량 운전 모델 내의 명령은 입력에 규칙을 적용하여 자율 주행 차량에 대한 명령을 출력하도록 프로세싱 회로에 명령할 수 있다. 구체적으로, 블록(2125)에서, 프로세싱 회로는, 센서 데이터를 자율 주행 차량 운전 모델에 적용하는 것에 기초하여, 무통제 교통 교차로에서 교통에 합류할지 여부를 결정한다. 예를 들어, 모델의 규칙을 센서 데이터에 적용한 결과로서, 프로세싱 회로는 합류 진행 또는 기다림(예를 들어, 합류할 다른 기회를 기다림)의 출력을 수신할 수 있다. 블록(2130)에서, 프로세싱 회로는, 제어 회로를 사용하여, 자율 주행 차량 운전 모델에 따라 자율 주행 차량을 동작시킨다. 예를 들어, 자율 주행 차량 운전 모델이 진행하라는 명령을 출력하는 경우, 프로세싱 회로는 교차로에 합류하는 것을 진행하도록 제어 회로에 명령한다. 그렇지만, 자율 주행 차량 운전 모델이 기다리라는 명령을 출력하는 경우, 프로세싱 회로는 기다리도록(예를 들어, 교차로에 합류하는 것을 보류하도록) 제어 회로에 명령한다.
일 실시예에서, 프로세싱 회로는, 하나 이상의 센서로부터, 자율 주행 차량에서부터 무통제 교통 교차로를 향해 운전하는 접근 차량까지의 거리를 나타내는 데이터 및 접근 차량의 속력을 나타내는 데이터를 수신한다. 예를 들어, 자율 주행 차량은 RADAR/LiDAR 또는 이들 기기의 조합을 장비할 수 있다. 그 기기는 자율 주행 차량에 접근하는 임의의 차량을 검출하고 자율 주행 차량의 속력 및 자율 주행 차량까지의 거리를 결정할 수 있다. 일 실시예에서, 그 기기는 교차로를 향해 이동하는 각각의 다른 차량에서부터 자율 주행 차량이 합류하게 될 교차로의 위치까지의 거리를 결정하는 데 사용될 수 있다. 예를 들어, 그 기기는 자율 주행 차량과 자율 주행 차량이 합류할 교차로에서의 지점 사이의 거리를 결정할 수 있으며, 그 거리 및 각각의 다른 차량까지의 거리에 기초하여, 프로세싱 회로는 교차로에서의 지점까지의 거리를 결정할 수 있다.
일 실시예에서, 프로세싱 회로는, 자율 주행 차량 운전 모델을 센서 데이터에 적용할 때, 이하의 액션을 수행한다. 프로세싱 회로는, 자율 주행 차량 운전 모델로부터, 무통제 교통 교차로에 합류하기 위한 거리 임계치 및 속력 임계치를 포함하는 규칙을 검색한다. 예를 들어, 자율 주행 차량 운전 모델은 규칙(예를 들어, 인스턴스화된 객체)을 포함하는 데이터 구조로서 저장될 수 있다. 각각의 규칙은 입력을 받고 입력에 대한 조건을 포함한다. 조건이 충족되는지 여부에 기초하여, 규칙은 상이한 값을 출력한다. 예를 들어, 하나의 규칙은 거리 임계치 및 속력 임계치에 대한 조건을 포함할 수 있다. 다른 예에서, 그 조건은 2개의 규칙으로 나누어질 수 있다. 규칙에서의 임계 거리는 최빈값이 생성될 때 모델에 추가되는 값이다. 이 값은 위에서 기술된 컴퓨터 시스템에 의해 프로세싱되는 바와 같은 운전 행동에 기초한다.
프로세싱 회로는 거리 임계치를 하나 이상의 센서로부터 수신된 거리와 비교하고 속력 임계치를 하나 이상의 센서로부터 수신된 속력과 비교하며, 이 비교에 기초하여, 하나 이상의 센서로부터 수신된 거리가 거리 임계치를 충족시키고 하나 이상의 센서로부터 수신된 속력이 속력 임계치와 매칭하는지 여부를 결정한다. 이 결정에 의해, 프로세싱 회로는 교차로를 향해 운전하는 하나 이상의 다른 차량이 자율 주행 차량이 교차로에 합류할 시간을 갖기에 충분히 멀리 있고 충분히 느린지 여부를 결정한다. 이 결정에 기초하여, 규칙은 교통에 합류할지 여부에 대한 명령과 함께 결과를 출력한다. 실시예에서, 프로세싱 회로는 거리 및 속력을 프로세싱한 결과에 기초하여 무통제 교통 교차로에서 교통에 합류하거나 합류하기 위해 기다리라는 커맨드를 자율 주행 차량에 제공한다.
도 22의 프로세스(2200)는 자율 주행 차량 운전 모델을 사용하여 동일한 차선에 있는 정지 차량을 추월하여 운전하기 위해 자율 주행 차량이 수행할 수 있는 액션을 예시한다. 도 22 및 본 개시에서의 다른 도면은 액션을 수행하는 프로세싱 회로를 참조하여 기술된다. 그렇지만, 본 기술 분야의 통상의 기술자는 도 22 및 다른 도면의 액션이 다른 컴포넌트(예를 들어, 프로세서(146), 인지 모듈(402), 계획 모듈(404), 제어 모듈(406) 또는 다른 적합한 컴포넌트)에 의해 수행될 수 있다는 것을 이해할 것이다. 블록(2205)에서, 프로세싱 회로(예를 들어, 프로세서(146))는 자율 주행 차량의 환경과 연관된 센서 데이터를 수신한다. 예를 들어, 프로세싱 회로는 LiDAR 데이터, RADAR 데이터, 카메라 데이터, 및 다른 적합한 데이터를 수신할 수 있다. 블록(2210)에서, 프로세싱 회로(예를 들어, 프로세서(146))는, 센서 데이터에 기초하여, 정지 차량이 자율 주행 차량이 운전하고 있는 동일한 차선에 위치된다고 결정한다. 예를 들어, 프로세싱 회로는 LiDAR 데이터 및 RADAR 데이터와 조합하여 카메라 데이터를 분석하여 정지 차량이 자율 주행 차량과 동일한 차선에 있다고 결정할 수 있다. 적어도, RADAR 및 LiDAR 데이터에 기초하여, 프로세싱 회로는 차량까지의 거리를 결정할 수 있고 차량이 정지해 있다고(즉, 이동하지 않는다고) 결정할 수 있다.
블록(2215)에서, 프로세싱 회로는 정지 차량을 추월하여 운전하는 차량의 운전 행동을 모델링하는 자율 주행 차량 운전 모델을 검색한다. 자율 주행 차량 운전 모델은 복수의 수동 운전 차량의 운전 행동과 연관된 데이터에 기초하며, 여기서 각각의 수동 운전 차량은 동일한 차선에 있는 대응하는 정지 차량을 추월하여 운전되었다. 예를 들어, 프로세싱 회로는 메모리(144)(도 1)로부터 운전 모델을 검색할 수 있다. 일 실시예에서, 프로세싱 회로는 데이터베이스(410)로부터 자율 주행 차량 운전 모델을 검색할 수 있다.
블록(2220)에서, 프로세싱 회로는 자율 주행 차량 운전 모델을 센서 데이터에 적용한다. 자율 주행 차량 운전 모델은 (예를 들어, 운전 행동에 기초한) 하나 이상의 규칙을 포함하고 차량의 환경의 입력을 수용할 수 있다. 자율 주행 차량 운전 모델 내의 명령은 입력에 규칙을 적용하여 자율 주행 차량에 대한 명령을 출력하도록 프로세싱 회로에 명령할 수 있다. 구체적으로, 블록(2225)에서, 프로세싱 회로는, 센서 데이터를 자율 주행 차량 운전 모델에 적용하는 것에 기초하여, 자율 주행 차량이 운전하고 있는 동일한 차선에 있는 정지 차량을 추월하여 운전하기 위한 하나 이상의 운전 명령을 결정한다. 예를 들어, 모델의 규칙을 센서 데이터에 적용한 결과로서, 프로세싱 회로는 하나 이상의 명령의 출력을 수신할 수 있다. 예를 들어, 명령은 감속 및 인접 차선으로의 차선 변경 중 하나 이상을 포함할 수 있다. 특정한 조건 하에서, 프로세싱 회로는 정지하도록 자율 주행 차량에 명령한다. 블록(2230)에서, 프로세싱 회로는, 제어 회로를 사용하여, 자율 주행 차량 운전 모델에 따라 자율 주행 차량을 동작시킨다. 예를 들어, 자율 주행 차량 운전 모델이 차선을 변경하라는 명령을 출력하는 경우, 프로세싱 회로는 차선을 변경하는 것을 진행하도록 제어 회로에 명령한다.
일 실시예에서, 프로세싱 회로는, 하나 이상의 센서로부터, 정지 차량까지의 거리, 자율 주행 차량의 속력, 정지 차량과 정지 차량에 대한 인접 차선에 위치된 다른 차량 사이의 거리, 인접 차선에서의 교통 방향, 및 다른 적합한 데이터 중 하나 이상을 수신한다. 예를 들어, 프로세싱 회로는 이 모델에 따라 동작하기 위해 프로세싱 회로가 어떤 데이터를 필요로 하는지를 각각의 이용 가능한 센서에 명령할 수 있다. 프로세싱 회로가 데이터를 수신할 때, 프로세싱 회로는 데이터를 자율 주행 차량 운전 모델에 적용한다.
일 실시예에서, 프로세싱 회로는 자율 주행 차량 운전 모델을 센서 데이터에 적용할 때 이하의 액션을 수행한다. 프로세싱 회로는 수신된 센서 데이터를 자율 주행 차량 운전 모델에 입력한다. 그 데이터는 정지 차량까지의 거리, 자율 주행 차량의 속력, 정지 차량과 정지 차량에 대한 인접 차선에 위치된 다른 차량 사이의 거리, 및 인접 차선에서의 교통 방향 중 하나 이상을 포함한다. 예를 들어, 프로세싱 회로는 자율 주행 차량 운전 모델을 랜덤 액세스 메모리에 로딩하고 자율 주행 차량 운전 모델과 연관된 명령을 실행하는 프로세스를 실행할 수 있다. 그 명령은 위에서 언급된 데이터의 입력을 수용하는 루틴을 포함할 수 있다. 자율 주행 차량 운전 모델이 입력을 수신할 때, 이 모델의 루틴은 데이터에 대해 모델(예를 들어, 하나 이상의 규칙)을 실행한다. 예를 들어, 자율 주행 차량 운전 모델은 규칙(예를 들어, 인스턴스화된 객체)을 포함하는 데이터 구조로서 저장될 수 있다. 각각의 규칙은 입력을 받고 입력에 대한 조건을 포함한다. 조건이 충족되는지 여부에 기초하여, 규칙은 상이한 값을 출력한다. 예를 들어, 하나의 규칙은 거리 임계치 및 속력 임계치에 대한 조건을 포함할 수 있다. 다른 예에서, 그 조건은 2개의 규칙으로 나누어질 수 있다. 규칙에서의 임계 거리는 최빈값이 생성될 때 모델에 추가되는 값이다. 이 값은 위에서 기술된 컴퓨터 시스템에 의해 프로세싱되는 바와 같은 운전 행동에 기초한다. 프로세싱 회로는 정지 차량을 추월하여 운전하기 위한 하나 이상의 커맨드를 포함하는, 자율 주행 차량 운전 모델로부터의, 출력을 수신한다. 예를 들어, 속력 및 거리가 규칙에 입력될 때, 출력은 하나 이상의 명령(예를 들어, 인접 차선으로의 차선 변경, 속도 높이기, 속도 줄이기, 정지, 또는 다른 적합한 명령)일 수 있다.
도 23의 프로세스(2300)는 자율 주행 차량 운전 모델을 사용하여 동일한 차선에 있는 엔티티(예를 들어, 보행자)를 피하기 위해 자율 주행 차량이 수행할 수 있는 액션을 예시한다. 도 23 및 본 개시에서의 다른 도면은 액션을 수행하는 프로세싱 회로를 참조하여 기술된다. 그렇지만, 본 기술 분야의 통상의 기술자는 도 23 및 다른 도면의 액션이 다른 컴포넌트(예를 들어, 프로세서(146), 인지 모듈(402), 계획 모듈(404), 제어 모듈(406) 또는 다른 적합한 컴포넌트)에 의해 수행될 수 있다는 것을 이해할 것이다. 블록(2305)에서, 프로세싱 회로(예를 들어, 프로세서(146))는 자율 주행 차량의 환경과 연관된 센서 데이터를 수신한다. 예를 들어, 프로세싱 회로는 LiDAR 데이터, RADAR 데이터, 카메라 데이터, 및 다른 적합한 데이터를 수신할 수 있다. 블록(2310)에서, 프로세싱 회로(예를 들어, 프로세서(146))는, 센서 데이터에 기초하여, 엔티티가 자율 주행 차량이 운전하고 있는 차선에 진입했다고 결정한다. 예를 들어, 프로세싱 회로는 LiDAR 데이터 및 RADAR 데이터와 조합하여 카메라 데이터를 분석하여 보행자가 자율 주행 차량과 동일한 차선에 있다고 결정할 수 있다. 적어도 RADAR 데이터 및 LiDAR 데이터에 기초하여, 프로세싱 회로는 보행자까지의 거리, 보행자의 속도(속력과 방향 둘 모두) 및 다른 적합한 정보를 결정할 수 있다.
블록(2315)에서, 프로세싱 회로는 동일한 차선에(즉, 차량의 궤적에) 있는 엔티티를 피하는 운전 행동을 모델링하는 자율 주행 차량 운전 모델을 검색한다. 자율 주행 차량 운전 모델은 복수의 수동 운전 차량의 운전 행동과 연관된 데이터에 기초하며, 여기서 각각의 수동 운전 차량은 동일한 차선에 있는 엔티티(예를 들어, 보행자, 동물, 또는 다른 적합한 엔티티)를 피하도록 운전되었다. 예를 들어, 프로세싱 회로는 메모리(144)(도 1)로부터 운전 모델을 검색할 수 있다. 일 실시예에서, 프로세싱 회로는 데이터베이스(410)로부터 자율 주행 차량 운전 모델을 검색할 수 있다.
블록(2320)에서, 프로세싱 회로는 자율 주행 차량 운전 모델을 센서 데이터에 적용한다. 자율 주행 차량 운전 모델은 (예를 들어, 운전 행동에 기초한) 하나 이상의 규칙을 포함하고 차량의 환경의 입력(예를 들어, 차량의 속력, 엔티티까지의 거리, 엔티티의 속도(속력과 방향 둘 모두) 및 다른 적합한 정보)을 수용할 수 있다. 자율 주행 차량 운전 모델 내의 명령은 입력에 규칙을 적용하여 자율 주행 차량에 대한 명령을 출력하도록 프로세싱 회로에 명령할 수 있다. 구체적으로, 블록(2325)에서, 프로세싱 회로는, 센서 데이터를 자율 주행 차량 운전 모델에 적용하는 것에 기초하여, 자율 주행 차량이 운전하고 있는 동일한 차선에 있는 엔티티를 피하기 위한 하나 이상의 운전 명령을 결정한다. 예를 들어, 모델의 규칙을 센서 데이터에 적용한 결과로서, 프로세싱 회로는 하나 이상의 명령의 출력을 수신할 수 있다. 예를 들어, 명령은 감속 및 인접 차선으로의 차선 변경 중 하나 이상을 포함할 수 있다. 특정한 조건 하에서, 프로세싱 회로는 정지하도록 자율 주행 차량에 명령한다. 블록(2330)에서, 프로세싱 회로는, 제어 회로를 사용하여, 자율 주행 차량 운전 모델에 따라 자율 주행 차량을 동작시킨다. 예를 들어, 자율 주행 차량 운전 모델이 차선을 변경하라는 명령을 출력하는 경우, 프로세싱 회로는 차선을 변경하는 것을 진행하도록 제어 회로에 명령한다.
일 실시예에서, 자율 주행 차량의 환경과 연관된 센서 데이터는 자율 주행 차량의 속력, 자율 주행 차량에서부터 엔티티까지의 거리, 자율 주행 차량에 이용 가능한 차선의 개수, 이용 가능한 차선 각각에서의 교통 방향, 자율 주행 차량이 운전하고 있는 차선에 진입하기 전에 엔티티가 건너간 차선의 개수, 엔티티가 지정된 횡단 위치에서 차선을 건너가는지 여부, 엔티티의 속도, 엔티티가 자율 주행 차량이 운전하고 있는 차선에 진입하기 전에 그 개수의 차선을 건너간 각도, 및 다른 적합한 센서 데이터 중 하나 이상을 포함한다.
일 실시예에서, 프로세싱 회로는, 자율 주행 차량 운전 모델을 센서 데이터에 적용할 때, 이하의 액션을 수행한다. 프로세싱 회로는 자율 주행 차량의 속력, 자율 주행 차량에서부터 엔티티까지의 거리, 자율 주행 차량에 이용 가능한 차선의 개수, 이용 가능한 차선 각각에서의 교통 방향, 자율 주행 차량이 운전하고 있는 차선에 진입하기 전에 엔티티가 건너간 차선의 개수, 엔티티가 지정된 횡단 위치에서 차선을 건너가는지 여부, 엔티티의 속도, 및 엔티티가 자율 주행 차량이 운전하고 있는 차선에 진입하기 전에 그 개수의 차선을 건너간 각도 중 하나 이상을 자율 주행 차량 운전 모델에 입력한다. 프로세싱 회로는 엔티티를 피하기 위한 하나 이상의 커맨드를 포함하는, 자율 주행 차량 운전 모델로부터의, 출력을 수신한다.
예를 들어, 자율 주행 차량은 3개의 차선 모두가 동일한 방향으로 교통을 갖는 3차선 고속도로의 중간 차선에서 운전하고 있을 수 있다. 프로세싱 회로가 동일한 (중간) 차선에서 보행자를 검출하는 경우, 보행자를 피하기 위한 명령을 얻기 위해 자율 주행 차량 운전 모델이 사용될 수 있다. 프로세싱 회로는 보행자의 속력 및 방향(예를 들어, 좌측으로부터 우측으로 이동함)은 물론 자율 주행 차량의 속력 및 보행자까지의 거리에 대한 데이터를 수신한다. 프로세싱 회로는 그 데이터를 모델에 입력한다. 모델은, 자율 주행 차량이 보행자로부터 특정한 거리 이상 떨어져 있고 보행자가 좌측으로부터 우측으로 이동하고 있는 동안 특정한 속력보다 느리게 진행하고 있는 경우, 자율 주행 차량이 보행자를 피하기 위해 좌측 차선으로 차선을 변경해야 한다는 것을 나타내는 (예를 들어, 수동 제어 차량의 운전 행동에 기초하여 생성된) 규칙을 가질 수 있다. 이 모델은 그 명령을 출력하고 프로세싱 회로는 명령을 실행을 위해 차량의 제어 회로에 송신한다.
일 실시예에서, 자율 주행 차량 운전 모델은 차량에 탑재된 프로세싱 회로에 의해 생성된다. 자율 주행 차량에 탑재된 프로세싱 회로는 복수의 수동 운전 차량의 운전 행동을 수집한다. 데이터 수집은 중앙 소스로부터 또는 수동 운전 차량 자체로부터 데이터를 수신하는 것을 포함할 수 있다. 일 실시예에서, 자율 주행 차량이 수동 운전 차량과 동일한 도로 상에서 운전할 때 자율 주행 차량은 자신의 센서를 사용하여 데이터를 수집한다. 수집된 데이터는 하나 이상의 시나리오에 대한 데이터를 포함할 수 있다. 예를 들어, 수집된 데이터는 대응하는 무통제 교차로에서 교통 합류 행동에 관여한 복수의 수동 운전 차량의 운전 행동을 포함할 수 있다. 데이터는 동일한 차선에 있는 정지 차량을 추월하여 운전된 복수의 수동 운전 차량의 운전 행동 및/또는 동일한 차선에 있는 엔티티를 피하도록 운전된 복수의 수동 운전 차량의 운전 행동을 또한 포함할 수 있다.
데이터가 수신될 때, 프로세싱 회로는 대응하는 자율 주행 차량 운전 모델을 생성한다. 제어 회로는 수신된 보충 데이터에 기초하여 모델을 업데이트할 수 있다. 위에서 논의된 바와 같이, 자율 주행 차량 운전 모델은 명령 세트 및 데이터 세트로서 저장될 수 있다. 그 데이터 및 명령은 자율 주행 차량에서 온보드로(on board) 또는 자율 주행 차량으로부터 멀리 떨어진 위치에서 생성될 수 있다.
신경 네트워크를 사용한 인간 운전 행동에 대한 모델의 생성
본 개시에서 이전에 논의된 바와 같이, 인간 운전 행동은 특정 상황(예를 들어, 무통제 교차로에 합류하는 것, 동일한 차선에 있는 정지 차량을 추월하여 운전하는 것, 및 동일한 차선에 있는 보행자를 우회하여 운전하는 것)에 대한 자율 주행 차량 운전 행동에 대한 모델로 사용될 수 있다. 그렇지만, 인간 운전 행동은 자율 주행 차량이 도로 상에서 직면할 수 있는 다른 상황에 대한 모델로서 사용될 수 있다. 인간 운전 행동 데이터가 이용 가능한 많은 상황에 대해 신경 네트워크가 구성되고 훈련될 수 있다. 신경 네트워크는 도로 상에서의 그 상황에서 자율 주행 차량에 대한 모델로서 사용될 수 있다.
도 24의 프로세스(2400)는 특정 교통 기동에 대한 인간 운전 행동의 모델을 생성하기 위해 컴퓨터 시스템이 수행할 수 있는 액션을 예시한다. 블록(2405)에서, 컴퓨터 시스템은 복수의 수동 운전 차량의 운전 행동을 기술하는 데이터 세트를 수신하며, 각각의 수동 운전 차량은 교통 기동에 관여하려고 시도했으며, 여기서 데이터 세트는 복수의 엔트리 및 대응하는 교통 기동을 수행할 때 인간 운전자에 의해 이루어진 복수의 결정을 포함하고, 여기서 각각의 엔트리는 대응하는 교통 기동과 연관된 복수의 인자에 대한 복수의 필드를 포함한다. 예를 들어, 필드는 차량의 속력, 대상체까지의 거리, 또는 다른 적합한 값과 같은 기동의 양상에 대한 데이터 값을 저장하는 테이블 열(table column)일 수 있다. 인자는 인간이 교차로에 합류하기로 또는 합류하지 않기로 결정할 때 인자가 교차로까지의 하나 이상의 다른 자동차의 하나 이상의 거리일 수 있도록 기동 특정적(maneuver specific)일 수 있다. 보행자를 피하는 것이 모델링되는 모델에서, 보행자까지의 거리가 인자일 수 있다.
도 25는 복수의 수동 운전 차량의 운전 행동을 기술하는 하나의 가능한 데이터 세트를 예시한다. 데이터 세트(2502)는 대응하는 데이터 값을 갖는 복수의 열(예를 들어, 필드)을 포함한다. 예를 들어, 열(2504)은 교차로에 접근하는 차량들 중 하나의 차량의 속도를 나타내고 열(2506)은 데이터를 고려하여 인간 운전자가 합류했는지 또는 합류하는 것을 보류했는지(예를 들어, 출발/출발 금지 결정)를 나타낸다. 그에 부가하여, 도 25는 무통제 교차로에 합류하는 시나리오를 예시한다. 차량(2508)은 무통제 교차로에 합류하려고 시도하는 차량이다. 차량(2510, 2512 및 2514)은 무통제 교차로에 접근하는 다른 차량이다. 그 차량의 속도와 그 차량의 거리는 데이터 세트(2502) 내의 데이터에 의해 표현된다.
블록(2410)에서, 컴퓨터 시스템은, 데이터 세트로부터, 복수의 필드를 검색한다. 예를 들어, 도 25에 예시된 각각의 열(예를 들어, 열(2504, 2506) 및 다른 열)은 컴퓨터 시스템에 의해 검색되는 필드일 수 있다. 일 실시예에서, 컴퓨터 시스템은 필드를 검색하기 위해 데이터 세트를 파싱한다. 다른 실시예에서, 컴퓨터 시스템은 필드를 검색하기 위해 API 호출을 수행한다. 데이터 세트는 메모리(예를 들어, 랜덤 액세스 메모리)에 또는 데이터 저장 유닛(예를 들어, 도 1의 데이터 저장 유닛(142) 또는 도 4의 데이터베이스(410))에 저장될 수 있다. 일 실시예에서, 프로세싱 회로(예를 들어, 프로세서)는 수신된 데이터 세트를 데이터 저장 유닛으로부터 검색하고 이를 액세스 및 프로세싱을 위해 메모리에 복사한다.
일 실시예에서, 컴퓨터 시스템은, 데이터 세트로부터, 복수의 필드를 검색할 때 이하의 액션을 수행할 수 있다. 컴퓨터 시스템은, 데이터 세트와 연관된 애플리케이션 프로그래밍 인터페이스("API")를 사용하여, 복수의 필드를 요청하는 커맨드를 실행하고, 커맨드에 응답하여, 복수의 필드와 연관된 복수의 식별자를 수신한다. 예를 들어, 데이터 세트로부터 다양한 정보를 추출하는 데 사용될 수 있는 API 스위트(suite)에 의해 데이터 세트가 액세스될 수 있다. 컴퓨터 시스템은 그 API를 사용하여 복수의 식별자를 추출할 수 있다.
블록(2415)에서, 컴퓨터 시스템은 복수의 필드와 연관된 복수의 데이터 타입을 식별한다. 예를 들어, 도 25에 예시된 바와 같이, 데이터 세트는 상이한 필드들을 포함할 수 있다. 필드들 중 일부는 숫자 타입일 수 있다(즉, 숫자 값을 포함함). 일부 필드는 불리언 타입일 수 있다(즉, 불리언 데이터를 포함함). 다른 필드는 제한된 세트(limited set)를 포함하는 타입일 수 있다. 예를 들어, 필드는 4개의 값(예를 들어, 문자열, 문자 숫자식 문자(alphanumeric character) 및 다른 적합한 값) 중 하나를 가질 수 있다. 컴퓨터 시스템은 데이터 세트에 액세스하여 각각의 열(즉, 필드)에 어떤 종류의 값이 있는지 결정함으로써 데이터 타입을 식별할 수 있다. 일 실시예에서, 컴퓨터 시스템은 각각의 필드의 타입을 얻기 위해 API 호출을 생성 및 실행할 수 있다.
일 실시예에서, 컴퓨터 시스템은 이하의 액션을 취함으로써 복수의 필드와 연관된 복수의 데이터 타입을 식별한다. 컴퓨터 시스템은, 복수의 필드 각각에 대해, 대응하는 필드와 연관된 식별자를 선택한다. 예를 들어, 각각의 필드는 식별자를 포함할 수 있다. 식별자는 필드 이름(예를 들어, 차량 속력)일 수 있다. 다양한 실시예에서, 식별자는 문자 숫자식 문자열, 16진수 숫자, 또는 다른 적합한 식별자일 수 있다. 컴퓨터 시스템은 각각의 선택된 식별자를 알려진 데이터 타입과 연관된 복수의 식별자와 비교한다. 예를 들어, 컴퓨터 시스템은 식별자가 대응하는 타입과 함께 (예를 들어, 테이블에) 저장되는 저장 위치에 액세스할 수 있다. 컴퓨터 시스템은 각각의 식별자를 반복하고 식별자를 저장된 식별자와 비교할 수 있으며, 매치(match)가 발견될 때, 컴퓨터 시스템은, 이 비교에 기초하여, 복수의 필드 각각에 대한 대응하는 데이터 타입을 식별한다.
블록(2420)에서, 컴퓨터 시스템은, 복수의 필드에 기초하여, 교통 기동과 연관된 복수의 특성을 결정한다. 일 실시예에서, 각각의 필드는 교통 기동의 특성이다. 예를 들어, 도 25는 방향 전환 타입(turn type), 들어오는 차량, 해당 차량까지의 거리, 해당 차량의 속력 또는 속도는 물론, 다른 특성과 같은 특성을 예시한다. 도 25는 또한 기동의 결과(예를 들어, 인간 운전자가 교차로에 합류하는지 여부)를 예시한다.
블록(2425)에서, 컴퓨터 시스템은 복수의 특성 및 복수의 데이터 타입을 사용하여 신경 네트워크를 구성한다. 예를 들어, 컴퓨터 시스템은 신경 네트워크의 입력 계층, 은닉 계층, 및 출력 계층을 구성할 수 있다. 은닉 계층은 특정 기동에 필요한 출력에 따라 여러 계층을 가질 수 있다. 예를 들어, 예/아니오 결정이 예상된 출력인 경우(예를 들어, 무통제 교차로를 통과하여 진행할지 여부), 입력을 프로세싱하는 데 하나의 은닉 계층만이 필요할 수 있다. 그렇지만, 더 복잡한 출력이 필요한 경우(예를 들어, 동일한 차선에 있는 정지 차량 또는 동일한 차선에 있는 보행자를 우회하는 운전 명령), 하나 초과의 은닉 계층이 컴퓨터 시스템에 의해 구성될 수 있다. 그에 부가하여, 컴퓨터 시스템은 신경 네트워크에 대한 입력 계층을 구성한다. 컴퓨터 시스템은 복수의 입력 파라미터 및 입력 파라미터 타입으로 입력 계층을 구성할 수 있다. 예를 들어, 신경 네트워크의 입력 계층을 구성할 때, 컴퓨터 시스템은 데이터 세트로부터 검색된 복수의 특성 및 복수의 데이터 타입을 사용할 수 있다. 컴퓨터 시스템은 자율 주행 차량의 속력, 특정 엔티티(예를 들어, 정지 차량 또는 보행자)까지의 거리, 엔티티의 속력, 엔티티의 진행 방향 및 다른 적합한 특성과 같은 특성을 사용할 수 있다. 컴퓨터 시스템은 또한 특성 타입을 사용하여 신경 네트워크를 구성할 수 있다.
일 실시예에서, 컴퓨터 시스템은 교통 기동과 연관된 복수의 특성 중의 특성의 개수에 기초하여 입력의 개수를 구성하고, 복수의 특성 각각에 대해 복수의 시작 가중치를 선택한다. 예를 들어, 교차로에 합류할지 여부에 대한 결정의 경우, 교차로까지의 각각의 다른 차량의 각각의 거리는 0 내지 1의 스케일에서 .6의 가중치를 가질 수 있다. 신경 네트워크가 훈련됨에 따라, 그 가중치는 훈련 세트에 기초하여 변경된다. 컴퓨터 시스템은 이어서, 예를 들어, 애플리케이션 프로그램 인터페이스("API") 함수를 사용하여 신경 네트워크를 생성한다. API 함수는 복수의 특성, 복수의 특성의 각각의 특성과 연관된 필드 타입, 및 신경 네트워크의 타입을 입력으로서 받는다.
블록(2430)에서, 컴퓨터 시스템은 데이터 세트와 연관된 데이터를 복수의 특성의 각각의 특성에 따라, 신경 네트워크에, 입력한다. 신경 네트워크가 생성될 때, 신경 네트워크는 데이터 세트를 사용하여 훈련된다. 따라서, 데이터 세트의 데이터는 신경 네트워크의 각각의 특성이 데이터 세트 내의 필드에 대응하는 방식으로 신경 네트워크에 입력된다. 예를 들어, 신경 네트워크에 데이터를 입력할 때, 신경 네트워크에서의 차량 속도에 대한 특성은 데이터 세트에서의 차량 속도 필드와 매칭한다.
블록(2435)에서, 컴퓨터 시스템은 입력 데이터 및 교통 기동과 연관된 복수의 특성을 사용하여 신경 네트워크에 대한 훈련 루틴을 실행한다. 예를 들어, 컴퓨터 시스템은 훈련 루틴에 대응하는 함수를 실행할 수 있다. 함수는 데이터 세트를 입력으로서 사용하여 실행될 수 있다. 일 실시예에서, 함수는, 함수가 데이터 세트로부터 훈련 데이터를 읽을 수 있는, 데이터 세트에 대한 경로를 입력하는 것을 가능하게 할 수 있다.
일 실시예에서, 신경 네트워크는 임의의 자율 주행 차량으로부터 멀리 떨어져(예를 들어, 중앙 위치, 공장, 또는 다른 적합한 위치에서) 훈련된다. 자율 주행 차량 외부에서 신경 네트워크를 훈련시키는 것은 다양한 장점을 가질 수 있다. 예를 들어, 자율 주행 차량이 제한된 프로세싱 능력을 가지는 시나리오에서, 신경 네트워크에 대한 더 신속한 훈련을 가능하게 한다. 그에 부가하여, 차량 외부에서(예를 들어, 데이터 센터에서) 신경 네트워크를 훈련시키는 것은 훈련된 네트워크의 신속한 배포를 가능하게 한다(즉, 각각의 차량이 각각의 신경 네트워크를 훈련시키도록 요구받지 않는다). 따라서, 신경 네트워크가 자율 주행 차량 외부에서 훈련되는 실시예에서, 신경 네트워크는, 필요에 따라, 하나 이상의 자율 주행 차량으로 송신된다.
일 실시예에서, 신경 네트워크가 생성되어 훈련될 때, 신경 네트워크는 신경 네트워크의 설계 목적인 운전 시나리오에서 자율 주행 차량에 의해 사용될 수 있다. 구체적으로, (예를 들어, 자율 주행 차량에 있는) 컴퓨터 시스템은 자율 주행 차량의 하나 이상의 센서로부터 센서 데이터를 수신한다. 일 실시예에서, 컴퓨터 시스템은 자율 주행 차량에 탑재되어 위치될 수 있다. 예를 들어, 컴퓨터 시스템은 자율 주행 차량에 탑재된 모듈일 수 있으며 자율 주행 차량의 다른 컴포넌트(예를 들어, 컴포넌트(142, 144, 146) 및 도 1과 연관된 다른 컴포넌트)와 인터페이싱할 수 있다. 컴퓨터 시스템은 도 3의 일부 또는 모든 컴포넌트를 가질 수 있다. 일 실시예에서, 컴퓨터 시스템은 도 4의 컴포넌트와 인터페이싱할 수 있다. 일 실시예에서, 모델은 교차로/도로 레벨에서 훈련될 수 있다. 즉, 특정 교차로/도로에 대한 모델이 저장되고, 자율 주행 차량이 특정 교차로/도로에 접근할 때, 해당 교차로/도로가 검출되고, 그 모델이 검색되어 해당 교차로/도로에 대해 사용된다. 일 실시예에서, 모델은 도시 레벨에서 훈련될 수 있다. 즉, 특정 도시에 대한 모델이 저장되고, 자율 주행 차량이 해당 도시에 있는 것으로 검출될 때, 그 모델이 검색되어 해당 도시 내에서 사용된다. 일 실시예에서, 모델은 관할권 레벨 또는 국가 레벨에서 사용될 수 있다. 즉, 자율 주행 차량이 특정 관할권 내에 또는 특정 국가에 있을 때, 그 모델이 검색되어 사용한다. 본 기술 분야의 통상의 기술자는 모델의 사용 또는 사용 레벨이 한 지역 내에서의 운전 법규 및/또는 운전 행동의 동질성에 의존할 수 있음을 이해할 것이다.
일 실시예에서, 컴퓨터 시스템은 자율 주행 차량 외부에 위치될 수 있고 차량과 모델을 호스팅하는 컴퓨터 시스템 사이의 정보는 무선 네트워크를 통해 송신될 수 있다. 예를 들어, 자율 주행 차량이 운전하고 있을 때 자율 주행 차량은 센서 데이터를 수집할 수 있고 데이터를 중앙 위치로 송신할 수 있다. 중앙 위치에서, 컴퓨터 시스템은 데이터를 프로세싱하고 운전 명령을 자율 주행 차량에 송신할 수 있다.
일 실시예에서, 컴퓨터 시스템은, 센서 데이터에 기초하여, 궤적의 일 부분을 통해 운행하기 위해 교통 기동을 선택한다. 예를 들어, 컴퓨터 시스템은 (예를 들어, 원격으로 또는 자율 주행 차량에서 온보드로) 센서 데이터를 수신하고 원하는 목적지로의 경로 상에서 계속 진행하기 위해 특정 기동이 수행될 필요가 있다고 결정할 수 있다. 컴퓨터 시스템은 선택된 기동과 연관된 신경 네트워크가 이용 가능한지 여부를 결정할 수 있다. 컴퓨터 시스템은, 센서 데이터로부터, 복수의 특성에 대응하는 하나 이상의 값을 추출하고 복수의 특성 중 하나 이상을 입력 데이터로서 사용하여 신경 네트워크를 실행한다. 예를 들어, 요구된 기동이 무통제 교차로에 합류하는 것인 경우, 컴퓨터 시스템은, 센서 데이터로부터, 자율 주행 차량의 속력, 무통제 교차로에 접근하는 각각의 다른 차량의 속력 및 이동 방향, 무통제 교차로까지의 각각의 다른 차량의 거리, 각각의 다른 차량의 차선 및 각각의 차선의 방향과 같은 특성을 추출한다. 일 실시예에서, 다른 특성이 센서 데이터로부터 추출될 수 있다. 신경 네트워크가 이어서 입력 데이터를 사용하여 실행된다.
컴퓨터 시스템은 신경 네트워크로부터의 출력을 수신하고, 제어 회로를 사용하여, 신경 네트워크의 출력에 기초하여 자율 주행 차량을 동작시킨다. 예를 들어, 무통제 교차로 내로 진행할 것인지 또는 다른 차량 또는 엔티티가 통과하기를 기다릴 것인지가 결정되어야 하는 시나리오에서, 컴퓨터 시스템은 진행하거나 기다리라고 자율 주행 차량에 시그널링하는 불리언을 출력할 수 있다. 일 실시예에서, 출력은 진행하라는 하나 이상의 커맨드일 수 있다. 예를 들어, 커맨드는 자율 주행 차량이 진행해야 하는 속력 그리고 또한 자율 주행 차량이 어떤 방향으로 진행해야 하는지(예를 들어, 바퀴의 위치가 조정될 필요가 있는지 여부)를 포함할 수 있다.
일 실시예에서, 컴퓨터 시스템은 센서 데이터로부터 어떤 데이터가 추출될 필요가 있는지를 결정하기 위해 신경 네트워크 자체를 사용한다. 구체적으로, 컴퓨터 시스템은, 신경 네트워크로부터, 복수의 특성과 연관된 복수의 식별자를 검색한다. 예를 들어, 신경 네트워크는 신경 네트워크가 입력으로서 수용할 교통 기동의 특성에 대한 요청을 가능하게 하는 애플리케이션 프로그래밍 인터페이스를 포함할 수 있다. (즉, 상이한 기동에 대한) 각각의 신경 네트워크는 상이한 특성을 입력으로 수용할 수 있다. 컴퓨터 시스템은, 요청에 대한 응답에서, 신경 네트워크가 수용할 수 있는 특성의 식별자를 수신할 수 있다. 식별자는 단순히 특성의 이름일 수 있다. 일 실시예에서, 각각의 식별자는 특정 특성을 표현하는 문자 숫자식 문자열일 수 있다. 자율 주행 차량은 식별자 및 대응하는 특성을 포함하는 목록(예를 들어, 테이블)을 포함할 수 있다.
컴퓨터 시스템은 복수의 식별자 각각을 센서 데이터 내의 데이터 값의 식별자와 비교하고, 이 비교에 기초하여, 복수의 특성에 대응하는 하나 이상의 값을 검색한다. 예를 들어, 무통제 교통 교차로에의 합류를 수반하는 기동의 경우, 특성은 교차로를 향해 운전하는 하나 이상의 다른 차량의 하나 이상의 식별자, 교차로를 향해 운전하는 하나 이상의 다른 차량 각각의 속력, 특정의 차량에서부터 교차로까지의 하나 이상의 다른 차량 각각의 거리, 교차로를 향해 운전하는 하나 이상의 다른 차량 각각의 차선, 자율 주행 차량의 속력, 교차로까지의 자율 주행 차량의 거리, 및 다른 적합한 특성을 포함할 수 있다.
무통제 교통 교차로에 합류하는 시나리오를 포함하는 일 실시예에서, 컴퓨터 시스템은 신경 네트워크의 출력을 자율 주행 차량이 교차로에 합류해야 하는지 또는 교차로에 합류하는 것을 보류해야 하는지의 표시로서 수신할 수 있다. 표시는 불리언 값 출력(예를 들어, 예/아니오, 1/0, 또는 다른 적합한 표시)일 수 있다. 일 실시예에서, 교차로에 합류하라는 표시를 수신하는 것에 응답하여, 컴퓨터 시스템은 교차로에 합류하도록 자율 주행 차량을 동작시키는 하나 이상의 운전 커맨드를 생성한다. 다른 실시예에서, 신경 네트워크는 표시 대신에 또는 표시에 부가하여 운전 명령을 출력할 수 있다. 예를 들어, 신경 네트워크는 진행할 방향 및 속력을 출력할 수 있다. 신경 네트워크의 출력이 합류를 보류하는 것인 경우, 속력의 출력은 0일 수 있다.
일 실시예에서, 교차로에 합류하는 것을 보류하라는 표시를 수신하는 것에 응답하여, 임계 시간 기간이 경과한 후에, 컴퓨터 시스템은 업데이트된 센서 데이터를 사용하여 신경 네트워크를 실행할 수 있다. 예를 들어, 자율 주행 차량이 무통제 교통 교차로에 합류하는 것을 보류해야 한다는 것을 나타내는 출력에 부가하여, 신경 네트워크는 신경 네트워크를 다시 실행할 때까지 기다리는 시간에 관련된 데이터를 출력할 수 있다. 그 시간은 조건(예를 들어, 합류 기동을 하기에는 너무 가깝게 있는 무통제 교차로에 접근하는 다른 차량)이 제거되는 데 걸리는 시간에 기초할 수 있다.
위에서 논의된 바와 같이, 일부 신경 네트워크는 하나 이상의 운전 커맨드를 출력하도록 구성될 수 있으며, 그 운전 커맨드는 (예를 들어, 하나 이상의 운전 커맨드에 기초하여 자율 주행 차량을 동작시키도록 제어 회로에 명령함으로써) 스스로 운행하기 위해 자율 주행 차량에 의해 사용될 수 있다. 예를 들어, 컴퓨터 시스템은 신경 네트워크의 출력으로서 운전 커맨드를 수신하고 그 커맨드를 차량의 제어 회로에 송신할 수 있다. 운전 커맨드는 특정 기동을 수행하라는 명령을 포함할 수 있다. 차량의 제어 회로는 차량의 배향 및 위치에 기초하여 명령을 조정할 수 있다(예를 들어, 시나리오에 적합하도록 명령을 수정함).
위에서 논의된 액션은 하나 이상의 컴퓨터 프로세서 및, 하나 이상의 컴퓨터 프로세서에 의해 실행될 때, 본 개시에 기술된 액션을 수행하게 하는 명령을 저장하는 하나 이상의 비-일시적 저장 매체를 포함할 수 있는 자율 주행 차량에서 수행될 수 있다. 부가적으로 또는 대안적으로, 본 개시에 기술된 액션을 수행하기 위한 커맨드는, 하나 이상의 컴퓨팅 디바이스에 의해 실행될 때, 커맨드를 수행하게 하는 하나 이상의 비-일시적 저장 매체에 저장될 수 있다.
전술한 설명에서, 본 개시의 실시예는 구현에 따라 달라질 수 있는 다수의 특정 세부 사항을 참조하여 기술되었다. 따라서, 상세한 설명 및 도면은 제한적인 관점보다는 예시적인 관점에서 보아야 한다. 본 개시의 범위의 유일하고 배타적인 지표, 그리고 출원인에 의해 본 개시의 범위인 것으로 의도되는 것이 무엇인지는, 임의의 차후의 정정을 포함한, 그러한 청구항이 발행되는 특정 형태로 된, 본 출원으로부터 유래하는 일련의 청구항의 문언적 및 등가적 범위이다. 그러한 청구항에 포함된 용어에 대한 본원에서 명시적으로 기재된 임의의 정의는 청구항에서 사용되는 그러한 용어의 의미를 결정한다. 그에 부가하여, 전술한 설명 및 이하의 청구항에서 용어 "추가로 포함하는"이 사용될 때, 이 문구에 뒤따르는 것은 부가의 단계 또는 엔티티, 또는 이전에 언급된 단계 또는 엔티티의 서브-단계/서브-엔티티일 수 있다.

Claims (13)

  1. 컴퓨터 구현 방법으로서,
    컴퓨터 시스템에 의해, 제1 복수의 수동 운전 차량의 운전 행동을 결정하는 단계 - 상기 제1 복수의 수동 운전 차량의 각 수동 운전 차량은 대응하는 무통제 교통 교차로에서 교통 합류 행동에 관여(engage)하였음 - ;
    상기 컴퓨터 시스템에 의해, 제2 복수의 수동 운전 차량의 운전 행동을 결정하는 단계 - 상기 제2 복수의 수동 운전 차량의 각 수동 운전 차량은 상기 대응하는 무통제 교통 교차로에 합류하지 않았고, 상기 제2 복수의 수동 운전 차량의 각 차량에 대해 상기 운전 행동을 결정하는 단계는 상기 대응하는 무통제 교통 교차로를 향해 운전하는 다른 차량들의 각각의 속력을 결정하는 단계를 포함함 - ;
    상기 컴퓨터 시스템에 의해, 상기 제1 복수의 수동 운전 차량의 상기 운전 행동 및 상기 제2 복수의 수동 운전 차량의 상기 운전 행동에 기초하여 자율 주행 차량 운전 모델을 결정하는 단계 - 상기 자율 주행 차량 운전 모델은 무통제 교통 교차로에서 교통(traffic)에 합류하려고 운전하는 자율 주행 차량에 의해 구현될 자율 주행 차량 운전 행동을 기술함 - ; 및
    상기 컴퓨터 시스템에 의해, 상기 자율 주행 차량 운전 모델에 따라 상기 자율 주행 차량을 동작시키는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 운전 행동을 추적하기 위해, 하나 이상의 무통제 교통 교차로에 또는 그 근처에 추적 시스템을 위치시키는 단계
    를 더 포함하는, 방법.
  3. 제1항에 있어서, 상기 운전 행동을 결정하는 단계는:
    대응하는 무통제 교통 교차로에 합류한 상기 제1 복수의 수동 운전 차량 중의 차량을 식별하는 단계; 및
    (1) 상기 대응하는 무통제 교통 교차로를 향해 운전하고 있던 복수의 다른 차량의 각각의 속력, (2) 상기 합류한 차량으로부터 상기 복수의 다른 차량 중 각각의 다른 차량의 거리, 및 (3) 각각의 다른 차량의 차선을 결정하는 단계
    를 포함하는, 방법.
  4. 제1항에 있어서, 상기 운전 행동을 결정하는 단계는:
    상기 대응하는 무통제 교통 교차로에 합류하지 않는 상기 제2 복수의 수동 운전 차량의 각 차량에 대해, 합류하지 않은 각 차량으로부터 상기 다른 차량들 중 각각의 다른 차량의 거리, 및 각각의 다른 차량의 차선을 결정하는 단계
    를 포함하는, 방법.
  5. 제1항에 있어서, 상기 운전 행동을 결정하는 단계는:
    데이터를 수집하는 단계;
    상기 수집된 데이터로부터 데이터 세트를 식별하는 단계; 및
    상기 데이터 세트를 베이스라인 모델에 피팅(fitting)하는 단계
    를 포함하는, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 운전 행동은 각 수동 운전 차량의 속도 및 방향을 포함하는, 방법.
  7. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 자율 주행 차량 운전 모델은, 상기 무통제 교통 교차로를 향해 운전하고 있던 특정 차량에 대해, 상기 교차로를 향해 운전하고 있던 다른 차량들의 속력, 상기 특정 차량으로부터 각각의 다른 차량의 거리, 및 각각의 다른 차량의 차선을 매핑하는, 방법.
  8. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 컴퓨터 시스템은, 상기 자율 주행 차량 운전 모델을 결정할 때, 상기 수동 운전 차량이 상기 교차로에서 교통에 합류하려고 시도했는지 또는 상기 교차로에서 교통에 합류하려고 시도하지 않았는지를 결정하도록 구성되는, 방법.
  9. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 자율 주행 차량 운전 모델에 따라 상기 자율 주행 차량을 동작시키는 단계는:
    상기 자율 주행 차량에서부터 상기 무통제 교통 교차로를 향해 운전하는 다른 차량까지의 거리를 결정하는 단계;
    상기 다른 차량의 속력을 결정하는 단계;
    상기 컴퓨터 시스템을 사용하여, 상기 자율 주행 차량 운전 모델에 따라 상기 거리 및 상기 속력을 프로세싱하는 단계; 및
    상기 거리 및 상기 속력을 프로세싱한 결과에 기초하여, 상기 무통제 교통 교차로에서 교통에 합류하거나 합류하지 말라는 명령어를, 제어 회로에 제공하는 단계
    를 포함하는, 방법.
  10. 시스템에 있어서,
    제1 복수의 수동 운전 차량 및 제2 복수의 수동 운전 차량의 운전 행동을 결정하도록 구성된 컴퓨터 시스템 - 상기 제1 복수의 수동 운전 차량의 각 수동 운전 차량은 대응하는 무통제 교통 교차로에서 교통 합류 행동에 관여하였고, 상기 제2 복수의 수동 운전 차량의 각 수동 운전 차량은 대응하는 무통제 교통 교차로에서 교통 합류 행동에 관여하지 않았음 -; 및
    차량
    을 포함하고, 상기 차량은:
    컴퓨터 실행 가능 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체, 및
    상기 컴퓨터 시스템에 통신 가능하게 결합되고, 상기 컴퓨터 실행 가능 명령어를 실행하도록 구성된 하나 이상의 프로세서를 포함하며, 상기 실행은 동작들을 수행하고, 상기 동작들은:
    상기 차량에 의해, 상기 컴퓨터 시스템으로부터 상기 제1 복수의 수동 운전 차량 및 상기 제2 복수의 수동 운전 차량의 상기 운전 행동을 수신하는 동작,
    상기 차량에 의해, 상기 제1 복수의 수동 운전 차량 및 상기 제2 복수의 수동 운전 차량의 상기 운전 행동에 기초하여 자율 주행 차량 운전 모델을 결정하는 동작 - 상기 자율 주행 차량 운전 모델은 무통제 교통 교차로에서 교통 합류 행동에 관여하는 자율 주행 차량에 의해 구현될 자율 주행 차량 운전 행동을 기술하고, 상기 제2 복수의 수동 운전 차량의 각 차량에 대해 상기 운전 행동을 결정하는 것은 상기 대응하는 무통제 교통 교차로를 향해 운전하는 다른 차량들의 각각의 속력을 결정하는 것을 포함함 -, 및
    상기 차량에 의해, 상기 자율 주행 차량 운전 모델에 따라 스스로 운행하는 동작을 포함하는, 시스템.
  11. 제10항에 있어서,
    상기 컴퓨터 시스템은 상기 차량과 분리되어 있는, 시스템.
  12. 제11항에 있어서,
    상기 컴퓨터 시스템은 상기 차량에 상기 운전 행동을 제공하도록 구성되는, 시스템.
  13. 제10항에 있어서,
    상기 컴퓨터 시스템은 상기 차량에 탑재되어 있는, 시스템.
KR1020220097929A 2019-08-23 2022-08-05 데이터 기반 규칙 북 KR102542970B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230073411A KR20230085127A (ko) 2019-08-23 2023-06-08 데이터 기반 규칙 북

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962891002P 2019-08-23 2019-08-23
US62/891,002 2019-08-23
KR1020200105329A KR102431324B1 (ko) 2019-08-23 2020-08-21 데이터 기반 규칙 북

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020200105329A Division KR102431324B1 (ko) 2019-08-23 2020-08-21 데이터 기반 규칙 북

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020230073411A Division KR20230085127A (ko) 2019-08-23 2023-06-08 데이터 기반 규칙 북

Publications (2)

Publication Number Publication Date
KR20220112742A KR20220112742A (ko) 2022-08-11
KR102542970B1 true KR102542970B1 (ko) 2023-06-14

Family

ID=72660823

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020200105329A KR102431324B1 (ko) 2019-08-23 2020-08-21 데이터 기반 규칙 북
KR1020220097929A KR102542970B1 (ko) 2019-08-23 2022-08-05 데이터 기반 규칙 북
KR1020230073411A KR20230085127A (ko) 2019-08-23 2023-06-08 데이터 기반 규칙 북

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020200105329A KR102431324B1 (ko) 2019-08-23 2020-08-21 데이터 기반 규칙 북

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020230073411A KR20230085127A (ko) 2019-08-23 2023-06-08 데이터 기반 규칙 북

Country Status (5)

Country Link
US (1) US11945440B2 (ko)
KR (3) KR102431324B1 (ko)
CN (1) CN112417636A (ko)
DE (1) DE102020210499A1 (ko)
GB (4) GB202311621D0 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11273836B2 (en) * 2017-12-18 2022-03-15 Plusai, Inc. Method and system for human-like driving lane planning in autonomous driving vehicles
DE102018109883A1 (de) * 2018-04-24 2018-12-20 Continental Teves Ag & Co. Ohg Verfahren und Vorrichtung zum kooperativen Abstimmen von zukünftigen Fahrmanövern eines Fahrzeugs mit Fremdmanövern zumindest eines Fremdfahrzeugs
US11834045B2 (en) 2019-10-08 2023-12-05 Motional Ad Llc Navigating multi-way stop intersections with an autonomous vehicle
US11531865B2 (en) * 2020-02-28 2022-12-20 Toyota Research Institute, Inc. Systems and methods for parallel autonomy of a vehicle
US20210341926A1 (en) * 2020-04-29 2021-11-04 Gm Cruise Holdings Llc Dynamic tire rotation during collision
WO2022027057A1 (en) * 2020-07-29 2022-02-03 Uber Technologies, Inc. Routing feature flags
KR20220026656A (ko) * 2020-08-25 2022-03-07 현대모비스 주식회사 차량의 주행 제어 시스템 및 방법
US11702075B2 (en) * 2021-04-30 2023-07-18 Nissan North America, Inc. System and method for proactive lane assist
CN113525400A (zh) * 2021-06-21 2021-10-22 上汽通用五菱汽车股份有限公司 变道提醒方法、装置、车辆及可读存储介质
US11400958B1 (en) * 2021-09-20 2022-08-02 Motional Ad Llc Learning to identify safety-critical scenarios for an autonomous vehicle
CN114655213B (zh) * 2022-04-18 2024-05-24 重庆长安汽车股份有限公司 一种基于自学习的红绿灯路口驾驶控制系统及方法
DE102022001728B4 (de) 2022-05-17 2024-01-04 Mercedes-Benz Group AG Verfahren zur Entwicklung eines autonomen Fahrsystems eines Fahrzeugs
US20230399014A1 (en) * 2022-06-14 2023-12-14 Motional Ad Llc Autonomous vehicle yielding
US11798407B1 (en) * 2022-08-03 2023-10-24 Soochow University Method and system for identifying lane changing intention of manually driven vehicle

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017138953A (ja) * 2015-04-21 2017-08-10 パナソニックIpマネジメント株式会社 情報処理システム、情報処理方法、およびプログラム
US20180348755A1 (en) 2017-05-31 2018-12-06 Panasonic Intellectual Property Corporation Of America Information processing method for determining difficult area in which travel of vehicle by automatic driving is difficult, information processing apparatus, system, and storage medium

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US254759A (en) * 1882-03-07 John nelles young
CA2568220C (en) 2004-08-06 2012-10-30 Honda Motor Co., Ltd. Control device for vehicle
JP5125400B2 (ja) 2007-10-19 2013-01-23 トヨタ自動車株式会社 車両走行制御装置
US7639159B2 (en) 2007-10-29 2009-12-29 Kapsch Trafficcom Ag System and method for determining intersection right-of-way for vehicles
KR20090054417A (ko) 2009-04-30 2009-05-29 한국전자통신연구원 차량 및 운전자 정보 관리 시스템 및 그 방법
DE102012021282A1 (de) 2012-10-29 2014-04-30 Audi Ag Verfahren zur Koordination des Betriebs von vollautomatisiert fahrenden Kraftfahrzeugen
KR20150066303A (ko) 2013-12-06 2015-06-16 한국전자통신연구원 운전자의 주행 패턴을 반영하는 자율 주행 장치 및 그 방법
CA3067177A1 (en) 2015-02-10 2016-08-18 Mobileye Vision Technologies Ltd. Sparse map for autonomous vehicle navigation
US9645577B1 (en) 2016-03-23 2017-05-09 nuTonomy Inc. Facilitating vehicle driving and self-driving
US10081357B2 (en) 2016-06-23 2018-09-25 Honda Motor Co., Ltd. Vehicular communications network and methods of use and manufacture thereof
US10254121B2 (en) 2017-01-23 2019-04-09 Uber Technologies, Inc. Dynamic routing for self-driving vehicles
KR20180086632A (ko) 2017-01-23 2018-08-01 한국전자통신연구원 자율주행 차량의 행동 결정 장치 및 방법
US11567509B2 (en) 2017-01-30 2023-01-31 Nec Corporation Control system, control method, and non-transitory storage medium
EP3631365A2 (en) 2017-05-30 2020-04-08 Nauto Global Limited Systems and methods for safe route determination
CN110997387B (zh) 2017-06-20 2023-06-20 动态Ad 有限责任公司 具有自主驾驶能力的运载工具的风险处理
JP6938244B2 (ja) 2017-06-26 2021-09-22 本田技研工業株式会社 車両制御システム、車両制御方法、および車両制御プログラム
US10429842B2 (en) 2017-07-10 2019-10-01 Toyota Research Institute, Inc. Providing user assistance in a vehicle based on traffic behavior models
US10431081B2 (en) 2017-07-10 2019-10-01 Toyota Research Institute, Inc. Providing user assistance in a vehicle based on traffic behavior models
CN109496288A (zh) 2017-07-13 2019-03-19 北京嘀嘀无限科技发展有限公司 用于确定轨迹的系统和方法
JP6946861B2 (ja) 2017-08-29 2021-10-13 トヨタ自動車株式会社 自動運転評価装置及び自動運転評価方法
US20190079517A1 (en) 2017-09-08 2019-03-14 nuTonomy Inc. Planning autonomous motion
US11003183B2 (en) 2017-09-13 2021-05-11 Baidu Usa Llc Driving scene based path planning for autonomous driving vehicles
US10254759B1 (en) 2017-09-14 2019-04-09 Waymo Llc Interactive autonomous vehicle agent
KR20190054374A (ko) 2017-11-13 2019-05-22 한국전자통신연구원 주행 경험 정보를 이용한 자율주행 학습 장치 및 방법
KR102056377B1 (ko) 2017-12-15 2019-12-16 엘지전자 주식회사 차량에 구비된 차량 제어 장치 및 차량의 제어방법
US10909866B2 (en) * 2018-07-20 2021-02-02 Cybernet Systems Corp. Autonomous transportation system and methods
DE102018215949A1 (de) 2018-09-19 2020-03-19 Robert Bosch Gmbh Verfahren zur Trajektorienplanung eines beweglichen Objektes
GB2608718B (en) 2018-12-18 2023-06-28 Motional Ad Llc Operation of a vehicle using multiple motion constraints
GB2608567B (en) 2018-12-18 2023-06-14 Motional Ad Llc Operation of a vehicle using motion planning with machine learning
US20200211394A1 (en) 2018-12-26 2020-07-02 Zoox, Inc. Collision avoidance system
US11169532B2 (en) 2019-03-26 2021-11-09 Intel Corporation Computer-assisted (CA)/autonomous driving (AD) vehicle inference model creation
EP3722908B1 (en) 2019-04-09 2022-11-30 Bayerische Motoren Werke Aktiengesellschaft Learning a scenario-based distribution of human driving behavior for realistic simulation model
KR102310491B1 (ko) 2019-11-27 2021-10-08 한국과학기술원 자율주행 자동차의 충돌 회피 경로 생성 방법 및 장치
US20220080962A1 (en) 2020-09-14 2022-03-17 Motional Ad Llc Vehicle operation using a behavioral rule model
US20220126876A1 (en) 2020-10-23 2022-04-28 Motional Ad Llc Vehicle operation using behavioral rule checks
US20230221128A1 (en) 2022-01-11 2023-07-13 Motional Ad Llc Graph Exploration for Rulebook Trajectory Generation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017138953A (ja) * 2015-04-21 2017-08-10 パナソニックIpマネジメント株式会社 情報処理システム、情報処理方法、およびプログラム
US20180348755A1 (en) 2017-05-31 2018-12-06 Panasonic Intellectual Property Corporation Of America Information processing method for determining difficult area in which travel of vehicle by automatic driving is difficult, information processing apparatus, system, and storage medium

Also Published As

Publication number Publication date
GB202112060D0 (en) 2021-10-06
GB202211535D0 (en) 2022-09-21
GB2594900B (en) 2022-09-21
GB202311621D0 (en) 2023-09-13
KR20220112742A (ko) 2022-08-11
GB2594900A (en) 2021-11-10
KR20210023765A (ko) 2021-03-04
CN112417636A (zh) 2021-02-26
US11945440B2 (en) 2024-04-02
GB202013093D0 (en) 2020-10-07
GB2609759B (en) 2023-09-27
US20210053569A1 (en) 2021-02-25
KR102431324B1 (ko) 2022-08-10
DE102020210499A1 (de) 2021-02-25
GB2589687A (en) 2021-06-09
GB2609759A (en) 2023-02-15
KR20230085127A (ko) 2023-06-13
GB2589687B (en) 2022-03-02

Similar Documents

Publication Publication Date Title
KR102542970B1 (ko) 데이터 기반 규칙 북
KR102663570B1 (ko) 차량의 궤적을 계획 및 업데이트하기 위한 시스템 및 방법
KR102532546B1 (ko) 미리 계산되거나 동적으로 생성된 궤적 뱅크로부터의 궤적 예측
KR102569134B1 (ko) 머신 러닝을 이용한 모션 계획을 사용한 차량의 동작
KR102505300B1 (ko) 복수의 모션 제약을 사용하는 차량의 동작
KR20210108867A (ko) 차량의 교통 신호등 검출 시스템
KR102505717B1 (ko) 교통 신호등 추정
KR102555318B1 (ko) 조건부 움직임 예측
KR102639008B1 (ko) 도로 특징부에 대한 폐색 표현을 구현하기 위한 시스템 및 방법
KR20220147006A (ko) 동적 상태를 사용한 자율 주행 차량의 궤적의 계획
KR102580097B1 (ko) 교정 정보를 사용한 av 경로 계획
KR20200138673A (ko) 속력 프로파일 추정
KR102223836B1 (ko) 전동 조향 토크 보상
KR20230035440A (ko) 교통 신호등 추정
KR20210109615A (ko) 활동에 기초한 인지된 대상체 분류

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant