CN115175841A - 自主车辆的行为规划 - Google Patents
自主车辆的行为规划 Download PDFInfo
- Publication number
- CN115175841A CN115175841A CN202180015379.1A CN202180015379A CN115175841A CN 115175841 A CN115175841 A CN 115175841A CN 202180015379 A CN202180015379 A CN 202180015379A CN 115175841 A CN115175841 A CN 115175841A
- Authority
- CN
- China
- Prior art keywords
- lane
- vehicle
- trajectory
- autonomous machine
- trajectories
- 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
- 238000013439 planning Methods 0.000 title claims abstract description 82
- 238000000034 method Methods 0.000 claims abstract description 101
- 238000005457 optimization Methods 0.000 claims abstract description 33
- 238000011156 evaluation Methods 0.000 claims abstract description 15
- 230000009471 action Effects 0.000 claims description 55
- 238000012545 processing Methods 0.000 claims description 47
- 239000000446 fuel Substances 0.000 abstract description 6
- 230000033001 locomotion Effects 0.000 description 64
- 230000006870 function Effects 0.000 description 59
- 230000015654 memory Effects 0.000 description 54
- 238000013528 artificial neural network Methods 0.000 description 44
- 230000006399 behavior Effects 0.000 description 40
- 230000008859 change Effects 0.000 description 29
- 238000001514 detection method Methods 0.000 description 29
- 238000004422 calculation algorithm Methods 0.000 description 22
- 238000004891 communication Methods 0.000 description 22
- 238000013527 convolutional neural network Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 21
- 238000003860 storage Methods 0.000 description 21
- 230000000670 limiting effect Effects 0.000 description 19
- 238000012549 training Methods 0.000 description 19
- 238000007726 management method Methods 0.000 description 18
- 230000000694 effects Effects 0.000 description 15
- 230000003542 behavioural effect Effects 0.000 description 13
- 238000010801 machine learning Methods 0.000 description 13
- 230000001133 acceleration Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 11
- 238000013135 deep learning Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 10
- 230000007613 environmental effect Effects 0.000 description 9
- 230000000007 visual effect Effects 0.000 description 9
- 238000013459 approach Methods 0.000 description 8
- 230000008447 perception Effects 0.000 description 8
- 230000003068 static effect Effects 0.000 description 8
- 230000006978 adaptation Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 238000007667 floating Methods 0.000 description 5
- 230000009467 reduction Effects 0.000 description 5
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000008093 supporting effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 230000001815 facial effect Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000001816 cooling Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 230000003116 impacting effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000010845 search algorithm Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000002604 ultrasonography Methods 0.000 description 2
- 101100248200 Arabidopsis thaliana RGGB gene Proteins 0.000 description 1
- 238000006424 Flood reaction Methods 0.000 description 1
- 102100035964 Gastrokine-2 Human genes 0.000 description 1
- 101001075215 Homo sapiens Gastrokine-2 Proteins 0.000 description 1
- 102100030148 Integrator complex subunit 8 Human genes 0.000 description 1
- 101710092891 Integrator complex subunit 8 Proteins 0.000 description 1
- 206010034960 Photophobia Diseases 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000007621 cluster analysis Methods 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000002485 combustion reaction Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 231100001261 hazardous Toxicity 0.000 description 1
- 230000001976 improved effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 208000013469 light sensitivity Diseases 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000001693 membrane extraction with a sorbent interface Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011897 real-time detection Methods 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000012800 visualization Methods 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
-
- 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/0011—Planning or execution of driving tasks involving control alternatives for a single driving scenario, e.g. planning several paths to avoid obstacles
-
- 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
- B60W50/0097—Predicting future conditions
-
- 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/0027—Planning or execution of driving tasks using trajectory prediction for other traffic participants
-
- 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
-
- 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/60—Intended control result
- G05D1/646—Following a predefined trajectory, e.g. a line marked on the floor or a flight path
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Transportation (AREA)
- Mechanical Engineering (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Radar, Positioning & Navigation (AREA)
- Aviation & Aerospace Engineering (AREA)
- Remote Sensing (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Traffic Control Systems (AREA)
- Control Of Driving Devices And Active Controlling Of Vehicle (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Navigation (AREA)
Abstract
本公开的实施例涉及自主车辆的行为规划。本文所述技术基于规划***内不同组件对多个假设轨迹的评估来选择自主车辆的优选轨迹。各个组件根据组件的优先级为每个轨迹提供优化分数,并且来自多个组件的分数可以形成最终的优化分数。该评分***允许同时考虑不同组件的竞争优先级(例如,舒适性、最短行驶时间、燃油经济性)。在示例中,可以选择具有最佳组合分数的轨迹用以实施。因此,可以使用评估各种因素的迭代方法在导航环境时识别自主车辆的最佳或优选轨迹。
Description
背景技术
设计一个在无人监督的情况下自主安全驾驶车辆的***非常困难。自主车辆至少应该能够在功能上等同于专心的驾驶员(该驾驶员利用感知和行动***,该***具有在复杂环境中识别和应对移动和静态障碍物的惊人能力),以避免与车辆路径上的其他物体或结构发生碰撞。因此,检测障碍物、路径、等待条件、道路或车道几何形状和/或其他环境信息的能力通常对于自动驾驶感知***至关重要。
驾驶感知***的确定可用于行为规划(例如,确定沿车辆路线的轨迹)。因此,自主车辆的行为规划是一项具有挑战性但至关重要的任务,尤其是对于复杂的城市场景。例如,为了让自主车辆了解其周围环境,以便做出安全有效的行为决策,自主车辆必须处理这些不同的环境输入以及当前车辆轨迹和路线信息,以计算车辆的持续或未来轨迹。然而,传统的行为规划***通常依赖于不考虑环境中不断变化的变量的不灵活决策。例如,传统方法可以选择行驶时间最短的路线,然后选择遵循该路线的车道规划。然而,这种僵化的规划不允许规划***根据不断变化的环境条件优化调整轨迹。例如,通过将车辆的行为与其他决定(如避免碰撞)分开来确定,对当前规划的调整可能是被动的,而不是主动的。因此,在避免碰撞的示例中,可以使用来自行为规划器的输出来确定控制决策,并且在确定可能发生碰撞时,避免碰撞功能可以生成更新的控制决策。结果,车辆的轨迹不是使用避免碰撞作为一个因素来确定的,而是被车辆的防撞功能覆盖。因此,这些传统***确定了车辆的次优行为,并且没有考虑来自车辆各种不同功能的动态输入,例如避免碰撞或车道规划。
发明内容
本公开的实施例涉及自主车辆的行为规划。公开了与自主车辆的轨迹规划相关的***和方法,其与先前的轨迹规划技术相比具有若干优点。例如,与传统技术相比,本文描述的技术允许规划***内的不同组件同时评估多个假设轨迹。这些不同的组件中的每一个——例如,对应于避免碰撞、车辆机动类型、路线规划、车道规划、让行信息等——都可以根据组件的优先级为每条轨迹提供优化分数。这样,来自多个组件的分数可以形成最终的优化分数,并且可以选择具有最佳组合分数的轨迹来实施。该评分***允许同时考虑不同组件的竞争优先级(例如,舒适性、最短行驶时间、燃油经济性、安全性等)。
与诸如上述那些传统***的进一步对比,本文所述技术通过提供可由多个***组件使用的信息来量化不遵循当前优选或选定的车道规划或路线的后果,从而实现更安全、更高效的规划。例如,虽然传统方法可能认识到,如果在接下来的五秒钟内不改变车道,可能会导致错过路线,但这些传统方法在为车辆生成潜在的未来轨迹输出时无法量化或编码这种失败。根据本公开,通过量化该失败,规划***可在确定要遵循的轨迹时生成并使用优选或最优路线。因此,本公开的行为规划***可以使用来自各种***组件的信息来确定车辆的潜在轨迹,并且可以在每次迭代或时间步更新潜在轨迹,例如,考虑到这些不同***中的每一个步骤,以反映环境变量、路线规划信息和/或车道规划信息的动态性质。
附图说明
下面结合附图详细描述针对自主车辆的行为规划的本***和方法,其中:
图1是根据本公开的一些实施例的用于自主车辆的示例性行为规划架构的图示;
图2是根据本公开的一些实施例的示例轨道规划和相应速度计算的图示;
图3是根据本公开的一些实施例的自主车辆周围的示例环境条件的图示;
图4是根据本公开的一些实施例的当根据环境条件进行调整时的示例轨道规划和相应速度计算的图示;
图5是示出根据本公开的一些实施例的为自主车辆选择轨迹的方法的流程图;
图6是示出根据本公开的一些实施例的为自主车辆选择轨迹的方法的流程图;
图7是示出根据本公开的一些实施例的为自主车辆选择轨迹的方法的流程图;
图8A是根据本公开的一些实施例的示例自主车辆的图示;
图8B是根据本公开的一些实施例的图8A的示例自主车辆的相机位置和视场的示例;
图8C是根据本公开的一些实施例的图8A的示例自主车辆的示例***架构的框图;
图8D是根据本公开的一些实施例的用于在基于云的服务器与图8A的示例自主车辆之间通信的***图;
图9是适合用于实现本公开的一些实施例的示例计算设备的框图;以及
图10是适合用于实现本公开的一些实施例的示例数据中心的框图。
具体实施方式
公开了与规划自主车辆或其他类型自主机器的轨迹相关的***和方法,诸如但不限于本文所述的那些。尽管本公开可以针对示例自主车辆800(可替代地在此被称为“车辆800”或“自我车辆800”,其示例本文针对图8A-8D进行描述)进行描述,但这不旨在是限制性的。例如,本文描述的***和方法可由非自主车辆、半自主车辆(例如,在一个或更多个高级驾驶员辅助***(ADAS)中)、机器人和机器人平台、仓库车辆、越野车辆、飞行船、船和/或其他车辆类型使用。此外,尽管本发明可以关于自主驾驶进行描述,但这并不是为了限制。例如,本文描述的***和方法可用于机器人技术(例如,机器人的行为规划)、航空***(例如,无人机或其他飞行器的行为规划)、划船***(例如,船只的行为规划)、模拟环境(例如,用于在虚拟模拟环境中测试或验证虚拟车辆的行为规划***)和/或其他技术领域,例如用于路线规划、车道规划、行为规划和/或控制决策。
本文描述的技术可以采用允许每个规划组件使用最小计算资源的架构。在一些实施例中,本文描述的轨迹规划***可以利用三个不同的规划组件,每个具有不同的规划范围。因此,可以通过向每个规划组件提供具有刚好足够详细的规划信息来跨相应规划范围完成所需任务来提高计算效率。在至少一个实施例中,三个不同的规划组件包括路线规划器、车道规划器和行为规划器。每个组件都可以产生一个结果和/或结果集,并将其传达给规划管道中的下一个组件。路线规划器可以将路线集传送给车道规划器,并且车道规划器可以将车道规划传送给行为规划器。行为规划器可以开发和评估多个轨迹。车道规划可以采用车道图的形式,其时间奖励与图节点相关。这种类型的车道规划可能不同于包括一个或更多个车道序列的传统车道规划。选择的或优化的轨迹可以从行为规划器发送到负责实施规划轨迹的运动控制器。
路线规划器可能具有覆盖大地理区域(例如,都会区、州、国家、地区)的地理信息,但细节量相对较低(例如,比用于车道规划和轨迹规划的地理信息中发现的细节更少)。路线规划器的规划范围可以是起点(例如,当前位置)和目的地点之间的整个区域。路线规划器可以使用相对较大区域的低细节地图来计算到目的地的多条路线。例如,大地理区域可能大于50平方英里、大于500平方英里、大于1000平方英里或更大。在一个方面,单个路线最初不被选为最优,而是可以根据到路线目的地的估计行驶时间或通过量化最优或优选路线的一些其他评分机制对每条路线进行评分。由于几乎无限数量的路线可能是可能存在的,因此可以使用各种方法来识别顶部多条路线。例如,可以识别根据估计的行驶时间和/或其他因素测量的五条、十条、五十条和/或其他数量的最佳路线。这些路线可以传送给车道规划器,并且车道规划器(除了其他组件,例如行为规划器)可以从多个路线中确定优选路线。
车道规划器可以基于从路线规划器接收到的一条或更多条路线生成车道规划。车道规划器可以使用第二地理地图,该第二地理地图包括比路线规划器使用的地图更多的细节。第二地理地图可以覆盖比路线规划器使用的地图更小的地理区域。例如,较小的地理区域可能小于50平方英里。在一些实施例中,车道规划可以采用带注释的车道图的形式,该车道图可以具有几英里的规划范围。车道图通常可以显示一条路线(例如道路)上自主车辆可用的车道。车道图上的注释可以指示车道图上各种位置或点的时间分数。例如,可以每10米、20米或某个其他间隔提供时间分数。时间分数可以传达使自主车辆到达车道图上特定点的总体价值。
然后,行为规划组件可以在评估各种轨迹时考虑这些分数。例如,在某些情况下,一条车道可能与任何其他可用车道一样工作。例如,在距离路线指示的出口20英里的州际高速公路上行驶的自主车辆可以使用任一车道,而不会对行驶时间产生重大影响。在这种情况下,每条车道的时间分数可能非常相似,甚至相同。另一方面,随着自主车辆接近出口,出口车道上的时间分数将越来越多地表明,与非出口车道上的时间分数相比,更倾向于在出口车道上。在出口处,出口车道与其他车道的时间分数之差可能对应于错过出口造成的时间损失。因此,如果错过出口将导致到达目的地的行驶时间增加五分钟,那么时间分数的差异可能反映了这五分钟的增加。
行为规划组件在规划轨迹时可以考虑这些不同的时间分数。行为规划器可能具有比路线规划器或车道规划器更小的规划范围。通常,行为规划器可以规划在接下来的半秒、一秒、二秒、三秒、四秒、五秒、十秒、二十秒等车辆的移动,和/或基于距离测量,例如接下来的5m、10m、50m、100m、200m、300m等车辆的移动。所覆盖的距离将根据车辆的行驶速度而变化。行为规划器可以使用在小区域内显示高度详细信息的地图。例如,小区域可能小于车道规划器或路线规划器使用的地图中的区域。例如,行为规划器使用的地图可能覆盖不到一百平方米。更高数量的细节可以包括与自主车辆相关联的传感器检测到的对象(例如,其他车辆、行人)。在一个方面,这些对象中的至少一些可能不在车道规划器可用的信息中。所选择的实际轨迹可能仅在短时间段(例如一秒)或短距离(例如五米)内控制自主车辆的运动。可以不断评估和实施新的轨迹,以适应自主车辆环境中不断变化的条件(例如,移动的车辆、移动的行人、等待条件等)。
行为规划器最初可以为自主车辆选择一个或更多个期望的动作来采取。这些动作可以基于车道规划器提供的带注释的车道图。所选择的一个或更多个动作可以基于实现安全、高效或最佳结果,该结果由注释车道图中包含的时间分数表示。可能的动作包括但不限于车道跟驰、车道变换速度调整、超车、双车道换道和换道推进。行为规划器可以生成实现期望的一个或更多个动作的多个可能的或假设的轨迹。行为规划器内的各种组件可以对假设轨迹进行评分和/或可能消除轨迹。例如,如果碰撞避免组件确定假设轨迹将或可能导致碰撞,则可以从进一步考虑中排除该假设轨迹。相比之下,舒适性模块可以基于为乘坐在自主车辆中的乘客提供舒适的乘坐,为每条轨迹分配分数。其他模块或组件可以类似地生成和分配分数,以便从具有最高或最佳分数的多个轨迹中选择所选择的或优选的轨迹。
因此,本文描述的技术可以通过使用迭代方法来识别最佳轨迹来改进当前技术。在第一次迭代中,可以使用具有最高优化分数的轨迹作为种子来评估初始多个假设轨迹,以生成用于评估的附加假设轨迹。在第二次迭代中,可以通过略微改变种子轨迹的各种参数来生成第二多个假设轨迹。然后可以评估第二多个假设轨迹,以确定其中一条轨迹是否具有比种子轨迹更高的优化分数。可以选择具有最佳优化分数的假设轨迹来实施。
参见图1,图1是根据本公开的一些实施例的示例行为规划架构100。应当理解,本文所述的这种和其他布置仅作为示例被阐述。除了所示的那些布置和元件之外或代替所示的那些布置和元件,可以使用其他布置和元件(例如,机器、接口、功能、顺序(orders)、功能分组等),并且一些元件可以完全省略。进一步,本文描述的许多元件是功能实体,其可被实现为分立或分布式组件,或结合其他组件,且以任何合适的组合和位置实现的功能实体。本文中描述为由实体执行的各个功能可由硬件、固件和/或软件执行。例如,可通过处理器执行存储在存储器中的指令来执行各个功能。
行为规划架构100可以利用不同的规划组件(例如,三个规划组件),每个规划组件具有不同的规划范围。在一个实施例中,不同的规划组件包括路线规划器110、车道规划器120和行为规划器140。每个组件可以产生结果和/或结果集,并将其传送到规划流水线(planning pipeline)中的下一个组件。路线规划器110可以将路线集(route set)传送给车道规划器120,并且车道规划器120可以将车道规划传送给行为规划器140。行为规划器140可以开发和评估多个轨迹,并且可以将选择的或优选的轨迹从行为规划器发送到负责实施规划轨迹的运动控制器180。
在实施例中,路线规划器110可以使用覆盖地理区域(例如,城镇、都会区、州、国家、地区等)的地理信息112,但细节量相对较低。路线规划器的规划范围可以是起点(例如,当前位置)和目的地点(例如,最终位置)之间的整个区域。该技术可以使用相对较大区域的较低细节地图(例如,与高清(HD)地图相比,基于GNSS的地图)来计算到目的地的多条路线。路线规划器110可以使用相对较大区域的低细节地图来计算到目的地的多条路线。例如,较大地理区域可能大于50平方英里、大于500平方英里、大于1000平方英里或更大。然而,这不旨在进行限制,并且在一些实施例中,可以使用任何细节级别的地图。在一个方面,单条路线最初不被选为最优或优选路线,而是可以根据到路线目的地的估计行驶时间或通过量化优选路线的一些其他评分机制对多条路线中的每条路线进行评分。因此,并且因为几乎无限数量的路线可能是可能存在的,所以可以使用各种方法来从多条路线中识别一些潜在路线。例如,可以识别根据估计的行驶时间和/或其他因素测量的十条最佳路线。这些路线可以传送给车道规划器120,从而向车道规划器120提供多条路线。
在一个或更多个实施例中,路线规划器110可以被提供或发出驾驶任务116。驾驶任务116可以表示为一个或更多个航路点的序列,这些航路点可以编码为大车道图130中的GPS点和/或位置(例如正好停在这个公共汽车站下车或上车)。驾驶任务116也可以以停车区结束(请求在特定停车区停车)。根据一个或更多个实施例,停车区是大车道图130的子集,该大车道图130通常包含停车区周围的环路结构,并且可选地包含停车位本身的地图知识。
路线规划器110可以被架构为模块化地与其他规划步骤分离。架构设计可以有效地支持长途路线。路线规划器110可以将得到的路线规划以及一些基本状态信息移交给车道规划器120。路线规划可以包括一条或更多条GPS轨迹,这些轨迹已经被确定为用于从当前位置到航路点或停车区的潜在近似路线。路线规划中的GPS点也可能具有预期的时间奖励(或者如果优选,时间奖励可以表示为距离目的地的预期时间)。可以使用收缩层次结构118来导出路线规划,这允许在处理的毫秒内确定最短路线,即使对于跨越整个大陆的路线也是如此。路线规划的GPS轨迹可以给车道规划器120一个近似的指导,而不是对特定车道或道路的精确坚持。路线规划器110可以提供落入彼此阈值行驶时间之内的多条路线或路线变化,并且在实施例中,每条路线可以与估计的行驶时间相关联。在一个实施例中,每个路线段都被分配了一个行驶时间,该行驶时间为车道规划器120和其他组件提供信息,这些信息可以用来计算错过出口和被迫进入替代路线的成本。在一些实施例中,行驶时间也可以由其他组件计算,例如车道规划器120,并且行驶时间可以使用距离和速度限制来计算,但也可以使用实时交通数据、施工数据、天气数据和/或类似数据来完善。
路线规划器110还可以包括状态管理组件114,以处理基本状态管理。例如,状态管理组件114可以确认当冷启动时,传感器和计算启动并运行,并且在自主车辆开始移动之前(例如,在任务控制***开始导航自主车辆之前)定位找到其位置。在此之前,路线规划器110可能处于启动状态。之后,如果自主车辆(或其行为规划器140)在已知车道图上行驶,则路线规划器110可以切换到驾驶状态。当到达驾驶任务中的停车区时,路线规划器110也可以切换到停车状态。还有特殊的召唤(SUMMON)和跛行(警告)状态。当发生意外情况并且自主车辆减速到停止或小心移动时,就会发生跛行,例如,如果定位声明自主车辆不在地图上或无法定位,则可能会启动跛行(LIMP)状态。
车道规划器120可以基于从路线规划器接收的一条或更多条路线生成车道规划。车道规划器120可以使用第二地理地图,该地图包括比路线规划器使用的地图中发现的更多的细节。第二地理地图可以覆盖比路线规划器使用的地图更小的地理区域。例如,较小的地理区域可能小于50平方英里。车道规划可以采用带注释的车道图的形式,带注释的车道图可以具有几英里的规划范围。车道图可以表示自主车辆在路线(例如,道路)上可用的车道。车道图上的注释可以指示车道图上各个位置的时间分数。例如,可以在车道图上每10米、20米或某个其他间隔提供时间分数。时间分数可以被描述为潜在未来位置的连续时间奖励。更大或更好的奖励可以与朝向路线目的地的更快路径相关联,或者在其他实施例中,较低的分数可以指示更好或更快的路径。奖励的级别可以是时间单位,例如秒。
时间分数传达了让自主车辆到达车道图上特定点的总体价值。然后,在评估各种轨迹时,行为规划器140可以考虑这些分数。例如,在某些情况下,一条车道可能与任何其他可用车道一样有效。例如,在距离路线指示的出口20英里的州际高速公路上行驶的自主车辆可以使用任一车道,而不会对行驶时间产生重大影响。在这种情况下,每条车道的时间分数可能非常相似甚至相同。另一方面,随着自主车辆接近出口,出口车道上的时间分数将越来越多地表明对在出口车道上的偏好,而不是在非出口车道上的时间分数。在出口处,出口车道与其他车道的时间分数之差可能对应于错过出口所造成的时间损失。因此,如果错过出口会导致到达目的地的行驶时间增加五分钟,那么时间分数的差异可能反映了这五分钟的增加。
车道规划器120可以包括车道进度预测器122和停车道规划器126。车道规划器120可以从路线规划器110接收路线规划和基本状态信息。车道规划的目的可以是提供关于在自主车辆附近的各条车道中的价值的信息。例如,如果自主车辆驶向一条车道与其他车道分离并离开的位置,车道规划器可以提供有关如果错过该出口可能会损失多少时间的信息。车道规划器120的输出可以表示为在与本地车道图132相关联的大车道图130上编码的预期时间奖励。这种编码可以提供比仅针对要进入哪个车道的直接命令或建议更大的灵活性,因为它允许行为规划器140权衡处于特定车道的价值与到达那里的机动难度。
车道规划器120与大车道图130一起工作,其可以对应于车道位置的轻量级表示以及在它们之间转换的预期时间。车道规划器120可以使用由路线规划器110提供的路线规划GPS轨迹作为指导,在建议路线周围切割出大车道图130的走廊(例如几百米宽)。然后,车道规划器120可以沿着建议的路线瞄准以一定距离(例如几英里)为中心的区域,并将其用作临时代理目的地。代理目的地可能具有来自路线规划的预期时间奖励,现在可以将其传播回走廊内的大车道图130中的所有节点。车道规划器120考虑车道变换以及它们不能立即成功或根本不能成功的概率。这意味着预期时间奖励可能需要概率计算。例如,每个节点可能与一组动作(例如车道保持、分叉、车道变换)相关联,并且这些动作可能会导致新的车道位置(如成功的车道变换后的不同车道,以及失败时沿着同一车道更远)。
根据一些实施例,该概率可以表示为马尔可夫决策过程(MDP),该马尔可夫决策过程从代理目的地处的给定固定值开始求解处于任何节点中的值。MDP处理一些事情诸如估计随着自主车辆越来越接近道路上的分叉而增加的及时改变车道的压力,或者进入不同的车道然后回到优选的车道的可行性。
有许多算法可用于估计MDP中的状态值(在本例中为大车道图中的节点),例如经典值迭代。为了提高效率,可以使用启发式方法来删除大车道图中的所有循环,从而将值迭代减少为动态规划的一次迭代。当有一个循环来删除在循环中离自主车辆最远的边缘时,可以使用启发式方法。这种启发式方法避免了删除作为自主车辆和目的地之间最短路径的一部分但属于循环的一部分的边缘。然而,中断循环可能不会忽略在前往目的地的途中不必要的循环所造成的概率调整。例如,如果自主车辆错过了车道变换,必须绕过四叶苜蓿形立体交叉(four clover leaves)再次尝试完全相同的车道变换,这可能会导致不必要的循环。中断循环消除了这种可能性,但这可能是一个可接受的近似值,因为使用不必要的循环可能是不可取的。该图可以是定向的,并且可以考虑到达同一目的地的多条路径。此外,还可以正确处理指向同一节点的反射边缘,例如等待停止以进行车道变换(可以解决除反射边缘之外没有依赖关系的节点)。
最初,迪杰斯特拉(Dijkstra)算法(和/或另一种最短路径算法类型)可以运行以使用任何操作查找到所有节点的距离和最短路径。然后通过单图遍历迭代地解决节点的奖励或删除循环上的边。然后在大车道图上运行迪杰斯特拉算法,以找到最短的最佳路径(假设车道变换在可能的情况下成功)。这会按到达它们的最佳时间对车道规划范围内的节点进行排序。此外,可以对边进行排序,例如按到达相应边末端的时间,因此这些边的排序可以与它们指向的节点相同。
对于每个节点,后向边用于跟踪它依赖哪些节点来确定其预期时间(它指向其操作和失败操作的所有节点)。类似地,可以跟踪指向未安置节点的边。
可以找到并确定所有具有零依赖的节点。随着节点被确定,可以使用后向边来减少其他节点的依赖计数。如果这些更新发现零依赖的新节点,则新节点也可能被放入队列中。此外,所有已确定的节点和指向已确定节点的边都可以从先前计算的节点和边序列中删除。
如果没有具有零依赖的节点,则可以根据迪杰斯特拉算法(和/或另一种最短路径算法类型)的结果删除最远的未确定边。然后可以更新节点之间的依赖关系。在一些实施例中,可以产生具有零依赖的一个或更多个节点,这意味着不存在与其他节点的连接。这代表了一个死胡同,与这些节点相关联的时间可以确定为相当于任务失败的时间。当所有节点都已确定时,该过程停止。该算法的复杂度本质上是迪杰斯特拉算法的复杂度加上单图遍历。
车道规划器120使用从地图数据导出的大车道图130,该图也链接到车道的本地车道图132。在一个或更多个实施例中,车道规划器120可以导出整个大车道图130的值。然而,行为规划器140可以(仅或主要)使用本地车道图132上靠近自主车辆的选择值。车道进度预测器122可以基于实时感知生成车道进度估计,例如车道速度和拥堵程度以及不同车道中最近车辆的速度。进度预测用于更改通用的预期遍历时间。预期的遍历时间允许车道规划器决定将车道变换为当前更快的车道是有价值的。
当路线规划器110变换状态(例如,作为非限制性示例,停车、召唤或跛行)时,车道规划器120可以改变功能。对于停车,车道规划器120可以使用停车道规划器126来生成车道规划。停车道规划器126可以使用停车场的大车道图循环来激励行为规划器140探索最近最少探索的停车场部分。停车可以有任意数量的阶段。阶段的非限制性示例包括停车巡行(Park prowling)和机动进入停车位。停车巡行类似于在市区的车道图上行驶,不同之处在于其目的是循环行驶直到找到一个空位。车道规划器可以通过设置这些值来实现这一点,从而实现围绕环路的良好驾驶模式。一旦建立到空车位的视线,停车操纵由行为规划器140启动。
同样,召唤也可以有任意数量的阶段。一旦自主车辆在已知的车道图上,就可以执行到目的地的车道规划,就像在正常驾驶状态下一样。但是,如果自主车辆尚未在已知车道图上,例如在距离映射路径稍远的停车位上,或者没有标准方式进入映射路径,则可以使用停车道规划器126找到一种方式,以到达自主车辆从何处开始的车道图上最近的位姿之一。如果根本没有地图而只有一个到召唤者的大致方向,则该大致方向简单地传递给行为规划器140。如果没有或没有足够的详细地图信息可用,跛行模式也可以类似地工作。
行为规划器140可以考虑一个或更多个动作,并继续进行一个或更多个假设生成的迭代以及对这些动作的更详细实施的评估。更详细的实施可以表示为精确的运动规划(未来几秒钟的位姿轨迹),并由运动规划器172评估。行为规划器140包括动作发生器142、纵向预限制组件150、假设生成160和行动规划选择器170。
行为规划器140可以具有比路线规划器或车道规划器更小的规划范围。通常,行为规划器140可以规划车辆在接下来的几秒内的移动。所覆盖的距离将根据车辆的行驶速度而变化。例如,行为规划器可以具有50m、100m、200m、300m等的规划范围。行为规划器140可以使用在小区域上显示高细节水平的地图。例如,小区域可能小于车道规划器120或路线规划器110使用的地图中的区域。例如,行为规划器使用的地图可能覆盖不到一百平方米。更高数量的细节可以包括与自主车辆相关联的传感器检测到的对象(例如,其他车辆、行人)。在一个方面,这些对象中的至少一些可能不在车道规划器120可用的信息中。所选择的实际轨迹可以仅在短时间(例如一秒)内支配自主车辆的运动。可以不断评估和实施新的轨迹,以适应自主车辆环境中不断变化的条件(例如,移动的车辆、移动的行人)。
行为规划器140评估的每个动作的计算流程可以由动作发生器142启动。动作发生器142最初可以选择一个或更多个期望的动作,以供自主车辆采取。并且这些动作可以基于由车道规划器120提供的带注释的车道图。所选择的一个或更多个动作可以基于实现由包括在带注释的车道图中的时间分数指示的最佳结果。可能的动作包括但不限于车道跟驰、车道变换速度适应、超车、车道变换推进、停路肩、停车巡行、停车结束阶段、召唤和跛行。与先前讨论的组件一样,动作发生器142可以选择或评分多个动作。在一些实施例中,动作可以表示为标称轨道和/或每个动作可以与多个标称轨道相关联。
在第一阶段,可通过标称横向轨道或车道启动一个或更多个动作。世界模型164可以以分解格式提供所有规则的明确列表,例如,包括自主车辆当前所在车道的所有分叉,以及自主车辆可以考虑改变成一个或多个连续的车道变换。自主车辆当前所在的每条车道都提供车道跟驰动作。自主车辆可以合理地变道的每条车道都提供了车道变换动作。类似地,自主车辆可以考虑超车动作,目的是出去并回到本车道,同时短暂地处于另一个车道,这甚至可以用于迎面而来的交通。自主车辆也可以考虑停在路肩上,这是世界模型中的特殊车道。自主车辆也可以考虑掉头。这些动作中的每一个都可能带有来自世界模型的标称轨道甚至车道边缘,并且通常还连接到地图中的车道,这些车道提供有关实时感知范围之外的路径的信息。
在停车的情况下,通过停车道规划器126提供的激励措施,停车巡行状态建立在与车道保持相同的动作实施基础上。在停车巡行时,行为规划器正在监控视线内是否存在开放式停车位。这可以通过实时感知(例如,使用检测停车位的神经网络)或映射停车位和障碍物感知的组合,或两者冗余地提供。该过程可以在检测到开放式停车位时提供目标四边形——这可能与标称轨道略有不同——停车规划器144可以将其转换为运动规划。停车规划器144可以搜索当前位姿和目标位姿之间没有障碍物干扰的位姿轨迹。在一个或更多个实施例中,可以使用来自A*/D*系列算法的搜索算法来搜索位姿的轨迹。可以使用搜索算法来确定空间实际上在运动学上是否可行,如果是,则一个或更多个姿势序列到达那里。在一个或更多个实施例中,可以利用当前障碍物环境(例如,在特定时间点)进行该搜索。这意味着尚未充分考虑运动效果,例如,即将驶过自主车辆的骑自行车的人位于自主车辆和空间之间。出于这个原因,停车规划器144的规划被认为是其余过程的标称轨道,它将考虑这些运动效果,以确保自主车辆的动作是安全的(请注意,其他参与者当然可以快速移动即使自主车辆正在缓慢行驶)。尽管如此,停车规划器144还是很强大的,因为它可能会发现诸如三点转弯进入空间的东西,否则这些东西是不会被发现的。
召唤组件146可以以与停车规划器144类似的方式工作,但是相反。停车规划器144用于找到使自主车辆进入车道图的附近部分的运动规划。一旦进入车道图,自主车辆就会像往常一样使用车道跟驰动作。如果没有地图,或者如果自主车辆处于跛行模式,则自主车辆可能对行驶的罗盘方向只有大致的了解。在这种情况下,自主车辆可以简单地使用该罗盘方向来形成一个标称轨道,以指导其余的过程。然后,每个动作的计算流程类似地进行。在动作发生器142所遵循的过程结束时,每个动作可以与来自地图的标称轨道和/或车道边缘和车道相关联。
纵向预限制组件150可以接收对应于由动作发生器142产生动作的标称轨道。这些标称轨道中的每一条都可以由纵向预限制组件150进行评估。纵向预限制组件150在每条车道(或每标称轨道)的基础上考虑基本纵向约束。不同的组件可以考虑不同的约束。纵向预限制组件150的组件包括曲线速度自适应152、速度调节154、距离保持156、安全制动158和/或让行规划器159(yield planner)。纵向预限制组件150的输出可以包括限制与作为输入的每个标称轨道/车道相关的速度的加速度约束。因此,纵向预限制组件150可以增加具有加速度限制、速度限制或距离限制的车道/轨道。
如果以特定速度跟随给定车道/轨道的曲率,曲线速度自适应152可以通过考虑在未来可能出现的向心力来执行。当其在范围内的曲率对于此任务足够精确时,这目前发生在相关的地图车道上,但也可能发生在实时感知车道上。曲线速度自适应152的结果可以是基于向心力的可接受范围计算的加速度约束。向心力约束可以基于乘客舒适度、安全性和/或其他因素。
使用这条车道时,速度调节154可以执行遵守速度限制标准。距离保持156和安全制动158可以在长距离高速上执行一些与车辆和其他竞争者有关的纵向控制任务。距离保持156组件可以生成加速约束,该加速约束强制另一个移动物体和自主车辆之间的距离。安全制动158组件可以生成类似的约束,以确保通过制动停止自主车辆的能力,从而避免在不同建模条件下可能发生的潜在碰撞。大多数与避障相关的纵向控制可以由运动规划器172处理。但是对于与高速相关的长距离,感知粒度(诸如前车在车道中的确切横向位置和范围)可能不足以保证在前车周围横向进行运动规划。在与全速迎面而来的交通相关的最高距离和速度下,或全速遇到停止车辆或危险时,决策的粒度可能是减速或不减速,因为自主车辆的当前车道似乎有些慢。自主车辆当前车道旁边的慢行车道或其他情况,逻辑类似,促进自主车辆减速。当距离较远时,可使用路径中障碍物分配(OIPA)对障碍物采取行动。当障碍物靠近时,运动规划器172可以选择诸如横向轻推而不是制动的微调。这种架构还允许使用已经调整的纵向限制器来进行高速公路行驶而无需显着改变。
从某种意义上说,让行规划器159可以在每个车道的基础上(或车道到车道的基础上)处理让行,一些让行无需准确考虑自主车辆在车道中的横向位置即可知道需要让行。这包括在其他人拥有优先通行权的情况下处理停止或让行线。这种条件的存在通过等待条件在世界模型164中提供。等待条件编码为进出线之间的一段自我路径部分、具有类似竞争部分的竞争者路径,以及一种可被视为通行权状态的等待状态。世界模型164还可以提供竞争者的路径关联,通过该路径关联,自主车辆的行为和控制模块可以推断其他竞争者拥有先行权(或者自主车辆拥有)。等待条件可包括上述条件的子集,诸如用于测量入口匝道的交通信号灯,其没有与竞争者路径的直接链接,只有一条具有相关等待状态的停车线。通过等待条件实现的关注点的架构分离是等待条件对期望、规则或约定进行编码。然后,行为规划器140可有责任监控和实施让行,并确定实际运动学可行性或任何危险。让行规划器159考虑在具有入口处停车(STOP_AT_ENTRY)等待状态的线处停止所需的减速(诸如由红灯引起)。让行规划器159也可以处理瞬时带路(TAKE_WAY_TRANSIENT)(诸如由黄灯引起),并且可以计算在线路处或在一定的超限范围之前停止所需的减速水平。这使得让行规划器149可以在两种情况之间做出决定,例如,一种情况,即在几乎越过线时灯变为黄色,因此在适合停车的情况下可能不需要停车。
让行规划器159还处理让出竞争(YIELD_CONTENTION)等待状态,这可以指示自主车辆预期让出竞争路径。这种情况包括人行横道、竞争者拥有通行权的停车标志、让行标志、无保护左转的迎面车辆、欧洲的右手优先,以及更多的情况。
这些情况都有一个共同点,即需要考虑相关竞争者路径上的竞争者,并确保自主车辆不会阻碍他们,并确保他们清楚自主车辆正在让行。为此,让行规划器159可以执行运动规划的简化(因此计算效率高)形式。在一个或更多个实施例中,让行规划器使用简化模型,其中自主车辆和竞争参与者沿着它们各自的车道移动,并且需要它们各自车道的全部范围加上一些通过余量。让行规划器159可以针对自主车辆和竞争者的特定纵向剖面对,计算如果未来推出(更多关于这在下面关于运动规划的部分),所声明的集合是否会相交。简而言之,声明的集合是在任何参与者面前,通过其停车距离“声明”的点的集合。考虑声明的集合相交可能比简单的物理实体的相交更好和更保守,因为即使没有物理相交,声明的集合交叉点也意味着可能正在发生难以控制的危险情况,并且至少会使其他人生气或质疑让行意图。导致声明的集合交叉点(或实际物理交叉点)的加速规划可以作为纵向约束输出。
在自主车辆有让行义务的情况下,让行规划器159可以分析纵向前进的选择是否会干扰竞争者的任何合理选择。也就是说,无论竞争者是减速还是加速,或者选择左转路径还是直行等,自主车辆都将保持良好的清晰。
让行规划器159也可以结合考虑等待条件,也称为等待组。例如,在试图只清除第一个交叉口之前,它可能必须确保可以清除左右两侧的交通交叉口,因为没有安全的中间位置来等待来自右侧的交叉***通。另一个这样的例子是在进行无保护左转时左转后的人行横道。在这种情况下,让行规划器159可能必须确保它能够同时清除迎面而来的车辆和行人过路处。在世界模型中,这是通过将这些等待条件分组到等待组来表示的。
让行规划器159也可以处理案例让行输入(YIELD_ENTRY)和让行竞争(YIELD_CONTENTION)之间的区别。前者希望自主车辆停留在入口线,直到自主车辆已准备好通过竞争而毫不拖延地通过。在后一种情况下,自主车辆可以向前一英寸,并且只受到实际竞争本身的限制,例如,允许在等待迎面而来的车辆打开间隙的同时向前驶入交叉口。在这种情况下,约束可以排除所有与缓慢前进不一致的速度。
让行规划器159也可以处理多路停止,由首先停止具有优先权(STOPPED_FIRST_HAS_PRECEDENCE)等待状态发出信号。在这种情况下(典型的例子是美国的四向停车),通行权来自谁先面向十字路口停车。为此,让行规划器159依赖于分析谁先停下来面对十字路口和短期预测的组合。确定优先级后,适用与让行、入场让行或采取方式相同的分析。如果自主车辆和竞争者都停在十字路口,则短期预测使用历史来预测竞争者的未来运动。在另一个竞争者在自主车辆之前停止的情况下,预测应该变成它现在会移动(或者某个竞争者会移动)。如果在所有竞争者中自主车辆首先停止,那么所有竞争者的预测应该是他们保持原地不动。这很强大,因为它允许策略变得几乎像“如果没有其他人去,就去,否则就等”一样简单。请注意,这取决于相关案例是否有足够数量的训练数据。这种形式的短期预测也可以用于运动规划,并有助于预测在非结构化情况下是否让行。
对于等待状态协商(NEGOTIATE),让行规划器159将有关可见竞争者的责任委托给运动规划器172。在这种情况下,可能对任何一方的通行权没有明确的期望,而是期望根据运动学上可行、安全和高效的情况来协商情况。运动规划器172将做运动学上可行和安全的给定预测并避免声明的集合相交,但不会超出此范围。这将产生一种咄咄逼人的自信行为,有效地采取尽可能多的方式。然而,让行规划器159确实考虑了竞争者路径上的不可见参与者。这就需要对可见性进行简要讨论。
世界模型164以三种形式表示可见性:作为径向距离图中的未知区域、作为多边形遮挡边界,以及作为未知的路径占用。在感知和绘图***的完整实施中,这些可能都是一致的,被遮挡的区域以区域的形式出现,其边界也会持续影响路径占用。遮挡边界可以由端到端训练的神经网络产生,路径占用也是如此。然而,这在某些实施中可能不可用,因此规划可能会使用路径占用。替代实施例可以使用遮挡边界来生成运动规划器172的扩展声明集。当让行规划器159找到不具有带路(TAKE_WAY)等待状态并且具有未知占用顶点(或短距离)的竞争者路径时,它假定竞争者具有这些顶点的最坏情况速度(从最低到最高的整个间隔),并使用这些虚拟竞争者执行让行规划。这提供了处理来自已知竞争者路径的所有被遮挡竞争者的架构能力。
竞争者路径可以从地图上或通过实时检测获知,或两者兼而有之。对此的一种实现可能是基于映射的竞争者路径,通过从期望竞争者进入传感器的路径上方投影顶点来分析可见性,并将距离与深度图进行比较。这原则上可以处理来自静态和动态遮挡物的遮挡。
来自纵向预限制组件150的各个组件的组合输出可以是多个纵向限制标称轨道。动作发生器142生成的轨道可以与多个不同的加速规划组合,以生成大量沿轨道的轨迹。多个纵向限制标称轨道包括满足由纵向预限制组件150计算的各种约束的轨道。多个纵向限制的标称轨道可传递给假设生成组件160以进一步细化。
运动规划通过假设生成和评估进行(运动规划器172)。该想法是运动规划器172非常彻底地评估给定轨迹(自主车辆未来的完整规划位姿)的质量,并且假设生成160提供有希望或合理的轨迹,因为所有轨迹的空间太大而无法搜索。
根据实施例,高度可变性可用于运动规划器172的假设生成。在一些实施例中,中心组件是路径扇形发生器162,其从纵向受限的标称轨道开始,并在其周围生成横向变化的选择,同时保持其曲率。这是为车道跟驰的意图量身定制的,同时轻推绕过静态和动态障碍物。可以将纵向范围内的纵向变化添加到每个横向选择中,从而为运动规划器生成二维轨迹网格。这用于标准车道跟驰情况,以及在此基础上进行的诸如(例如但不限于)停车巡行、停车结束游戏、召唤和跛行等动作。
示例轨迹如图2所示。标称轨道可以对应于自主车辆所在的右侧车道。可以看出,一系列锥体224呈现出要避开的障碍。路径扇形发生器162可以产生与标称轨道相关的11种不同的横向变化选择。该变化选择包括路径202、路径204、路径206、路径208、路径210、路径212、路径214、路径216、路径218、路径220和路径222。每条路径可以与一个速度剖面相关联,如剖面图230所示。可以看到,路径218、220和222在短距离内完全停止。相反,路径202将允许维持更高的速度。
车道变换可以分三个阶段执行,表示为:1)跟驰当前车道希望在另一条车道上出现间隙;2)跟驰当前车道同时进行速度自适应以主动尝试适应间隙,最后横向推进,以尝试使用间隙或尝试创建间隙。请注意,在上一轮结果的基础上,可以使用通过假设生成和评估进行的多次迭代。对于车道变换,可以最初执行常规车道跟驰的一次迭代(路径扇形发生器和运动规划器评估)。对于车道变换的第一阶段,可能只需要这些。对于速度适应阶段,确定或选择最佳横向选择,并以此为基础。这可以通过使用最佳横向选择和少量附加选择(例如最佳选择的左侧和右侧)来运行搜索最佳速度自适应来完成。这可以通过生成纵向S曲线的二维族来完成,例如通过S曲线发生器163,由加速度量和切换时间扫描。然后,这些假设通过运动规划器172进行评估。在推进阶段,最好的结果可用于探索横向推进的量。
图3和图4说明了在受附近车辆约束的车道变换的背景下的假设生成。图3包括前视图302,该前视图示出了在自主车辆正前方左车道上的车辆。驾驶员侧后向视图304示出了自主车辆正后方左车道上的车辆。乘客侧后向视图308显示了自主车辆已经通过的锥体。以及后视图310还显示了自主车辆正后方左车道上的车辆。这些视图可用于确定附近车辆的位置,进而可用于搜索与车道变换进入左车道中尾随车辆和前导车辆之间的空间一致的假设轨迹。
图4示出了由路径扇形发生器162生成的标称轨道内的可能路径。这些路径包括路径402、路径404、路径406、路径408、路径410、路径412、路径414、路径416、路径418、路径420和路径422。速度剖面图430显示了一些路径可用的速度。
假设生成160是灵活的,并且可以使用其他结构较少的方法,例如动态编程来搜索自由形式的路径,由动态编程组件166执行,或线性二次调节器(LQR)/障碍物感知MPC控制168执行,该MPC控制168采用初始路径(例如标称轨道)并迭代调整它以远离障碍物。这可以在忽略运动的静态场景中完成,相信运动规划器随后会看到并避免危险的运动引起的情况,或者在搜索中直接使用声称集。
规划评估组件171可以评估每个假设轨迹,以识别最高质量或最佳轨迹。在这里,质量包括许多考虑因素,但可以通过优化分数来量化。在计算分数时,可以对不同的质量有不同的权重。从高层次来看,理想驾驶可以追溯到五类术语。目标可能包括但不限于最大限度地提高舒适度和取得进步(以最少的诸如时间、金钱、燃料和磨损等资源消耗到达目的地)。另一个目标可能是最大限度地提高碰撞安全性(障碍物),在其他条件相同的情况下跟驰车道(路径),并在遵循适用规则和惯例(等待条件)的同时运行。其中一些优选以有形的方式与运动规划相关联。可以直接从运动规划中评估进度和平滑度。在其他方面,可能很难直接建立联系。例如,保持距离的一个好策略可能是保持靠近,以避免来自尚未出现在附近的车辆的切入,而这在分析该场景实例中的障碍物时无法直接识别。但是,自主车辆周围障碍物的直接运动学约束可以通过短期预测进行评估。这将在下面进一步讨论。
一方面,优化分数被标准化为时间。潜在未来位置的连续时间奖励可以直接用于分数并作为起点,而对分数有贡献的其他组件可以增加时间作为惩罚。例如,预测的碰撞将增加100小时,这可能代表大幅调整或偏移(例如,惩罚)并导致无法选择此轨迹。较小但仍不理想的条件可能会导致较小的调整。可以根据路线距离或预计行驶时间对调整进行缩放或标准化。这样,由于路线的不良特征导致的调整将在较长的路线上增加更多的时间,而在较短路线上增加较少的时间。可以通过将调整计算为到达目的地时间的百分比来进行标准化。例如,路线上的某些条件可能会导致到达目的地的预计剩余时间调整2%。
运动规划器172还具有优选保持靠近标称轨道或在所考虑的车道边缘之间的条款。这些优选可用于计算优化分数。当车道跟驰时,即使车道边缘不是物理障碍物,也可强烈优选不延伸超过车道线的边缘。但是,如果延伸超过车道线的边缘是避免碰撞的唯一可行方法,那可能会更可取。然而,这与进行有规划的受控车道变换不同。特别是,因为在有规划的受控车道变换中,有时间启动指示灯信号,并给其他人时间来注意信号。为此,运动规划器172以不同的方式考虑车道跟驰和车道变换环境下的轨迹,即使它们可能是相同的轨迹。轨迹的优化分数可以随着跟驰车道中心越近而增加。当轨迹穿过车道边界时,优化分数可能会降低。分数降低的量可能取决于车道交叉口的环境。例如,与穿过实线或双实线相比,穿过虚线的惩罚可能更小。穿过迎面而来的车辆可能是一个非常大的惩罚。
至少一些等待条件可以由让行规划器159处理,尽管运动规划器172也可以包括通过向其他参与者让行要求而获知的一些条款。运动规划器172还可以包括优选不并排共享车道或避免与其他车道中的竞争者并排的条款。这有助于在推进竞争激烈的慢速并道时适应车道分割摩托车或并排共享车道等行为,而不是启动这些条件。同样,允许通过停放的车辆或处于某人的盲点,但如果可能的话,希望这些条件是暂时的。
运动规划的核心可能包括针对障碍竞争者分析运动规划。该分析可以包括注意声明集之间的交集。根据所公开的实施例的运动规划不考虑现在或将来是否存在物理体之间的碰撞,而是考虑声明集之间是否存在交集。这是一种处理如何将静态运动规划升级到以不允许接近瞬时停止的速度移动竞争者的环境的方法。声明集是在参与者试图安全停车时追踪并与道路横向对齐时将追踪的时空形状。参与者实际上“声明”了该声明集,因为它需要它来维持碰撞安全。其想法是,即使物体不相交,在保持某种形式的受控安全性的同时,也很难允许声明集有交集。相反,如果声明集相互尊重,参与者可以留在其中。如果他们这样做了,声明集在时空中播放并且不会扩展。这允许将静态运动规划问题升级为具有运动的问题。声明集可以立即停止,尽管移动的参与者不能。这种方法的另一个好处是它不依赖于训练数据或在接近或实际碰撞情况下的预测,这种情况很少见或难以获得。它还确保了碰撞安全,而不仅仅是在不发生物理碰撞的情况下逃离。
在一个或更多个实施例中,安全力场184方法可以在自主车辆的行为规划器140和控制***内运行,并且不被任何其他功能暂停。它反应性地阻止不允许的瞬时控制并将其更改为允许的控制。但设计不是在正常操作中触发。运动规划器172以更主动的方式处理类似的基本约束。它本质上是在问一个问题:“如果我以这种方式进入未来,并且竞争者在此条件下按照预期移动,那么约束会被触发吗?”然后,可以优选在未来不太可能触发约束的运动规划,或者可以优选在未来稍后触发它们的运动规划。因此,自主车辆可以更快地开始减速或横向调整,从而使驾驶更平稳、更安全。请注意,基本约束允许自我车辆因此运行非常自信。只要预测表明自主车辆不会进入危险情况,并且让行规划器159没有发生预先限制,运动规划器172就可以产生自信的行为。
根据实施例,运动规划器172可以使用CUDA实现来评估许多未来声明集的交集。CUDA是由NVIDIA公司创建的并行计算平台和应用程序编程接口模型。它允许软件开发人员和软件工程师使用支持CUDA的图形处理单元进行通用处理。此CUDA实现并行考虑许多轨迹选择,通常是轨迹的二维轨迹族(例如10x10网格),其在横向路径和纵向速度上变化。然后,运动规划器172针对那些未来轨迹中的每一条和每个时间步长检查预测的参与者状态是否导致相对于自主车辆的声明集的交集。这通过比时空声明集的交集稍微保守的约束来提高效率。相反,其他参与者应该沿着自主车辆的路径保持纵向清晰(这就像一个快速检查,当“从侧面”看时,声明集不相交,只看一个保持纵向和时间方向的投影),或者从投射出时间方向的“俯视图”上看时,声明集是分开的。在投射时间时,使用所有参与者的声明集的近似值(2D声明集)。然后在这些2D声明集的多边形表示上执行碰撞检查。请注意,静态障碍物可以直接用作2D声明集。上述过程意味着在针对许多场景配置的多边形表示之间并行执行碰撞检查。纵向预限制可在每个动作的基础上可供运动规划器172使用,并且可以在运动规划器172评估之前使用,以改变假设生成,并且在评估之后使用,以基本上阻止或更倾向于避免更快的轨迹。
最后安全到达(LSA)规划器174与运动规划器172配合使用。LSA规划器174约束源于比SFF184更保守的假设,该假设可应用于没有理由相信其保持警惕或有理由相信其行为可能不规律的行人。它是通过假设竞争者(行人)可以向任何方向加速并且在自主车辆真正占据其路径之前不会开始减速而得出的。这导致类似于SFF184中的声明集交集的约束,该约束既被立即应用,又被用作预测未来超过核心约束的规划器(LSA规划器174)的约束。如果使用与核心约束相同的预测,这是相当保守的,但对于行人来说是一个安全的起点,那么这相当于检查当前或未来的声明集均未在自主车辆尚未声明的LSA时间之后声明的点。这可以通过检查每个声明集的最远尖端,加上每个到达当前停止距离来有效地完成。这与针对相同轨迹集的运动规划器评估并行运行,并且可能仅适用于行人。
短期预测组件161可以使用分析方法和数据驱动方法来生成障碍物的预测位置。分析方法采用世界模型164给出的障碍物围栏,并预测它们将沿着给定的速度矢量继续前进,并逐渐调整回车道结构(请注意,每个竞争者可以有多个车道选择,例如左转、右转、掉头或直行)。分析预测的优势在于,低概率(但非零概率)可以被编码,并与已知相关但在训练数据中可能罕见的事物相关联,例如切入或极其困难的制动。
数据驱动的方法使用感知场景的历史来预测竞争者将做什么,从未来被称为训练数据的片段中训练出来。真实数据可能对这种形式的训练特别有用。根据实施例,这种类型的训练可以利用自动***的输出来完成,因此可以受益于大量数据,而无需手动产生地面真实。
规划选择器175基于规划评估组件171提供的评级或评分来选择规划。在一个例子中,选择具有最高质量分数的轨迹。规划选择器175还可以提供纵向调节176和横向调节178。这两种方法都对选定的轨迹提供了轻微的平滑。
所选规划可由SFF184、LSA186、车道保持辅助(LKA)188和(自动紧急制动)AEB190评估。运动规划器172或其他组件在评估轨迹或至少遵守这些组件施加的约束时可能已经考虑了来自这些组件的输入。例如,安全制动158可以产生旨在避免自动紧急制动的约束。
本文描述的技术可以通过使用迭代方法来识别最佳轨迹来改进当前技术。在第一次迭代中,可以使用具有最高优化分数的轨迹作为种子来评估初始的多个假设轨迹,以生成用于评估的附加假设轨迹。在第二次迭代中,可以通过略微改变种子轨迹的各种参数来生成第二多个假设轨迹。例如,种子轨迹可以传送到路径扇形发生器162并用作输入,而不是标称轨道。然后,路径扇形发生器可以生成第二多个轨迹,这些轨迹具有较小的横向变化(比在标称轨道上的第一次迭代中使用的横向凸起更小)和较小的纵向变化。然后可以评估第二多个假设轨迹以确定这些轨迹之一是否具有比种子轨迹更高的优化分数。可以选择具有最佳优化分数的假设轨迹来实施。
模型预测控制器(MPC)180采用所选轨迹并使用更精确的车辆模型来选择瞬时横向和纵向加速度控制195。MPC控制可以通过基于控制序列和模型计算未来的轨迹来工作,并使用非线性优化器迭代调整控制序列以优化成本函数。在这种情况下,成本函数可以设计为在平滑度和遵循所要求的轨迹之间进行权衡(尽管由于该阶段不了解障碍物,因此可以将其设置为忠实地遵循轨迹,并且运动规划阶段应确保轨迹的平滑度)。SFF184和其他组件也可用于门控不可接受的加速度选择。
现在参考图5-7,本文描述的方法500、600和700的每个框包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,可以通过处理器执行存储在存储器中的指令来执行各种功能。方法也可以体现为存储在计算机存储介质上的计算机可用指令。方法可以由独立运行的应用程序、服务或主机服务(独立运行的或与另一主机服务组合)或另一产品的插件提供,仅举几例。此外,作为示例,关于图1的行为规划***100描述了方法500、600和700。然而,这些方法可以附加地或替代地由任何一个***或***的任何组合执行,包括但不限于本文描述的那些。
图5示出了根据本公开的一些实施例的用于为自主车辆选择轨迹的方法500的流程图。在框502处,方法500包括生成车道图,车道图包括用于自主机器的潜在未来位置的第一系列时间奖励。在框504处,方法500包括生成多个可能轨迹,多个可能轨迹使自主机器能够完成自主机器动作。在框506处,方法500包括使用第一系列时间奖励作为输入,为可能轨迹生成优化度量。在框508处,方法500包括使用优化度量选择用于实施的轨迹。在框510处,方法500包括使用自主机器实施轨迹。
现在参考图6,图6示出了根据本公开的一些实施例的用于为自主车辆选择轨迹的方法600的流程图。在框602处,方法600包括生成场景预测,该场景预测包括由对应于自主机器的一个或更多个传感器检测到的对象的预测未来对象位置;
在框602处,方法600包括生成用于自主机器动作的多个可能轨迹,多个可能轨迹在对应于所述自主机器动作的标称横向轨道内具有多个纵向条件和横向条件。在框604处,方法600包括使用场景预测和与自主机器的多个潜在未来位置相对应的第一系列时间奖励来评估多个可能轨迹,第一系列时间奖励以生成用于多个可能轨迹的优化度量。在框606处,方法600包括使用优化度量来选择起始参数集的轨迹,起始参数集用于生成用于评估的附加轨迹。在框608处,方法600包括使用优化度量从附加轨迹中选择单个轨迹。在框610处,方法600包括实施自主机器的单个轨迹。
参考图7,图7示出了根据本公开的一些实施例的用于为自主车辆选择轨迹的方法700的流程图。在框702处,方法700包括生成用于自主机器动作的多个可能轨迹,该多个可能轨迹具有多个纵向条件和多个横向条件。在框704处,方法700包括使用场景预测来评估多个可能轨迹中的轨迹,以生成用于轨迹的优化度量。在框706处,方法700包括使用优化度量从多个可能轨迹中选择单个轨迹。在框702处,方法700包括实施用于自主机器的单个轨迹,其中多个纵向条件至少基于场景预测,以及其中多个横向条件至少基于与自动机器的行驶方向相对应的标称轨道。
示例自主车辆
图8A是根据本公开的一些实施例的示例自主车辆800的图示。自主车辆800(可替代地,在本文称为“车辆800”)可以包括但不限于,客运车辆,如小汽车、卡车、公共汽车、第一响应车辆、摆渡车、电动或机动自行车、摩托车、消防车、警用车辆,救护车、船、施工车辆、水下船只、无人机和/或另一类型的车辆(例如,无人驾驶的和/或容纳一个或更多个乘客的车辆)。自主车辆通常按照美国运输部的一个部门——国家公路交通安全管理局(NHTSA)以及汽车工程师协会(SAE)“TaxonomyandDefinitionsforTermsRelatedtoDrivingAutomationSystemsforOn-RoadMotorVehicles”(2018年6月15日发布的标准No.J3016-201806,2016年9月30日发布的标准No.J3016-201609,以及该标准的先前和未来的版本)定义的自动化级别进行描述。车辆800可能够实现符合自主驾驶级别的3级-5级中的一个或更多个的功能。例如,取决于实施例,车辆800可能够实现条件自动化(3级)、高自动化(4级)和/或全自动化(5级)。
车辆800可以包括诸如底盘、车身、车轮(例如2个、4个、6个、8个、18个等)、轮胎、车轴之类的部件以及车辆的其他部件。车辆800可以包括推进***850,例如内燃机、混合动力发电厂、全电动发动机和/或另一种推进***类型。推进***850可以连接到可以包括变速器的车辆800的传动系以便实现车辆800的推进。可以响应于接收到来自油门/加速器852的信号而控制推进***850。
可以包括方向盘的转向(steering)***854可以用来在推进***850操作时(例如在车辆运动时)使车辆800转向(例如沿着希望的路径或路线)。转向***854可以接收来自转向致动器856的信号。对于全自动(5级)功能而言,方向盘可以是可选的。
制动传感器***846可以用来响应于接收到来自制动致动器848和/或制动传感器的信号而操作车辆制动器。
可以包括一个或更多个片上***(SoC)804(图8C)和/或一个或更多个GPU的一个或更多个控制器836可以向车辆800的一个或更多个部件和/或***提供(例如表示命令的)信号。例如,一个或更多个控制器可以发送经由一个或更多个制动致动器848操作车辆制动器、经由一个或更多个转向致动器856操作转向***854、经由一个或更多个油门/加速器852操作推进***850的信号。一个或更多个控制器836可以包括一个或更多个板载(例如集成)计算设备(例如超级计算机),所述计算设备处理传感器信号并且输出操作命令(例如表示命令的信号),以实现自主驾驶和/或辅助人类驾驶员驾驶车辆800。一个或更多个控制器836可以包括用于自主驾驶功能的第一控制器836、用于功能性安全功能的第二控制器836、用于人工智能功能(例如计算机视觉)的第三控制器836、用于信息娱乐功能的第四控制器836、用于紧急情况下的冗余的第五控制器836和/或其他控制器。在一些示例中,单个控制器836可以处理上述功能中的两个或更多,两个或更多控制器836可以处理单个功能,和/或其任意组合。
一个或更多个控制器836可以响应于接收自一个或更多个传感器的传感器数据(例如传感器输入),提供用于控制车辆800的一个或更多个部件和/或***的信号。传感器数据可以接收自例如且不限于全球导航卫星***传感器858(例如全球定位***传感器)、RADAR传感器860、超声传感器862、LIDAR传感器864、惯性测量单元(IMU)传感器866(例如加速度计、陀螺仪、磁罗盘、磁力计等)、麦克风896、立体相机868、广角相机870(例如鱼眼相机)、红外相机872、环绕相机874(例如360度相机)、远程和/或中程相机898、速度传感器844(例如用于测量车辆800的速率)、振动传感器842、转向传感器840、制动传感器(例如作为制动传感器***846的部分)和/或其他传感器类型。
控制器836中的一个或更多个可以接收来自车辆800的仪表组832的输入(例如由输入数据表示),并且经由人机接口(HMI)显示器834、听觉信号器、扬声器和/或经由车辆800的其他部件提供输出(例如输出数据、显示数据等表示的)。这些输出可以包括诸如车辆速度、速率、时间、地图数据(例如图8C的HD地图822)、位置数据(例如,车辆800例如在地图上的位置)、方向、其他车辆的位置(例如占用网格)之类的信息,如控制器836所感知的关于对象和对象状态的信息等等。例如,HMI显示器834可以显示关于一个或更多个对象(例如街道指示牌、警示牌、交通灯变化等)的存在性的信息和/或关于车辆已经做出、正在做出或者将会做出的驾驶机动的信息(例如现在变道、两英里后离开34B,等等)。
车辆800还包括网络接口824,其可以使用一个或更多个无线天线826和/或调制解调器通过一个或更多个网络通信。例如,网络接口824可能够通过LTE、WCDMA、UMTS、GSM、CDMA2000等通信。一个或更多个无线天线826也可以使用诸如蓝牙、蓝牙LE、Z波、ZigBee等等之类的一个或更多个局域网和/或诸如LoRaWAN、SigFox等等之类的一个或更多个低功率广域网(LPWAN)实现环境中的对象(例如车辆、移动设备等等)之间的通信。
图8B为根据本公开一些实施例的用于图8A的示例自主车辆800的相机位置和视场的示例。相机和各自的视场是一个示例实施例,并不意图是限制性的。例如,可以包括附加的和/或可替换的相机,和/或这些相机可以位于车辆800上的不同位置。
用于相机的相机类型可以包括但不限于可以适于与车辆800的部件和/或***一起使用的数字相机。所述相机可以在汽车安全完整性级别(ASIL)B下和/或在另一个ASIL下操作。相机类型可以具有任何图像捕获率,例如60帧每秒(fps)、120fps、240fps等等,这取决于实施例。相机可能够使用滚动快门、全局快门、另一种类型的快门或者其组合。在一些示例中,滤色器阵列可以包括红白白白(RCCC)滤色器阵列、红白白蓝(RCCB)滤色器阵列、红蓝绿白(RBGC)滤色器阵列、FoveonX3滤色器阵列、拜耳传感器(RGGB)滤色器阵列、单色传感器滤色器阵列和/或另一种类型的滤色器阵列。在一些实施例中,诸如具有RCCC、RCCB和/或RBGC滤色器阵列的相机之类的清晰像素相机可以用在提高光敏感度的努力中。
在一些示例中,所述相机中的一个或更多个可以用来执行高级驾驶员辅助***(ADAS)功能(例如作为冗余或故障安全设计的部分)。例如,可以安装多功能单目相机以提供包括车道偏离警告、交通指示牌辅助和智能前照灯控制在内的功能。所述相机中的一个或更多个(例如全部相机)可以同时记录和提供图像数据(例如视频)。
所述相机中的一个或更多个可以安装在诸如定制设计的(3-D打印的)组件之类的安装组件中,以便切断可能干扰相机的图像数据捕获能力的杂散光和来自汽车内的反射(例如挡风玻璃镜中反射的来自仪表板的反射)。关于翼镜安装组件,翼镜组件可以是定制3-D打印的,使得相机安装板匹配翼镜的形状。在一些示例中,一个或更多个相机可以集成到翼镜中。对于侧视相机而言,一个或更多个相机也可以集成到驾驶室每个拐角的四根柱子内。
具有包括车辆800前面的环境部分的视场的相机(例如前置相机)可以用于环视,以帮助识别前向路径和障碍,以及在一个或更多个控制器836和/或控制SoC的帮助下辅助提供对于生成占用网格和/或确定优选车辆路径至关重要的信息。前置相机可以用来执行许多与LIDAR相同的ADAS功能,包括紧急制动、行人检测和碰撞避免。前置相机也可以用于ADAS功能和***,包括车道偏离警告(LDW)、自主巡航控制(ACC),和/或诸如交通指示牌识别之类的其他功能。
各种各样的相机可以用于前置配置中,包括例如包括CMOS(互补金属氧化物半导体)彩色成像仪在内的单目相机平台。另一个示例可以是广角相机870,其可以用来感知从周边进入视场的对象(例如行人、十字路***通或者自行车)。尽管图8B中图示出仅仅一个广角相机,但是在车辆800上可以存在任意数量的广角相机870。此外,远程相机898(例如长视立体相机对)可以用于基于深度的对象检测,尤其是用于尚未针对其训练神经网络的对象。远程相机898也可以用于对象检测和分类以及基本的对象追踪。
一个或更多个立体相机868也可以包括在前置配置中。立体相机868可以包括集成控制单元,该单元包括可扩展处理单元,其可以提供在单个芯片上具有集成的CAN或以太网接口的多核微处理器和可编程逻辑(FPGA)。这样的单元可以用来生成车辆环境的3-D地图,包括针对图像中的所有点的距离估计。可替代的立体相机868可以包括紧凑型立体视觉传感器,其可以包括两个相机镜头(左右各一个)以及可以测量从车辆到目标对象的距离并且使用生成的信息(例如元数据)激活自主紧急制动和车道偏离警告功能的图像处理芯片。除了本文所描述的那些之外或者可替代地,可以使用其他类型的立体相机868。
具有包括车辆800的侧面的环境部分的视场的相机(例如侧视相机)可以用于环视,提供用来创建和更新占用网格以及生成侧撞击碰撞警告的信息。例如,环绕相机874(例如如图8B中所示的四个环绕相机874)可以置于车辆800上。环绕相机874可以包括广角相机870、鱼眼相机、360度相机和/或类似物。四个示例,四个鱼眼相机可以置于车辆的前面、后面和侧面。在一种可替代的布置中,车辆可以使用三个环绕相机874(例如左边、右边和后面),并且可以利用一个或更多个其他相机(例如前向相机)作为第四环视相机。
具有包括车辆800的后面的环境部分的视场的相机(例如后视相机)可以用于辅助停车、环视、后面碰撞警告以及创建和更新占用网格。可以使用各种各样的相机,包括但不限于也适合作为如本文所描述的前置相机(例如远程和/或中程相机898、立体相机868、红外相机872等等)的相机。
图8C为根据本公开一些实施例的用于图8A的示例自主车辆800的示例***架构的框图。应当理解,这种布置和本文描述的其他布置仅仅作为示例而被阐述。除了所示的那些之外或者代替它们的是,可以使用其他的布置和元素(例如机器、接口、功能、顺序、功能分组等等),并且一些元素可以完全省略。进一步,许多本文描述的元素是功能实体,其可以实现为分立的或分布式部件或者结合其他部件实现,以及以任何适当的组合和位置实现。本文描述为由实体执行的各个功能可以通过硬件、固件和/或软件实现。例如,各个功能可以通过处理器执行存储在内存中的指令而实现。
图8C中车辆800的部件、特征和***中的每一个被图示为经由总线802连接。总线802可以包括控制器区域网络(CAN)数据接口(可替代地,本文称为“CAN总线”)。CAN可以是车辆800内部的网络,用来辅助控制车辆800的各种特征和功能,例如制动器、加速、制动、转向、挡风玻璃雨刷等等的驱动。CAN总线可以被配置为具有数十或者甚至数百个节点,每个节点具有其自己的唯一标识符(例如CANID)。可以读取CAN总线以找到方向盘角度、地速、每分钟发动机转速(RPM)、按钮位置和/或其他车辆状态指示符。CAN总线可以是ASILB兼容的。
尽管这里将总线802描述为CAN总线,但是这并不意图是限制性的。例如,除了CAN总线之外或者可替代地,可以使用FlexRay和/或以太网。此外,尽管用单条线来表示总线802,但是这并不意图是限制性的。例如,可以存在任意数量的总线802,其可以包括一条或更多条CAN总线、一条或更多条FlexRay总线、一条或更多条以太网总线和/或一条或更多条使用不同协议的其他类型的总线。在一些示例中,两条或更多总线802可以用来执行不同的功能,和/或可以用于冗余。例如,第一总线802可以用于碰撞避免功能,并且第二总线802可以用于驱动控制。在任何示例中,每条总线802可以与车辆800的任何部件通信,并且两条或更多总线802可以与相同的部件通信。在一些示例中,车辆内的每个SoC804、每个控制器836和/或每个计算机可以有权访问相同的输入数据(例如来自车辆800的传感器的输入),并且可以连接到诸如CAN总线之类的公共总线。
车辆800可以包括一个或更多个控制器836,例如本文关于图8A所描述的那些控制器。控制器836可以用于各种各样的功能。控制器836可以耦合到车辆800的任何其他不同的部件和***,并且可以用于车辆800的控制、车辆800的人工智能、用于车辆800的信息娱乐和/或类似物。
车辆800可以包括一个或更多个片上***(SoC)804。SoC804可以包括CPU806、GPU808、处理器810、高速缓存812、加速器814、数据存储816和/或未图示出的其他部件和特征。在各种各样的平台和***中,SoC804可以用来控制车辆800。例如,一个或更多个SoC804可以在***(例如车辆800的***)中与HD地图822结合,所述HD地图可以经由网络接口824从一个或更多个服务器(例如图8D的一个或更多个服务器878)获得地图刷新和/或更新。
CPU806可以包括CPU簇或者CPU复合体(可替代地,本文称为“CCPLEX”)。CPU806可以包括多个核和/或L2高速缓存。例如,在一些实施例中,CPU806在一致性多处理器配置中可以包括八个核。在一些实施例中,CPU806可以包括四个双核簇,其中每个簇具有专用的L2高速缓存(例如2MBL2高速缓存)。CPU806(例如CCPLEX)可以被配置为支持同时簇操作,使得CPU806的簇的任意组合能够在任何给定时间是活动的。
CPU806可以实现包括以下特征中的一个或更多个的功率管理能力:各硬件块在空闲时可以自动进行时钟门控以节省动态功率;由于WFI/WFE指令的执行,每个核时钟可以在该核不主动地执行指令时进行门控;每个核可以独立地进行功率门控;当所有核都进行时钟门控或者功率门控时,可以独立地对每个核簇进行时钟门控;和/或当所有核都进行功率门控时,可以独立地对每个核簇进行功率门控。CPU806可以进一步实现用于管理功率状态的增强算法,其中指定允许的功率状态和期望的唤醒时间,并且硬件/微代码为所述核、簇和CCPLEX确定要进入的最佳的功率状态。处理核可以在软件中支持简化的功率状态进入序列,该工作被卸载到微代码。
GPU808可以包括集成的GPU(可替代地,本文称为“iGPU”)。GPU808可以是可编程的,并且对于并行工作负载而言是高效的。在一些示例中,GPU808可以使用增强张量指令集。GPU808可以包括一个或更多个流式微处理器,其中每个流式微处理器可以包括L1高速缓存(例如具有至少96KB存储能力的L1高速缓存),并且这些流式微处理器中的两个或更多可以共享L2高速缓存(例如具有512KB存储能力的L2高速缓存)。在一些实施例中,GPU808可以包括至少八个流式微处理器。GPU808可以使用计算应用编程接口(API)。此外,GPU808可以使用一个或更多个并行计算平台和/或编程模型(例如NVIDIA公司的CUDA)。
在汽车和嵌入式使用的情况下,可以对GPU808进行功率优化以实现最佳性能。例如,可以在鳍式场效应晶体管(FinFET)上制造GPU808。然而,这并不意图是限制性的,并且GPU808可以使用其他半导体制造工艺来制造。每个流式微处理器可以合并划分成多个块的若干混合精度处理核。例如且非限制性地,可以将64个PF32核和32个PF64核划分成四个处理块。在这样的示例中,每个处理块可以分配16个FP32核、8个FP64核、16个INT32核、用于深层学习矩阵算术的两个混合精度NVIDIA张量核、L0指令高速缓存、线程束(warp)调度器、分派单元和/或64KB寄存器文件。此外,流式微处理器可以包括独立的并行整数和浮点数据路径,以利用计算和寻址计算的混合提供工作负载的高效执行。流式微处理器可以包括独立线程调度能力,以允许实现并行线程之间的更细粒度的同步和协作。流式微处理器可以包括组合的L1数据高速缓存和共享内存单元,以便在简化编程的同时提高性能。
GPU808可以包括在一些示例中提供大约900GB/s的峰值内存带宽的高带宽内存(HBM)和/或16GBHBM2内存子***。在一些示例中,除了HBM内存之外或者可替代地,可以使用同步图形随机存取存储器(SGRAM),例如第五代图形双倍数据速率同步随机存取存储器(GDDR5)。
GPU808可以包括统一内存技术,其包括访问计数器以允许内存页面更精确地迁移到最频繁地访问它们的处理器,从而提高处理器之间共享的内存范围的效率。在一些示例中,地址转换服务(ATS)支持可以用来允许GPU808直接访问CPU806页表。在这样的示例中,当GPU808内存管理单元(MMU)经历遗漏时,可以将地址转换请求传输至CPU806。作为响应,CPU806可以在其页表中寻找用于地址的虚拟-物理映射,并且将转换传输回GPU808。这样,统一内存技术可以允许单个统一虚拟地址空间用于CPU806和GPU808二者的内存,从而简化了GPU808编程和将应用程序移(port)到GPU808。
此外,GPU808可以包括访问计数器,其可以追踪GPU808访问其他处理器的内存的频率。访问计数器可以帮助确保内存页面移至最频繁地访问这些页面的处理器的物理内存。
SoC804可以包括任意数量的高速缓存812,包括本文描述的那些高速缓存。例如,高速缓存812可以包括CPU806和GPU808二者可用的L3高速缓存(例如,其连接到CPU806和GPU808二者)。高速缓存812可以包括回写高速缓存,其可以例如通过使用高速缓存一致性协议(例如MEI、MESI、MSI等)追踪行的状态。取决于实施例,L3高速缓存可以包括4MB或者更多,但是也可以使用更小的高速缓存大小。
SoC804可以包括算术逻辑单元(ALU),所述算术逻辑单元可以在执行关于车辆800的各种任务或操作中的任何任务或操作(如处理DNN)的处理中被利用。此外,SoC804可以包括用于在***内执行数学运算的浮点单元(FPU)(或其他数学协处理器或数字协处理器类型)。例如,SoC104可以包括集成为CPU806和/或GPU808内的执行单元的一个或更多个FPU。
SoC804可以包括一个或更多个加速器814(例如硬件加速器、软件加速器或者其组合)。例如,SoC804可以包括硬件加速器簇,其可以包括优化的硬件加速器和/或大型片上内存。该大型片上内存(例如4MBSRAM)可以使得硬件加速器簇能够加速神经网络和其他计算。硬件加速器簇可以用来补充GPU808,并且卸载GPU808的一些任务(例如释放GPU808的更多周期以用于执行其他任务)。作为一个示例,加速器814可以用于足够稳定以易于控制加速的有针对性的工作负载(例如感知、卷积神经网络(CNN)等等)。当在本文中使用时,术语“CNN”可以包括所有类型的CNN,包括基于区域的或者区域卷积神经网络(RCNN)和快速RCNN(例如用于对象检测)。
加速器814(例如硬件加速器簇)可以包括深度学习加速器(DLA)。DLA可以包括可以被配置成为深度学习应用和推理提供额外的每秒10万亿次操作的一个或更多个张量处理单元(TPU)。TPU可以是被配置为执行图像处理功能(例如用于CNN、RCNN等)且针对执行图像处理功能而优化的加速器。DLA可以进一步针对特定的一组神经网络类型和浮点运算以及推理进行优化。DLA的设计可以比通用GPU提供每毫米更高的性能,并且远远超过CPU的性能。TPU可以执行若干功能,包括单实例卷积函数,支持例如用于特征和权重二者的INT8、INT16和FP16数据类型,以及后处理器功能。
DLA可以在处理的或者未处理的数据上针对各种各样的功能中的任何功能快速且高效地执行神经网络,尤其是CNN,例如且不限于:用于使用来自相机传感器的数据进行对象识别和检测的CNN;用于使用来自相机传感器的数据进行距离估计的CNN;用于使用来自麦克风的数据进行应急车辆检测和识别与检测的CNN;用于使用来自相机传感器的数据进行面部识别和车主识别的CNN;和/或用于安全和/或安全相关事件的CNN。
DLA可以执行GPU808的任何功能,并且通过使用推理加速器,例如,设计者可以使DLA或GPU808针对任何功能。例如,设计者可以将CNN的处理和浮点运算聚焦在DLA上,并且将其他功能留给GPU808和/或其他加速器814。
加速器814(例如硬件加速器簇)可以包括可编程视觉加速器(PVA),其在本文中可以可替代地称为计算机视觉加速器。PVA可以被设计和配置为加速用于高级驾驶员辅助***(ADAS)、自主驾驶和/或增强现实(AR)和/或虚拟现实(VR)应用的计算机视觉算法。PVA可以提供性能与灵活性之间的平衡。例如,每个PVA可以包括例如且不限于任意数量的精简指令集计算机(RISC)核、直接内存访问(DMA)和/或任意数量的向量处理器。
RISC核可以与图像传感器(例如本文描述的任何相机的图像传感器)、图像信号处理器和/或类似物交互。这些RISC核中的每一个可以包括任意数量的内存。取决于实施例,RISC核可以使用若干协议中的任何协议。在一些示例中,RISC核可以执行实时操作***(RTOS)。RISC核可以使用一个或更多个集成电路设备、专用集成电路(ASIC)和/或存储设备实现。例如,RISC核可以包括指令高速缓存和/或紧密耦合的RAM。
DMA可以使得PVA的部件能够独立于CPU806访问***内存。DMA可以支持用来向PVA提供优化的任意数量的特征,包括但不限于支持多维寻址和/或循环寻址。在一些示例中,DMA可以支持高达六个或更多维度的寻址,其可以包括块宽度、块高度、块深度、水平块步进、竖直块步进和/或深度步进。
向量处理器可以是可编程处理器,其可以被设计为高效且灵活地执行用于计算机视觉算法的编程并且提供信号处理能力。在一些示例中,PVA可以包括PVA核和两个向量处理子***分区。PVA核可以包括处理器子***、一个或更多个DMA引擎(例如两个DMA引擎)和/或其他***设备。向量处理子***可以作为PVA的主处理引擎而操作,并且可以包括向量处理单元(VPU)、指令高速缓存和/或向量内存(例如VMEM)。VPU核可以包括数字信号处理器,诸如例如单指令多数据(SIMD)、超长指令字(VLIW)数字信号处理器。SIMD和VLIW的组合可以增强吞吐量和速率。
向量处理器中的每一个可以包括指令高速缓存并且可以耦合到专用内存。结果,在一些示例中,向量处理器中的每一个可以被配置为独立于其他向量处理器执行。在其他示例中,包括在特定PVA中的向量处理器可以被配置为采用数据并行化。例如,在一些实施例中,包括在单个PVA中的多个向量处理器可以执行相同的计算机视觉算法,但是在图像的不同区域上执行。在其他示例中,包括在特定PVA中的向量处理器可以在相同的图像上同时执行不同的计算机视觉算法,或者甚至在序列图像或者图像的部分上执行不同的算法。除其他的以外,任意数量的PVA可以包括在硬件加速器簇中,并且任意数量的向量处理器可以包括在这些PVA中的每一个中。此外,PVA可以包括附加的纠错码(ECC)内存,以增强总体***安全性。
加速器814(例如硬件加速器簇)可以包括片上计算机视觉网络和SRAM,以提供用于加速器814的高带宽、低延迟SRAM。在一些示例中,片上内存可以包括由例如且不限于八个现场可配置的内存块组成的至少4MBSRAM,其可以由PVA和DLA二者访问。每对内存块可以包括高级***总线(APB)接口、配置电路***、控制器和复用器。可以使用任何类型的内存。PVA和DLA可以经由向PVA和DLA提供高速内存访问的主干(backbone)访问内存。主干可以包括(例如使用APB)将PVA和DLA互连到内存的片上计算机视觉网络。
片上计算机视觉网络可以包括在传输任何控制信号/地址/数据之前确定PVA和DLA二者都提供就绪且有效的信号的接口。这样的接口可以提供用于传输控制信号/地址/数据的单独相位和单独信道,以及用于连续数据传输的突发式通信。这种类型的接口可以符合ISO26262或者IEC61508标准,但是也可以使用其他标准和协议。
在一些示例中,SoC804可以包括例如在2018年8月10日提交的美国专利申请No.16/101,232中描述的实时光线追踪硬件加速器。该实时光线追踪硬件加速器可以用来快速且高效地确定(例如世界模型内的)对象的位置和范围,以便生成实时可视化仿真,以用于RADAR信号解释、用于声音传播合成和/或分析、用于SONAR***仿真、用于一般波传播仿真、用于为了定位和/或其他功能的目的与LIDAR数据相比较和/或用于其他用途。在一些实施例中,一个或更多个树遍历单元(TTU)可以用于执行一个或更多个光线跟踪相关操作。
加速器814(例如硬件加速器簇)具有广泛的自主驾驶用途。PVA可以是可编程视觉加速器,其可以用于ADAS和自主车辆中的关键处理阶段。PVA的能力是需要可预测处理、低功率和低延迟的算法域的良好匹配。换言之,PVA在半密集或者密集规则计算上,甚至在需要具有低延迟和低功率的可预测运行时间的小数据集上都表现良好。因此,在用于自主车辆的平台的背景下,PVA被设计为运行经典计算机视觉算法,因为它们在对象检测和整数数学运算方面很有效。
例如,根据该技术的一个实施例,PVA用来执行计算机立体视觉。在一些示例中,可以使用基于半全局匹配的算法,但是这并不意图是限制性的。许多用于3-5级自主驾驶的应用都需要即时运动估计/立体匹配(例如来自运动的结构、行人识别、车道检测等等)。PVA可以在来自两个单目相机的输入上执行计算机立体视觉功能。
在一些示例中,PVA可以用来执行密集的光流。根据过程原始RADAR数据(例如使用4D快速傅立叶变换)以提供经处理的RADAR。在其他示例中,PVA用于飞行时间深度处理,其例如通过处理原始飞行时间数据以提供经处理的飞行时间数据。
DLA可以用来运行任何类型的网络以增强控制和驾驶安全性,包括例如输出用于每个对象检测的置信度度量的神经网络。这样的置信度值可以解释为概率,或者解释为提供每个检测与其他检测相比的相对“权重”。该置信度值使得***能够做出关于哪些检测应当被认为是真阳性检测而不是假阳性检测的进一步决定。例如,***可以为置信度设置阈值,并且仅仅将超过阈值的检测看作真阳性检测。在自动紧急制动(AEB)***中,假阳性检测会使得车辆自动地执行紧急制动,这显然是不希望的。因此,只有最确信的检测才应当被认为是AEB的触发因素。DLA可以运行用于回归置信度值的神经网络。该神经网络可以将至少一些参数子集作为其输入,例如边界框维度,(例如从另一个子***)获得的地平面估计,与车辆800取向、距离相关的惯性测量单元(IMU)传感器866输出,从神经网络和/或其他传感器(例如LIDAR传感器864或RADAR传感器860)获得的对象的3D位置估计等。
SoC804可以包括一个或更多个数据存储816(例如内存)。数据存储816可以是SoC804的片上内存,其可以存储要在GPU和/或DLA上执行的神经网络。在一些示例中,为了冗余和安全,数据存储816可以容量足够大以存储神经网络的多个实例。数据存储812可以包括L2或L3高速缓存812。对数据存储816的引用可以包括对与如本文所描述的PVA、DLA和/或其他加速器814关联的内存的引用。
SoC804可以包括一个或更多个处理器810(例如嵌入式处理器)。处理器810可以包括启动和功率管理处理器,其可以是用于处理启动功率和管理功能以及有关安全实施的专用处理器和子***。启动和功率管理处理器可以是SoC804启动序列的一部分,并且可以提供运行时间功率管理服务。启动功率和管理处理器可以提供时钟和电压编程、辅助***低功率状态转换、SoC804热和温度传感器管理和/或SoC804功率状态管理。每个温度传感器可以实现为环形振荡器,其输出频率与温度成比例,并且SoC804可以使用环形振荡器检测CPU806、GPU808和/或加速器814的温度。如果确定温度超过阈值,那么启动和功率管理处理器可以进入温度故障例程并且将SoC804置于较低功率状态和/或将车辆800置于司机安全停车模式(例如使车辆800安全停车)。
处理器810可以还包括可以用作音频处理引擎的一组嵌入式处理器。音频处理引擎可以是一种音频子***,其允许实现对于通过多个接口的多声道音频的完全硬件支持以及一系列广泛而灵活的音频I/O接口。在一些示例中,音频处理引擎是具有带有专用RAM的数字信号处理器的专用处理器核。
处理器810可以还包括始终在处理器上的引擎,其可以提供必要的硬件特征以支持低功率传感器管理和唤醒用例。该始终在处理器上的引擎可以包括处理器核、紧密耦合的RAM、支持***设备(例如定时器和中断控制器)、各种I/O控制器***设备和路由逻辑。
处理器810可以还包括安全簇引擎,其包括处理汽车应用的安全管理的专用处理器子***。安全簇引擎可以包括两个或更多处理器核、紧密耦合的RAM、支持***设备(例如定时器、中断控制器等等)和/或路由逻辑。在安全模式下,所述两个或更多核可以操作于锁步模式下,并且用作具有检测它们的操作之间的任何差异的比较逻辑的单核。
处理器810可以还包括实时相机引擎,其可以包括用于处理实时相机管理的专用处理器子***。
处理器810可以还包括高动态范围信号处理器,其可以包括图像信号处理器,该图像信号处理器是一种硬件引擎,该硬件引擎是相机处理管线的部分。
处理器810可以包括可以是(例如微处理器上实现的)处理块的视频图像复合器,其实现视频回放应用程序产生用于播放器窗口的最终图像所需的视频后处理功能。视频图像复合器可以对广角相机870、环绕相机874和/或对驾驶室内监控相机传感器执行镜头畸变校正。驾驶室内监控相机传感器优选地由运行在高级SoC的另一个实例上的神经网络监控,被配置为识别驾驶室内事件并且相对应地做出响应。驾驶室内***可以执行唇读,以激活移动电话服务并拨打电话、口述电子邮件、改变车辆目的地、激活或改变车辆的信息娱乐***和设置或者提供语音激活的网上冲浪。某些功能仅在车辆操作于自主模式下时对于驾驶员可用,并且在其他情况下被禁用。
视频图像复合器可以包括用于空间和时间降噪的增强时间降噪。例如,在视频中出现运动的情况下,降噪适当地对空间信息加权,降低邻近帧提供的信息的权重。在图像或者图像的部分不包括运动的情况下,视频图像复合器执行的时间降噪可以使用来自先前的图像的信息以降低当前图像中的噪声。
视频图像复合器也可以被配置为对输入立体镜头帧执行立体校正。当操作***桌面正在使用并且GPU808无需连续地渲染(render)新的表面时,视频图像复合器可以进一步用于用户接口组成。甚至在GPU808上电并且激活,进行3D渲染时,视频图像复合器可以用来减轻GPU808的负担以提高性能和响应能力。
SoC804可以还包括用于从相机接收视频和输入的移动行业处理器接口(MIPI)相机串行接口、高速接口和/或可以用于相机和有关像素输入功能的视频输入块。SoC804可以还包括可以由软件控制并且可以用于接收未提交到特定角色的I/O信号的输入/输出控制器。
SoC804可以还包括大范围的***设备接口,以使能与***设备、音频编解码器、功率管理和/或其他设备通信。SoC804可以用来处理来自(通过千兆多媒体串行链路和以太网连接的)相机、传感器(例如可以通过以太网连接的LIDAR传感器864、RADAR传感器860等等)的数据,来自总线802的数据(例如车辆800的速率、方向盘位置等等),来自(通过以太网或CAN总线连接的)GNSS传感器858的数据。SoC804可以还包括专用高性能大容量存储控制器,其可以包括它们自己的DMA引擎,并且其可以用来从日常数据管理任务中释放CPU806。
SoC804可以是具有灵活架构的端到端平台,该架构跨越自动化3-5级,从而提供利用和高效使用计算机视觉和ADAS技术以实现多样性和冗余、连同深度学***台的综合功能安全架构。SoC804可以比常规的***更快、更可靠,甚至更加能量高效和空间高效。例如,当与CPU806、GPU808和数据存储816结合时,加速器814可以提供用于3-5级自主车辆的快速高效平台。
因此该技术提供了不能通过常规***实现的能力和功能。例如,计算机视觉算法可以在CPU上执行,这些CPU可以使用诸如C编程语言之类的高级编程语言配置为跨各种各样的视觉数据执行各种各样的处理算法。然而,CPU常常不能满足许多计算机视觉应用的性能要求,诸如与例如执行时间和功耗有关的那些要求。特别地,许多CPU不能实时地执行复杂的对象检测算法,这是车载ADAS应用的要求和实用3-5级自主车辆的要求。
与常规***形成对比的是,通过提供CPU复合体、GPU复合体和硬件加速器簇,本文描述的技术允许同时和/或顺序地执行多个神经网络,并且将结果组合在一起以实现3-5级自主驾驶功能。例如,在DLA或dGPU(例如GPU820)上执行的CNN可以包括文本和单词识别,允许超级计算机读取和理解交通指示牌,包括尚未针对其特别地训练神经网络的指示牌。DLA可以还包括能够识别、解释和提供对指示牌的语义理解,并且将该语义理解传递给运行在CPU复合体上的路径规划模块的神经网络。
作为另一个示例,如3、4或5级驾驶所需的,多个神经网络可以同时运行。例如,由“注意:闪烁的灯指示结冰条件”组成的警告指示牌连同电灯可以由若干神经网络独立地或者共同地进行解释。指示牌本身可以由部署的第一神经网络(例如经过训练的神经网络)识别为交通指示牌,文本“闪烁的灯指示结冰条件”可以由部署的第二神经网络解释,该部署的第二神经网络告知车辆的路径规划软件(优选地在CPU复合体上执行)当检测到闪烁的灯时,存在结冰条件。闪烁的灯可以通过在多个帧上操作部署的第三神经网络而识别,该神经网络告知车辆的路径规划软件闪烁的灯的存在(或不存在)。所有三个神经网络可以例如在DLA内和/或在GPU808上同时运行。
在一些示例中,用于面部识别和车主识别的CNN可以使用来自相机传感器的数据识别车辆800的授权的驾驶员和/或车主的存在。始终在传感器上的处理引擎可以用来在车主接近驾驶员车门时解锁车辆并且打开灯,并且在安全模式下,在车主离开车辆时禁用车辆。按照这种方式,SoC804提供了防范盗窃和/或劫车的安全性。
在另一个示例中,用于应急车辆检测和识别的CNN可以使用来自麦克风896的数据来检测并且识别应急车辆警报(siren)。与使用通用分类器检测警报并且手动地提取特征的常规***形成对比的是,SoC804使用CNN以对环境和城市声音分类以及对视觉数据分类。在优选的实施例中,运行在DLA上的CNN被训练为识别应急车辆的相对关闭速率(例如通过使用多普勒效应)。CNN也可以被训练为识别如GNSS传感器858所识别的特定于车辆在其中操作的局部区域的应急车辆。因此,例如,当在欧洲操作时,CNN将寻求检测欧洲警报,并且当在美国时,CNN将寻求识别仅仅北美的警报。一旦检测到应急车辆,在超声传感器862的辅助下,控制程序可以用来执行应急车辆安全例程,使车辆放慢速度,开到路边,停下车辆,和/或使车辆空转,直到应急车辆通过。
车辆可以包括可以经由高速互连(例如PCIe)耦合到SoC804的CPU818(例如分立的CPU或dCPU)。CPU818可以包括例如X86处理器。CPU818可以用来执行各种各样的功能中的任何功能,包括例如仲裁ADAS传感器与SoC804之间潜在地不一致的结果,和/或监控控制器836和/或信息娱乐SoC830的状态和健康状况。
车辆800可以包括可以经由高速互连(例如NVIDIA的NVLINK)耦合到SoC804的GPU820(例如分立的GPU或dGPU)。GPU820可以例如通过执行冗余的和/或不同的神经网络而提供附加的人工智能功能,并且可以用来至少部分地基于来自车辆800的传感器的输入(例如传感器数据)来训练和/或更新神经网络。
车辆800可以还包括网络接口824,该网络接口可以包括一个或更多个无线天线826(例如用于不同通信协议的一个或更多个无线天线,例如蜂窝天线、蓝牙天线等等)。网络接口824可以用来使能通过因特网与云(例如与服务器878和/或其他网络设备)、与其他车辆和/或与计算设备(例如乘客的客户端设备)的无线连接。为了与其他车辆通信,可以在这两辆车之间建立直接链接,和/或可以建立间接链接(例如跨网络以及通过因特网)。直接链接可以使用车对车通信链路提供。车对车通信链路可以向车辆800提供关于接近车辆800的车辆(例如车辆800前面、侧面和/或后面的车辆)的信息。该功能可以是车辆800的协作自适应巡航控制功能的部分。
网络接口824可以包括提供调制和解调功能并且使得控制器836能够通过无线网络通信的SoC。网络接口824可以包括用于从基带到射频的上转换以及从射频到基带的下转换的射频前端。频率转换可以通过公知的过程执行,和/或可以使用超外差(super-heterodyne)过程执行。在一些示例中,射频前端功能可以由单独的芯片提供。网络接口可以包括用于通过LTE、WCDMA、UMTS、GSM、CDMA2000、蓝牙、蓝牙LE、Wi-Fi、Z波、ZigBee、LoRaWAN和/或其他无线协议通信的无线功能。
车辆800可以还包括可包括片外(例如SoC804外)存储装置的数据存储828。数据存储828可以包括一个或更多个存储元件,包括RAM、SRAM、DRAM、VRAM、闪存、硬盘和/或可以存储至少一个比特的数据的其他部件和/或设备。
车辆800可以还包括GNSS传感器858。GNSS传感器858(例如GPS、辅助GPS传感器、差分GPS(DGPS)传感器等)用于辅助映射、感知、占用网格生成和/或路径规划功能。可以使用任意数量的GNSS传感器858,包括例如且不限于使用带有以太网到串行(RS-232)网桥的USB连接器的GPS。
车辆800可以还包括RADAR传感器860。RADAR传感器860可以甚至在黑暗和/或恶劣天气条件下也由车辆800用于远程车辆检测。RADAR功能安全级别可以是ASILB。RADAR传感器860可以使用CAN和/或总线802(例如以传输RADAR传感器860生成的数据)以用于控制以及访问对象追踪数据,在一些示例中接入以太网以访问原始数据。可以使用各种各样的RADAR传感器类型。例如且非限制性地,RADAR传感器860可以适合前面、后面和侧面RADAR使用。在一些示例中,使用脉冲多普勒RADAR传感器。
RADAR传感器860可以包括不同的配置,例如具有窄视场的远程、具有宽视场的短程、短程侧覆盖等等。在一些示例中,远程RADAR可以用于自适应巡航控制功能。远程RADAR***可以提供通过两个或更多独立扫描实现的广阔视场(例如250m范围内)。RADAR传感器860可以帮助区分静态对象和运动对象,并且可以由ADAS***用于紧急制动辅助和前方碰撞警告。远程RADAR传感器可以包括具有多根(例如六根或更多)固定RADAR天线以及高速CAN和FlexRay接口的单站多模RADAR。在具有六根天线的示例中,中央四根天线可以创建聚焦的波束图案,其被设计为在更高速率下以来自邻近车道的最小交通干扰记录车辆800的周围环境。其他两根天线可以扩展视场,使得快速地检测进入或离开车辆800的车道的车辆成为可能。
作为一个示例,中程RADAR***可以包括高达860m(前面)或80m(后面)的范围以及高达42度(前面)或850度(后面)的视场。短程RADAR***可以包括但不限于被设计为安装在后保险杠两端的RADAR传感器。当安装在后保险杠两端时,这样的RADAR传感器***可以创建持续地监控后方和车辆旁边的视盲点的两个波束。
短程RADAR***可以在ADAS***中用于视盲点检测和/或变道辅助。
车辆800可以还包括超声传感器862。可以置于车辆800的前面、后面和/或侧面的超声传感器862可以用于停车辅助和/或创建和更新占用网格。可以使用各种各样的超声传感器862,并且不同的超声传感器862可以用于不同的检测范围(例如2.5m、4m)。超声传感器862可以操作于功能安全级别的ASILB。
车辆800可以包括LIDAR传感器864。LIDAR传感器864可以用于对象和行人检测、紧急制动、碰撞避免和/或其他功能。LIDAR传感器864可以为功能安全级别的ASILB。在一些示例中,车辆800可以包括可以使用以太网(例如以将数据提供给千兆以太网交换机)的多个LIDAR传感器864(例如两个、四个、六个等等)。
在一些示例中,LIDAR传感器864可能够对360度视场提供对象列表及其距离。商业上可用的LIDAR传感器864可以具有例如近似800m的广告范围,精度为2cm-3cm,支持800Mbps以太网连接。在一些示例中,可以使用一个或更多个非突出的LIDAR传感器864。在这样的示例中,LIDAR传感器864可以实现为可以嵌入到车辆800的前面、后面、侧面和/或拐角的小设备。在这样的示例中,LIDAR传感器864可以甚至对于低反射率对象提供高达120度水平的和35度竖直的视场,具有200m的范围。前面安装的LIDAR传感器864可以被配置用于45度与135度之间的水平视场。
在一些示例中,也可以使用诸如3D闪光LIDAR之类的LIDAR技术。3D闪光LIDAR使用激光的闪光作为发射源,以照亮高达约200m的车辆周围环境。闪光LIDAR单元包括接受器,该接受器将激光脉冲传输时间和反射光记录在每个像素上,其进而与从车辆到对象的范围相对应。闪光LIDAR可以允许利用每个激光闪光生成周围环境的高度精确且无失真的图像。在一些示例中,可以部署四个闪光LIDAR传感器,车辆800的每一侧一个。可用的3D闪光LIDAR***包括没有风扇以外的运动部件(movingpart)的固态3D凝视阵列LIDAR相机(例如非扫描LIDAR设备)。闪光LIDAR设备可以使用每帧5纳秒I类(眼睛安全)激光脉冲,并且可以以3D范围点云和共同寄存的强度数据的形式捕获反射的激光。通过使用闪光LIDAR,并且因为闪光LIDAR是没有运动部件的固态设备,LIDAR传感器864可以不太容易受到运动模糊、振动和/或震动的影响。
该车辆可以还包括IMU传感器866。在一些示例中,IMU传感器866可以位于车辆800的后轴的中心。IMU传感器866可以包括例如且不限于加速度计、磁力计、陀螺仪、磁罗盘和/或其他传感器类型。在一些示例中,例如在六轴应用中,IMU传感器866可以包括加速度计和陀螺仪,而在九轴应用中,IMU传感器866可以包括加速度计、陀螺仪和磁力计。
在一些实施例中,IMU传感器866可以实现为微型高性能GPS辅助惯性导航***(GPS/INS),其结合微机电***(MEMS)惯性传感器、高灵敏度GPS接收器和高级卡尔曼滤波算法以提供位置、速度和姿态的估计。这样,在一些示例中,IMU传感器866可以使得车辆800能够在无需来自磁传感器的输入的情况下通过直接观察从GPS到IMU传感器866的速度变化并且将其相关来估计方向(heading)。在一些示例中,IMU传感器866和GNSS传感器858可以结合到单个集成单元中。
该车辆可以包括置于车辆800中和/或车辆800周围的麦克风896。除别的以外,麦克风896可以用于应急车辆检测和识别。
该车辆可以还包括任意数量的相机类型,包括立体相机868、广角相机870、红外相机872、环绕相机874、远程和/或中程相机898和/或其他相机类型。这些相机可以用来捕获车辆800整个***周围的图像数据。使用的相机类型取决于实施例和车辆800的要求,并且相机类型的任意组合可以用来提供车辆800周围的必要覆盖。此外,相机的数量可以根据实施例而不同。例如,该车辆可以包括六个相机、七个相机、十个相机、十二个相机和/或另一数量的相机。作为一个示例且非限制性地,这些相机可以支持千兆多媒体串行链路(GMSL)和/或千兆以太网。所述相机中的每一个在本文关于图8A和图8B更详细地进行了描述。
车辆800可以还包括振动传感器842。振动传感器842可以测量车辆的诸如车轴之类的部件的振动。例如,振动的变化可以指示道路表面的变化。在另一个示例中,当使用两个或更多振动传感器842时,振动之间的差异可以用来确定道路表面的摩擦或滑移(例如当动力驱动轴与自由旋转轴之间存在振动差异时)。
车辆800可以包括ADAS***838。在一些示例中,ADAS***838可以包括SoC。ADAS***838可以包括自主/自适应/自动巡航控制(ACC)、协作自适应巡航控制(CACC)、前方撞车警告(FCW)、自动紧急制动(AEB)、车道偏离警告(LDW)、车道保持辅助(LKA)、视盲点警告(BSW)、后方穿越交通警告(RCTW)、碰撞警告***(CWS)、车道居中(LC)和/或其他特征和功能。
ACC***可以使用RADAR传感器860、LIDAR传感器864和/或相机。ACC***可以包括纵向ACC和/或横向ACC。纵向ACC监控并控制到紧接在车辆800前方的车辆的距离,并且自动地调节车速以维持离前方车辆的安全距离。横向ACC执行距离保持,并且在必要时建议车辆800改变车道。横向ACC与诸如LCA和CWS之类的其他ADAS应用程序有关。
CACC使用来自其他车辆的信息,该信息可以经由网络接口824和/或无线天线826经由无线链路或者通过网络连接(例如通过因特网)间接地从其他车辆接收。直接链接可以由车对车(V2V)通信链路提供,而间接链接可以是基础设施到车辆(I2V)的通信链路。通常,V2V通信概念提供关于紧接在前的车辆(例如紧接在车辆800前方且与其处于相同车道的车辆)的信息,而I2V通信概念提供关于前方更远处的交通的信息。CACC***可以包括I2V和V2V信息源中的任一个或者二者。给定车辆800前方车辆的信息,CACC可以更加可靠,并且它有可能提高交通流的畅通性且降低道路拥堵。
FCW***被设计为提醒驾驶员注意危险,使得驾驶员可以采取纠正措施。FCW***使用耦合到专用处理器、DSP、FPGA和/或ASIC的前置相机和/或RADAR传感器860,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。FCW***可以提供例如声音、视觉警告、振动和/或快速制动脉冲形式的警告。
AEB***检测即将发生的与另一车辆或其他对象的前方碰撞,并且可以在驾驶员在指定的时间或距离参数内没有采取纠正措施的情况下自动地应用制动器。AEB***可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的前置相机和/或RADAR传感器860。当AEB***检测到危险时,它典型地首先提醒(alert)驾驶员采取纠正措施以避免碰撞,并且如果驾驶员没有采取纠正措施,那么AEB***可以自动地应用制动器以努力防止或者至少减轻预测的碰撞的影响。AEB***可以包括诸如动态制动支持和/或碰撞迫近制动之类的技术。
LDW***提供了诸如方向盘或座位振动之类的视觉、听觉和/或触觉警告,以在车辆800穿过车道标记时提醒驾驶员。当驾驶员指示有意偏离车道时,通过激活转弯信号,不激活LDW***。LDW***可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的前侧朝向相机,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
LKA***是LDW***的变型。如果车辆800开始离开车道,那么LKA***提供纠正车辆800的转向输入或制动。
BSW***检测并向驾驶员警告汽车视盲点中的车辆。BSW***可以提供视觉、听觉和/或触觉警报以指示合并或改变车道是不安全的。***可以在驾驶员使用转弯信号时提供附加的警告。BSW***可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的后侧朝向相机和/或RADAR传感器860,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
RCTW***可以在车辆800倒车时在后置相机范围之外检测到对象时提供视觉、听觉和/或触觉通知。一些RCTW***包括AEB以确保应用车辆制动器以避免撞车。RCTW***可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的一个或更多个后置RADAR传感器860,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
常规的ADAS***可能易于出现假阳性结果,这可能会让驾驶员烦恼并分散注意力,但是典型地不是灾难性的,因为ADAS***提醒驾驶员并且允许驾驶员决定安全条件是否真正存在并且相对应地采取行动。然而,在自主车辆800中,在冲突结果的情况下,车辆800本身必须决定是否注意(heed)来自主计算机或者辅助计算机(例如第一控制器836或第二控制器836)的结果。例如,在一些实施例中,ADAS***838可以是用于向备用计算机合理性模块提供感知信息的备用和/或辅助计算机。备用计算机合理性监视器可以在硬件部件上运行冗余多样的软件,以检测感知和动态驾驶任务中的故障。来自ADAS***838的输出可以提供给监督MCU。如果来自主计算机和辅助计算机的输出冲突,那么监督MCU必须确定如何协调该冲突以确保安全操作。
在一些示例中,主计算机可以被配置为向监督MCU提供置信度评分,指示主计算机对所选结果的置信度。如果置信度评分超过阈值,那么监督MCU可以遵循主计算机的方向,而不管辅助计算机是否提供冲突或不一致的结果。在置信度评分不满足阈值的情况下并且在主计算机和辅助计算机指示不同的结果(例如冲突)的情况下,监督MCU可以在这些计算机之间进行仲裁以确定适当的结果。
监督MCU可以被配置为运行神经网络,所述神经网络被训练并且被配置为至少部分地基于来自主计算机和辅助计算机的输出,确定辅助计算机提供假警报的条件。因此,监督MCU中的神经网络可以了解何时可以信任辅助计算机的输出以及何时不能。例如,当辅助计算机为基于RADAR的FCW***时,监督MCU中的神经网络可以了解FCW***何时正在识别事实上不是危险的金属对象,例如触发警报的排水栅格或井盖。类似地,当辅助计算机是基于相机的LDW***时,监督MCU中的神经网络可以学习在骑车者或行人在场并且车道偏离实际上是最安全的策略时无视该LDW。在包括运行在监督MCU上的神经网络的实施例中,监督MCU可以包括适合于利用关联的内存运行神经网络的DLA或GPU中的至少一个。在优选的实施例中,监督MCU可以包括SoC804的部件和/或作为SoC804的部件而被包括。
在其他示例中,ADAS***838可以包括使用传统计算机视觉规则执行ADAS功能的辅助计算机。这样,辅助计算机可以使用经典的计算机视觉规则(如果-那么),并且在监督MCU中存在神经网络可以提高可靠性、安全性和性能。例如,多样化的实现方式和有意的非完全相同(non-identity)使得整个***更加容错,对于软件(或者软件-硬件接口)功能造成的故障而言尤其如此。例如,如果在主计算机上运行的软件中存在软件漏洞或错误并且运行在辅助计算机上的非完全相同的软件代码提供相同的总体结果,那么监督MCU可以更加确信总体结果是正确的,并且主计算机上的软件或硬件中的漏洞不造成实质性的错误。
在一些示例中,ADAS***838的输出可以馈送至主计算机的感知块和/或主计算机的动态驾驶任务块。例如,如果ADAS***838由于对象紧接在前的原因而指示前方碰撞警告,那么感知块可以在识别对象时使用该信息。在其他示例中,辅助计算机可以具有它自己的神经网络,其被训练并且因此如本文所描述的降低假阳性的风险。
车辆800可以还包括信息娱乐SoC830(例如车载信息娱乐***(IVI))。尽管被图示和描述为SoC,但是信息娱乐***可以不是SoC,并且可以包括两个或更多分立的部件。信息娱乐SoC830可以包括可以用来向车辆800提供音频(例如音乐、个人数字助理、导航指令、新闻、广播等等)、视频(例如TV、电影、流媒体等等)、电话(例如免提呼叫)、网络连接(例如LTE、WiFi等等)和/或信息服务(例如导航***,后停车援助,无线电数据***,诸如燃油水平、覆盖的总距离、制动燃油水平、油位、车门开/关、空气过滤器信息之类的车辆有关信息,等等)的硬件和软件的组合。例如,信息娱乐SoC830可以包括收音机、盘播放器、导航***、视频播放器、USB和蓝牙连接、车载电脑、车载娱乐、WiFi、方向盘音频控件、免提语音控件、平视显示器(HUD)、HMI显示器834、远程信息处理设备、控制面板(例如用于控制各种部件、特征和/或***,和/或与其交互)和/或其他部件。信息娱乐SoC830可以进一步用来向车辆的用户提供信息(例如视觉的和/或听觉的),例如来自ADAS***838的信息,诸如规划的车辆机动、轨迹、周围环境信息(例如交叉路口信息、车辆信息、道路信息等等)之类的自主驾驶信息,和/或其他信息。
信息娱乐SoC830可以包括GPU功能。信息娱乐SoC830可以通过总线802(例如CAN总线、以太网等)与车辆800的其他设备、***和/或部件通信。在一些示例中,信息娱乐SoC830可以耦合至监督MCU,使得在主控制器836(例如车辆800的主和/或备用计算机)出现故障的情况下,信息娱乐***的GPU可以执行一些自驾驶功能。在这样的示例中,信息娱乐SoC830可以如本文所描述的将车辆800置于司机安全停车模式。
车辆800可以还包括仪表组832(例如数字仪表板、电子仪表组、数字仪表面板等等)。仪表组832可以包括控制器和/或超级计算机(例如分立的控制器或超级计算机)。仪表组832可以包括一套仪器,例如车速表、燃油水平、油压、转速表、里程表、转弯指示器、换档位置指示器、安全带警告灯、停车制动警告灯、发动机故障灯、安全气囊(SRS)***信息、照明控件、安全***控件、导航信息等等。在一些示例中,信息可以被显示和/或在信息娱乐SoC830和仪表组832之间共享。换言之,仪表组832可以作为信息娱乐SoC830的部分而被包括,或者反之亦然。
图8D为根据本公开一些实施例的基于云的服务器与图8A的示例自主车辆800之间的通信的***示意图。***876可以包括服务器878、网络890以及包括车辆800在内的车辆。服务器878可以包括多个GPU884(A)-884(H)(这里统称为GPU884)、PCIe交换机882(A)-882(H)(这里统称为PCIe交换机882)和/或CPU880(A)-880(B)(这里统称为CPU880)。GPU884、CPU880和PCIe交换机可以与诸如例如且不限于NVIDIA开发的NVLink接口888之类的高速互连和/或PCIe连接886互连。在一些示例中,GPU884经由NVLink和/或NVSwitchSoC连接,并且GPU884和PCIe交换机882经由PCIe互连连接。尽管图示出八个GPU884、两个CPU880和两个PCIe交换机,但是这并不意图是限制性的。取决于实施例,服务器878中的每一个可以包括任意数量的GPU884、CPU880和/或PCIe交换机。例如,服务器878中的每一个可以包括八个、十六个、三十二个和/或更多GPU884。
服务器878可以通过网络890并且从车辆接收图像数据,该图像数据表示示出诸如最近开始的道路工程之类的意外或改变的道路状况的图像。服务器878可以通过网络890并且向车辆传输神经网络892、更新的神经网络892和/或地图信息894,包括关于交通和道路状况的信息。对地图信息894的更新可以包括对于HD地图822的更新,例如关于建筑工地、坑洼、弯道、洪水或其他障碍物的信息。在一些示例中,神经网络892、更新的神经网络892和/或地图信息894可以已从新的训练和/或从环境中的任意数量的车辆接收的数据中表示和/或基于数据中心处执行的训练(例如使用服务器878和/或其他服务器)的经验产生。
服务器878可以用来基于训练数据训练机器学习模型(例如神经网络)。训练数据可以由车辆生成,和/或可以在仿真中生成(例如使用游戏引擎)。在一些示例中,训练数据被标记(例如在神经网络受益于有监督学习的情况下)和/或经历其他预处理,而在其他示例中,训练数据不被标记和/或预处理(例如在神经网络无需有监督学习的情况下)。可以根据任何一类或更多类别的机器学习技术来执行训练,包括但不限于诸如以下类别:监督训练、半监督训练、非监督训练、自学习、强化学习、联合学习、转移学习、特征学习(包括主要组成和聚类分析)、多线性子空间学习、流形学习、表示学习(包括备用字典学习)、基于规则的机器学习、异常检测及其任何变体或组合。一旦机器学习模型被训练,机器学习模型可以由车辆使用(例如通过网络890传输至车辆),和/或机器学习模型可以由服务器878用来远程地监控车辆。
在一些示例中,服务器878可以接收来自车辆的数据,并且将该数据应用到最新的实时神经网络以用于实时智能推理。服务器878可以包括由GPU884供电的深度学习超级计算机和/或专用AI计算机,例如NVIDIA开发的DGX和DGX站机器。然而,在一些示例中,服务器878可以包括仅使用CPU供电的数据中心的深度学习基础设施。
服务器878的深度学习基础设施可能够快速实时推理,并且可以使用该能力来评估并验证车辆800中的处理器、软件和/或关联硬件的健康状况。例如,深度学习基础设施可以接收来自车辆800的定期更新,例如图像序列和/或车辆800已经定位的位于该图像序列中的对象(例如经由计算机视觉和/或其他机器学习对象分类技术)。深度学习基础设施可以运行它自己的神经网络以识别对象并且将它们与车辆800识别的对象相比较,如果结果不匹配并且该基础设施得出车辆800中的AI发生故障的结论,那么服务器878可以向车辆800传输信号,指示车辆800的故障保护计算机进行控制,通知乘客,并且完成安全停车操作。
为了推理,服务器878可以包括GPU884和一个或更多个可编程推理加速器(例如NVIDIA的TensorRT)。GPU供电的服务器和推理加速的组合可以使得实时响应成为可能。在其他示例中,例如在性能不那么重要的情况下,CPU、FPGA和其他处理器供电的服务器可以用于推理。
示例计算设备
图9是适合用于实现本公开的一些实施例的示例计算设备900的框图。计算设备900可以包括直接或间接耦合以下设备的互连***902:存储器904、一个或更多个中央处理单元(CPU)906、一个或更多个图形处理单元(GPU)908、通信接口910、输入/输出(I/O)端口912、输入/输出组件914、电源916,一个或更多个呈现组件918(例如,(一个或更多个)显示器)和一个或更多个逻辑单元920。在至少一个实施例中,(一个或更多个)计算设备900可以包括一个或更多个虚拟机(VM),和/或其任何组件可以包括虚拟组件(例如,虚拟硬件组件)。对于非限制性示例,GPU908中的一个或更多个可以包括一个或更多个vGPU,CPU906中的一个或更多个可以包括一个或更多个vCPU,和/或逻辑单元920中的一个或更多个可以包括一个或更多个虚拟逻辑单元。这样,(一个或更多个)计算设备900可以包括分立组件(例如,专用于计算设备900的全GPU)、虚拟组件(例如,专用于计算设备900的GPU的一部分)、或其组合。
尽管图9的各个方框被示出为利用线路经由互连***902连接,但这并不旨在是限制性的并且仅是为了清楚起见。例如,在一些实施例中,呈现组件918(诸如显示设备)可被认为是I/O组件914(例如,如果显示器是触摸屏)。作为另一个示例,CPU906和/或GPU908可以包括存储器(例如,存储器904可以表示除了GPU908的存储器、CPU906和/或其他组件之外的存储设备)。换言之,图9的计算设备仅是说明性的。在如“工作站”、“服务器”、“膝上型计算机”、“桌面型计算机”、“平板计算机”、“客户端设备”、“移动设备”、“手持式设备”、“游戏控制台”、“电子控制单元(ECU)”、“虚拟现实***”和/或其他设备或***类型的此类类别之间不做区分,因为所有都被考虑在图9的计算设备的范围内。
互连***902可表示一个或更多个链路或总线,诸如地址总线、数据总线、控制总线或其组合。互连***902可以包括一个或更多个总线或链路类型,诸如工业标准架构(ISA)总线、扩展工业标准架构(EISA)总线、视频电子标准协会(VESA)总线、***组件互连(PCI)总线、快速***组件互连(PCIe)总线和/或另一类型的总线或链路。在一些实施例中,组件之间存在直接连接。作为示例,CPU906可直接连接到存储器904。进一步,CPU906可直接连接到GPU908。在组件之间存在直接或点对点连接的情况下,互连***902可包括PCIe链路以执行连接。在这些示例中,PCI总线不需要被包括在计算设备900中。
存储器904可以包括各种计算机可读介质中的任何计算机可读介质。计算机可读介质可以是可由计算设备900访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质,以及可移除和不可移除介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块和/或其他数据类型的信息的任何方法或技术实现的易失性和非易失性介质和/或可移动和不可移动介质。例如,存储器904可以存储计算机可读指令(例如,表示(一个或更多个)程序和/或(一个或更多个)程序元件,诸如操作***)。计算机存储介质可以包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术,CD-ROM、数字通用盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储装置或其他磁性存储装置,或可用于存储所要信息且可由计算设备900存取的任何其他介质。如本文所使用的,计算机存储介质不包括信号本身。
计算机存储介质可将计算机可读指令、数据结构、程序模块和/或其他数据类型体现在诸如载波或其他传输机制之类的已调制数据信号中,并且包括任何信息传递介质。术语“调制数据信号”可以指代以编码信号中的信息的方式设置或改变其一个或更多个特性的信号。作为示例而非限制,计算机存储介质可包括有线介质(诸如有线网络或直接有线连接)和无线介质(诸如声学、RF、红外和其他无线介质)。以上任何内容的组合也应包含在计算机可读介质的范围内。
CPU906可经配置以执行计算机可读指令中的至少一些以控制计算设备900的一个或更多个组件执行本文中所描述的方法和/或过程中的一个或更多个。CPU906可各自包含能够同时处置众多软件线程的一个或更多个核心(例如,一个、两个、四个、八个、二十八个、七十二个等)。CPU906可包含任何类型的处理器,且可取决于所实施的计算设备900的类型而包含不同类型的处理器(例如,针对移动装置具有较少核心的处理器和针对服务器具有较多核心的处理器)。例如,取决于计算设备900的类型,处理器可以是使用精简指令集计算(RISC)实现的高级RISC机器(ARM)处理器或使用复杂指令集计算(CISC)实现的x86处理器。除了一个或更多个微处理器或补充协处理器(诸如数学协处理器)之外,计算设备900还可包括一个或更多个CPU906。
除(一个或更多个)CPU906以外或替代(一个或更多个)CPU906,(一个或更多个)GPU908可被配置成执行计算机可读指令中的至少一些以控制计算设备900的一个或更多个组件执行本文所描述的方法和/或过程中的一个或更多个。GPU908中的一个或更多个可为集成GPU(例如,有CPU906中的一个或更多个)和/或GPU908中的一个或更多个可为离散GPU。在实施例中,GPU908中的一个或更多个可以是CPU906中的一个或更多个的协处理器。GPU908可由计算设备900使用以渲染图形(例如,3D图形)或执行通用计算。例如,GPU908可用于GPU上的通用计算(GPGPU)。GPU908可包含能够同时处置数百或数千软件线程的数百或数千核心。GPU908可响应于渲染命令(例如,经由主机接口从CPU906接收的渲染命令)而产生输出图像的像素数据。GPU908可包含用于存储像素数据或任何其他合适数据(例如,GPGPU数据)的图形存储器(例如,显示存储器)。显示存储器可作为存储器904的一部分被包括。GPU908可包含并行操作(例如,经由链路)的两个或两个以上GPU。链路可以直接连接GPU(例如,使用NVLINK)或可以通过交换机(例如,使用NVSwitch)连接GPU。当组合在一起时,每一GPU908可产生用于输出的不同部分或用于不同输出的像素数据或GPGPU数据(例如,用于第一图像的第一GPU和用于第二图像的第二GPU)。每一GPU可包含其自己的存储器,或可与其他GPU共享存储器。
除CPU906和/或GPU908之外或替代CPU906和/或GPU908,逻辑单元920可经配置以执行计算机可读指令中的至少一些以控制计算设备900的一个或更多个组件执行本文中所描述的方法和/或过程中的一个或更多个。在实施例中,(一个或更多个)CPU906、(一个或更多个)GPU908、和/或(一个或更多个)逻辑单元920可以离散地或联合地执行方法、过程和/或其部分的任何组合。逻辑单元920中的一个或更多个可为CPU906和/或GPU908中的一个或更多个中的一部分和/或集成于CPU906和/或GPU908中的一个或更多个和/或逻辑单元920中的一个或更多个可为离散组件或以其他方式在CPU906和/或GPU908外部。在实施例中,逻辑单元920中的一个或更多个可以是CPU906中的一个或更多个和/或GPU908中的一个或更多个的协处理器。
逻辑单元920的示例包括一个或更多个处理核心和/或其组件,诸如张量核心(TC)、张量处理单元(TPU)、像素视觉核心(PVC)、视觉处理单元(VPU)、图形处理群集(GPC)、纹理处理群集(TPC)、流多处理器(SM)、树横向单元(TTU)、人工智能加速器(AIA)、深度学习加速器(DLA)、算术逻辑单元(ALU)、专用集成电路(ASIC)、浮点单元(FPU)、输入/输出(I/O)元件、***组件互连(PCI)或快速***组件互连(PCIe)元件等。
通信接口910可以包括使计算设备900能够经由电子通信网络(包括有线和/或无线通信)与其他计算设备通信的一个或更多个接收机、发射机和/或收发机。通信接口910可包括实现通过多个不同网络中的任一个进行通信的组件和功能,诸如无线网络(例如,Wi-Fi、Z-Wave、蓝牙、蓝牙LE、ZigBee等)、有线网络(例如,通过以太网或无限带通信)、低功率广域网(例如,LoRaWAN、SigFox等)和/或互联网。
I/O端口912可以使得计算设备900能够逻辑地耦合到包括I/O组件914、(一个或更多个)呈现组件918和/或其他组件的其他设备,其中一些可以被内置到(例如,集成在)计算设备900中。说明性I/O组件914包括麦克风、鼠标、键盘、操纵杆、游戏垫、游戏控制器、碟形卫星天线、扫描仪、打印机、无线设备等。I/O组件914可以提供处理空中姿势、语音或由用户生成的其他生理输入的自然用户界面(NUI)。在一些情况下,可将输入发射到适当的网络元件以供进一步处理。NUI可实现与计算设备900的显示器相关联的语音识别、指示笔识别、面部识别、生物特征识别、屏幕上和屏幕附近的姿势识别、空中姿势、头部和眼睛跟踪、以及触摸识别(如以下更详细地描述的)的任何组合。计算设备900可以包括用于手势检测和识别的深度相机,诸如立体相机***、红外相机***、RGB相机***、触摸屏技术和这些的组合。另外,计算设备900可包含使得能够检测运动的加速度计或陀螺仪(例如,作为惯性测量单元(IMU)的部分)。在一些示例中,计算设备900可以使用加速度计或陀螺仪的输出来渲染沉浸式增强现实或虚拟现实。
电源916可包括硬连线电源、电池电源或其组合。电源916可向计算设备900提供电力以使得计算设备900的组件能够操作。
呈现组件918可包括显示器(例如,监视器、触摸屏、电视屏幕、平视显示器(HUD)、其他显示器类型或其组合)、扬声器和/或其他呈现组件。呈现组件918可从其他组件(例如,GPU908、CPU906等)接收数据,且输出所述数据(例如,作为图像、视频、声音等)。
示例数据中心
图10示出了可在本公开的至少一个实施例中使用的示例数据中心1000。数据中心1000可包括数据中心基础设施层1010、框架层1020、软件层1030和/或应用层1040。
如图10所示,数据中心基础设施层1010可以包括资源协调器1012、分组的计算资源1014和节点计算资源(“节点C.R.s”)1016(1)-1016(N),其中“N”表示任何完整的正整数。在至少一个实施例中,节点C.R.s1016(1)-1016(N)可包括,但不限于任何数量的中央处理单元(“CPU”)或其他处理器(包括加速器、现场可编程门阵列(FPGA)、图形处理器或图形处理单元(GPU)等),存储器设备(例如,动态只读存储器),存储设备(例如,固态或磁盘驱动器),网络输入/输出(“NWI/O”)装置、网络交换机、虚拟机(“VM”)、功率模块和/或冷却模块,等等。在一些实施例中,来自节点C.R.s1016(1)-1016(N)中的一个或更多个节点C.R.s可对应于具有上述计算资源中的一个或更多个的服务器。此外,在一些实施例中,节点C.R.s1016(1)-10161(N)可包括一个或更多个虚拟组件,诸如vGPU、vCPU等,和/或节点C.R.s1016(1)-1016(N)中的一个或更多个可对应于虚拟机(VM)。
在至少一个实施例中,分组的计算资源1014可包括容纳在一个或更多个机架(未示出)内的节点C.R.s1016的单独分组,或容纳在不同地理位置(也未示出)处的数据中心内的许多机架。分组的计算资源1014内的节点C.R.s1016的单独分组可包括可被配置或分配来支持一个或更多个工作负荷的分组计算、网络、存储器或存储资源。在至少一个实施例中,包括CPU、GPU和/或其他处理器的若干节点C.R.s1016可以分组在一个或更多个机架内以提供计算资源来支持一个或更多个工作负荷。一个或更多个机架还可包括任意组合的任意数量的功率模块、冷却模块和/或网络交换机。
资源协调器1022可配置或以其他方式控制一个或更多个节点C.R.s1016(1)-1016(N)和/或分组的计算资源1014。在至少一个实施例中,资源协调器1022可以包括用于数据中心1000的软件设计基础设施(“SDI”)管理实体。资源协调器1022可以包括硬件、软件或其某种组合。
在至少一个实施例中,如图10所示,框架层1020可以包括作业调度器1032、配置管理器1034、资源管理器1036和/或分布式文件***1038。框架层1020可以包括支持软件层1030的软件1032和/或应用层1040的一个或更多个应用1042的框架。软件1032或应用1042可分别包含基于网络的服务软件或应用,例如由Amazon(亚马逊)网络服务、GoogleCloud(谷歌云)和MicrosoftAzure提供的那些。框架层1020可以是但不限于可以利用分布式文件***1038进行大规模数据处理(例如,“大数据”)的免费和开源的软件网络应用框架(如ApacheSparkTM(下文称为“Spark”))的类型。在至少一个实施例中,作业调度器1032可以包括Spark驱动器以促进调度由数据中心1000的不同层支持的工作负荷。配置管理器1034可以能够配置不同层,诸如软件层1030和框架层1020(其包括用于支持大规模数据处理的Spark和分布式文件***1038)。资源管理器1036可以能够管理被映射到分布式文件***1038和作业调度器1032或被分配用于支持分布式文件***1038和作业调度器1032的集群的或分组的计算资源。在至少一个实施例中,集群的或分组的计算资源可包括在数据中心基础设施层1010的分组的计算资源1014。资源管理器1036可与资源协调器1012协调以管理这些被映射或分配的计算资源。
在至少一个实施例中,在软件层1030中包括的软件1032可包括由节点C.R.s1016(1)-1016(N)、分组的计算资源1014和/或框架层1020的分布式文件***1038中的至少部分使用的软件。一种或更多种类型的软件可以包括但不限于互联网网页搜索软件、电子邮件病毒扫描软件、数据库软件和流式视频内容软件。
在至少一个实施例中,在应用层1040中包括的应用1042可包括由节点C.R.s1016(1)-1016(N)、分组的计算资源1014和/或框架层1020的分布式文件***1038中的至少部分使用的一个或更多个类型的应用。一种或更多种类型的应用可以包括但不限于任何数量的基因组应用、认知计算和机器学习应用,包括训练或推断软件、机器学习框架软件(例如,PyTorch、TensorFlow、Caffe等)和/或结合一个或更多个实施例使用的其他机器学习应用。
在至少一个实施例中,配置管理器1034、资源管理器1036和资源协调器1012中的任一个可基于在任何技术上可行的方式中获取的任何量和类型的数据来实现任何数量和类型的自修改动作。自修改动作可使数据中心1000的数据中心操作者免于做出可能较差的配置决策和可能避免数据中心的未充分利用和/或较差执行部分。
根据本文描述的一个或更多个实施例,数据中心1000可包括工具、服务、软件或其他资源来训练一个或更多个机器学习模型或使用一个或更多个机器学习模型来预测或推断信息。例如,可以通过使用以上相对于数据中心1000描述的软件和/或计算资源根据神经网络架构来计算权重参数来训练(一个或更多个)机器学习模型。在至少一个实施例中,对应于一个或更多个神经网络的经训练或部署的机器学习模型可用于通过使用通过一种或多种训练技术(诸如但不限于本文中描述的那些训练技术)计算的权重参数,使用上文相对于数据中心1000描述的资源来推断或预测信息。
在至少一个实施例中,数据中心1000可使用CPU、专用集成电路(ASIC)、GPU、FPGA和/或其他硬件(或与其对应的虚拟计算资源)来使用上述资源执行训练和/或推断。此外,上文所描述的一或更多个软件和/或硬件资源可被配置为允许用户训练或执行对信息的推断的服务,例如图像识别、语音识别或其他人工智能服务。
示例网络环境
适合用于实现本公开的实施例的网络环境可以包括一个或更多个客户端设备、服务器、网络附加存储(NAS)、其他后端设备和/或其他设备类型。客户端设备、服务器和/或其他设备类型(例如,每个设备)可以在图9的(一个或更多个)计算设备900的一个或更多个实例上实现——例如,每个设备可以包括(一个或更多个)计算设备900的类似部件、特征和/或功能。此外,在实现后端设备(例如,服务器、NAS等)的情况下,后端设备可被包括作为数据中心1000的一部分,数据中心1000的示例在本文中关于图10更详细地描述。
网络环境的组件可经由网络彼此通信,所述网络可为有线的、无线的或为两者。网络可以包括多个网络或多个网络中的一个网络。例如,网络可包括一个或更多个广域网(WAN)、一个或更多个局域网(LAN)、一个或更多个公共网络(诸如互联网和/或公共交换电话网(PSTN))和/或一个或更多个私有网络。在网络包括无线电信网络的情况下,诸如基站、通信塔或者甚至接入点(以及其他组件)的组件可以提供无线连接。
兼容的网络环境可以包括一个或更多个对等网络环境(在这种情况下,服务器可以不被包括在网络环境中)和一个或更多个客户端-服务器网络环境(在这种情况下,一个或更多个服务器可以被包括在网络环境中)。在对等网络环境中,本文针对服务器所描述的功能可在任何数量的客户端设备上实现。
在至少一个实施例中,网络环境可包括一个或更多个基于云的网络环境、分布式计算环境、其组合等。基于云的网络环境可包括框架层、作业调度器、资源管理器和在一个或更多个服务器上实现的分布式文件***,所述服务器可包括一个或更多个核心网服务器和/或边缘服务器。框架层可包括支持软件层的软件和/或应用层的一个或更多个应用的框架。软件或应用可分别包含基于网络的服务软件或应用。在实施例中,一个或更多个客户端设备可以使用基于网络的服务软件或应用(例如,通过经由一个或更多个应用编程接口(API)访问服务软件和/或应用)。框架层可以是但不限于如可以使用分布式文件***进行大规模数据处理(例如,“大数据”)的一种免费和开源软件网络应用框架。
基于云的网络环境可提供执行本文描述的计算和/或数据存储功能(或其一个或更多个部分)的任何组合的云计算和/或云存储。这些不同功能中的任何功能可以分布在来自(例如,可以分布在州、地区、国家、全球等的一个或更多个数据中心的)中央或核心服务器的多个位置上。如果与用户(例如,客户端设备)的连接相对靠近边缘服务器,则核心服务器可以将功能的至少一部分指定给边缘服务器。基于云的网络环境可以是私有的(例如,限于单个组织),可以是公共的(例如,对许多组织可用),和/或其组合(例如,混合云环境)。
(一个或更多个)客户端设备可以包括本文关于图9所描述的(一个或更多个)示例计算设备900的组件、特征和功能中的至少一些。作为示例而非限制,客户端设备可被实现为个人计算机(PC),膝上型计算机、移动设备、智能电话、平板计算机、智能手表、可穿戴计算机、个人数字助理(PDA)、MP3播放器、虚拟现实耳机、全球定位***(GPS)或设备、视频播放器、摄像机、监视设备或***、车辆、船、飞船、虚拟机、无人机、机器人、手持式通信设备、医院设备、游戏设备或***、娱乐***、车辆计算机***、嵌入式***控制器、遥控器、电器、消费电子设备、工作站、边缘设备、这些描绘的设备的任何组合或任何其他合适的设备。
本公开可以在由计算机或者诸如个人数字助理或其他手持式设备之类的其他机器执行的、包括诸如程序模块之类的计算机可执行指令的机器可使用指令或者计算机代码的一般背景下进行描述。通常,包括例程、程序、对象、组件、数据结构等等的程序模块指的是执行特定任务或者实现特定抽象数据类型的代码。本公开可以在各种各样的***配置中实践,这些配置包括手持式设备、消费电子器件、通用计算机、更专业的计算设备等等。本公开也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。
如在本文中使用的,“和/或”关于两个或更多元件的叙述应当解释为仅指一个元件或者元件组合。例如,“元件A、元件B和/或元件C”可以包括仅仅元件A,仅仅元件B,仅仅元件C,元件A和元件B,元件A和元件C,元件B和元件C,或者元件A、B和C。此外,“元件A或元件B中的至少一个”可以包括元件A中的至少一个,元件B中的至少一个,或者元件A中的至少一个和元件B中的至少一个。进一步,“元件A和元件B中的至少一个”可以包括元件A中的至少一个,元件B中的至少一个,或者元件A中的至少一个和元件B中的至少一个。
这里详细地描述了本公开的主题以满足法定要求。然而,描述本身并非意在限制本公开的范围。相反地,本公开人已经设想到,要求保护的主题也可以以其他的方式具体化,以包括与本文中结合其他当前或未来技术描述的步骤不同的步骤或者相似的步骤的组合。而且,尽管术语“步骤”和/或“块”在本文中可以用来隐含采用的方法的不同元件,但是这些术语不应当被解释为暗示本文公开的各个步骤之中或之间的任何特定顺序,除非明确描述了各步骤的顺序。
Claims (20)
1.一种为自主机器选择轨迹的方法,所述方法包括:生成车道图,所述车道图包括用于所述自主机器的潜在未来位置的第一系列时间奖励;生成多个可能轨迹,所述多个可能轨迹使所述自主机器能够完成自主机器动作;使用所述第一系列时间奖励作为输入,为所述可能轨迹生成优化度量;使用所述优化度量选择用于实施的轨迹;以及使用所述自主机器实施所述轨迹。
2.根据权利要求1所述的方法,还包括:使用第一地理区域的地理数据集作为输入来选择起点和路线目的地之间的路线。
3.根据权利要求2所述的方法,其中所述第一系列时间奖励包括使用第二地理区域的车道信息计算的一系列连续时间奖励,所述第二地理区域小于所述第一地理区域。
4.根据权利要求3所述的方法,其中所述多个可能轨迹是使用第三地理区域的详细车道信息生成的,所述第三地理区域小于所述第二地理区域。
5.根据权利要求3所述的方法,其中所述第一系列时间奖励是在没有来自本地世界模型的场景信息的情况下计算的,所述本地世界模型代表由所述自主机器上的传感器检测到的对象。
6.根据权利要求1所述的方法,其中所述方法还包括生成场景预测,所述场景预测包括由所述自主机器上的传感器检测到的对象的预测未来对象位置。
7.根据权利要求1所述的方法,其中使用所述第一系列时间奖励作为输入来选择所述自主机器动作。
8.根据权利要求1所述的方法,其中所述车道图包括第二系列时间奖励,所述第二系列时间奖励针对所述自主机器在路线的第二车道上的潜在未来位置。
9.一种为自主机器选择轨迹的方法,所述方法包括:生成场景预测,所述场景预测包括由对应于所述自主机器的一个或更多个传感器检测到的对象的预测未来对象位置;生成用于自主机器动作的多个可能轨迹,所述多个可能轨迹在对应于所述自主机器动作的标称横向轨道内具有多个纵向条件和横向条件;使用所述场景预测和与所述自主机器的多个潜在未来位置相对应的第一系列时间奖励来评估所述多个可能轨迹,以生成用于所述多个可能轨迹的优化度量;使用所述优化度量来选择起始参数集的轨迹,所述起始参数集用于生成用于评估的附加轨迹;使用所述优化度量从所述附加轨迹中选择单个轨迹;以及实施所述自主机器的所述单个轨迹。
10.根据权利要求9所述的方法,使用所述场景预测为所述自主机器动作生成纵向限制。
11.根据权利要求9所述的方法,还包括:选择用于详细规划的附加自主机器动作;生成所述附加自主机器动作的附加多个轨迹;以及使用所述场景预测和所述第一系列时间奖励来评估所述附加多个轨迹中的附加轨迹,以生成用于所述附加轨迹的所述优化度量。
12.根据权利要求9所述的方法,其中使用车道图作为选择输入数据来执行所述自主机器动作的所述选择。
13.根据权利要求9所述的方法,还包括:使用第一地理区域的地理数据集作为输入来选择起点和路线目的地之间的路线。
14.根据权利要求13所述的方法,其中所述第一系列时间奖励使用第二地理区域的车道信息来计算,所述第二地理区域小于所述第一地理区域。
15.根据权利要求9所述的方法,其中所述第一系列时间奖励对应于带注释的车道图,所述带注释的车道图包括用于所述自主机器的潜在未来位置的第二系列连续时间奖励。
16.根据权利要求9所述的方法,其中所述第一系列时间奖励是在没有来自本地世界模型的场景信息的情况下计算的,所述本地世界模型代表由所述自主机器上的一个或更多个传感器检测到的对象。
17.一种处理器,包括:一个或更多个处理单元,用于生成自主机器动作的多个可能轨迹,所述多个可能轨迹具有多个纵向条件和多个横向条件,使用场景预测来评估所述多个可能轨迹中的轨迹,以生成用于所述轨迹的优化度量,使用所述优化度量从所述多个可能轨迹中选择单个轨迹,并实现用于自主机器的所述单个轨迹,其中所述多个纵向条件至少基于所述场景预测,以及其中所述多个横向条件至少基于与所述自动机器的行驶方向相对应的标称轨道。
18.根据权利要求17所述的处理器,其中所述一个或更多个处理单元还用于生成带注释的车道图,所述带注释的车道图包括用于所述自主机器在所述自主机器的所述行驶方向的第一车道上的潜在未来位置的第一系列时间奖励,其中单个时间奖励代表到路线目的地的行驶时间。
19.根据权利要求17所述的处理器,其中所述一个或更多个处理单元还用于:使用所述优化度量来选择起始参数集的轨迹,所述起始参数集用于生成用于评估的附加轨迹;以及使用所述场景预测来评估所述附加轨迹,以生成用于所述附加轨迹的所述优化度量。
20.根据权利要求19所述的处理器,其中所述附加轨迹包括在所述多个可能轨迹中未发现的新的多个纵向条件和横向条件组合。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062978309P | 2020-02-19 | 2020-02-19 | |
US62/978,309 | 2020-02-19 | ||
PCT/US2021/018488 WO2021168058A1 (en) | 2020-02-19 | 2021-02-18 | Behavior planning for autonomous vehicles |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115175841A true CN115175841A (zh) | 2022-10-11 |
Family
ID=77272430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180015379.1A Pending CN115175841A (zh) | 2020-02-19 | 2021-02-18 | 自主车辆的行为规划 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11981349B2 (zh) |
JP (1) | JP2023514905A (zh) |
CN (1) | CN115175841A (zh) |
DE (1) | DE112021000216T5 (zh) |
WO (1) | WO2021168058A1 (zh) |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10451425B2 (en) * | 2014-12-05 | 2019-10-22 | Apple Inc. | Autonomous navigation system |
JP6939376B2 (ja) * | 2017-10-10 | 2021-09-22 | トヨタ自動車株式会社 | 自動運転システム |
DE102017218222A1 (de) * | 2017-10-12 | 2019-04-18 | Continental Automotive Gmbh | Bestimmung der Position eines späteren Haltepunktes eines Fahrzeugs |
US11130497B2 (en) | 2017-12-18 | 2021-09-28 | Plusai Limited | Method and system for ensemble vehicle control prediction in autonomous driving vehicles |
US20190185012A1 (en) | 2017-12-18 | 2019-06-20 | PlusAI Corp | Method and system for personalized motion planning in autonomous driving vehicles |
NL2020480B1 (en) * | 2018-02-22 | 2019-08-29 | Hardt Ip B V | Method of controlling a direction of a trajectory of a vehicle |
US11460848B1 (en) * | 2018-12-06 | 2022-10-04 | Waymo Llc | Biased trajectory progress metric |
EP3671390B1 (en) * | 2018-12-21 | 2021-10-13 | Airbus Defence and Space GmbH | Method for operating an unmanned aerial vehicle as well as an unmanned aerial vehicle |
KR102651410B1 (ko) * | 2018-12-28 | 2024-03-28 | 현대자동차주식회사 | 자율 발렛 주차를 지원하는 시스템 및 방법, 그리고 이를 위한 인프라 및 차량 |
US11685398B2 (en) * | 2020-02-27 | 2023-06-27 | Baidu Usa Llc | Lane based routing system for autonomous driving vehicles |
EP4115347A1 (en) * | 2020-03-06 | 2023-01-11 | Embodied Intelligence, Inc. | Trajectory optimization using neural networks |
US11961394B2 (en) * | 2020-04-01 | 2024-04-16 | Denso International America, Inc. | Methods and systems for guiding road users |
RU2764479C2 (ru) * | 2020-04-23 | 2022-01-17 | Общество с ограниченной ответственностью «Яндекс Беспилотные Технологии» | Способ и система для управления работой самоуправляемого автомобиля |
CN115667043A (zh) * | 2020-05-22 | 2023-01-31 | 三菱电机株式会社 | 车辆控制***、车辆综合控制装置、电子控制装置、网络通信装置、车辆控制方法以及车辆控制程序 |
US11518393B2 (en) * | 2020-07-31 | 2022-12-06 | Uatc, Llc | Vehicle trajectory dynamics validation and interpolation |
US11710276B1 (en) * | 2020-09-21 | 2023-07-25 | Apple Inc. | Method and device for improved motion planning |
US11866070B2 (en) * | 2020-09-28 | 2024-01-09 | Guangzhou Automobile Group Co., Ltd. | Vehicle control method and apparatus, storage medium, and electronic device |
US11661082B2 (en) * | 2020-10-28 | 2023-05-30 | GM Global Technology Operations LLC | Forward modeling for behavior control of autonomous vehicles |
US11708092B2 (en) * | 2020-12-14 | 2023-07-25 | Honda Motor Co., Ltd. | Lane selection |
US11780470B2 (en) * | 2020-12-14 | 2023-10-10 | Honda Motor Co., Ltd. | Lane selection |
KR20220110977A (ko) * | 2021-02-01 | 2022-08-09 | 현대모비스 주식회사 | 긴급차량 양보 시스템 및 그 제어 방법 |
US11993281B2 (en) * | 2021-02-26 | 2024-05-28 | Nissan North America, Inc. | Learning in lane-level route planner |
US11214271B1 (en) * | 2021-03-10 | 2022-01-04 | Aurora Operations, Inc. | Control system interface for autonomous vehicle |
CN112937608B (zh) * | 2021-03-31 | 2022-06-21 | 吉林大学 | 一种基于轨迹预测的冰雪环境无人驾驶车辆一体化滚动决策方法、装置及存储介质 |
US11945441B2 (en) | 2021-03-31 | 2024-04-02 | Nissan North America, Inc. | Explainability and interface design for lane-level route planner |
WO2022212915A1 (en) | 2021-04-01 | 2022-10-06 | Giant.Ai, Inc. | Spatio-temporal consistency embeddings from multiple observed modalities |
US11478927B1 (en) | 2021-04-01 | 2022-10-25 | Giant.Ai, Inc. | Hybrid computing architectures with specialized processors to encode/decode latent representations for controlling dynamic mechanical systems |
WO2022212920A1 (en) | 2021-04-01 | 2022-10-06 | Giant.Ai, Inc. | Combined analog and digital architecture for handling sensory input data |
US11635903B2 (en) * | 2021-06-15 | 2023-04-25 | International Business Machines Corporation | Cloud data migration |
US11834076B2 (en) * | 2021-06-28 | 2023-12-05 | Waymo Llc | Responding to emergency vehicles for autonomous vehicles |
US11878706B2 (en) * | 2021-08-19 | 2024-01-23 | GM Global Technology Operations LLC | Driver command prediction |
US11904899B2 (en) * | 2021-09-08 | 2024-02-20 | GM Global Technology Operations LLC | Limp home mode for an autonomous vehicle using a secondary autonomous sensor system |
US20230085422A1 (en) * | 2021-09-13 | 2023-03-16 | Toyota Research Institute, Inc. | Task-informed behavior planning |
US11834077B2 (en) | 2021-09-14 | 2023-12-05 | Barry Gilhuly | Systems, methods, and media for occlusion-aware motion planning |
US20230102443A1 (en) * | 2021-09-28 | 2023-03-30 | GM Global Technology Operations LLC | Monitoring uncertainty for human-like behavioral modulation of trajectory planning |
US20230131614A1 (en) * | 2021-10-21 | 2023-04-27 | Toyota Motor Engineering & Manufacturing North America, Inc. | Systems and methods for coordinated vehicle lane assignment |
CN113978259B (zh) * | 2021-11-19 | 2022-10-18 | 张展浩 | 一种基于驾驶场景及驾驶习惯的电动汽车制动控制方法 |
JP7468496B2 (ja) | 2021-11-30 | 2024-04-16 | トヨタ自動車株式会社 | 運動マネージャ、自動運転装置、制御システム、車両、車両の制御方法およびプログラム |
CN114291109B (zh) * | 2021-12-17 | 2023-07-21 | 广东机电职业技术学院 | 一种共享驾驶冲突解决方法、***和计算机设备 |
US12001175B2 (en) * | 2021-12-20 | 2024-06-04 | Gm Cruise Holdings Llc | Long tail lidar 3-D object detection improvement with targeted simulation data injection |
US20230192118A1 (en) * | 2021-12-20 | 2023-06-22 | GM Global Technology Operations LLC | Automated driving system with desired level of driving aggressiveness |
US20230192147A1 (en) * | 2021-12-22 | 2023-06-22 | Gm Cruise Holdings Llc | Using maps at multiple resolutions and scale for trajectory prediction |
US11541910B1 (en) * | 2022-01-07 | 2023-01-03 | Plusai, Inc. | Methods and apparatus for navigation of an autonomous vehicle based on a location of the autonomous vehicle relative to shouldered objects |
US11840257B2 (en) * | 2022-03-25 | 2023-12-12 | Embark Trucks Inc. | Lane change determination for vehicle on shoulder |
CN114670837B (zh) * | 2022-04-24 | 2023-05-16 | 吉林大学 | 一种智能汽车类人弯道轨迹双重规划*** |
GB2618419A (en) * | 2022-05-03 | 2023-11-08 | Oxa Autonomy Ltd | Controlling an autonomous vehicle |
CN116729386B (zh) * | 2023-07-07 | 2023-12-26 | 清华大学 | 多交叉路口场景下车辆分层规划和控制方法及装置 |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7512487B1 (en) * | 2006-11-02 | 2009-03-31 | Google Inc. | Adaptive and personalized navigation system |
US11630800B2 (en) | 2015-05-01 | 2023-04-18 | Nvidia Corporation | Programmable vision accelerator |
US10379533B2 (en) * | 2016-01-04 | 2019-08-13 | GM Global Technology Operations LLC | System and method for autonomous vehicle fleet routing |
US9645577B1 (en) * | 2016-03-23 | 2017-05-09 | nuTonomy Inc. | Facilitating vehicle driving and self-driving |
EP3485337B1 (en) | 2016-09-23 | 2020-10-21 | Apple Inc. | Decision making for autonomous vehicle motion control |
US10289469B2 (en) | 2016-10-28 | 2019-05-14 | Nvidia Corporation | Reliability enhancement utilizing speculative execution systems and methods |
US10133275B1 (en) * | 2017-03-01 | 2018-11-20 | Zoox, Inc. | Trajectory generation using temporal logic and tree search |
US10518770B2 (en) * | 2017-03-14 | 2019-12-31 | Uatc, Llc | Hierarchical motion planning for autonomous vehicles |
US10761537B1 (en) * | 2017-06-02 | 2020-09-01 | Built Robotics Inc. | Obstacle detection and manipulation by a vehicle within a dig site |
US10621448B2 (en) * | 2017-08-02 | 2020-04-14 | Wing Aviation Llc | Systems and methods for determining path confidence for unmanned vehicles |
AU2018347314A1 (en) * | 2017-10-10 | 2020-05-21 | The Government Of The United States Of America, As Represented By The Secretary Of The Navy | Method for identifying optimal vehicle paths when energy is a key metric or constraint |
US11644834B2 (en) * | 2017-11-10 | 2023-05-09 | Nvidia Corporation | Systems and methods for safe and reliable autonomous vehicles |
US10416677B2 (en) * | 2017-11-14 | 2019-09-17 | Uber Technologies, Inc. | Autonomous vehicle routing using annotated maps |
WO2019098002A1 (ja) * | 2017-11-20 | 2019-05-23 | ソニー株式会社 | 情報処理装置、情報処理方法、プログラム、及び移動体 |
US10678248B2 (en) * | 2018-02-15 | 2020-06-09 | GM Global Technology Operations LLC | Fast trajectory planning via maneuver pattern selection |
US20190286151A1 (en) * | 2018-03-14 | 2019-09-19 | GM Global Technology Operations LLC | Automated driving systems and control logic for cloud-based scenario planning of autonomous vehicles |
US11169528B2 (en) * | 2018-05-11 | 2021-11-09 | Uatc, Llc | Initial trajectory generator for motion planning system of autonomous vehicles |
US10885698B2 (en) | 2018-08-10 | 2021-01-05 | Nvidia Corporation | Method for programmable timeouts of tree traversal mechanisms in hardware |
US11900797B2 (en) * | 2018-10-16 | 2024-02-13 | Five AI Limited | Autonomous vehicle planning |
DK201970121A1 (en) * | 2018-10-30 | 2020-06-04 | Aptiv Technologies Limited | GENERATION OF OPTIMAL TRAJECTORIES FOR NAVIGATION OF VEHICLES |
DE102018008624A1 (de) * | 2018-10-31 | 2020-04-30 | Trw Automotive Gmbh | Steuerungssystem und Steuerungsverfahren zum samplingbasierten Planen möglicher Trajektorien für Kraftfahrzeuge |
US11048260B2 (en) * | 2018-11-02 | 2021-06-29 | Zoox, Inc. | Adaptive scaling in trajectory generation |
US11181919B2 (en) * | 2018-11-27 | 2021-11-23 | Wipro Limited | Method and system for determining an optimal trajectory for navigation of an autonomous vehicle |
JP7394853B2 (ja) * | 2018-12-04 | 2023-12-08 | デューク・ユニバーシティ | 動的物体を有する環境における運動計画を促進する装置、方法及び物品 |
US11087173B2 (en) * | 2018-12-27 | 2021-08-10 | Beijing Didi Infinity Technology And Development Co., Ltd. | Using image pre-processing to generate a machine learning model |
US11567514B2 (en) * | 2019-02-11 | 2023-01-31 | Tesla, Inc. | Autonomous and user controlled vehicle summon to a target |
US10809734B2 (en) * | 2019-03-13 | 2020-10-20 | Mobile Industrial Robots A/S | Route planning in an autonomous device |
FR3095042B1 (fr) * | 2019-04-12 | 2021-04-09 | Safran Electronics & Defense | Procede de definition d’un chemin |
JP7479064B2 (ja) * | 2019-06-03 | 2024-05-08 | リアルタイム ロボティクス, インコーポレーテッド | 動的障害物を有する環境における動作計画を容易にする装置、方法及び物品 |
US20200387156A1 (en) * | 2019-06-06 | 2020-12-10 | Denso International America, Inc. | Autonomous Coach Vehicle Learned From Human Coach |
US20210048825A1 (en) * | 2019-08-13 | 2021-02-18 | GM Global Technology Operations LLC | Predictive and reactive field-of-view-based planning for autonomous driving |
US11390300B2 (en) * | 2019-10-18 | 2022-07-19 | Uatc, Llc | Method for using lateral motion to optimize trajectories for autonomous vehicles |
US11755014B2 (en) * | 2019-12-31 | 2023-09-12 | Uatc, Llc | Jointly learnable behavior and trajectory planning for autonomous vehicles |
US20210197819A1 (en) * | 2019-12-31 | 2021-07-01 | Zoox, Inc. | Vehicle control to join route |
-
2021
- 2021-02-18 DE DE112021000216.3T patent/DE112021000216T5/de active Pending
- 2021-02-18 CN CN202180015379.1A patent/CN115175841A/zh active Pending
- 2021-02-18 US US17/178,464 patent/US11981349B2/en active Active
- 2021-02-18 WO PCT/US2021/018488 patent/WO2021168058A1/en active Application Filing
- 2021-02-18 JP JP2022525030A patent/JP2023514905A/ja active Pending
-
2024
- 2024-03-28 US US18/620,096 patent/US20240239374A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2021168058A1 (en) | 2021-08-26 |
US11981349B2 (en) | 2024-05-14 |
US20210253128A1 (en) | 2021-08-19 |
US20240239374A1 (en) | 2024-07-18 |
JP2023514905A (ja) | 2023-04-12 |
DE112021000216T5 (de) | 2022-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11981349B2 (en) | Behavior planning for autonomous vehicles | |
US11884294B2 (en) | Lane change planning and control in autonomous machine applications | |
US11966228B2 (en) | Safety procedure analysis for obstacle avoidance in autonomous vehicles | |
US11885907B2 (en) | Deep neural network for detecting obstacle instances using radar sensors in autonomous machine applications | |
US11531088B2 (en) | Deep neural network for detecting obstacle instances using radar sensors in autonomous machine applications | |
EP3832341A1 (en) | Deep neural network for detecting obstacle instances using radar sensors in autonomous machine applications | |
US20220138568A1 (en) | Model-based reinforcement learning for behavior prediction | |
CN114631117A (zh) | 使用机器学习的用于自主机器应用的传感器融合 | |
CN114450724A (zh) | 用于自主机器应用的多活动者环境中的未来轨迹预测 | |
US20220379917A1 (en) | Using arrival times and safety procedures in motion planning trajectories for autonomous vehicles | |
US11926346B2 (en) | Behavior planning for autonomous vehicles in yield scenarios | |
CN115718302A (zh) | 使用LiDAR数据进行的用于自主机器应用的对象跟踪 | |
CN117584956A (zh) | 用于自主***的使用未来轨迹预测的自适应巡航控制 | |
CN115701623A (zh) | 自主机器应用中范围图像映射的置信传播 | |
CN117581117A (zh) | 自主机器***和应用中使用LiDAR数据的动态对象检测 | |
CN116106905A (zh) | 基于雷达的变道安全*** | |
US20230341234A1 (en) | Lane planning architecture for autonomous machine systems and applications | |
US20230049567A1 (en) | Deep neural network for detecting obstacle instances using radar sensors in autonomous machine applications | |
CN117516565A (zh) | 用于在自主***和应用中导航的车道偏置 |
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 |