KR102589587B1 - 자율 주행 차량용 동적 모델 평가 패키지 - Google Patents
자율 주행 차량용 동적 모델 평가 패키지 Download PDFInfo
- Publication number
- KR102589587B1 KR102589587B1 KR1020210139501A KR20210139501A KR102589587B1 KR 102589587 B1 KR102589587 B1 KR 102589587B1 KR 1020210139501 A KR1020210139501 A KR 1020210139501A KR 20210139501 A KR20210139501 A KR 20210139501A KR 102589587 B1 KR102589587 B1 KR 102589587B1
- Authority
- KR
- South Korea
- Prior art keywords
- trajectory
- adv
- generating
- ground truth
- predicted
- Prior art date
Links
- 238000011156 evaluation Methods 0.000 title claims description 40
- 230000007547 defect Effects 0.000 claims abstract description 7
- 238000000034 method Methods 0.000 claims description 52
- 238000004088 simulation Methods 0.000 claims description 29
- 230000006399 behavior Effects 0.000 claims description 22
- 230000001133 acceleration Effects 0.000 claims description 19
- 238000012545 processing Methods 0.000 claims description 7
- 230000015654 memory Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 230000001186 cumulative effect Effects 0.000 abstract description 3
- 238000002379 ultrasonic velocimetry Methods 0.000 description 49
- 238000012360 testing method Methods 0.000 description 38
- 238000012549 training Methods 0.000 description 34
- 230000008569 process Effects 0.000 description 23
- 230000008447 perception Effects 0.000 description 17
- 230000033001 locomotion Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000003062 neural network model Methods 0.000 description 7
- 238000000605 extraction Methods 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 5
- 238000007405 data analysis Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 4
- 210000002569 neuron Anatomy 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009429 electrical wiring Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0234—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using optical markers or beacons
- G05D1/0236—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using optical markers or beacons in combination with a laser
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0221—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT 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/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT 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/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/005—Handover processes
- B60W60/0051—Handover processes from occupants to vehicle
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W10/00—Conjoint control of vehicle sub-units of different type or different function
- B60W10/04—Conjoint control of vehicle sub-units of different type or different function including control of propulsion units
- B60W10/06—Conjoint control of vehicle sub-units of different type or different function including control of propulsion units including control of combustion engines
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W10/00—Conjoint control of vehicle sub-units of different type or different function
- B60W10/18—Conjoint control of vehicle sub-units of different type or different function including control of braking systems
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W10/00—Conjoint control of vehicle sub-units of different type or different function
- B60W10/20—Conjoint control of vehicle sub-units of different type or different function including control of steering systems
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT 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/00—Purposes 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/18—Propelling the vehicle
- B60W30/18009—Propelling the vehicle related to particular drive situations
- B60W30/18109—Braking
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0214—Control 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
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0223—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving speed control of the vehicle
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0238—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
- G05D1/024—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors in combination with a laser
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0242—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using non-visible light signals, e.g. IR or UV signals
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0246—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0257—Control of position or course in two dimensions specially adapted to land vehicles using a radar
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0276—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0276—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
- G05D1/0278—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using satellite positioning signals, e.g. GPS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3013—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/15—Vehicle, aircraft or watercraft design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT 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/00—Details 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/0001—Details of the control system
- B60W2050/0002—Automatic control, details of type of controller or control system architecture
- B60W2050/0004—In digital systems, e.g. discrete-time systems involving sampling
- B60W2050/0005—Processor details or data handling, e.g. memory registers or chip architecture
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT 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/00—Details 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/0001—Details of the control system
- B60W2050/0019—Control system elements or transfer functions
- B60W2050/0028—Mathematical models, e.g. for simulation
- B60W2050/0031—Mathematical model of the vehicle
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT 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/00—Indexing codes relating to the type of sensors based on the principle of their operation
- B60W2420/40—Photo, light or radio wave sensitive means, e.g. infrared sensors
- B60W2420/408—Radar; Laser, e.g. lidar
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT 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
- B60W2510/00—Input parameters relating to a particular sub-units
- B60W2510/06—Combustion engines, Gas turbines
- B60W2510/0604—Throttle position
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT 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/00—Input parameters relating to overall vehicle dynamics
- B60W2520/10—Longitudinal speed
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Aviation & Aerospace Engineering (AREA)
- Theoretical Computer Science (AREA)
- Mechanical Engineering (AREA)
- Transportation (AREA)
- Combustion & Propulsion (AREA)
- Chemical & Material Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Electromagnetism (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Optics & Photonics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Traffic Control Systems (AREA)
- Control Of Driving Devices And Active Controlling Of Vehicle (AREA)
Abstract
제어 명령 하에 ADV의 거동을 시뮬레이션하는 경우에, ADV의 궤적 예측 시, 동적 모델의 정확도를 평가하기 위한 성능 메트릭이 개시된다. 성능 메트릭은, 동일한 제어 명령이 적용되는 경우에 동적 모델의 예측 궤적과 차량의 실제 궤적 사이의 유사성 정도를 표시할 수 있다. 성능 메트릭은, 실측에 기반한 실제 궤적으로부터 동적 모델의 예측 궤적의 편차를 측정한다. 성능 메트릭은, 누적 또는 평균 절대 궤적 오차, 종료-자세 차이(ED), 2-시그마 결함률(ε2σ), Hausdirff 거리(HAU), 최장 공통 서브-시퀀스 오차(LCSS) 및 동적 시간 워핑(DTW)을 포함할 수 있다. 2-시그마 결함률은, 궤적의 총 지점 수에 대해 예측 위치 오차의 2σ 범위를 벗어나는 실제 위치 오차가 있는 지점 수의 비율을 나타낸다.
Description
본 개시 내용의 구현예는 일반적으로 자율주행 차량의 작동에 관한 것이다. 보다 구체적으로, 본 개시 내용의 구현예는 자율 주행 차량(ADV)의 거동을 에뮬레이션하는 데 사용되는 시뮬레이션 모델의 정확도를 평가하기 위한 방법에 관한 것이다.
자율 모드(예, 무인 운전)에서 작동하는 차량은 탑승자, 특히 운전자를 일부 주행 관련 책임에서 경감시킬 수 있다. 자율 모드에서 작동하는 경우에, 차량은 온보드 센서를 사용하여 다양한 위치를 탐색할 수 있으므로, 차량을 최소한의 인간 상호 작용으로 또는 경우에 따라 승객 없이 이동시킬 수 있다.
모션 계획 및 제어는 자율 주행에서 중요한 작업이다. 모션 계획 및 제어 작업의 안전성, 정확성 및 효율성은, ADV가 움직이지 않는 물체를 인식할 뿐만 아니라 다른 차량 또는 보행자와 같이 움직이는 장애물의 움직임을 감지 및 예측하는 능력에 달려 있다. 카메라, 라이더(LIDAR, Light Detection and Range) 장치, 레이더 등과 같은 센서는, 차량 주변 환경의 비디오 및 전자기 이미지를 캡처하는 데 사용된다. ADV는, 센서에 의해 포착된 정보를 처리하여, ADV의 모션을 계획하고 제어하기 위해 ADV를 둘러싼 장애물, 교통 요소 및 도로 특징부를 포함하는 주행 환경을 인식할 수 있다.
계획 및 제어 시스템의 개발을 가속화하기 위해, 루프 제어 시뮬레이터를 사용하여 ADV의 동적 거동 및 HDV(High-Fidelity Driving) 시나리오에서 다른 차량, 보행자, 물체 및 주변 환경과의 상호 작용을 에뮬레이션할 수 있다. ADV의 실제 도로 결과를 정확하게 예측하는 ADV의 모션 및 궤적의 동적 모델은, 계획 및 제어 시스템의 온-보드 테스트, 개발 및 검증에 필요한 시간을 크게 줄일 수 있다. 따라서, 동적 모델의 정확도를 평가하는 기술이 필요하다.
본 개시는 자율 주행 차량(ADV)의 거동을 시뮬레이션하는 데 사용되는 동적 시뮬레이터의 성능을 평가하기 위한 컴퓨터 구현 방법을 제공하며, 상기 방법은,
상기 동적 시뮬레이터에 의해, 복수의 시점에 대해 상기 ADV의 복수의 상태, 및 상기 복수의 시점에서 상기 ADV에 적용될 복수의 제어 명령을 수신하는 단계;
상기 동적 시뮬레이터에 의해, 상기 복수의 상태 및 상기 복수의 제어 명령에 기반하여, 상기 ADV에 대해 시뮬레이션된 궤적의 복수의 예측 위치를 생성하는 단계;
상기 ADV에 대한 실측 궤적의 복수의 실제 위치를 수신하되, 상기 실제 위치는 상기 복수의 시점에서 상기 ADV에 상기 제어 명령을 적용함으로써 생성되는 단계; 및
상기 시뮬레이션 궤적의 복수의 예측 위치와 상기 복수의 시점에서 상기 실측 궤적의 복수의 실제 위치 사이의 유사성 정도를 측정하기 위해 평가 메트릭을 생성하는 단계를 포함한다.
본 개시 내용의 구현예는, 유사한 참조가 유사한 요소를 나타내는 첨부 도면의 도면에서 제한하려는 것이 아니라 예시의 방식으로 나타나 있다.
도 1은 일 구현예에 따른 네트워크 시스템을 나타내는 블록도이다.
도 2는 일 구현예에 따른 자율주행 차량에 사용되는 센서 시스템 및 제어 시스템의 예를 나타내는 블록도이다.
도 3a 및 도 3b는 일 구현예에 따른 자율주행 차량과 함께 사용되는 인식 및 계획 시스템의 예를 나타내는 블록도이다.
도 4는 일 구현예에 따른 자율 주행 시스템의 아키텍처를 나타내는 블록도이다.
도 5는 일 구현예에 따른 예시적인 동적 모델을 나타낸다.
도 6은 일 구현예에 따라 도 5에 나타낸 동적 모델을 훈련하기 위한 예시적인 시스템(600)을 나타낸다.
도 7은 일 구현예에 따른 동적 모델을 훈련하는 예시적인 흐름도를 나타낸다.
도 8은 일 구현예에 따른 차량의 동적 거동을 시뮬레이션하기 위해, 자율주행 차량의 인식 및 계획 시스템 그리고 제어 모듈과 통합된 루프 제어 시뮬레이션의 예시를 나타내는 블록도이다.
도 9는 일 구현예에 따른 동적 모델의 성능을 평가하기 위한 예시적인 작업을 나타낸다.
도 10은 일 구현예에 따른 동적 모델의 성능을 평가하기 위한 프로세스의 예시를 나타내는 흐름도이다.
도 1은 일 구현예에 따른 네트워크 시스템을 나타내는 블록도이다.
도 2는 일 구현예에 따른 자율주행 차량에 사용되는 센서 시스템 및 제어 시스템의 예를 나타내는 블록도이다.
도 3a 및 도 3b는 일 구현예에 따른 자율주행 차량과 함께 사용되는 인식 및 계획 시스템의 예를 나타내는 블록도이다.
도 4는 일 구현예에 따른 자율 주행 시스템의 아키텍처를 나타내는 블록도이다.
도 5는 일 구현예에 따른 예시적인 동적 모델을 나타낸다.
도 6은 일 구현예에 따라 도 5에 나타낸 동적 모델을 훈련하기 위한 예시적인 시스템(600)을 나타낸다.
도 7은 일 구현예에 따른 동적 모델을 훈련하는 예시적인 흐름도를 나타낸다.
도 8은 일 구현예에 따른 차량의 동적 거동을 시뮬레이션하기 위해, 자율주행 차량의 인식 및 계획 시스템 그리고 제어 모듈과 통합된 루프 제어 시뮬레이션의 예시를 나타내는 블록도이다.
도 9는 일 구현예에 따른 동적 모델의 성능을 평가하기 위한 예시적인 작업을 나타낸다.
도 10은 일 구현예에 따른 동적 모델의 성능을 평가하기 위한 프로세스의 예시를 나타내는 흐름도이다.
본 개시 내용의 다양한 구현예 및 양태는 아래에서 논의되는 세부사항을 참조하여 설명될 것이고, 첨부 도면은 다양한 구현예를 나타낼 것이다. 하기 설명 및 도면은 본 개시를 예시하고 본 개시를 제한하는 것으로 해석되어서는 안 된다. 본 개시 내용의 다양한 구현예의 완전한 이해를 제공하기 위해 다수의 특정 세부사항이 설명된다. 그러나, 특정 경우에, 본 개시 내용의 구현예에 대한 간결한 논의를 제공하기 위해 잘 알려진 또는 통상적인 세부 사항은 설명되지 않는다.
명세서에서 "일 구현예" 또는 "하나의 구현예"에 대한 참조는 구현예와 연관하여 설명된 특정 특징, 구조 또는 특성이 본 개시의 적어도 하나의 구현예에 포함될 수 있음을 의미한다. 명세서의 다양한 위치에서 "일 구현예에서"라는 문구의 출현은 반드시 모두 동일한 구현예를 지칭하는 것은 아니다.
ADV의 모션 계획 및 제어는, 센서에 의해 포착된 정보를 처리하여, ADV의 모션을 계획하고 제어하기 위해 ADV 주변의 물체, 장애물, 교통 요소 및 도로 특징을 포함한 주행 환경을 인식한다. 모션 계획 및 제어 작업의 제어 명령은, ADV의 쓰로틀, 조향기 및 브레이크 같은 액추에이터로 하여금, 주행 환경을 통해 ADV를 안전하게 탐색하기 위해 규정된 모션으로 작동하도록 지시한다. 제어 명령을 기반으로 ADV의 위치, 모션 또는 궤적을 모델링하기 위해 동적 모델을 사용하는 루프 제어 시뮬레이터는, HFD 시나리오에서 계획 및 제어 작업을 개발, 교육, 평가 및 검증하는 데 사용할 수 있으며, 실제 온보드 테스트의 필요성을 줄인다. ADV의 실제 거동에 관해 동적 모델의 시뮬레이션되거나 예측된 출력의 정확도를 평가하면, 동적 모델의 성능을 평가할 수 있다. 그 다음, 동적 모델을 미세 조정하여 루프 제어 시뮬레이터에서 ADV의 거동을 보다 정확하게 예측할 수 있다.
모션 계획 및 제어 작업의 명령 하에 ADV의 거동을 시뮬레이션하는 경우에, ADV의 궤적 예측 시, 동적 모델의 정확도를 평가하기 위한 성능 메트릭이 개시된다. 성능 메트릭은, 모션 계획 및 제어 작업에서 동일한 제어 명령이 적용되는 경우에 동적 모델의 예측 궤적과 차량의 실제 궤적 사이의 유사성 정도 또는 반대로 오차 정도를 표시할 수 있다. 차량의 실제 궤적은, 실제 주행 시나리오에서 온-보드 테스트 중에 기록된 차량의 센서에 의해 측정된 지상의 실제 궤적일 수 있다. 동적 모델에 대한 입력은, 차량의 상태 및 온-보드 테스트 중에 기록되는 차량의 제어 명령일 수도 있다. 일 구현예에서, 차량의 상태는 특정 시점에서의 차량의 속력, 가속도 및 각속도를 포함한다. 제어 명령은 스로틀 명령, 브레이크 명령 또는 조향 명령일 수 있다. 성능 메트릭은, 장거리 도시 주행 시나리오를 포함하여 일반적인 주행 조작 및 시나리오에서 생성될 수 있다.
일 구현예에서, 성능 메트릭은 지상의 실제 궤적에 기반한 실제 궤적으로부터 동적 모델의 예측 궤적의 편차를 평가하는 메트릭을 포함할 수 있다. 성능 메트릭은, 누적 절대 궤적 오차 또는 평균 절대 궤적 오차, 종료-자세 차이(ED), 2-시그마 결함률, Hausdirff 거리(HAU), 최장 공통 서브-시퀀스 오차(LCSS) 및 동적 시간 워핑(DTW)을 포함할 수 있다.
일 구현예에서, ADV의 거동을 시뮬레이션하기 위해 사용되는 동적 모델의 성능을 평가하기 위한 방법이 개시된다. 방법은, 동적 모델에 의해, 다수의 시점에 대한 ADV의 상태 세트, 및 해당 시점에 대해 ADV에 적용될 제어 명령 세트를 수신하는 단계를 포함한다. 방법은 또한, 상태 세트 및 제어 명령 세트에 기반하여, ADV에 대해 시뮬레이션 궤적의 예측 위치 세트를 동적 모델에 의해 생성하는 단계를 포함한다. 방법은 ADV에 대한 지상의 실제 궤적의 실제 위치 세트를 추가로 수신한다. 실제 위치는, 해당 시점에서 ADV에 제어 명령을 적용함으로써 생성된다. 방법은, 시뮬레이션 궤적의 예측 위치 세트와 해당 시점에서 지상 실제 궤적의 실제 위치 세트 사이의 유사성 정도를 측정하기 위해 평가 메트릭을 추가로 생성한다.
도 1은 본 개시의 일 구현예에 따른 자율주행 차량 네트워크 구성을 나타내는 블록도이다. 도 1을 참조하면, 네트워크 구성(100)은 네트워크(102)를 통해 하나 이상의 서버(103-104)에 통신 가능하게 결합될 수 있는 자율주행 차량(101)을 포함한다. 하나의 자율주행 차량이 나타나 있지만, 다수의 자율주행 차량이 서로 연결 및/또는 네트워크(102)를 통해 서버(103-104)에 연결될 수 있다. 네트워크(102)는 LAN(Local Area Network), 인터넷과 같은 WAN(Wide Area Network), 셀룰러 네트워크, 위성 네트워크, 또는 이들의 조합과 같은 유선 또는 무선의 임의의 유형의 네트워크일 수 있다. 서버(들)(103-104)는 임의의 종류의 서버 또는 서버 클러스터, 예컨대 웹 또는 클라우드 서버, 애플리케이션 서버, 백엔드 서버 또는 이들의 조합일 수 있다. 서버(103-104)는 데이터 분석 서버, 콘텐츠 서버, 교통 정보 서버, 지도 및 관심 지점(MPOI) 서버, 또는 위치 서버 등일 수 있다.
자율주행 차량은, 운전자의 입력이 거의 또는 전혀 없이, 차량이 환경을 탐색하는 자율주행 모드에서 작동하도록 구성될 수 있는 차량을 의미한다. 이러한 자율주행 차량은, 차량이 작동하는 환경에 대한 정보를 감지하도록 구성된, 하나 이상의 센서를 갖는 센서 시스템을 포함할 수 있다. 차량 및 이와 연관된 제어기(들)은 감지된 정보를 사용하여 환경을 탐색한다. 자율주행 차량(101)은 수동 모드, 완전 자율 모드 또는 부분 자율 모드로 작동할 수 있다.
일 구현예에서, 자율주행 차량(101)은 인식 및 계획 시스템(110), 차량 제어 시스템(111), 무선 통신 시스템(112), 사용자 인터페이스 시스템(113), 및 센서 시스템(115)을 포함하나 이에 제한되지 않는다. 자율주행 차량(101)은 엔진, 휠, 조향 휠, 변속기 등과 같이 일반 차량에 포함된 특정 공통 구성 요소를 추가로 포함할 수 있으며, 이는 다양한 차량 제어 시스템(111) 및/또는 인식 및 계획 시스템(110)에 의해, 다양한 통신 신호 및/또는 명령, 예를 들어 가속 신호 또는 명령, 감속 신호 또는 명령, 조향 신호 또는 명령, 제동 신호 또는 명령 등을 사용한다.
구성 요소(110-115)는 배선, 버스, 네트워크, 또는 이들의 조합을 통해 서로에게 통신 가능하게 연결될 수 있다. 예를 들어, 구성 요소(110-115)는 제어기 영역 네트워크(CAN) 버스를 통해 서로 통신 가능하게 연결될 수 있다. CAN 버스는, 마이크로컨트롤러와 장치로 하여금 호스트 컴퓨터 없이 애플리케이션에서 서로 통신시키도록 설계된 비클 버스 표준이다. 이것은, 자동차 내의 다중 전기 배선을 위해 원래 설계된 메시지 기반 프로토콜이지만 다른 많은 상황에서도 사용된다.
이제 도 2를 참조하면, 일 구현예에서, 센서 시스템(115)은 하나 이상의 카메라(211), GPS(Global Positioning System) 유닛(212), 관성 측정 유닛(IMU)(213), 레이더 유닛(214), 및 라이더(LIDAR) 유닛(215)을 포함하나 이에 제한되지 않는다. GPS 시스템(212)은 자율주행 차량의 위치에 관한 정보를 제공하도록 작동가능한 트랜시버를 포함할 수 있다. IMU 유닛(213)은 관성 가속도에 기초하여 자율주행 차량의 위치 및 방향 변화를 감지할 수 있다. 레이더 유닛(214)은 자율주행 차량의 로컬 환경 내에서 물체를 감지하기 위해 무선 신호를 이용하는 시스템을 나타낼 수 있다. 일부 구현예에서, 물체를 감지하는 것에 추가하여, 레이더 유닛(214)은 물체의 속력 및/또는 방향을 추가로 감지할 수 있다. LIDAR 유닛(215)은, 레이저를 이용하여 자율주행 차량이 위치한 환경에서 물체를 감지할 수 있다. LIDAR 유닛(215)은 다른 시스템 구성 요소 중에서 하나 이상의 레이저 소스, 레이저 스캐너, 및 하나 이상의 감지기를 포함할 수 있다. 카메라(211)는, 자율주행 차량을 둘러싼 환경의 이미지를 캡처하기 위한 하나 이상의 장치를 포함할 수 있다. 카메라(211)는 스틸 카메라 및/또는 비디오 카메라일 수 있다. 카메라는, 예를 들어 회전 및/또는 경사 플랫폼에 카메라를 장착함으로써, 기계적으로 이동 가능할 수 있다.
센서 시스템(115)은 소나 센서, 적외선 센서, 조향 센서, 쓰로틀 센서, 브레이크 센서, 및 오디오 센서(예, 마이크)와 같은 다른 센서를 추가로 포함할 수 있다. 오디오 센서는 자율주행 차량을 둘러싼 환경에서 소리를 캡처하도록 구성될 수 있다. 조향 센서는 조향 휠의 조향 각도, 차량의 휠, 또는 이들의 조합을 감지하도록 구성될 수 있다. 쓰로틀 센서와 브레이크 센서는, 각각 차량의 쓰로틀 위치와 브레이크 위치를 감지한다. 일부 상황에서, 쓰로틀 센서와 브레이크 센서가 통합 쓰로틀/브레이크 센서로 통합될 수 있다.
일 구현예에서, 차량 제어 시스템(111)은 조향 유닛(201), 쓰로틀 유닛(202)(가속 유닛으로도 지칭됨), 및 브레이크 유닛(203)을 포함하나 이에 제한되지 않는다. 조향 유닛(201)은 차량의 방향이나 진행 방향을 조절하는 것이다. 쓰로틀 유닛(202)은 차량의 속력 및 가속도를 차례로 제어하는 모터 또는 엔진의 속력을 제어하는 것이다. 브레이크 유닛(203)은 차량의 휠이나 타이어를 감속시키기 위한 마찰력을 제공하여 차량을 감속시키는 것이다. 도 2에 나타낸 바와 같은 구성 요소는 하드웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있는 점에 주목하기 바란다.
다시 도 1을 참조하면, 무선 통신 시스템(112)은 자율주행 차량(101)과 외부 시스템, 예컨대 장치, 센서, 기타 차량 등과의 통신을 허용하도록 구성된다. 예를 들어, 무선 통신 시스템(112)은 하나 이상의 장치와 직접 또는 네트워크(102)를 걸쳐 서버(103-104)와 같은 통신 네트워크를 통해 무선으로 통신할 수 있다. 무선 통신 시스템(112)은 임의의 셀룰러 통신 네트워크 또는 WLAN(무선 근거리 통신망)을 사용할 수 있으며, 예를 들어 WiFi를 사용하여 다른 구성 요소 또는 시스템과 통신할 수 있다. 무선 통신 시스템(112)은, 예를 들어 적외선 링크, 블루투스 등을 사용하여 장치(예, 탑승객의 모바일 장치, 디스플레이 장치, 차량(101) 내의 스피커)와 직접 통신할 수 있다. 사용자 인터페이스 시스템(113)은, 예를 들어 키보드, 터치 스크린 디스플레이, 마이크 및 스피커 등을 포함하는 차량(101) 내에서 구현되는 주변 장치의 일부일 수 있다.
자율주행 차량(101)의 기능 중 일부 또는 전부는, 특히 자율 주행 모드에서 작동하는 경우에 인식 및 계획 시스템(110)에 의해 제어 또는 관리될 수 있다. 인식 및 계획 시스템(110)은 센서 시스템(115), 제어 시스템(111), 무선 통신 시스템(112)으로부터 정보를 수신하는 데 필요한 하드웨어(예, 프로세서(들), 메모리, 스토리지) 및 소프트웨어(예, 운영 체제, 계획 및 라우팅 프로그램)를 포함하고/포함하거나 사용자 인터페이스 시스템(113)은, 수신된 정보를 처리하고 출발 지점에서 목적 지점까지의 경로를 계획한 다음에 계획 및 제어 정보에 기반하여 차량(101)을 주행시킨다. 대안적으로, 인식 및 계획 시스템(110)은 차량 제어 시스템(111)과 통합될 수 있다.
예를 들어, 탑승객인 사용자는, 예를 들어 사용자 인터페이스를 통해 여행의 출발지와 목적지를 지정할 수 있다. 인식 및 계획 시스템(110)은 여행 관련 데이터를 획득한다. 예를 들어, 인식 및 계획 시스템(110)은, 서버(103-104)의 일부일 수 있는 MPOI 서버로부터 위치 및 경로 정보를 획득할 수 있다. 위치 서버는 위치 서비스를 제공하고 MPOI 서버는 지도 서비스 및 특정 위치의 POI를 제공한다. 대안적으로, 이러한 위치 및 MPOI 정보는 인식 및 계획 시스템(110)의 영구 저장 장치에 국부적으로 캐시될 수 있다. 일 구현예에서, 위치 및 MPOI 정보는 서버(103-104)로부터 다운로드된 HD 지도로부터 획득될 수 있다.
자율주행 차량(101)이 경로를 따라 이동하는 동안에, 인식 및 계획 시스템(110)은 또한 교통 정보 시스템 또는 서버(TIS)로부터 실시간 교통 정보를 획득할 수 있다. 서버(103-104)는, 인식 및 계획 시스템(110)이 경로를 계획하기 위해 인식 및 계획 시스템(110)에 시작 위치 및 목적지 위치를 다운로드하는 서비스 제공자와 같은, 제3자 엔티티에 의해 운영될 수 있음을 주목하기 바란다. 제3자는 또한, 자율주행 차량(101)에게 계획된 경로로 여행을 시작하도록 명령하기 위해, 인식 및 계획 시스템(110)에 명령을 내릴 수 있다. 대안적으로, 서버(103-104)의 기능은 인식 및 계획 시스템(110)과 통합될 수 있다. 실시간 교통 정보, MPOI 정보, 위치 정보, 그리고 센서 시스템(115)에 의해 감지되거나 검출된 로컬 지역 환경 데이터(예, 장애물, 물체, 주변 차량)에 기반하여, 인식 및 계획 시스템(110)은, 특정 목적지에 안전하고 효율적으로 도달하기 위해 계획된 경로에 따라, 예를 들어 제어 시스템(111)을 통해 최적의 경로를 계획하고 및 차량(101)을 주행시킬 수 있다.
서버(103)는, 다양한 클라이언트에 대한 데이터 분석 서비스를 수행하기 위한 데이터 분석 시스템일 수 있다. 일 구현예에서, 데이터 분석 시스템(103)은 데이터 수집기(121) 및 머신 러닝 엔진(122)을 포함한다. 데이터 수집기(121)는, 자율주행 차량 또는 인간 운전자가 운전하는 일반 차량과 같은 다양한 차량으로부터 주행 통계(123)를 수집한다. 주행 통계(123)는, 다른 시점에서 차량의 센서에 의해 포착된 차량의 반응(예, 속력, 가속, 감속, 방향, 각속도) 및 내린 운전 명령(예, 쓰로틀, 브레이크, 조향 명령)을 나타내는 정보를 포함한다. 일 양태에서, 운전 시나리오에서 포착된 차량(101)의 주행 명령 및 상태는, 루프 제어 시뮬레이션에서 주행 차량(101)의 거동을 시뮬레이션하기 위해 동적 모델에 대한 입력으로서 사용될 수 있다. 차량(101)의 시뮬레이션된 위치를 나타내는 동적 모델의 출력은, 센서 시스템(115)에 의해 포착된 실제 위치 또는 실측 값과 비교되어 논의될 동적 모델의 성능을 평가하기 위한 메트릭을 생성할 수 있다. 주행 통계(123)는, 예를 들어 경로(출발 및 목적지 위치 포함), MPOI, 도로 상태, 기상 조건 등과 같은 다양한 시점에서의 운전 환경을 설명하는 정보를 추가로 포함할 수 있다. 주행 통계(123)는 차량의 위치 및 방향을 설명하는 IMU 및 GPS 센서에 의해 캡처된 자세를 추가로 포함할 수 있다.
주행 통계(123)에 기초하여, 머신 러닝 엔진(122)은, 다양한 목적을 위해 한 세트의 규칙, 알고리즘, 및/또는 예측 모델(124)을 생성하거나 훈련시킨다. 예를 들어, 머신 러닝 엔진(122)은 동적 모델을 훈련할 수 있다. 자동화된 동적 모델 훈련 모델은, 주행 통계(123)로부터 훈련 데이터의 추출 및 추출된 주행 통계를 사용하는 동적 모델의 훈련을 제어하기 위해, 서버(103)에 제공될 수 있다. 일 구현예에서, 알고리즘(124)은, 인식 및 계획 시스템(110)이 다른 차량과의 충돌을 피하기 위해 자율주행 차량(101)을 탐색할 수 있도록, 자율주행 차량(101)의 환경에서 다른 차량의 궤적을 예측하는 데 사용되는 딥 러닝 신경망 모델을 포함할 수 있다.
알고리즘(124)은, 실시간으로 자율 주행 중에 활용되도록 ADV에 업로드될 수 있거나, 서버(103)의 장애물 추적 엔진(125)과 같은 다른 모듈에 의해 활용될 수 있다. 일 구현예에서, 장애물 추적 엔진(125)은, 이동 장애물의 과거 궤적 및 이동 장애물이 작동하는 환경에 기반하여, 자율주행 차량(101) 주변의 차량 또는 보행자와 같은 이동 장애물의 단기 모션 또는 궤적을 예측할 수 있다. 장애물 추적 엔진(125)이 서버(103)의 일부로서 나타나 있지만, 일부 구현예에서 엔진(125)은 서버(104)의 일부일 수 있다.
도 3a 및 도 3b는 일 구현예에 따른 자율주행 차량과 함께 사용되는 인식 및 계획 시스템의 예를 나타내는 블록도이다. 시스템(300)은 인식 및 계획 시스템(110), 제어 시스템(111), 및 센서 시스템(115)을 포함하나 이에 제한되지 않는, 도 1의 자율주행 차량(101)의 일부로서 구현될 수 있다. 도 3a 및 도 3b를 참조하면, 지각 및 계획 시스템(110)은 로컬 모듈(301), 인식 모듈(302), 예측 모듈(303), 결정 모듈(304), 계획 모듈(305), 제어 모듈(306), 라우팅 모듈(307), 및 데이터 수집기(308)를 포함하나 이에 제한되지 않는다.
모듈(301-308)의 일부 또는 전부는 소프트웨어, 하드웨어 또는 이들의 조합으로 구현될 수 있다. 예를 들어, 이들 모듈은 영구 저장 장치(352)에 설치되고, 메모리(351)에 로딩되며, 하나 이상의 프로세서(미도시)에 의해 실행될 수 있다. 대안적으로, 이러한 구성 요소는 집적 회로(예, 주문형 IC 또는 ASIC), 디지털 신호 프로세서(DSP), 또는 FPGA(Field Programmable Gate Array)와 같은 전용 하드웨어에 프로그래밍되거나 내장된 실행 코드로서 구현될 수 있으며, 이는 애플리케이션에서 해당 드라이버 및/또는 운영 체제를 통해 액세스될 수 있다. 더욱이, 이러한 구성 요소는 하나 이상의 특정 명령을 통해 소프트웨어 구성 요소에 의해 액세스 가능한 명령 세트의 일부로서 프로세서 또는 프로세서 코어에서 특정 하드웨어 로직으로서 구현될 수 있다. 이들 모듈의 일부 또는 전부는 도 2의 차량 제어 시스템(111)의 일부 또는 모든 모듈에 통신 가능하게 연결되거나 통합될 수 있음을 주목한다. 모듈(301-308) 중 일부는 통합 모듈로 함께 통합될 수 있다. 예를 들어, 결정 모듈(304) 및 계획 모듈(305)은 단일 모듈로서 통합될 수 있다.
로컬 모듈(301)은 자율주행 차량(300)의 현재 위치를 결정하고(예를 들어, GPS 유닛(212)을 활용하고) 사용자의 여행 또는 경로와 관련된 임의의 데이터를 관리한다. 로컬 모듈(301)(지도 및 경로 모듈이라고도 함)은 사용자의 여행 또는 경로와 관련된 임의의 데이터를 관리한다. 사용자는, 예를 들어 사용자 인터페이스를 통해 여행의 출발지와 목적지를 지정하고 기록할 수 있다. 로컬 모듈(301)은 여행 관련 데이터를 획득하기 위해 지도 및 경로 정보(311)와 같은 자율주행 차량(300)의 다른 구성 요소와 통신한다. 예를 들어, 로컬 모듈(301)은 위치 서버 및 지도 및 POI(MPI) 서버로부터 위치 및 경로 정보를 획득할 수 있다. 위치 서버는 위치 서비스를 제공하고, MPOI 서버는, 지도 및 경로 정보(311)의 일부로 캐시될 수 있는, 특정 위치의 지도 서비스 및 POI를 제공한다. 일 구현예에서, 지도 및 경로 정보(311)는 HD 지도일 수 있다. HD 지도는 위치 서버와 MPI 서버에서 다운로드할 수 있다. 자율주행 차량(300)이 경로를 따라 이동하는 동안에, 로컬 모듈(301)은 또한 교통 정보 시스템 또는 서버로부터 실시간 교통 정보를 획득할 수 있다.
센서 시스템(115)에 의해 제공된 센서 데이터 및 로컬 모듈(301)에 의해 획득된 위치화 정보에 기초하여, 주변 환경의 인식은 인식 모듈(302)에 의해 결정된다. 인식 정보는, 운전자가 운전하는 차량 주변에서 일반 운전자가 인식하는 것을 나타낼 수 있다. 인식은 차선 구성, 신호등 신호, 다른 차량의 상대적 위치, 보행자, 건물, 횡단보도 또는 기타 교통 관련 표지판(예, 정지 표지판, 양보 표지판) 등, 예를 들어 물체의 형태로 포함할 수 있다. 차선 구성은 차선의 모양(예, 직선 또는 곡선), 차선 너비, 도로의 차선 수, 일방통행 또는 양방향과 같은 차선, 병합 또는 분할 차선, 출구 차선 등을 설명하는 정보를 포함한다.
인식 모듈(302)은 자율주행 차량(101)의 환경에서 물체 및/또는 특징을 식별하기 위해 하나 이상의 카메라에 의해 캡처된 이미지를 처리 및 분석하기 위한 컴퓨터 비전 시스템 또는 컴퓨터 비전 시스템의 기능을 포함할 수 있다. 물체는 교통 신호, 도로 경계, 기타 차량, 보행자 및/또는 장애물 등을 포함할 수 있다. 컴퓨터 비전 시스템은 물체 인식 알고리즘, 비디오 추적 및 기타 컴퓨터 비전 기술을 사용할 수 있다. 일부 구현예에서, 컴퓨터 비전 시스템은 환경을 매핑하고, 물체를 추적하고, 물체의 속력 등을 추정할 수 있다. 인식 모듈(302)은 또한, 레이더 및/또는 LIDAR와 같은 다른 센서에 의해 제공되는 다른 센서 데이터에 기초하여, 물체를 감지할 수 있다. 일 구현예에서, 인식 모듈(302)은, 자율주행 차량(101)의 환경에서 다른 차량 또는 보행자의 현재 위치, 현재 방향, 및 과거 궤적을 보여주는 이미지 맵을 생성할 수 있다.
각각의 물체에 대해, 예측 모듈(303)은 물체가 상황 하에서 어떻게 행동할 것인지를 예측한다. 지도/경로 정보(311) 및 교통 규칙(312) 세트를 고려하여 일정 시점의 운전 환경을 인식한 인식 데이터를 기반으로 예측이 수행된다. 예를 들어, 물체가 반대 방향의 차량이고 현재 주행 환경이 교차로를 포함하는 경우에, 예측 모듈(303)은 차량이 직진 또는 회전할 가능성이 있는지 예측할 것이다. 인식 데이터가 교차로에 신호등이 없다는 것을 나타내면, 예측 모듈(303)은 교차로에 진입하기 전에 차량이 완전히 정지해야 할 수도 있다고 예측할 수 있다. 인식 데이터가 차량이 현재 좌회전 전용 차선 또는 우회전 전용 차선에 있음을 나타내면, 예측 모듈(303)은 차량이 각각 좌회전 또는 우회전을 할 것으로 예측할 수 있다.
각각의 물체에 대해, 결정 모듈(304)은 물체를 처리하는 방법에 관한 결정을 한다. 예를 들어, 특정 물체(예, 횡단 경로에 있는 다른 차량) 및 물체를 설명하는 메타데이터(예, 속력, 방향, 회전 각도)에 대해, 결정 모듈(304)은 물체에 대응하는 방법(예, 추월, 양보, 정지, 통과)을 결정한다. 결정 모듈(304)은 교통 규칙 또는 운전 규칙(312)과 같은 규칙 세트에 따라 이러한 결정을 내릴 수 있으며, 이는 영구 저장 장치(352)에 저장될 수 있다.
라우팅 모듈(307)은 출발 지점에서 목적 지점까지 하나 이상의 경로를 제공하도록 구성된다. 예를 들어, 사용자로부터 수신된, 출발 위치에서 목적지 위치로의 주어진 여행에 대해, 라우팅 모듈(307)은 경로 및 지도 정보(311)를 획득하고 출발 위치에서 목적지 위치에 도달하기 위해 모든 가능한 경로를 결정한다. 라우팅 모듈(307)은, 출발 위치에서 목적지 위치에 도달하기 위해 결정하는 각 경로에 대한 지형도 형태의 기준선을 생성할 수 있다. 기준선은 다른 차량, 장애물, 교통 상황 등 타인의 간섭이 없는 이상적인 경로를 지칭한다. 즉, 도로에 다른 차량, 보행자 또는 장애물이 없는 경우에, ADV는 기준선을 정확히 또는 가깝게 따라야 한다. 그 다음, 지형 맵은 결정 모듈(304) 및/또는 계획 모듈(305)에 제공된다. 결정 모듈(304) 및/또는 계획 모듈(305)은, 로컬 모듈(301)로부터의 교통 상황, 인식 모듈(302)이 인식하는 주행 환경, 및 예측 모듈(303)이 예측한 교통 상황과 같이, 다른 모듈에서 제공하는 다른 데이터를 고려하여, 가장 최적의 경로 중 하나를 선택하고 수정하기 위해 가능한 모든 경로를 조사한다. ADV를 제어하기 위한 실제 경로는, 일정 시점의 특정 운전 환경에 따라 라우팅 모듈(307)이 제공하는 기준선에 가깝거나 상이할 수 있다.
따라서, 인식된 각각의 물체에 대한 결정에 기초하여, 라우팅 모듈(307)에 의해 제공되는 기준선을 기준으로 사용하여서, 결정 모듈(304) 및/또는 계획 모듈(305)은 자율주행 차량에 대한 경로뿐만 아니라 주행 파라미터(예, 거리, 속력, 및/또는 회전 각도)를 계획한다. 즉, 주어진 물체에 대해 결정 모듈(304)은 물체로 무엇을 할 것인지를 결정하는 반면에, 계획 모듈(305)은 이를 어떻게 할 것인지를 결정한다. 예를 들어, 주어진 물체에 대해, 결정 모듈(304)은 물체를 통과하도록 결정할 수 있는 반면에, 계획 모듈(305)은 물체의 좌측 또는 우측을 통과할지 여부를 결정할 수 있다. 계획 및 제어 데이터는 계획 모듈(305)에 의해 생성되며, 차량(300)이 다음 이동 사이클(예, 다음 경로 세그먼트)에서 어떻게 이동할 것인지를 설명하는 정보를 포함한다. 예를 들어, 계획 및 제어 데이터는 차량(300)이 시속 30 마일(mph)의 속도로 10 미터를 이동한 다음에 25 mph의 속도로 오른쪽 차선으로 변경하도록 지시할 수 있다.
계획 및 제어 데이터에 기초하여, 제어 모듈(306)은 계획 및 제어 데이터가 정의한 경로에 따라, 차량 제어 시스템(111)에 적절한 명령 또는 신호를 전송함으로써 자율주행 차량을 제어 및 구동한다. 계획 및 제어 데이터는, 경로를 따라 다른 시점에서 적절한 차량 설정 또는 주행 파라미터(예, 쓰로틀, 제동, 조향 명령)를 사용하여 경로의 제1 지점에서 제2 지점으로 차량을 주행시키는 충분한 정보를 포함한다.
일 구현예에서, 계획 단계는, 예를 들어 100 밀리초(ms)의 모든 시간 간격에서와 같이, 주행 사이클로도 또한 지칭되는 다수의 계획 사이클에서 수행된다. 각 계획 사이클 또는 주행 사이클에 대해, 계획 및 제어 데이터를 기반으로 하나 이상의 제어 명령이 내려진다. 즉, 매 100 ms마다 계획 모듈(305)은, 예를 들어 ADV가 목표 위치에 도달하는 데 필요한 시간 및 목표 위치를 포함하는, 다음 경로 세그먼트를 계획한다. 대안적으로, 계획 모듈(305)은 특정 속력, 방향, 및/또는 조향 각도 등을 추가로 지정할 수 있다. 일 구현예에서, 계획 모듈(305)은 5초와 같이, 다음의 소정 기간에 대한 경로 세그먼트를 계획한다. 각 계획 사이클에 대해, 계획 모듈(305)은, 이전 사이클에서 계획된 목표 위치에 기초하여 현재 사이클에 대한 목표 위치(예, 다음 5초)를 계획한다. 그 다음, 제어 모듈(306)은 현재 사이클의 계획 및 제어 데이터에 기초하여 하나 이상의 제어 명령(예, 쓰로틀, 브레이크, 조향 제어 명령)을 생성한다.
결정 모듈(304) 및 계획 모듈(305)은 통합 모듈로서 통합될 수 있음을 유의하기 바란다. 결정 모듈(304)/계획 모듈(305)은, 자율주행 차량에 대한 주행 경로를 결정하기 위해, 내비게이션 시스템 또는 내비게이션 시스템의 기능을 포함할 수 있다. 예를 들어, 내비게이션 시스템은, 일반적으로 최종 목적지로 이어지는 도로 기반 경로를 따라 자율주행 차량을 전진시키면서, 인식된 장애물을 실질적으로 피하는 경로를 따라 자율주행 차량의 움직임에 영향을 미치도록, 일련의 속력 및 방향을 결정할 수 있다. 목적지는, 사용자 인터페이스 시스템(113)을 통한 사용자 입력에 따라 설정될 수 있다. 내비게이션 시스템은 자율주행 차량이 작동하는 동안에 동적으로 주행 경로를 업데이트할 수 있다. 내비게이션 시스템은 GPS 시스템의 데이터와 하나 이상의 지도를 통합하여, 자율주행 차량의 주행 경로를 결정할 수 있다.
결정 모듈(304)/계획 모듈(305)은, 자율주행 차량의 환경에서 잠재적인 장애물을 식별, 평가 및 회피하거나 달리 협상하기 위해, 충돌 회피 시스템 또는 충돌 회피 시스템의 기능을 추가로 포함할 수 있다. 예를 들어, 충돌 회피 시스템은 회피 기동, 선회 기동, 브레이크 기동 등을 수행하기 위해 제어 시스템(111)에서 하나 이상의 서브시스템을 작동함으로써, 자율주행 차량의 내비게이션 변경에 영향을 미칠 수 있다. 충돌 회피 시스템은 주변 교통 패턴, 도로 상태 등을 기반으로 실행 가능한 장애물 회피 기동을 자동으로 결정할 수 있다. 예를 들어, 충돌 회피 시스템은, 다른 센서 시스템이 자율주행 차량이 회피할 인접 지역에서 보행자, 차량, 건설 장벽 등을 감지하는 경우에, 회피 기동이 수행되지 않도록 구성될 수 있다. 충돌 회피 시스템은, 사용 가능하고 자율주행 차량 탑승자의 안전을 최대화할 수 있는 기동을 자동으로 선택할 수 있다. 일례로, 충돌 회피 시스템은, 자율주행 차량의 객실에서 최소량의 가속을 야기할 것으로 예측되는 회피 기동을 선택할 수 있다.
일 구현예에 따라, 데이터 수집기(308)는 주행 통계 데이터를 수집하고 이를 주행 통계(313)의 일부로서 영구 저장 장치(352)에 저장하도록 구성된다. 그 다음, 주행 통계(313)는 설명되는 바와 같이, 동적 모델의 성능을 평가하기 위해 활용될 수 있다.
도 4는 일 구현예에 따른 자율 주행용 시스템 아키텍처를 나타내는 블록도이다. 시스템 아키텍처(400)는, 도 3a 및 3b에 나타낸 바와 같이 자율 주행 시스템의 시스템 아키텍처를 나타낼 수 있다. 도 4를 참조하면, 시스템 아키텍처(400)는 애플리케이션 계층(401), 계획 및 제어(PNC) 계층(402), 인식 계층(403), 드라이버 계층(404), 펌웨어 계층(405), 및 하드웨어 계층(406)을 포함하나 이에 제한되지 않는다. 애플리케이션 계층(401)은, 예를 들어 사용자 인터페이스 시스템(113)과 연관된 기능과 같은 자율 주행 차량의 사용자 또는 탑승객과 상호 작용하는 사용자 인터페이스 또는 구성 애플리케이션을 포함할 수 있다. PNC 계층(402)은 적어도 계획 모듈(305) 및 제어 모듈(306)의 기능을 포함할 수 있다. 인식 계층(403)은 적어도 인식 모듈(302)의 기능을 포함할 수 있다. 일 구현예에서, 예측 모듈(303) 및/또는 결정 모듈(304)의 기능을 포함하는 추가 계층이 있다. 대안적으로, 이러한 기능은 PNC 계층(402) 및/또는 인식 계층(403)에 포함될 수 있다. 펌웨어 계층(405)은, 필드 프로그래머블 게이트 어레이(FPGA)의 형태로 구현될 수 있는 센서 시스템(115)의 최소 기능을 나타낼 수 있다. 하드웨어 계층(406)은 제어 시스템(111)과 같은 자율 주행 차량의 하드웨어를 나타낼 수 있다. 계층(401-403)은, 장치 드라이버 계층(404)을 통해 펌웨어 계층(405) 및 하드웨어 계층(406)과 통신할 수 있다.
도 5는, 일 구현예에 따른 차량의 동적 거동을 시뮬레이션하기 위한 예시적인 동적 모델(500)을 나타낸다. 이 예시에서, 동적 모델(500)은, 차량의 센서에 의해 수집된 실제 데이터를 사용하여 훈련된, 다층 퍼셉트론(MLP) 신경망 모델일 수 있다. 동적 모델(500)은, 인간의 뇌를 모델링하도록 설계된 연결 뉴런의 집합을 포함한다. 동적 모델의 뉴런은 완전히 연결될 수 있으며 한 계층에서 각 노드는 다음 계층에서의 각 노드에 특정 가중치로 연결된다. 동적 모델을 훈련하는 동안에, 동적 모델은, 예상 결과와 비교한 출력의 오차 양에 기반해서 각 데이터가 처리된 후에 연결 가중치를 변경한다.
일 구현예에서, 동적 모델(500)은, 입력 데이터(501)를 수신하기 위한 입력 계층(505), 입력 데이터(501)에 대한 결정 또는 예측 또는 분류를 수행하는 출력 계층(509), 및 입력 계층(501)과 출력 계층(509) 사이에서 임의의 수의 은닉 계층(예, 은닉 계층(507))을 포함할 수 있다. 은닉 계층은 동적 모델(500)의 계산 엔진이다. 은닉 계층(507)의 뉴런은, 입력 데이터(501)를 변환하기 위한 활성화 함수를 포함할 수 있다. ReLU(Rectified Linear Unit)(502)는 동적 모델(500)에서 사용되는 예시적인 활성화 함수를 표시한다. 예를 들어, ReLU(502)는 음수의 입력값을 수신하면 0을 반환할 수 있고, 임의의 양수 값 반환의 경우에 해당 값을 반환할 수 있다. 동적 모델(500)이 하나의 은닉 계층(507)과 하나의 출력 계층(509)을 보여주지만, 동적 모델(500)은 다중 은닉 계층과 다중 출력 계층을 포함할 수 있다.
일 구현예에서, 신경망 모델(500)에 대한 입력 데이터(501)는, ADV의 상태(예, 속력, 가속도, 각속도) 및 제1 주행 사이클 동안에 명령 모듈(306)로부터 수신되는 제어 명령(예, 쓰로틀 명령, 브레이크 명령 및 조향 명령)을 포함한다. 입력 데이터(501)는 하나 이상의 은닉 계층에 의해 처리되고 출력 데이터(504)로 변환될 수 있으며, 이는 제2 주행 사이클에 대한 ADV의 예상 또는 시뮬레이션된 상태이다. 일 양태에서, 출력 데이터(504)는 ADV의 예상 또는 시뮬레이션된 가속도 및 각속도를 포함할 수 있다. 예상 가속도와 각속도를 기반으로, 제2 주행 사이클에 대한 ADV의 예상 속력을 계산할 수 있다. 제2 주행 사이클에 대한 출력 데이터(504)는, 동적 모델(500)로 피드백되고 다음 주행 사이클에 대한 출력을 예측하기 위해 제2 주행 사이클에 대한 제어 명령과 함께 사용될 수 있다. 일 양태에서, 많은 주행 사이클에 걸친 출력 데이터(504)는, 주행 시나리오의 궤적을 따라 ADV의 위치 또는 실측값을 생성하기 위해 사용될 수 있다. 동적 모델(500)이 MLP 신경망 모델로 나타나 있지만, 동적 모델(500)은, MLP 신경망 모델과 동일한 입력 데이터(501) 및 출력 데이터(504)를 갖는 한, 고전적인 규칙 기반 모델로 구현될 수도 있다.
도 6은 일 구현예에 따라 도 5에 나타낸 동적 모델을 훈련하기 위한 예시적인 시스템(600)을 나타낸다. 도 6에 나타낸 바와 같이, 예시적인 동적 훈련 시스템(600)은 동적 모델(601)을 훈련하기 위해 자동화된 동적 훈련 모듈(124) 및 주행 통계 모듈(313)을 포함한다. 자동화된 동적 훈련 모듈(124)은, 동적 모델 평가 모듈(605), 특징 추출 모듈(607) 및 훈련 제어기(609)를 포함한다. 주행 통계 모듈(313)은, 제어된 테스트 시나리오에 대해 이력 주행 통계(622) 및 주행 통계(603)를 포함한다.
이력 주행 통계(622)는, 다양한 도로 유형, 장애물 유형 및 도로 환경을 커버할 수 있는 다양한 시나리오에서 차량의 실시간 역학(예, 상태)을 기록하기 위해 센서(예, 센서 시스템(115)의 IMU(213) 및 GPS(212))에 의해 수집된 실제 데이터를 포함한다. 예를 들어, 실제 데이터는 BAIDUTM의 Apollo Open Data Platform에서 다운로드할 수 있다. 제어된 테스트 시나리오에 대한 주행 통계(603)는, 인간 운전자가 운전하는 차량에 의해 생성된 실제 데이터이다.
일 구현예에서, 훈련 제어기(609)는, 훈련 데이터를 추출하고, 훈련 데이터를 사용하여 동적 모델(601)을 훈련하고, 동적 모델(601)이 지정된 요구사항을 충족할 때까지 동적 모델(601)을 반복적으로 평가하는 프로세스를 자동화하는 알고리즘을 구현할 수 있다.
일 구현예에서, 훈련 제어기(609)는 다수의 특징 중 각각의 특징에 대해 소정의 등간격 값 범위를 자동으로 생성할 수 있다. 특징 및 주행 파라미터는 본 개시에서 상호교환 가능하게 사용될 수 있다. 예를 들어, 속력의 운전 파라미터에 대해, 훈련 제어기(609)는 다음 값 범위를 생성할 수 있다: 0~5 mps, 5~10 mps, 10~15 mps, 15~20 mps 및 20~25 mps. 동일한 간격의 값 범위 각각으로부터, 훈련 제어기(309)는 이력 주행 통계(622)로부터 값을 추출할 수 있다. 일 구현예에서, 이력 주행 통계(622)는 BAIDUTM의 Apollo Open Data Platform의 서브세트일 수 있고, Apollo Open Data Platform과 동기화되는 데이터 저장소에 저장될 수 있다. 따라서 각 값 범위에서 충분한 데이터 포인트가 있을 수 있다.
각각의 운전 파라미터에 대한 값 범위가 결정되면, 훈련 제어기(609)는, 이력 주행 통계(622)로부터 그 주행 파라미터에 대한 각각의 범위로부터 데이터를 추출하여 다수의 특징 시나리오를 생성할 수 있고, 이들 중 각각은, 주행 파라미터에 대한 값 또는 다중 주행 파라미터(본 개시에서 특징 또는 주행 특징이라고도 지칭됨)에 대한 값의 조합을 나타낸다.
예시로서, 훈련 제어기(609)는, 예를 들어 조향 각도, 속력 및 가속기의 3가지 주행 파라미터에 대한 특징 시나리오를 생성할 수 있다. 각각의 주행 파라미터에 대해, 훈련 제어기(609)는 동일한 간격의 범위를 다수 생성할 수 있다. 예를 들어, 시뮬레이터 제어기(609)는, 조향 각도에 대해 12개의 등간격 범위, 속력에 대해 5개의 등간격 범위, 및 가속기에 대해 7개의 등간격 범위를 생성할 수 있다. 하나의 구현에서 총 420개의 특징 시나리오(즉, 12 * 5 * 7 = 420)가 위에서 언급한 각 범위의 값을 사용하여 생성된다. 다른 구현에서는 다양한 수의 특징 시나리오를 생성할 수 있다.
일 구현예에서, 훈련 제어기(609)는, 특징 시나리오를 생성하기 위해 이력 주행 통계(622)로부터 데이터를 추출하기 위해 특징 추출 모듈(607)을 호출할 수 있다. 각각의 특징 시나리오에 대한 훈련 데이터로, 훈련 제어기(609)는, 동적 모델(601)을 훈련시키기 위해 머신 러닝 엔진(122)에 의해 제공되는 서비스, 기능, 루틴, 라이브러리, 및/또는 애플리케이션 프로그래밍 인터페이스(API)를 호출할 수 있다. 훈련 제어기(609)는, 후속적으로 주행 통계(603)로부터의 데이터를 사용하여 추론을 수행함으로써, 동적 모델(601)을 평가할 수 있다. 일 구현예에서, 훈련 제어기(609)는, 성능 메트릭에 기초하여 동적 모델(601)을 평가하기 위해, 동적 모듈 평가 모듈(605)을 호출할 수 있다.
도 6에 나타낸 바와 같이, 동적 모델(601)은, 주행 통계(603)로부터, 다수의 제어된 테스트 시나리오에서 생성된 데이터를 수신할 수 있다. 자연스럽게 작동되는 차량에서 생성되는 테스트 데이터와 달리, 제어된 테스트 시나리오에서 생성된 데이터는, 다양한 주행 시나리오 또는 주행 조건에서 차량이 생성한 데이터일 수 있고, 이는 주행 조건 또는 주행 시나리오용 테스트 데이터 생성을 위한 목적으로 특별히 생성된다.
일 구현예에서, 테스트 데이터는, 동적 모델(601) 훈련의 성능을 테스트하기 위해, 신중하게 설계된 다수의 제어 테스트 시나리오에 대한 실측값을 포함할 수 있다. 제어된 테스트 시나리오는 특징 시나리오이다. 각 특징에 대해 하나 이상의 제어된 테스트 시나리오가 설계되어 있다.
예를 들어, 제어 테스트 시나리오 중 하나는 핸들을 왼쪽으로 180도 돌리는 것이고 다른 하나의 제어 테스트 시나리오는 핸들을 오른쪽으로 180도 돌리는 것이며, 또 다른 하나의 제어 테스트 시나리오는 A 지점에서 1분 안에 B 지점으로 주행하는 것이다. 제어 테스트 시나리오 각각에 대해, 실측값이 주행 통계(603)에 기록되며, 이는 제어 테스트 시나리오 각각에 대한 동적 모델(601)의 출력과 비교할 수 있다.
일 구현예에서, 주행 통계(603)는, 차량의 캡처된 상태, 및 제어 테스트 시나리오의 다수의 주행 사이클에 대한 하나 이상의 제어 명령을 포함할 수 있다. 상기 상태의 예는, 현재 주행 사이클에 대한 ADV의 속력, 가속도 및 각속도를 포함하고, 제어 명령의 예는, 현재 주행 사이클에 대한 쓰로틀 명령, 브레이크 명령 및 조향 명령을 포함한다. 현재 주행 사이클의 각 상태는, 해당 예상 미래 상태(608), 및 다음 주행 사이클에 대한 실제 미래 상태(606)를 가질 수 있다. 해당 예상 미래 상태는 동적 모델(601)의 출력일 수 있는 반면에, 실제 미래 상태(606)는 제어 테스트 시나리오에서 생성된 실제 데이터의 실측값일 수 있다.
일 구현예에서, 동적 모델 평가 모듈(605)은, 비교 결과(611)를 생성하기 위해 손실 함수(610)를 사용하여, 각각의 실제 미래 상태(606)와 각각의 예상 미래 상태(608)를 비교할 수 있다. 일 양태에서, 비교 결과(611)는 제어 테스트 시나리오에서 차량의 실제 궤적을 예측할 때에 동적 모델(601)의 정확도를 나타내는 평가 메트릭일 수 있다. 동적 모델 평가 모듈(605)은, 비교 결과(611) 및/또는 손실 함수(610)에 기초하여 각 특징 시나리오에 대한 동적 모델(601)의 추론 성능을 등급화할 수 있다.
일 구현예에서, 각각의 특징 시나리오는, 다중 특징에 대한 값 또는 하나의 특징에 대한 값을 포함할 수 있다. 예를 들어, 특징 시나리오는 초당 5 마일의 속력; 초당 5 마일의 속력, 왼쪽으로 5도의 조향 각도; 또는 초당 5 마일의 속력, 왼쪽으로 5도의 조향 각도, 15%의 쓰로틀 속도일 수 있다. 따라서, 각 특징 시나리오는 하나 이상의 특징과 연관될 수 있다. 특정 특징과 연관된 모든 특징 시나리오에 대해, 제곱근 평균 제곱 오차 또는 기타 성능 메트릭은, 실측값과 동적 모델(601)의 예상값 사이의 비교 결과를 기반으로 계산될 수 있다. 성능 점수는, 각각의 특징에 대해 각각의 제곱근 평균 제곱 오차용 소정 알고리즘을 사용하여 계산될 수 있다.
성능 점수를 기반으로, 제어 테스트 시나리오와 연관된 특징 번호의 순위를 매길 수 있다. 훈련 제어기(609)는, 소정 임계값보다 낮은 점수를 수신하는 하나 이상의 특징을 식별하고, 동적 모델(601)을 재훈련하기 위해 하나 이상의 특징에 대한 이력 주행 데이터(622)로부터 특징 추출 모듈(607)을 사용하여 추가 데이터를 추출할 수 있다. 추가 데이터를 사용하여 재훈련한 후에, 동적 모델 평가 모듈(605)은, 하나 이상의 특징에 대한 동적 모델(601)의 성능을 평가하기 위해 다시 호출될 수 있다. 프로세스는, 동적 모델(601)이 동적 모델(601)을 훈련하는 데 사용되고 제어 테스트 시나리오가 설계된 각 특징에 대해, 소정의 요구 사항을 충족할 때까지 자동으로 반복될 수 있다. 일 구현예에서, 성능 메트릭 또는 성능 점수를 평가하기 위한 프로세스는, 동적 모델(601)이 훈련된 후에 동적 모델(601)의 정확도를 평가하기 위해 구현될 수 있다.
일 구현예에서, 소정의 임계값보다 낮은 점수를 받는 하나 이상의 특징을 식별하는 상기 프로세스는, 소정의 임계값보다 낮은 점수를 받는 하나 이상의 특징 시나리오를 식별하는 데 사용될 수 있다. 유사하게, 특징 추출 모듈(607)은, 동적 모델(601)을 재훈련시키기 위해 하나 이상의 특징 시나리오에 대한 추가 데이터를 추출할 수 있다. 추가 데이터를 사용하여 재훈련한 후에, 동적 모델 평가 모듈(605)은, 하나 이상의 특징 시나리오에 대한 동적 모델(601)의 성능을 평가하기 위해 다시 호출될 수 있다. 프로세스는, 동적 모델(601)이 이전에 생성된 각 특징 시나리오에 대해 소정의 요구 사항을 충족할 때까지 자동으로 반복될 수 있다.
도 7은 일 구현예에 따른 동적 모델을 훈련하는 예시적인 흐름도(700)를 나타낸다. 도 7에 나타낸 바와 같이, 동적 모델 훈련의 자동 루프는, 차량 데이터 생성 단계(706) 및 오프라인 데이터 및 파이프라인 및 모델 훈련 단계(710)를 포함할 수 있다. 동적 모델이 완전히 훈련되고 모든 소정의 요구 사항을 충족할 수 있으면, 동적 모델을 온라인 시뮬레이션 및 등급화 단계(720)에서 루프 제어 시뮬레이션에 넣을 수 있다.
보다 구체적으로, 차량 데이터 생성 단계(706) 동안에, 외부 파트너 또는 동적 모델 개발자(701)는 도로(705)에서 차량을 수동으로 운전하여 실제 주행 통계를 수집하고, BAIDUTM의 Apollo 오픈 데이터 플랫폼과 같은 머신 러닝 훈련 데이터 세트 저장소(707)에 주행 통계를 기록할 수 있다.
오프라인 데이터 파이프라인 및 모델 훈련 단계(710) 동안에, 소정의 특징 세트와 연관된 소정의 특징 시나리오(709)에 대한 데이터는, 단계(711)에서 다수의 동적 모델을 훈련하는 데 사용하기 위해 추출된다. 일단 동적 모델이 훈련되면, 이력 주행 통계를 사용하여 동적 모델을 오프라인으로 평가할 수 있다. 동적 모델의 출력(713)과 실측을 기반으로, 동적 모델을 등급화하고, 단계(715)에서 가장 점수가 높은 동적 모델을 선택할 수 있다. 일 양태에서, 동적 모델의 성능은, 동적 모델에 의해 생성된 궤적과 실측 사이의 유사도에 기초하여 평가될 수 있다.
일 구현예에서, 선택된 동적 모델은, 동적 모델이 더 세련될 수 있도록 단계(716)에서 기록된 데이터로부터 주행 파라미터 또는 특징을 추출함으로써, 다수의 제어 테스트 시나리오로부터의 주행 통계에 대해 다시 평가될 수 있다. 제어된 테스트 시나리오는, 동적 모델이 훈련될 수 있는 ADV의 주행 파라미터에서 값의 다양한 조합을 나타낼 수 있다.
주행 파라미터의 예는, 제동, 가속, 공회전, 후진 주행, 직진 주행, 좌회전 또는 우회전, 유턴, 차선 변경, 주차 주행을 포함할 수 있다. 각 주행 파라미터는 다중 값을 가질 수 있다. 파라미터 하나의 값 또는 다중 파라미터의 값 조합은, 제어된 테스트 시나리오를 구성할 수 있다.
제어된 테스트 시나리오의 주행 통계를 사용하여 동적 모델에서 추론을 수행할 수 있다. 동적 모델의 출력은 각각의 제어 테스트 시나리오에 대한 실측과 비교할 수 있다. 각각의 제어 테스트 시나리오에서 동적 모델의 성능은, 성능 메트릭을 사용하여 등급화가 될 수 있고, 소정의 임계값 미만의 점수를 받는 제어 테스트 시나리오가 식별될 것이다.
또한, 제어 테스트 시나리오의 성능 메트릭을 기반으로, 동적 모델을 교육하는 데 사용되는 주행 파라미터 또는 특징도 순위가 지정할 수 있으며, 동적 모델이 소정의 성능 임계값에 도달하지 못하는 하나 이상의 특징을 식별할 수 있다. 특징 순위를 매기는 제1 단계는, 특징에 대한 모든 제어 특징 시나리오를 결정하는 단계; 각각의 제어된 특징 시나리오에 대한 실측값과 제어 특징 시나리오를 입력으로 수신한 것에 대한 응답으로 동적 모델에 의해 생성된 기대값을 비교하는 단계; 제곱급 평균 제곱 오차 또는 이의 변환된 값(예, 제곱근 평균 제곱 오차 또는 기타 성능 메트릭에 기반한 성능 점수)과 같은 성능 메트릭을 계산하는 단계; 성능 메트릭 또는 이의 변환된 값을 기반으로 특징의 순위를 매기는 단계; 및 소정의 임계값보다 낮은 성능 메트릭을 각각 수신하는 하나 이상의 특징을 식별하는 단계를 포함한다.
하나 이상의 특징이 식별된 후에, 동적 모델을 재훈련하는 데 사용하기 위해, 데이터 기록(707)에 의해 기록된 것과 같은 이력 주행 통계로부터 추가 데이터를 추출함으로써(709), 동적 모델을 훈련하는 자동 루프를 계속할 수 있다. 동적 모델이 소정의 요구 사항 세트에 따라 만족스럽게 수행될 때까지, 위의 프로세스를 반복적으로 반복할 수 있다.
동적 모델은 특정 ADV 또는 특정 유형 또는 모델의 ADV를 자율적으로 주행하도록 특별히 훈련되었다. 동적 모델은, 선형 회귀, 다층 인식 또는 순환 신경망 모델로 나타낼 수 있는, 신경망 모델일 수 있다. 다양한 차량에서 수집된 주행 통계는, 다양한 시점에서 내린 다양한 제어 명령(예, 쓰로틀, 브레이크, 조향 명령) 및 차량의 응답 또는 상태(예, 속력, 가속, 감속, 방향, 각속도)를 포함할 수 있다.
도 7에 나타낸 바와 같이, 온라인 시뮬레이션 및 등급화 단계(720)에서, 훈련된 동적 모델은, 루프 제어 프로세스(719)가 있는 시뮬레이션이 구현될 수 있는 시뮬레이터에 넣을 수 있다. 동적 모델의 성능은, 다른 제어 테스트 시나리오에 대한 ADV의 거동을 예측할 때에 동적 모델의 정확성을 평가하기 위해 추가로 평가될 수 있다. 일 양태에서, 동적 모델의 성능은, 동적 모델에 의해 생성된 궤적과 제어 테스트 시나리오로부터의 실측 사이의 유사도에 기초하여 평가될 수 있다. 차량 데이터 생성 단계(706), 오프라인 모델 훈련 단계(710) 및 시뮬레이션 단계(720)는, 예를 들어 상이한 클라우드 서버와 같은 상이한 컴퓨터 노드에서 수행될 수 있음을 유의하기 바란다. 대안적으로, 이들은 클러스터의 다른 노드(예, 애플리케이션 서버 또는 웹 서버 뒤의 백엔드 서버)에서 수행될 수 있다.
도 8은 일 구현예에 따른 차량의 동적 거동을 시뮬레이션하기 위해, 자율주행 차량의 인식 및 계획 시스템 그리고 제어 모듈과 통합된 루프 제어 시뮬레이션(800)의 예시를 나타내는 블록도이다. 도 3a-3b서 논의된 바와 같이, 인식 및 계획 시스템은, 최적 경로를 계획하고 계획된 경로에 따라 차량을 지정된 목적지에 도달하도록 안내하기 위한 계획 및 제어 데이터를 생성하는, 모듈을 포함한다.
나타낸 바와 같이, 각 주행 사이클에서, 루프는 인식 모듈(302), 예측 모듈(303), 결정 모듈(304), 계획 모듈(305), 제어 모듈(306) 및 로컬 모듈(301)에 의해 형성된다. 계획 모듈(305)로부터 수신된 현재 주행 사이클의 계획 및 제어 데이터에 기초하여, 제어 모듈(306)은, 다음 주행 사이클에 대한 하나 이상의 제어 명령(예, 쓰로틀, 브레이크, 조향 제어 명령)을 생성한다. 동적 모델(601)은, 제어 명령 및 현재 차량 상태(예, 속력, 가속도, 감속도, 방향, 각속도)에 기초하여 시뮬레이션된 차량의 상태 및 자세를 업데이트한다. 동적 모델(601)로부터의 출력은, 차량의 위치를 업데이트하기 위해 로컬 모듈(301)에 의해 사용될 수 있고, 다음 주행 사이클에 대한 루프 제어 시뮬레이션(800)에 의해 활용될 수 있다.
동적 모델(601)이 정확한 경우에, 차량의 시뮬레이션된 거동은, 동일한 제어 명령이 제공될 때의 차량의 실제 거동과 동일해야 한다. 그러나 동적 모델(601)의 한계와 제어 명령이 제공될 때 차량의 액츄에이터(예, 쓰로틀, 조향 및 브레이크)의 복잡한 역학 및 물리적 제약으로 인해서. 동적 모델(601)의 시뮬레이션된 거동은 차량의 실제 거동에서 벗어난다. 성능 메트릭은, 차량의 실제 거동을 예측할 때 동적 모델(601)의 정확도를 평가하는 데 사용될 수 있다.
도 9는 일 구현예에 따른 동적 모델(601)의 성능을 평가하기 위한 예시적인 작업을 나타낸다. 동적 모델(601)은 제어 명령, 및 거동이 시뮬레이션될 차량의 상태를 수신할 수 있다.
일 양태에서, 제어 명령 및 상태 정보는, 도 6의 주행 통계(603)와 같이, 다수의 제어 테스트 시나리오로부터 기록된 주행 통계로부터 제공될 수 있다. 제어된 테스트 시나리오에서 생성된 데이터는, 다양한 주행 시나리오 또는 주행 조건에서 차량이 생성한 데이터일 수 있고, 이는 동적 모델 성는 평가용 테스트 데이터 생성을 위한 목적으로 특별히 생성된다. 주행 통계는, 차량이 수동으로 주행되거나 자율적으로 주행되었을 때, 기록된 데이터일 수 있다. 주행 시나리오는, 좌회전/우회전, 정지/비정지, 지그재그 궤적 등과 같은 일반적인 주행 기동 및 이들의 조합을 포함할 수 있다. 주행 시나리오는, 신호등에서 출발/정지, 좌회전, 우회전, 차선 변경 및 다양한 속도 변화 등이 있는 일반 도시 도로에서 비교적 긴(예, 10분) 운전 시나리오를 포함할 수도 있다.
일 양태에서, 제어 명령은 쓰로틀, 브레이크, 스티어링 명령어, 예컨대 쓰로틀 개방도, 제동력, 및 최대 가능 레벨의 백분율로서의 조향 각도를 포함할 수 있다. 일 양태에서, 차량의 상태 정보는, 차량의 속력, 가속도, 방향, 각속도 등을 포함할 수 있다. 동적 모델(601)의 성능을 평가할 때 피드백 제어 효과를 제거하기 위해, 도 8에 나타낸 루프 제어 시뮬레이션의 루프를 열어 주행 시나리오의 제어 명령을 동적 모델(601)에 주입할 수 있다.
성능 평가 모듈(901)은, 주행 시나리오의 지속 기간 동안 동적 모델(601)에 의해 생성된 시뮬레이션된 위치를, 주행 시나리오에서 동일한 제어 명령이 적용된 차량의 실제 위치(예, 실측)와 비교할 수 있다. 성능 평가 모듈(901)은, 동적 모델(601)로부터 예측된 궤적과 실측에 의해 표현되는 실제 궤적 사이의 유사성 정도를 표시하는 평가 메트릭을 생성할 수 있다.
일 양태에서, 평가 메트릭은 누적 절대 궤적 오차(c-ATE) 또는 평균 절대 궤적 오차(m-ATE)를 포함할 수 있다. c-ATE 및 m-ATE는 다음과 같이 나타낼 수 있다:
ε c-ATE = (식 1)
ε m-ATE =
여기서 는 실측 궤적의 i번째 지점이고, 는 동적 모델(601)로부터의 예측 궤적의 i번째 지점이고, N은 궤적의 지점 수이다. 를 사용하여 실측 궤적과 예측 궤적 지점 사이의 유클리드 거리를 측정한다.
일 양태에서, 평가 메트릭은, 실측 궤적과 예측 궤적의 종료 위치 사이의 거리를 측정하는, ED(종료-지점 차이)를 포함할 수 있다.
일 양태에서, 평가 메트릭은 2-시그마 결함률(ε2σ)을 포함할 수 있으며, 이는, 궤적의 총 지점 수에 대해 예측된 위치 오차의 2σ 범위를 벗어나는, 실제 위치 오차가 있는 지점 수의 비율(예, 식 1에서처럼 실측 지점과 동적 모델 예측 지점 사이의 유클리드 거리)을 나타낸다:
(식 2)
여기서 ⊂ + 2σ인 경우에 η() = 1이고, 그 밖에 η() = 0이다.
일 양태에서, 평가 메트릭은 예측 궤적과 다음과 같이 표현되는 실측 궤적 사이의 Hausdirff 거리(HAU)를 포함할 수 있다:
(식 3)
여기서, 은 동적 모델 예측기 궤적 으로부터의 궤적 지점이고, 는 실측 궤적 으로부터의 궤적 지점이다. 및 의 궤적 지점에 작용하는 최대 및 최소 함수는 궤적의 최대 및 최소 값을 계산한다. 따라서, Hausdirff 거리는, 의 최대 지점 값과 의 최소 지점 값 사이의 유클리드 거리 또는 의 최대 지점 값과 의 최소 지점 값 사이의 유클리드 거리보다 더 크게 계산한다.
일 양태에서, 평가 메트릭은 예측 궤적과 다음과 같이 표현되는 실측 궤적 사이의 최장 공통 서브-시퀀스(LCSS)를 포함할 수 있다:
ε LCSS = (식 4)
여기서, 와 사이의 거리가 x 및 y 방향에서 임계값을 초과하지 않는 경우에, L(ㆍ)은 예측 궤적과 실측 궤적의 최장 공통 거리를 제공하는 함수이다. 일 양태에서, x 및 y 방향에서 임계값은 0.1 m로 설정될 수 있고, 와 는 예측 궤적과 실측 궤적 각각의 길이이다.
일 양태에서, 평가 메트릭은 예측 궤적과 실측 궤적 사이의 유사성을 측정하기 위해 동적 시간 워핑(DTW)을 포함할 수 있다. DTW를 사용하면, 두 궤적의 길이가 서로 다른 경우에 한 궤적의 지점이 다른 궤적의 지점에 매핑될 수 있도록, 두 궤적을 시간에 따라 뒤틀거나 정렬할 수 있다. DTW는, c-ATE 및 m-ATE와 유사하게 일치하는 궤적 지점 쌍 사이의 유클리드 거리의 합으로 계산될 수 있다.
성능 평가 모듈(901)에 의해 생성된 평가 메트릭은, 차량의 실측 궤적을 예측할 때 동적 모델(601)의 예측 궤적의 정확도를 측정한 것이며, 따라서 동적 모델(601)의 성능을 평가할 수 있다. 동적 모델(601)은 예측 궤적과 실측 궤적 사이의 잔여 오차를 최소화하기 위한 알고리즘을 개발함으로써, 또는 상이한 주행 시나리오를 사용하는 재훈련을 통해서, 미세 조정될 수 있다. 일 양태에서, 평가 메트릭은, 평가되는 동적 모델의 세트로부터 가장 정확한 것을 선택하기 위해 사용될 수 있다. 그 다음, 루프 제어 시뮬레이터는, 폐쇄 루프에서 미세 조정되거나 선택된 동적 모델을 사용하여, 실제 주행 시나리오에서 차량의 거동을 보다 정확하게 예측할 수 있다. 설명된 평가 메트릭이 예측 궤적과 실측 궤적 사이의 유사성을 측정하는 반면에, 다른 평가 메트릭은 동적 모델의 다른 동적 상태와 실측값, 예컨대 진행 각도, 각속도, 속력, 가속 등 사이의 유사성을 측정할 수 있다.
도 10은 일 구현예에 따른 동적 모델의 성능을 평가하기 위한 프로세스(1000)의 예시를 나타내는 흐름도이다. 프로세스(1000)는 소프트웨어, 하드웨어, 또는 이들의 조합을 포함할 수 있는 처리 로직에 의해 수행될 수 있다. 예를 들어, 프로세스(1000)는, 도 5의 동적 모델(500), 도 6의 동적 모델(601) 또는 동적 모델 평가 모듈(605), 도 7 또는 8의 루프 제어 시뮬레이션, 또는 도 9의 성능 평가 모듈(901)또는 동적 모델(601)의 일부로서 수행될 수 있다.
단계(1001)에서, 프로세스(1000)는, 시뮬레이션될 ADV의 상태 및 복수의 시점에서 ADV에 적용될 제어 명령을 수신한다. 상태 및 제어 명령은, ADV의 거동을 시뮬레이션하기 위해, 동적 모델에 입력되는 주행 시나리오에서 기록된 주행 통계일 수 있다.
단계(1002)에서, 프로세스(1000)는, 동적 모델로부터 수신된 상태 및 제어 명령에 기초하여, 시뮬레이션 궤적의 복수의 예측 위치를 생성한다.
단계(1003)에서, 프로세스(1000)는, ADV에 적용된 동일한 제어 명령에 기초하여, 생성된 실측 궤적의 복수의 실제 위치를 수신한다.
단계(1004)에서, 프로세스(1000)는, 시뮬레이션 궤적의 예측 위치와 실측 궤적의 실제 위치 사이의 유사성을 측정하기 위해, 평가 메트릭을 생성한다.
이전의 상세한 설명의 일부는, 컴퓨터 메모리 내의 데이터 비트에 대한 연산의 알고리즘 및 기호 표현의 관점에서 제시되었다. 이들 알고리즘 설명 및 표현은, 데이터 처리 기술 분야의 기술자가 자신의 작업 내용을 해당 기술 분야의 다른 사람에게 가장 효과적으로 전달하기 위해 사용하는 방법이다. 알고리즘은 여기에서 일반적으로 원하는 결과로 이어지는 자체 일관된 연산 시퀀스로 간주된다. 연산은 물리량의 물리적 조작이 필요한 것이다.
그러나, 이들 모든 용어 및 유사한 용어는 적절한 물리량과 연관되어야 하며 이들 양에 적용되는 편리한 레이블일 뿐이라는 점을 염두에 두어야 한다. 위의 논의에서 명백하게 달리 구체적으로 언급되지 않는 한, 설명 전반에 걸쳐, 아래 청구범위에 설명된 것과 같은 용어를 사용하는 논의는, 컴퓨터 시스템 또는 유사한 전자 컴퓨터 장치의 동작 및 프로세스를 지칭하고, 이는, 컴퓨터 시스템의 레지스터 및 메모리 내에서 물리적(전자적) 양으로 표시된 데이터를, 컴퓨터 시스템 메모리 또는 레지스터 또는 다른 그러한 정보 저장, 전송 또는 표시 장치 내에서 물리적 량으로서 유사하게 표시되는 다른 데이터로 조작하고 변환한다.
하나의 실시예에서, 비일시적 컴퓨터 판독 가능 매체에 저장되어 있는 컴퓨터 프로그램을 더 제공하고, 상기 컴퓨터 프로그램이 실행되어 전술한 자율 주행 차량(ADV)의 거동을 시뮬레이션하는 데 사용되는 동적 시뮬레이터의 성능을 평가하기 위한 컴퓨터 구현 방법을 수행한다.
본 개시의 구현예는 또한 본원의 작업을 수행하기 위한 장치에 관한 것이다. 이러한 컴퓨터 프로그램은 비일시적 컴퓨터 판독 가능 매체에 저장된다. 기계 판독 가능 매체는, 기계(예, 컴퓨터)에 의해 판독 가능한 형태로 정보를 저장하기 위한 임의의 메커니즘을 포함한다. 예를 들어, 기계 판독 가능(예, 컴퓨터 판독 가능) 매체는, 기계(예, 컴퓨터) 판독 가능 저장 매체(예, 판독 전용 메모리("ROM"), 랜덤 액세스 메모리("RAM"), 자기 디스크 저장 매체, 광 저장 매체, 플래시 메모리 장치)를 포함한다.
이전 도면에 도시된 프로세스 또는 방법은, 하드웨어(예, 회로, 전용 논리 등), 소프트웨어(예, 비일시적 컴퓨터 판독 가능 매체에 구현됨), 또는 이 둘의 조합을 포함하는 처리 논리에 의해 수행될 수 있다. 프로세스 또는 방법이 일부 시퀀스 작업의 관점에서 위에서 설명되었지만, 설명된 작업 중 일부는 다른 순서로 수행될 수 있음을 이해해야 한다. 또한, 일부 작업은 순차적이라기보다는 병렬로 수행될 수 있다.
본 개시의 구현예는 임의의 특정 프로그래밍 언어를 참조하여 설명되지 않는다. 다양한 프로그래밍 언어가 본원에 설명된 바와 같이 본 개시의 구현예의 교시를 구현하기 위해 사용될 수 있음을 이해할 것이다.
전술한 명세서에서, 본 개시의 구현예는 그의 특정 예시적인 구현예를 참조하여 설명되었다. 하기 청구범위에 설명된 바와 같이, 본 개시의 보다 넓은 사상 및 범주를 벗어나지 않는다면, 다양한 수정이 이루어질 수 있음이 명백할 것이다. 따라서, 본 명세서 및 도면은 제한적인 의미가 아니라 예시적인 의미로 간주되어야 한다.
Claims (21)
- 자율 주행 차량(ADV)의 거동을 시뮬레이션하는 데 사용되는 동적 시뮬레이터의 성능을 평가하기 위한 컴퓨터 구현 방법으로서, 상기 방법은,
상기 동적 시뮬레이터에 의해, 복수의 시점에 대해 상기 ADV의 복수의 상태, 및 상기 복수의 시점에서 상기 ADV에 적용될 복수의 제어 명령을 수신하는 단계;
상기 동적 시뮬레이터에 의해, 상기 복수의 상태 및 상기 복수의 제어 명령에 기반하여, 상기 ADV에 대해 시뮬레이션 궤적의 복수의 예측 위치를 생성하는 단계;
상기 ADV에 대한 실측 궤적의 복수의 실제 위치를 수신하되, 상기 실제 위치는 상기 복수의 시점에서 상기 ADV에 상기 제어 명령을 적용함으로써 생성되는 단계; 및
상기 시뮬레이션 궤적의 복수의 예측 위치와 상기 복수의 시점에서 상기 실측 궤적의 복수의 실제 위치 사이의 유사성 정도를 측정하기 위해 평가 메트릭을 생성하는 단계를 포함하고,
상기 평가 메트릭을 생성하는 단계는,
상기 시뮬레이션 궤적과 상기 실측 궤적에서 상기 복수의 시점에 걸쳐 예측 위치 오차의 2-시그마 범위를 벗어나는 상기 예측 위치와 해당 실제 위치 사이의 위치 오차를 갖는 시점의 수의 비율을 나타내는 2-시그마 결함률을 생성하는 단계를 포함하는 방법. - 제1항에 있어서, 상기 ADV의 각 상태는 상기 복수의 시점 중 해당 시점에서 상기 ADV의 속력, 가속 및 각속도를 포함하는, 방법.
- 제1항에 있어서, 상기 제어 명령 각각은 상기 복수의 시점 중 해당 시점에서 쓰로틀 명령, 브레이크 명령, 및 조향 명령을 포함하는, 방법.
- 제1항에 있어서, 상기 동적 시뮬레이터에 의해, 상기 시뮬레이션 궤적의 복수의 시뮬레이션 위치를 생성하는 단계는,
현재 시점에 대한 상기 제어 명령을 현재 시점의 상기 ADV 상태에 적용하여 상기 시뮬레이션 궤적의 다음 시점의 상기 예측 위치를 연속적으로 생성하는 단계를 포함하는 방법. - 제1항에 있어서, 상기 평가 메트릭을 생성하는 단계는,
상기 시뮬레이션 궤적과 상기 실측 궤적에서 상기 복수의 시점에 걸쳐 상기 예측 위치와 해당 실제 위치 사이의 유클리드 거리를 누적하는 단계를 포함하는 방법. - 제1항에 있어서, 상기 평가 메트릭을 생성하는 단계는,
상기 시뮬레이션 궤적의 종료 시점에서의 예측 위치와, 상기 실측 궤적의 종료 시점에서의 실제 위치 사이의 유클리드 거리를 측정하는 단계; 또는
상기 시뮬레이션 궤적의 복수의 예측 위치와, 상기 실측 궤적의 복수의 실제 위치 사이의 Hausdirff 거리를 측정하는 단계 중 적어도 하나를 포함하는, 방법. - 제6항에 있어서, 상기 평가 메트릭을 생성하는 단계는,
상기 시뮬레이션 궤적과 상기 실측 궤적에서 상기 복수의 시점에 걸쳐 상기 예측 위치와 상기 해당 실제 위치 사이의 최장 공통 서브-시퀀스 오차를 측정하는 단계; 또는
상기 시뮬레이션 궤적의 복수의 시점과 상기 실측 궤적의 복수의 시점을 정렬하기 위해 동적 시간 워핑을 수행한 이후에, 상기 시뮬레이션 궤적 및 상기 실측 궤적에서, 상기 예측 위치와 상기 해당 실제 위치 사이의 유클리드 거리를 누적하는 단계 중 적어도 하나를 추가로 포함하는, 방법. - 프로세서에 의해 실행되는 경우에 프로세서로 하여금 다음 작업을 수행시키는 명령어를 안에 저장하는 비일시적 기계 판독 가능 매체로서, 상기 작업은,
복수의 시점에 대해 자율 주행 차량(ADV)의 복수의 상태, 및 상기 복수의 시점에서 상기 ADV에 적용될 복수의 제어 명령을 수신하는 단계;
상기 복수의 상태 세트 및 상기 복수의 제어 명령 세트에 기반하여, 상기 ADV에 대해 시뮬레이션 궤적의 복수의 예측 위치를 생성하는 단계;
상기 ADV에 대한 실측 궤적의 복수의 실제 위치를 수신하되, 상기 실제 위치는 상기 복수의 시점에서 상기 ADV에 상기 제어 명령을 적용함으로써 생성되는 단계; 및
상기 시뮬레이션 궤적의 복수의 예측 위치와, 상기 복수의 시점에서 상기 실측 궤적의 복수의 실제 위치 사이의 유사성 정도를 측정하기 위해 평가 메트릭을 생성하는 단계를 포함하고,
상기 평가 메트릭을 생성하는 단계는,
상기 시뮬레이션 궤적과 상기 실측 궤적에서 상기 복수의 시점에 걸쳐 예측 위치 오차의 2-시그마 범위를 벗어나는 상기 예측 위치와 해당 실제 위치 사이의 위치 오차를 갖는 시점의 수의 비율을 나타내는 2-시그마 결함률을 생성하는 단계를 포함하는 비일시적 기계 판독 가능 매체. - 제8항에 있어서, 상기 ADV의 각 상태는 상기 복수의 시점 중 해당 시점에서 상기 ADV의 속력, 가속 및 각속도를 포함하는, 비일시적 기계 판독 가능 매체.
- 제8항에 있어서, 상기 제어 명령 각각은 상기 복수의 시점 중 해당 시점에서 쓰로틀 명령, 브레이크 명령, 및 조향 명령을 포함하는, 비일시적 기계 판독 가능 매체.
- 제8항에 있어서, 상기 시뮬레이션 궤적의 복수의 시뮬레이션 위치를 생성하는 단계는,
현재 시점에 대한 제어 명령을 현재 시점의 상기 ADV 상태에 적용하여 상기 시뮬레이션 궤적의 다음 시점의 상기 예측 위치를 연속적으로 생성하는 단계를 포함하는 비일시적 기계 판독 가능 매체. - 제8항에 있어서, 상기 평가 메트릭을 생성하는 단계는,
상기 시뮬레이션 궤적과 상기 실측 궤적에서 상기 복수의 시점에 걸쳐 상기 예측 위치와 해당 실제 위치 사이의 유클리드 거리를 누적하는 단계를 포함하는 비일시적 기계 판독 가능 매체. - 제8항에 있어서, 상기 평가 메트릭을 생성하는 단계는,
상기 시뮬레이션 궤적의 종료 시점에서의 예측 위치와 상기 실측 궤적의 종료 시점에서의 실제 위치 사이의 유클리드 거리를 측정하는 단계; 또는
상기 시뮬레이션 궤적의 복수의 예측 위치와, 상기 실측 궤적의 복수의 실제 위치 사이의 Hausdirff 거리를 측정하는 단계 중 적어도 하나를 포함하는, 비일시적 기계 판독 가능 매체. - 제13항에 있어서, 상기 평가 메트릭을 생성하는 단계는,
상기 시뮬레이션 궤적과 상기 실측 궤적에서 상기 복수의 시점에 걸쳐 상기 예측 위치와 상기 해당 실제 위치 사이의 최장 공통 서브-시퀀스 오차를 측정하는 단계; 또는
상기 시뮬레이션 궤적의 복수의 시점과 상기 실측 궤적의 복수의 시점을 정렬하기 위해 동적 시간 워핑을 수행한 이후에, 상기 시뮬레이션 궤적 및 상기 실측 궤적에서, 상기 예측 위치와 상기 해당 실제 위치 사이의 유클리드 거리를 누적하는 단계 중 적어도 하나를 추가로 포함하는, 비일시적 기계 판독 가능 매체. - 데이터 처리 시스템으로서,
프로세서; 및
상기 프로세서에 의해 실행되는 경우에 상기 프로세서로 하여금 다음 작업을 수행시키는 명령어를 저장하기 위해 상기 프로세서에 결합되는 메모리를 포함하고, 상기 작업은,
복수의 시점에 대해 적어도 센서에 의해 감지된 자율 주행 차량(ADV)의 복수의 상태, 및 상기 복수의 시점에서 상기 ADV에 적용될 복수의 제어 명령을 수신하는 단계;
상기 복수의 상태 및 상기 복수의 제어 명령에 기반하여, 상기 ADV에 대해 시뮬레이션 궤적의 복수의 예측 위치를 생성하는 단계;
상기 ADV에 대한 실측 궤적의 복수의 실제 위치를 수신하되, 상기 실제 위치는 상기 복수의 시점에서 상기 ADV에 상기 제어 명령을 적용함으로써 생성되는 단계; 및
상기 시뮬레이션 궤적의 복수의 예측 위치와 상기 복수의 시점에서 상기 실측 궤적의 복수의 실제 위치 사이의 유사성 정도를 측정하기 위해 평가 메트릭을 생성하는 단계를 포함하고,
상기 평가 메트릭을 생성하는 단계는,
상기 시뮬레이션 궤적과 상기 실측 궤적에서 상기 복수의 시점에 걸쳐 예측 위치 오차의 2-시그마 범위를 벗어나는 상기 예측 위치와 해당 실제 위치 사이의 위치 오차를 갖는 시점의 수의 비율을 나타내는 2-시그마 결함률을 생성하는 단계를 포함하는 데이터 처리 시스템. - 제15항에 있어서, 상기 ADV의 각 상태는 상기 복수의 시점 중 해당 시점에서 상기 ADV의 속력, 가속 및 각속도를 포함하는, 데이터 처리 시스템.
- 제15항에 있어서, 상기 제어 명령 각각은 상기 복수의 시점 중 해당 시점에서 쓰로틀 명령, 브레이크 명령, 및 조향 명령을 포함하는, 데이터 처리 시스템.
- 비일시적 컴퓨터 판독 가능 매체에 저장되어 있는 컴퓨터 프로그램에 있어서, 상기 컴퓨터 프로그램이 실행되어 제1항 내지 제7항 중 어느 한 항에 따른 컴퓨터 구현 방법을 수행하는, 컴퓨터 프로그램.
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/152,601 | 2021-01-19 | ||
US17/152,601 US20220227397A1 (en) | 2021-01-19 | 2021-01-19 | Dynamic model evaluation package for autonomous driving vehicles |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210133904A KR20210133904A (ko) | 2021-11-08 |
KR102589587B1 true KR102589587B1 (ko) | 2023-10-16 |
Family
ID=78485866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210139501A KR102589587B1 (ko) | 2021-01-19 | 2021-10-19 | 자율 주행 차량용 동적 모델 평가 패키지 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220227397A1 (ko) |
EP (1) | EP4020113A1 (ko) |
JP (1) | JP7345577B2 (ko) |
KR (1) | KR102589587B1 (ko) |
CN (1) | CN114415672A (ko) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112965466B (zh) * | 2021-02-18 | 2022-08-30 | 北京百度网讯科技有限公司 | 自动驾驶系统的还原测试方法、装置、设备及程序产品 |
KR102625974B1 (ko) * | 2021-11-29 | 2024-01-18 | 주식회사 오비고 | 자율주행차량의 운행 검증에 필요한 검증 시나리오를 편집하는 방법 및 이를 이용한 서버 |
KR102575325B1 (ko) | 2021-12-17 | 2023-09-06 | 주식회사 와이즈오토모티브 | 차량의 장애물 인식 속도 평가 시스템 |
KR102567152B1 (ko) | 2021-12-17 | 2023-08-16 | 주식회사 와이즈오토모티브 | 차량의 장애물 인식 속도 평가 시스템 및 장애물 출현 장치 |
US20240246537A1 (en) * | 2023-01-23 | 2024-07-25 | Gm Cruise Holdings Llc | Autonomous vehicle prediction layer training |
CN118396391B (zh) * | 2024-06-26 | 2024-09-10 | 深圳碳中和生物燃气股份有限公司 | 生物炭基肥的施用风险评估方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012006485A (ja) | 2010-06-24 | 2012-01-12 | Toyota Motor Corp | 運転評価装置 |
JP2017087816A (ja) * | 2015-11-04 | 2017-05-25 | トヨタ自動車株式会社 | 自動運転システム |
WO2019228626A1 (en) * | 2018-05-30 | 2019-12-05 | Siemens Industry Software Nv | Method and system for controlling an autonomous vehicle device to repeatedly follow a same predetermined trajectory |
JP2020175893A (ja) | 2015-11-04 | 2020-10-29 | トヨタ自動車株式会社 | 自動運転システム、自動運転装置、自動運転方法 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101952688A (zh) | 2008-02-04 | 2011-01-19 | 电子地图北美公司 | 用于与传感器检测到的对象进行地图匹配的方法 |
CN106226800A (zh) * | 2016-08-29 | 2016-12-14 | 天津航天中为数据系统科技有限公司 | 一种无人机航迹精度检测装置及检测方法 |
US10481044B2 (en) * | 2017-05-18 | 2019-11-19 | TuSimple | Perception simulation for improved autonomous vehicle control |
JP6924629B2 (ja) | 2017-06-30 | 2021-08-25 | 株式会社 日立産業制御ソリューションズ | 自動制御装置およびその制御方法 |
DE102017009435B4 (de) * | 2017-10-10 | 2023-05-11 | Volkswagen Ag | Evaluation von Komponenten automatischer Fahrfunktionen und Fahrbahnerkennung auf unterschiedlichen Verarbeitungsstufen |
US11328219B2 (en) * | 2018-04-12 | 2022-05-10 | Baidu Usa Llc | System and method for training a machine learning model deployed on a simulation platform |
US10884422B2 (en) * | 2018-04-16 | 2021-01-05 | Baidu Usa Llc | Method for generating trajectories for autonomous driving vehicles (ADVS) |
US10275667B1 (en) * | 2018-09-05 | 2019-04-30 | StradVision, Inc. | Learning method, learning device for detecting lane through lane model and testing method, testing device using the same |
US11199847B2 (en) * | 2018-09-26 | 2021-12-14 | Baidu Usa Llc | Curvature corrected path sampling system for autonomous driving vehicles |
CN109739245A (zh) * | 2019-02-19 | 2019-05-10 | 东软睿驰汽车技术(沈阳)有限公司 | 一种基于无人驾驶的端到端模型评估方法及装置 |
CN109712421B (zh) * | 2019-02-22 | 2021-06-04 | 百度在线网络技术(北京)有限公司 | 自动驾驶车辆的速度规划方法、装置和存储介质 |
US11106212B2 (en) * | 2019-03-26 | 2021-08-31 | Baidu Usa Llc | Path planning for complex scenes with self-adjusting path length for autonomous driving vehicles |
US20200324795A1 (en) * | 2019-04-12 | 2020-10-15 | Nvidia Corporation | Neural network training using ground truth data augmented with map information for autonomous machine applications |
US11704554B2 (en) | 2019-05-06 | 2023-07-18 | Baidu Usa Llc | Automated training data extraction method for dynamic models for autonomous driving vehicles |
US11898850B2 (en) * | 2019-05-08 | 2024-02-13 | Hitachi Astemo, Ltd. | Vehicle position detection device and parameter set creation device for vehicle position detection |
CN110160804B (zh) * | 2019-05-31 | 2020-07-31 | 中国科学院深圳先进技术研究院 | 一种自动驾驶车辆的测试方法、装置及系统 |
CN110542436B (zh) * | 2019-09-11 | 2021-10-15 | 百度在线网络技术(北京)有限公司 | 车辆定位系统的评测方法、装置、设备及存储介质 |
CN110987463B (zh) * | 2019-11-08 | 2020-12-01 | 东南大学 | 面向多场景的智能驾驶自主车道变换性能测试方法 |
EP3861439A4 (en) * | 2019-12-20 | 2021-12-15 | Baidu.com Times Technology (Beijing) Co., Ltd. | DYNAMIC MODEL WITH ACTUATION LATENCY |
US11900224B2 (en) * | 2019-12-26 | 2024-02-13 | Waymo Llc | Generating trajectory labels from short-term intention and long-term result |
-
2021
- 2021-01-19 US US17/152,601 patent/US20220227397A1/en active Pending
- 2021-10-19 KR KR1020210139501A patent/KR102589587B1/ko active IP Right Grant
- 2021-12-29 CN CN202111639796.1A patent/CN114415672A/zh active Pending
-
2022
- 2022-01-12 JP JP2022002719A patent/JP7345577B2/ja active Active
- 2022-01-18 EP EP22152088.5A patent/EP4020113A1/en not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012006485A (ja) | 2010-06-24 | 2012-01-12 | Toyota Motor Corp | 運転評価装置 |
JP2017087816A (ja) * | 2015-11-04 | 2017-05-25 | トヨタ自動車株式会社 | 自動運転システム |
JP2020175893A (ja) | 2015-11-04 | 2020-10-29 | トヨタ自動車株式会社 | 自動運転システム、自動運転装置、自動運転方法 |
WO2019228626A1 (en) * | 2018-05-30 | 2019-12-05 | Siemens Industry Software Nv | Method and system for controlling an autonomous vehicle device to repeatedly follow a same predetermined trajectory |
Also Published As
Publication number | Publication date |
---|---|
JP7345577B2 (ja) | 2023-09-15 |
US20220227397A1 (en) | 2022-07-21 |
CN114415672A (zh) | 2022-04-29 |
KR20210133904A (ko) | 2021-11-08 |
EP4020113A1 (en) | 2022-06-29 |
JP2022058566A (ja) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11269329B2 (en) | Dynamic model with learning based localization correction system | |
CN112034834B (zh) | 使用强化学习来加速自动驾驶车辆的轨迹规划的离线代理 | |
CN112034833B (zh) | 规划用于自动驾驶车辆的开放空间轨迹的在线代理 | |
KR102589587B1 (ko) | 자율 주행 차량용 동적 모델 평가 패키지 | |
CN111240312B (zh) | 用于自动驾驶车辆的基于学习的动态建模方法 | |
CN111948938B (zh) | 规划用于自动驾驶车辆的开放空间轨迹的松弛优化模型 | |
CN112977473B (zh) | 用于预测移动障碍物驶出十字路口的方法及系统 | |
US11860634B2 (en) | Lane-attention: predicting vehicles' moving trajectories by learning their attention over lanes | |
CN112829769B (zh) | 自动驾驶车辆的混合规划系统 | |
US20230159047A1 (en) | Learning-based critic for tuning a motion planner of autonomous driving vehicle | |
CN113525406A (zh) | 用于车辆运动控制器的基于贝叶斯全局优化的参数调谐 | |
EP4198804A1 (en) | Simulation obstacle vehicles with driving styles | |
EP4082856A2 (en) | E2e learning-based evaluator for an autonomous driving vehicle | |
CN112241166A (zh) | 利用车道汇总的用于自动驾驶期间的移动对象的车道选择预测的神经网络 | |
US20230391356A1 (en) | Dynamic scenario parameters for an autonomous driving vehicle | |
CN112441016B (zh) | 基于齿轮的车辆载荷推断系统 | |
CN117312841A (zh) | 自动驾驶车辆训练数据的制定方法、电子设备和介质 | |
CN117473693A (zh) | 自动生成用于调整自主车辆的角部场景数据 | |
US20240208533A1 (en) | Multi-level optimization framework for behavior prediction in autonomous driving | |
US20240157944A1 (en) | Reinforcement learning for autonomous lane change | |
US20230406362A1 (en) | Planning-impacted prediction evaluation | |
US20240025442A1 (en) | Trajectory planning in autonomous driving vehicles for unforeseen scenarios |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |