CN115551758A - 非结构化车辆路径规划器 - Google Patents
非结构化车辆路径规划器 Download PDFInfo
- Publication number
- CN115551758A CN115551758A CN202180034069.4A CN202180034069A CN115551758A CN 115551758 A CN115551758 A CN 115551758A CN 202180034069 A CN202180034069 A CN 202180034069A CN 115551758 A CN115551758 A CN 115551758A
- Authority
- CN
- China
- Prior art keywords
- determining
- nodes
- node
- cost
- vehicle
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 103
- 230000003068 static effect Effects 0.000 claims abstract description 45
- 238000013138 pruning Methods 0.000 claims abstract description 29
- 230000007613 environmental effect Effects 0.000 claims description 35
- 230000015654 memory Effects 0.000 claims description 28
- 238000012545 processing Methods 0.000 claims description 17
- 238000007670 refining Methods 0.000 claims 2
- 230000008447 perception Effects 0.000 description 51
- 238000013439 planning Methods 0.000 description 37
- 238000010801 machine learning Methods 0.000 description 31
- 230000008569 process Effects 0.000 description 28
- 238000004422 calculation algorithm Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 18
- 238000013528 artificial neural network Methods 0.000 description 14
- 230000001276 controlling effect Effects 0.000 description 14
- 238000010845 search algorithm Methods 0.000 description 13
- 238000006073 displacement reaction Methods 0.000 description 12
- 230000001133 acceleration Effects 0.000 description 11
- 238000011217 control strategy Methods 0.000 description 10
- 230000006399 behavior Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 4
- 230000000712 assembly Effects 0.000 description 4
- 238000000429 assembly Methods 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000010238 partial least squares regression Methods 0.000 description 2
- 238000000513 principal component analysis Methods 0.000 description 2
- 238000012628 principal component regression Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 241000237519 Bivalvia Species 0.000 description 1
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 1
- 238000007476 Maximum Likelihood Methods 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 235000020639 clam Nutrition 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000013488 ordinary least square regression Methods 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004576 sand Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- 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
- B60W60/0015—Planning or execution of driving tasks specially adapted for safety
-
- 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
- B60W60/0015—Planning or execution of driving tasks specially adapted for safety
- B60W60/0016—Planning or execution of driving tasks specially adapted for safety of the vehicle or its occupants
-
- 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
- B60W60/0015—Planning or execution of driving tasks specially adapted for safety
- B60W60/0017—Planning or execution of driving tasks specially adapted for safety of other traffic participants
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3453—Special cost functions, i.e. other than distance or default speed limit of road segments
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/36—Input/output arrangements for on-board computers
- G01C21/3691—Retrieval, searching and output of information related to real-time traffic, weather, or environmental conditions
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/38—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
- G01S19/39—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/393—Trajectory determination or predictive tracking, e.g. Kalman filtering
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/38—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
- G01S19/39—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/42—Determining position
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/38—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
- G01S19/39—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/52—Determining velocity
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- 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
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- 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/0217—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with energy consumption, time reduction or distance reduction criteria
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- 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
-
- 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
- B60W2554/00—Input parameters relating to objects
- B60W2554/20—Static objects
-
- 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
- B60W2554/00—Input parameters relating to objects
- B60W2554/40—Dynamic objects, e.g. animals, windblown objects
-
- 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
- B60W2556/00—Input parameters relating to data
- B60W2556/20—Data confidence level
-
- 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
- B60W2556/00—Input parameters relating to data
- B60W2556/40—High definition maps
Abstract
本文所讨论的技术可以包括自主车辆制导系统,其至少部分地基于静态对象地图和/或一个或多个动态对象地图生成用于控制自主车辆的路径。制导系统可至少部分地基于以下各项来识别路径:确定节点的集合和与静态和/或动态对象相关联的成本地图以及其他成本,修剪该节点的集合,并从剩余节点创建其他节点,直到达到计算或其他限制。由该技术输出的路径可以与生成的节点的集合中最便宜的节点相关联。
Description
相关申请
本申请要求于2020年5月11日提交的序列号为16/872,284的美国专利申请的优先权,出于所有的意图和目的,其全部内容通过引用并入本文。
背景技术
自主车辆(autonomous vehicle)可以依靠各种路径指示器,例如跑道灯、车道标记等来导航。然而,当这些指示器被遮蔽(例如,被雪、垃圾、沙子)、被降级(例如,灯被烧坏、车道标记被磨损)和/或失效(例如,障碍物部分阻塞车道、交通标志和/或交通锥指示与原始车道标记冲突的替代车道)时,自主车辆可能无法准确和/或高效地导航。
附图说明
参考附图描述详细描述。在附图中,附图标记的最左边的数字表示附图标记首次出现的附图。不同附图中的相同附图标记表示相似或相同的项目。
图1示出了自主车辆和示例场景,其中车道参考(无论是先前映射的还是检测到的)对于确定用于控制车辆运动的指令可能不可靠。
图2示出了包括用于非结构化路径规划的制导系统的示例性自主车辆架构的框图。
图3A描绘了与自主车辆的第一操作模式相关联的预测动态对象在第一时间和第n时间的运动的第一示例动态数据。
图3B描绘了与自主车辆的第二操作模式相关联的预测动态对象在第一时间和第n时间的运动的第二示例动态数据。
图4A-4C示出了用于至少部分地基于环境数据生成用于控制自主车辆的路径的示例过程的图示流程图,环境数据可以从传感器数据生成,并且可以包括指示静态对象的占用地图和/或动态对象预测位置和/或速度概率图。
图5A-5D描绘了根据本文所讨论技术的连续节点生成和修剪操作的结果的自上而下的图示。
图6A-6F描绘了根据本文所讨论的技术生成的环境和连续节点的集合的自上而下的表示。
具体实施方式
本文所讨论的技术可以包括自主车辆制导系统,其至少部分地基于静态对象地图(例如,指示由静态对象占用的空间和/或环境中的“自由空间”的地图)和/或一个或多个动态对象地图(例如,指示环境中的位置将被移动对象或可能在未来时间移动的静止对象占用的可能性的地图)来生成用于控制自主车辆的路径。包括本文所讨论的制导系统的自主车辆由此能够准确且高效地导航,以避免静态对象或动态对象(移动或潜在移动的)二者,即使当环境是“非结构化”的(即,环境不包含路径指示器或路径指示器被退化、模糊和/或过时),例如诸如不包括路标、道路、人行道的开阔场地环境之类的环境,和/或其他类似结构,其可用于识别用于操作自主车辆的边界,和/或在道路的一条车道没有足够宽的开放空间供车辆操作的情况中。
配备有本文所讨论的制导系统的自主车辆可以检测到用于生成车辆路径的指示器是不可用的(或者在给定所确定或接收到的指示(例如由存储在自主车辆可访问的存储器中的地图识别的车道参考)的情况下确定车辆无法继续行驶),并至少部分地基于检测到指示器不可用来确定用于控制自主车辆的路径。附加地或替代地,本文所讨论的制导系统可以连续地生成不(至少主要地)基于指示器的视情况而定的路径,基本同时主格制导系统(nominative guidance system)(被训练为使用结构和/或指示器生成路径)生成至少部分地基于指示器的路径。在一些示例中,如果由主格制导系统生成的路径将导致冲突或由于其他原因而不可行(例如,该路径将导致自主车辆停止和/或向远程操作系统发送消息),则如果视情况而定的路径没有冲突,则自主车辆可以使用视情况而定的路径。
如本文所用,路线可以至少包括环境内关联的开始位置和结束位置。在一些示例中,开始位置可以标识自主车辆的当前姿态(例如,位置和/或航向)和/或结束位置可以标识自主车辆的目标姿态。路线可以附加地或替代地标识开始位置和结束位置之间的一个或多个曲线和/或与开始位置和/或结束位置相关联的车辆姿态。例如,开始位置可以标识道路的第一车道内的位置,而结束位置可以标识第二车道两个城市街区内的位置、右转和远离开始位置的附加城市街区。换言之,该路线可能是自主车辆的高级任务。如本文所用,曲线可以包括直线。
本文所讨论的技术可以包括接收路线,例如通过接收结束位置(例如,其可以由规划组件、远程操作员和/或乘客指定),确定自主车辆的当前位置(例如至少部分地基于从自主车辆的一个或多个传感器接收的传感器数据,传感器例如全球定位传感器(GPS)、激光雷达、雷达、相机等,例如可以在本文描述的定位系统中使用的),并至少部分地基于自主车辆所存储的地图来确定开始(当前)位置和与结束定位相关联的结束位置之间的路线。该技术可以包括至少部分地基于地图和/或车辆对车道、可行驶表面和/或其他指示器的存在的确定,确定与路线的至少一部分相关联的曲线。例如,自主车辆可以基于道路的形状和/或开始位置和结束位置之间的自由空间来确定曲线。
自主车辆可以根据本文讨论的技术生成路径以到达路线所指定的结束位置。在一些示例中,本文讨论的开始位置和结束位置可以与路线的一部分相关联。在路线可以指定自主车辆要行驶的道路和/或类似物的情况下,路径可以指定自主车辆将如何在中间距离(例如,10米、20米、50米、100米)上到达结束位置(例如,哪个车道、车道内的哪个位置、哪个航向)。自主车辆可以附加地或替代地至少部分地基于路径生成用于控制自主车辆的轨迹。自主车辆可以使用该轨迹来至少部分地基于后退水平技术(receding horizontechnique)和由该路径指定的位置和/或姿态,在比该路径更短的时间段/距离(例如,5毫秒、10毫秒、0.5秒)内控制自主车辆的运动。在这样的示例中,轨迹可以包括例如与一个或多个航路点相关联的航路点和/或期望速度、加速度、朝向、转向角等中的任何一个或多个。
在一些示例中,该技术可以包括从自主车辆的传感器接收传感器数据,并且至少部分地基于传感器数据生成静态对象地图和/或动态对象地图。静态对象地图是包括环境地图的占用地图,该环境地图指示环境的各个部分被对象占用和/或作为自主车辆可在其中操作的自由空间的部分被占用的可能性,其在以下文献中被更详细地讨论,例如标题为“Creating Clean Maps including Semantic Information”的美国专利申请15/900,318;标题为“Radar Spatial Estimation”的美国专利申请16/147,177;标题为“Predicting anOccupancy Associated with Occluded Region”的美国专利申请16/399,743;标题为“Occlusion Aware Planning”的美国专利申请16/011,436;以及标题为“DataSegmentation Using Masks”的美国专利申请15/963,833,其全部通过引用并入本文。在一些情况下,地图可以附加地或替代地包括与占用地图中的位置相关联的概率(例如,指示环境中的对应位置被对象占用或未被对象占用的概率)。
动态对象地图可以包括指示环境的各个部分可能被移动对象占用的可能性的环境地图。例如,动态对象地图的一部分可以指示动态对象将在未来时间占用环境的相应部分的可能性。动态对象的当前位置可以在静态对象地图中或者在与当前时间相关联的动态对象地图的第一帧中被指示。在一些示例中,动态对象地图可以包括两个或更多个帧,每个帧与不同的时间(例如,当前时间和/或一个或多个未来时间)相关联。在一些示例中,静态和/或动态对象地图可以附加地或替代地包括对象的速度和/或航向的指示,例如可以通过对象跟踪、直接速度测量(例如,雷达)等来提供。至少部分地基于传感器数据生成动态对象地图在以下文献中被更详细地讨论,例如标题为“Probabilistic Heat Maps forBehavior Prediction”的美国专利15/807,521;标题为“Trajectory Prediction on Top-Down Scenes and Associated Model”的美国专利16/420,050;标题为“ProbabilisticRisk Assessment for Trajectory Evaluation”的美国专利16/206,877;标题为“Prediction on Top-Down Scenes Based on Action Date”的美国专利16/504,147以及标题为“Predicting an Occupancy Associated with Occluded Region”的美国专利16/399,743,其全部通过引用并入本文。静态对象地图和动态对象地图在本文中可以统称为环境数据。
这些技术可以附加地或替代地包括至少部分地基于环境数据来确定成本地图,并确定与下一时间步长相关联的节点的集合。在一些情况下,成本地图可以包括多变量空间或与多变量空间相关联。例如,成本地图和/或多变量空间中的位置可以与环境中的位置、车辆的航向、车辆的速度和/或轨迹的曲率相关联。确定与下一时间步长相关联的节点可以包括确定多变量空间中的位置,该位置可以标识环境中的位置、车辆的航向、车辆的速度和/或轨迹的曲率,其在从当前时间到下一时间步长(例如,从当前时间起500毫秒、100毫秒、1秒等)的时间间隔内可从车辆的当前位置到达。确定成本地图包括确定与多变量空间中的位置相关联的成本,该成本至少部分地基于由静态对象地图指示的占用、由动态对象地图的一个或多个帧指示的预测占用、该位置与静态对象地图和/或动态对象地图中的指示的接近度,基于车辆的当前位置和轨迹或前一节点的位置和/或轨迹与到达多变量空间的一部分所需轨迹的差异的访问成本等。在一些示例中,可以预先计算成本地图的至少一部分。
本文讨论的技术可以包括确定从车辆在多变量空间中的当前位置辐射到高达第n个时间步长的连续波/节点的集合,其中n是正整数。例如,如果时间步长为100毫秒,并且n为20,则该技术可以包括确定从车辆位置辐射出来的20个节点的集合,其中第20个节点集合与作为未来两秒的时间相关联。在一些示例中,节点的集合可以与时间步长相关联,例如第0个100毫秒间隔,并且所生成的节点可以至少部分地基于为探索选择的一个或多个节点。例如,对于节点的第一集合,所选节点可以是车辆的当前位置、航向、速度和/或轨迹,并且可以基于此生成节点的第一集合。然而,可以至少部分地基于从第一集合中选择的一个或多个节点来生成节点的第二集合以供进一步探索,例如,确定节点的第二集合的至少一部分可以至少部分地基于从第一集合中选择的节点,即,与所选节点相关联的位置、航向、速度和/或轨迹。在一些示例中,在新的集合中生成的节点可以基于从任何先前生成的节点的集合中选择的节点(例如,来自紧接的前一个集合的节点,来自根据前两代或更多代集合生成的节点)。例如,选择可以至少部分地基于与一个或多个节点相关联的成本,例如通过根据与节点相关联的成本选择p个最低成本节点(例如,其可以至少部分地基于成本地图、相似性成本来确定),其中p是正整数。
该技术可以包括确定与集合和节点中的每个节点相关联的散列,并修剪具有与另一节点的散列匹配的散列的任何节点。例如,如果两个节点具有匹配的散列,则沿着路线具有较高成本和/或较短距离的节点可以作为修剪的一部分被丢弃。该技术可以附加地或替代地包括确定修剪后剩余的节点中的p个数量的最低成本节点。确定下一节点集合可以至少部分地基于从修剪的集合选择的p个节点。
在一些示例中,可以在运行时之前预先计算多变量空间中位置的散列,从而可以至少部分地基于来自散列表的查找来确定节点的散列。在一些示例中,可以与多变量空间的一部分相关联地确定散列,该多变量空间具有与节点之间的最小间距(分辨率)相关联的尺寸。例如,散列表可以与具有立方厘米和度方位的尺寸的部分相关联(在包括车辆的潜在位置和朝向的多变量空间中)。增加分辨率的大小可能会增加发生的散列冲突(匹配)的数量,从而高效地增加在修剪阶段被丢弃的节点的数量,并增加修剪后剩余节点的多样性。降低分辨率可能具有相反的效果。
这些技术可以包括确定节点的集合,直到确定了时间限制、计算限制和/或节点的第n集合(即,达到节点集合上限)。当生成节点集合和/或一旦达到时间、计算或节点限制,制导系统可以确定通过节点的集合的一个或多个连续路径。在一些示例中,制导系统可以通过这些节点集合来追踪一个或多个潜在路径(在它们被生成时),并回溯最低成本路径(即,从最后一层节点中潜在路径末端处的节点到第一层节点中的起点和/或车辆的当前位置处),以确保其无冲突。无论如何,制导系统可以确定通过节点集合的与最低成本相关联的和/或沿着路线取得最大进展的连续路径。
例如,制导系统可以针对从路线的至少一部分的开始位置到结束位置进行搜索。进行搜索可以包括确定从开始位置到结束位置的不同节点集合的节点之间连续的连接集合。在一些示例中,搜索可以配置有规则集合,该规则集合可以包括一个或多个规则,例如,指定在其内确定路径的边界(例如,可以至少部分地基于传感器数据和/或地图来确定边界)、节点连接规则(例如,节点可以只有一个父节点)等。在一些示例中,搜索可以包括确定节点集合中的节点之间的有向图。有向图可以包括第一节点和第二节点之间的连接(例如,边缘)和/或与该连接相关联的权重(例如,成本)。
在各种示例中,可以至少部分地基于确定区域中所有节点之间的所有连接并搜索其间提供总最小成本的连接集合来确定路径,该总最小成本可以包括与在该路径上确定的每个运动基元(primitive)相关联的成本。在至少一些示例中,这种连接可以仅限于节点之间可行的那些连接。在附加和/或替代示例中,可以至少部分地基于通知搜索方向而不枚举所有可能的连接来保留计算资源。此外,应当理解,这种连接不必限于连续层中的节点。作为非限制性示例,这样的路径搜索可以包括搜索第一层以及在第二层、第三层、第四层等中的任何一个或多个之间的节点。然而,至少在一些示例中,可以基于父节点生成节点,而不管生成了节点的层。
在一些示例中,在对路径进行完全搜索之前,该技术可以包括确定由制导系统确定的先前路径和/或先前连接是否可行(例如,满足当前约束,例如速度、最大转向角和/或边界;是无冲突的;成本小于成本阈值)。
确定连续路径或成本地图的至少一部分可以包括确定与多变量空间中的位置相关联的冲突的可能性。例如,确定冲突可能性可以包括将自主车辆表示为两个直径等于自主车辆宽度的圆,其中第一圆可以以自主车辆的前轴为中心,并且第二圆可以以自主车辆的后轴为中心,以及确定表示与最近的静态对象和/或预测为在未来时间被动态对象占用的环境的一部分之间的距离。在一些示例中,由占用地图指示的自主车辆和/或占用空间的表示可以被放大以应对(account for)误差(例如,在占用被指示为占用的圆的直径和/或区域可以被放大自主车辆宽度的一半)。
在一些示例中,由制导系统确定的路径可以是粗略路径。例如,粗略路径可以识别车辆以1秒或500毫秒间隔跟踪的位置、航向、速度和/或接近曲率,但是车辆的组件可能需要更精细的时间间隔(例如,10毫秒、100毫秒)或能够在其上控制。换言之,粗略路径可能不够平滑,车辆无法在没有显著错误的情况下进行跟踪。在一些示例中,第一类型的处理器(例如,图形处理单元(GPU))可以确定成本地图、生成节点、修剪节点和/或确定路径,并且第二类型的处理器可以对由GPU生成的路径进行平滑处理和/或至少部分地基于平滑路径确定用于控制车辆的轨迹。
本文讨论的制导系统可以至少部分地基于本文讨论的成本来将路径识别为可行的和/或确定与该路径相关联的置信度分数。制导系统可以输出路径和/或置信度分数,自主车辆可以使用该路径和/或置信度分数来控制自主车辆的运动,例如,通过至少部分地基于路径生成轨迹。在一些示例中,制导系统可以输出主路径和/或视情况而定的路径。例如,制导系统可以至少部分地基于生成候选路径的集合来确定视情况而定的路径,至少部分地基于阈值距离来确定该集合包括两组候选路径(例如,这两组可以是两个不同的同伦组(homotopic group)),并从第一组中选择主路径和从第二组中选择视情况而定的路径。在一些示例中,可以至少部分地基于确定主路径与第一总成本相关联来选择主路径作为主路径,该第一总成本小于与视情况而定的路径相关联的第二总成本。主路径可以与第一总成本相关联,和/或视情况而定的路径可以与第二总成本相关联,该第二总成本小于成本阈值和/或可以是与其相关联的各个组的最小成本。
本文所讨论的技术可以通过提高车辆预测车辆周围中对象的运动和/或行为的能力以及为车辆规划无冲突且经济的路径来提高车辆的安全性。该技术还可以使车辆能够在道路和/或车道标记不存在或已被取消的情况下操作。
示例场景
图1示出了包括车辆102的示例场景100。在某些情况下,车辆102可以是被配置为根据美国国家公路交通安全管理局发布的5级分类操作的自主车辆,该分类描述了能够在整个行程中执行所有安全关键功能的车辆,驾驶员(或乘客)不期望在任何时候都控制车辆。然而,在其他示例中,车辆102可以是具有任何其他级别或分类的完全或部分自主的车辆。预期本文所讨论的技术可应用于附加于机器人控制的其他控制,例如用于自主车辆。例如,本文所讨论的技术可以应用于采矿、制造、增强现实等。此外,即使车辆102被描绘为陆地车辆,车辆102也可以是航天器、船只和/或类似物。在一些示例中,车辆102可以在模拟中表示为模拟车辆。为了简单起见,本文的讨论不区分模拟车辆和真实世界车辆。因此,对“车辆”的引用可能会引用模拟和/或真实车辆。
根据本文讨论的技术,车辆102可以从车辆102的传感器104接收传感器数据。例如,传感器104可以包括位置传感器(例如,全球定位系统(GPS)传感器)、惯性传感器(例如,加速度计传感器、陀螺仪传感器等)、磁场传感器(例如,指南针)、位置/速度/加速度传感器(例如,速度计、驱动系统传感器)、深度位置传感器(例如,激光雷达传感器、雷达传感器、声纳传感器、飞行时间(ToF)相机、深度相机、超声波和/或声纳传感器,和/或其他深度感测传感器)、图像传感器(例如,相机)、音频传感器(例如,麦克风)和/或环境传感器(例如,气压计、湿度计等)。
传感器104可以生成传感器数据,该数据可以由与车辆102相关联的计算装置106接收。然而,在其他示例中,传感器104和/或计算装置106中的一些或全部可以与车辆102分离和/或远离车辆102设置,并且数据捕获、处理、命令和/或控制可以通过一个或多个远程计算装置经由有线和/或无线网络向/从车辆102传送。
计算装置106可以包括存储感知组件110、规划组件112、感知组件114和/或控制器116的存储器108。在一些示例中,规划组件112可以包括制导系统114。感知组件110、规划组件112、制导系统114和/或控制器116可以包括一个或多个机器学习(ML)模型和/或其他计算机可执行指令。通常,感知组件110可以确定车辆102周围的环境中是什么,并且规划组件112可以根据从感知组件110接收的信息确定如何操作车辆102。例如,规划组件112可以至少部分地基于感知数据和/或其他信息来确定轨迹118,例如,一个或多个地图、定位信息(例如,相对于感知组件110检测到的地图和/或特征,车辆102在环境中的位置)和/或由制导系统114生成的路径。
轨迹118可以包括指令,用于使自主车辆102的控制器116致动车辆102的驱动组件以实现转向角和/或转向率,这可以导致车辆位置、车辆速度和/或车辆加速度,其跟踪由制导系统生成的路径。例如,轨迹118可以包括目标航向、目标转向角、目标转向率、目标位置、目标速度和/或目标加速度,以使控制器作为路径的一部分进行跟踪。例如,由制导系统114根据本文所讨论的技术生成的粗略路径可以以500毫秒的时间间隔指示车辆位置、航向、速度和/或进入/退出曲率,并且由制导系统114输出的平滑路径可以包括以10毫秒或100毫秒的间隔的这些点,其可以对应于与轨迹118相关联的时间间隔。在一些示例中,控制器可以包括用于致动足以跟踪轨迹118的车辆102的驱动组件的软件和/或硬件。例如,控制器116可以包括一个或多个比例积分微分(PID)控制器。
在示例场景100中,自主车辆102已经接收和/或确定了路线120,路线120定义了开始位置122、结束位置124以及在开始位置122和结束位置124之间的曲线(注意,曲线包括直线和/或一个或多个曲线)。例如,规划组件112可以至少部分地基于传感器数据和作为任务的一部分接收的结束位置(例如,来自乘客、来自指挥中心)来确定路线120。如本文所用,对“位置”的引用可以包括位置和/或姿态二者(例如,车辆的位置和/或者朝向/航向)。在一些示例中,路线可以不包括结束位置124,并且可以附加地或替代地包括目标位置,例如目标车道、目标相对位置(例如,距道路边缘10英尺)、目标对象(例如,跟随车辆、跟随乘客、朝着呼叫车辆的个人移动)等。
当车辆操作以到达结束位置124时,自主车辆102可能会遇到类似于示例场景100的场景,其中依赖于车道参考(例如,至少部分地基于地图确定的和/或定位自主车辆100的)来生成路径的规划器可能无法准确和/或高效地生成路径。例如,各种对象(例如阻塞车辆126、工具箱128和掉落的交通锥130)累积地阻塞所描绘的道路的所有三条车道,这可能导致另一个规划器停止车辆和/或调用远程操作,因为没有一条车道有足够的空间容纳自主车辆。
然而,本文所讨论的制导系统114可以至少部分地基于根据由传感器104捕获的传感器数据生成的环境数据134来生成路径132。例如,感知组件112可以生成环境数据134的全部或部分,其可以包括静态数据和/或动态数据。例如,静态数据可以指示对象存在于环境中某个位置的可能性,而动态数据可以指示一个对象占用或将占用环境中某一位置的可能性。在一些情况下,动态数据可以包括以高达预测范围(即,针对其预测动态数据的最大时间/距离)的间隔与不同时间步长相关联的多个帧。
这里讨论的技术可以附加地或替代地包括至少部分地基于车辆的操作模式来确定动态数据。例如,动态数据可以包括与第一车辆模式和第一时间相关联的第一预测,以及与第二车辆模式和第一时间相关联的第二预测。车辆模式可以包括任务级模式,例如乘客接送、乘客运送、乘客下车等;路径或轨迹级模式,例如保持轨迹、减速停车、过渡车道、执行右转等;和/或信号模式,例如激活扬声器、激活转向灯、闪烁亮度等。自主车辆的行为和信号可影响自主车辆102附近的其他实体做出的决定和行为,并由此影响其他对象的预测运动。
在一些示例中,感知组件110可以从传感器104接收传感器数据,并确定与车辆102附近的对象相关的数据,例如静态和/或动态数据。包括静态和/或动态数据的环境数据134的所描绘的示例是这种数据的自上而下表示,但是设想了静态和/或动态数据的任何表示,例如热图、与检测到的对象相关联的对象分类、实例分割、语义分割、二维和/或三维边界框、跟踪等。感知组件110可以附加地或替代地确定指定车辆目的地的路线数据、识别道路特性的全局地图数据(例如,在用于定位自主车辆的不同传感器模式中可检测的特征)、识别在车辆附近检测到的特性的局部地图数据(例如,建筑物、树木、围栏、消防栓、停车标志和各种传感器模式中可检测到的任何其他特征的位置和/或尺寸)、跟踪数据(例如环境表示、对象检测和/或本文讨论的跟踪)等。
在一些示例中,感知组件110可以包括硬件和/或软件的管线,其可以包括一个或多个GPU、ML模型、卡尔曼滤波器等。在一些示例中,感知组件110可以尽可能多地监测自主车辆周围的环境,这可能受到传感器能力、对象和/或环境遮挡(例如,建筑物、海拔变化、其他对象前方的对象)和/或诸如雾、雪等环境影响的限制。例如,传感器数据可以包括雷达数据,感知组件110可以接收雷达数据作为输入。感知组件110可以被配置为检测尽可能多的对象和关于环境的信息,以避免未能应对规划组件112在确定轨迹118时应当考虑的事件或对象行为。
可以是环境数据134的一部分并且由感知组件110确定的对象分类可以区分不同的对象类型,例如,乘客车辆、行人、骑自行车的人、送货卡车、半卡车、交通标志等。跟踪可以包括历史、当前和/或预测的对象位置、速度、加速度和/或航向。感知组件110产生的数据可以统称为感知数据。一旦/当感知组件110生成感知数据时,感知组件110可以将感知数据提供给规划组件112和/或制导系统114。在一些示例中,感知数据可以包括传感器专用管线(例如,视觉、激光雷达、雷达)和/或混合传感器管线(例如视觉-激光雷达、雷达-激光雷达)的输出。
规划组件112可以使用从感知组件110接收的感知数据和/或从制导系统114接收的路径,以确定一个或多个轨迹来控制车辆102的运动以穿越路径或路线,和/或以其他方式控制车辆102的操作,尽管任何这样的操作可以在各种其他组件中执行(例如,定位可以由定位组件执行,其可以至少部分地基于感知数据)。例如,规划组件112可以确定车辆102从第一位置到第二位置的路线;根据从制导系统接收的粗略轨迹确定平滑轨迹;基本上同时并且至少部分地基于路径和感知数据和/或模拟感知数据(其可以进一步包括关于此类数据中检测到的对象的预测),生成用于根据后退水平技术控制车辆102的运动(例如,1微秒、半秒)的多个潜在轨迹,以控制车辆穿越路线(例如,为了避开任何检测到的对象);以及选择潜在轨迹之一作为车辆102的轨迹118,该轨迹118可用于生成驱动控制信号,该驱动控制信号可被传输到控制器116以用于致动车辆102的驱动组件。图1描绘了这样的轨迹118的示例,其被表示为指示航向、速度和/或加速度的箭头,尽管轨迹本身可以包括用于控制器的指令,控制器又可以致动车辆102的驱动系统。
在一些示例中,制导系统114可以是规划组件112的标称制导系统的辅助制导系统。规划组件112可以从标称制导系统接收轨迹或路径,并且可以接收如本文所讨论的由制导系统114的生成的路径。规划组件114可以将从制导系统114接收的路径视为视情况而定的路径,例如,规划组件112可以依赖规划组件112的标称制导系统的输出,除非或直到标称制导系统的输出将导致车辆102停止或调用远程操作或未能输出可行的、无冲突的和/或经济的路径或轨迹。在这种情况下,规划组件112可以切换到使用由制导系统114输出的路径。在附加的或替代的示例中,规划组件114可以使用制导系统114所输出的路径来至少部分地基于传感器数据和/或感知数据等在特定区域(例如,在没有车道参考的区域)中始终生成轨迹。
制导系统114可以包括一个或多个GPU,或者可以与一个或多个GPU通信耦合(例如,经由发布-订阅消息传递系统,经由数据总线),并且本文所讨论的技术可以并行化并传播到GPU的线程,尽管预期本文所讨论的技术可以包括串行的至少部分。
示例系统
图2示出了实现本文所讨论的技术的示例系统200的框图。在一些情况下,示例系统200可以包括车辆202,其可以代表图1中的车辆102。在一些情况下,车辆202可以是自主车辆,其被配置为根据由美国国家公路交通安全管理局发布的5级分类进行操作,所述5级分类描述了一种能够在整个行程中执行所有安全关键功能的车辆,而驾驶员(或乘员)不被期望在任何时候控制车辆。然而,在其他示例中,车辆202可以是具有任何其他级别或分类的完全或部分自主车辆。此外,在一些情况下,本文描述的技术也可以可由非自主车辆使用。
车辆202可以包括车辆计算装置204、传感器206、发射器208、网络接口210和/或驱动组件212。车辆计算装置204可以表示计算装置106,并且传感器206可以表示传感器104。系统200可以附加地或替代地包括计算装置214。
在一些情况下,传感器206可以表示传感器104,并且可以包括激光雷达传感器、雷达传感器、超声换能器、声纳传感器、位置传感器(例如,全球定位系统(GPS)、指南针等)、惯性传感器(例如,惯性测量单元(IMU)、加速度计、磁力计、陀螺仪等)、图像传感器(例如,红绿蓝(RGB)、红外(IR)、强度、深度、飞行时间相机等)、麦克风、车轮编码器、环境传感器(例如,温度计、湿度计、光传感器、压力传感器等)等。传感器206可以包括这些或其他类型传感器中的每一个的多个实例。例如,雷达传感器可以包括位于车辆202的拐角、前部、后部、侧面和/或顶部处的各个雷达传感器。作为另一个示例,相机可以包括设置在车辆202的外部和/或内部周围的不同位置处的多个相机。传感器206可以向车辆计算装置204和/或计算装置214提供输入。
如上所述,车辆202还可以包括用于发射光和/或声音的发射器208。该示例中的发射器208可以包括与车辆202的乘客通信的内部音频和视觉发射器。作为示例而非限制,内部发射器可以包括扬声器、灯、标志、显示屏、触摸屏、触觉发射器(例如,振动和/或力反馈)、机械致动器(例如,安全带张紧器、座椅定位器、头枕定位器等)等。该示例中的发射器208还可以包括外部发射器。作为示例而非限制,该示例中的外部发射器包括用于示意行驶方向的灯或车辆动作的其他指示器(例如,指示灯、标志、灯阵列等)以及一个或多个音频发射器(例如,扬声器、扬声器阵列、喇叭等)以与行人或其他附近车辆进行听觉通信,其中的一个或多个包括声束转向技术。
车辆202还可以包括网络接口210,其使车辆202与一个或多个其他本地或远程计算装置之间能够通信。例如,网络接口210可以促进与车辆202和/或驱动组件212上的其他本地计算装置的通信。此外,网络接口210可以附加地或替代地允许车辆与其他附近的计算装置(例如,其他附近的车辆、交通信号灯等)进行通信。网络接口210可以附加地或替代地使车辆202能够与计算装置214通信。在一些示例中,计算装置214可以包括分布式计算系统(例如,云计算架构)的一个或多个节点。
网络接口210可以包括用于将车辆计算装置204连接到另一个计算装置或网络(例如,网络216)的物理和/或逻辑接口。例如,网络接口210可以实现基于Wi-Fi的通信,例如经由通过IEEE300.11标准定义的频率、短距离无线频率(例如,)、蜂窝通信(例如,2G、3G、4G、4G LTE、5G等)或使相应的计算装置能够与其他计算装置接合的任何合适的有线或无线通信协议。在一些情况下,车辆计算装置204和/或传感器206可以经由网络216以特定频率、在预定时间段过去之后、接近实时地等发送传感器数据到计算装置214。
在一些情况下,车辆202可以包括一个或多个驱动组件212。在一些情况下,车辆202可以具有单个驱动组件212。在一些情况下,驱动组件212可以包括一个或多个传感器以检测驱动组件212的状况和/或车辆202的环境。作为示例而非限制,驱动组件212的传感器可以包括:一个或多个车轮编码器(例如,旋转编码器),以感测驱动组件的轮的旋转;惯性传感器(例如,惯性测量单元、加速度计、陀螺仪、磁力计等),以测量驱动组件的朝向和加速度;相机或其他图像传感器;超声波传感器,以声学检测驱动组件的环境中的对象;激光雷达传感器;雷达传感器等。一些传感器(例如,车轮编码器)对于驱动组件212可能是唯一的。在某些情况下,驱动组件212上的传感器可以重叠或补充车辆202的对应系统(例如,传感器206)。
驱动组件212可以包括许多车辆系统,包括高压电池、用于驱动车辆的电动机、用于将来自电池的直流电转换成交流电以供其他车辆系统使用的逆变器、包括转向马达和转向齿条(其可能是电动的)的转向系统、包括液压或电动致动器的制动系统、包括液压和/或气动组件的悬挂系统、用于分配制动力以减轻牵引力损失并保持控制的稳定性控制系统、HVAC系统、照明(例如,用于照亮车辆外部环境的头灯/尾灯之类的照明)和一个或多个其他系统(例如,冷却系统、安全系统、车载充电系统、其他电气组件,例如DC/DC转换器、高压接头、高压电缆、充电系统、充电端口等)。另外,驱动组件212可以包括驱动组件控制器,其可以接收和预处理来自传感器的数据并控制各种车辆系统的操作。在一些情况下,驱动组件控制器可以包括一个或多个处理器以及与一个或多个处理器通信耦合的存储器。存储器可以存储一个或多个组件以执行驱动组件212的各种功能。此外,驱动组件212还可以包括一个或多个通信连接,其使得相应驱动组件能够与一个或多个其他本地或远程计算装置通信。
车辆计算装置204可以包括处理器218以及与一个或多个处理器218通信耦合的存储器220。存储器220可以表示存储器108。计算装置214还可以包括处理器222和/或存储器224。处理器218和/或222可以是能够执行指令以处理数据和执行如本文所述的操作的任何合适的处理器。作为示例而非限制,处理器218和/或222可以包括一个或多个中央处理单元(CPU)、图形处理单元(GPU)、集成电路(例如,专用集成电路(ASIC))、门阵列(例如,现场可编程门阵列(FPGA))和/或处理电子数据以将该电子数据转换为可以存储在寄存器和/或存储器中的其他电子数据的任何其他装置或装置的一部分。
存储器220和/或224可以是非暂时性计算机可读介质的示例。存储器220和/或224可以存储操作系统和一个或多个软件应用、指令、程序和/或数据以实现本文描述的方法和归属于各种系统的功能。在各种实施方式中,存储器可以使用任何合适的存储器技术来实施,例如静态随机存取存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/闪存型存储器或能够存储信息的任何其他类型的存储器。这里描述的架构、系统和各个元件可以包括许多其他逻辑的、编程的和物理的组件,其中在附图中示出的那些仅仅是与这里的讨论相关的示例。
在一些情况下,存储器220和/或存储器224可以存储定位组件226、感知组件228、规划组件230、制导系统232(其零个或更多个部分可以是硬件,例如GPU、CPU和/或其他处理单元)、地图234和/或系统控制器236。感知组件228可以表示感知组件110,规划组件230可以表示规划组件112,制导系统232可以表示制导系统114,并且系统控制器236可以表示控制器116。
在至少一个示例中,定位组件226可以包括硬件和/或软件以从传感器206接收数据以确定车辆202的位置、速度和/或朝向(例如,x位置、y位置、z位置、滚动、俯仰或偏航中的一个或多个)。例如,定位组件226可以包括和/或请求/接收环境的地图234,并且可以在地图234内连续地确定自主车辆的位置、速度和/或朝向。在一些情况下,定位组件226可以利用SLAM(同时定位和映射)、CLAMS(同时校准、定位和映射)、相对SLAM、束调整、非线性最小二乘优化等来接收图像数据、激光雷达数据、雷达数据、IMU数据、GPS数据、车轮编码器数据等,以准确地确定自主车辆的位置、姿态和/或速度。在一些情况下,定位组件226可以向车辆202的各个组件提供数据以确定自主车辆的初始位置,以用于生成轨迹和/或用于生成地图数据,如本文所讨论的。在一些示例中,定位组件226可以向感知组件228提供车辆202相对于环境和/或与其相关联的传感器数据的位置和/或朝向。
在一些情况下,感知组件228可以包括以硬件和/或软件实现的主感知系统和/或预测系统。感知组件228可以检测车辆202周围环境中的对象(例如,识别对象存在)、对对象进行分类(例如,确定与检测到的对象相关联的对象类型)、对传感器数据和/或环境的其他表示进行分割(例如,将传感器数据和/或环境表示的一部分识别为与检测到的对象和/或对象类型相关联)、确定与对象相关联的特性(例如,识别与对象相关联的当前、预测和/或先前的位置、航向、速度和/或加速度的跟踪)等。由感知组件228确定的数据被称为感知数据。
规划组件230可以从定位组件226接收车辆202的位置和/或朝向,和/或从感知组件228接收感知数据,并且可以至少部分地基于该数据中的任何数据来确定用于控制车辆202的操作的指令。在一些示例中,确定该指令可以包括至少部分地基于与关联于该指令的系统相关联的格式来确定指令(例如,用于控制自主车辆的运动的第一指令的格式可以被设置为系统控制器236和/或驱动组件212可以解析/促使以被执行的消息和/或信号(例如,模拟、数字、气动、运动学的)的第一格式,用于发射器208的第二指令的格式可以根据与之相关联的第二格式进行设置)。
制导系统232可以在车辆202和/或计算装置214上操作。在一些示例中,制导系统232可以在管线中的规划组件230的上游(向其提供输入)和感知组件228的至少一些组件的下游(从其接收输入)。制导系统232可以被配置为将制导系统232的全部、部分或没有任何输出传递给规划组件230。在一些示例中,制导系统232可以是感知组件228的一部分。制导系统230可以被配置为生成粗略路径,如本文所讨论的,规划组件230可以使用该粗略路径来生成平滑路径和跟踪平滑路径的轨迹,或者在附加或替代示例中,制导系统232可以确定粗糙路径和平滑路径二者,或者可以直接计算平滑路径。
存储器220和/或224可以附加地或替代地存储映射系统(例如,至少部分地基于传感器数据生成地图)、规划系统、搭乘管理系统等。尽管定位组件226、感知组件228、规划组件230、制导系统232、地图234和/或系统控制器236被示为存储在存储器220中,这些组件中的任何一个可以包括处理器可执行指令、机器学习模型(例如,神经网络)和/或硬件,并且这些组件中任何一个的全部或部分可以存储在存储器224上或者被配置作为计算装置214的一部分。
如本文所述,定位组件226、感知组件228、规划组件230、制导系统232和/或系统200的其他组件可以包括一个或多个ML模型。例如,定位组件226、感知组件228、规划组件230和/或制导系统232可以各自包括不同的ML模型管线。在一些示例中,ML模型可以包括神经网络。示例性神经网络是一种受生物学启发的算法,其将输入数据传递通过一系列连接层以产生输出。神经网络中的每一层也可以包括另一个神经网络,或者可以包括任意数量的层(无论是否是卷积层)。如在本公开的上下文中可以理解的,神经网络可以利用机器学习,机器学习可以指代此类算法的宽泛类,其中基于学习的参数来生成输出。
尽管在神经网络的上下文中进行了讨论,但可以使用与本公开一致的任何类型的机器学习。例如,机器学习算法可以包括但不限于:回归算法(例如,普通最小二乘回归(OLSR)、线性回归、逻辑回归、逐步回归、多元自适应回归样条(MARS)、局部估计散点图平滑(LOESS))、基于实例的算法(例如,岭回归、最小绝对收缩和选择算子(LASSO)、弹性网络、最小角度回归(LARS))、决策树算法(例如,分类和回归树(CART)、迭代二分法3(ID3)、卡方自动交互检测(CHAID)、决策树桩、条件决策树)、贝叶斯算法(例如,朴素贝叶斯、高斯朴素贝叶斯、多项朴素贝叶斯、平均单依赖估计器(AODE)、贝叶斯信念网络(BNN)、贝叶斯网络)、聚类算法(例如,k均值、k中值、期望最大化(EM)、层次聚类)、关联规则学习算法(例如,感知机(perceptron)、反向传播、跳场网络、径向基函数网络(RBFN))、深度学习算法(例如,深度玻尔兹曼机(DBM)、深度信念网络(DBN)、卷积神经网络(CNN)、堆叠自动编码器)、降维算法(例如,主成分分析(PCA)、主成分回归(PCR)、偏最小二乘回归(PLSR)、Sammon映射、多维缩放(MDS)、投影追踪、线性判别分析(LDA)、混合判别分析(MDA)、二次判别分析(QDA)、灵活判别分析(FDA))、集成算法(例如,提升、自举聚合(Bagging)、AdaBoost、堆叠泛化(混合)、梯度提升机(GBM)、梯度提升回归树(GBRT)、随机森林)、SVM(支持向量机)、监督学习、无监督学习、半监督学习等。架构的其他示例包括神经网络,例如ResNet-50、ResNet-101、VGG、DenseNet、PointNet等。在一些示例中,本文讨论的ML模型可以包括点柱(PointPillars)、第二(SECOND)自顶向下的特征层(例如,参见美国专利申请15/963833,其全部并入本文)和/或体素网(VoxelNet)。架构延时优化可以包括MobilenetV2、Shufflenet、Channelnet、Peleenet等。在一些示例中,ML模型可以包括诸如Pixor之类的残差块。
在一些示例中,ML模型可以包括神经网络,例如卷积神经网络(CNN)。如本文所述,示例性神经网络是一种受生物学启发的算法,其将输入数据传递通过一系列连接层以产生输出。神经网络中的每一层也可以包括另一个神经网络,或者可以包括任意数量的层(无论是否是卷积层)。如在本公开的上下文中可以理解的,神经网络可以利用机器学习,机器学习可以指代此类算法的宽泛类,其中基于学习的参数来生成输出。尽管在神经网络的背景下进行了讨论,但任何类型的机器学习都可以与本公开一致地使用。在一些示例中,本文讨论的制导系统232和/或ML模型可以包括存储在计算装置204的存储器中和/或可由其访问的处理器可执行指令、硬件和/或其某种组合(例如,现场可编程门阵列(LPGA)、专用集成电路(ASIC))。
存储器220可以附加地或替代地存储一个或多个系统控制器236,其可以被配置为控制车辆202的转向、推进、制动、安全、发射器、通信和其他系统。这些系统控制器236可以与驱动组件212和/或车辆202的其他组件的相应系统通信和/或控制所述相应系统。例如,规划组件230可以至少部分地基于由感知组件228和/或制导系统232生成的感知数据来生成指令,并且可以验证由制导系统232生成的感知数据和/或路径,和/或向系统控制器236发送指令。系统控制器236可以至少部分地基于从规划组件230接收的指令来控制车辆202的操作。
应当注意,虽然图2被示为分布式系统,但在替代示例中,车辆202的组件可以与计算装置214相关联,和/或计算装置214的组件可以与车辆202相关联。即,车辆202可以执行与计算装置214相关联的一个或多个功能,反之亦然。
示例动态数据
图3A和3B描绘了动态数据300和动态数据302的示例,其可以至少部分地基于与车辆周围环境中的对象相关联的传感器数据由感知组件确定。感知组件可以包括一个或多个ML模型,其接收传感器数据并预测对象的运动。例如,一个或多个ML模型可以输出一系列帧,其中每个帧与不同的未来时间相关联。帧的离散部分(例如,像素、区域)可以指示对象将在与帧相关联的时间占用与离散部分相对应的环境的一部分的可能性。该描述将离散部分图示为小正方形,并且将为零或小于阈值的可能性图示为空的空间。换言之,仅描述了动态数据300和302中包括显著可能性(例如,大于下阈值的可能性)的部分。与离散部分相关的可能性被描述为描述离散部分的正方形的阴影——阴影越深,可能性越大。在一些示例中,可能性可以是至少部分基于传感器数据和ML模型的架构与环境的一部分相关联的后验概率输出。ML模型可以附加地或替代地被训练以确定与每个离散部分相关联的速度和与该速度相关联的置信度分数。
图3A和3B都描绘了由动态数据300和302表示的对象在时间t=0时沿方向308移动并且车辆在时间t=0时至少沿方向310定向的预测。车辆的位置312表示为“x”。例如,动态数据300和/或302可以与试图倒车离开车辆前方停车点的车辆相关联。动态数据300可以包括帧304(1)-(n),并且动态数据302可以包括帧306(1)-(n),其中每个帧可以与不同的未来时间相关联。在一些示例中,与该帧相关联的时间之间的间隔可以是与节点层之间的间隔相同的间隔(例如,在一个示例中为500毫秒,尽管考虑了其他时段)。例如,第一时间t=0可以与当前时间相关联,并且第n时间可以与预测范围相关联,例如t=2秒。根据帧之间的时段,可以有任意数量的中间帧。
在一些示例中,除了传感器数据之外,ML模型还可以接收指示车辆模式的信号作为输入。例如,模式信号可以包括由规划器输出的轨迹(例如,轨迹本身或其抽象,例如“保持航向”、“右转”)、先前确定的路径、任务级模式(例如,让乘客下车、接乘客、运送乘客)、发射器模式(例如扬声器/喇叭激活、转向灯状态)和/或类似物。
动态数据300和动态数据302示出了由于作为输入提供的车辆模式的差异而可能导致的预测差异。图3A表示可以由ML模型基于指示车辆即将停止的车辆模式输出的动态数据,而图3B表示可以由ML模型基于指示车辆正在继续其轨迹的车辆模式输出的动态数据。总之,图3A包括动态对象可以在车辆前方完成转弯机动的预测,而图3B包括动态对象可能停止的预测。
本文所讨论的技术可以包括第一ML模型,其输出不考虑车辆模式的标称动态对象预测。换言之,第一ML模型不使用车辆模式进行训练,第一ML模型也不接收车辆模式作为输入。该技术可以进一步包括训练第二ML模型以接收车辆模式作为输入,和/或该技术可以包括训练不同的ML模型来处理不同的车辆模式,以及基于当前车辆模式在ML模型之间进行选择。附加地或替代地,一个或多个ML模型可以立刻生成输出,并且输出可以被级联并提供给制导系统。例如,动态数据300和302可以由相同或不同的ML模型生成,但是动态数据300或302中的一个或两个可以被提供给制导系统。在至少一个示例中,车辆模式可以与由此生成的动态数据相关联。如本文所用,动态数据可以指识别对象在与该帧相关联的时间处于或将占用环境的一部分的可能性的动态对象数据的单个帧、从包括车辆模式的输入生成的帧、从不包括车辆模式的输入生成的帧、多个帧(例如,诸如所有动态数据300)和/或跨多个车辆模式的集合动态数据(例如动态数据300和动态数据302)。
示例过程
图4A-4C示出了用于至少部分地基于环境数据确定用于控制自主车辆的路径的示例过程400的图示流程图,环境数据可以从传感器数据生成,并且可以包括指示静态对象和/或动态对象预测位置的占用地图和/或速度地图。本文所讨论的操作可以组合使用、单独使用、串行使用和/或并行使用,可以由相同的装置或不同的装置执行。例如,自主车辆的计算装置可以完成至少一些操作和/或(例如,分布式计算服务的、远程操作系统的)远程计算装置可以完成至少某些操作,尽管在至少一些示例中,自主车辆可以完成所有操作。制导系统的硬件和/或软件组件可以被配置为完成示例过程400的至少一部分。在另一个或替代示例中,远程计算装置可以完成示例过程400的至少一部分。在一些示例中,该过程的至少一些操作可以由自主车辆和/或其他计算装置(例如分布式计算系统)预计算。
图4A-4C继续使用如图1所示的示例场景100。
在操作402,示例过程400可以包括根据本文所讨论的任何技术接收与环境中的至少开始位置相关联的路线。在一些示例中,接收路线可以附加地或替代地包括接收开始位置和目标(例如,灵活目标)车道或其他参考。例如,其他参考可包括高速路入口或出口、对象(例如,跟随另一车辆或临时离开车辆的乘客)、非结构化环境(例如开阔场地)中的相对位置等。图1中描绘了示例路线,并在图4A中再现。在一些示例中,操作402可以包括至少部分地基于车辆的当前位置(例如,至少部分地基于传感器数据确定的)和/或结束位置(例如路线的终点、沿着路线的中间点)来确定路线。路线可以附加地或替代地包括一个或多个曲线(其可以包括一条或多条直线),其可以至少部分地基于与道路和/或到结束位置的其他路径相关联的曲率来确定。这种曲线可以至少部分地对应于存储在存储器中的地图和/或与道路相关联的指示器(例如,确定与中间分隔带、双黄线、路肩指示、人行道等相关联的形状)和/或基于所述地图和/或者所述指示器来确定。在各种示例中,这些路线可以附加地或替代地包括要在其中驾驶的期望车道、要走的街道等。
在操作404,示例过程400可以包括根据本文所讨论的任何技术接收与车辆周围环境相关联的环境数据。环境数据可以包括关于静态对象的数据(静态数据406)和/或关于动态对象的数据(动态数据408)。静态数据408和/或动态数据406可以从车辆的感知组件和/或从车辆的定位和/或映射组件接收。注意,动态数据408可以指示对象是静止的。当感知组件将跟踪与对象相关联(例如,对象先前正在移动)和/或如果感知组件将对象分类为与动态对象标识符相关联的对象分类,则可以将这样的对象包括在动态数据408中。例如,此类对象分类可以包括骑自行车的人、行人、车辆、动物和/或类似物,而建筑物、标志等通常不会与动态对象标识符相关联,并且与之相关的传感器数据可以合并到静态数据406中。有关使用静态对象占用地图进行路径规划的更多详细信息可以在以下文献中找到:标题为“Unstructured Vehicle Path Planner”的美国专利申请16/517506,其全部内容并入本文。
在一些示例中,可以扩大被指示为可能被占用的环境数据的部分的大小,以进一步避免冲突。在一些情况下,操作404可以附加地或替代地包括确定距离地图,其中距离地图中的位置指示从该位置到环境数据中指示为被占用的最近部分的距离。注意,可以针对动态数据408的每个时间步长确定距离地图,可以确定动态数据404的时间步长中的一个或多个和/或合并的距离地图(例如,多个距离地图的平均值)。静态数据406和/或动态数据408可以指示环境的一部分被占用/未被占用的可能性和/或二进制指示。例如,静态数据406可以通过指示最大可能性(例如,在可能性从0到1的示例中为1,其中1是对象存在的可靠指示)来指示静态对象的存在,并且动态数据408可以通过0到1之间的可能性(不包括1)来指示对象的可能位置,尽管其他系统可以用于指示静态和动态对象,例如使用逻辑。在一些示例中,可以至少部分地基于使用可能性阈值过滤环境数据(即,静态数据406和/或动态数据408)来计算距离地图,以确定二进制掩码。换句话说,确定距离可以至少部分地基于从环境中的点到环境数据的最近部分的距离,以指示等于或大于阈值的可能性。请注意,车辆位置用“x”表示。
在操作410,示例过程400可以包括根据本文所讨论的任何技术至少部分地基于环境数据来确定成本地图。例如,操作410可以包括串联或以其他方式组合静态数据406和动态数据408和/或生成一个或多个时间步长和/或车辆模式的成本地图412。成本地图之间的时间的间隔可以与动态数据408时间步长之间的间隔和/或在操作414生成的节点层之间的时间步长相同或不同。换句话说,动态数据、成本地图和节点生成速率可以与同步或异步的时间步长相关联地被生成。因此,可能需要插值或投影来生成成本地图412或确定与节点相关联的成本。在可以不使用插值的至少一个示例中,成本地图412的数量可以等于生成的最大层数,从而为将针对其生成节点的每个时间步长生成成本地图。附加地或替代地,成本地图的数量可以小于节点层的数量。
在一些示例中,确定成本地图包括确定与到达位置、航向、速度、加速度(例如,纵向和/或横向加速度)相关联的成本和/或环境中的进入/退出曲率,尽管为了简单起见,本文的讨论主要讨论到达位置。注意,成本地图可以与过了这些不同度量(例如,位置、航向、速度、曲率)的多变量空间相关联,这在图中被大大简化。实际上,这意味着第一成本可以与位置、航向和速度相关联,但不同的成本可以与不同的速度但相同的位置和航向相关联。
确定成本可以至少部分地基于预先计算的访问成本域,该访问成本域指示与到达多变量空间的不同部分所需的机动相关联的权重。预先计算的访问成本域可以包括用于不同速度的多个域(例如,每小时5英里、每小时15英里等等)。例如,如果一个位置处的速度高于或低于车辆的当前速度,那么到达该位置并向车辆前方十英尺处前进的成本可能会更高(例如,如果车辆以每小时30英里的速度行驶,则到达相同位置并以每小时25英里或每小时35英里的速度前进的第一成本将小于到达相同位置且以每小时10英里或每小时50英里的速度行进的第二成本)。
确定成本可以附加地或替代地至少部分地基于:确定从成本地图中的位置到目标参考(例如目标车道)的距离,确定到静态或动态对象的距离(其可基于可在操作404处确定的距离地图),和/或至少部分地基于静态数据406、动态数据408和/或可在操作414处确定的距离地图来确定冲突的可能性)。例如,成本可以基于到最近对象的距离和/或最近动态对象的行进的速度和/或方向。成本可以附加地或替代地至少部分地基于偏差成本,该偏差成本至少部分地基于由多变量空间中的位置指定的位置、航向、速度和/或曲率与路线或其他参考点(例如,目标车道)的偏差和/或沿着路线的位移。例如,随着沿路线的位移增加,成本可能会降低。确定沿着路线的位移可以包括将该点投影到路线上,并确定将被有效穿越的路线的一部分。偏差成本可以附加地或替代地至少部分地基于多变量空间中的位置、航向、速度等与车辆的当前位置、航向、速度等的偏差。
在一些示例中,确定成本可以至少部分地基于与对象相关联的对象分类。例如,不同的成本函数可以与不同类型的对象相关联,因为对象的行为和/或重要性可能不同。例如,与静态对象相关联的成本函数可以不包括应对运动的组件,并且与车辆相关联的成本函数可以不同于与行人相关联的成本函数。
在一些示例中,操作410可以包括确定与少于整个多变量空间相关联的成本。例如,操作410可以至少部分地基于当前车辆模式来限制成本确定,该当前车辆模式可以包括车辆的速度,和/或成本确定可以限于在操作414和/或操作434确定的特定节点。换句话说,可以在生成一个或多个节点之前计算所有成本地图、部分成本地图或不计算成本地图。例如,成本地图的一部分可以至少部分地基于距离地图(其是至少部分基于环境数据和/或预计算的访问成本域确定的)来确定,但是一旦节点被确定或者作为节点生成操作的一部分,成本确定的其他部分(例如,冲突可能性成本、相似性成本、路线位移成本)可以被确定。
在一些示例中,操作410(以及讨论动态数据的任何其他操作)可以包括确定与车辆的驾驶过道相关联的动态数据408的一部分。驾驶过道可以与车辆的先前路径、路线或当前轨迹相关联。确定动态数据408的一部分可以包括确定在一个或多个时间步长落入驾驶过道中的动态数据404的一部分。在一些情况下,为了安全起见,可以在驾驶过道的任一侧添加缓冲器以包括附加动态数据408。在一些示例中,确定成本地图可以基于动态数据408的这一部分而不是所有动态数据404,尽管如果有足够的计算带宽可用,则可以使用所有动态数据408。
转到图4B,在操作414,示例过程400可以包括根据本文所讨论的任何技术来确定下一时间步长(或下一距离)的节点集合。图4B描绘了成本地图的简化版本(简化的成本地图416),使得可以更清楚地看到节点的表示。注意,节点的数量和密度仅表示为示例。节点的数量和密度以及时间步长的大小可以大于或小于本文所描绘和描述的。确定下一时间步长的节点集合可以至少部分地基于任何先前层的一个或多个节点的位置。在所描绘的示例中,下一时间步长是第一时间步长,t=1,因此节点418是基于车辆在时间t=0的当前位置确定的,由“x”表示。与第二时间步长t=2相关联的后续节点层可以至少部分地基于多变量空间中的一个或多个节点418的位置。如果每个时间步长对应于100毫秒的时间单位,则节点418可以对应于未来100毫秒时间的不同位置、航向、速度和/或曲率。第二层节点可以对应于未来200毫秒的时间,以此类推,直到计算或存储器分配用完,到达目标位置,和/或直到达到节点集合/时间步长的阈值数量n。
在一些示例中,节点可以与控制策略相关联,例如保持航向和速度、将转向角连续改变5度并以指定的减速度减速、保持航向与速度但略微移动远离对象等。节点本身可以包括数据结构,该数据结构指示与该节点相关联的控制策略、将是实现控制策略的结果的多变量空间中的位置、到达该节点的成本、后续节点的预测成本、相似性成本、和/或与该节点相关联的父节点的标识(例如,节点所基于的节点,例如父节点,可以是控制策略的起点)。确定节点集合可以包括生成树,其中每个节点具有一个父节点,尽管在附加或替代示例中,确定节点集合可包括生成有向非循环图(DAG)或用于关联节点的任何其他类型的数据结构。在一些示例中,控制策略可以至少部分地基于传感器数据、感知数据和/或地图数据由车辆的规划组件动态生成,和/或控制策略可以是存储在存储器中的多个规范控制策略(canonic control policy)之一。在一些示例中,规范控制策略可以与不同的感知数据和/或地图数据状态相关联。例如,当在高速路上以高于某一速度行驶的同时,用于慢速急转弯的控制策略可能不可用,但用于紧急高速机动的不同控制策略可能与高速路驾驶相关联。
到达节点的成本可以是从其父节点到达该节点的成本(例如,至少部分地基于成本地图,其可以考虑偏差成本、冲突成本)和与父节点相关联的成本的总和。换言之,到达该节点的成本可以是在层级上在该节点之前的每个节点的总成本。
可以至少部分地基于节点与多变量空间中最近的一个或多个节点的接近度和/或在控制策略之间的匹配分数来确定节点的相似性成本。可以在节点生成之前或之后计算该相似性成本。在至少一个示例中,可以在冲突和/或散列修剪之后确定相似性成本,如下面进一步讨论的,并将其添加到与节点相关联的总成本。
在一些示例中,确定节点可以包括在多变量空间中针对以下解进行搜索:其最大化沿路线的位移和解之中的横向/方位多样性的组合(或满足多样性启发式)并且至少部分地基于给定时间间隔中的成本地图最小化成本。例如,搜索算法可以包括诸如D*、D*lite、聚焦动态A*、A*、LPA*、Dijkstra算法等算法,尽管可以使用用于搜索和/或生成有向图和/或加权有向图的其他搜索算法。在一些示例中,搜索可以至少部分基于:至少部分基于样本节点和规则集合来构建有向图或树。例如,规则集合可以指定同一层的任何两个节点都不能连接和/或连接的节点之间的最小和/或最大距离等。在一些示例中,可以修改上面讨论的算法之一以包括本文讨论的成本参数。在至少一个示例中,与静态数据406和/或动态数据408的距离、其值和/或成本地图可以是作为搜索算法的一部分而更新的成本参数。
在一些示例中,操作414可以返回由搜索算法识别为具有增加的位移和横向/方位多样性(其具有较低成本)的m个节点,其中m是正整数。“增加”和“较低”意味着它们可能具有位移、多样性和成本值,这些值本身可能是或可能不是各自的最大值或最小值,但已被搜索算法识别为平衡位移、多样性和/或成本。换句话说,搜索算法可以寻求优化节点的位移、多样性和成本。对于第一层以外的一层,搜索算法可以针对前一层的每个节点探索高达m个节点。
在操作420,示例过程400可以包括根据本文所讨论的任何技术来确定节点422是否可能导致冲突。例如,该操作可以包括表示将车辆定位在多变量空间中的节点422处。这可以包括:将车辆表示为直径等于自主车辆宽度的两个圆,其中第一圆可以以自主车辆的前轴为中心(即,前圆424),并且第二圆可以以自主车辆的后轴为中心(即,后圆426);以及确定表示与最近的静态对象和/或预测为在未来时间被动态对象占用的环境的一部分之间的距离。在一些示例中,节点426与后轴的位置(例如,后圆424的中心)相关联,尽管可以设想附加的或替代的布置(例如,圆的重叠区域的中心、前圆424的中心)。在一些示例中,由占用地图指示的自主车辆和/或占用空间的表示可以被放大以应对误差(例如,圆的直径和/或在占用中被指示为占用的区域可以被放大自主车辆宽度的一半)。
确定节点是否可能导致冲突可以包括确定从圆到最近的静态或动态对象的最短距离428。确定到动态对象的距离可以包括确定到环境数据和/或成本地图的一部分(其与处于阈值可能性或高于阈值可能性的可能性相关联)的距离。如果距离428短于阈值距离,则操作420可以继续到操作430;否则,操作420可以继续到操作432。
在操作430,示例过程400可以包括根据本文所讨论的任何技术,修剪可能导致冲突的节点和/或将冲突的可能性与节点相关联。修剪节点可包括从树或图中移除节点或将节点将导致冲突的指示与节点相关联。冲突指示器可以防止该节点被用作后续节点的父节点并且被选择作为最终路径的一部分。关联与节点冲突的可能性可以包括修改与节点相关联的权重,作为操作444处的成本确定操作的一部分(例如,通过增加成本)。
在操作432,示例过程400可以包括根据本文所讨论的任何技术,确定与在操作414生成的节点集合中的节点相关联的散列。图4B描绘了节点集合418中的节点422的示例散列424,根据散列的类型,散列434由数字和/或字符的串表示。在一些示例中,与多变量空间相关联的散列可以由散列函数预先计算,使得可以将一定数量的比特分配给多变量空间的每个维度。
例如,如果散列函数被配置为输出64位整数,则状态空间中的x位置可以由散列的16位指示,y位置可以由16位指示,速度可以由8位指示,并且偏航可以由8位指示。散列函数可以被设计为生成表示多变量空间的一部分的散列,该部分具有至少部分地基于设置为散列函数的参数的分辨率436而确定的维度;位于多变量空间的该部分的维度内的任何节点与相同的散列438相关联。分辨率436可用于控制生成的节点的多样性——分辨率436越大,节点多样性越大(即,更多的节点将生成相同的散列),尽管这可能会减少修剪后的节点总数,因此可以调整分辨率436,以便有数十个解(例如,20、30、50),但也考虑了其他数量(例如5、100、数百)。
根据所描绘的示例,由于分辨率436的大小,节点422和节点438二者都将生成散列424。在至少一个示例中,操作432可以包括存储搜索期间迄今为止生成的节点的散列值列表。在一些示例中,可以使用散列函数在车辆上计算节点的散列,但在附加或替代示例中,可以通过基于节点在多变量空间中的位置从一组预先计算的散列中查找在查找表中的散列来计算节点的散列。
转到图4C,在操作440,示例过程400可以包括根据本文所讨论的任何技术来确定节点的散列是否匹配任何其他节点的散列。如果节点的散列与另一个节点的散列匹配,则操作440可以继续到操作442,通过该操作,至少一个节点将被修剪,否则操作430可以继续至操作444。在一些示例中,操作440和442可以包括两个阶段。在第一阶段,新生成的节点(“候选节点”)的散列可以相互比较并进行修剪,并且在第二阶段,剩余候选节点的散列可与先前生成的节点进行比较。
在操作432,示例过程400可以包括根据本文所讨论的任何技术修剪与匹配的散列相关联的节点之一。在至少一个示例中,可以丢弃最近期生成的节点。在附加或替代示例中,示例过程400可以包括确定与具有匹配散列的每个节点相关联的成本,并且可以丢弃除了与最低成本相关联的节点之外的所有节点。丢弃节点可将节点从用作路径的一部分的考虑中移除,和/或可导致基于多变量空间中的修剪节点位置不生成后续的节点层。如果修剪的节点是父节点(即,该节点具有一个或多个子节点),则也可以修剪其子节点。在一些示例中,如果两个散列发生冲突,如果这两个节点是在不同的节点生成操作中生成的,则可能会修剪较新的节点。例如,如果候选节点与先前生成的节点冲突(例如,在基于散列的修剪的第二阶段),则两个节点中较旧的节点(即,与先前节点集合相关联生成的节点)可以被保留,而较新的节点被修剪。图4C描绘了节点446的修剪层的示例。注意,尽管本文描述了基于散列的修剪方法,但是可以使用其他合适的修剪技术。
在操作444,示例过程400可以包括根据本文所讨论的任何技术来确定与节点相关联的成本。在一些示例中,操作444可以是操作410、414和/或420的一部分。例如,操作410可以包括确定与节点相关联的成本的第一部分,而操作444可包括确定与该节点相关联的成本的第二部分。在附加或替代示例中,操作410可以被减少或移除(例如,在生成节点不基于成本的示例中),并且操作444可以包括如上所述的操作410的一个或多个部分。在又一示例中,生成节点可以至少部分地基于确定与多变量空间的不同部分相关联的成本,和/或修剪节点可以至少部分地基于确定与该节点相关联的成本。可以在操作410、414和/或420处生成其他成本,例如冲突成本、偏差成本、访问成本等,尽管可以在操作444处计算这些成本中的任何一个(只要此后的操作不依赖它们,例如在节点生成基于成本的示例中的节点生成)。
在生成节点之后可以计算的至少一个附加成本是相似性成本。相似性成本可以包括应用于上面讨论的(加权/非加权)成本之和的权重,该权重增加了在多变量空间中接近的节点的成本。然而,如果正确调整分辨率,则相似性成本可能很小或根本不被使用。
在操作448,示例过程400可以包括根据本文所讨论的任何技术来确定是否满足计算范围。例如,操作448可以包括确定计算或存储器分配是否用尽,确定一个或多个节点已经到达环境中的目标位置,和/或确定已经达到节点集合/时间步长的阈值数目n。换句话说,如果生成了第n个节点集合,则操作448可以转换到操作452,否则操作448可转换到操作450,并最终返回到操作414、420、430、432、440、442、444和/或448中的任何一个或多个。例如,示例过程400可以迭代地重复操作414、420、430、432、440、442、444和/或448中的至少一些,直到满足计算范围之一。
在操作450处,示例过程400可以包括根据本文所讨论的任何技术选择最低成本的p个最低成本节点用于进一步探索(除非满足范围),其中p是正整数。最低成本的p个节点可以从修剪的节点集合中被选择。注意,最低成本的p个节点可以包括来自最近期生成的节点集合和/或先前生成的节点集合中的节点。在某些情况下,如果最近期探索的节点变得太昂贵(例如,发散成本开始变得很高,导致算法寻找新路径)或导致冲突,则这可能导致算法返回到探索较旧节点以寻找路径。
可以选择最低成本的p个节点来确定随后的节点层(即,在操作414)。确定随后的节点层(在操作414)可以至少部分地基于探索p个所选节点中的节点。探索节点可以包括至少部分地基于节点确定多达m个节点(参见图5A中至少部分地基于节点422确定的节点500)。如上所述,探索节点可以包括确定多变量空间中的位置,该位置将由以探索的节点为起点实施不同的控制策略而产生。
由搜索算法针对前一层的每个节点搜索的节点数m可以大于或等于在操作450中选择的节点数p。下一层节点可以包括多达p·m个节点。在一些示例中,p可以是数十个、数百个或任何其他数量的节点。确定最低成本的p个节点可以包括根据在操作446确定的成本对最低成本p个节点进行排名、排序和/或以其他方式识别,尽管在一些示例中,在节点根据枚举排序生成时节点可以按成本排序,这可以由GPU处理单元完成。
在一些示例中,第一类型处理器(例如GPU)的不同内核或线程可以处理正在被探索的p个节点中的节点探索中的不同节点探索。例如,第一内核或线程可以处理基于p个节点中的第一节点生成多达m个节点,第二内核或线程可处理基于p节点中的第二节点生成多达m个节点,等等。成本确定(例如,成本地图和/或与节点相关联的特定成本)、散列确定和/或其他步骤可以类似地并行化,尽管应当理解,第二类型的处理器可以处理这些或其他操作中的任何一个。在一些示例中,一旦已经确定了节点、散列和/或成本,就可以将节点、散列和/或成本发送到不同于第一类型处理器的第二类型处理器进行处理,该处理可以包括操作430、432、434、448和/或450,尽管第一类型处理器可以完成这些操作中的一个或多个。
在操作452,示例过程400可以包括根据本文所讨论的任何技术来确定最低成本结束节点和/或输出与其相关联的路径。在一些示例中,搜索算法可以逐步跟踪和/或生成路径并运行不同路径的总成本作为搜索算法的一部分(例如,该总成本可以由图或树中沿着一条路径的最远节点识别为到达该节点的成本),尽管一些搜索算法可以在填充多达n个节点集合之后确定一个或多个路径。在至少一个示例中,操作452可以包括确定与最晚的时间步长或沿路线的位移相关联的最低成本节点(例如,与未来五秒相关联的节点,其中五秒是达到的最大时间步长)。在一些示例中,由于位移可以是成本确定的一部分(例如,降低总成本),因此成本本身可以反映位移,并且操作452可以仅选择最低成本节点。在又一示例中,确定最低成本节点可以包括从最近期生成的(最后的)节点集合(例如,最低成本结束节点454)中而不是从所有生成的节点中确定最低成本的节点。
附加地或替代地,确定路径可以包括迭代地确定不同节点层的节点之间的连接的不同组合,并至少部分地基于减少连接组合的运行总成本来选择要添加到有向图中的连接。在一些示例中,根据所使用的算法,搜索算法可以在生成节点时逐步完成这一操作。例如,搜索算法可以将这些连接存储在有向图或树中,其包括第一节点和第二节点之间的连接(例如,边缘)和/或与该连接相关联的权重(例如,成本)。该成本可以至少部分地基于在操作410、414、420和/或444确定的成本。
在一些示例中,操作452可以包括确定与最低成本节点相关联的路径。在每个节点仅具有一个父节点(例如,根据树结构生成的节点)的示例中,确定路径456可以包括将最低成本节点及其所有父节点输出到起始位置。在根据图生成节点的示例中,确定路径可以包括从节点跟踪回最低成本路径。输出路径可以包括输出最低成本节点、与最低成本节点相关联的成本、最低成本节点与开始位置之间的一个或多个中间节点和/或与其相关联的成本,和/或通过从最低成本节点到开始位置的节点的踪迹。在一些示例中,操作452可以附加地或替代地包括输出多个路径。例如,操作452可以输出成本最低的r个路径,其中r是正整数,和/或在创建了差异很大的路径的情况下输出至少两条路径(例如,一条路径向左,另一条向右)。
例如,路径456可以是曲线,例如Bezier曲线,如图4C所示,尽管由制导系统输出的路径可以包括粗略路径,粗略路径可以包括由路径连接的节点的坐标列表(例如,由此指定的位置、航向、速度)、节点之间的线性连接等。在操作452包括确定粗略路径的示例中,示例过程400还可以包括将粗略路径传输到另一个组件,例如规划组件的平滑组件,该组件可以接收粗略路径并将粗略路径平滑为平滑路径,该平滑路径具有可由被控制的特定类型的车辆驱动的曲率和加速度。
示例迭代节点层生成
图5A-5D描绘了根据本文所讨论的技术的多变量空间中的连续节点生成和修剪操作的结果的自上而下的图示。为了简单起见,根据上面的讨论,静态对象是以二进制表示的,而不是根据它们的成本地图可能性表示的。注意,与不同时间步长相关联的动态数据根据与相应时间步长相关联的动态数据帧而变化。而且,请注意,图4A-5D仅描绘了为一种车辆模式生成的节点层和路径,尽管预期了制导系统可以确定与当前车辆模式或标称车辆模式(默认)相关联的至少一条路径和/或每个车辆模式多达一条路径。图5A-5D可以描绘根据图4A-4C中所描绘示例的示例过程400的操作414、420、430、432、440、442、444、448和/或450中的至少一些的进一步迭代。
图5A描绘了从节点的第一集合(例如,修剪的节点集合446)的最低成本的p个节点生成节点的第二集合500的自顶向下表示。该描述包括通过线连接到节点422的节点。节点500表示可以作为操作414的一部分至少部分地基于节点422生成的节点。这些节点500通过线被指示为从节点422中生成。在至少一个示例中,最低成本的p个节点中中的每一个节点的不同的节点可能已被分配给GPU的不同处理单元以供探索。例如,GPU的内核或线程可能已经被分配了节点422并作为响应生成节点500。
图5B描绘了修剪节点的修剪集合446和节点的第二集合500的结果(即,第二修剪节点504)的自上而下表示。注意,第二修剪节点504包括在节点的第一集合和第二集合二者中生成的节点。第二修剪节点504的最低成本的p个节点可以被选择并用于生成图5C所示的节点的第三集合。其可以被修剪为第三修剪节点508。图5D描绘了在第二修剪节点504和节点的第三集合506被修剪之后剩余的第三修剪节点508的自上而下表示。
图6A-6F描绘了在具有两个静态对象的环境中的节点生成的自顶向下表示。图6A-6F以白色表示空闲空间(空闲空间600),以黑色表示占用空间(占用空间602),并且以灰色表示节点。图6A描绘了与开始位置604相关联的环境和节点。
图6B示出了在节点生成的第六次迭代之后生成的节点。
图6C示出了在节点生成的第十次迭代之后生成的节点。
图6D示出了在节点生成的第十五次迭代之后生成的节点。图6D还证明了用于探索的最低成本的p个节点可以是来自先前多次迭代生成的节点集合的节点。
图6E示出了在第二十次节点生成迭代之后生成的节点。注意,尽管有新节点通过静态对象(在606处指示),但还存在进一步添加回去的新节点,这些节点是节点生成的早期迭代的探索——这些在608处指示。
图6F示出了在节点生成的第二十五次迭代之后生成的节点以及与最低成本结束节点相关联的输出路径610,如实线所示。
示例条款
A、一种方法,包括:接收动态对象在环境中的预测位置以及动态对象将在未来时间占用预测位置的概率;至少部分地基于环境数据确定用于控制车辆的路径,其中确定路径包括:至少部分地基于环境数据确定成本地图;至少部分地基于车辆在环境中的当前位置来确定第一节点,第一节点与用于在第一时间间隔内控制车辆的运动的第一候选轨迹相关联;至少部分地基于修剪技术确定第一节点的子集;确定与第一节点的子集相关联的成本,其中确定成本包括至少部分地基于成本地图以及节点与其他节点的相似性来确定与第一节点的子集中的节点相关联的成本;至少部分地基于成本,确定子集中具有与第一节点的子集相关联的成本中最低成本的两个或更多个节点;至少部分地基于该两个或更多个节点来确定第二节点;以及至少部分地基于与第二节点相关联的第二成本和与第一节点的子集相关联的成本来确定路径。
B、根据段落A所述的方法,其中,确定第二节点中的节点至少部分地基于:至少部分地基于根据控制策略投影与两个或更多个节点中的一个相关联的位置、速度和航向来确定车辆的未来位置、未来速度和未来航向;以及第二节点中的各个节点与不同的控制策略相关联。
C、根据段落A或B所述的方法,其中,修剪技术包括:确定与第一节点相关联的散列;确定第一节点中的一个或多个节点与冗余散列相关联;以及至少部分地基于确定第一节点中的一个或多个节点与冗余散列相关联来丢弃第一节点中的一个或多个节点。
D、根据段落A至C中任一项所述的方法,其中,路径是定义车辆在多个第一时间间隔上的位置、航向或速度中的至少一个的粗略路径,并且该方法还包括:除了在多个第二时间间隔上的位置、航向或速度中的至少一个之外,还至少部分地基于定义路径的曲率来改进粗略路径,第二时间间隔比第一时间间隔短。
E、根据段落A至D中任一项所述的方法,其中:粗略路径由第一类型处理单元确定;以及改进的路径由不同于第一类型处理单元的第二类型处理单元确定。
F、根据段落A至E中任一项所述的方法,其中:未来时间是第一未来时间,概率是第一概率,并且环境数据还包括指示动态对象的第二预测位置的第二地图和第二概率:动态对象将在比第一未来时间晚的第二未来时间占用第二预测位置;与第一节点的子集相关联的成本至少部分地基于第一概率;以及第二成本至少部分地基于第二概率。
G、一种系统包括:一个或多个处理器;以及存储处理器可执行指令的存储器,指令当由一个或多个处理器执行时,使得系统执行操作,所述操作包括:接收动态对象在环境中的预测位置以及动态对象将在未来时间占用预测位置的概率;至少部分地基于环境数据确定用于控制车辆的路径,其中确定路径包括:至少部分地基于环境数据确定成本地图;至少部分地基于车辆在环境中的当前位置来确定第一节点;至少部分地基于修剪技术确定第一节点的子集;确定与第一节点的子集相关联的成本,其中确定成本包括至少部分地基于成本地图以及节点与一个或多个其他节点的相似性来确定与第一节点的子集中的节点相关联的成本;至少部分地基于成本,确定子集中具有与第一节点的子集相关联的成本中最低成本的两个或更多个节点;至少部分地基于该两个或更多个节点来确定第二节点;以及至少部分地基于与第二节点相关联的第二成本和与第一节点的子集相关联的一个或多个成本来确定路径。
H、根据段落G所述的系统,其中,确定第二节点中的节点至少部分地基于:至少部分地基于根据控制策略投影与该两个或更多个节点中的一个相关联的位置、速度和航向来确定车辆的未来位置、未来速度和未来航向;以及第二节点中的各个节点与不同的控制策略相关联。
I、根据段落G或H所述的系统,其中,路径是定义车辆在多个第一时间间隔上的位置、航向或速度中的至少一个的粗略路径,并且该方法还包括:除了在多个第二时间间隔上的位置、航向或速度中的至少一个之外,还至少部分地基于定义路径的曲率来改进该粗略路径,第二时间间隔比第一时间间隔短。
J、根据段落G至I中任一项所述的系统,其中:粗略路径由第一类型处理单元确定;以及平滑路径由不同于所述第一类型处理单元的第二类型处理单元确定。
K、根据段落G至J中任一项所述的系统,其中:未来时间是第一未来时间,概率是第一概率,并且环境数据还包括指示所述动态对象的第二预测位置的第二地图和第二概率:动态对象将在比第一未来时间晚的第二未来时间占用第二预测位置;与第一节点的子集相关联的成本至少部分地基于第一概率;以及第二成本至少部分地基于第二概率。
L、根据段落G至K中任一项所述的系统,其中,确定成本地图包括:确定与环境相关联的参数空间中的位置、航向、速度或曲率中的至少一个相关联的成本,其中,确定成本至少部分地基于:至少部分地基于位置、航向、速度或曲率中的至少一个与车辆或目标车道的当前位置、当前航向、当前速度或当前曲率的偏差来确定访问成本;或者确定位置与静态对象的接近度、位置与预测位置的接近度、概率,或者确定位置、航向、速度或曲率与路线或路径参考的偏差。
M、根据段落G至L中任一项所述的系统,其中,确定与第一节点的子集中的节点相关联的成本还包括至少部分地基于以下中的至少一个来确定权重:第一节点与第一节点的子集中的第二节点的相似性;第一节点的横向位置与第一节点的子集中的一个或多个其他节点的横向位置之间的差;或者沿着与第一节点相关联的路线的距离。
N、一种存储处理器可执行指令的非暂时性计算机可读介质,指令当由一个或多个处理器执行时,使得一个或多个处理器执行操作,所述操作包括:接收动态对象在环境中的预测位置以及动态对象将在未来时间占用预测位置的概率;至少部分地基于环境数据确定用于控制车辆的路径,其中确定该路径包括:至少部分地基于环境数据确定成本地图;至少部分地基于车辆在环境中的当前位置来确定第一节点;至少部分地基于修剪技术确定第一节点的子集;确定与第一节点的子集相关联的成本,其中确定该成本包括至少部分地基于成本地图以及节点与一个或多个其他节点的相似性来确定与第一节点的子集中的节点相关联的成本;至少部分地基于成本,确定子集中具有与第一节点的子集相关联的成本中最低成本的两个或更多个节点;至少部分地基于该两个或更多个节点来确定第二节点;以及至少部分地基于与第二节点相关联的第二成本和与第一节点的子集相关联的一个或多个成本来确定路径。
O、根据段落N所述的非暂时性计算机可读介质,其中,确定第二节点中的节点至少部分地基于:至少部分地基于根据控制策略投影与两个或更多个节点中的一个相关联的位置、速度和航向来确定车辆的未来位置、未来速度和未来航向;以及第二节点中的节点与不同的控制策略相关联。
P、根据段落N或O所述的非暂时性计算机可读介质,其中,修剪技术包括:确定与第一节点相关联的散列的集合;以及将与冗余散列相关联的第一节点中的节点确定为冗余节点,以及其中,节点的子集不包括所述冗余节点。
Q、根据段落N至P中任一项所述的非暂时性计算机可读介质,其中,路径是定义车辆在多个第一时间间隔上的位置、航向或速度中的至少一个的粗略路径,并且该方法还包括:除了在多个第二时间间隔上的位置、航向或速度中的至少一个之外,还至少部分地基于定义路径的曲率来改进该粗略路径,第二时间间隔比第一时间间隔短。
R、根据段落N至Q中任一项所述的非暂时性计算机可读介质,其中:未来时间是第一未来时间,概率是第一概率,并且环境数据还包括指示动态对象的第二预测位置的第二地图和第二概率:动态对象将在比第一未来时间晚的第二未来时间占用第二预测位置;与第一节点的子集相关联的成本至少部分地基于第一概率;以及第二成本至少部分地基于第二概率。
S、根据段落N至R中任一项所述的非暂时性计算机可读介质,其中,确定成本地图包括:确定与环境相关联的参数空间中的位置、航向、速度或曲率中的至少一个相关联的成本,其中,确定成本至少部分地基于:至少部分地基于位置、航向、速度或曲率中的至少一个与车辆或目标车道的当前位置、当前航向、当前速度或当前曲率的偏差来确定访问成本;确定位置与静态对象的接近度、位置与预测位置的接近度、概率;或者确定位置、航向、速度或曲率与路线或路径参考的偏差。
T、根据段落N至S中任一项所述的非暂时性计算机可读介质,其中,确定与第一节点的子集中的节点相关联的成本还包括至少部分地基于以下中的至少一个来确定权重:第一节点与第一节点的子集中的第二节点的相似性;第一节点的横向位置与第一节点的子集中的一个或多个其他节点的横向位置之间的差;或者沿着与第一节点相关联的路线的距离。
U、根据段落A至F中任一项所述的方法,其中,该方法还包括至少部分地基于由车辆的一个或多个传感器捕获的传感器数据来确定环境数据,确定环境数据包括:接收车辆操作模式的指示;至少部分地基于车辆的操作模式和传感器数据来确定环境中动态对象的位置、航向或速度中的至少一个的第一预测;以及至少部分地基于第一预测来确定第一热图。
结论
尽管已经以特定于结构特征和/或方法行为的语言描述了主题,但是应当理解,在所附权利要求中定义的主题不一定限于所描述的特定特征或行为。相反,特定特征和行为被公开为实施权利要求的示例形式。
本文描述的组件表示可以存储在任何类型的计算机可读介质中并且可以在软件和/或硬件中实现的指令。上述所有方法和过程可以体现在由一个或多个计算机或处理器、硬件或其某种组合执行的软件代码组件和/或计算机可执行指令中,并且通过由一个或多个计算机或处理器、硬件或其某种组合执行的软件代码组件和/或计算机可执行指令完全自动化。一些或所有方法可以替代地体现在专门的计算机硬件中。
在此讨论的至少一些过程被图示为逻辑流程图,其每个操作表示可以在硬件、软件或其组合中实现的操作序列。在软件的上下文中,操作表示存储在一个或多个非暂时性计算机可读存储介质上的计算机可执行指令,所述指令当由一个或多个处理器执行时,使计算机或自主车辆执行所记载的操作。通常,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序不旨在被解释为限制,并且任何数量的描述的操作可以以任何顺序和/或并行组合以实现过程。
除非另有明确说明,诸如“可以”、“能”、“可”或“可能”等条件性语言在上下文中被理解为表示:某些示例包括,而其他示例不包括,某些特征、元素和/或步骤。因此,这种条件性语言通常不旨在暗示某些特征、元素和/或步骤以任何方式对于一个或多个示例是必需的,或者一个或多个示例必须包括用于在有或没有用户输入或提示的情况下做出决定的逻辑,无论在任何特定示例中是否包括或将要执行某些特征、元素和/或步骤。
除非另有明确说明,否则诸如短语“X、Y或Z中的至少一个”之类的合取语言应理解为表示:项目、术语等可以是X、Y或Z,或其任何组合,包括每个元素的倍数。除非明确描述为单数,否则“一个”表示单数和复数。
在此描述和/或在附图中描绘的流程图中的任何常规描述、元素或框应被理解为潜在地表示模块、段或代码部分,其包括用于实现特定逻辑功能的一个或多个计算机可执行指令或例程中的元素。替代实现方式被包括在本文描述的示例的范围内,其中元素或功能可以被删除,或与所示出或讨论的内容无序执行,包括基本上同步地、以相反的顺序、具有附加操作或省略操作,这取决于所涉及的功能,如本领域技术人员将理解的。注意,该术语基本上可以指示范围。例如,基本上同时可以指示两个活动在彼此的时间范围内发生,基本上相同的维度可以指示两种元素具有在彼此的范围内的维度,等等。
可以对上述示例进行许多变化和修改,上述示例的元素将被理解为在其他可接受的示例中。所有这样的修改和变化都旨在被包括在本公开的范围内并受所附权利要求保护。
Claims (15)
1.一种系统,包括:
一个或多个处理器;以及
存储处理器可执行指令的存储器,所述处理器可执行指令当由所述一个或多个处理器执行时,使得所述系统执行操作,所述操作包括:
接收动态对象在环境中的预测位置以及以下概率:所述动态对象将在未来时间占用所述预测位置;
至少部分地基于环境数据来确定用于控制车辆的路径,其中,确定所述路径包括:
至少部分地基于所述环境数据来确定成本地图;
至少部分地基于所述车辆在所述环境中的当前位置来确定第一节点;
至少部分地基于修剪技术来确定第一节点的子集;
确定与所述第一节点的所述子集相关联的成本,其中,确定所述成本包括:至少部分地基于所述成本地图以及所述节点与一个或多个其他节点的相似性,来确定与所述第一节点的所述子集中的节点相关联的成本;
至少部分地基于所述成本,来确定所述子集中具有与所述第一节点的所述子集相关联的成本之中的最低成本的两个或更多个节点;
至少部分地基于所述两个或更多个节点来确定第二节点;以及
至少部分地基于与所述第二节点相关联的第二成本以及与所述第一节点的所述子集相关联的所述成本中的一个或多个成本,来确定所述路径。
2.根据权利要求1所述的系统,其中,确定所述第二节点中的节点至少部分地基于:
至少部分地基于根据控制策略投影与所述两个或更多个节点中的一个节点相关联的位置、速度和航向,来确定所述车辆的未来位置、未来速度和未来航向;以及
所述第二节点中的各个节点与不同的控制策略相关联。
3.根据权利要求1或2所述的系统,其中,所述路径是定义所述车辆在多个第一时间间隔上的位置、航向或速度中的至少一个的粗略路径,并且所述方法还包括:
除了在多个第二时间间隔上的位置、航向或速度中的至少一个之外,还至少部分地基于定义所述路径的曲率来改进所述粗略路径,所述第二时间间隔比所述第一时间间隔短。
4.根据权利要求3所述的系统,其中:
所述粗略路径由第一类型处理单元确定;以及
所述平滑路径由不同于所述第一类型处理单元的第二类型处理单元确定。
5.根据权利要求1至4中任一项所述的系统,其中:
所述未来时间是第一未来时间,所述概率是第一概率,并且所述环境数据还包括指示所述动态对象的第二预测位置的第二地图和以下第二概率:所述动态对象将在比所述第一未来时间晚的第二未来时间占用所述第二预测位置;
与节点的第一子集相关联的所述成本至少部分地基于所述第一概率;以及
所述第二成本至少部分地基于所述第二概率。
6.根据权利要求1至5中任一项所述的系统,其中,确定所述成本地图包括:确定与在关联于所述环境的参数空间中的位置、航向、速度或曲率中的至少一个相关联的成本,其中,确定所述成本至少部分地基于:
至少部分地基于所述位置、所述航向、所述速度或所述曲率中的至少一个与所述车辆或目标车道的当前位置、当前航向、当前速度或当前曲率的偏差,来确定访问成本;或者
确定所述位置与静态对象的接近度、所述位置与所述预测位置的接近度、或者所述概率,或者
确定所述位置、所述航向、所述速度或所述曲率与路线或路径参考的偏差。
7.根据权利要求1至6中任一项所述的系统,其中,确定与所述第一节点的所述子集中的所述节点相关联的成本还包括至少部分地基于以下各项中的至少一项来确定权重:
所述第一节点与所述第一节点的所述子集中的第二节点的相似性;
所述第一节点的横向位置与所述第一节点的所述子集中的一个或多个其他节点的横向位置之间的差;或者
沿着与所述第一节点相关联的路线的距离。
8.根据权利要求1至7中任一项所述的系统,其中,所述修剪技术包括:
确定与所述第一节点相关联的散列;
确定所述第一节点中的一个或多个节点与冗余散列相关联;以及
至少部分地基于确定所述第一节点中的所述一个或多个节点与冗余散列相关联,来丢弃所述第一节点中的所述一个或多个节点。
9.一种存储处理器可执行指令的非暂时性计算机可读介质,所述处理器可执行指令当由一个或多个处理器执行时,使得所述一个或多个处理器执行操作,所述操作包括:
接收动态对象在环境中的预测位置以及以下概率:所述动态对象将在未来时间占用所述预测位置;
至少部分地基于环境数据来确定用于控制车辆的路径,其中,确定所述路径包括:
至少部分地基于所述环境数据来确定成本地图;
至少部分地基于所述车辆在所述环境中的当前位置来确定第一节点;
至少部分地基于修剪技术来确定第一节点的子集;
确定与所述第一节点的所述子集相关联的成本,其中,确定所述成本包括:至少部分地基于所述成本地图以及所述节点与一个或多个其他节点的相似性,来确定与所述第一节点的所述子集中的节点相关联的成本;
至少部分地基于所述成本,来确定所述子集中具有与所述第一节点的所述子集相关联的所述成本之中的最低成本的两个或更多个节点;
至少部分地基于所述两个或更多个节点来确定第二节点;以及
至少部分地基于与所述第二节点相关联的第二成本以及与所述第一节点的所述子集相关联的所述成本中的一个或多个成本,来确定所述路径。
10.根据权利要求9所述的非暂时性计算机可读介质,其中,确定所述第二节点中的节点至少部分地基于:
至少部分地基于根据控制策略投影与所述两个或更多个节点中的一个节点相关联的位置、速度和航向,来确定所述车辆的未来位置、未来速度和未来航向;以及
所述第二节点中的节点与不同的控制策略相关联。
11.根据权利要求9或10所述的非暂时性计算机可读介质,其中,所述修剪技术包括:
确定与所述第一节点相关联的散列的集合;以及
将与冗余散列相关联的所述第一节点中的节点确定为冗余节点,并且
其中,所述节点的所述子集不包括所述冗余节点。
12.根据权利要求9所述的非暂时性计算机可读介质,其中,所述路径是定义所述车辆在多个第一时间间隔上的位置、航向或速度中的至少一个的粗略路径,并且所述方法还包括:
除了在多个第二时间间隔上的位置、航向或速度中的至少一个之外,还至少部分地基于定义所述路径的曲率来改进所述粗略路径,所述第二时间间隔比所述第一时间间隔短。
13.根据权利要求9至12中任一项所述的非暂时性计算机可读介质,其中:
所述未来时间是第一未来时间,所述概率是第一概率,并且所述环境数据还包括指示所述动态对象的第二预测位置的第二地图和以下第二概率:所述动态对象将在比所述第一未来时间晚的第二未来时间占用所述第二预测位置;
与所述节点的所述第一子集相关联的所述成本至少部分地基于所述第一概率;以及
所述第二成本至少部分地基于所述第二概率。
14.根据权利要求9至13中任一项所述的非暂时性计算机可读介质,其中,确定所述成本地图包括:确定与在关联于所述环境的参数空间中的位置、航向、速度或曲率中的至少一个相关联的成本,其中,确定所述成本至少部分地基于:
至少部分地基于所述位置、所述航向、所述速度或所述曲率中的至少一个与所述车辆或目标车道的当前位置、当前航向、当前速度或当前曲率的偏差,来确定访问成本;
确定所述位置与静态对象的接近度、所述位置与所述预测位置的接近度、或者所述概率;或者
确定所述位置、所述航向、所述速度或所述曲率与路线或路径参考的偏差。
15.根据权利要求9至14中任一项所述的非暂时性计算机可读介质,其中,确定与所述第一节点的所述子集中的所述节点相关联的成本还包括至少部分地基于以下各项中的至少一项来确定权重:
所述第一节点与所述第一节点的所述子集中的第二节点的相似性;
所述第一节点的横向位置与所述第一节点的所述子集中的一个或多个其他节点的横向位置之间的差;或者
沿着与所述第一节点相关联的路线的距离。
至少部分地基于所述第一预测来确定第一热图。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/872,284 US11485384B2 (en) | 2020-05-11 | 2020-05-11 | Unstructured vehicle path planner |
US16/872,284 | 2020-05-11 | ||
PCT/US2021/031811 WO2021231452A1 (en) | 2020-05-11 | 2021-05-11 | Unstructured vehicle path planner |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115551758A true CN115551758A (zh) | 2022-12-30 |
Family
ID=76270066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180034069.4A Pending CN115551758A (zh) | 2020-05-11 | 2021-05-11 | 非结构化车辆路径规划器 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11485384B2 (zh) |
EP (1) | EP4149814A1 (zh) |
JP (1) | JP2023525318A (zh) |
CN (1) | CN115551758A (zh) |
WO (1) | WO2021231452A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112019000515T5 (de) * | 2018-01-24 | 2020-10-08 | Sony Corporation | Steuervorrichtung, steuerverfahren, programm, und mobiles objekt |
US11348332B2 (en) * | 2019-09-25 | 2022-05-31 | Toyota Research Institute, Inc. | Object location analysis |
US11426871B1 (en) * | 2020-06-02 | 2022-08-30 | Amazon Technologies, Inc. | Automated robotic floor map generation |
US11550325B2 (en) * | 2020-06-10 | 2023-01-10 | Nvidia Corp. | Adversarial scenarios for safety testing of autonomous vehicles |
US20200326721A1 (en) * | 2020-06-26 | 2020-10-15 | Intel Corporation | Occupancy verification device and method |
JP2023533225A (ja) | 2020-07-01 | 2023-08-02 | メイ モビリティー,インコーポレイテッド | 自律走行車ポリシーを動的にキュレーションする方法及びシステム |
US11731654B2 (en) * | 2020-10-16 | 2023-08-22 | GM Global Technology Operations LLC | Vehicle control systems and methods |
US11780470B2 (en) * | 2020-12-14 | 2023-10-10 | Honda Motor Co., Ltd. | Lane selection |
US11708092B2 (en) * | 2020-12-14 | 2023-07-25 | Honda Motor Co., Ltd. | Lane selection |
US20220340172A1 (en) * | 2021-04-23 | 2022-10-27 | Motional Ad Llc | Planning with dynamic state a trajectory of an autonomous vehicle |
US20220388531A1 (en) * | 2021-06-08 | 2022-12-08 | Yandex Self Driving Group Llc | Method and device for operating a self-driving car |
US20230174103A1 (en) * | 2021-12-02 | 2023-06-08 | May Mobility, Inc. | Method and system for feasibility-based operation of an autonomous agent |
CN114510997B (zh) * | 2021-12-30 | 2023-05-02 | 北京掌行通信息技术有限公司 | 收费站通行模式识别方法和系统 |
CN114974309B (zh) * | 2022-07-29 | 2022-11-08 | 广州莱万科技股份有限公司 | 一种基于智能班牌的师生教学情况自动提醒方法 |
DE102022003559B3 (de) | 2022-09-27 | 2023-11-16 | Mercedes-Benz Group AG | Verfahren zur Bewertung von Trajektorien einer Trajektorienschar und Verfahren zum Betrieb eines Fahrzeugs |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9208438B2 (en) * | 2011-08-02 | 2015-12-08 | Cavium, Inc. | Duplication in decision trees |
US9227632B1 (en) * | 2014-08-29 | 2016-01-05 | GM Global Technology Operations LLC | Method of path planning for evasive steering maneuver |
-
2020
- 2020-05-11 US US16/872,284 patent/US11485384B2/en active Active
-
2021
- 2021-05-11 WO PCT/US2021/031811 patent/WO2021231452A1/en unknown
- 2021-05-11 JP JP2022568502A patent/JP2023525318A/ja active Pending
- 2021-05-11 CN CN202180034069.4A patent/CN115551758A/zh active Pending
- 2021-05-11 EP EP21730022.7A patent/EP4149814A1/en active Pending
-
2022
- 2022-10-31 US US17/977,770 patent/US20230051486A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4149814A1 (en) | 2023-03-22 |
US11485384B2 (en) | 2022-11-01 |
WO2021231452A1 (en) | 2021-11-18 |
US20210347382A1 (en) | 2021-11-11 |
US20230051486A1 (en) | 2023-02-16 |
JP2023525318A (ja) | 2023-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11485384B2 (en) | Unstructured vehicle path planner | |
US20220363256A1 (en) | Trajectory modifications based on a collision zone | |
US11351991B2 (en) | Prediction based on attributes | |
US11021148B2 (en) | Pedestrian prediction based on attributes | |
US11643073B2 (en) | Trajectory modifications based on a collision zone | |
CN114127655B (zh) | 封闭车道检测 | |
CN114901534A (zh) | 对象检测以及跟踪 | |
JP2023511755A (ja) | オブジェクト速度および/またはヨーレート検出およびトラッキング | |
US11932282B2 (en) | Vehicle trajectory control using a tree search | |
US11787438B2 (en) | Collaborative vehicle path generation | |
CN115485177A (zh) | 雷达跟踪的对象速度和/或偏航 | |
US11541909B1 (en) | Detection of object awareness and/or malleability to state change | |
WO2023114223A1 (en) | Autonomous vehicle operations related to detection of an unsafe passenger pickup/delivery condition | |
US20240101157A1 (en) | Latent variable determination by a diffusion model | |
US20240092398A1 (en) | Trajectory prediction based on a decision tree | |
US20240001959A1 (en) | Vehicle motion planner | |
US20240092350A1 (en) | Vehicle safety system | |
WO2024049640A1 (en) | Trajectory optimization in multi-agent environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |