CN112650975A - 自动驾驶车辆的基于枚举的失败防止qp平滑器 - Google Patents
自动驾驶车辆的基于枚举的失败防止qp平滑器 Download PDFInfo
- Publication number
- CN112650975A CN112650975A CN202010151417.3A CN202010151417A CN112650975A CN 112650975 A CN112650975 A CN 112650975A CN 202010151417 A CN202010151417 A CN 202010151417A CN 112650975 A CN112650975 A CN 112650975A
- Authority
- CN
- China
- Prior art keywords
- line segment
- spline
- line
- quadratic programming
- smoothing algorithm
- 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.)
- Granted
Links
- 230000002265 prevention Effects 0.000 title description 16
- 238000009499 grossing Methods 0.000 claims abstract description 102
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 65
- 238000000034 method Methods 0.000 claims description 27
- 238000012545 processing Methods 0.000 claims description 20
- 230000015654 memory Effects 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 7
- 230000006870 function Effects 0.000 description 27
- 230000008447 perception Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 11
- 238000005457 optimization Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000009472 formulation Methods 0.000 description 8
- 239000000203 mixture Substances 0.000 description 8
- 230000001133 acceleration Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000002085 persistent effect Effects 0.000 description 6
- 230000033001 locomotion Effects 0.000 description 5
- 238000007405 data analysis Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009429 electrical wiring Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000000126 substance Substances 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/0221—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/17—Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
-
- 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
- B60W40/00—Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
- B60W40/02—Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to ambient conditions
- B60W40/06—Road conditions
-
- 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/0088—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0223—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving speed control of the vehicle
-
- G—PHYSICS
- 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
-
- 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
-
- 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/582—Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads of traffic signs
-
- 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
-
- 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/588—Recognition of the road, e.g. of lane markings; Recognition of the vehicle driving pattern in relation to the road
-
- 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
- B60W2552/00—Input parameters relating to infrastructure
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- Multimedia (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Aviation & Aerospace Engineering (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Business, Economics & Management (AREA)
- Transportation (AREA)
- Mechanical Engineering (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Game Theory and Decision Science (AREA)
- Medical Informatics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Traffic Control Systems (AREA)
Abstract
在一个实施方式中,***接收表示与自动驾驶车辆(ADV)相关的从第一位置到第二位置的路线的初始参考线,其中该初始参考线包括多个参考线段。***通过对线段应用二次规划(QP)样条平滑算法来平滑线段。***确定用于线段的QP样条平滑算法无法收敛。***调整(或枚举)线段的端点位置。***通过将QP样条平滑算法应用于调整后的(或枚举的)线段来平滑线段。***基于经平滑的线段生成平滑参考线,以用作控制ADV的路线的参考线。
Description
技术领域
本公开的实施方式总体上涉及操作自动驾驶车辆。更具体地,本公开的实施方式涉及自动驾驶车辆的基于枚举的失败防止二次规划(QP)平滑器。
背景技术
以自动驾驶模式运行(例如,无人驾驶)的车辆可以将乘员、尤其是驾驶员从一些驾驶相关的职责中解放出来。当以自动驾驶模式运行时,车辆可以使用车载传感器导航到各个位置,从而允许车辆在最少人机交互的情况下或在没有任何乘客的一些情况下行驶。运动规划和控制是自动驾驶中的关键操作。具体地,轨迹规划是自动驾驶***中的关键组成部分。常规的轨迹规划技术在很大程度上依赖于高质量的参考线,这些参考线是用于自动驾驶车辆的引导路径(例如,道路的中心线),以生成稳定的轨迹。
参考线可以从地图数据点生成,地图数据点通常是世界坐标中的二维(2D)点序列。从地图数据点直接生成的参考线是原始参考线,其可能缺少所需的平滑度,且因此可能会导致规划周期之间的不稳定且摆动的轨迹。因此,通常需要使用各种平滑技术对原始参考线进行平滑处理,以获得更好的驾驶体验。
发明内容
根据本申请的一个方面,提供了一种用于操作自动驾驶车辆的计算机实施的方法。该方法可包括:接收表示与自动驾驶车辆相关的从第一位置到第二位置的路线的初始参考线,其中,初始参考线包括多个线段;通过对所述线段应用二次规划样条平滑算法来平滑所述线段;响应于确定用于所述线段的二次规划样条平滑算法未能收敛,调整线段的端点的位置;通过对调整后的线段应用二次规划样条平滑算法来平滑所述线段;以及基于经平滑的线段生成平滑参考线,以用作控制自动驾驶车辆的路线的参考线。
根据本申请的另一方面,提供了一种存储有用于操作自动驾驶车辆的指令的非暂时性机器可读介质,所述指令可在由处理器执行时使所述处理器执行操作。所述操作可包括:接收表示与自动驾驶车辆相关的从第一位置到第二位置的路线的初始参考线,其中,初始参考线包括多个线段;通过对所述线段应用二次规划样条平滑算法来平滑所述线段;响应于确定用于所述线段的二次规划样条平滑算法未能收敛,调整线段的端点的位置;通过对调整后的线段应用二次规划样条平滑算法来平滑所述线段;以及基于经平滑的线段生成平滑参考线,以用作控制自动驾驶车辆的所述路线的参考线。
根据本申请的又一方面,提供了一种数据处理***。该数据处理***包括处理器和存储器,存储器联接到处理器以存储指令,所述指令在由处理器执行时使处理器执行操作。所述操作可包括:接收表示与自动驾驶车辆相关的从第一位置到第二位置的路线的初始参考线,其中,初始参考线包括多个线段;通过对所述线段应用二次规划样条平滑算法来平滑所述线段;响应于确定用于所述线段的二次规划样条平滑算法未能收敛,调整线段的端点的位置;通过对调整后的线段应用二次规划样条平滑算法来平滑所述线段;以及基于经平滑的线段生成平滑参考线,以用作控制自动驾驶车辆的路线的参考线。
附图说明
本公开的实施方式在附图的各图中以举例而非限制的方式示出,附图中的相同的附图标记指代相似的元件。
图1是示出根据一个实施方式的网络化***的框图。
图2是示出根据一个实施方式的自动驾驶车辆的示例的框图。
图3A至图3B是示出根据一个实施方式的与自动驾驶车辆一起使用的感知与规划***的示例的框图。
图4示出了根据一个实施方式的示例性平滑模块。
图5示出了根据一个实施方式的待平滑的示例性参考线。
图6至图7示出了根据一个实施方式的基于枚举的失败防止QP样条平滑器的示例性使用。
图8是示出根据一个实施方式的用于平滑参考线的过程的示例的流程图。
具体实施方式
将参考以下所讨论的细节来描述本公开的各种实施方式和方面,并且附图将示出各种实施方式。以下描述和附图是对本公开的说明,并且不应被解释为限制本公开。描述了许多特定细节以提供对本公开各种实施方式的全面理解。然而,在某些情况下,并未描述众所周知的或常规的细节以提供对本公开的实施方式的简洁讨论。
本说明书中对“一个实施方式”或“实施方式”的提及意味着结合该实施方式所描述的特定特征、结构或特性可以包括在本公开的至少一个实施方式中。短语“在一个实施方式中”在本说明书中各个地方的出现不必全部指相同的实施方式。
可以使用各种参考线平滑技术来平滑原始参考线,以使驾驶更舒适。例如,可以使用QP样条平滑算法(例如,平滑器)来平滑参考线。但是,通常不知道为什么QP在平滑算法无法生成解时无法收敛。在这种情况下,基于枚举的失败防止QP样条平滑器可以枚举并迭代执行QP样条平滑器,其改变(或枚举)用于QP样条平滑器的一个或多个输入变量,直到收敛或直到满足某些预定标准以防止(或最小化)收敛失败。
在第一方面,本公开提供一种用于操作自动驾驶车辆(ADV)的计算机实施的方法。根据一个实施方式,***接收表示与自动驾驶车辆(ADV)相关的从第一位置到第二位置的路线的初始参考线,其中该初始参考线包括多个参考线段。***通过对线段应用二次规划(QP)样条平滑算法来平滑线段。***确定用于线段的QP样条平滑算法无法收敛。***调整(或枚举)线段的端点位置。***通过将QP样条平滑算法应用于调整后的(或枚举的)线段来平滑线段。***基于平滑线段生成平滑参考线,以用作控制ADV的路线的参考线。
图1是示出根据本公开的一个实施方式的自动驾驶车辆网络配置的框图。参考图1,网络配置100包括可以通过网络102通信地联接到一个或多个服务器103至104的自动驾驶车辆101。尽管示出一个自动驾驶车辆,但多个自动驾驶车辆可以通过网络102联接到彼此和/或联接到服务器103至104。网络102可以是任何类型的网络,例如,有线或无线的局域网(LAN)、诸如互联网的广域网(WAN)、蜂窝网络、卫星网络或其组合。服务器103至104可以是任何类型的服务器或服务器群集,诸如,网络或云服务器、应用服务器、后端服务器或其组合。服务器103至104可以是数据分析服务器、内容服务器、交通信息服务器、地图和兴趣点(MPOI)服务器或者位置服务器等。
自动驾驶车辆是指可以被配置成处于自动驾驶模式下的车辆,在所述自动驾驶模式下车辆在极少或没有来自驾驶员的输入的情况下导航通过环境。这种自动驾驶车辆可以包括传感器***,所述传感器***具有被配置成检测与车辆运行环境有关的信息的一个或多个传感器。所述车辆和其相关联的控制器使用所检测的信息来导航通过所述环境。自动驾驶车辆101可以在手动模式下、在全自动驾驶模式下或者在部分自动驾驶模式下运行。
在一个实施方式中,自动驾驶车辆101包括,但不限于,感知与规划***110、车辆控制***111、无线通信***112、用户接口***113和传感器***115。自动驾驶车辆101还可以包括普通车辆中包括的某些常用部件,诸如:发动机、车轮、方向盘、变速器等,所述部件可以由车辆控制***111和/或感知与规划***110使用多种通信信号和/或命令进行控制,该多种通信信号和/或命令例如,加速信号或命令、减速信号或命令、转向信号或命令、制动信号或命令等。
部件110至115可以经由互连件、总线、网络或其组合通信地联接到彼此。例如,部件110至115可以经由控制器局域网(CAN)总线通信地联接到彼此。CAN总线是被设计成允许微控制器和装置在没有主机的应用中与彼此通信的车辆总线标准。它是最初是为汽车内的复用电气布线设计的基于消息的协议,但也用于许多其它环境。
现在参考图2,在一个实施方式中,传感器***115包括但不限于一个或多个摄像机211、全球定位***(GPS)单元212、惯性测量单元(IMU)213、雷达单元214以及光探测和测距(LIDAR)单元215。GPS***212可以包括收发器,所述收发器可操作以提供关于自动驾驶车辆的位置的信息。IMU单元213可以基于惯性加速度来感测自动驾驶车辆的位置和定向变化。雷达单元214可以表示利用无线电信号来感测自动驾驶车辆的本地环境内的对象的***。在一些实施方式中,除感测对象之外,雷达单元214可以另外感测对象的速度和/或前进方向。LIDAR单元215可以使用激光来感测自动驾驶车辆所处环境中的对象。除其它***部件之外,LIDAR单元215还可以包括一个或多个激光源、激光扫描器以及一个或多个检测器。摄像机211可以包括用来采集自动驾驶车辆周围环境的图像的一个或多个装置。摄像机211可以是静物摄像机和/或视频摄像机。摄像机可以是可机械地移动的,例如,通过将摄像机安装在旋转和/或倾斜平台上。
传感器***115还可以包括其它传感器,诸如:声纳传感器、红外传感器、转向传感器、油门传感器、制动传感器以及音频传感器(例如,麦克风)。音频传感器可以被配置成从自动驾驶车辆周围的环境中采集声音。转向传感器可以被配置成感测方向盘、车辆的车轮或其组合的转向角度。油门传感器和制动传感器分别感测车辆的油门位置和制动位置。在一些情形下,油门传感器和制动传感器可以集成为集成式油门/制动传感器。
在一个实施方式中,车辆控制***111包括但不限于转向单元201、油门单元202(也被称为加速单元)和制动单元203。转向单元201用来调整车辆的方向或前进方向。油门单元202用来控制电动机或发动机的速度,电动机或发动机的速度进而控制车辆的速度和加速度。制动单元203通过提供摩擦使车辆的车轮或轮胎减速而使车辆减速。应注意,如图2所示的部件可以以硬件、软件或其组合实施。
回到图1,无线通信***112允许自动驾驶车辆101与诸如装置、传感器、其它车辆等外部***之间的通信。例如,无线通信***112可以与一个或多个装置直接无线通信,或者经由通信网络进行无线通信,诸如,通过网络102与服务器103至104通信。无线通信***112可以使用任何蜂窝通信网络或无线局域网(WLAN),例如,使用WiFi,以与另一部件或***通信。无线通信***112可以例如使用红外链路、蓝牙等与装置(例如,乘客的移动装置、显示装置、车辆101内的扬声器)直接通信。用户接口***113可以是在车辆101内实施的***装置的部分,包括例如键盘、触摸屏显示装置、麦克风和扬声器等。
自动驾驶车辆101的功能中的一些或全部可以由感知与规划***110控制或管理,尤其当在自动驾驶模式下操作时。感知与规划***110包括必要的硬件(例如,处理器、存储器、存储设备)和软件(例如,操作***、规划和路线安排程序),以从传感器***115、控制***111、无线通信***112和/或用户接口***113接收信息,处理所接收的信息,规划从起始点到目的地点的路线或路径,随后基于规划和控制信息来驾驶车辆101。替代地,感知与规划***110可以与车辆控制***111集成在一起。
例如,作为乘客的用户可以例如经由用户接口来指定行程的起始位置和目的地。感知与规划***110获得行程相关数据。例如,感知与规划***110可以从MPOI服务器中获得位置和路线信息,所述MPOI服务器可以是服务器103至104的一部分。位置服务器提供位置服务,并且MPOI服务器提供地图服务和某些位置的POI。替代地,此类位置和MPOI信息可以本地高速缓存在感知与规划***110的永久性存储装置中。
当自动驾驶车辆101沿着路线移动时,感知与规划***110也可以从交通信息***或服务器(TIS)获得实时交通信息。应注意,服务器103至104可以由第三方实体进行操作。替代地,服务器103至104的功能可以与感知与规划***110集成在一起。基于实时交通信息、MPOI信息和位置信息以及由传感器***115检测或感测的实时本地环境数据(例如,障碍物、对象、附近车辆),感知与规划***110可以规划最佳路线并且根据所规划的路线例如经由控制***111来驾驶车辆101,以安全且高效到达指定目的地。
服务器103可为用于为各种客户端执行数据分析服务的数据分析***。在一个实施方式中,数据分析***103包括数据收集器121和机器学习引擎122。数据收集器121从多种车辆(自动驾驶车辆或由人类驾驶员驾驶的常规车辆)收集驾驶统计数据123。驾驶统计数据123包括表示在不同的时间点处由车辆的传感器捕获的所发出的驾驶命令(例如,油门命令、制动命令和转向命令)以及车辆的响应(例如,速度、加速度、减速度、方向)的信息。驾驶统计数据123还可包括描述不同的时间点处的驾驶环境的信息,诸如,例如,路线(包括起点位置和目的地位置)、MPOI、道路状况、天气状况等。
基于驾驶统计123,机器学***滑的算法。这些功能可以被上传到自动驾驶车辆上以用于实时地生成平滑路径。
在一个实施方式中,算法124可以包括QP样条平滑算法(例如,QP样条平滑器)以执行用于路径和速度规划的参考线的平滑。QP样条平滑器可以是基于枚举的QP样条平滑器,当QP样条平滑算法无法收敛时,其可以利用变化的输入参数迭代地重试QP样条平滑。以这种方式,降低了QP样条平滑算法的收敛失败(例如,不收敛)率,使得QP样条平滑算法利用特定的输入参数集而具有高收敛机会。变化的输入参数中的一些包括用于QP样条平滑算法的枚举段长度、样条的数量以及样条的阶数。
图3A和图3B是示出根据一个实施方式的与自动驾驶车辆一起使用的感知与规划***的示例的框图。***300可实施为图1的自动驾驶车辆101的一部分,包括但不限于感知与规划***110、控制***111和传感器***115。参考图3A至图3B,感知与规划***110包括但不限于定位模块301、感知模块302、预测模块303、决策模块304、规划模块305、控制模块306、路线制定模块307和平滑模块308。
模块301至308中的一些或全部可以以软件、硬件或其组合实施。例如,这些模块可安装在永久性存储装置352中、加载到存储器351中,并且由一个或多个处理器(未示出)执行。应注意,这些模块中的一些或全部可通信地联接到图2的车辆控制***111的一些或全部模块或者与它们集成在一起。模块301至308中的一些可一起集成为集成模块。例如,决策模块304和规划模块305可以集成为单个模块;并且路线制定模块307和平滑模块308可以集成为单个模块。
定位模块301确定自动驾驶车辆300的当前位置(例如,利用GPS单元212)并管理与用户的行程或路线相关的任何数据。定位模块301(也被称为地图与路线模块)管理与用户的行程或路线相关的任何数据。用户可以例如经由用户接口登录并且指定行程的开始位置和目的地。定位模块301与自动驾驶车辆300的诸如地图和路线信息311的其它组件通信,以获得行程相关数据。例如,定位模块301可从位置服务器和地图与POI(MPOI)服务器获得位置和路线信息。位置服务器提供位置服务,以及MPOI服务器提供地图服务和某些位置的POI,这些可作为地图和路线信息311的一部分高速缓存。当自动驾驶车辆300沿着路线移动时,定位模块301也可从交通信息***或服务器获得实时交通信息。
基于由传感器***115提供的传感器数据和由定位模块301获得的定位信息,感知模块302确定对周围环境的感知。感知信息可以表示普通驾驶员在驾驶员正驾驶的车辆周围将感知到的东西。感知可以包括例如采用对象形式的车道配置(例如,直车道或弯曲车道)、交通灯信号、另一车辆的相对位置、行人、建筑物、人行横道或其它交通相关标志(例如,停止标志、让行标志)等。
感知模块302可以包括计算机视觉***或计算机视觉***的功能,以处理并分析由一个或多个摄像机采集的图像,从而识别自动驾驶车辆环境中的对象和/或特征。所述对象可以包括交通信号、道路边界、其它车辆、行人和/或障碍物等。计算机视觉***可以使用对象识别算法、视频跟踪以及其它计算机视觉技术。在一些实施方式中,计算机视觉***可以绘制环境地图,跟踪对象,以及估算对象的速度等。感知模块302也可以基于由诸如雷达和/或LIDAR的其它传感器提供的其它传感器数据来检测对象。
针对每个对象,预测模块303预测该对象在此情形下将表现什么。根据一组地图/路线信息311和交通规则312,基于该时间点的感知驾驶环境的感知数据来执行预测。例如,如果对象是处于相反方向的车辆并且当前驾驶环境包括十字路口,则预测模块303将预测车辆是将可能直线向前移动还是进行转弯。如果感知数据表明十字路口没有交通灯,则预测模块303可预测车辆在进入十字路口之前可能需要完全停止。如果感知数据表明车辆当前处于仅左转弯车道或仅右转弯车道,则预测模块303可分别预测车辆将更可能向左转弯或向右转弯。
针对每个对象,决策模块304作出关于如何处置对象的决定。例如,针对特定对象(例如,交叉路线中的另一车辆)以及描述对象的元数据(例如,速度、方向、转弯角度),决策模块304决定如何与所述对象相遇(例如,超车、让行、停止、超过)。决策模块304可根据诸如交通规则或驾驶规则312的规则集来作出此类决定,所述规则集可存储在永久性存储装置352中。
基于针对所感知到的对象中的每个的决定,规划模块305为自动驾驶车辆规划路径或路线以及驾驶参数(例如,距离、速度和/或转弯角度)。即,针对给定的对象,决策模块304决定对该对象做什么,而规划模块305确定如何去做。例如,针对给定的对象,决策模块304可以决定超过所述对象,而规划模块305可以确定在所述对象的左侧还是右侧超过。规划和控制数据由规划模块305生成,包括描述车辆300在下一移动循环(例如,下一路线/路径段)中将如何移动的信息。例如,规划和控制数据可以指示车辆300以30英里每小时(mph)的速度移动10米,随后以25mph的速度变到右侧车道。
基于规划和控制数据,控制模块306根据由规划和控制数据限定的路线或路径通过将适当的命令或信号发送到车辆控制***111来控制并驾驶自动驾驶车辆。所述规划和控制数据包括足够的信息,以沿着路径或路线在不同的时间点使用适当的车辆设置或驾驶参数(例如,油门、制动和转弯命令)将车辆从路线或路径的第一点驾驶到第二点。
在一个实施方式中,在多个规划周期(也被称为命令周期)(诸如,例如,在每100毫秒(ms)的时间间隔中)中执行规划阶段。针对规划周期或命令周期中的每一个,将基于规划数据和控制数据发出一个或多个控制命令。即,对于每个100ms,规划模块305规划下一路线段或路径段,例如,包括目标位置和ADV到达目标位置所需的时间。替代地,规划模块305还可指定具体速度、方向和/或转向角等。在一个实施方式中,规划模块305为下一预定时间段(诸如5秒)规划路线段或路径段。对于每个规划周期,规划模块305基于先前周期中规划的目标位置来规划当前周期(例如,接下来的5秒)的目标位置。然后,控制模块306基于当前周期的规划数据和控制数据生成一个或多个控制命令(例如,油门命令、制动命令、转向控制命令)。
应注意,决策模块304和规划模块305可以集成为集成模块。决策模块304/规划模块305可以包括导航***或导航***的功能,以确定自动驾驶车辆的驾驶路径。例如,导航***可以确定用于影响自动驾驶车辆沿着以下路径移动的一系列速度和前进方向:所述路径在使自动驾驶车辆沿着通往最终目的地的基于车行道的路径前进的同时,基本上避免感知到的障碍物。目的地可以根据经由用户接口***113进行的用户输入来设定。导航***可以在自动驾驶车辆正在运行的同时动态地更新驾驶路径。导航***可以将来自GPS***和一个或多个地图的数据合并,以确定用于自动驾驶车辆的驾驶路径。
决策模块304/规划模块305还可包括防撞***或防撞***的功能,以识别、评估和避免或以其他方式避过自动驾驶车辆的环境中的潜在障碍物。例如,防撞***可以通过操作控制***111中的一个或多个子***来进行转向操纵、转弯操纵、制动操纵等来实现自动驾驶车辆的导航改变。防撞***可以基于周围的交通模式、道路状况等自动确定可行的避障操纵控制。防撞***可以配置为使得当其他传感器***在与将要转向的自动驾驶车辆相邻的区域中检测到车辆、建筑障碍物等时,不进行将转向操纵。防撞***可以自动选择既可用又使自动驾驶车辆的乘员的安全最大化的操纵控制。防撞***可以选择预测为在自动驾驶车辆的乘客舱中引起最小的加速度的避让操纵控制。
路线制定模块307可以例如根据地图信息来生成参考路线,该地图信息诸如为道路段的信息、道路段的车辆车道以及从车道到路缘的距离。例如,可以将道路划分为区段或段{A、B和C},以表示三个道路段。道路段A的三个车道可以枚举为{A1、A2和A3}。通过沿参考路径生成参考点来生成参考路径。例如,对于车辆车道,路线制定模块307可以连接由地图数据提供的车辆车道的两个相对的路缘或末端的中点。基于中点和表示先前在不同时间点处在车辆车道上行驶的车辆的所收集的数据点的机器学***滑函数来计算参考点。
基于参考点或车道参考点,路线制定模块307可以通过对参考点进行插值来生成参考线,使得所生成的参考线被用作用于控制车辆车道上的ADV的参考线。在一些实施方式中,将表示参考线的参考点表和道路段表实时下载到ADV,使得ADV可以基于ADV的地理位置和行驶方向生成参考线。例如,在一个实施方式中,ADV可以通过用代表前方即将到来的道路段的路径段标识符请求路径段的路线服务和/或基于ADV的GPS位置来生成参考线。基于路径段标识符,路线服务可以返回到ADV参考点表,该ADV参考点表包含感兴趣的道路段的所有车道的参考点。ADV可以查找路径段的车道的参考点,以生成用于控制车辆车道上的ADV的参考线。
平滑模块308可以基于由路线制定模块307提供的参考线来生成平滑道路参考线。例如,平滑模块308沿参考线选择多个控制点。在一个实施方式中,控制点可以是由路线制定模块307提供的参考线的参考点,或者是沿着参考线的一些内插点,该内插点与它们的相邻点的距离近似相等。平滑模块308可以使用二次规划样条平滑器来生成平滑道路参考线。
如上所述,路线或路线制定模块307管理与用户的行程或路线有关的任何数据。ADV的用户指定起始位置和目的地位置以获得行程相关数据。行程相关数据包括路线段和路线段的参考线或参考点。例如,基于地图和路线信息311,路线制定模块307生成路线或道路段表和参考点表。参考点与道路段表中的道路段和/或车道有关。可以对参考点进行插值以形成用于控制ADV的一条或多条参考线。参考点可以特定于道路段和/或道路段的特定车道。
例如,道路段表可以是名称-值对,以包括道路段A至D的前一道路车道和下一道路车道。例如,道路段表可以是:针对道路段A至D的车道1的{(A1,B1)、(B1,C1)、(C1,D1)}。参考点表可以包括道路段车道的x-y坐标中的参考点,例如{(A1,(x1,y1))、(B1,(x2,y2))、(C1,(x3,y3))、(D1,(x4,y4))},其中A1…D1指的是道路段A至D的车道1,并且(x1,y1)…(x4,y4)是对应的真实世界坐标。在一个实施方式中,道路段和/或车道被划分为预定长度,例如大约200米的段/车道。在另一实施方式中,道路段和/或车道根据道路状况(例如,道路曲率)而被分成可变长度的段/车道。在一些实施方式中,每个道路段和/或车道可包括多个参考点。在一些实施方式中,参考点可以被转换成其他坐标系,例如,纬度-经度坐标系。
在一些实施方式中,参考点可以被转换成相对坐标系,例如站点-横向(SL)坐标。站点-横向坐标系是参考固定参考点来跟随参考线的坐标系。例如,(S,L)=(1,0)坐标可以表示参考线上的静止点(即,参考点)前的一米,其具有零米的横向偏移。(S,L)=(2,1)参考点可以表示沿着参考线在固定参考点之前两米,并且相对于参考线有一米的横向偏移,例如,向左偏移一米。
在一个实施方式中,平滑模块308基于表示由路线制定模块307提供的参考线的参考点来生成平滑参考线。在决策模块和/或规划模块(例如,决策模块304和/或规划模块305)将平滑参考线与感知到的障碍物和/或交通信息合并在一起之前,可以将平滑参考线转换成相对坐标系,例如SL坐标系。
在一个实施方式中,决策模块304基于由路线制定模块307提供的参考线(如上所述,参考线已经由平滑模块308平滑过)并且基于由ADV感知到的围绕ADV的障碍物和/或交通信息来生成粗略路径简况。粗略路径简况可以是路径/速度简况313的一部分,其可以被存储在永久性存储装置352中。粗略路径简况是通过沿着参考线选择点而生成的。对于每个点,决策模块304基于关于如何遇到对象的一个或多个障碍物决策将点移动到参考线的左侧或右侧(例如,候选运动),而其余点保持稳定。可以使用对路径候选的动态规划来迭代地执行候选移动,以使用成本函数(作为图3A的成本函数315的一部分)来搜索具有最低路径成本的路径候选,从而生成粗略的路径简况。成本函数的示例包括基于以下因素的成本:路线路径的曲率、从ADV到所感知的障碍物的距离以及ADV到参考线的距离。在一个实施方式中,所生成的粗略路径简况包括可以存储在永久性存储装置352中的作为SL地图/ST图314的一部分的站点-横向地图。
在一个实施方式中,决策模块304基于所生成的粗略路径简况来生成粗略速度简况(作为路径/速度简况313的一部分)。粗略速度简况表示在特定时间点控制ADV的最佳速度。与粗略路径简况相似,可以使用动态规划来迭代不同时间点的候选速度,以根据由ADV感知到的障碍物、基于成本函数(作为图3A的成本函数315的一部分)找到具有最低速度成本的速度候选(例如,加速或减速)。粗略速度曲线可用于决策ADV是应超越障碍物还是应避开障碍物,并且应位于障碍物的左侧还是位于障碍物的右侧。在一个实施方式中,粗略速度简况包括站点-时间(ST)图(作为SL地图/ST图314的一部分)。站点-时间图表示相对于时间所行驶的距离。
在一个实施方式中,规划模块305根据障碍物决策和/或人为障碍重新计算粗略路径简况,以禁止规划模块305搜索障碍物的几何空间。例如,如果确定为从左侧轻推(nudge)障碍物的粗略速度曲线,则规划模块305可以在障碍物的右侧设置障碍(以障碍物的形式),以防止用于ADV从右侧轻推(nudge)障碍物的计算。在一个实施方式中,通过使用二次规划(QP)和/或其他平滑算法优化路径成本函数(作为成本函数315的一部分)来重新计算粗略路径简况。在一个实施方式中,重新计算的粗略路径简况包括站点-横向地图(作为SL地图/ST图314的一部分)。
图4示出了根据实施方式的示例性平滑模块。如图4所示,平滑模块308可以包括失败防止QP样条平滑器401。平滑模块308可以通过使用QP样条平滑器401基于由路线制定模块307提供的参考线来生成平滑参考线。通过将QP平滑器应用于原始参考线,ADV可以生成具有所需连续性和曲率平滑度的平滑参考线。
根据一个实施方式,失败防止QP样条平滑器401包括参考线接收器402、参考线分割器403、QP求解器404、QP收敛确定器405、段调整器406和平滑参考线生成器407。参考线接收器402可以从地图和路线信息接收针对ADV的原始参考线(例如,原始参考线点)。参考线分割器403可以将参考线(例如,原始参考线点或内插点)分割成参考线段。QP求解器404可以将QP平滑算法应用于参考线段。QP收敛确定器405可以确定QP平滑算法是否收敛(例如,提供解)。段调整器406可以调整段的参数(例如,长度、样条数量、样条阶数等)。平滑参考线生成器407可以生成平滑参考线。
作为说明性示例,给定待平滑的原始参考线,平滑模块308可以沿着参考线选择多个控制点。控制点可以是路线制定模块307提供的参考线的参考点,或者可以是沿参考线的一些内插点,所述内插点与它们的相邻点的距离近似相等。
参考点可以将参考线划分为多个参考线段。例如,参考线段可以按顺序包括第一参考线段、第二参考线段和第三参考线线段。平滑模块308可以将失败防止QP样条平滑器401应用于参考线段中的每个。随后可以根据约束集来优化经平滑的参考线段,使得在满足该约束集的情况下目标函数的输出达到最小值。可以重复执行上述操作,直到每个参考线段平滑地连接。经平滑的参考线段可以被连接以生成平滑的参考线,该平滑的参考线可以用作用于控制ADV的路线的参考线。
图5示出了根据一个实施方式的待平滑的示例性参考线。参照图5,线段A至F可以是从路线制定模块307接收的原始参考线。原始参考线可以是从高清晰度地图获得的道路段的车道的中心线,并且可以包括多个参考点,多个参考点将该原始参考线划分为多个参考线段。参考线段A、B、C、D、E和F的参考点可以分别是(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)、(x5,y5)、(x6,y6)和(xn,yn)。
图6至图7示出了根据一个实施方式的基于枚举的失败防止QP样条平滑器的示例性使用。如图6所示,车道(例如,车道1)的道路段(即,图5中所示的第一参考线段A)可以包括多个控制点,例如控制点601。控制点可以大约相等地间隔开,例如间隔开大约五至十米。
基于控制点601,失败防止QP样条平滑器401可以应用2D样条优化以生成平滑参考线,例如样条605。样条是由一个或多个(例如,分段的)多项式表示的曲线(例如,A1a、A1b、A1c等),车道的由一个或多个(例如,分段的)多项式表示的曲线连接在一起以形成曲线。例如,多项式或多项式函数可以表示相邻控制点之间的段。在一个实施方式中,样条内的每个多项式函数可以是二维多项式,例如,
x(t)=p0+p1t+p2t2++pntn,以及
y(t)=q0+q1t+q2t2+…+qntn
其中x、y表示n阶多项式的二维(x,y)几何坐标,以及p0..n和q0..n是待求解的二维多项式的系数。
在另一实施方式中,多项式函数可以是一维的。例如,
l(s)=p0+p1s+p2s2+…+pnsn,
其中s、l表示n阶多项式的站点-横向一维(s,l)几何坐标,以及p0..n是待求解的一维多项式的系数。
在一个实施方式中,失败防止QP样条平滑器401可以为样条或分段多项式配置多项式阶数,以确保所需的样条平滑度阈值。在一个实施方式中,分段多项式可以被预先配置为五阶多项式。基于控制点601,失败防止QP样条平滑器401可以限定边界区域,例如具有预定尺寸(例如,大约0.2米乘0.2米)的边界框603,以围绕每个控制点601。边界区域可以表示光滑参考线(例如,样条或分段多项式)605必须接触或通过的不等式约束。
在一个实施方式中,失败防止QP样条平滑器401可以将初始约束集添加到分段多项式。初始约束集可以与ADV的当前地理位置和/或当前方向对应,例如,
x(0)=x0且y(0)=y0,
x′(0)=dx0且y′(0)=dy0,
其中(x0,y0)是ADV地理位置的当前x-y坐标,(dx0,dy0)是ADV的当前方向,以及x(0)、y(0)与第一x-y多项式的初始值对应。在一些实施方式中,平滑器401可以在ADV到达目的地点时添加与ADV的位置和方向对应的结束约束集。
在一些实施方式中,失败防止QP样条平滑器401可以选择具有样条将针对的各种内核或成本函数的目标函数。示例性目标函数可以包括平滑内核和/或指导内核,例如:
w1∫(x′)2(t)dt+w2∫(y′)2(t)dt+w3∫(x″)2(t)dt+w4∫(y″)2(t)dt+w5∫(x″′)2(t)dt+w6∫(y″′)2(t)dt+w7∫[x(t)-xref(t)]2dt+w8∫[y(t)-yref(t)]2dt
其中x(t)、y(t)是x-y二维分段多项式,w1、…、w8是权重因子,(x′)2(t)、(y′)2(t)是分段多项式的一阶导数平方,(x″)2(t)、(y″)2(t)是分段多项式的二阶导数平方,(x″′)2(t)、(y″′)2(t)是分段多项式的三阶导数平方,且xref(t)、yref(t)是根据先前收集的数据得出的平均人类驾驶路线的x-y参考路线值。
在一个实施方式中,失败防止QP样条平滑器401可以求解目标函数以生成平滑参考线。在一个实施方式中,可以在满足约束集的同时对目标函数执行QP优化,使得目标函数达到预定阈值(例如,最小值)。一旦根据约束优化了目标函数,就可以确定多项式函数的系数。然后,可以使用具有优化系数的多项式函数来确定沿路径的路径点(例如,控制点)的位置,该多项式函数表示平滑的参考线。如上所述,将平滑函数合并到待求解的目标函数中,即,该平滑不是确保在应用平滑函数之后优化的参考线仍将受到限定的约束集约束的后处理步骤。
在一个实施方式中,可以根据一个或多个约束(例如道路边界约束、感知到的障碍物以及ADV的诸如转弯半径的一些约束)来优化每个经平滑的参考线段。一旦所有参考线段被平滑和/或优化,平滑模块308就可以将经平滑的参考线段连接在一起以创建平滑的参考线。
在一个实施方式中,如果确定QP优化未能提供解,例如,在给定的约束集的情况下,QP优化未达到预定阈值(例如,最小值),则可以改变样条段的不同参数,并且可以重新执行QP优化。
参照图7,在一个实施方式中,样条段的待改变(枚举)的一个参数是一个或多个样条段的端点、道路段/线段的端点和/或原始参考线的端点。例如,参考图7,在一个实施方式中,样条段A1a最初可以从点(x1,y1)延伸到端点(控制点601),并且该端点可以是通过预定数量的点(在这种情况下,四个端点702至705)枚举的。然后可以对每个枚举执行QP优化,或者直到QP优化达到收敛为止。
在另一实施方式中,可以枚举原始参考线的端点(例如,(xn,yn))。然后可以将原始参考线分割成预定数量的道路段。在另一实施方式中,可以枚举各个道路段的端点(例如,A至F的端点)。对于每个枚举,可以将道路段分割成预定数量的样条段(例如,控制点之间的段),并且可以将QP优化应用于样条段,直到QP优化达到收敛。
在一个实施方式中,道路段的样条段的数量可以在预定范围内变化(例如,枚举)。例如,如果将道路段分为10个样条段,则可以枚举的样条段的数量介于8至12之间。在一个实施方式中,可以在预定范围内改变样条段的子集或全部的样条阶数。例如,如果样条的默认阶数为5,则可以在3至7之间枚举样条的阶数。对于每个枚举,可以将QP平滑算法应用于样条段,直到收敛为止。
这里,改变样条段参数允许QP优化通过每个规划周期的多次迭代(收敛的机会)达到收敛,并且枚举不会改变平滑的解。在一个实施方式中,对于端点枚举,在道路段/线段的总长度(例如100米)的一小部分(例如50厘米)上枚举端点。枚举中的小偏差在规划中并不重要,这是因为在枚举的101、100.5、99.5或99米的情况下,不会对平滑100米产生影响,因为ADV会在下一规划周期(每个规划周期100毫秒)中重新计算后续路线。应注意,枚举样条的阶数和样条段的数量可能会更改平滑参考线的平滑度,但是用于枚举的其他参数可能会增加收敛的可能性。
图8是示出根据一个实施方式的用于参考线的故障防止平滑的过程的示例的流程图。可以通过处理逻辑来执行过程800,该处理逻辑可以包括软件、硬件或其组合。例如,过程800可以由图4的失败防止QP样条平滑器401执行。参照图8,在操作801中,处理逻辑接收表示与自动驾驶车辆(ADV)有关的从第一位置到第二位置的路线的初始参考线,其中初始参考线包括多个线段。在操作802中,处理逻辑通过将二次规划(QP)样条平滑算法应用于线段来对线段进行平滑。在操作803中,处理逻辑确定用于线段的QP样条平滑算法未能收敛。在操作804中,处理逻辑调整(或枚举)线段的端点的位置。在操作805中,处理逻辑通过将QP样条平滑算法应用于经调整的(或枚举的)线段来对线段进行平滑。在操作806中,处理逻辑基于平滑的线段生成平滑的参考线,该平滑的参考线用作控制ADV的路线的参考线。
在一个实施方式中,处理逻辑进一步调整用于QP样条平滑算法的样条数量,并通过将调整后的QP样条平滑算法应用于线段来对线段进行平滑。在一个实施方式中,处理逻辑进一步调整用于QP样条平滑算法的样条阶数,并通过将调整后的QP样条平滑算法应用于线段来对线段进行平滑。
在一个实施方式中,调整端点的位置,以使线段的长度延长或缩短预定长度。在一个实施方式中,基于路线的道路状况和ADV的速度来动态地确定多个线段中的每一个的长度。
在一个实施方式中,至少一个线段的长度与至少一个其他线段的长度不同。在一个实施方式中,在调整QP样条平滑算法的样条数量之前,将端点调整预定的迭代次数。
应注意,如上文示出和描述的部件中的一些或全部可以在软件、硬件或其组合中实施。例如,此类部件可以实施为安装并存储在永久性存储装置中的软件,所述软件可以通过处理器(未示出)加载在存储器中并在存储器中执行以实施贯穿本申请所述的过程或操作。替代地,此类部件可以实施为编程或嵌入到专用硬件(诸如,集成电路(例如,专用集成电路或ASIC)、数字信号处理器(DSP)或现场可编程门阵列(FPGA))中的可执行代码,所述可执行代码可以经由来自应用的相应驱动程序和/或操作***来访问。此外,此类部件可以实施为处理器或处理器内核中的特定硬件逻辑,作为可由软件部件通过一个或多个特定指令访问的指令集的一部分。
前述详细描述中的一些部分已经根据在计算机存储器内对数据位的运算的算法和符号表示而呈现。这些算法描述和表示是数据处理领域中的技术人员所使用的方式,以将他们的工作实质最有效地传达给本领域中的其他技术人员。本文中,算法通常被认为是导致所期望结果的自洽操作序列。这些操作是指需要对物理量进行物理操控的操作。
然而,应当牢记,所有这些和类似的术语均旨在与适当的物理量关联,并且仅仅是应用于这些量的方便标记。除非在以上讨论中以其它方式明确地指出,否则应当了解,在整个说明书中,利用术语(诸如所附权利要求书中所阐述的术语)进行的讨论是指计算机***或类似电子计算装置的动作和处理,所述计算机***或电子计算装置操控计算机***的寄存器和存储器内的表示为物理(电子)量的数据,并将所述数据变换成计算机***存储器或寄存器或者其它此类信息存储设备、传输或显示装置内类似地表示为物理量的其它数据。
本公开的实施方式还涉及用于执行本文中的操作的设备。这种计算机程序被存储在非暂时性计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机构。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存存储器装置)。
前述附图中所描绘的过程或方法可以由处理逻辑来执行,所述处理逻辑包括硬件(例如,电路、专用逻辑等)、软件(例如,体现在非暂时性计算机可读介质上)或两者的组合。尽管所述过程或方法在上文是依据一些顺序操作来描述的,但是应当了解,所述操作中的一些可以按不同的顺序执行。此外,一些操作可以并行地执行而不是顺序地执行。
本公开的实施方式并未参考任何特定的编程语言进行描述。应认识到,可以使用多种编程语言来实施如本文描述的本公开的实施方式的教导。
在以上的说明书中,已经参考本公开的具体示例性实施方式对本发明的实施方式进行了描述。将显而易见的是,在不脱离所附权利要求书中阐述的本发明的更宽泛精神和范围的情况下,可以对本公开作出各种修改。因此,应当在说明性意义而不是限制性意义上来理解本说明书和附图。
Claims (21)
1.一种用于操作自动驾驶车辆的计算机实施的方法,所述方法包括:
接收表示与自动驾驶车辆相关的从第一位置到第二位置的路线的初始参考线,其中,所述初始参考线包括多个线段;
通过对所述线段应用二次规划样条平滑算法来平滑所述线段;
响应于确定用于所述线段的所述二次规划样条平滑算法未能收敛,调整线段的端点的位置;
通过对调整后的所述线段应用二次规划样条平滑算法来平滑所述线段;以及
基于经平滑的所述线段生成平滑参考线,以用作控制所述自动驾驶车辆的所述路线的参考线。
2.根据权利要求1所述的方法,还包括:
调整用于所述二次规划样条平滑算法的样条数量;以及
通过将所述二次规划样条平滑算法应用于具有调整的样条数量的所述线段来平滑所述线段。
3.根据权利要求1所述的方法,还包括:
调整用于所述二次规划样条平滑算法的样条阶数;以及
通过将所述二次规划样条平滑算法应用于具有调整的样条阶数的所述线段来平滑所述线段。
4.根据权利要求1所述的方法,其中,调整所述端点的位置,使得所述线段的长度延长或缩短预定长度。
5.根据权利要求1所述的方法,其中,基于所述路线的道路状况和所述自动驾驶车辆的速度动态地确定所述线段中的每个的长度。
6.根据权利要求1所述的方法,其中,所述线段中的至少一个的长度与所述线段中的至少一个其他线段的长度不同。
7.根据权利要求1所述的方法,其中,在调整用于所述二次规划样条平滑算法的样条数量之前,将所述端点调整预定的迭代次数。
8.一种存储有用于操作自动驾驶车辆的指令的非暂时性机器可读介质,所述指令在由处理器执行时使所述处理器执行操作,所述操作包括:
接收表示与自动驾驶车辆相关的从第一位置到第二位置的路线的初始参考线,其中,所述初始参考线包括多个线段;
通过对所述线段应用二次规划样条平滑算法来平滑所述线段;
响应于确定用于所述线段的所述二次规划样条平滑算法未能收敛,调整线段的端点的位置;
通过对调整后的所述线段应用二次规划样条平滑算法来平滑所述线段;以及
基于经平滑的所述线段生成平滑参考线,以用作控制所述自动驾驶车辆的所述路线的参考线。
9.根据权利要求8所述的非暂时性机器可读介质,其中,所述操作还包括:
调整用于所述二次规划样条平滑算法的样条数量;以及
通过将所述二次规划样条平滑算法应用于具有调整的样条数量的所述线段来平滑所述线段。
10.根据权利要求8所述的非暂时性机器可读介质,其中,所述操作还包括:
调整用于所述二次规划样条平滑算法的样条阶数;以及
通过将所述二次规划样条平滑算法应用于具有调整的样条阶数的所述线段来平滑所述线段。
11.根据权利要求8所述的非暂时性机器可读介质,其中,调整所述端点的位置,使得所述线段的长度延长或缩短预定长度。
12.根据权利要求8所述的非暂时性机器可读介质,其中,基于所述路线的道路状况和所述自动驾驶车辆的速度动态地确定所述线段中的每个的长度。
13.根据权利要求8所述的非暂时性机器可读介质,其中,所述线段中的至少一个的长度与所述线段中的至少一个其他线段的长度不同。
14.根据权利要求8所述的非暂时性机器可读介质,其中,在调整用于所述二次规划样条平滑算法的样条数量之前,将所述端点调整预定的迭代次数。
15.一种数据处理***,包括:
处理器;以及
存储器,联接到所述处理器以存储指令,所述指令在由所述处理器执行时使所述处理器执行操作,所述操作包括:
接收表示与自动驾驶车辆相关的从第一位置到第二位置的路线的初始参考线,其中,所述初始参考线包括多个线段;
通过对所述线段应用二次规划样条平滑算法来平滑所述线段;
响应于确定用于所述线段的所述二次规划样条平滑算法未能收敛,调整线段的端点的位置;
通过对调整后的所述线段应用二次规划样条平滑算法来平滑所述线段;以及
基于经平滑的所述线段生成平滑参考线,以用作控制所述自动驾驶车辆的所述路线的参考线。
16.根据权利要求15所述的数据处理***,其中,所述操作还包括:
调整用于所述二次规划样条平滑算法的样条数量;以及
通过将所述二次规划样条平滑算法应用于具有调整的样条数量的所述线段来平滑所述线段。
17.根据权利要求15所述的数据处理***,其中,所述操作还包括:
调整用于所述二次规划样条平滑算法的样条阶数;以及
通过将所述二次规划样条平滑算法应用于具有调整的样条阶数的所述线段来平滑所述线段。
18.根据权利要求15所述的数据处理***,其中,调整所述端点的位置,使得所述线段的长度延长或缩短预定长度。
19.根据权利要求15所述的数据处理***,其中,基于所述路线的道路状况和所述自动驾驶车辆的速度动态地确定所述线段中的每个的长度。
20.根据权利要求15所述的数据处理***,其中,所述线段中的至少一个的长度与所述线段中的至少一个其他线段的长度不同。
21.根据权利要求15所述的数据处理***,其中,在调整用于所述二次规划样条平滑算法的样条数量之前,将所述端点调整预定的迭代次数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/582,299 US11378967B2 (en) | 2019-09-25 | 2019-09-25 | Enumeration based failure prevention QP smoother for autonomous vehicles |
US16/582,299 | 2019-09-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112650975A true CN112650975A (zh) | 2021-04-13 |
CN112650975B CN112650975B (zh) | 2024-06-14 |
Family
ID=74880809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010151417.3A Active CN112650975B (zh) | 2019-09-25 | 2020-03-06 | 自动驾驶车辆的基于枚举的失败防止qp平滑器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11378967B2 (zh) |
CN (1) | CN112650975B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113538923A (zh) * | 2020-04-20 | 2021-10-22 | 深圳富泰宏精密工业有限公司 | 车辆变换车道的警示方法、车载装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190079523A1 (en) * | 2017-09-11 | 2019-03-14 | Baidu Usa Llc | Dp and qp based decision and planning for autonomous driving vehicles |
US20190086932A1 (en) * | 2017-09-18 | 2019-03-21 | Baidu Usa Llc | Smooth road reference line for autonomous driving vehicles based on 2d constrained smoothing spline |
CN109521763A (zh) * | 2017-09-18 | 2019-03-26 | 百度(美国)有限责任公司 | 用于自动驾驶车辆的基于约束平滑样条的路径优化 |
CN110083149A (zh) * | 2018-01-26 | 2019-08-02 | 百度(美国)有限责任公司 | 用于自动驾驶车辆的路径与速度优化后馈机制 |
CN110096054A (zh) * | 2018-01-29 | 2019-08-06 | 百度(美国)有限责任公司 | 用于使用多个线程生成用于自动驾驶车辆的参考线的方法和*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9305219B2 (en) * | 2014-01-23 | 2016-04-05 | Mitsubishi Electric Research Laboratories, Inc. | Method for estimating free space using a camera system |
US10739768B2 (en) * | 2018-08-08 | 2020-08-11 | Toyota Motor Engineering & Manufacturing North America, Inc. | Smoothed and regularized Fischer-Burmeister solver for embedded real-time constrained optimal control problems in autonomous systems |
-
2019
- 2019-09-25 US US16/582,299 patent/US11378967B2/en active Active
-
2020
- 2020-03-06 CN CN202010151417.3A patent/CN112650975B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190079523A1 (en) * | 2017-09-11 | 2019-03-14 | Baidu Usa Llc | Dp and qp based decision and planning for autonomous driving vehicles |
US20190086932A1 (en) * | 2017-09-18 | 2019-03-21 | Baidu Usa Llc | Smooth road reference line for autonomous driving vehicles based on 2d constrained smoothing spline |
CN109521763A (zh) * | 2017-09-18 | 2019-03-26 | 百度(美国)有限责任公司 | 用于自动驾驶车辆的基于约束平滑样条的路径优化 |
CN109521762A (zh) * | 2017-09-18 | 2019-03-26 | 百度(美国)有限责任公司 | 用于自动驾驶车辆的基于2d约束平滑样条的平滑道路参考线路 |
CN110083149A (zh) * | 2018-01-26 | 2019-08-02 | 百度(美国)有限责任公司 | 用于自动驾驶车辆的路径与速度优化后馈机制 |
CN110096054A (zh) * | 2018-01-29 | 2019-08-06 | 百度(美国)有限责任公司 | 用于使用多个线程生成用于自动驾驶车辆的参考线的方法和*** |
Non-Patent Citations (1)
Title |
---|
HAOYANG FAN 等: "Baidu Apollo EM Motion Planner", 《ARXIV》, pages 1 - 15 * |
Also Published As
Publication number | Publication date |
---|---|
US20210089042A1 (en) | 2021-03-25 |
US11378967B2 (en) | 2022-07-05 |
CN112650975B (zh) | 2024-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3861291B1 (en) | Spline curve and spiral curve based reference line smoothing method | |
US11442450B2 (en) | Method for determining passable area in planning a path of autonomous driving vehicles | |
CN113494923B (zh) | 基于微分动态规划的路径轨迹规划方法及*** | |
US11628858B2 (en) | Hybrid planning system for autonomous vehicles | |
US11685398B2 (en) | Lane based routing system for autonomous driving vehicles | |
CN113060118A (zh) | 用于柔和降速的速度规划引导线 | |
CN113442945B (zh) | 用于自动驾驶车辆的使用反馈的增量式侧向控制*** | |
CN112020686A (zh) | 用于自动驾驶的基于qp样条路径和螺旋路径的参考线平滑方法 | |
EP3842315B1 (en) | Autonomous driving vehicle three-point turn | |
CN113428172A (zh) | 使用逆向强化学习的开放空间路径规划 | |
CN112985435B (zh) | 用于操作自主驾驶车辆的方法及*** | |
CN113247017B (zh) | 用于确保自动驾驶车辆的稳定绕行的双缓冲*** | |
US11493921B2 (en) | Dynamic parameter architecture for QP smoother | |
US20220041183A1 (en) | Lane boundary and vehicle speed based nudge decision | |
CN113815640A (zh) | 用于具有不同速度限制的车道的车道变更*** | |
CN113428173A (zh) | 用于自动驾驶车辆的静态曲率误差补偿控制逻辑 | |
CN113060140A (zh) | 基于中心线移位的变道前路径规划 | |
CN112650975B (zh) | 自动驾驶车辆的基于枚举的失败防止qp平滑器 | |
CN113366400B (zh) | 自动驾驶车辆的动态成本函数的实现方法 | |
US20210200211A1 (en) | Method of generating back-up trajectories for self-driving vehicles during emergency | |
CN113525510B (zh) | 自动将自主驾驶车辆的转向返回至中心位置的***和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |