CN111133448A - 使用安全到达时间控制自动驾驶车辆 - Google Patents
使用安全到达时间控制自动驾驶车辆 Download PDFInfo
- Publication number
- CN111133448A CN111133448A CN201980004694.7A CN201980004694A CN111133448A CN 111133448 A CN111133448 A CN 111133448A CN 201980004694 A CN201980004694 A CN 201980004694A CN 111133448 A CN111133448 A CN 111133448A
- Authority
- CN
- China
- Prior art keywords
- vehicle
- trajectory
- safe
- environment
- data
- 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 description 115
- 238000012800 visualization Methods 0.000 claims description 113
- 230000033001 locomotion Effects 0.000 claims description 58
- 230000001133 acceleration Effects 0.000 claims description 52
- 230000035484 reaction time Effects 0.000 claims description 12
- 230000008859 change Effects 0.000 claims description 9
- 230000006870 function Effects 0.000 description 66
- 230000015654 memory Effects 0.000 description 61
- 238000010801 machine learning Methods 0.000 description 52
- 238000013528 artificial neural network Methods 0.000 description 48
- 238000012360 testing method Methods 0.000 description 43
- 238000004891 communication Methods 0.000 description 41
- 238000012545 processing Methods 0.000 description 39
- 238000001514 detection method Methods 0.000 description 27
- 238000013527 convolutional neural network Methods 0.000 description 26
- 239000013598 vector Substances 0.000 description 22
- 238000003860 storage Methods 0.000 description 19
- 238000012544 monitoring process Methods 0.000 description 18
- 238000004422 calculation algorithm Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 238000007726 management method Methods 0.000 description 14
- 230000000007 visual effect Effects 0.000 description 11
- 238000013459 approach Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 9
- 238000013439 planning Methods 0.000 description 9
- 238000012549 training Methods 0.000 description 9
- 238000013135 deep learning Methods 0.000 description 8
- 230000008447 perception Effects 0.000 description 8
- 239000000047 product Substances 0.000 description 7
- 239000004576 sand Substances 0.000 description 7
- 238000007796 conventional method Methods 0.000 description 6
- 238000011176 pooling Methods 0.000 description 6
- 230000009467 reduction Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000000707 layer-by-layer assembly Methods 0.000 description 5
- 238000005259 measurement Methods 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 210000002569 neuron Anatomy 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 238000012706 support-vector machine Methods 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000001815 facial effect Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 239000000446 fuel Substances 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 241001465754 Metazoa Species 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000003064 k means clustering Methods 0.000 description 2
- 238000012417 linear regression Methods 0.000 description 2
- 239000007788 liquid Substances 0.000 description 2
- 238000007477 logistic regression Methods 0.000 description 2
- 230000007787 long-term memory Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000007637 random forest analysis Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000006403 short-term memory Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 238000010146 3D printing Methods 0.000 description 1
- 101100248200 Arabidopsis thaliana RGGB gene Proteins 0.000 description 1
- 238000006424 Flood reaction Methods 0.000 description 1
- 241000282412 Homo Species 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
- 230000003213 activating effect Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000002485 combustion reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000036461 convulsion Effects 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000012423 maintenance Methods 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
- 238000010295 mobile communication Methods 0.000 description 1
- 238000010606 normalization Methods 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
- 238000002310 reflectometry Methods 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000029305 taxis Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0214—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
- G06V20/58—Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W30/00—Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
- B60W30/08—Active safety systems predicting or avoiding probable or impending collision or attempting to minimise its consequences
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W30/00—Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
- B60W30/08—Active safety systems predicting or avoiding probable or impending collision or attempting to minimise its consequences
- B60W30/095—Predicting travel path or likelihood of collision
- B60W30/0956—Predicting travel path or likelihood of collision the prediction being responsive to traffic or environmental parameters
-
- 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/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/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
- G06V20/58—Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
- G06V20/584—Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads of vehicle lights or traffic lights
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60R—VEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
- B60R2300/00—Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
- B60R2300/30—Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of image processing
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W2050/0001—Details of the control system
- B60W2050/0002—Automatic control, details of type of controller or control system architecture
- B60W2050/0014—Adaptive controllers
-
- 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
- B60W2554/404—Characteristics
- B60W2554/4041—Position
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2554/00—Input parameters relating to objects
- B60W2554/80—Spatial relation or speed relative to objects
- B60W2554/804—Relative longitudinal speed
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0242—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using non-visible light signals, e.g. IR or UV signals
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0255—Control of position or course in two dimensions specially adapted to land vehicles using acoustic signals, e.g. ultra-sonic singals
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0257—Control of position or course in two dimensions specially adapted to land vehicles using a radar
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- General Physics & Mathematics (AREA)
- Mechanical Engineering (AREA)
- Transportation (AREA)
- Multimedia (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Aviation & Aerospace Engineering (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Electromagnetism (AREA)
- Traffic Control Systems (AREA)
Abstract
在各种示例中,从至少一个传感器接收表示环境中的车辆的至少一个传感器的视场的传感器数据。至少部分地基于传感器数据,确定位于环境中的对象的参数。至少部分地基于对象的参数将对象的轨迹建模到目标位置。根据轨迹,计算车辆占据多个目标位置不会导致与对象碰撞的安全时间间隔(和/或安全到达时间)。至少部分地基于安全时间间隔(和/或安全到达时间)以及环境中的车辆的位置,可以生成和/或分析车辆的轨迹。
Description
背景技术
为了安全运行,自动驾驶车辆应该能够穿过通过环境的路径而不会与其他对象(例如,车辆,人,树,动物,建筑物等)碰撞。为了实现这一点,自动驾驶车辆在规划通过环境的路径时应该考虑其他对象。用于为自动驾驶车辆规划路径的传统方法包括生成环境中给定时间内自动驾驶车辆周围的热图,以及使用热图为车辆规划路径。为了生成热图,可以确定其他对象的位置,并且可以至少部分地基于对象位置来确定车辆在特定位置处与其他对象碰撞的概率。概率可以由热图表示,并且可以考虑其他信息,例如对象位置的不确定性。
然而,上述传统方法没有考虑沿着路径的一个或更多个点处的环境中对象的运动或状态(例如,速度,速率,加速度等)的潜在变化。结果,使用这些传统方法为自动驾驶车辆生成的路径可能无法完全解释车辆与对象之间可能的碰撞。这可能存在可能使依赖这些方法的系统不安全的一些挑战。例如,使用这些传统方法,路径可能很快随着跟随的时间越长而越来越不安全,这可能需要系统使用短路径,并且频繁地更新或生成短路径。因此,依赖于这些传统方法的系统可能没有表现出足够的远见以使系统按照完全自动驾驶期望的那样而被告知。另外,因为可能需要如此频繁地更新和/或生成路径,所以可能需要显著的计算资源。例如,可能需要大量的处理能力、能量和带宽来以允许自动驾驶车辆的安全和有效运行的速率更新和/或生成路径。
发明内容
本公开的实施例涉及使用安全到达时间控制车辆(例如,自动驾驶车辆)。与诸如以上描述的那些传统方法相反,当生成用于车辆遵循的路径或分析建议路径的安全时,当前系统考虑环境中的对象的运动和/或状态(例如,速度,速率,方向,加速度等)的潜在变化。所公开的方法可以允许在时空域中规划和测试车辆的轨迹,同时考虑到环境中对象运动的潜在变化。结果,可以强烈保证车辆不会在沿着车辆轨迹的任何点处与环境中的对象碰撞。因此,与传统方法相比,系统可以使用更长的路径,更不频繁地更新或生成路径,和/或可以最终为自动驾驶车辆生成更安全的路径。
在一些示例中,表示环境中的至少一个传感器的视场的传感器数据可用于确定位于环境中的一个或更多个对象的参数。根据轨迹,可以计算车辆占据目标位置不会导致与对象碰撞的安全时间间隔。在一些实施例中,生成具有表示安全时间间隔(例如,安全时间间隔的安全到达时间)的数据值(例如,颜色值)的图像。可以分析图像(例如,使用一个或更多个GPU),以生成车辆不太可能与另一个对象碰撞的通过环境的轨迹,和/或测试车辆的建议轨迹或路径是否不太可能导致与另一个对象碰撞。在其他实施例中,可以直接从环境中的对象的位置数据计算安全时间间隔和轨迹,而不生成图像或其他图形表示。在另外的实施例中,可以生成包括表示一个或更多个轮廓的数据的图形可视化-例如但不限于等高线图,其表示目标位置和相应的安全时间间隔和/或安全时间间隔内的安全到达时间。使用轮廓数据,可以生成和/或分析车辆的轨迹,以提供在车辆跟随轨迹时车辆不会在任何点与对象碰撞的强烈保证。在一些示例中,轮廓数据或图像被呈现为显示在显示设备上(诸如在人机界面(HMI)显示器和/或车辆的仪表板上)的可视化。
附图说明
下面参考附图详细描述用于使用安全到达时间控制自动驾驶车辆的本系统和方法,其中:
图1A是根据本公开的一些实施例的包括示例安全到达时间系统的图示;
图1B是根据本公开的一些实施例的用于安全到达时间系统的示例操作环境的图示;
图2包括根据本公开的一些实施例的用于描述运动曲线的示例的图表;
图3A是根据本公开的一些实施例的包括示例轨迹的图示;
图3B是根据本公开的一些实施例的表示安全到达时间的等高线图的一部分的图示;
图3C是根据本公开的一些实施例的表示安全到达时间的等高线图的图示;
图4A是根据本公开的一些实施例的安全到达时间的可视化的图示;
图4B是根据本公开的一些实施例的安全到达时间的可视化的图示;
图4C是根据本公开的一些实施例的安全到达时间的可视化的图示;
图5是根据本公开的一些实施例的包括具有安全到达时间的可视化的轨迹的示例的图示;
图6A是示出根据本公开的一些实施例的用于使用安全到达时间数据生成轨迹的示例过程的数据流程图;
图6B是根据本公开的一些实施例的包括一个或更多个示例机器学习模型的图示;
图7是示出根据本公开的一些实施例的用于使用安全到达时间控制自动驾驶车辆的方法的流程图;
图8是示出根据本公开的一些实施例的用于使用安全到达时间控制自动驾驶车辆的方法的流程图;
图9是示出根据本公开的一些实施例的用于使用安全到达时间控制自动驾驶车辆的方法的流程图;
图10是示出根据本公开的一些实施例的用于使用安全到达时间控制自动驾驶车辆的方法的流程图;
图11是示出根据本公开的一些实施例的用于使用安全到达时间控制自动驾驶车辆的方法的流程图;
图12A是根据本公开的一些实施例的示例自动驾驶车辆的图示;
图12B是根据本公开的一些实施例的图12A的示例自动驾驶车辆的相机位置和视场的示例;
图12C是根据本公开的一些实施例的图12A的示例自动驾驶车辆的示例系统架构的框图;
图12D是根据本公开的一些实施例的用于一个或更多个基于云的服务器和图12A的示例自动驾驶车辆之间的通信的系统图;
图13是适用于实现本公开的一些实施例的示例计算设备的框图。
具体实施方式
公开了涉及使用安全到达时间控制自动驾驶车辆的系统和方法。可以关于示例自动驾驶车辆140(在本文中可选地称为“车辆140”或“自动驾驶车辆140”)来描述本公开,其示例在本文中参考图12A-12D更详细地描述。尽管本公开主要提供使用自动驾驶车辆的示例,但是可以使用安全到达时间来控制其他类型的对象。另外,本文描述的安全到达时间、安全时间间隔和可视化可用于除控制自动驾驶车辆之外的目的。例如,可视化可以显示在HMI显示器和/或仪表板(例如,车辆的仪表板)上,而不用于控制自动驾驶车辆。
当路径规划时,传统系统可以生成环境中给定时间内自动驾驶车辆周围的热图,并使用热图为车辆规划路径。为此,可以确定其他对象的位置,并且可以基于对象位置确定车辆在特定位置处与其他对象碰撞的概率。概率可以由热图表示,并且可以考虑其他信息,例如对象位置的不确定性。然而,这些传统方法没有考虑在沿着路径的某个点处的环境中对象的运动的变化(例如,速度,速率,加速度等),从而不能完全考虑车辆和对象之间可能的碰撞。
相比之下,所公开的方法允许在时空域中规划和测试路径,同时考虑环境中对象的运动的潜在变化。作为本文描述的方法的结果,可以更强有力地保证车辆将避免与沿着车辆路径的任何点处的环境中的对象碰撞(例如,如本文所使用的,可以包括实际接触或者在没有实际接触的情况下到达对象的距离内)。
与传统方法相比,本文描述的系统可以使用更长的路径,更不频繁地更新或生成路径,和/或使用更安全的路径用于自动驾驶车辆。例如,如果车辆在当前条件下处于环境中的特定位置,则传统方法通常可以捕获车辆与对象碰撞的可能性。相比之下,本文描述的方法可以用于使用一个或更多个未来场景(例如,最坏情况场景)来推断当前条件,以便精确地定义车辆到达这些位置时安全或者期望的特定时间。这些位置和时间可以形成对象周围的时间值梯度(类似于潜在场),其捕获位置与确定车辆到达这些位置时安全或者期望的精确时间之间的关系。
在一些示例中,表示环境中的至少一个传感器的视场的传感器数据可以用于确定位于环境中的一个或更多个对象的参数。参数的非限制性示例包括位置,姿势,速度,尺寸,加速度,质量,对象的类别(例如,卡车,人,轿车等),或对象的类型(例如,制造和/或模型)。使用对象的参数,可以在一个或更多个场景下对对象朝向环境中的目标位置的轨迹进行建模。例如,每个轨迹可以模拟其中对象直接朝向给定目标位置的场景,对象开始减速之后的反应时间(例如,一旦对象识别出车辆),和/或对象完全停止(例如,没有撞击或接触车辆)的时间。
根据轨迹,可以计算车辆占据目标位置不会导致与对象碰撞的安全时间间隔。例如,每个目标位置的安全时间间隔可以在给定时间开始,并且在对象完全停止时(如果可能的话,与车辆碰撞之前)结束。使用安全时间间隔和车辆在环境中的位置,可以生成和/或分析车辆的轨迹,以提供如果车辆遵循轨迹则车辆将在任何点处避免与对象碰撞的强烈保证。例如,可以生成或分析轨迹以确保车辆将在车辆占据目标位置不会导致碰撞的相应的安全时间间隔内到达每个目标位置。
在一些示例中,生成具有数据值(例如,颜色值)的图像,所述数据值表示车辆占据目标位置不会导致碰撞的安全时间间隔的至少一部分。例如,每个数据值(例如,像素值)可以表示安全时间间隔,或安全时间间隔内的一个或更多个安全到达时间,以及一个或更多个相应的目标位置。可以分析图像(例如,使用一个或更多个GPU)以生成车辆不太可能与另一个对象碰撞的通过环境的轨迹,和/或测试建议的车辆的轨迹或路径是否不太可能导致与另一个对象碰撞。例如,数据值可以表示环境中特定目标位置的安全时间间隔内的特定安全到达时间。根据其他实施例,可以使用利用传感器数据(例如,LIDAR信息)计算的位置数据来生成安全时间间隔和/或轨迹,而不生成图像或对数据或像素值的参考。可以在时域和空间域中绘制车辆的轨迹,以确保车辆在到目标位置的轨迹中的所有计划或建议到达时间将在特定时间之前,从而提供如果车辆遵循轨迹,车辆在任何时候都不会与环境中的对象碰撞的强有力的保证。
在任何示例中,可以生成和/或确定包括用于一个或更多个轮廓(诸如在等高线图中)的数据的图形表示,其表示目标位置和相应的安全时间间隔和/或安全时间间隔内的安全到达时间。例如,每个轮廓可以对应于一组目标位置和车辆的给定安全到达时间。在使用数据值(例如,图像)来表示等高线图的示例中,对于具有相同安全到达时间(和/或安全时间间隔)的目标位置,数据值可以具有相同的值。使用轮廓数据和车辆在环境中的位置,可以生成和/或分析用于车辆的轨迹,以提供如果车辆遵循轨迹则车辆将不会在任何点处与对象碰撞的强有力的保证。例如,这可以包括生成和/或分析轨迹以确保车辆在轨迹中的车辆的相应计划或建议到达时间处不会与任何轮廓相交。在一些示例中,等高线图被显示为可视化,例如在HMI显示器和/或车辆的仪表板上。
现在参考图1A,图1A示出了根据本公开的一些实施例的包括示例安全到达时间系统100的图示。应该理解的是,本文描述的这个和其他布置仅作为示例阐述。除了所示的那些之外或代替所示的那些,可以使用其他布置和元件(例如,机器,接口,功能,顺序,和功能分组等),并且为了清楚起见,可以一起省略一些元件。此外,本文描述的许多元件是功能实体,其可以实现为离散或分布式组件或者与其他组件一起实现,并且可以以任何合适的组合和位置实现。本文描述的由一个或更多个实体执行的各种功能可以由硬件、固件和/或软件执行。例如,一些功能可以由执行存储在存储器中的指令的处理器执行。
安全到达时间系统100可以接收表示环境126的传感器数据102,并使用传感器数据102来计算自动驾驶车辆(例如车辆140)到环境126中的至少一个位置的至少一个安全到达时间。在一些示例中,至少一个安全到达时间可以用于生成自动驾驶车辆的车辆轨迹信息124(例如,表示轨迹144的数据)和/或分析表示自动驾驶车辆的建议轨迹或路径144的车辆轨迹信息124。可以在安全到达时间数据120中捕获至少一个安全到达时间,其包括所示示例中的图像。然而,在不脱离本公开的范围的情况下,可以以不同的形式捕获至少一个安全到达时间。
在一个或更多个实施例中,安全到达时间系统100包括例如通信管理器104,对象分析器106,对象建模器108,对象轨迹分析器110,可视化生成器112,建议路径或轨迹分析器114,以及路径或轨迹生成器116。
作为概述,通信管理器104可以被配置为管理由安全到达时间系统100接收的通信(例如,包括传感器数据102和/或车辆轨迹信息124)和/或由安全到达时间系统100提供的通信(例如,包括安全到达时间数据120和/或车辆轨迹信息124)。对象分析器106可以被配置为使用传感器数据102来分析环境中的对象。对象建模器108可以被配置为至少部分地基于由对象分析器106执行的分析对对象(诸如环境126中的对象的轨迹)进行建模。对象轨迹分析器110可以被配置为分析对象的轨迹,例如由对象建模器108建模的轨迹,以计算车辆140的安全到达时间。可视化生成器112可以至少部分地基于安全到达时间(诸如由安全到达时间数据120表示的图像)生成至少一个可视化。建议路径或轨迹分析器114可以被配置为使用安全到达时间数据120(例如,由安全到达时间数据120表示的图像)分析建议轨迹或路径(例如,由车辆轨迹信息124表示)。路径或轨迹生成器116可以被配置为使用安全到达时间数据120(例如,由安全到达时间数据120表示的图像)生成轨迹(例如,由车辆轨迹信息124表示)。
根据本公开的一些实施例,安全到达时间系统100可以在图1B的示例操作环境130中实现。在未示出的其他组件中,操作环境130包括一个或更多个客户端设备132,一个或更多个网络134,一个或更多个服务器设备136,一个或更多个传感器138,和一个或更多个数据存储器146。应该理解的是,图1B中所示的操作环境130是一个合适的操作环境的示例。图1B中所示的组件的每一个都可以经由任何类型的计算设备(诸如例如结合图13描述的计算设备1300中的一个或更多个)来实现。这些组件可以经由网络134彼此通信,网络134可以是有线的、无线的或两者。网络134可以包括多个网络或网络的网络,但是以简单的形式示出,以免模糊本公开的各方面。举例来说,网络134可以包括一个或更多个广域网(WAN)、一个或更多个局域网(LAN)、一个或更多个公共网络(例如因特网)和/或一个或更多个专用网络。在网络134包括无线电信网络的情况下,诸如基站、通信塔或甚至接入点(以及其他组件)的组件可以提供无线连接。在任何示例中,至少一个网络134可以对应于下面进一步描述的图12D的一个或更多个网络1290。
应该理解的是,在本公开的范围内,可以在操作环境130内采用任意数量的客户端设备132、服务器设备136、传感器138和数据存储器146。每一个可以配置为单个设备或在分布式环境中协作的多个设备。
一个或更多个客户端设备132可以包括本文参照图13描述的示例计算设备1300的组件、特征和功能中的至少一些。作为示例而非限制,客户端设备132可以体现为个人计算机(PC),膝上型计算机,移动设备,智能电话,平板计算机,智能手表,可穿戴计算机,个人数字助理(PDA),MP3播放器,全球定位系统(GPS)或设备,视频播放器,手持式通信设备,游戏设备或系统,娱乐系统,车载计算机系统,嵌入式系统控制器,遥控器,家电,消费电子设备,工作站,这些描绘设备的任何组合,或任何其他合适的设备。在任何示例中,至少一个客户端设备132可以是在此进一步详细描述的车辆(例如图12A-12D的车辆140)的一部分。
一个或更多个客户端设备132可以包括一个或更多个处理器,以及一个或更多个计算机可读介质。计算机可读介质可包括可由一个或更多个处理器执行的计算机可读指令。当由一个或更多个处理器执行时,指令可以使一个或更多个处理器执行本文描述的方法的任何组合和/或部分和/或实现图1A的安全到达时间系统100的功能的任何部分。
一个或更多个服务器设备136还可以包括一个或更多个处理器,以及一个或更多个计算机可读介质。计算机可读介质包括可由一个或更多个处理器执行的计算机可读指令。当由一个或更多个处理器执行时,指令可以使一个或更多个处理器执行本文描述的方法的任何组合和/或部分和/或实现图1A的安全到达时间系统100的功能的任何部分。在任何示例中,至少一个服务器设备136可以对应于在此进一步详细描述的图12D的一个或更多个服务器1278。
一个或更多个数据存储器146可包括一个或更多个计算机可读介质。计算机可读介质可包括可由一个或更多个处理器执行的计算机可读指令。当由一个或更多个处理器执行时,指令可以使一个或更多个处理器执行本文描述的方法的任何组合和/或部分和/或实现图1A的安全到达时间系统100的功能的任何部分。一个或更多个数据存储器146(或计算机数据存储器)被描绘为单个组件,但是可以体现为一个或更多个数据存储器(例如,数据库)并且可以至少部分地在云中。一个或更多个数据存储器146中的一个或更多个可以对应于图12C的数据存储器中的一个或更多个。
虽然描绘在一个或更多个服务器设备136和一个或更多个客户端设备132的外部,但一个或更多个数据存储器146可以至少部分地体现在一个或更多个服务器设备136和/或一个或更多个客户端设备132的任何组合上(例如,作为存储器1304(图13))。例如,一些信息可以存储在一个或更多个客户端设备132上,并且其他和/或重复信息可以存储在外部(例如,在一个或更多个服务器设备136上)。因此,应当理解,一个或更多个数据存储器146中的信息可以以任何合适的方式分布在一个或更多个数据存储器上以便存储(可以在外部托管)。例如,一个或更多个数据存储器146可以包括一个或更多个服务器设备136的一个或更多个计算机可读介质中的至少一些和/或一个或更多个客户端设备132的一个或更多个计算机可读介质中的至少一些。
一个或更多个传感器138包括至少一个能够生成表示环境的至少一些方面的传感器数据的传感器。例如,一个或更多个传感器138可以生成图1A的传感器数据102。一个或更多个传感器138可以包括一个或更多个全球导航卫星系统(GNSS)传感器(例如,一个或更多个全球导航系统(GPS)传感器)、一个或更多个RADAR传感器、一个或更多个超声波传感器、一个或更多个LIDAR传感器、一个或更多个惯性测量单元(IMU)传感器(例如,一个或更多个加速度计,一个或更多个陀螺仪,一个或更多个磁罗经,一个或更多个磁力计等)、一个或更多个麦克风、一个或更多个立体相机、一个或更多个广视相机(如鱼眼相机)、一个或更多个红外相机、一个或更多个环绕相机(例如,360度相机)、一个或更多个长程和/或中程相机、一个或更多个速度传感器(例如,用于测量车辆140的速度)、一个或更多个振动传感器、一个或更多个转向传感器、一个或更多个制动传感器(例如,作为制动传感器系统的一部分)和/或其他传感器类型的任何组合。
参考图12A-12C,传感器数据102可以由例如但不限于一个或更多个全球导航卫星系统(GNSS)传感器1268(例如,一个或更多个全球定位系统传感器)、一个或更多个RADAR传感器1260、一个或更多个超声波传感器1262、一个或更多个LIDAR传感器1264、一个或更多个惯性测量单元(IMU)传感器1266(例如,一个或更多个加速度计,一个或更多个陀螺仪,一个或更多个磁罗经,一个或更多个磁力计等)、一个或更多个麦克风1296、一个或更多个立体相机1268、一个或更多个广视相机1270(例如,鱼眼相机)、一个或更多个红外相机1272、一个或更多个环绕相机1274(例如,360度相机)、一个或更多个长程和/或中程相机1298、一个或更多个速度传感器1244(例如,用于测量车辆140的速度)、一个或更多个振动传感器1242、一个或更多个转向传感器1240、一个或更多个制动传感器(例如,作为制动传感器系统1246的一部分)和/或其他传感器类型生成。
在一些示例中,传感器数据102可以由前向和/或侧向相机生成,诸如一个或更多个广视相机1270,一个或更多个环绕相机1274,一个或更多个立体相机1268,和/或一个或更多个长程或中程相机1298。在一些示例中,可以使用多于一个相机或其他传感器来合并多个视场(例如,图12B的长程相机1298、前向立体相机1268、和/或前向广视相机1270的视场)。
通常可以使用一个或更多个客户端设备132和一个或更多个服务器设备136的任何组合来实现图1A的组件。因此,应当理解,安全到达时间系统100可以通过共同提供本文描述的功能的布置在分布式环境中的多个设备来提供,或者可以在单个设备(例如,车辆140)上实现。因此,尽管用于描述安全到达时间系统100的一些示例可以指代特定设备30和/或配置,但是预期这些示例可以更一般地适用于上述设备和配置的潜在组合。例如,在一些实施例中,用于生成传感器数据102的一个或更多个部分的至少一些传感器138可以分布在环境中的多个车辆和/或对象中和/或至少一个传感器138可以包括在车辆140中。
如上所述,通信管理器104可以被配置为管理由安全到达时间系统100接收的通信(例如,包括传感器数据102和/或车辆轨迹信息124)和/或由安全到达时间系统100提供的通信(例如,包括安全到达时间数据120和/或车辆轨迹信息124)。
在作为网络通信接收和/或提供通信的情况下,通信管理器104可以包括网络接口,其可以使用一个或更多个无线天线1226和/或一个或更多个调制解调器通过一个或更多个网络进行通信。例如,网络接口可以能够通过长期演进(LTE)、宽带码分多址(WCDMA)、通用移动电信服务(UMTS)、全球移动通信系统(GSM)、CDMA2000等进行通信。网络接口还可以使用一个或更多个局域网(诸如蓝牙、蓝牙低功耗(LE)、Z-Wave、ZigBee等)和/或一个或更多个低功率广域网(LPWAN)(诸如长程广域网(LoRaWAN)、SigFox等)在环境中的对象(例如,车辆,移动设备等)之间实现通信。然而,通信管理器104不需要包括网络接口,例如,安全到达时间系统100完全在自动驾驶车辆(例如,车辆140)上实施的情况。在一些示例中,本文描述的一个或更多个通信可以在图13的总线1302上的计算设备1300的组件之间。
可以使用传感器138的任何组合来生成传感器数据102。例如,传感器数据102可以包括表示一个或更多个图像的图像数据,表示视频的图像数据(例如,视频的快照),和/或表示传感器(例如,图12B的一个或更多个LIDAR传感器1264,一个或更多个RADAR传感器1260,一个或更多个相机等)的视场的传感器数据。在所示的示例中,传感器数据102包括表示车辆140的各个相机的视场的图像数据,其可以包括一个或更多个图像118A、118B和118C。图像118A、118B和118C可以描绘环境126的区域,其中区域可以包括任意数量的对象,其示例包括对象128A、128B、128C和128D。对象可以包括车辆、人(例如,行人)、摩托车、骑自行车者、树、动物、建筑物、标志或其他结构、车辆140能够在环境126内碰撞的对象或障碍物的任何组合。
传感器数据102可以被提供给对象分析器106并且由对象分析器106使用以分析环境126中的对象。例如,对象分析器106可以检测对象128A、128B、128C和128D中的一个或更多个,识别对象中的该一个或更多个,和/或使用传感器数据102确定对象中的该一个或更多个的参数。为此,对象分析器106可以使用一个或更多个机器学习模型。例如但不限于,一个或更多个机器学习模型可以包括任何类型的机器学习模型,诸如使用线性回归、逻辑回归、决策树、支持向量机(SVM)、朴素贝叶斯、k-最近邻(Knn)、K均值聚类、随机森林、降维算法、梯度增强算法、神经网络(例如,自动编码器,卷积,递归,感知机,长/短期记忆/LSTM,Hopfield,Boltzmann,深度信念,反卷积,生成对抗,液体状态机等)的一个或更多个机器学习模型,和/或其他类型的机器学习模型。
对象分析器106可以使用传感器数据102确定的对象的参数的示例包括位置(例如,在环境126中,诸如位置坐标)、姿势、当前和/或观察到的速度、最大速度、预测速度、至少一个尺寸(例如,物理尺寸,例如长度,宽度,占地面积,高度等)、当前和/或观察到的加速度或减速度、最大加速度或减速度、预测加速度或减速度、质量、反应时间和/或其他参数(例如但不限于本文所述的那些)中的一个或更多个。参数中的一个或更多个可以表示对象的观察到的特性(例如,定位/位置),并且参数中的一个或更多个可以表示对象的推断特性(例如,最大加速度)。
在一些示例中,对象的一个或更多个参数可以是一个或更多个机器学习模型(诸如将至少一些传感器数据102作为一个或更多个输入接收的卷积神经网络)的一个或更多个输出。在另外的示例中,对象分析器106可以使用一个或更多个机器学习模型的至少一个来对由传感器数据102捕获的对象中的一个或更多个进行分类。分类的示例包括固定、移动、车辆、汽车、卡车、行人、骑自行车者、摩托车等。
对象分析器106可以使用分类来确定参数中的一个或更多个。例如,可以提供分类作为一个或更多个机器学习模型的输入用于确定参数中的一个或更多个。作为另一示例,一个或更多个分类和/或其他对象信息(例如,其他参数)可以应用于一个或更多个查找表,或者用于查找、确定和/或计算参数中的一个或更多个。作为示例,分类可以包括车辆型号或类型(例如,轿车,卡车,摩托车,SUV),其具有一个或更多个预定形状和/或尺寸,制动能力,处理能力,加速能力,最大速度,最大加速度等,可用于定义一个或更多个参数。在一些示例中,可以训练诸如卷积神经网络的一个或更多个机器学习模型以同时输出对象的分类和对象的参数中的一个或更多个。
作为示例,对象分析器106可以使用一个或更多个机器学习模型(例如,一个或更多个神经网络)来实现对象感知,所述机器学习模型可以被特定地配置(例如,训练)以识别特定对象和/或对象特征。由对象分析器106使用的一个或更多个经训练的机器学习模型(例如,训练和部署以供安全到达时间系统100使用)可以确定对象的存在和/或位置(例如,X和Y坐标),对象的姿势(cp),障碍物的尺寸(例如,宽度和长度),和/或对象的分类。此外,经训练的机器学习模型(例如,一个或更多个神经网络)可用于确定对象的最大加速度(AMAX+)和最大减速度(AMAX-)。
作为另外的示例,可以使用识别或输出对象类型(例如,对象分类)和/或分配相应的反应时间的经训练的机器学习模型(例如,一个或更多个神经网络)确定对象的反应时间(TREACT)。对象的反应时间可表示对象的运动将开始受环境126中另一个对象(诸如车辆140)的存在影响时或直到此时的未来时间。这可以对应于对象感知、注意和/或确定可能与环境中目标位置处的另一个对象发生碰撞。例如,盯着他或她的智能手机的行人可能具有长反应时间TREACT。同样地,把目光从目标位置移开的骑自行车者或摩托车手可以被认为比例如专心的驾驶员具有更长的反应时间TREACT。相比之下,作为自动驾驶车辆(例如,机器人出租车)的对象可以具有短反应时间TREACT,因为自动驾驶车辆可能不易分心,并且可以被假定为监测其路径中的对象且比人类驶员更快地对对象作出反应。
作为示例,对象分析器可以使用从对象128A、128B、128C和128D中的一个或更多个、一个或更多个传感器138和/或操作环境130中的一个或更多个客户端设备132接收的传感器数据102和/或其他信息检测对象128A、128B、128C和128D中的一个或更多个,识别一个或更多个对象128A、128B、128C和128D中的一个,和/或确定对象128A、128B、128C和128D中的一个或更多个(例如,在车辆140和/或一个或更多个服务器1278上执行)的参数和/或分类。例如,通信管理器104可以通过一个或更多个网络134接收相应的数据。此外,一个或更多个对象的对象分析器106可检测、识别和/或确定可能无法由传感器数据102直接表示、但可以由对象分析器106推断、预测或确定存在或可能存在(例如,至少部分地基于传感器数据102)的参数和/或分类。这可以用于解决安全到达时间系统100在感知中的盲角或点。
对象建模器108可被配置为部分地基于由对象分析器106执行的分析(例如,至少部分地基于与一个或更多个对象相关联的一个或更多个参数)对环境126中的对象128A、128B、128C和128D中的一个或更多个建模。附加地或替代地,对象建模器108可以从建模(例如,轨迹建模)中过滤出对象128A、128B、128C和128D中的一个或更多个。例如,对象建模器108可以至少部分地基于对象的分类(例如,作为静止的)和/或至少部分地基于对象的类型过滤出对象。附加地或替代地,对象建模器108可以至少部分地基于一个或更多个对象的一个或更多个参数(诸如由对象分析器106确定的任何参数)来过滤出对象128A、128B、128C和128D中的一个或更多个(例如,通过至少部分地基于过滤的对象的位置超出距车辆140的阈值距离过滤出对象)。该过滤可以降低用于确定安全到达时间的处理功率,并且还可以用于改进车辆与相邻车道中平行驾驶的关注车辆或相对于迎面而来的交通车道驾驶场景中的轨迹建模和生成。
对象建模器108可以使用任何合适的方法来对环境126中的对象进行建模,例如通过将每个对象表示为例如径向距离函数,或者环境126中的对象的已知位置的列表(例如,表示为平面)。例如,可以使用至少一个尺寸参数(例如,宽度,长度)、位置参数(例如,环境126中的X、Y)、和/或使用对象分析器106确定的对象的姿势来定义对象的表示。可选地,安全缓冲器可以包括在对象的表示中(例如,通过扩展其尺寸)。用于对象的模型还可以包括对象的一个或多个运动向量,诸如当前和/或瞬时运动向量(例如,从传感器数据102导出的观察到的运动向量)。例如,每个对象可以具有使用利用对象分析器106为对象确定的至少一个参数定义的运动向量和加速度向量(例如,使用对象的姿势、加速度/减速度和速度)。对象建模器108还可以使用其最大加速度和/或减速度参数、最大速度参数和/或质量参数来对对象建模。
对象建模器108可以使用对象的表示或模型来对对象的一个或更多个轨迹建模。为此,对象建模器108可以将一个或更多个运动曲线应用于对象的表示,以定义沿着环境126中的对象的轨迹在特定时间和位置处对象的速度和加速度。
现在参考图2,图2包括用于描述可用于定义对象的建模轨迹的运动曲线的示例的图表200。图表200包括绘图210,其可以对应于定义对象根据轨迹随时间的运动的运动曲线。对象建模器108可以例如使用一个或更多个函数(例如,连续函数)和/或规则表示运动曲线,其用于定义对象的绘图210。
定义绘图210的运动曲线可以包括多个阶段,诸如对象遵循以最大加速度AMAX+指向环境126中的目标位置(例如,即使对象当前移动离开对象)、可选地受最大速度VMAX或速度上限VCAP限制的轨迹的阶段,对象开始以最大减速度AMAX-(可选地与AMAX+相同)减速直到对象完全停止的阶段,和/或对象保持停止的阶段。运动曲线可以包括对象建模器108用于设置对象在运动曲线中开始减速的时间的参数,例如反应时间TREACT(例如,如本文所述的)。观察到的加速度AOBS可以用于代替最大加速度AMAX+或最大减速度AMAX-并且可以通过安全因子来调节,以允许观察到的加速度不精确的可能性,和/或允许加速度可能会增加的可能性。
对应于图2的运动曲线可以用于表示好像车辆140在一个或更多个时间点位于目标位置一样计算的为了车辆安全的最坏情况场景。这些场景中的反应时间TREACT可以表示对象(例如,另一车辆)的操作者(例如,驾驶员)注意到目标位置处的车辆并且试图避免在目标位置处的碰撞所花费的时间。然而,对象建模器108可以使用其他运动曲线来对各种对象中的任何一个的一个或更多个轨迹建模,轨迹可以包括任何数量的阶段。而且,运动曲线中的一个或更多个可能比所描述的运动曲线更复杂,包括关于进入阶段的条件或规则或者在至少部分地基于对象建模器108分析和应用表示在一个或更多个给定时间环境126的一个或更多个状态的不同特征的变量来改变对象的运动的阶段期间使用的条件或规则。
由对象建模器108建模的轨迹可以具有开始时间TS和结束时间TE,TS代表轨迹的开始时间,TE代表轨迹的结束时间。图2示出了具有起始速度VS和起始加速度AS的开始时间TS的特定示例。对象建模器108可以将起始速度VS和起始加速度AS设置为由对象分析器106提供的当前、观察到的和/或瞬时速度和加速度参数,或者可以从这些值推导起始速度VS和/或起始加速度AS。
图2中的示例表示在轨迹的开始时间TS处,对象的起始速度VS和起始加速度AS相对于车辆140是正的,意味着对象以增加的速率朝向车辆140移动。然而,如果对象在开始时间TS初始地远离车辆140移动,则对象的起始速度VS和/或起始加速度AS可以相对于车辆140为负。在其他示例中,起始速度VS或起始加速度AS可以为零。这可以取决于在开始时间TS期间对象所处的运动曲线的阶段。
图2还示出了具有结束速度VE和结束加速度AE的结束时间TE的特定示例。如图所示,结束速度VE和结束加速度AE可以相对于车辆140为零,指示对象已经在轨迹的末端处完全停止。然而,在其他示例中,结束速度VE和/或结束加速度AE在轨迹的末端可以是正的或负的。例如,开始时间TS可以对应于沿着绘图210的任何位置,取决于在轨迹的开始处对象处于运动曲线中的哪个阶段,并且类似地,结束时间TE可以对应于开始时间TS之后沿着绘图210的任何位置,取决于在轨迹末端对象处于运动曲线中的阶段(例如,对象可能尚未完全停止)。此外,在对象建模器108使用相同的运动曲线对多个对象的轨迹进行建模的情况下,在同一时间不同的对象可能处于运动曲线的不同阶段。例如,一个对象可以在其建模的轨迹中在开始时间TS减速到停止,并且可以保持停止一段时间直到结束时间TE,而第二对象可以在其建模轨迹中在开始时间TS朝向车辆140加速,并且可以在结束时间TE以最大速度VMAX行进。
图2示出了在一些示例中,对象建模器108可以使用对象的最大速度VMAX、对象的最大加速度AMAX+或对象的最大减速度AMAX-中的一个或更多个来应用运动曲线。这些值可以表示对象的运动能力的限制,并且这些值中的任何值可以对应于使用对象分析器106为对象确定的参数,如本文所述。举例来说,绘图210包括区域220,其中对象被建模以在建模的轨迹期间达到最大速度VMAX。然而,在其他轨迹中,对象可能无法在轨迹期间达到最大速度VMAX、最大加速度AMAX+或最大减速度AMAX-中的一个或更多个,或者对象建模器108可能在应用曲线时不使用这些因素中的一个或更多个。
图2还示出了速度上限VCAP,其可以在建模轨迹中考虑。速度上限VCAP可以大于最大速度VMAX并且可以对应于观察到的大于最大速度VMAX的对象速度。例如,速度上限VCAP可以对应于对象分析器106根据表示对象行进得比最大速度VMAX快或者能够行进得比最大速度VMAX快的传感器数据102确定的参数。例如,对象建模器108可以在应用对象的运动曲线时初始地使用最大速度VMAX来对对象的轨迹建模。在确定对象正在行进或已经行进得比最大速度VMAX快之后,对象建模器108可以改为使用速度上限VCAP来更新建模的轨迹或者为对象建模不同的轨迹。类似的方法可用于最大加速度或减速度。
现在参考图3A,图3A是根据本公开的一些实施例的包括示例轨迹302的图示。轨迹302可以对应于关于图2描述的建模轨迹。对象建模器108可以使用对象的开始位置XS对对象Y1的轨迹302建模,开始位置XS对应于在开始时间TS处环境126中的对象Y1的定位或位置。对象建模器108还可以使用对象Y1的结束位置X1对轨迹302建模,结束位置X1对应于在结束时间TE处环境126中的对象Y1的定位或位置。
对象Y1的开始位置XS可以对应于使用对象分析器106确定的位置参数。位置参数可以例如由对象分析器106实时或接近实时地确定,使得开始位置表示环境126中对象Y1的基本当前位置。然而,在一些示例中,开始位置XS可以是环境中对象的预测当前或未来位置,例如对象Y1被遮蔽不会由一个或更多个传感器138感知的情况,对象Y1不一定存在于环境中的情况,但是被建模以考虑安全到达时间系统100或其他场景的感知中的盲角或点。
在图3A中,对象建模器108可以将轨迹302建模为直接朝向对象Y1的结束位置X1(例如,正在确定安全到达时间的环境126中的目标位置),如图所示。对象建模器108可以结合上述运动曲线使用该方法来模拟对象Y1的操作者尝试尽可能快速和直接地到达终点位置X1的最坏情况场景。对象建模器108可以使用类似的方法来确定环境126中的每个目标位置的安全到达时间以及环境中的每个建模对象,或者一个或更多个轨迹可以遵循其他路径和/或使用不同的运动曲线。在一些示例中,对象建模器108可以做出使用默认路径和/或运动曲线来对轨迹建模的确定(例如,对应于绘图210和直接路径的运动路径),并且,对象建模器108可以做出使用不同路径和/或运动曲线来对轨迹建模的确定(例如,用于对象的计划轨迹是已知的,例如在由对象提供之后)。
对象轨迹分析器110可以被配置为分析由对象建模器108建模的轨迹,以计算车辆(例如,车辆140)的一个或更多个安全到达时间和/或安全时间间隔。例如,对象轨迹分析器110可以使用建模轨迹来确定对象在任何给定时间将位于环境126中或者可能位于环境126中的位置,以及对象在这些位置处的速度和加速度。因此,对象轨迹分析器110可以计算车辆(例如,车辆140)可以在什么时间安全地占据这些位置而不会导致与对象的碰撞。这些时间可以被称为车辆到这些位置的安全到达时间。然而,安全到达时间可以替代地在其他标准下评估,例如导致的碰撞将具有小于可以至少部分地基于对象的建模质量和速度而计算的阈值的影响,或者碰撞的发生概率小于阈值。
在一些示例中,为了确定结束位置X1的至少一个安全到达时间,对象建模器将轨迹302建模到结束位置X1。至少部分地基于计算使得对象Y1将在轨迹302的结束时间TE处(或在其他示例中在此之前)完全停止,对象轨迹分析器110可以确定结束时间TE和/或在轨迹302中结束时间TE之前的任何时间是车辆到结束位置X1的安全到达时间。例如,给定环境中的目标位置P,因为可以确定结束位置X1具有结束时间TE,其中对象Y1可以在对象的轨迹的最坏情况场景下停在目标位置P,所以结束时间TE可以被认为是目标位置P的安全到达时间。因此,可以假设任何更早时间也是到目标位置P的安全到达时间。因此,轨迹302的开始时间TS和结束时间TE可以构成车辆相对于对象Y1和目标位置P的安全时间间隔。在其他示例中,对象Y1可能不会在轨迹302的结束时间TE之前完全停止,并且可以替代地具有结束位置X1’。对象轨迹分析器110可以通过测试二次抛物线的最大值是否占据建模对象的至少一点比该至少一点与结束位置X1’之间的起始距离远来检查该条件。在这种情况下,可以确定目标位置P和对象Y1的安全到达时间为零,因为对象Y1可能使其自身处于已经致力于通过目标位置P的状态。
可以将相同到达时间设置为零的另一种情况可以是对象Y1从开始被提交到目标位置P,并且在相反方向上的加速度的抛物线穿过目标位置P。作为示例,如果目标位置P处于轨迹302的起始位置XS,则可能发生这种情况。例如,当车辆140跟随对象Y1时,可能发生这种情况,对象Y1是快速远离车辆140(其示例在图3A中示出)移动的引导车辆。在那种情况下,车辆140可能不可避免地经过它前面的一些位置(并且通常穿过它们)。这里,可以清楚的是抛物线超过目标位置P一段时间间隔(例如,不安全的时间间隔)。
相对于障碍点Y(例如,平面中的起始位置XS)和目标点X(例如,平面中的目标位置P)处的对象Y1计算安全到达时间的非限制示例如下。给定障碍点Y处的对象Y1具有速度向量v(例如,平面中的起始速度VS)、标量最大速度vmax(例如,最大速度VMAX)、标量最大加速度amax(例如,最大加速度AMAX)和反应时间treact(例如,反应时间TREACT),标量距离d可以计算为
d=|X-Y|
并且标量(有符号)速度v可以计算为
vcap=max(v,vmax)
对于平面中的每个目标位置,可以并行计算来自所有对象(例如,点)的所有安全到达时间的最小值。如果输入是径向距离函数,则对于光线上比径向距离函数更远的所有点,可以将时间设置为零。可视化生成器112可以使用该方法来产生可视化(例如,图像)。此外,在一些示例中,可以在任何合适的时间计算任何对象的任何安全到达时间例如以测试和/或生成路径和/或轨迹(例如,根据需要,可以不涉及生成可视化)。
在任何示例中,对象建模器108和对象轨迹分析器110可以考虑用于确定安全到达时间的附加因素。例如,可以使用由对象分析器102接收和处理的传感器数据102来估计目标位置P的斜率。到目标点的上坡可以用作减小到目标点的加速度(或增加减速度)的因素。类似地,可以使用由例如车辆140的感知块接收和处理的信息来估计路面系数μ(例如,类似于可以由对象分析器106执行的对象感知)。例如,一个或更多个经训练的神经网络可以检测冰、雪或油路的存在并返回路面系数μ,其可以用作将最大减速度减小到目标位置P的因子。
图3A还示出了对象建模器108可以建模的其他轨迹的结束位置X2、X3和X4,例如使用对应于绘图210的运动曲线或者一个或更多个不同的运动曲线和/或到结束位置X2、X3和X4中的每一个的直接路径(或不同类型的路径)。提供结束位置X2、X3和X4作为轨迹中的位置的示例,其具有共同的至少一个安全到达时间(和可能安全的时间间隔)。这可以在图3A中表示,时空域中绘制的结束位置X1、X2、X3和X4形成轮廓306的点,该轮廓表示在环境126中的位置之间共享的安全到达时间。轮廓306可以附加地或替代地是表示位置的共享安全时间间隔(例如,轮廓306表示间隔的结束时间)。如下所述,安全到达时间系统100可以使用轮廓306来确定一个或更多个位置对于车辆140在给定时间占用是否安全。例如,安全到达时间系统100可以使用轮廓306来检测在时空域中车辆140与轮廓306的潜在交叉点,指示一个或更多个给定时间和一个或更多个位置将是不安全的,因为可能发生碰撞。
虽然图3A描述了关于对象轨迹分析器110在计算车辆的一个或更多个安全到达时间和/或安全时间间隔时分析关于单个对象Y1的位置和时间,但对象轨迹分析器110可以考虑任意数量的对象,例如使用传感器数据102建模的各种对象中的任何一个。例如,图3B和3C示出了表示安全到达时间的轮廓,其考虑了环境中的多个对象。
在图3B中,对象Y1可以对应于图1A的对象128A,对象Y2可以对应于图1A的对象128B,对象Y3可以对应于未在传感器数据102中表示但是使用对象建模器108建模的对象(或者可以对应于对象128C)。对于任何目标位置P1、P2、P3、P4、P5、P6和P7,对象轨迹分析器110可以使用在特定目标位置的建模的对象和轨迹中最早出现的对象的安全到达时间和/或安全时间间隔。例如,对于目标位置P1,对象轨迹分析器110可以使用对象Y1的安全到达时间,因为它发生在对于目标位置P1而言对象Y2和Y3的安全到达时间之前。
对象建模器108针对目标位置P1、P2、P3使用的安全到达时间和/或安全时间间隔可以在图3B中表示,绘制在时空域中,形成表示沿着环境126中的相应位置的安全到达时间T1(和/或安全时间间隔)的轮廓308(例如,类似于轮廓306)的点,但是考虑更多对象。类似地,对象建模器108针对目标位置P4、P5、P6和P7使用的安全到达时间和/或安全时间间隔可以在图3B中表示,绘制在时空域中,形成表示沿着环境126中的位置的安全到达时间T2(和/或安全时间间隔)的轮廓310的点。
图3C示出了包括图3B的轮廓308和310的附加部分以及不同安全到达时间和/或安全时间间隔和环境126中的位置的其他轮廓的等高线图300。图3C中的区域330可以对应于图3B中的区域330。尽管图3C的轮廓对应于多个对象,但在其他示例中,这些轮廓中的任何一个可以对应于单个对象。此外,可存在无限数量的轮廓,每个轮廓对应于不同的安全到达时间和/或安全时间间隔(如果有的话)。在任何示例中,安全到达时间数据120可以表示轮廓、轮廓的部分和/或对应的目标位置和安全到达时间中的一个或更多个。此外,在一些示例中,安全到达时间数据120可以包括表示捕获任何前述信息的一个或更多个图像的图像数据。例如,图像可以类似于图1A中所示的图像。可视化生成器112可以至少部分地基于安全到达时间来生成图像作为可视化。用作可视化的图像的数据值(例如,像素值,向量图形值,模拟值,数字值等)可以并行计算,例如通过使用可以在一个或更多个图形处理单元(GPU)(例如图13的一个或更多个图形处理单元(GPU)1308,图12C的一个或更多个GPU 1208和/或图12C的一个或更多个GPU 1220)上发生的并行处理。
图1A中所示的图像具有代表安全时间间隔的至少一部分的数据值(例如,像素值,向量图形值,模拟值,数字值等)。例如,可视化生成器112可以使用可视化的一个或更多个像素或点来表示安全到达时间,例如通过设置亮度值,颜色值,和/或与像素或点相关联或用于生成像素或点的其他值。由可视化生成器112生成的可视化的每个点或像素可以表示安全到达时间和环境126中的位置。可视化中的点或像素的位置可以对应于环境126中的位置,并且可视化中的点或像素的着色或其他属性可对应于该位置的安全到达时间。
在图1A的图像中,每个安全到达时间和相关联的像素/点和位置可以对应于安全时间间隔的结束时间,并且所有安全时间间隔可以具有相同的开始时间。使用这种方法,像素或点的数据值(例如,颜色值)可以形成包括轮廓的梯度的等高线图,如图1A中所示。在所示的示例中,白色像素或点具有无限安全时间间隔值,指示这些位置被认为是安全的,而不管车辆140何时到达它们(例如,如果车辆在那些位置,则相应的对象可以总是在与车辆碰撞之前停止)。相反,黑色像素或点具有零的安全时间间隔值,指示这些位置被认为是不安全的,而不管车辆140何时到达它们(例如,如果车辆在那些位置,则在与车辆碰撞之前相应的对象可能永远不会停止)。从黑色到白色的像素或点值的梯度可以对应于从零到无穷大的安全时间间隔的增加。作为示例,可视化生成器112可以通过将某位置的安全到达时间应用于函数来确定该位置的数据值,该函数可以具有安全到达时间和数据值之间的线性关系。
如图所示,箭头150(不是安全到达时间数据120的一部分)可以指示车辆140在安全时间间隔的开始时间的位置。作为示例,安全到达时间可以相对于车辆140的位置和开始时间绘制。箭头152(不是安全到达时间数据120的一部分)可以指示对象128A在开始时间的位置,并且箭头154(不是安全到达时间数据120的一部分)可以指示对象128B在开始时间的位置。
图4A、4B和4C示出了根据本公开的一些实施例的安全到达时间的可视化402、404和406的进一步示例。在一些示例中,除了图1A中所示的可视化之外或代替图1A中所示的可视化,可视化生成器112可以生成可视化402、404或406中的一个或更多个。可视化生成器112可以确定环境中的位置是否都具有落入特定时间范围内的安全到达时间。可视化生成器112可以将与具有相同数据值的那些位置相对应的像素或点设置为表示特定时间范围。可以将针对不同时间范围的像素或点设置为不同的数据值。因此,比较图1A至图4A和图4B的可视化,在图1A中形成轮廓梯度的一部分的相邻的像素或点相反可以具有一个或更多个相同的数据值(例如,相同的颜色,相同的亮度等),从而被分组到单个轮廓。在一些示例中,可视化生成器112可以使用图1A中所示的可视化生成类似于可视化402的可视化。
可视化生成器112可以使用类似的过程生成图4A的可视化402和图4B的可视化404。然而,对象轨迹分析器110可能已经在关于什么被认为是安全到达时间的不同约束或假设下确定了这些可视化的安全到达时间。作为示例,可视化402可以至少部分地基于以下约束:根据一个或更多个运动曲线对象可以在建模轨迹中占据的环境中的任何位置是不安全的。使用此方法计算的安全到达时间可称为最晚安全到达时间(LSA)。但是,在其他方法中可以放宽这种约束。例如,可视化404的安全到达时间可以使用与可视化402类似的方法来计算,但是没有根据一个或更多个运动曲线对象可以在建模轨迹中占据的环境中的任何位置是不安全的约束。因此,使用该方法计算的安全到达时间可以比相应的LSA更早发生,并且可以被称为最早安全到达时间(ESA)。例如,ESA可以表示车辆140可以占据目标位置而不会导致与对象的碰撞的最早时间。
例如,在对象从开始被提交到目标位置P并且在相反方向上的加速度的抛物线穿过目标位置的情况下,对于ESA,对象轨迹分析器116可以不认为目标位置不安全。例如,当车辆140跟随对象时可能发生这种情况,该对象是远离车辆140快速移动的引导车辆。在这种情况下,尽管抛物线已经超过目标位置一段时间间隔,该时间间隔可能仍然对应于ESA间隔。为了计算ESA,轨迹建模器302可以使用其中对象突然并且以最大力(例如,以最大减速度AMAX-,或者使用观察到的加速度AOBS,可选地具有安全系数调节)制动的运动曲线。给定该建模轨迹,对象轨迹分析器116可以确定对象何时(如果有的话)将是远离目标位置的安全距离,使得车辆140可以安全地到达目标位置。该时间可以用作ESA间隔。以这种方式,可以创建ESA等高线图,表示每个目标位置处的ESA(以及可选的ESA间隔)。
在任何示例中,对安全到达时间的约束可以包括:自动驾驶车辆140始终处于车辆140可以施加至少最大制动曲线以在没有碰撞的情况下完全停止的状态。在一些示例中,使用舒适制动曲线代替最大制动曲线。在一些示例中,多个制动曲线是可用的并且可以在不同场景下用作约束(例如,由对象轨迹分析器基于环境的一个或更多个感知状态选择)。
可视化生成器112可以使用在不同约束或假设下生成的安全到达时间生成图4C的可视化。例如,可以针对环境中的目标位置使用LSA和ESA生成可视化406。在所示的示例中,在图4C中表示为白色区域的具有第一数据值30(例如,第一颜色值)的像素或点对应于以下环境中的位置:根据每个约束或假设(例如,ESA和LSA两者)车辆可以在至少一段时间内安全地占据位置而不会导致碰撞。在图4C中表示为阴影区域的具有第二数据值(例如,第二颜色值)的像素或点对应于以下环境中的位置:根据每个约束或假设(例如,ESA和LSA两者),确定车辆不可能在至少一段时间内安全地占据位置而不会导致碰撞。
例如,在图4A-4C中,可以使用安全时间范围t0、t1、t2、t3和t4标记可视化区域。安全时间范围t0、t1、t2、t3和t4可以在时间上从左到右增加,并且可以共同形成跨越安全时间范围t0的开始时间到安全时间范围t4的结束时间的连续时间范围。因为例如对应于图4B的可视化404的区域412的位置具有在图4A的可视化402的区域410中的相应位置的LSA之后发生的ESA,所以可以确定在那些位置处没有时间可以满足关于占据位置的安全性的LSA和ESA约束或假设(例如,图4A中的区域410的安全时间范围t2在图4B中的区域412的安全时间范围t3之前)。
在本文描述的示例中,其中分析表示安全到达时间的可视化以测试车辆的时间和位置的安全性,可视化406可以用作掩模以指示可视化区域和不需要被作为车辆位置的候选者分析的环境126中的对应位置。这可以减少到安全到达时间的使用多种方法分析和/或生成轨迹的处理时间。例如,可视化402可以使用可视化406来掩蔽并且用于分析或生成用于车辆的轨迹和/或可视化404可以使用可视化406来掩蔽并且用于分析或生成用于车辆的轨迹。
使用可视化生成器112生成的可视化可用于各种目的。例如,建议路径或轨迹分析器114可以被配置为使用安全到达时间数据120(例如,由安全到达时间数据120表示的图像)来分析建议轨迹或路径(例如,由车辆轨迹信息124表示)。路径或轨迹生成器116可以被配置为使用安全到达时间数据120(例如,由安全到达时间数据120表示的图像)生成轨迹(例如,由车辆轨迹信息124表示)。建议路径或轨迹分析器114或路径或轨迹生成器116可以使用上述可视化的任何组合来执行这些过程。然而,在一些示例中,建议路径或轨迹分析器114或路径或轨迹生成器116可以以不同形式使用安全到达时间数据120,并且对象轨迹分析器110可以根据需要为环境126中的位置计算安全到达时间和/或安全时间间隔。
在一些示例中,车辆轨迹信息124可以包括沿轨迹144的一个或更多个轨迹点142(例如,由(x,y)坐标表示)。在一些示例中,仅单个轨迹点(例如,离散化轨迹步骤序列中车辆140的下一个轨迹点)可以由建议路径或轨迹分析器114分析和/或由路径或轨迹生成器116生成。在其他示例中,可以分析和/或生成多于一个轨迹点。作为另一个示例,可以分析和/或生成整个轨迹,其可以从两个或更多个轨迹点142外插(例如,使用样条)。
在任何示例中,轨迹144可以形成轨迹144的半径,或者可以形成轨迹144的倒半径。轨迹144和/或其上的一个或更多个轨迹点142可以由一个或更多个控制组件使用,以根据轨迹144确定控制车辆140所需的控制。例如,一个或更多个控制组件可以将一个或更多个控制发送到一个或更多个致动器(例如,由自动驾驶软件堆栈的致动层控制的致动器)。致动器可包括制动传感器系统1246、推进系统1250、转向系统1254和/或其他系统的一个或更多个组件或特征。在其他示例中,车辆轨迹信息124可以包括用于根据轨迹144控制车辆的控制。
现在参考图5,图5是根据本公开的一些实施例的包括具有安全到达时间的可视化510的车辆140的轨迹502的示例的图示。车辆140可以对应于图1A的车辆140。轨迹502可以是建议路径或轨迹分析器114根据环境中的位置的安全到达时间和/或安全时间间隔来测试安全性(例如,可选地使用可视化510)的建议轨迹。作为示例,轨迹502可以由另一个系统或组件(例如,车辆140的单独的行为规划器)生成,其可能没有考虑安全到达时间和/或安全时间间隔。此外,轨迹502可以对应于轨迹144,并且可以使用任何合适的方法来表示,包括使用上述一个或更多个轨迹点142和/或样条函数。
建议路径或轨迹分析器114可以利用定义轨迹502的车辆140的运动曲线来测试轨迹502。作为示例,运动曲线可以包括车辆140的最大制动曲线或车辆的舒适制动曲线。建议路径或轨迹分析器114可以采用车辆140的曲线并且假设制动曲线或其他运动曲线。制动曲线可以包括车辆140的当前加速度和速度状态,其在反应时间期间导致运动曲线。这之后可以是制动斜坡上升,可选地受到加加速度限制的限制,并且最后是曲线的最大制动,直到在任何那些阶段期间发生停止(如果有的话)。建议路径或轨迹分析器114可以假设车辆140的任何形状加上可选的安全边界,并且在制动曲线期间沿着正测试路径506对照任何目标位置处的安全到达时间检查该形状(例如,使用可视化510)。
通过确保路径506可以安全地与制动曲线一起使用,建议路径或轨迹分析器114可以确保跟随路径506的轨迹(其可以是或可以不是轨迹502)至少足够安全以及时制动,如果制动曲线被触发的话。建议路径或轨迹分析器114在确定至少舒适制动曲线将导致碰撞并且尤其是在确定最大制动曲线将导致碰撞的情况下可以认为路径506不安全。在一些示例中,可以针对相同的车辆140测试两个曲线,但是用于不同的目的。例如,最大制动曲线可以用作在部署之前测试轨迹的故障安全,而舒适制动曲线可以用于更高级别的规划。
例如,车辆140可以使用制动曲线来有效地设置车辆140周围的安全区域,对其进行测试,并且如果测试不通过(例如沿着最接近通过测试的路径)则进行最大制动(例如,利用锁定,例如在施密特触发器中锁定)。这可以为车辆140提供安全性免于碰撞。为了提供舒适性,也可以进行稍微更严格的测试,并且可以使用更经典的控制器(例如比例积分微分(PID)控制器)来控制车辆140的速度以保持在更严格的测试的边界上并且在一组路径中保持最接近于通过测试的路径(例如,不偏离标称轨道太远的一组路径)。在各种示例中,建议路径或轨迹分析器114可以测试来自长期规划器的建议路径和/或轨迹。
为了测试轨迹502的安全性,建议路径或轨迹分析器114可以分析轨迹502以确定在轨迹502期间是否存在车辆140将占据环境126中的一个或更多个位置的任何时间在该一个或更多个位置的一个或更多个安全时间间隔之外。例如,建议路径或轨迹分析器114可以评估车辆到达位置的建议到达时间,以确定建议到达时间是否是该位置的安全到达时间。如果建议路径或轨迹分析器114确定建议到达时间不是安全到达时间,则建议路径或轨迹分析器114可以生成表示轨迹502未通过测试的数据,否则建议路径或轨迹分析器114可以仍然生成表示轨迹502通过测试的数据(例如,假设所有其他建议到达时间被类似地发现是安全的)。
作为另一示例,建议路径或轨迹分析器114可以确定目标位置的安全级别或程度,其表示轨迹502到目标位置的到达时间与该目标位置的安全到达时间的接近程度。在至少一个目标位置的安全级别或程度低于阈值的情况下,建议路径或轨迹分析器114可以认为轨迹502是不安全的。在所有目标位置都在轨迹502的阈值内的情况下,建议路径或轨迹分析器114仍然可以确定轨迹是安全的。作为另一示例,建议路径或轨迹分析器114可将安全级别或程度分配给整个轨迹502,其可对应于多个目标位置处的安全级别或程度(例如,最差安全级别或程度,平均安全级别或程度,从多个目标位置统计得出的安全级别或程度,等等)。
建议路径或轨迹分析器114可以使用各种方法来测试轨迹502的安全性。在一些示例中,建议路径或轨迹分析器114可以沿着轨迹502的路径506测试轨迹502的多个样本504。在图5中,可以使用垂直于路径506的线来表示每个样本。样本可以包括例如轨迹502的一个或更多个建议到达时间和路径506中的一个或更多个建议到达时间处车辆140的一个或更多个位置。为了测试样本,建议路径或轨迹分析器114可以分析一个或更多个建议的到达时间和一个或更多个位置以确定样本的任何部分(例如,一个或更多个位置/建议的到达时间对)是否不对应于安全到达时间。例如,在建议路径或轨迹分析器114确定某位置的建议到达时间不是该位置的安全到达时间的情况下,建议路径或轨迹分析器114可以确定轨迹502是不安全的,并且轨迹可能未通过测试。
作为示例,样本的位置可以由垂直于路径506的线表示,或者样本可以包括线的单个位置。作为另一示例,位置可以形成二维形状,例如车辆140周围的边界框。作为另一示例,位置可以包括与车辆140的至少一些外形相对应的任何数量的点。在任何示例中,位置可以至少部分地基于车辆的形状。此外,可以使用由对象分析器106提供的一个或更多个参数来确定样本的形状。同样在任何示例中,建议路径或轨迹分析器114包括或添加安全缓冲器到用于样本的位置,使得位置表示在至少一个维度上比车辆140大的区域。
建议路径或轨迹分析器114可以在测试轨迹502(和/或路径506)的安全性时采用若干简化的假设。例如,一个简化假设可以认识到,一旦车辆140上的一个点(例如,前保险杠)到达目标位置,就不需要测试后面的目标位置。换句话说,如果车辆140具有已经到达目标位置的前保险杠,则可能没有理由执行额外的安全检查以确定车辆140上的其他点(发动机罩,前挡风玻璃)何时到达目标位置。因此,在一些示例中或者对于一些样本,测试样本可以基本上仅对应于车辆的前缘。因此,建议路径或轨迹分析器114可将车辆140视为大致滑过目标位置。可以仅测试垂直于路径504的杠(例如,车辆140的前部、后部或其他部分的线或轮廓),其尺寸适合于车辆140的宽度(加上可选的安全边界)。该杠可以在车辆140的后部开始并且在时间零点期间向前移动安全边界,然后通过运动曲线(例如,精确地通过运动曲线)随时间向前移动。
因此,建议路径或轨迹分析器114可以用2D或减少的操作集测试一个路径,或者如果考虑车辆140主要指向沿着主行进方向并且杠平行,则用2D或减少的操作集测试几个大致平行路径。
简化测试的另一个示例(例如,在使用径向距离函数的情况下)可以用于建议路径或轨迹分析器114首先预处理安全到达时间,使得安全到达时间沿着来自车辆140的径向射线单调减小(例如,总是减小),然后测试杠的端点和最终杠,因为如果有任何偏差,它也会发生在环境126的平面中杠描绘的形状的周边上。
图5示出了叠加在可视化510上的轨迹502。可视化510可以对应于例如图4A的可视化402,可视化510的区域和/或像素或点代表这些位置的安全到达时间。然而,在其他示例中,可视化510可以对应于可视化404或在关于安全到达时间的假设的不同约束下生成的可视化。在任何示例中,可视化510可以用于测试和/或生成轨迹,并且可以类似于图1A的可视化,而不是具有分组到时间范围的不同安全到达时间。此外,在一些示例中,不需要生成或使用可视化来测试和/或生成轨迹或路径。特别地,在本文的描述中,用于测试和/或生成轨迹或路径(或用于其他目的)的任何安全到达时间和/或安全时间间隔可以或可以不来自传感器数据或传感器数据的可视化(例如,图像)。例如,使用来自可视化的数据值来确定环境中位置(例如,样本)的安全到达时间或安全时间间隔可能使得在某些情况下更难以避免或最小化离散化误差。
举例来说,建议路径或轨迹分析器114可以使用安全到达时间(例如,在可视化510中的位置处表示)来测试车辆140的对应位置和沿着轨迹502到这些位置的建议到达时间。如上所述,可视化510的像素或点可以对应于可视化510中的LSA,其中每个像素或点表示在由像素或点的一个或更多个数据值表示的安全到达时间结束的LSA间隔。建议路径或轨迹分析器114可通过确定每个样本的每个建议到达时间在与车辆140的位置相关联的相应安全时间间隔内来确定轨迹502是安全的。例如,对于LSA,至少部分地基于建议到达时间在该位置的安全到达时间处或之前(例如,由像素或点表示),可认为建议路径到达时间和位置是安全的。相反,对于ESA,在建议到达时间在该位置的安全到达时间处或之后(例如,由像素表示)的情况下,可认为建议到达时间和位置是安全的。
建议路径或轨迹分析器114可以使用关于建议到达时间和相应的安全到达时间的其他标准来评估安全性。在一些示例中,建议路径或轨迹分析器114使用的安全到达时间可以在任何合适的时间生成,例如在建议路径或轨迹分析器114测试轨迹之前至少部分地以可视化或其他格式计算,以及/或根据需要或与测试和/或生成轨迹并行(例如,不生成或使用如本文所述的可视化)。
在一些示例中,建议路径或轨迹分析器114可以使用在不同假设或条件下产生的多个安全到达时间对轨迹502的相同或不同样本进行多次测试。例如,建议路径或轨迹分析器114可以测试位置的建议到达时间是否符合该位置的LSA和ESA。例如,这可以通过测试捕获LSA的第一可视化(例如,可视化402)和捕获ESA的第二可视化(例如,可视化404)来实现。作为另一示例,被测试的单个可视化可以针对至少一些环境126编码LSA和ESA。在其他示例中,可以在不采用可视化的情况下计算和使用安全到达时间或安全时间间隔。建议路径或轨迹分析器114可以至少部分地基于在任一测试下位置的建议到达时间未能符合安全到达时间来确定轨迹502是不安全的,并且可以至少部分基于每个测试下位置的建议到达时间符合安全到达时间确定轨迹502是安全的。作为进一步的示例,轨迹和/或位置的安全级别或程度可以基于多个安全到达时间(例如,LSA和ESA两者)。
在一些示例中,建议路径或轨迹分析器114可以测试相对直的制动曲线。为此,可以测试LSA和ESA两者。在另外的示例中,建议路径或轨迹分析器114可以使用LSA和ESA两者来执行路径选择的检查。例如,LSA和ESA可用于给出从当前位置的最安全路径。建议路径或轨迹分析器114可以使用路径或轨迹生成器116来确定最安全的路径和/或轨迹,并且可以将建议路径或轨迹与最安全的路径和/或轨迹进行比较(例如,以确定路径或轨迹的安全级别或程度,如上所述)。要做到这一点,路径或轨迹生成器116可以应用梯度上升(或下降,给定可视化的乘法逆),并将曲线拟合到车辆动力学约束。高斯-牛顿优化可能比跟随梯度更快,但构思是相同的。在一些示例中,不需要使用计算安全到达时间的多种类型的可视化或方法来确定最安全的路径和/或轨迹。
在一些实施例中,建议路径或轨迹分析器114包括用于使用一个或更多个可视化(例如,本文描述的任何可视化)来分析建议轨迹或路径的一个或更多个机器学习模型。机器学习模型可以接收例如包括至少一个可视化和至少一个建议轨迹或路径的输入。可以训练一个或更多个机器学习模型以使用至少一个可视化来针对安全性测试至少一个建议轨迹或路径。一个或更多个机器学习模型的一个或更多个输出可以表示作为输入(例如,对应于二进制值或安全程度)提供的建议轨迹或路径(或其部分或点)的安全等级(在本文中可替代地称为“安全级别”或“安全程度”)。一个或更多个机器学习模型可以包括一个或更多个神经网络(例如,深度神经网络),其接收一个或更多个输入并生成一个或更多个输出。例如,一个或更多个可视化可以由一个或更多个卷积神经网络接收。可视化可以包括建议轨迹或路径,或者可以将建议轨迹或路径与可视化分离地提供到一个或更多个机器学习模型。
现在参考图6A,图6A是示出根据本公开的一些实施例的用于使用安全到达时间数据生成轨迹的示例处理600的数据流程图。
可以将任何数量的输入(包括但不限于安全到达时间数据604)输入到一个或更多个机器学习模型616中。安全到达时间数据604可以对应于图1A的安全到达时间数据120。
一个或更多个机器学习模型616可以对应于和/或被包括作为路径或轨迹生成器116的特征或功能,并且可以生成或计算任何数量的输出,包括但不限于车辆轨迹信息620(例如,图1A的车辆轨迹信息124)。车辆轨迹信息620可以被发送或发到自动驾驶车辆140的一个或更多个控制组件,并且可以可选地使用建议路径或轨迹分析器114进行安全性测试。然后,一个或更多个控制组件可以使用车辆轨迹信息620(或从车辆轨迹信息620生成的信息)根据车辆轨迹信息620控制车辆140。
输入到一个或更多个机器学习模型616的安全到达时间数据604可以包括本文描述的任何数量的可视化(例如,图像),或者可以以不同的方式表示一个或更多个安全到达时间。如上所述,可以使用传感器数据(例如传感器数据102)生成安全到达时间数据604。可以将从来自一个或更多个传感器138的传感器数据生成的其他潜在传感器信息应用于一个或更多个机器学习模型616。传感器信息可以包括来自车辆140(和/或其他车辆,在一些示例中)的任何传感器的传感器数据。在一些示例中,输入包括表示车辆140的状态的车辆状态信息,例如速度,速率,加速度,减速度,方向或姿势,环境126中定位或位置(例如,相对于安全到达时间数据604),和/或其他状态信息。该数据可以由车辆140的一个或更多个传感器捕获和/或从车辆140的一个或更多个传感器接收,例如一个或更多个IMU传感器1266、一个或更多个速度传感器1244、一个或更多个转向传感器1240、一个或更多个振动传感器1242中的一个或更多个,和/或制动传感器系统1246、推进系统1250和/或转向系统1254的一个或更多个传感器。状态信息(例如,速度,方向等)可能对于一个或更多个机器学习模型616用于计算车辆轨迹信息620是有用的。
一个或更多个机器学习模型616可以包括任何类型的一个或更多个机器学习模型,诸如使用线性回归、逻辑回归、决策树、支持向量机(SVM)、朴素贝叶斯、k-最近邻(Knn)、K均值聚类、随机森林、降维算法、梯度增强算法、神经网络(例如,自动编码器,卷积,递归,感知机,长/短期记忆,Hopfield,Boltzmann,深度信念,反卷积,生成对抗,液体状态机等)的机器学习模型和/或其他类型的机器学习模型。
现在参考图6B,图6B是根据本公开的一些实施例的包括一个或更多个示例机器学习模型616的图示。图6B的一个或更多个机器学习模型616可以是可以在处理600中使用的一个或更多个机器学习模型的一个示例。然而,图6B的一个或更多个机器学习模型616不旨在是限制性的,并且一个或更多个机器学习模型616可以包括比图6B的一个或更多个机器学习模型616更多和/或不同的机器学习模型。图6B的一个或更多个机器学习模型616可以包括卷积神经网络,因此可替代地在本文中称为卷积神经网络616或卷积网络616。
卷积网络616包括代表安全到达时间的一个或更多个可视化(例如,基于LSA和/或基于ESA的可视化)的安全到达时间数据604。在一些示例中,卷积网络616还可以包括其他输入,诸如由一个或更多个相机(例如,本文中关于图12A-12C描述的一个或更多个相机)生成的图像数据。安全到达时间数据604和可能的其他图像数据可以输入到卷积网络616的一个或更多个卷积流626中。例如,每个图像的图像数据可以对应于其自身的卷积流626。
卷积流626可包括任何数量的层,例如层632A-632C。层中的一个或更多个可包括输入层。输入层可以保持与图像数据相关联的值。例如,输入层可以将表示输入到卷积网络616的一个或更多个图像的原始像素值的值保持为体积(例如,宽度、高度和颜色通道(例如,RGB),例如,32x32x 3)。
一个或更多个层可包括卷积层。卷积层可以计算连接到输入层(例如,所述输入层)中的局部区域的神经元的输出,每个神经元计算它们的权重与它们在输入体积中连接的小区域之间的点积。卷积层的结果可以是另一个体积,其中一个维度至少部分地基于所应用的滤波器的数量(例如,宽度、高度和滤波器的数量,例如32x 32x 12,如果滤波器的数量是12的话)。
层中的一个或更多个可包括整流线性单元(ReLU)层。例如,一个或更多个ReLU层可以应用逐元素激活函数,例如max(0,x),例如在0处阈值化。ReLU层的最终体积可以与ReLU层的输入体积相同。
层中的一个或更多个可包括池化层。池化层可以沿着空间维度(例如,高度和宽度)执行下采样操作,这可以导致比池化层的输入更小的体积(例如,来自32x 32x 12输入体积的16x 16x 12)。
层中的一个或更多个可包括完全连接层。一个或更多个完全连接层中的每个神经元可以连接到先前体积中的每个神经元。完全连接层可以计算类分数,并且得到的体积可以是1x 1x类的数量。在一些示例中,一个或更多个卷积流626可以包括完全连接层,而在其他示例中,卷积网络616的完全连接层634可以是一个或更多个卷积流626的完全连接层。
虽然本文关于一个或更多个卷积流626讨论了输入层、卷积层、池化层、ReLU层和完全连接层,这不是限制性的。例如,可以在一个或更多个卷积流626中使用附加或替代层,诸如归一化层,SoftMax层和/或其他层类型。此外,卷积网络616和/或卷积流626的层的顺序和数量不限于任何一种架构。
另外,层中的一些可以包括参数(例如,权重),例如卷积层和完全连接层,而其他层可以不包括,例如ReLU层和池化层。在一些示例中,可以在训练期间由卷积流626和/或一个或更多个完全连接层634学习参数。此外,层中的一些可以包括额外的超参数(例如,学习率,步长,迭代次数等),例如卷积层、完全连接层和池化层,而其他层可以不包括,例如ReLU层。参数和超参数不受限制,并且可以根据实施例而不同。
一个或更多个卷积流626的输出可以输入到卷积网络616的一个或更多个完全连接层634。除了一个或更多个卷积流626的输出,其中至少一些可以代表车辆状态信息和/或由对象分析器106提供的一个或更多个对象的一个或多个参数的一个或更多个变量614可以输入到完全连接层634。
对于机器学习模型616的给定输入,可以使用示例轨迹来训练一个或更多个机器学习模型616。在一些示例中,示例轨迹可以从由人驾驶的一个或更多个车辆和/或自动驾驶车辆的实际轨迹捕获,并从由一个或更多个车辆的一个或更多个传感器生成的传感器数据中提取。类似地,例如轨迹的输入可以从由一个或更多个车辆的一个或更多个传感器生成的传感器数据中提取。例如,可以使用本文描述的方法生成安全到达时间数据604的可视化,并将其用作示例轨迹的训练数据。在一些示例中,训练数据可以对应于虚拟车辆,诸如在包括虚拟环境的虚拟模拟中驾驶的车辆。
现在参考图7,图7是示出根据本公开的一些实施例的用于使用安全到达时间来控制车辆的方法700的流程图。本文描述的方法700的每个方框包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,各种功能可以由执行存储在存储器中的指令的处理器执行。该方法还可以体现为存储在计算机存储介质上的计算机可用指令。该方法可以由独立应用程序、服务或托管服务(独立或与另一托管服务组合)或另一产品的插件等等提供。本文描述的方法可另外或替代地由任何一个系统或系统的任何组合执行,包括但不限于本文描述的那些系统,并且不限于特定示例。
方法700在方框B702包括接收传感器数据。例如,通信管理器104可以从车辆140的至少一个传感器接收传感器数据102。
方法700在方框B704包括确定一个或更多个对象的参数。例如,对象分析器106可以至少部分地基于传感器数据102确定位于环境126中的对象128A的参数,并且在一些示例中,确定至少一个其他对象(例如对象128B和对象128C)的参数。
方法700在方框B706包括将一个或更多个对象的轨迹建模到目标位置。例如,对象建模器108可以至少部分地基于对象128A的参数将对象128A的轨迹建模到图3B的目标位置P1、P2、P3、P4、P5、P6和P7中的每一个。在一些示例中,对象建模器108还可以至少部分地基于对象128B的参数将对象128B的轨迹建模到图3B的目标位置P1、P2、P3、P4、P5、P6和P7中的每一个,并且至少部分地基于对象128C的参数将对象128C的轨迹建模到图3B的目标位置P1、P2、P3、P4、P5、P6和P7中的每一个。
在一些示例中,对象128A可以对应于图3B的对象Y1,轨迹320可以对应于为对象128A建模的轨迹之一。此外,对象128B可以对应于图3B的对象Y2,轨迹322可以对应于为对象128B建模的轨迹之一。此外,对象128C可以对应于图3B的对象Y3,轨迹324可以对应于为对象128C建模的轨迹之一。
方法700在方框B708包括从轨迹计算不会导致与一个或更多个对象发生碰撞的安全时间间隔。例如,对象轨迹分析器110可以从轨迹计算安全时间间隔,在此间隔期间占据目标位置P1、P2、P3、P4、P5、P6和P7的车辆140不会导致与至少对象128A碰撞。例如,对象轨迹分析器110可以分析轨迹320,轨迹320可以对应于与图2的图表200对应的运动曲线。如果轨迹320的结束时间TE是车辆140的安全到达时间(例如,对象轨迹分析器110确定对象128A处于完全停止),则对象轨迹分析器110可以使用轨迹320的结束时间TS作为安全时间间隔的结束时间,轨迹320的开始时间TS作为安全时间间隔的开始时间(在其他示例中,轨迹内的任何时间范围可以被计算为安全时间间隔)。对象轨迹分析器110可以类似地计算对象Y1的其他建模轨迹到目标位置P2、P3、P4、P5、P6和P7的安全到达时间。在考虑多个对象的示例中,可以类似地针对对象Y2和目标位置P2、P3、P4、P5、P6和P7中的每一个以及对象Y3和目标位置P2、P3、P4、P5、P6和P7中的每一个计算安全到达时间。
方法700在方框B710包括生成车辆的轨迹。例如,至少部分地基于安全时间间隔和环境126中的车辆140的位置,路径或轨迹生成器116可以生成表示车辆140的轨迹144的至少一部分的车辆轨迹信息124。
方框700在方框B712包括分析用于车辆的建议轨迹或路径。例如,至少部分地基于安全时间间隔和环境126中的车辆140的位置,建议路径或轨迹分析器114可以分析表示车辆140的轨迹144的至少一部分的车辆轨迹信息124。
在一些示例中,方法700可以仅包括方框B710和方框B712中的一个。此外,可以在方框B712处分析在方框B710处生成的轨迹。
图8是示出根据本公开的一些实施例的用于使用安全到达时间控制车辆的方法800的流程图。本文描述的方法800的每个方框包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,可以由执行存储在存储器中的指令的处理器执行各种功能。该方法还可以体现为存储在计算机存储介质上的计算机可用指令。该方法可以由独立应用程序、服务或托管服务(独立或与另一托管服务组合)或另一个产品的插件等等提供。
方法800在方框B802包括确定一个或更多个对象的参数。例如,对象分析器106可以至少部分地基于传感器数据102确定位于环境126中的对象128A的参数,并且在一些示例中,确定至少一个其他对象(例如对象128B和对象128C)的参数。在一些示例中,对象分析器106从另一车辆或系统接收一个或更多个参数,例如使用通信管理器104。
方法800在方框B804包括计算不会导致与一个或更多个对象发生碰撞的安全时间间隔。例如,对象建模器108可以对对象128A的轨迹进行建模,并且在一些示例中对对象128B或对象128C中的至少一个进行建模,并且对象轨迹分析器110可以根据与对象128A、对象128B或对象128C关联的轨迹至少部分地基于一个或更多个参数来计算安全时间间隔,在该间隔期间占据目标位置P1、P2、P3、P4、P5、P6和P7的车辆140不会导致与对象128A、对象128B或对象128C的碰撞。
方法800在方框B806包括生成具有表示安全时间间隔的至少一部分的数据值的图像。例如,可视化生成器112可以生成具有表示安全时间间隔的至少一部分的数据值的图像。在使用与对象128A和对象128B相关联的安全时间间隔的示例中,图像可以类似于图1A中针对安全到达时间数据120示出的图像。作为其他示例,图像可以看起来类似于图4A的可视化402或图4B的可视化404。
方法800在方框B808包括生成车辆的轨迹。例如,至少部分地基于图像以及环境126中车辆140的位置,路径或轨迹生成器116可以生成表示车辆140的轨迹144的至少一部分的车辆轨迹信息124。。
方法800在方框B810包括分析用于车辆的建议轨迹或路径。例如,至少部分地基于图像和环境126中的车辆140的位置,建议路径或轨迹分析器114可以分析表示车辆140的轨迹144的至少一部分的车辆轨迹信息124。
在一些示例中,方法800可以仅包括方框B808和方框B810中的一个。此外,可以在方框B810处分析在方框B808处生成的轨迹。
现在参考图9,图9是示出根据本公开的一些实施例的用于使用安全到达时间来控制车辆的方法900的流程图。本文描述的方法900的每个方框包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,各种功能可以由执行存储在存储器中的指令的处理器来执行。该方法还可以体现为存储在计算机存储介质上的计算机可用指令。该方法可以由独立应用程序、服务或托管服务(独立或与另一托管服务组合)或另一产品的插件等等提供。
方法900在方框B902包括确定一个或更多个对象的参数。例如,对象分析器106可以至少部分地基于传感器数据102确定位于环境126中的对象128A的参数,并且在一些示例中,确定至少一个其他对象(例如对象128B和对象128C)的参数。
方法900在方框B904包括确定不会导致与一个或更多个对象发生碰撞的目标位置的安全到达时间。例如,对象轨迹分析器110可以至少部分地基于对象128A、对象128B和/或对象128C的参数来确定安全到达时间,在安全到达时间处,占据图3B的目标位置P1、P2、P3和/或环境中对应于轮廓308的其他点的车辆140不会导致与对象128A、对象128B和/或对象128C发生碰撞。
方法900在方框B906包括生成表示一组目标位置和相应的一组安全到达时间的轮廓。例如,可视化生成器112可以生成形成环境126的图形表示的至少一部分的轮廓308。轮廓308可以包括在本文描述的任何合适的可视化中,并且可以以任何合适的形式在到达时间数据120中表示,例如图像形式(例如,光栅化或向量)和/或数学形式。
方法900在方框B908包括生成车辆的轨迹。例如,至少部分地基于轮廓、以及环境126中的车辆140的位置,路径或轨迹生成器116可以生成表示车辆140的轨迹144的至少一部分的车辆轨迹信息124。
方法900在方框B910包括分析用于车辆的建议轨迹或路径。例如,至少部分地基于轮廓和环境126中的车辆140的位置,建议路径或轨迹分析器114可以分析表示车辆140的轨迹144的至少一部分的车辆轨迹信息124。
在一些示例中,方法900可以仅包括方框B908和方框B910中的一个。此外,可以在方框B910处分析在方框B908处生成的轨迹。
现在参考图10,图10是示出根据本公开的一些实施例的用于使用安全到达时间来控制车辆的方法1000的流程图。本文描述的方法1000的每个方框包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,各种功能可以由执行存储在存储器中的指令的处理器执行。该方法还可以体现为存储在计算机存储介质上的计算机可用指令。该方法可以由独立应用程序、服务或托管服务(独立或与另一托管服务组合)或另一产品的插件等等提供。
方框1000在方框B1002包括接收安全到达时间或安全时间间隔中的至少一个的可视化。例如,路径或轨迹生成器116可以从可视化生成器112接收图6A的安全到达时间数据604。
方法1000在方框B1004包括提供可视化作为一个或更多个机器学习模型的输入。例如,路径或轨迹生成器116可以提供安全到达时间数据604作为一个或更多个机器学习模型616的输入。
方法1000在方框B1006包括从一个或更多个机器学习模型接收用于车辆的建议轨迹或路径。例如,可视化生成器112可以从一个或更多个机器学习模型616接收车辆轨迹信息620。
现在参考图11,图11是示出根据本公开的一些实施例的用于使用安全到达时间来控制车辆的方法1100的流程图。本文描述的方法1100的每个方框包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,各种功能可以由执行存储在存储器中的指令的处理器执行。该方法还可以体现为存储在计算机存储介质上的计算机可用指令。该方法可以由独立应用程序、服务或托管服务(独立或与另一托管服务组合)或另一产品的插件等等提供。
方法1100在方框B1102包括接收安全到达时间或安全时间间隔中的至少一个的可视化。例如,建议路径或轨迹分析器114可以从可视化生成器112接收安全到达时间数据120。
方法1100在方框B1104包括提供可视化和建议轨迹或路径作为一个或更多个机器学习模型的输入。例如,建议路径或轨迹分析器114可以提供安全到达时间数据604和车辆轨迹信息124作为一个或更多个机器学习模型的输入。
方法1100在方框B1106包括从一个或更多个机器学习模型接收表示建议轨迹或路径的安全级别的数据。例如,建议路径或轨迹分析器114可以从一个或更多个机器学习模型接收建议轨迹或路径的安全级别,例如安全程度。
示例自动驾驶车辆
图12A是根据本公开的一些实施例的示例自动驾驶车辆1200的示意图。自动驾驶车辆1200(在本文中可选地称为“车辆1200”)可包括乘客车辆,例如汽车,卡车,公共汽车,和/或容纳一个或更多个乘客的其他类型的车辆。自动驾驶车辆一般用由国家公路交通安全管理局(NHTSA)(美国交通部的一个部门)和汽车工程师协会(SAE)“与道路机动车辆的驾驶自动化系统相关的术语的分类和定义(Taxonomy and Definitions for Terms Relatedto Driving Automation Systems for On-Road Motor Vehicles)”(标准No.J3016-201806,发布于2018年6月15日,标准No.J3016-201609,发布于2016年9月30日,以及此标准的先前和未来版本)定义的自动化水平来描述。车辆1200可以具有根据自动驾驶级别的级别3-级别5中的一个或更多个的功能。例如,取决于实施例,车辆1200可以具有条件自动化(级别3),高自动化(级别4),和/或全自动化(级别5)。
车辆1200可包括诸如底盘、车身、车轮(例如,2,4,6,8,18等)、轮胎,车轴和车辆的其他组件的组件。车辆1200可包括推进系统1250,例如内燃发动机,混合动力发电站,全电动发动机,和/或其他推进系统类型。推进系统1250可以连接到车辆1200的传动系,其可以包括变速器,以实现车辆1200的推进。可以响应于从节气门/加速器1252接收信号而控制推进系统1250。
当推进系统1250运行时(例如,当车辆运动时),可以使用可以包括方向盘的转向系统1254来使车辆1200转向(例如,沿着期望的路径或路线)。转向系统1254可以从转向致动器1256接收信号。对于完全自动化(等级5)功能,方向盘可以是可选的。
制动传感器系统1246可用于响应于从制动致动器1248和/或制动传感器接收信号而操作车辆制动器。
可包括一个或更多个芯片上系统(SoC)1204(图12C)和/或一个或更多个GPU的一个或更多个控制器1236可以提供车辆1200的一个或更多个组件和/或系统的信号(例如,代表命令)。例如,一个或更多个控制器可以发送通过一个或更多个制动致动器1248操作车辆制动器、通过一个或更多个转向致动器1256操作转向系统1254、通过一个或更多个节气门/加速器1252操作推进系统1250的信号。一个或更多个控制器1236可包括一个或更多个车载(例如,集成)计算设备(例如,超级计算机),其处理传感器信号,并输出操作命令(例如,表示命令的信号)以实现自动驾驶和/或帮助人类驾驶员驾驶车辆1200。一个或更多个控制器1236可包括用于自动驾驶功能的第一控制器1236,用于功能性安全功能的第二控制器1236,用于人工智能功能(例如,计算机视觉)的第三控制器1236,用于信息娱乐功能的第四控制器1236,用于在紧急情况下冗余的第五控制器1236,和/或其他控制器。在一些示例中,单个控制器1236可以处理上述功能中的两个或更多个,两个或更多个控制器1236可以处理单个功能和/或其任何组合。
一个或更多个控制器1236可以响应于从一个或更多个传感器(例如,传感器输入)接收的传感器数据提供用于控制车辆1200的一个或更多个组件和/或系统的信号。传感器数据可以从例如但不限于一个或更多个全球导航卫星系统传感器1258(例如,全球定位系统传感器)、一个或更多个RADAR传感器1260、一个或更多个超声波传感器1262、一个或更多个LIDAR传感器1264、一个或更多个惯性测量单元(IMU)传感器1266(例如,一个或更多个加速度计,一个或更多个陀螺仪,一个或更多个磁罗盘,一个或更多个磁力计等)、一个或更多个麦克风1296、一个或更多个立体相机1268、一个或更多个广视相机1270(例如,鱼眼相机)、一个或更多个红外相机1272、一个或更多个环绕相机1274(例如,360度相机)、一个或更多个长程和/或中程相机1298、一个或更多个速度传感器1244(例如,用于测量车辆1200的速度)、一个或更多个振动传感器1242、一个或更多个转向传感器1240、一个或更多个制动传感器(例如,作为制动传感器系统1246的一部分)和/或其他传感器类型接收。
一个或更多个控制器1236中的一个或更多个可以从车辆1200的仪表组1232接收输入(例如,由输入数据表示)并通过人机界面(HMI)显示器1234、可听信号器、扬声器和/或通过车辆1200的其他组件提供输出(例如,由输出数据、显示数据等表示)。输出可以包括诸如车辆速率、速度、时间、地图数据(例如,图12C的HD地图1222)、位置数据(例如,车辆1200的位置,诸如在地图上)、方向、车辆的其他位置(例如,占用网格)、关于由一个或更多个控制器1236感知的对象和对象状态的信息等信息。例如,HMI显示器1234可以显示关于一个或更多个对象的存在的信息(例如,路牌,警示标志,交通灯改变等),和/或关于车辆已进行、正在进行或将进行的驾驶移动的信息(例如,现在改变车道,在两英里后利用34B出口)。
车辆1200还包括网络接口1224,其可以使用一个或更多个无线天线1226和/或一个或更多个调制解调器来通过一个或更多个网络进行通信。例如,网络接口1224可以能够通过LTE、WCDMA、UMTS、GSM、CDMA2000等进行通信。一个或更多个无线天线1226还可以使用局域网(如蓝牙、蓝牙LE、Z-Wave、ZigBee等)和/或一个或更多个低功率广域网(LPWAN)(如LoRaWAN、SigFox等)实现环境中的对象(例如,车辆,移动设备等)之间的通信。
图12B是根据本公开的一些实施例的图12A的示例自动驾驶车辆1200的相机位置和视场的示例。相机和相应的视场是一个示例实施例,并不旨在限制。例如,可以包括附加和/或替代相机和/或相机可以位于车辆1200上的不同位置。
用于相机的相机类型可以包括但不限于可以适用于车辆1200的组件和/或系统的数字相机。一个或更多个相机可以在汽车安全完整性等级(ASIL)B和/或另一个ASIL下操作。取决于实施例,相机类型可以具有任何图像捕获率,诸如每秒60帧(fps),1220fps,240fps等。相机可能能够使用卷帘门,全局快门,其他类型的快门,或其组合。在一些示例中,滤色器阵列可以包括红色透明透明透明(RCCC)滤色器阵列,红色透明透明蓝色(RCCB)滤色器阵列,红色蓝色绿色透明(RBGC)滤色器阵列,Foveon X3滤色器阵列,拜耳传感器(RGGB)滤色器阵列,单色传感器滤色器阵列,和/或其他类型的滤色器阵列。在一些实施例中,可以尝试使用例如具有RCCC、RCCB和/或RBGC滤色器阵列的透明像素相机增加感光度。
在一些示例中,一个或更多个相机中的一个或更多个可用于执行高级驾驶员辅助系统(ADAS)功能(例如,作为冗余或故障安全设计的一部分)。例如,可以安装多功能单声道相机以提供包括车道偏离警告、交通标志辅助和智能前照灯控制的功能。一个或更多个相机中的一个或更多个(例如,所有相机)可以同时记录和提供图像数据(例如,视频)。
相机中的一个或更多个可以安装在安装组件中,例如定制设计(3-D打印)组件,以便切除汽车内可能会干扰相机的图像数据捕获能力的杂散光和反射(例如,在挡风玻璃镜中反射的来自仪表板的反射)。关于翼镜安装组件,翼镜组件可以定制3D打印,使得相机安装板与翼镜的形状相匹配。在一些示例中,一个或更多个相机可以集成到翼镜中。对于侧视相机,一个或更多个相机也可以集成在舱的每个角落的四个支柱内。
具有包括车辆1200前方的环境的一部分的视场的相机(例如,前向相机)可用于环绕视野,以帮助识别面向前方的路径和障碍物,以及在一个或更多个控制器1236和/或控制SoC的帮助下辅助提供对于生成占用网格和/或确定优选车辆路径而言关键的信息。前向相机可用于执行许多与LIDAR相同的ADAS功能,包括紧急制动,行人检测,以及防撞。前向相机也可用于ADAS功能和系统,包括车道偏离警告(“LDW”),自主巡航控制(“ACC”),和/或诸如交通标志识别的其他功能。
可以在前向配置中使用各种相机,包括例如包括CMOS(互补金属氧化物半导体)彩色成像器的单眼相机平台。另一示例可以是一个或更多个广视相机1270,其可以用于感知从周边进入视野的对象(例如,行人,十字路口交通或自行车)。尽管图12B中仅示出了一个广视相机,车辆1200上可以有任意数量的广视相机1270。此外,一个或更多个长程相机1298(例如,长视立体相机对)可以用于基于深度的对象检测,特别是对于尚未训练过神经网络的对象。一个或更多个长程相机1298还可以用于对象检测和分类,以及基本对象跟踪。
一个或更多个立体相机1268也可以包括在前向配置中。一个或更多个立体相机1268可以包括集成控制单元,其包括可缩放处理单元,其可以在单个芯片上提供可编程逻辑(FPGA)和具有集成CAN或以太网接口的多核微处理器。这样的单元可以用于生成车辆环境的3-D地图,包括图像中所有点的距离估计。替代的一个或更多个立体相机1268可以包括紧凑的立体视觉传感器,其可以包括两个相机镜头(左右各一个)和可以测量从车辆到目标对象的距离并使用所生成的信息(例如,元数据)来激活自主紧急制动和车道偏离警告功能的图像处理芯片。除了本文描述的那些之外或者作为另外一种选择,可以使用其他类型的立体相机1268。
具有包括车辆1200侧面的环境的一部分的视场的相机(例如,侧视相机)可以用于环绕视野,提供用于创建和更新占用网格的信息,以及产生侧面撞击碰撞警告。例如,一个或更多个环绕相机1274(例如,如图12B中所示的四个环绕相机1274)可以定位在车辆1200上。一个或更多个环绕相机1274可以包括一个或更多个广视相机1270,一个或更多个鱼眼相机,一个或更多个360度相机,和/或类似物。例如,四个鱼眼相机可以定位在车辆的前部、后部和侧面。在替代布置中,车辆可以使用三个环绕相机1274(例如,左、右和后),并且可以利用一个或更多个其他相机(例如,前向相机)作为第四个环绕视野相机。
具有包括车辆1200后部的环境的一部分的视场的相机(例如,后视相机)可以用于停车辅助,环绕视野,后碰撞警告,以及创建和更新占用网格。可以使用各种各样的相机,包括但不限于也适合作为一个或更多个前向相机的相机(例如,一个或更多个长程和/或中程相机1298,一个或更多个立体相机1268),一个或更多个红外相机1272等),如本文所述。
图12C是根据本公开的一些实施例的图12A的示例自动驾驶车辆1200的示例系统架构的框图。应该理解的是,本文描述的这个和其他布置仅作为示例阐述。除了所示的那些之外或代替所示的那些,可以使用其他布置和元件(例如,机器,接口,功能,顺序,功能分组等),并且可以完全省略一些元件。此外,本文描述的许多元件是功能实体,其可以实现为离散或分布式组件或者与其他组件一起实现,并且可以在任何合适的组合和位置中实现。本文描述的由实体执行的各种功能可以由硬件、固件和/或软件来执行。例如,各种功能可以由执行存储在存储器中的指令的处理器执行。
图12C中的车辆1200的组件、特征和系统中的每一个示出为经由总线1202连接。总线1202可以包括控制器区域网络(CAN)数据接口(在本文中可选地称为“CAN总线”)。CAN可以是车辆1200内部的网络,用于辅助控制车辆1200的各种特征和功能,例如制动器、加速、制动、转向、挡风玻璃刮水器等的启动。CAN总线可以被配置为具有数十个甚至数百个节点,每个节点都有自己唯一的标识符(例如,CAN ID)。可以读取CAN总线以得到方向盘角度,地速,每分钟发动机转数(RPM),按钮位置,和/或其他车辆状态指示器。CAN总线可能符合ASILB。
尽管本文将总线1202描述为CAN总线,但是这不是限制性的。例如,除CAN总线之外或作为其替代,可以使用FlexRay和/或以太网。另外,尽管使用单条线来表示总线1202,但这不是限制性的。例如,可以存在任何数量的总线1202,其可以包括一个或更多个CAN总线,一个或更多个FlexRay总线,一个或更多个以太网总线,和/或使用不同协议的一个或更多个其他类型的总线。在一些示例中,两个或更多个总线1202可以用于执行不同的功能,和/或可以用于冗余。例如,第一总线1202可以用于防撞功能,第二总线1202可以用于致动控制。在任何示例中,每个总线1202可以与车辆1200的任何组件通信,并且两个或更多个总线1202可以与相同的组件通信。在一些示例中,每个SoC 1204、每个控制器1236和/或车辆内的每个计算机可以访问相同的输入数据(例如,来自车辆1200的传感器的输入),并且可以连接到公共总线,例如CAN总线。
车辆1200可以包括一个或更多个控制器1236,例如本文关于图12A描述的那些控制器。一个或更多个控制器1236可以用于各种功能。一个或更多个控制器1236可以连接到车辆1200的各种其他组件和系统中的任何一个,并且可以用于控制车辆1200,车辆1200的人工智能,车辆1200的信息娱乐,和/或类似。
车辆1200可以包括一个或更多个片上系统(SoC)1204。SoC 1204可以包括一个或更多个CPU 1206,一个或更多个GPU 1208,一个或更多个处理器1210,一个或更多个高速缓存1212,一个或更多个加速器1214,一个或更多个数据存储1216,和/或未示出的其他组件和特征。一个或更多个SoC 1204可用于在各种平台和系统中控制车辆1200。例如,一个或更多个SoC 1204可以在系统(例如,车辆1200的系统)中与HD地图1222组合,HD地图1222可以经由网络接口1224从一个或更多个服务器(例如,图12D的一个或更多个服务器1278)获得地图刷新和/或更新。
一个或更多个CPU 1206可以包括CPU集群或CPU复合体(可选地本文称为“CCPLEX”)。一个或更多个CPU 1206可以包括多个核和/或L2高速缓存。例如,在一些实施例中,CPU 1206可以包括相干多处理器配置中的八个核。在一些实施例中,一个或更多个CPU1206可以包括四个双核集群,其中每个集群具有专用L2高速缓存(例如,2MB L2高速缓存)。一个或更多个CPU 1206(例如,CCPLEX)可以被配置为支持同时集群操作,使得CPU 1206的集群的任何组合在任何给定时间都是活动的。
一个或更多个CPU 1206可以实现包括以下特征中的一个或更多个的电源管理功能:各个硬件块在空闲时可以自动时钟门控以节省动态功率;当核由于执行WFI/WFE指令而没有主动执行指令时,每个核时钟可以被门控;每个核可以独立电源门控;当所有核都是时钟门控或电源门控时,每个核集群可以独立地进行时钟门控;和/或当所有核都是电源门控时,每个核集群可以是独立电源门控。一个或更多个CPU 1206可以进一步实现用于管理电源状态的增强算法,其中指定允许的功率状态和预期的唤醒时间,并且硬件/微代码确定要为核、集群和CCPLEX输入的最佳功率状态。处理核可以在软件中支持简化的功率状态输入序列,将工作分流到微代码。
一个或更多个GPU 1208可以包括集成GPU(在本文中可选地称为“iGPU”)。一个或更多个GPU 1208可以是可编程的并且对于并行工作负载可以是有效率的。在一些示例中,一个或更多个GPU 1208可以使用增强张量指令集。一个或更多个GPU 1208可以包括一个或更多个流式微处理器,其中每个流式微处理器可以包括L1高速缓存(例如,具有至少96KB存储容量的L1高速缓存),并且两个或更多个流式微处理器可以共享L2高速缓存(例如,具有512KB存储容量的L2高速缓存)。在一些实施例中,一个或更多个GPU 1208可以包括至少八个流式微处理器。一个或更多个GPU 1208可以使用一个或更多个计算应用程序编程接口(一个或更多个API)。另外,一个或更多个GPU 1208可以使用一个或更多个并行计算平台和/或编程模型(例如,NVIDIA的CUDA)。
可以对一个或更多个GPU 1208进行功率优化以在汽车和嵌入式使用情况下获得最佳性能。例如,一个或更多个GPU 1208可以在鳍片(Fin)场效应晶体管(FinFET)上制造。然而,这不是限制性的,并且可以使用其他半导体制造工艺来制造一个或更多个GPU 1208。每个流式微处理器可以包括分成多个块的多个混合精度处理核。例如但不限于,可以将64个PF32核和32个PF64核划分为四个处理块。在这样的示例中,每个处理块可以被分配16个FP32核,8个FP64核,16个INT32核,两个混合精度NVIDIA TENSOR CORE用于深度学习矩阵算术,L0指令高速缓存,线程束(warp)调度器,派发单元,和/或64KB寄存器文件。此外,流式微处理器可以包括独立的并行整数和浮点数据路径,以通过混合计算和寻址计算来提供工作负载的有效执行。流式微处理器可以包括独立的线程调度能力,以实现并行线程之间的更细粒度的同步和协作。流式微处理器可以包括组合的L1数据高速缓存和共享存储器单元,以便在简化编程的同时提高性能。
一个或更多个GPU 1208可以包括高带宽存储器(HBM)和/或16GB HBM2存储器子系统,以在一些示例中提供大约900GB/秒的峰值存储器带宽。在一些示例中,除了HBM存储器之外或作为其替代,可以使用同步图形随机存取存储器(SGRAM),例如图形双数据速率类型五同步随机存取存储器(GDDR5)。
一个或更多个GPU 1208可以包括统一存储器技术,其包括访问计数器,以允许更准确地将存储器页面迁移到最频繁访问它们的处理器,从而提高处理器之间共享的存储器范围的效率。在一些示例中,地址转换服务(ATS)支持可以用于允许一个或更多个GPU 1208直接访问一个或更多个CPU 1206页表。在这样的示例中,当一个或更多个GPU 1208存储器管理单元(MMU)经历未命中时,可以将地址转换请求发送到一个或更多个CPU 1206。作为响应,一个或更多个CPU 1206可以查找其用于地址的虚拟到物理映射的页面表,并将转换发送回一个或更多个GPU 1208。因此,统一存储器技术可以允许一个或更多个CPU 1206和一个或更多个GPU 1208二者的存储器的单个统一虚拟地址空间,从而简化了一个或更多个GPU 1208编程和将应用程序移植到一个或更多个GPU 1208。
另外,一个或更多个GPU 1208可以包括访问计数器,其可以跟踪一个或更多个GPU1208对其他处理器的存储器的访问频率。访问计数器可以帮助确保将存储器页面移动到最频繁访问页面的处理器的物理存储器。
一个或更多个SoC 1204可以包括任何数量的高速缓存1212,包括本文描述的那些高速缓存。例如,一个或更多个高速缓存1212可以包括可用于一个或更多个CPU 1206和一个或更多个GPU 1208两者的L3高速缓存(例如,连接一个或更多个CPU 1206和一个或更多个GPU 1208两者)。一个或更多个高速缓存1212可以包括回写高速缓存,其可以跟踪行的状态,例如通过使用高速缓存一致性协议(例如,MEI,MESI,MSI等)。取决于实施例,L3高速缓存可以包括4MB或更多,尽管可以使用更小的高速缓存大小。
一个或更多个SoC 1204可以包括一个或更多个加速器1214(例如,硬件加速器、软件加速器或其组合)。例如,一个或更多个SoC 1204可以包括硬件加速集群,其可以包括优化的硬件加速器和/或大的片上存储器。大的片上存储器(例如,4MB的SRAM)可以使硬件加速集群能够加速神经网络和其他计算。硬件加速集群可用于补充一个或更多个GPU 1208并分流GPU 1208的一些任务(例如,以释放一个或更多个GPU 1208的更多周期以执行其他任务)。作为示例,一个或更多个加速器1214可以用于目标工作负载(例如,感知,卷积神经网络(CNN)等),其足够稳定以能够修改以加速。本文使用的术语“CNN”可以包括所有类型的CNN,包括基于区域的或区域的卷积神经网络(RCNN)和快速RCNN(例如,用于对象检测)。
一个或更多个加速器1214(例如,硬件加速集群)可以包括一个或更多个深度学习加速器(DLA)。一个或更多个DLA可以包括一个或更多个张量(Tensor)处理单元(TPU),其可以被配置为每秒为深度学习应用和推理提供额外的10万亿次操作。TPU可以是被配置为并且被优化用于执行图像处理功能的加速器(例如,用于CNN,RCNN等)。一个或更多个DLA还可以针对特定的一组神经网络类型和浮点运算以及推理进行优化。一个或更多个DLA的设计可以提供比通用GPU更高的每毫米性能,并且远远超过CPU的性能。一个或更多个TPU可以执行若干功能,包括单个实例卷积功能,例如支持用于特征和权重的INT8、INT16和FP16数据类型,以及后处理器功能。
对于任何各种功能,一个或更多个DLA可以快速有效地对处理或未处理的数据执行神经网络,尤其是CNN,包括例如但不限于:用于使用来自相机传感器的数据进行对象识别和检测的CNN;用于使用来自相机传感器的数据进行距离估计的CNN;用于使用来自麦克风的数据进行紧急车辆检测和识别和检测的CNN;用于使用来自相机传感器的数据进行面部识别和车主识别的CNN;和/或用于安全和/或安全相关事件的CNN。
一个或更多个DLA可以执行一个或更多个GPU 1208的任何功能,并且通过使用推理加速器,例如,设计者可以针对任何功能定位一个或更多个DLA或一个或更多个GPU1208。例如,设计者可以将对CNN的处理和浮点运算集中在一个或更多个DLA上,并将其他功能留给一个或更多个GPU 1208和/或一个或更多个其他加速器1214。
一个或更多个加速器1214(例如,硬件加速集群)可以包括一个或更多个可编程视觉加速器(PVA),其可替代地在本文中称为计算机视觉加速器。一个或更多个PVA可以被设计和配置为加速用于高级驾驶员辅助系统(ADAS)、自动驾驶和/或增强现实(AR)和/或虚拟现实(VR)应用的计算机视觉算法。一个或更多个PVA可以在性能和灵活性之间提供平衡。例如,每个PVA可以包括例如但不限于任意数量的精简指令集计算机(RISC)核、直接存储器访问(DMA)和/或任何数量的向量处理器。
RISC核可以与图像传感器(例如,本文描述的任何相机的图像传感器)、一个或更多个图像信号处理器等交互。每个RISC核可以包括任何数量的存储器。根据实施例,RISC核可以使用许多协议中的任何协议。在一些示例中,RISC核可以执行实时操作系统(RTOS)。可以使用一个或更多个集成电路设备、专用集成电路(ASIC)和/或存储器设备来实现RISC核。例如,RISC核可以包括指令高速缓存和/或紧密耦合的RAM。
DMA可以使一个或更多个PVA的组件独立于一个或更多个CPU 1206访问系统存储器。DMA可以支持用于向PVA提供优化的任何数量的特征,包括但不限于支持多维寻址和/或循环寻址。在一些示例中,DMA可以支持多达六个或更多维的寻址,其可以包括块宽度,块高度,块深度,水平块步进,垂直块步进,和/或深度步进。
向量处理器可以是可以设计为高效灵活地执行计算机视觉算法的编程并提供信号处理能力的可编程处理器。在一些示例中,PVA可以包括PVA核和两个向量处理子系统分区。PVA核可以包括处理器子系统,一个或更多个DMA引擎(例如,两个DMA引擎),和/或其他外围设备。向量处理子系统可以作为PVA的主处理引擎操作,并且可以包括向量处理单元(VPU),指令高速缓存,和/或向量存储器(例如,VMEM)。VPU核可以包括数字信号处理器,例如单指令多数据(SIMD)、超长指令字(VLIW)数字信号处理器。SIMD和VLIW的组合可以提高吞吐量和速度。
每个向量处理器可以包括指令高速缓存,并且可以耦合到专用存储器。结果,在一些示例中,每个向量处理器可以被配置为独立于其他向量处理器执行。在其他示例中,包括在特定PVA中的向量处理器可以被配置为采用数据并行性。例如,在一些实施例中,包括在单个PVA中的多个向量处理器可以执行相同的计算机视觉算法,但是在图像的不同区域上。在其他示例中,包括在特定PVA中的向量处理器可以在同一图像上同时执行不同的计算机视觉算法,或者甚至在序列图像或图像的部分上执行不同的算法。其中,任何数量的PVA可以包括在硬件加速集群中,并且任何数量的向量处理器可以包括在每个PVA中。此外,一个或更多个PVA可以包括附加的纠错码(ECC)存储器,以增强整体系统安全性。
一个或更多个加速器1214(例如,硬件加速集群)可以包括片上计算机视觉网络和SRAM,用于为一个或更多个加速器1214提供高带宽低延迟的SRAM。在一些示例中,片上存储器可以包括至少4MB的SRAM,包括例如但不限于八个现场可配置的存储器块,其可由PVA和DLA二者访问。每对存储器块可包括高级外围总线(APB)接口、配置电路、控制器和多路复用器。可以使用任何类型的存储器。PVA和DLA可以通过骨干网访问存储器,该骨干网为PVA和DLA提供对存储器的高速访问。骨干网可以包括片上计算机视觉网络,其将PVA和DLA互连到存储器(例如,使用APB)。
片上计算机视觉网络可以包括在传输任何控制信号/地址/数据之前确定PVA和DLA都提供就绪和有效信号的接口。这种接口可以提供单独的相位和单独信道,用于传输控制信号/地址/数据,以及用于连续数据传输的突发类型通信。尽管可以使用其他标准和协议,但是这种类型的接口可以符合ISO25 26262或IEC 612508标准。
在一些示例中,一个或更多个SoC 1204可以包括实时光线跟踪硬件加速器,例如在2018年8月10日提交的美国专利申请No.16/101,1232中描述的。实时光线-跟踪硬件加速器可用于快速有效地确定对象的位置和范围(例如,在世界模型内),以产生实时可视化模拟,用于RADAR信号解释,用于声音传播合成和/或分析,用于模拟SONAR系统,用于一般波传播模拟,用于与LIDAR数据进行比较以用于定位和/或其他功能,和/或用于其他用途。
一个或更多个加速器1214(例如,硬件加速器集群)具有用于自动驾驶的广泛用途。PVA可以是可编程视觉加速器,可用于ADAS和自动驾驶车辆的关键处理阶段。PVA的功能非常适合需要以低功率和低延迟可预测处理的算法域。换句话说,PVA在半密集或密集的常规计算上表现良好,即使在小数据集上也是如此,这些数据集需要具有低延迟和低功率的可预测运行时间。因此,在用于自动驾驶车辆的平台的背景下,PVA被设计为运行经典计算机视觉算法,因为它们在对象检测和对整数数学运算方面是有效的。
例如,根据本技术的一个实施例,PVA用于执行计算机立体视觉。在一些示例中可以使用基于半全局匹配的算法,但是这不是限制性的。用于3-5级自动驾驶的许多应用需要动态运动估计/立体匹配(例如,来自运动、行人识别、车道检测等的结构)。PVA可以对来自两个单目相机的输入执行计算机立体视觉功能。
在一些示例中,PVA可用于执行密集的光流。根据处理原始RADAR数据(例如,使用4D快速傅里叶变换)来提供处理的RADAR。在其他示例中,例如,通过处理原始飞行时间数据以提供处理的飞行时间数据,PVA用于飞行时间深度处理。
DLA可用于运行任何类型的网络以增强控制和驾驶安全,包括例如神经网络,其输出每个对象检测的置信度。这样的置信度值可以被解释为概率,或者与其他检测相比提供每个检测的相对“权重”。该置信度值使得系统能够做出关于哪些检测应被视为真正的正检测而不是错误的正检测的进一步决定。例如,系统可以设置置信度的阈值,并且仅考虑超过阈值的检测作为真正的正检测。在自动紧急制动(AEB)系统中,错误的正检测将导致车辆自动执行紧急制动,这显然是不希望的。因此,只有最置信的检测应被视为AEB的触发因素。DLA可以运行神经网络来回归置信值。神经网络可以将至少一些参数子集作为其输入,例如边界框尺寸,获得的地平面估计(例如,来自另一子系统),与车辆1200关联的惯性测量单元(IMU)传感器1266输出,从神经网络和/或其他传感器(例如,一个或更多个LIDAR传感器1264或一个或更多个RADAR传感器1260)获得的对象的方向、距离、3D位置估计等。
一个或更多个SoC 1204可以包括一个或更多个数据存储器1216(例如,存储器)。一个或更多个数据存储器1216可以是一个或更多个SoC 1204的片上存储器,其可以存储要在GPU和/或DLA上执行的神经网络。在一些示例中,一个或更多个数据存储器1216可以容量足够大以存储神经网络的多个实例以用于冗余和安全。一个或更多个数据存储器1212可以包括一个或更多个L2或L3高速缓存1212。对一个或更多个数据存储器1216的引用可以包括对与PVA、DLA和/或一个或更多个其他加速器1214相关联的存储器的引用,如本文所述。
一个或更多个SoC 1204可以包括一个或更多个处理器1210(例如,嵌入式处理器)。一个或更多个处理器1210可以包括引导和电源管理处理器,其可以是专用处理器和子系统,以处理引导电源和管理功能以及相关的安全实施。引导和电源管理处理器可以是一个或更多个SoC 1204引导序列的一部分,并且可以提供运行时电源管理服务。引导电源和管理处理器可以提供时钟和电压编程,辅助系统低功率状态转换,一个或更多个SoC 1204热和温度传感器的管理,和/或一个或更多个SoC 1204电源状态的管理。每个温度传感器可以实现为其输出频率与温度成比例的环形振荡器,并且一个或更多个SoC 1204可以使用环形振荡器来检测一个或更多个CPU 1206、一个或更多个GPU 1208和/或一个或更多个加速器1214的温度。如果确定温度超过阈值,则启动和电源管理处理器可以进入温度故障例程并将一个或更多个SoC 1204置于较低功率状态和/或将车辆1200置于司机安全停车模式(例如,使车辆1200安全停止)。
一个或更多个处理器1210还可以包括一组嵌入式处理器,其可以作为音频处理引擎。音频处理引擎可以是音频子系统,其通过多个接口实现对多声道音频的全硬件支持,以及音频I/O接口的广泛且灵活的范围。在一些示例中,音频处理引擎是专用处理器核,其具有带有专用RAM的数字信号处理器。
一个或更多个处理器1210还可以包括始终在线处理器引擎,其可以提供必要的硬件特征以支持低功率传感器管理和唤醒用例。始终在线处理器引擎可以包括处理器核,紧密耦合的RAM,支持外围设备(例如,定时器和中断控制器),各种I/O控制器外围设备,以及路由逻辑。
一个或更多个处理器1210还可以包括安全集群引擎,其包括专用处理器子系统以处理汽车应用的安全管理。安全集群引擎可以包括两个或更多个处理器核,紧密耦合的RAM,支持外围设备(例如,定时器,中断控制器等),和/或路由逻辑。在安全模式中,两个或更多个核可以以锁步模式操作并且用作具有比较逻辑的单个核以检测它们的操作之间的任何差异。
一个或更多个处理器1210还可以包括实时相机引擎,其可以包括用于处理实时相机管理的专用处理器子系统。
一个或更多个处理器1210还可以包括高动态范围信号处理器,其可以包括图像信号处理器,该图像信号处理器是作为相机处理流水线的一部分的硬件引擎。
一个或更多个处理器1210可以包括视频图像合成器,其可以是实现视频回放应用程序产生用于播放器窗口的最终图像所需的视频后处理功能的处理块(例如,在微处理器上实现)。视频图像合成器可以在一个或更多个广视相机1270、一个或更多个环绕相机1274和/或舱内监视相机传感器上执行镜头失真校正。舱内监视相机传感器优选地由在高级SoC的另一个实例上运行的神经网络监视,被配置为在舱事件中识别并相应地响应。舱内系统可执行唇读以激活蜂窝服务并拨打电话,指示电子邮件,改变车辆的目的地,激活或改变车辆的信息娱乐系统和设置,或提供语音激活的网上冲浪。仅当车辆在自主模式下操作时,某些功能才可用于驾驶员,否则将被禁用。
视频图像合成器可以包括用于空间和时间噪声降低的增强的时间噪声降低。例如,在视频中发生运动的情况下,降噪适当地对空间信息进行加权,从而减小由相邻帧提供的信息的权重。在图像或图像的一部分不包括运动的情况下,由视频图像合成器执行的时间噪声降低可以使用来自先前图像的信息来减少当前图像中的噪声。
视频图像合成器还可以被配置为对输入立体镜头帧执行立体声校正。当操作系统桌面正在使用时,可以进一步使用视频图像合成器用于用户界面组合,并且不需要一个或更多个GPU 1208连续地渲染新表面。即使当一个或更多个GPU 1208通电并且活动地进行3D渲染时,视频图像合成器也可用于分流GPU 1208以改善性能和响应性。
一个或更多个SoC 1204还可以包括用于接收来自相机的视频和输入的移动工业处理器接口(MIPI)相机串行接口,高速接口和/或可用于相机和相关的像素输入功能的视频输入块。一个或更多个SoC 1204还可以包括输入/输出控制器,其可以由软件控制并且可以用于接收未提交给特定角色的I/O信号。
一个或更多个SoC 1204还可以包括宽范围的外围接口,以实现与外围设备、音频编解码器、电源管理和/或其他设备的通信。一个或更多个SoC 1204可以用于处理来自相机(例如,通过千兆位多媒体串行链路和以太网连接)、传感器(例如,一个或更多个LIDAR传感器1264,一个或更多个RADAR传感器1260等,可通过以太网连接)的数据,来自总线1202的数据(例如,车辆1200的速度,方向盘位置等),来自一个或更多个GNSS传感器1258的数据(例如,通过以太网或CAN总线连接)。一个或更多个SoC 1204还可以包括专用高性能大容量存储控制器,其可以包括它们自己的DMA引擎,并且可以用于使CPU 1206从常规数据管理任务中解放出来。
一个或更多个SoC 1204可以是具有跨越自动化级别3-5的灵活架构的端到端平台,从而提供全面的功能安全架构,利用并有效利用计算机视觉和ADAS技术实现多样性和冗余,为灵活可靠的驾驶软件堆栈以及深度学习工具提供平台。一个或更多个SoC 1204可以比传统系统更快,更可靠,并且甚至更节能和节省空间。例如,一个或更多个加速器1214当与一个或更多个CPU 1206、一个或更多个GPU 1208和一个或更多个数据存储器1216组合时,可以为3-5级自动驾驶车辆提供快速有效的平台。
因此,该技术提供了传统系统无法实现的性能和功能。例如,可以在CPU上执行计算机视觉算法,其可以使用诸如C编程语言的高级编程语言来配置,以跨多种视觉数据执行各种各样的处理算法。然而,CPU通常不能满足许多计算机视觉应用的性能要求,例如与执行时间和功耗相关的应用。特别是,许多CPU无法实时执行复杂的对象检测算法,而这是车载ADAS应用的要求,也是实际的3-5级自动驾驶车辆的要求。
与传统系统相比,通过提供CPU复合体、GPU复合体和硬件加速集群,本文描述的技术允许同时和/或顺序地执行多个神经网络,并且将结果组合在一起以启用3-5级自动驾驶功能。例如,在DLA或dGPU(例如,GPU 1220)上执行的CNN可以包括文本和单词识别,允许超级计算机读取和理解交通标志,包括神经网络尚未具体训练的标志。DLA还可以包括神经网络,其能够识别、解释和提供对标志的语义理解,并且将该语义理解传递给在CPU复合体上运行的路径规划模块。
作为另一个例子,可以同时运行多个神经网络,因为级别3、4或5驾驶需要。例如,由“警告:闪光灯指示结冰状况”以及电灯组成的警告标志可以由若干神经网络独立地或共同地解释。标志本身可以通过第一部署的神经网络(例如,已经训练的神经网络)被识别为交通标志,文本“闪光灯指示结冰状况”可以由第二部署的神经网络解释,其通知车辆的路径规划软件(优选在CPU Complex上执行)当检测到闪光灯时,存在结冰的情况。可以通过在多个帧上操作第三部署的神经网络来识别闪光灯,从而向车辆的路径规划软件通知闪光灯的存在(或不存在)。所有三个神经网络可以同时运行,例如在DLA内和/或在一个或更多个GPU 1208上。
在一些示例中,用于面部识别和车主识别的CNN可以使用来自相机传感器的数据来识别车辆1200的授权驾驶员和/或所有者的存在。始终在线传感器处理引擎可以用于在车主接近驾驶员车门时解锁车辆并打开车灯,并且在安全模式下,当车主离开车辆时禁用车辆。以这种方式,一个或更多个SoC 1204提供防盗和/或劫车的安全性。
在另一示例中,用于紧急车辆检测和识别的CNN可以使用来自麦克风1296的数据来检测和识别紧急车辆警报器。与使用通用分类器来检测警报器并手动提取特征的传统系统相比,一个或更多个SoC 1204使用CNN来对环境和城市声音进行分类,以及对视觉数据进行分类。在优选实施例中,训练在DLA上运行的CNN以识别紧急车辆的相对接近速度(例如,使用多普勒效应)。CNN还可以被训练以识别特定于车辆正在操作的局部区域的紧急车辆,如一个或更多个GNSS传感器1258所识别的。因此,例如,当在欧洲操作时,CNN将寻求检测欧洲警报器,而在美国,CNN将寻求仅识别北美警报器。一旦检测到紧急车辆,就可以在超声波传感器1262的辅助下使用控制程序来执行紧急车辆安全例程,使车辆减速,拉到车辆侧面,停放车辆,和/或使车辆空转,直到紧急车辆通过。
车辆可以包括一个或更多个CPU 1218(例如,一个或更多个离散的CPU或一个或更多个dCPU),其可以经由高速互连(例如,PCIe)耦合到一个或更多个SoC 1204。例如,一个或更多个CPU 1218可以包括X86处理器。一个或更多个CPU 1218可以用于执行各种功能中的任何功能,例如包括仲裁ADAS传感器和一个或更多个SoC 1204之间可能不一致的结果,和/或监视一个或更多个控制器1236和/或信息娱乐SoC 1230的状态和健康状况。
车辆1200可以包括一个或更多个GPU 1220(例如,一个或更多个离散的GPU或一个或更多个dGPU),其可以经由高速互连(例如,NVIDIA的NVLINK)耦合到一个或更多个SoC1204。一个或更多个GPU 1220可以提供额外的人工智能功能,例如通过执行冗余和/或不同的神经网络,并且可以用于至少部分地基于来自车辆1200的传感器的输入(例如,传感器数据)来训练和/或更新神经网络。
车辆1200还可以包括网络接口1224,其可以包括一个或更多个无线天线1226(例如,用于不同通信协议的一个或更多个无线天线,例如蜂窝天线,蓝牙天线等)。网络接口1224可以用于通过因特网与云(例如,与一个或更多个服务器1278和/或其他网络设备)、与其他车辆和/或与计算设备(例如,乘客的客户端)实现无线连接。为了与其他车辆通信,可以在两个车辆之间建立直接链接和/或可以建立间接链接(例如,跨网络和通过因特网)。可以使用车辆到车辆通信链路来提供直接链接。车辆到车辆通信链路可以向车辆1200提供关于车辆1200附近的车辆的信息(例如,车辆1200前方、侧面和/或后方的车辆)。该功能可以是车辆1200的协作自适应巡航控制功能的一部分。
网络接口1224可以包括提供调制和解调功能的SoC,并使一个或更多个控制器1236能够通过无线网络进行通信。网络接口1224可以包括射频前端,用于从基带上转换到射频,以及从射频下转换到基带。频率转换可以通过众所周知的过程来执行,和/或可以使用超外差过程来执行。在一些示例中,射频前端功能可以由单独的芯片提供。网络接口可以包括用于通过LTE、WCDMA、UMTS、GSM、CDMA2000、蓝牙、蓝牙LE、Wi-Fi、Z-Wave、ZigBee、LoRaWAN和/或其他无线协议进行通信的无线功能。
车辆1200还可以包括一个或更多个数据存储器1228,其可以包括片外(例如,一个或更多个SoC 1204外)存储器。一个或更多个数据存储器1228可以包括一个或更多个存储元件,包括RAM,SRAM,DRAM,VRAM,闪存,硬盘,和/或可以存储至少一位数据的其他组件和/或设备。
车辆1200还可以包括一个或更多个GNSS传感器1258。一个或更多个GNSS传感器1258(例如,GPS和/或辅助GPS传感器)辅助映射、感知、占用网格生成和/或路径规划功能。可以使用任何数量的一个或更多个GNSS传感器1258,包括例如但不限于,使用具有以太网到串行(RS-232)桥的USB连接器的GPS。
车辆1200还可以包括一个或更多个RADAR传感器1260。即使在黑暗和/或恶劣天气条件下,车辆1200也可以使用一个或更多个RADAR传感器1260进行长程车辆检测。RADAR功能安全级别可以是ASIL B。一个或更多个RADAR传感器1260可以使用CAN和/或总线1202(例如,传输由一个或更多个RADAR传感器1260生成的数据)来进行控制和访问对象跟踪数据,在某些示例中,可以访问以太网来访问原始数据。可以使用各种RADAR传感器类型。例如但不限于,一个或更多个RADAR传感器1260可以适用于前、后和侧RADAR使用。在一些示例中,使用一个或更多个脉冲多普勒RADAR传感器。
一个或更多个RADAR传感器1260可以包括不同的配置,例如具有窄视场的长距离,具有宽视场的短距离,短距离侧覆盖等。在一些示例中,长程RADAR可以用于自适应巡航控制功能。长程RADAR系统可以提供通过两个或更多个独立扫描实现的宽视野,例如在250米范围内。一个或更多个RADAR传感器1260可以帮助区分静态和移动对象,并且可以由ADAS系统用于紧急制动辅助和前向碰撞警告。长程RADAR传感器可以包括具有多个(例如,六个或更多个)固定RADAR天线和高速CAN和FlexRay接口的单向多模RADAR。在具有六个天线的示例中,中央四个天线可以创建聚焦波束图案,其被设计为以更高的速度记录车辆1200的周围环境,并且相邻车道中的交通具有最小的干扰。另外两个天线可以扩展视场,使得可以快速检测进入或离开车辆1200车道的车辆。
中程RADAR系统可以包括例如高达1260米(前)或80米(后)的范围,以及高达42度(前)或1250度(后)的视场。短程RADAR系统可以包括但不限于设计成安装在后保险杠两端的RADAR传感器。当安装在后保险杠的两端时,这种RADAR传感器系统可以产生两个光束,恒定地监视车辆后部和车辆旁边的盲点。
短程RADAR系统可以在ADAS系统中用于盲点检测和/或车道变换辅助。
车辆1200还可以包括一个或更多个超声波传感器1262。可以位于车辆1200的前部、后部和/或侧面的一个或更多个超声波传感器1262可以用于停车辅助和/或创建和更新占用网格。可以使用各种各样的一个或更多个超声波传感器1262,并且可以将不同的一个或更多个超声波传感器1262用于不同的检测范围(例如,2.5m,4m)。一个或更多个超声波传感器1262可以在ASIL B的功能安全级别下操作。
车辆1200可以包括一个或更多个LIDAR传感器1264。一个或更多个LIDAR传感器1264可以用于对象和行人检测,紧急制动,碰撞避免,和/或其他功能。一个或更多个LIDAR传感器1264可以是功能安全级别ASIL B。在一些示例中,车辆1200可以包括可以使用以太网(例如,提供数据到千兆以太网交换机)的多个LIDAR传感器1264(例如,两个,四个,六个等)。
在一些示例中,一个或更多个LIDAR传感器1264可以能够提供对象的列表以及它们对于360度视场的距离。一个或更多个商用LIDAR传感器1264可以具有大约1200m的通知范围,精度为2cm-3cm,并且例如支持1200Mbps以太网连接。在一些示例中,可以使用一个或更多个非突出的LIDAR传感器1264。在这样的示例中,一个或更多个LIDAR传感器1264可以被实现为可以嵌入到车辆1200的前部、后部、侧部和/或角落中的小型设备。在这样的示例中,一个或更多个LIDAR传感器1264可提供高达1220度水平和35度垂直视场,即使对于低反射率对象也具有200米的范围。一个或更多个前向LIDAR传感器1264可以被配置用于45度和135度之间的水平视场。
在一些示例中,还可以使用LIDAR技术,例如3D闪光LIDAR。3D闪光LIDAR使用激光闪光灯作为发射源,照亮车辆周围高达约200米。闪光LIDAR单元包括接收器,其记录激光脉冲传播时间和每个像素上的反射光,其进而对应于从车辆到对象的范围。闪光LIDAR可以允许每次激光闪光产生高度精确和无失真的周围环境图像。在一些示例中,可以部署四个闪光LIDAR传感器,在车辆1200的每一侧一个。可用的3D闪光LIDAR系统包括固态3D凝视阵列LIDAR相机,除了风扇之外没有移动部件(例如,非扫描LIDAR设备)。闪光LIDAR设备可以每帧使用5纳秒级别I(人眼安全)激光脉冲,并且可以以3D范围点云和共同登记的强度数据的形式捕获反射的激光。通过使用闪光LIDAR,并且因为闪光LIDAR是没有移动部件的固态设备,所以一个或更多个LIDAR传感器1264可能不太容易受到运动模糊、振动和/或冲击的影响。
车辆还可以包括一个或更多个IMU传感器1266。在一些示例中,一个或更多个IMU传感器1266可以位于车辆1200的后轴的中心。一个或更多个IMU传感器1266可以包括例如但不限于一个或更多个加速度计、一个或更多个磁力计、一个或更多个陀螺仪、一个或更多个磁罗盘和/或其他传感器类型。在一些示例中,例如在六轴应用中,一个或更多个IMU传感器1266可以包括加速度计和陀螺仪,而在九轴应用中,一个或更多个IMU传感器1266可以包括加速度计、陀螺仪和磁力计。
在一些实施例中,一个或更多个IMU传感器1266可以实现为微型高性能GPS辅助惯性导航系统(GPS/INS),其结合了微机电系统(MEMS)惯性传感器、高灵敏度GPS接收器和先进的卡尔曼滤波算法,以提供位置、速度和姿态的估计。这样,在一些示例中,一个或更多个IMU传感器1266可以通过直接观察和关联从GPS到一个或更多个IMU传感器1266的速度变化来使车辆1200能够估计航向而不需要来自磁传感器的输入。在一些示例中,一个或更多个IMU传感器1266和一个或更多个GNSS传感器1258可以组合在单个集成单元中。
车辆可包括放置在车辆1200中和/或周围的一个或更多个麦克风1296。一个或更多个麦克风1296可以用于紧急车辆检测和识别等。
车辆还可包括任何数量的相机类型,包括一个或更多个立体相机1268,一个或更多个广视相机1270,一个或更多个红外相机1272,一个或更多个环绕相机1274,一个或更多个长程和/或中程相机1298,和/或其他相机类型。相机可以用于捕获车辆1200的整个周边周围的图像数据。所使用的相机类型取决于车辆1200的实施例和要求,并且可以使用相机类型的任何组合来提供围绕该车辆1200的必要覆盖。另外,根据实施例,相机的数量可以不同。例如,车辆可包括六个相机,七个相机,十个相机,十二个相机,和/或另一数量的相机。作为示例而非限制,相机可以支持千兆位多媒体串行链路(GMSL)和/或千兆位以太网。在此关于图12A和图12B更详细地描述每个相机。
车辆1200还可以包括一个或更多个振动传感器1242。一个或更多个振动传感器1242可以测量车辆的组件(例如一个或更多个轴)的振动。例如,振动的变化可以指示路面的变化。在另一示例中,当使用两个或更多个振动传感器1242时,振动之间的差异可用于确定路面的摩擦或滑动(例如,当振动的差异在动力驱动轴和自由旋转之间时)。
车辆1200可包括ADAS系统1238。在一些示例中,ADAS系统1238可以包括SoC。ADAS系统1238可包括自主/自适应/自动巡航控制(ACC),协同自适应巡航控制(CACC),前方碰撞警告(FCW),自动紧急制动(AEB),车道偏离警告(LDW),车道保持辅助(LKA),盲点警告(BSW),后部交叉警告(RCTW),碰撞警告系统(CWS),车道居中(LC),和/或其他特征和功能。
ACC系统可以使用一个或更多个RADAR传感器1260,一个或更多个LIDAR传感器1264,和/或一个或更多个相机。ACC系统可包括纵向ACC和/或横向ACC。纵向ACC监视并控制到紧接在车辆1200前方的车辆的距离,并自动调节车辆速度以保持与前方车辆的安全距离。横向ACC执行距离保持,并且建议车辆1200在必要时改变车道。横向ACC与其他ADAS应用(例如LCA和CWS)相关。
CACC使用来自其他车辆的信息,其可以经由网络接口1224和/或例如LCA和CWS的无线天线1226经由无线链路从其他车辆接收,或者间接地通过网络连接(例如,通过因特网)接收。直接链路可以由车辆到车辆(V2V)通信链路提供,而间接链路可以是基础设施到车辆(I2V)通信链路。通常,V2V通信概念提供关于紧接在前的车辆(例如,紧接在车辆1200之前和在与车辆1200相同的车道中的车辆)的信息,而I2V通信概念提供关于更前方的交通的信息。CACC系统可以包括I2V和V2V信息源中的任一个或两者。考虑到车辆1200前方的车辆的信息,CACC可能更可靠并且它有可能改善交通流畅通并减少道路上的拥堵。
FCW系统设计为提醒驾驶员注意危险,以便驾驶员可以采取纠正措施。FCW系统使用前向相机和/或一个或更多个RADAR传感器1260,其耦合到专用处理器,DSP,FPGA,和/或ASIC,其电耦合到驾驶员反馈,例如显示器、扬声器和/或振动组件。FCW系统可以提供警告,例如以声音、视觉警告、振动和/或快速制动脉冲的形式。
AEB系统检测到与另一车辆或其他对象即将发生的前向碰撞,并且如果驾驶员未在指定时间或距离参数内采取纠正措施,则可自动应用制动。AEB系统可以使用一个或更多个前向相机和/或一个或更多个RADAR传感器1260,其耦合到专用处理器,DSP,FPGA,和/或ASIC。当AEB系统检测到危险时,它通常首先警告驾驶员采取纠正措施以避免碰撞,并且如果驾驶员没有采取纠正措施,则AEB系统可以自动应用制动以努力防止或至少缓解预测碰撞的影响。AEB系统可包括诸如动态制动器支持和/或碰撞迫近制动的技术。
LDW系统提供视觉、听觉和/或触觉警告,例如方向盘或座椅振动,以在车辆1200穿过车道标记时警告驾驶员。当驾驶员通过激活转向信号指示故意车道偏离时,LDW系统不会激活。LDW系统可以使用前侧面向相机,其耦合到专用处理器,DSP,FPGA,和/或ASIC,其电耦合到驾驶员反馈,例如显示器、扬声器和/或振动组件。
LKA系统是LDW系统的变型。如果车辆1200开始离开车道,则LKA系统提供转向输入或制动以校正车辆1200。
BSW系统检测并警告驾驶员车辆处于汽车的盲点。BSW系统可以提供视觉、听觉和/或触觉警报以指示合并或改变车道是不安全的。当驾驶员使用转向信号时,系统可以提供附加警告。BSW系统可以使用后侧面向相机和/或一个或更多个RADAR传感器1260,其耦合到专用处理器,DSP,FPGA,和/或ASIC,其电耦合到驾驶员反馈,例如显示器、扬声器和/或振动组件。
当车辆1200正在倒车时,当在后向相机范围之外检测到对象时,RCTW系统可以提供视觉、听觉和/或触觉通知。一些RCTW系统包括AEB,以确保应用车辆制动器以避免碰撞。RCTW系统可以使用一个或更多个后向RADAR传感器1260,其耦合到专用处理器,DSP,FPGA,和/或ASIC,其电耦合到驾驶员反馈,例如显示器,扬声器和/或振动元件。
传统的ADAS系统可能容易产生错误的正结果,让驾驶员感到烦恼和分心,但通常不是灾难性的,因为ADAS系统会提醒驾驶员并允许驾驶员确定安全条件是否真正存在并采取相应措施。然而,在自动驾驶车辆1200中,在结果冲突的情况下,车辆1200本身必须决定是否注意来自主计算机或辅助计算机(例如,第一控制器1236或第二控制器1236)的结果。例如,在一些实施例中,ADAS系统1238可以是备份和/或辅助计算机,用于向备份计算机合理性模块提供感知信息。备份计算机合理性监视器可以在硬件组件上运行冗余的各种软件,以检测感知和动态驱动任务中的故障。来自ADAS系统1238的输出可以提供给监控MCU。如果主计算机和辅助计算机的输出发生冲突,则监控MCU必须确定如何协调冲突以确保安全操作。
在一些示例中,主计算机可以被配置为向监控MCU提供置信度分数,指示主计算机对所选结果的置信度。如果置信度分数超过阈值,则监控MCU可以遵循主计算机的指示,而不管辅助计算机是否提供冲突或不一致的结果。在置信度分数不满足阈值并且主计算机和辅助计算机指示不同结果(例如,冲突)的情况下,监控MCU可以在计算机之间进行仲裁以确定适当的结果。
监控MCU可以被配置为运行一个或更多个神经网络,该神经网络被训练和配置成至少部分地基于来自主计算机和辅助计算机的输出来确定辅助计算机提供错误警报的条件。因此,监控MCU中的一个或更多个神经网络可以了解辅助计算机的输出何时可信任,何时不可信。例如,当辅助计算机是基于RADAR的FCW系统时,监控MCU中的一个或更多个神经网络可以了解FCW系统何时识别实际上不是危险的金属对象,例如引发警报的排水炉排或井盖。类似地,当辅助计算机是基于相机的LDW系统时,监控MCU中的神经网络可以学习在存在骑自行车者或行人时超控LDW并且车道偏离实际上是最安全的操纵。在包括运行在监控MCU上的一个或更多个神经网络的实施例中,监控MCU可以包括适合于运行具有相关存储器的一个或更多个神经网络的DLA或GPU中的至少一个。在优选实施例中,监控MCU可以包括和/或被包括作为一个或更多个SoC 1204的组件。
在其他示例中,ADAS系统1238可以包括使用传统的计算机视觉规则执行ADAS功能的辅助计算机。这样,辅助计算机可以使用经典的计算机视觉规则(如果-那么(if-then))),并且监控MCU中的一个或更多个神经网络的存在可以提高可靠性、安全性和性能。例如,多样化的实现和有意的非身份使整个系统更具容错能力,尤其是软件(或软件-硬件接口)功能引起的故障。例如,如果主计算机上运行的软件中存在软件漏洞或错误,并且在辅助计算机上运行的不相同的软件代码提供相同的总体结果,则监控MCU可能更有信心整体结果是正确的,并且主计算机上的软件或硬件中的漏洞不会导致重大错误。
在一些示例中,ADAS系统1238的输出可以被馈送到主计算机的感知块和/或主计算机的动态驱动任务块。例如,如果ADAS系统1238由于紧靠前方的对象而指示前向碰撞警告,则感知块可在识别对象时使用该信息。在其他示例中,如本文所述,辅助计算机可以具有其自己的神经网络,该神经网络被训练从而降低误报的风险。
车辆1200还可以包括信息娱乐SoC 1230(例如,车载信息娱乐系统(IVI))。尽管图示和描述为SoC,但信息娱乐系统可以不是SoC,并且可以包括两个或更多个分立组件。信息娱乐SoC 1230可以包括可以用于向车辆提供音频(例如,音乐,个人数字助理,导航指令,新闻,广播等)、视频(例如,电视,电影,流媒体)、电话(例如,免提呼叫)、网络连接(例如,LTE,WiFi等)和/或信息服务(例如,导航系统,后停车辅助,无线电数据系统,车辆相关信息,例如燃料水平,所覆盖的总距离,制动燃料水平,油位,门打开/关闭,空气过滤器信息等)的硬件和软件的组合。例如,信息娱乐SoC 1230可以是无线电、盘播放器、导航系统、视频播放器、USB和蓝牙连接、车载、车载娱乐、WiFi、方向盘音频控制、免提语音控制、抬头显示器(HUD)、HMI显示器1234、远程信息处理设备、控制面板(例如,用于控制和/或与各种组件、特征和/或系统交互)和/或其他组件。信息娱乐SoC 1230还可用于向车辆的一个或更多个用户提供信息(例如,视觉和/或听觉),例如来自ADAS系统1238的信息,自动驾驶信息,例如计划的车辆操纵、轨迹、周围环境信息(例如,交叉口信息,车辆30信息,道路信息等),和/或其他信息。
信息娱乐SoC 1230可以包括GPU功能。信息娱乐SoC 1230可以通过总线1202(例如,CAN总线,以太网等)与车辆1200的其他设备、系统和/或组件通信。在一些示例中,信息娱乐SoC 1230可以耦合到监控MCU,使得信息娱乐系统的GPU可以在一个或更多个主控制器1236(例如,车辆1200的主要和/或备用计算机)故障的情况下执行一些自驱动功能。在这样的示例中,信息娱乐SoC 1230可以将车辆1200置于司机安全停车模式,如本文所述。
车辆1200还可以包括仪表组1232(例如,数字仪表盘,电子仪表组,数字仪表板等)。仪表组1232可以包括控制器和/或超级计算机(例如,离散控制器或超级计算机)。仪表组1232可包括一组仪表,例如速度表,燃料水平,油压,转速计,里程表,转向指示器,换档位置指示器,一个或更多个安全带警告灯,一个或更多个停车制动警告灯,一个或更多个发动机故障灯,安全气囊(SRS)系统信息,照明控制,安全系统控制,导航信息等。在一些示例中,可以在信息娱乐SoC 1230和仪表组1232之间显示和/或共享信息。换句话说,可以包括仪表组1232作为信息娱乐SoC1230的一部分,反之亦然。
图12D是根据本公开的一些实施例的用于一个或更多个基于云的服务器和图12A的示例自动驾驶车辆1200之间的通信的系统图。系统1276可以包括一个或更多个服务器1278、一个或更多个网络1290和车辆(包括车辆1200)。一个或更多个服务器1278可以包括多个GPU 1284(A)-1284(H)(本文统称为GPU 1284)、PCIe交换机1282(A)-1282(H)(本文统称为PCIe交换机1282)和/或CPU 1280(A)-1280(B)(本文统称为CPU1280)。GPU 1284、CPU1280和PCIe交换机可以利用高速互连互连,例如但不限于由NVIDIA开发的NVLink接口1288和/或PCIe连接1286。在一些示例中,GPU 1284通过NVLink和/或NVSwitchSoC连接,并且GPU1284和PCIe交换机1282通过PCIe互连连接。尽管示出了八个GPU 1284、两个CPU 1280和两个PCIe交换机,但是这不是限制性的。根据实施例,每个服务器1278可以包括任何数量的GPU 1284、CPU 1280和/或PCIe交换机。例如,一个或更多个服务器1278可以各自包括八个、十六个、三十二个和/或更多个GPU 1284。
一个或更多个服务器1278可以通过一个或更多个网络1290从车辆接收表示示出意外或改变的道路状况的图像的图像数据,例如最近开始的道路工程。一个或更多个服务器1278可以通过一个或更多个网络1290向车辆发送神经网络1292、更新的神经网络1292和/或地图信息1294,包括关于交通和道路状况的信息。对地图信息1294的更新可以包括HD地图1222的更新,例如关于建筑工地、坑洼、弯路、洪水和/或其他障碍物的信息。在一些示例中,神经网络1292、更新的神经网络1292和/或地图信息1294可以来自在从环境中的任何数量的车辆接收的数据中表示的新训练和/或体验,和/或基于至少部分地基于在数据中心执行的训练(例如,使用一个或更多个服务器1278和/或其他服务器)。
一个或更多个服务器1278可以用于至少部分地基于训练数据来训练机器学习模型(例如,神经网络)。训练数据可以由车辆生成,和/或可以在模拟中生成(例如,使用游戏引擎)。在一些示例中,训练数据被标记(例如,神经网络受益于受监督学习的情况)和/或经历其他预处理,而在其他示例中,训练数据未被标记和/或预处理(例如,神经网络不需要受监督学习的情况)。一旦机器学习模型被训练,机器学习模型可以由车辆使用(例如,通过一个或更多个网络1290传输到车辆),和/或机器学习模型可以由一个或更多个服务器1278使用以远程监控车辆。
在一些示例中,一个或更多个服务器1278可以从车辆接收数据并将数据应用于最新的实时神经网络,以进行实时智能推理。一个或更多个服务器1278可以包括由一个或更多个GPU 1284驱动的深度学习超级计算机和/或专用AI计算机,例如由NVIDIA开发的DGX和DGX站机器。然而,在一些示例中,一个或更多个服务器1278可以包括仅使用CPU驱动的数据中心的深度学习基础设施。
一个或更多个服务器1278的深度学习基础设施可以能够进行快速实时的推理,并且可以使用该能力来评估和验证车辆1200中的处理器、软件和/或相关硬件的健康状况。例如,深度基础设施可以从车辆1200接收周期性更新,诸如车辆1200已经在图像序列中定位的图像和/或对象序列(例如,经由计算机视觉和/或其他机器学习对象分类技术)。深度学习基础设施可以运行其自己的神经网络以识别对象并将它们与由车辆1200识别的对象进行比较,并且如果结果不匹配并且基础设施断定车辆1200中的AI发生故障,一个或更多个服务器1278可以向车辆1200发送信号,指示车辆1200的故障安全计算机进行控制,通知乘客,并完成安全停车操纵。
对于推理,一个或更多个服务器1278可以包括一个或更多个GPU 1284和一个或更多个可编程推理加速器(例如,NVIDIA的TensorRT3)。GPU供电的服务器和推理加速的组合可以使实时响应成为可能。在其他示例中,例如在性能不太重要的情况下,由CPU、FPGA和其他处理器驱动的服务器可以用于推理。
图13是适用于实现本公开的一些实施例的示例计算设备1300的框图。计算设备1300可以包括直接或间接连接以下设备的总线1302:存储器1304,一个或更多个中央处理单元(CPU)1306,一个或更多个图形处理单元(GPU)1308,通信接口1310,输入/输出(I/O)端口1312,输入/输出组件1314,电源1316,以及一个或更多个呈现组件1318(例如,一个或更多个显示器)。
尽管图13的各个方框都是示出为通过总线1302与线路连接,这不是限制性的,仅仅是为了清楚。例如,在一些实施例中,诸如显示设备之类的呈现组件1318可以被认为是I/O组件1314(例如,如果显示器是触摸屏)。作为另一示例,CPU 1306和/或GPU 1308可以包括存储器(例如,存储器1304可以表示除了GPU 1308、CPU 1306和/或其他组件的存储器之外的存储设备)。换句话说,图13的计算设备仅仅是说明性的。“工作站”、“服务器”、“笔记本电脑”、“桌上计算机”、“平板电脑”、“客户端设备”、“移动设备”、“手持设备”、“游戏机”、“电子控制单元(ECU)”、“虚拟现实系统”和/或其他设备或系统类型等类别之间没有区别,全部都在图13的计算设备的范围内所设想。
总线1302可以表示一个或更多个总线,例如地址总线,数据总线,控制总线,或其组合。总线1302可以包括一种或更多种总线类型,例如工业标准架构(ISA)总线,扩展工业标准架构(EISA)总线,视频电子标准协会(VESA)总线,外围组件互连(PCI)总线,外围组件互连快速(PCIe)总线,和/或其他类型的总线。
存储器1304可以包括各种计算机可读介质中的任何一种。计算机可读介质可以是可以由计算设备1300访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质,以及可移除和不可移除介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质可以包括以用于存储信息(诸如计算机可读指令、数据结构、程序模块和/或其他数据类型)的任何方法或技术实现的易失性和非易失性介质和/或可移除和不可移除介质。例如,存储器1304可以存储计算机可读指令(例如,表示一个或更多个程序和/或一个或更多个程序元素,例如操作系统)。计算机存储介质可以包括但不限于RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字通用光盘(DVD)或其他光盘存储器、磁带盒、磁带、磁盘存储器或其他磁存储设备、或可以用于存储所需信息并且可以由计算设备1300访问的任何其他介质。如本文所使用的,计算机存储介质不包括信号本身。
通信介质可以在诸如载波或其他传输机制的已调制数据信号中体现计算机可读指令、数据结构、程序模块和/或其他数据类型,并且包括任何信息传递介质。术语“已调制数据信号”可以指的是以将信息编码在信号中的方式设置或改变其一个或更多个特性的信号。作为示例而非限制,通信介质可以包括有线介质,诸如有线网络或直接有线连接,以及无线介质,诸如声学、RF、红外和其他无线介质。上述任何组合也应包括在计算机可读介质的范围内。
一个或更多个CPU 1306可以被配置为执行计算机可读指令以控制计算设备1300的一个或更多个组件以执行本文描述的方法和/或过程中的一个或更多个。每个CPU 1306可以包括能够同时处理多个软件线程的一个或更多个核(例如,一个,两个,四个,八个,二十八个,七十二个等)。一个或更多个CPU 1306可以包括任何类型的处理器,并且可以包括不同类型的处理器,这取决于所实现的计算设备1300的类型(例如,用于移动设备的具有较少核的处理器和用于服务器的具有更多核的处理器)。例如,取决于计算设备1300的类型,处理器可以是使用精简指令集计算(RISC)实现的ARM处理器或使用复杂指令集计算(CISC)实现的x86处理器。除了一个或更多个微处理器或辅助协处理器(例如数学协处理器)之外,计算设备1300还可以包括一个或更多个CPU 1306。
计算设备1300可以使用一个或更多个GPU1308来渲染图形(例如,3D图形)。一个或更多个GPU 1308可以包括数百或数千个能够同时处理数百或数千个软件线程的核。一个或更多个GPU 1308可以响应于渲染命令(例如,经由主机接口接收的来自一个或更多个CPU1306的渲染命令)生成输出图像的像素数据。一个或更多个GPU 1308可以包括用于存储像素数据的图形存储器,例如显示存储器。显示存储器可以被包括作为存储器1304的一部分。一个或更多个GPU 1308可以包括并行操作的两个或更多个GPU(例如,经由链路)。当组合在一起时,每个GPU 1308可以生成用于输出图像的不同部分或用于不同输出图像的像素数据(例如,用于第一图像的第一GPU和用于第二图像的第二GPU)。每个GPU可以包括其自己的存储器,或者可以与其他GPU共享存储器。
在计算设备1300不包括一个或更多个GPU 1308的示例中,一个或更多个CPU 1306可以用于渲染图形。
通信接口1310可以包括一个或更多个接收器、发送器和/或收发器,其使计算设备1300能够经由电子通信网络与其他计算设备通信,包括有线和/或无线通信。通信接口1310可以包括用于实现通过多个不同网络中的任何网络进行通信的组件和功能,例如无线网络(例如,Wi-Fi,Z-Wave,蓝牙,蓝牙LE,ZigBee等),有线网络(例如,通过以太网通信),低功率广域网(例如,LoRaWAN,SigFox等)和/或因特网。
I/O端口1312可以使计算设备1300能够逻辑地耦合到包括I/O组件1314、一个或更多个呈现组件1318和/或其他组件的其他设备,它们中的一些可以内置于(例如,集成在)计算设备1300。说明性I/O组件1314包括麦克风,鼠标,键盘,操纵杆,游戏手柄,游戏控制器,卫星天线,扫描仪,打印机,无线设备等。I/O组件1314可以提供处理由用户生成的空中手势、语音或其他生理输入的自然用户界面(NUI)。在某些情况下,可以将输入发送到适当的网络元件以进行进一步处理。NUI可以实现与计算设备1300的显示关联的语音识别、手写笔识别、面部识别、生物识别、屏幕和屏幕附近的手势识别、空中手势、头部和眼睛跟踪以及触摸识别(如下面更详细描述的)的任何组合。计算设备1300可以包括用于手势检测和识别的深度相机,诸如立体相机系统,红外相机系统,RGB相机系统,触摸屏技术,以及它们的组合。另外,计算设备1300可以包括能够检测运动的加速度计或陀螺仪(例如,作为惯性测量单元(IMU)的一部分)。在一些示例中,加速度计或陀螺仪的输出可以由计算设备1300使用以呈现沉浸式增强现实或虚拟现实。
电源1316可以包括硬连线电源、电池电源或其组合。电源1316可以向计算设备1300提供电力以使计算设备1300的组件能够操作。
一个或更多个呈现组件1318可以包括显示器(例如,监视器,触摸屏,电视屏幕,抬头显示器(HUD),其他显示器类型或其组合),扬声器,和/或其他呈现组件。一个或更多个呈现组件1318可以从其他组件(例如,一个或更多个GPU 1308,一个或更多个CPU 1306等)接收数据,并输出数据(例如,作为图像,视频,声音等)。
可以在计算机代码或机器可用指令的一般上下文中描述本公开,机器可用指令包括由计算机或其他机器(诸如个人数据助理或其他手持设备)执行的计算机可执行指令,诸如程序模块。通常,包括例程、程序、对象、组件、数据结构等的程序模块指代执行特定任务或实现特定抽象数据类型的代码。本公开可以在各种系统配置中实践,包括手持设备,消费电子产品,通用计算机,更专业计算设备等。本公开还可以在分布式计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。
如本文所使用的,关于两个或更多个元素的“和/或”的叙述应该被解释为仅表示一个元素或元素的组合。例如,“元素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.如权利要求1所述的方法,其中,所述确定所述对象的参数包括:至少部分地基于所述传感器数据确定所述对象的分类,并且至少部分地基于所述分类确定所述参数中的至少一个。
4.如权利要求1所述的方法,其中,所述对象的轨迹的所述建模包括:确定定义所述安全时间间隔的每一个内所述对象的速度的变化的运动曲线。
5.如权利要求1所述的方法,其中,所述对象的轨迹的所述建模至少部分地基于所述对象开始减速之后的反应时间。
6.如权利要求1所述的方法,其中,所述对象的轨迹的所述建模至少部分地基于所述轨迹的开始时间处所述对象的速度。
7.如权利要求1所述的方法,其中,所述轨迹均包括朝向所述多个目标位置中的目标位置的直接路径。
8.如权利要求1所述的方法,其中,所述安全时间间隔的所述计算包括:对于所述多个目标位置中的每个目标位置,确定所述对象在所述轨迹的相应轨迹中停止在所述目标位置的时间。
9.如权利要求1所述的方法,其中,所述分析所述建议轨迹或路径包括:确定所述车辆到所述轨迹中的点的建议到达时间是否均在所述目标位置中的相应目标位置的所述安全时间间隔内;以及向所述车辆的控制组件发送关于所述车辆到所述轨迹中的点的所述建议到达时间是否均在所述目标位置中的所述相应目标位置的所述安全时间间隔内的指示。
10.一种方法,包括:至少部分地基于由环境中的至少一个传感器生成的传感器数据确定位于所述环境中的对象的参数;至少部分地基于所述对象的参数,计算针对所述环境中的目标位置的安全时间间隔,在该安全时间间隔内,车辆占据所述目标位置不会导致与所述对象碰撞;生成具有表示所述安全时间间隔的至少部分的相应数据值的图像;以及至少部分地基于所述图像和所述车辆在所述环境中的位置,执行生成所述车辆的轨迹或分析所述车辆的建议轨迹或路径中的至少一个。
11.如权利要求10所述的方法,其中,所述数据值均参考所述安全时间间隔的共同开始时间。
12.如权利要求10所述的方法,其中,所述数据值形成轮廓,所述轮廓表示一组所述目标位置和在相应的一组所述安全时间间隔内的给定安全到达时间。
13.如权利要求10所述的方法,其中,所述安全时间间隔是第一安全时间间隔,并且所述方法还包括:计算针对所述环境中的目标位置的第二安全时间间隔,在所述第二安全时间间隔内,所述车辆占据所述目标位置不会导致与第二对象碰撞;以及针对对应于所述数据值的一组所述目标位置,确定所述第一安全时间间隔在所述第二安全时间间隔之前结束;其中,至少部分地基于确定所述第一安全时间间隔在所述第二安全时间间隔之前结束,所述数据值表示所述第一时间间隔。
14.如权利要求10所述的方法,还包括在人机界面(HMI)显示器或所述车辆的仪表板中的一个或更多个上显示对应于所述图像的可视化。
15.如权利要求10所述的方法,所述传感器数据来自所述车辆的至少一个传感器,并且所述传感器数据表示所述环境中的所述至少一个传感器的视场。
16.一种方法,包括:至少部分地基于由环境中的传感器生成的传感器数据确定位于所述环境中的对象的参数;至少部分地基于所述对象的参数,确定车辆占据所述环境中的目标位置不会导致与所述对象碰撞的安全到达时间;生成表示一组所述目标位置和对应的一组所述安全到达时间的轮廓;以及至少部分地基于所述轮廓和所述环境中的所述车辆的位置,执行生成所述车辆的轨迹或分析所述车辆的建议轨迹或路径中的至少一个。
17.如权利要求16所述的方法,其中,所述轮廓的所述生成包括:至少部分地基于确定所述一组中的每个目标位置的所述安全到达时间的相同安全到达时间选择所述一组目标位置;以及至少部分地基于对所述一组目标位置的所述选择来形成所述轮廓。
18.如权利要求16所述的方法,其中,所述轮廓的所述生成包括:生成具有表示所述安全到达时间的数据值的图像,并且所述执行生成所述车辆的轨迹或分析所述车辆的建议轨迹或路径中的至少一个包括:分析所述图像。
19.如权利要求16所述的方法,还包括在人机界面(HMI)显示器或所述车辆的仪表板中的一个或更多个上显示对应于所述轮廓的可视化。
20.如权利要求16所述的方法,所述传感器数据来自所述车辆的至少一个传感器,并且所述传感器数据表示环境中的所述至少一个传感器的视场。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862628831P | 2018-02-09 | 2018-02-09 | |
US62/628,831 | 2018-02-09 | ||
PCT/US2019/017072 WO2019157193A1 (en) | 2018-02-09 | 2019-02-07 | Controlling autonomous vehicles using safe arrival times |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111133448A true CN111133448A (zh) | 2020-05-08 |
Family
ID=67541561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980004694.7A Pending CN111133448A (zh) | 2018-02-09 | 2019-02-07 | 使用安全到达时间控制自动驾驶车辆 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11789449B2 (zh) |
CN (1) | CN111133448A (zh) |
DE (1) | DE112019000279T5 (zh) |
WO (1) | WO2019157193A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112212861A (zh) * | 2020-09-21 | 2021-01-12 | 哈尔滨工业大学(深圳) | 一种基于单惯性传感器的轨迹还原方法 |
CN112562316A (zh) * | 2020-11-04 | 2021-03-26 | 中山大学 | 一种基于acp理论的智能网联车平行驾驶控制方法 |
CN113682299A (zh) * | 2020-05-19 | 2021-11-23 | 广州汽车集团股份有限公司 | 一种车辆前向碰撞预警方法及装置 |
CN114523963A (zh) * | 2020-11-23 | 2022-05-24 | Aptiv技术有限公司 | 预测与宿主车辆的道路碰撞的系统和方法 |
CN117058280A (zh) * | 2023-10-11 | 2023-11-14 | 成都古河云科技有限公司 | 一种三维交通车辆实时轨迹还原拟合方法 |
Families Citing this family (95)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6622148B2 (ja) * | 2016-06-17 | 2019-12-18 | 日立オートモティブシステムズ株式会社 | 周辺環境認識装置 |
US10209718B2 (en) * | 2017-03-14 | 2019-02-19 | Starsky Robotics, Inc. | Vehicle sensor system and method of use |
WO2018176000A1 (en) | 2017-03-23 | 2018-09-27 | DeepScale, Inc. | Data synthesis for autonomous control systems |
US11893393B2 (en) | 2017-07-24 | 2024-02-06 | Tesla, Inc. | Computational array microprocessor system with hardware arbiter managing memory requests |
US11409692B2 (en) | 2017-07-24 | 2022-08-09 | Tesla, Inc. | Vector computational unit |
US10671349B2 (en) | 2017-07-24 | 2020-06-02 | Tesla, Inc. | Accelerated mathematical engine |
US11157441B2 (en) | 2017-07-24 | 2021-10-26 | Tesla, Inc. | Computational array microprocessor system using non-consecutive data formatting |
US10705532B2 (en) * | 2017-12-26 | 2020-07-07 | X Development Llc | Standing test device for mobile robots |
US11042163B2 (en) | 2018-01-07 | 2021-06-22 | Nvidia Corporation | Guiding vehicles through vehicle maneuvers using machine learning models |
US11561791B2 (en) | 2018-02-01 | 2023-01-24 | Tesla, Inc. | Vector computational unit receiving data elements in parallel from a last row of a computational array |
WO2019152888A1 (en) | 2018-02-02 | 2019-08-08 | Nvidia Corporation | Safety procedure analysis for obstacle avoidance in autonomous vehicle |
US11995551B2 (en) | 2018-02-14 | 2024-05-28 | Nvidia Corporation | Pruning convolutional neural networks |
US10737717B2 (en) * | 2018-02-14 | 2020-08-11 | GM Global Technology Operations LLC | Trajectory tracking for vehicle lateral control using neural network |
WO2019161300A1 (en) | 2018-02-18 | 2019-08-22 | Nvidia Corporation | Detecting objects and determining confidence scores |
US10752218B2 (en) * | 2018-02-22 | 2020-08-25 | Ford Global Technologies, Llc | Camera with cleaning system |
DE112019000122T5 (de) | 2018-02-27 | 2020-06-25 | Nvidia Corporation | Echtzeiterfassung von spuren und begrenzungen durch autonome fahrzeuge |
WO2019178548A1 (en) | 2018-03-15 | 2019-09-19 | Nvidia Corporation | Determining drivable free-space for autonomous vehicles |
US20210117702A1 (en) * | 2018-03-19 | 2021-04-22 | Outsight | Methods and systems for identifying material composition of objects |
US11080590B2 (en) | 2018-03-21 | 2021-08-03 | Nvidia Corporation | Stereo depth estimation using deep neural networks |
WO2019191306A1 (en) | 2018-03-27 | 2019-10-03 | Nvidia Corporation | Training, testing, and verifying autonomous machines using simulated environments |
US11084496B2 (en) * | 2018-04-23 | 2021-08-10 | Accenture Global Solutions Limited | Utilizing qualitative models to provide transparent decisions for autonomous vehicles |
US10862971B2 (en) | 2018-04-27 | 2020-12-08 | EMC IP Holding Company LLC | Internet of things gateway service for a cloud foundry platform |
US20190337511A1 (en) * | 2018-05-02 | 2019-11-07 | GM Global Technology Operations LLC | System and Method for Controlling an Autonomous Vehicle |
US11966838B2 (en) | 2018-06-19 | 2024-04-23 | Nvidia Corporation | Behavior-guided path planning in autonomous machine applications |
US11215999B2 (en) | 2018-06-20 | 2022-01-04 | Tesla, Inc. | Data pipeline and deep learning system for autonomous driving |
US10715640B2 (en) * | 2018-07-13 | 2020-07-14 | EMC IP Holding Company LLC | Internet of things gateways of moving networks |
US11361457B2 (en) | 2018-07-20 | 2022-06-14 | Tesla, Inc. | Annotation cross-labeling for autonomous control systems |
US11636333B2 (en) | 2018-07-26 | 2023-04-25 | Tesla, Inc. | Optimizing neural network structures for embedded systems |
EP3787947A2 (en) * | 2018-08-14 | 2021-03-10 | Mobileye Vision Technologies Ltd. | Systems and methods for navigating with safe distances |
US11562231B2 (en) | 2018-09-03 | 2023-01-24 | Tesla, Inc. | Neural networks for embedded devices |
CN110873888B (zh) * | 2018-09-04 | 2022-05-06 | 腾讯大地通途(北京)科技有限公司 | 定位方法、定位装置、定位设备和计算机存储介质 |
KR20210072048A (ko) | 2018-10-11 | 2021-06-16 | 테슬라, 인크. | 증강 데이터로 기계 모델을 훈련하기 위한 시스템 및 방법 |
US11196678B2 (en) | 2018-10-25 | 2021-12-07 | Tesla, Inc. | QOS manager for system on a chip communications |
US11124185B2 (en) * | 2018-11-13 | 2021-09-21 | Zoox, Inc. | Perception collision avoidance |
CN113039563B (zh) | 2018-11-16 | 2024-03-12 | 辉达公司 | 学习生成用于训练神经网络的合成数据集 |
US10824913B1 (en) * | 2018-11-21 | 2020-11-03 | Amazon Technologies, LLC | Training machine learning models for physical agents and robotic controls with simulations |
US10936902B1 (en) | 2018-11-27 | 2021-03-02 | Zoox, Inc. | Training bounding box selection |
US11010907B1 (en) * | 2018-11-27 | 2021-05-18 | Zoox, Inc. | Bounding box selection |
US11816585B2 (en) | 2018-12-03 | 2023-11-14 | Tesla, Inc. | Machine learning models operating at different frequencies for autonomous vehicles |
US11537811B2 (en) | 2018-12-04 | 2022-12-27 | Tesla, Inc. | Enhanced object detection for autonomous vehicles based on field view |
US11104332B2 (en) | 2018-12-12 | 2021-08-31 | Zoox, Inc. | Collision avoidance system with trajectory validation |
US11610117B2 (en) | 2018-12-27 | 2023-03-21 | Tesla, Inc. | System and method for adapting a neural network model on a hardware platform |
US11170299B2 (en) | 2018-12-28 | 2021-11-09 | Nvidia Corporation | Distance estimation to objects and free-space boundaries in autonomous machine applications |
WO2020140049A1 (en) | 2018-12-28 | 2020-07-02 | Nvidia Corporation | Distance to obstacle detection in autonomous machine applications |
DE112019006484T5 (de) | 2018-12-28 | 2021-10-21 | Nvidia Corporation | Detektion von abständen zu hindernissen in autonomen maschinenanwendungen |
US10997461B2 (en) | 2019-02-01 | 2021-05-04 | Tesla, Inc. | Generating ground truth for machine learning from time series elements |
US11150664B2 (en) | 2019-02-01 | 2021-10-19 | Tesla, Inc. | Predicting three-dimensional features for autonomous driving |
US11520345B2 (en) | 2019-02-05 | 2022-12-06 | Nvidia Corporation | Path perception diversity and redundancy in autonomous machine applications |
US11567514B2 (en) | 2019-02-11 | 2023-01-31 | Tesla, Inc. | Autonomous and user controlled vehicle summon to a target |
US10956755B2 (en) | 2019-02-19 | 2021-03-23 | Tesla, Inc. | Estimating object properties using visual image data |
US11718300B2 (en) * | 2019-02-27 | 2023-08-08 | Zf Automotive Germany Gmbh | Method and control unit for a system for controlling a motor vehicle |
WO2020185779A1 (en) | 2019-03-11 | 2020-09-17 | Nvidia Corporation | Intersection detection and classification in autonomous machine applications |
CN113557174B (zh) * | 2019-03-20 | 2024-07-09 | 索尼集团公司 | 信息处理装置、信息处理方法、移动控制装置和移动控制方法 |
US11485353B2 (en) * | 2019-04-30 | 2022-11-01 | Baidu Usa Llc | Segmenting a parking trajectory to control an autonomous driving vehicle to park |
US11458929B1 (en) * | 2019-05-10 | 2022-10-04 | Gm Cruise Holdings Llc | Unlocking vehicle doors with facial recognition |
US10848738B1 (en) * | 2019-05-23 | 2020-11-24 | Adobe Inc. | Trajectory-based viewport prediction for 360-degree videos |
US10713950B1 (en) * | 2019-06-13 | 2020-07-14 | Autonomous Roadway Intelligence, Llc | Rapid wireless communication for vehicle collision mitigation |
US10838061B1 (en) * | 2019-07-16 | 2020-11-17 | Blackmore Sensors & Analytics, LLC. | Method and system for enhanced velocity resolution and signal to noise ratio in optical phase-encoded range detection |
JP6913716B2 (ja) * | 2019-07-17 | 2021-08-04 | 本田技研工業株式会社 | 車両制御装置、車両制御方法、及びプログラム |
US10956776B2 (en) | 2019-08-06 | 2021-03-23 | Alibaba Group Holding Limited | 2D convolutional accelerator that generates 3D results |
CN112394380B (zh) * | 2019-08-16 | 2024-04-02 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置及系统 |
US11698272B2 (en) | 2019-08-31 | 2023-07-11 | Nvidia Corporation | Map creation and localization for autonomous driving applications |
FR3102879B1 (fr) * | 2019-10-30 | 2024-09-13 | Renault Sas | Système et procédé de gestion de la position d’un véhicule autonome. |
US11912271B2 (en) * | 2019-11-07 | 2024-02-27 | Motional Ad Llc | Trajectory prediction from precomputed or dynamically generated bank of trajectories |
CN110969287B (zh) * | 2019-11-07 | 2022-11-01 | 郑州大学 | 一种舰载机导引路径规划方法 |
JP7412145B2 (ja) * | 2019-11-20 | 2024-01-12 | 株式会社Subaru | 車両制御システム |
EP3832341A1 (en) * | 2019-11-21 | 2021-06-09 | NVIDIA Corporation | Deep neural network for detecting obstacle instances using radar sensors in autonomous machine applications |
RU2769921C2 (ru) * | 2019-11-21 | 2022-04-08 | Общество с ограниченной ответственностью "Яндекс Беспилотные Технологии" | Способы и системы для автоматизированного определения присутствия объектов |
CN111078759B (zh) * | 2019-12-20 | 2023-08-15 | 方正国际软件(北京)有限公司 | 多维时空数据碰撞方法、装置、设备和存储介质 |
US11713056B2 (en) * | 2019-12-28 | 2023-08-01 | Intel Corporation | Autonomous vehicle system for detecting safety driving model compliance status of another vehicle, and planning accordingly |
US11687778B2 (en) | 2020-01-06 | 2023-06-27 | The Research Foundation For The State University Of New York | Fakecatcher: detection of synthetic portrait videos using biological signals |
US11643105B2 (en) | 2020-02-21 | 2023-05-09 | Argo AI, LLC | Systems and methods for generating simulation scenario definitions for an autonomous vehicle system |
US11429107B2 (en) | 2020-02-21 | 2022-08-30 | Argo AI, LLC | Play-forward planning and control system for an autonomous vehicle |
US11966673B2 (en) | 2020-03-13 | 2024-04-23 | Nvidia Corporation | Sensor simulation and learning sensor models with generative machine learning methods |
US11364883B2 (en) * | 2020-03-27 | 2022-06-21 | Nvidia Corporation | Leveraging rear-view sensors for automatic emergency braking in autonomous machine applications |
US12077190B2 (en) | 2020-05-18 | 2024-09-03 | Nvidia Corporation | Efficient safety aware path selection and planning for autonomous machine applications |
US12071160B2 (en) * | 2020-07-20 | 2024-08-27 | Aurora Operations, Inc. | Systems and methods for generating vehicle corridors to improve path planning efficiency |
US11636689B2 (en) * | 2020-09-08 | 2023-04-25 | Nvidia Corporation | Adaptive object tracking algorithm for autonomous machine applications |
US20220116052A1 (en) * | 2020-10-12 | 2022-04-14 | Uatc, Llc | Systems and Methods for Compressing and Storing Sensor Data Collected by an Autonomous Vehicle |
US11648959B2 (en) | 2020-10-20 | 2023-05-16 | Argo AI, LLC | In-vehicle operation of simulation scenarios during autonomous vehicle runs |
US11978266B2 (en) | 2020-10-21 | 2024-05-07 | Nvidia Corporation | Occupant attentiveness and cognitive load monitoring for autonomous and semi-autonomous driving applications |
EP3988417A1 (en) * | 2020-10-23 | 2022-04-27 | Tusimple, Inc. | Safe driving operations of autonomous vehicles |
US11554793B2 (en) * | 2020-10-26 | 2023-01-17 | Tusimple, Inc. | Vehicle safety system for autonomous vehicles |
RU2770239C1 (ru) * | 2020-11-30 | 2022-04-14 | Общество с ограниченной ответственностью «Яндекс Беспилотные Технологии» | Способ и система определения траектории транспортного средства через слепую зону |
DE102020133674A1 (de) | 2020-12-16 | 2022-06-23 | Bayerische Motoren Werke Aktiengesellschaft | Verfahren und System zum Koordinieren von fahrerlosen Transportfahrzeugen |
US12019449B2 (en) | 2021-02-18 | 2024-06-25 | Argo AI, LLC | Rare event simulation in autonomous vehicle motion planning |
DE102021107972A1 (de) * | 2021-03-30 | 2022-10-06 | Valeo Schalter Und Sensoren Gmbh | Verfahren zum betreiben eines fahrassistenzsystems, computerprogrammprodukt, fahrassistenzsystem und fahrzeug |
JP2023005759A (ja) * | 2021-06-29 | 2023-01-18 | 株式会社Soken | 退避走行支援装置 |
US11875548B2 (en) * | 2021-07-22 | 2024-01-16 | GM Global Technology Operations LLC | System and method for region of interest window generation for attention based perception |
JP2024537084A (ja) * | 2021-10-04 | 2024-10-10 | アティエヴァ、インコーポレイテッド | 低速におけるスムーズな自動化制動 |
CN113978457B (zh) * | 2021-12-24 | 2022-05-03 | 深圳佑驾创新科技有限公司 | 一种碰撞风险预测方法及装置 |
CN114882706B (zh) * | 2022-05-31 | 2023-06-16 | 华中科技大学 | 一种基于非结构性路面的周向防碰撞预警方法及系统 |
US20230382427A1 (en) * | 2022-05-31 | 2023-11-30 | Motional Ad Llc | Motion prediction in an autonomous vehicle using fused synthetic and camera images |
CN114771514B (zh) * | 2022-06-14 | 2022-09-02 | 小米汽车科技有限公司 | 车辆行驶控制方法、装置、设备、介质、芯片及车辆 |
DE102022128153A1 (de) | 2022-10-25 | 2024-04-25 | Bayerische Motoren Werke Aktiengesellschaft | Verfahren und System zum Koordinieren von autonomen Fahrzeugen in wenigstens einem Verkehrsbereich |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040246114A1 (en) * | 2003-06-05 | 2004-12-09 | Stefan Hahn | Image processing system for a vehicle |
CN101132965A (zh) * | 2005-03-03 | 2008-02-27 | 大陆-特韦斯贸易合伙股份公司及两合公司 | 用于在车辆变换车道时避免碰撞的方法和装置 |
CN101837782A (zh) * | 2009-01-26 | 2010-09-22 | 通用汽车环球科技运作公司 | 用于碰撞预备系统的多目标融合模块 |
US20110246156A1 (en) * | 2008-12-23 | 2011-10-06 | Continental Safety Engineering International Gmbh | Method for Determining the Probability of a Collision of a Vehicle With a Living Being |
US20120101711A1 (en) * | 2009-02-05 | 2012-04-26 | Trw Limited | Collision Warning Apparatus |
CN104937512A (zh) * | 2012-09-21 | 2015-09-23 | 罗伯特·博世有限公司 | 用于使机动车在自动行驶中运行的方法和设备 |
US20160362118A1 (en) * | 2011-08-31 | 2016-12-15 | Pulsar Informatics, Inc. | Driver performance metric |
WO2017079349A1 (en) * | 2015-11-04 | 2017-05-11 | Zoox, Inc. | System for implementing an active safety system in an autonomous vehicle |
CN109477723A (zh) * | 2016-06-10 | 2019-03-15 | 杜克大学 | 自动驾驶车辆运动规划和可重新配置的运动规划处理器 |
US20190146515A1 (en) * | 2016-11-11 | 2019-05-16 | Info Solution S.P.A. | Method and device for driving a self-moving vehicle and related driving system |
US10976732B2 (en) * | 2017-07-07 | 2021-04-13 | Zoox, Inc. | Predictive teleoperator situational awareness |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8060306B2 (en) * | 2007-10-04 | 2011-11-15 | Deere & Company | Method and system for obstacle avoidance for a vehicle |
JP4978494B2 (ja) * | 2008-02-07 | 2012-07-18 | トヨタ自動車株式会社 | 自律移動体、及びその制御方法 |
DE102013001228A1 (de) * | 2013-01-25 | 2014-07-31 | Wabco Gmbh | Verfahren zum Ermitteln eines Auslösekriteriums für eine Bremsung und Notbremssystem für ein Fahrzeug |
US11630800B2 (en) | 2015-05-01 | 2023-04-18 | Nvidia Corporation | Programmable vision accelerator |
CN108431549B (zh) * | 2016-01-05 | 2020-09-04 | 御眼视觉技术有限公司 | 具有施加的约束的经训练的系统 |
US10289469B2 (en) | 2016-10-28 | 2019-05-14 | Nvidia Corporation | Reliability enhancement utilizing speculative execution systems and methods |
WO2019152888A1 (en) | 2018-02-02 | 2019-08-08 | Nvidia Corporation | Safety procedure analysis for obstacle avoidance in autonomous vehicle |
US10885698B2 (en) | 2018-08-10 | 2021-01-05 | Nvidia Corporation | Method for programmable timeouts of tree traversal mechanisms in hardware |
US12077190B2 (en) | 2020-05-18 | 2024-09-03 | Nvidia Corporation | Efficient safety aware path selection and planning for autonomous machine applications |
-
2019
- 2019-02-07 WO PCT/US2019/017072 patent/WO2019157193A1/en active Application Filing
- 2019-02-07 US US16/269,921 patent/US11789449B2/en active Active
- 2019-02-07 DE DE112019000279.1T patent/DE112019000279T5/de active Pending
- 2019-02-07 CN CN201980004694.7A patent/CN111133448A/zh active Pending
-
2023
- 2023-09-11 US US18/464,621 patent/US20230418299A1/en active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040246114A1 (en) * | 2003-06-05 | 2004-12-09 | Stefan Hahn | Image processing system for a vehicle |
CN101132965A (zh) * | 2005-03-03 | 2008-02-27 | 大陆-特韦斯贸易合伙股份公司及两合公司 | 用于在车辆变换车道时避免碰撞的方法和装置 |
US20110246156A1 (en) * | 2008-12-23 | 2011-10-06 | Continental Safety Engineering International Gmbh | Method for Determining the Probability of a Collision of a Vehicle With a Living Being |
CN101837782A (zh) * | 2009-01-26 | 2010-09-22 | 通用汽车环球科技运作公司 | 用于碰撞预备系统的多目标融合模块 |
US20120101711A1 (en) * | 2009-02-05 | 2012-04-26 | Trw Limited | Collision Warning Apparatus |
US20160362118A1 (en) * | 2011-08-31 | 2016-12-15 | Pulsar Informatics, Inc. | Driver performance metric |
CN104937512A (zh) * | 2012-09-21 | 2015-09-23 | 罗伯特·博世有限公司 | 用于使机动车在自动行驶中运行的方法和设备 |
WO2017079349A1 (en) * | 2015-11-04 | 2017-05-11 | Zoox, Inc. | System for implementing an active safety system in an autonomous vehicle |
CN109477723A (zh) * | 2016-06-10 | 2019-03-15 | 杜克大学 | 自动驾驶车辆运动规划和可重新配置的运动规划处理器 |
US20190146515A1 (en) * | 2016-11-11 | 2019-05-16 | Info Solution S.P.A. | Method and device for driving a self-moving vehicle and related driving system |
US10976732B2 (en) * | 2017-07-07 | 2021-04-13 | Zoox, Inc. | Predictive teleoperator situational awareness |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113682299A (zh) * | 2020-05-19 | 2021-11-23 | 广州汽车集团股份有限公司 | 一种车辆前向碰撞预警方法及装置 |
CN112212861A (zh) * | 2020-09-21 | 2021-01-12 | 哈尔滨工业大学(深圳) | 一种基于单惯性传感器的轨迹还原方法 |
CN112212861B (zh) * | 2020-09-21 | 2022-05-06 | 哈尔滨工业大学(深圳) | 一种基于单惯性传感器的轨迹还原方法 |
CN112562316A (zh) * | 2020-11-04 | 2021-03-26 | 中山大学 | 一种基于acp理论的智能网联车平行驾驶控制方法 |
CN114523963A (zh) * | 2020-11-23 | 2022-05-24 | Aptiv技术有限公司 | 预测与宿主车辆的道路碰撞的系统和方法 |
CN114523963B (zh) * | 2020-11-23 | 2024-01-30 | Aptiv技术有限公司 | 预测与宿主车辆的道路碰撞的系统和方法 |
CN117058280A (zh) * | 2023-10-11 | 2023-11-14 | 成都古河云科技有限公司 | 一种三维交通车辆实时轨迹还原拟合方法 |
CN117058280B (zh) * | 2023-10-11 | 2023-12-19 | 成都古河云科技有限公司 | 一种三维交通车辆实时轨迹还原拟合方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2019157193A1 (en) | 2019-08-15 |
US20190250622A1 (en) | 2019-08-15 |
US11789449B2 (en) | 2023-10-17 |
DE112019000279T5 (de) | 2020-08-27 |
US20230418299A1 (en) | 2023-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11941819B2 (en) | Object detection using skewed polygons suitable for parking space detection | |
US20230418299A1 (en) | Controlling autonomous vehicles using safe arrival times | |
US11604967B2 (en) | Stereo depth estimation using deep neural networks | |
US11508049B2 (en) | Deep neural network processing for sensor blindness detection in autonomous machine applications | |
US11170299B2 (en) | Distance estimation to objects and free-space boundaries in autonomous machine applications | |
US11514293B2 (en) | Future object trajectory predictions for autonomous machine applications | |
CN113454636B (zh) | 自主机器应用中障碍物检测的距离 | |
CN110352153B (zh) | 自主车辆中用于障碍物躲避的安全程序分析 | |
EP3828592A1 (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 | |
US20240336285A1 (en) | Efficient safety aware path selection and planning for autonomous machine applications | |
US11592828B2 (en) | Using neural networks to perform fault detection in autonomous driving applications | |
EP3832341A1 (en) | Deep neural network for detecting obstacle instances using radar sensors in autonomous machine applications | |
CN112989914B (zh) | 具有自适应加权输入的注视确定机器学习系统 | |
CN114450724A (zh) | 用于自主机器应用的多活动者环境中的未来轨迹预测 | |
CN113950702A (zh) | 在视频分析应用中使用相关滤波器的多对象跟踪 | |
CN113767389A (zh) | 从用于自主机器应用的经变换的真实世界传感器数据模拟逼真的测试数据 | |
CN114270294A (zh) | 使用眩光作为输入的注视确定 | |
US20220135075A1 (en) | Safety decomposition architecture for autonomous machine applications | |
CN118823848A (zh) | 具有自适应加权输入的注视确定机器学习系统 | |
CN115218888A (zh) | 用于更新高清地图的系统和方法 | |
CN117581117A (zh) | 自主机器系统和应用中使用LiDAR数据的动态对象检测 | |
CN116106905A (zh) | 基于雷达的变道安全系统 | |
EP3850539B1 (en) | Deep neural network processing for sensor blindness detection in autonomous machine applications |
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 |