首页> 中国专利> 用于QP平滑器的动态参数架构

用于QP平滑器的动态参数架构

摘要

根据示例性方法,平滑模块可用于从一组最严格的参数开始,使用有序列表的多组平滑参数迭代地执行平滑操作,直到平滑操作成功。该方法包括生成多组平滑参数的操作,包括第一组平滑参数、第二组平滑参数和插入其中的至少一组平滑参数;对于每组平滑参数,对原始参考线段执行二次规划(QP)平滑操作,直到QP平滑操作成功;以及根据由成功的QP平滑操作生成的平滑参考线段来控制ADV。

著录项

  • 公开/公告号CN112445223A

    专利类型发明专利

  • 公开/公告日2021-03-05

    原文格式PDF

  • 申请/专利权人 百度(美国)有限责任公司;

    申请/专利号CN202010147871.1

  • 发明设计人 朱帆;

    申请日2020-03-05

  • 分类号G05D1/02(20200101);G01C21/34(20060101);

  • 代理机构11204 北京英赛嘉华知识产权代理有限责任公司;

  • 代理人马晓亚;王艳春

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 10:06:57

说明书

技术领域

本公开的实施方式总体涉及自动驾驶车辆。更具体地,本公开的实施方式涉及用于自动驾驶车辆的参考线平滑。

背景技术

以自动驾驶模式运行(例如,无人驾驶)的车辆可将乘员、尤其是驾驶员从一些驾驶相关的职责中解放出来。当以自动驾驶模式运行时,车辆可使用车载传感器导航到各个位置,从而允许车辆在最少人机交互的情况下或在没有任何乘客的一些情况下行驶。

运动规划和控制是自动驾驶中的关键操作。尤其是在自动驾驶系统中,轨迹规划是关键的组成部分。传统的轨迹规划技术严重依赖于高质量的参考线,即用于自动驾驶车辆的引导路径,例如道路的中心线,以生成稳定的轨迹。

参考线可从地图数据点生成,通常是世界坐标系中的一序列二维(2D)点。从地图数据点直接生成的参考线是原始参考线,其可能缺乏所需的平滑度,因此可能导致规划周期之间的轨迹不稳定和振荡。因此,原始参考线通常需要使用各种平滑技术进行平滑,以获得更好的驾驶体验。

二次规划(QP)通常用于参考线平滑。然而,经平滑的参考线与原始参考线的接近性与平滑的成功性之间存在争议。通常,平滑的参考线越远,平滑成功的可能性就越大。

现有的解决方案包括手动调整平滑参数以平衡原始参考线上的点的自由度和成功率。平滑参数的这种手动调整并非最佳且效率低下。

发明内容

在第一方面,本公开提供了一种操作自动驾驶车辆(ADV)的计算机实施的方法,所述方法包括:

生成多组平滑参数,包括第一组平滑参数、比所述第一组平滑参数宽松的第二组平滑参数和以及内插在所述第一组平滑参数与所述第二组平滑参数之间的至少一组平滑参数;

对于所述多组平滑参数中的每一组,对原始参考线的一段执行二次规划(QP)平滑操作,直到所述QP平滑操作满足预定条件;以及

根据由所述QP平滑操作生成的平滑参考线段规划用于控制所述ADV的轨迹。

在第二方面,本公开提供了一种存储有用于在自动驾驶车辆(ADV)中存储点云数据的指令的非暂时性机器可读介质,所述指令在由处理器执行时致使所述处理器执行操作,所述操作包括:

生成多组平滑参数,包括第一组平滑参数、比所述第一组平滑参数宽松的第二组平滑参数和以及内插在所述第一组平滑参数与所述第二组平滑参数之间的至少一组平滑参数;

对于所述多组平滑参数中的每一组,对原始参考线的一段执行二次规划(QP)平滑操作,直到所述QP平滑操作满足预定条件;以及

根据由所述QP平滑操作生成的平滑参考线段规划用于控制所述ADV的轨迹。

在第三方面,本公开提供了一种数据处理系统,包括:

处理器;以及

存储器,所述存储器联接至所述处理器,以存储指令,所述指令在由所述处理器执行时致使所述处理器执行操作,所述操作包括:

生成多组平滑参数,包括第一组平滑参数、比所述第一组平滑参数宽松的第二组平滑参数和以及内插在所述第一组平滑参数与所述第二组平滑参数之间的至少一组平滑参数;

对于所述多组平滑参数中的每一组,对原始参考线的一段执行二次规划(QP)平滑操作,直到所述QP平滑操作满足预定条件;以及

根据由所述QP平滑操作生成的平滑参考线段规划用于控制所述ADV的轨迹。

附图说明

本公开的实施方式在附图的各图中以举例而非限制的方式示出,附图中的相同参考标记指示相似元件。

图1是示出根据一个实施方式的自动驾驶车辆网络配置的框图。

图2是示出根据一个实施方式的自动驾驶车辆的示例的框图。

图3A至图3B是示出根据一些实施方式的由自动驾驶车辆使用的感知与规划系统的示例的框图。

图4是示出根据一个实施方式的平滑模块的示例的框图。

图5是示出根据一个实施方式的平滑原始参考线的示例性系统的框图。

图6示出根据一个实施方式的动态QP平滑器。

图7示出根据一个实施方式的使用动态QP平滑器的示例。

图8示出根据一个实施方式的平滑原始参考线的示例性过程。

具体实施方式

将参考以下所讨论的细节来描述本公开的各种实施方式和方面,附图将示出所述各种实施方式。下列描述和附图是本公开的说明,而不应当解释为对本公开进行限制。描述了许多特定细节以提供对本公开的各种实施方式的全面理解。然而,在某些情况下,并未描述众所周知的或常规的细节,以提供对本公开的实施方式的简洁讨论。

如上所述,在适当的平滑参数与平滑成功之间找到适当的平衡是一个挑战。如果平滑参数过松,则平滑更可能成功,但是生成的平滑参考线可能离原始参考线太远,并且在控制自动驾驶车辆时可能没有那么有用。

本公开中描述的实施方式可使得能够找到一组适当的平滑参数,以避免生成不必要地远离原始参考线的平滑参考线。根据示例性方法,平滑模块可用于从一组最严格的参数开始,使用有序列表的多组平滑参数迭代地执行平滑操作,直到平滑操作成功。该方法包括生成多组平滑参数的操作,包括第一组平滑参数、第二组平滑参数和插入其中的至少一组平滑参数;对于每组平滑参数,对用于操作ADV的原始参考线的一段执行二次规划(QP)平滑操作,直到QP平滑操作成功;以及根据由成功的QP平滑操作生成的平滑参考线段来控制ADV。

在一个实施方式中,每组平滑参数均包括纵向自由度、横向自由度、多项式函数的次数和原始参考线的一段上的多个控制点。第一组平滑参数中的纵向自由度和横向自由度分别小于第二组平滑参数中的纵向自由度和横向自由度。多组平滑参数在原始参考线的一段上具有相同的多项式函数次数和相同的控制点数目,但是纵向自由度和横向自由度不同。

在一个实施方式中,当对多组平滑参数中的每组执行QP平滑操作时,平滑模块可执行以下操作:确定以原始参考线的一段上的多个控制点中的每个为中心的边界框,以及该边界框以该组平滑参数的纵向自由度为长度,以该组平滑参数的横向自由度为宽度;选择多个二维多项式,每个多项式均表示相邻控制点之间的最优参考线的一段;以及限定对于二维多项式的一组约束,以使得二维多项式能够通过多个边界框中的每个。

在一个实施方式中,从第一组平滑参数开始,多组平滑参数按升序排列。另外,在每一组平滑参数中,纵向自由度与横向自由度之间的比值相同。

在一个实施方式中,平滑模块可预先对原始参考线执行平滑操作,以获得更好的性能。当ADV调用平滑模块以基于HD地图事先为整个行程生成平滑的参考线从而获得更好的性能时,可能会发生这种情况。

自动驾驶车辆

图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是示出根据一个实施方式的自动驾驶车辆的示例的框图。在图2中,传感器系统115包括但不限于一个或多个摄像机211、全球定位系统(GPS)单元212、惯性测量单元(IMU)213、雷达单元214以及光探测和测距(LIDAR)单元215。GPS212可包括收发器,所述收发器可操作以提供关于自动驾驶车辆的位置的信息。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,出于各种目的,机器学习引擎122生成或训练一组规则、算法和/或预测模型124。在一个实施方式中,例如,算法124可包括优化路径规划和速度规划的优化方法。该优化方法可包括用来表示路径段或时间段的一组成本函数和多项式函数。这些函数可上传到自动驾驶车辆上,用于实时生成平滑的路径。

图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可连接由地图数据(可由感知模块302生成或可预先存储/下载的)提供的车辆车道的两个相对路缘或端点的中点。基于表示先前在不同时间点在车辆车道上行驶的车辆的所收集的数据点的中点和机器学习数据,路线安排模块307可通过以下来计算参考点:选择在车辆车道的预定接近度内所收集的数据点的子集,以及对根据所收集的数据点的子集的中点应用平滑函数。

基于参考点或车道参考点,路线安排模块307可通过对参考点进行插值生成参考线,使得生成的参考线用作为用于控制车辆车道上的ADV的参考线。在一些实施方式中,表示参考线的参考点表和路段表实时上载到ADV中,使得ADV可基于ADV的地理位置和行驶方向生成参考线。例如,在一个实施方式中,ADV可通过表示即将到来的前面的路段的路径段标识符和/或基于ADV的GPS位置,通过请求用于路径段的路线安排服务来生成参考线。基于路径段标识符,路线安排服务可返回到ADV参考点表,该参考点表包括用于所关注的路段的所有车道的参考点。ADV可查阅用于路径段的车道的参考点,以生成用于控制车辆车道上的ADV的参考线。

平滑模块308可基于由路线安排模块307提供的参考线生成平滑的道路参考线。例如,平滑模块308选择沿着参考线的多个控制点。在一个实施方式中,控制点可以是由路线安排模块307提供的参考线的参考点,或者是沿着参考线的一些插值点,这些插值点与它们的相邻点的距离大致相等。平滑模块308添加表示围绕控制点中的每个的边界区域(例如,具有预先配置的尺寸和/或方向的边界框)的一组约束。平滑模块308添加一组联合平滑约束以保证表示相邻控制点之间的参考线段的多个分段多项式平滑地连接在一起。平滑模块308选择具有一组内核或加权函数的目标函数,分段多项式将针对该目标函数。平滑模块308使用二次规划求解器来优化目标函数以生成平滑的道路参考线。

如上所述,路线或路线安排模块307管理与用户的行程或路线相关的任何数据。ADV的用户指定起始位置和目的地位置以获得行程相关数据。行程相关数据包括路线段和路线段的参考线或参考点。例如,基于路线地图信息311,路线安排模块307生成路线或道路段表和参考点表。参考点与道路段表中的道路段和/或车道相关。可内插参考点以形成用于控制ADV的一个或多个参考线。参考点可特定于道路段和/或道路段的特定车道。

例如,道路段表可以是名称-值对,以包括道路段A至道路段D的前一个和下一个道路车道。例如,对于具有车道1的路段A至道路段D,道路段表可以是:{(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米的段/车道。在另一实施方式中,道路段和/或车道根据诸如道路曲率的道路状况划分为可变长度的段/车道。在一些实施方式中,每个道路段和/或车道可包括数个参考点。在一些实施方式中,可将参考点转换至其它坐标系,例如纬度-经度。

在一些实施方式中,可将参考点转换至相对坐标系统中,诸如站点-横向(station-lateral,SL)坐标。站点-横向坐标系是参考固定参考点以跟随参考线的坐标系。例如,(S,L)=(1,0)坐标可表示参考线上的静止点(即,参考点)之前的一米,具有零米的横向偏移。(S,L)=(2,1)参考点可表示沿着参考线在静止参考点之前的两米和从参考线横向偏移一米,例如,向左偏移一米。

在一个实施方式中,平滑模块308基于表示由路线安排模块307提供的参考线的参考点生成平滑参考线。在决策模块和/或规划模块(诸如决策模块304和/或规划模块305)将平滑参考线与感知到的障碍物和/或交通信息结合在一起之前,可将平滑参考线转换至诸如SL坐标系的相对坐标系中。

在一个实施方式中,决策模块304基于由路线安排模块307提供的参考线(参考线已由如上所述的平滑模块308平滑)并且基于由ADV感知到的ADV周围的障碍物和/或交通信息来生成粗略路径分布。粗略路径分布可以是可存储在永久性存储装置352中的路径/速度分布313的一部分。通过选择沿着参考线的点来生成粗略路径分布。对于每个点,决策模块304基于关于如何遇到物体的一个或多个障碍物决策将该点移动至参考线的左边或右边(例如,候选移动),而其余的点保持稳定。在使用成本函数(如图3A中的成本函数315的一部分)搜寻具有最低路径成本的路径候选项时,使用动态规划对路径候选项迭代地执行候选移动,从而生成粗略路径分布。成本函数的示例包括基于以下的成本:路线路径的曲率,从ADV到所感知的障碍物的距离,以及ADV到参考线的距离。在一个实施方式中,所生成的粗略路径分布包括站点-横向地图,作为可存储在永久性存储装置352中的SL地图/ST图314的一部分。

在一个实施方式中,决策模块304基于所生成的粗略路径分布来生成粗略速度分布(作为路径/速度分布313的一部分)。粗略速度分布表示在控制ADV的特定时间点时的最佳速度。与粗略路径分布相似,根据ADV所感知到的障碍物,基于成本函数(作为图3A的成本函数315的一部分)使用动态编程迭代不同时间点时的候选速度以寻找具有最低速度成本的速度候选项(例如,加速或减速)。粗略速度分布决定ADV是否应该超车或避开障碍物,以及避至障碍物的左边还是右边。在一个实施方式中,粗略速度分布包括站点-时间(ST)图(作为SL地图/ST图314的一部分)。站点-时间图指示相对于时间行进的距离。

在一个实施方式中,规划模块305根据障碍物决策和/或人工栅栏重新计算粗略路径分布,以禁止规划模块305搜索栅栏的几何空间。例如,如果确定粗略速度分布从左边接近障碍物,则规划模块305可将栅栏(以障碍物的形式)设置到障碍物的右边,以防止对于ADV从右边接近障碍物的计算。在一个实施方式中,通过使用二次规划(QP)优化路径成本函数(作为成本函数315的一部分)来重新计算粗略路径分布。在一个实施方式中,重新计算的粗略路径分布包括站点-横向地图(作为SL地图/ST图314的一部分)。

在一个实施方式中,规划模块305使用二次规划(QP)重新计算粗略速度分布,以优化速度成本函数(作为成本函数315的一部分)。可添加类似的速度栅栏约束来禁止QP求解器搜索一些禁止的速度。在一个实施方式中,重新计算的粗略速度分布包括站点-时间图(作为SL地图/ST图314的一部分)。

应注意,如上文示出和描述的部件中的一些或全部可在软件、硬件或其组合中实施。例如,此类部件可实施为安装并存储在永久性存储装置中的软件,所述软件可通过处理器(未示出)加载在存储器中并在存储器中执行以实施贯穿本申请所述的过程或操作。可替代地,此类部件可实施为编程或嵌入到专用硬件(诸如,集成电路(例如,专用集成电路或ASIC)、数字信号处理器(DSP)或现场可编程门阵列(FPGA))中的可执行代码,所述可执行代码可经由来自应用的相应驱动程序和/或操作系统来访问。此外,此类部件可实施为处理器或处理器内核中的特定硬件逻辑,作为可由软件部件通过一个或多个特定指令访问的指令集的一部分。

二次规划(QP)平滑

图4是示出根据一个实施方式的平滑模块的示例的框图。参考图4,平滑模块308可应用基于二维(2D)样条(例如,二维分段多项式)的平滑优化。平滑模块308可包括约束模块401,边界框模块405和目标函数模块407。约束模块401可限定QP优化问题必须满足的基本约束、限制、限制条件或状况的定义。约束模块401可包括但不限于初始约束411、等式约束413和不等式约束415。初始约束411包括对应于ADV的初始状况(例如,ADV的直接方向和/或地理位置)的一组约束。等式约束413包括声明必须满足的一些等式条件的一组等式约束。例如,等式约束413可包括保证满足联合平滑性和/或一些逐点约束(例如,样条将穿过某些点或具有一些特定的点方向)的一组约束。不等式约束415包括保证样条在某个边界内(例如,小于或大于某个约束值)的一组不等式约束。例如,不等式约束415可包括保证样条将穿过某些边界的一组约束。不等式约束和等式约束都是硬约束,这意味着需要满足它们。边界框模块405可建立围绕每个控制点的边界区域(例如,边界框)。目标函数模块407可生成一个或多个内核作为用于二次规划优化的目标函数参数。

图5是示出根据一个实施方式的平滑原始参考线的示例性系统的框图。路线安排模块307基于ADV的GPS位置向ADV提供地图或路线段信息。可基于地图和路线段信息生成原始参考线532。在一个实施方式中,原始参考线532可由多个控制点表示,例如,控制点505。控制点可大致相等地间隔开,例如,间隔大约5至10米。

基于控制点,诸如图3A的平滑模块308的平滑模块应用2D QP样条优化以生成用于控制ADV的平滑参考线530。平滑参考线530是由连接在一起的一个或多个(例如,分段)多项式表示的样条。例如,多项式或多项式函数可表示多个控制点的两个相邻控制点之间的段。

在一个实施方式中,样条内的每个多项式函数可以是二维多项式,例如,

x(t)=p

其中x、y表示多项式到第n阶的二维(x,y)几何坐标,以及p

在另一实施方式中,多项式函数可以是一维的。例如,

l(s)=p

其中,s、l表示多项式到第n阶的站点-横向一维(s,l)几何坐标,以及p

参考图4,平滑模块308为样条或分段多项式配置多项式的阶(即,次数),以确保样条平滑度的期望阈值。在一个实施方式中,可将分段多项式预先配置为五阶多项式。基于控制点,边界框模块405可限定诸如边界框501的边界区域,该边界区域具有诸如约0.2米×0.4米的预定尺寸,以围绕控制点中的每一个。边界区域可表示平滑参考线(例如,样条或分段多项式)530必须接触或穿过的不等式约束(作为不等式约束415的一部分)。

例如,具有0.2米×0.4米的边界框的控制点(x1,y1)505可包括用于在点C(x(1),y(1))507处的样条的不等式约束,诸如:

x

其中(x

等式约束413或不等式约束415可包括边缘504作为强加在边界框501上的方向约束,使得样条将具有特定点前进方向。在一些实施方式中,约束模块401可添加一组联合约束(作为等式约束413的一部分)以确保例如联合平滑度,例如,

x

x'

x″

其中,x

约束模块401可向分段多项式添加一组初始约束(作为初始约束411的一部分)。该组初始约束可对应于ADV的当前地理位置和/或当前前进方向,例如

x(0)=x

x′(0)=dx

其中(x

在一些实施方式中,平滑模块308可选择具有样条将以其为目标的各种内核或成本函数的目标函数(作为目标函数407的一部分)。示例性目标函数可包括平滑内核和/或引导内核,诸如:

其中,x(t),y(t)是x-y二维分段多项式,w

在一个实施方式中,边缘504可垂直于原始参考线532上的线段505-506。边界框501的尺寸限定了平滑模块308用来平滑原始参考线532的纵向自由度和横向自由度。

如本文中所使用的,纵向自由度是原始参考线532上的原始点(例如,点505)与平滑参考线530上的相应点(例如,点507)之间允许的最大纵向距离,而横向自由度是原始参考线532上的原始点与平滑参考线530上的相应点之间允许的最大横向距离。横向自由度平行于边缘504,以及纵向自由度垂直于边缘504。

动态QP平滑器

图6示出了根据一个实施方式的动态QP平滑器。如图6中所示,动态QP平滑器601可包括两组平滑参数。第一组平滑参数603更严格,而第二组平滑参数605更宽松。

这两组平滑参数可由动态QP平滑器601默认提供,并且可经由用户接口进行调整。在一个实施方式中,动态QP平滑器601可在第一组平滑参数603与第二组平滑参数605之间内插多组平滑参数。

在一个实施方式中,每组平滑参数(即,两组默认平滑参数和内插的平滑参数集)均可具有相同的平滑参数,包括纵向自由度、横向自由度、多项式函数的次数以及原始参考线段上的控制点的数目。

在一个实施方式中,每组平滑参数均具有不同的纵向自由度和不同的横向自由度。在每组平滑参数中,纵向自由度与横向自由度之间的比值相同。因此,为所有平滑参数集生成的边界框的尺寸比可相同。

然而,每组平滑参数均具有相同次数的多项式函数和相同数量的控制点。如果存在由动态QP平滑器限定的其它QP参数,则这些QP参数的值对于每组平滑参数也是相同的。

在一个实施方式中,平滑参数集可上升地排序,其中,严格参数集603是平滑参数集的排序列表中的第一组平滑参数,接着是具有下一个更大纵向自由度的平滑参数集。

在一个实施方式中,当被调用时,动态QP平滑器601可使用严格参数集来平滑原始参考线段。如图6中所示以及如图4和图5中所述,在平滑过程中,动态QP平滑器601可调用约束模块401、边界区域模块405和目标函数模块407。

如果平滑操作在严格参数集上失败,则可使用平滑参数集的有序列表中的下一组平滑参数来平滑参考线。可重复该过程,直到平滑操作成功。如果平滑操作在所有平滑参数集上失败,则原始参考线段可用作平滑参考线段,其中,曲率、方向信息可从相邻的原始点计算。

在一个实施方式中,可在动态QP平滑器601中使用循环结构,以使用多组平滑参数来平滑原始参考线段。当平滑操作在平滑参数集的有序列表中的一组平滑参数上成功时,可终止循环。

在平滑了原始参考线的第一段之后,动态QP平滑器601可通过执行如上所述的操作来开始平滑原始参考线的下一段。经平滑的参考线段可串接以用于控制ADV。

图7示出了根据一个实施方式的使用动态QP平滑器的示例。如图7中所示,一组严格的平滑参数701和一组宽松的平滑参数703可由动态QP平滑器(诸如图6中所示的动态QP平滑器601)来准备。这两组平滑参数可默认提供或者可由配置文件生成,该配置文件可经由用户接口修改。

在图7中,严格参数集701包括横向自由度A 705、纵向自由度A709、控制点之间的间隔A 711以及多项式函数的次数A 713。类似地,宽松参数集703包括横向自由度B 707、纵向自由度B 710、控制点之间的间隔B 712以及多项式函数的次数B 714。出于说明的目的,提供了两组参数中的参数,并且用于QP优化/平滑的一个或多个附加平滑参数可包括在两组参数中。

如图7中所示,严格参数集701中的横向自由度A 705不同于宽松参数集703中的横向自由度B 707。类似地,严格参数集701中的纵向自由度A 709不同于宽松参数集703中的纵向自由度B710。

然而,对于间隔A 711和间隔B 712,两组平滑参数具有相同的值5米,而对于次数A713和次数B 714,具有相同的值5。可包括在参数集中的任何附加参数对于两组参数将具有相同的值。

在一个实施方式中,当ADV正在行驶时,可生成预定的原始参考线(例如,120米)。诸如平滑模块308的平滑模块可逐段地平滑参考线。在每个段内,选择多个控制点(例如,A、B、C、D和E)用于平滑原始参考线段。对所有段进行平滑,经平滑的参考线段可串接以形成用于控制ADV的平滑参考线。

在一个实施方式中,可在严格参数集701与宽松参数集703之间内插多组平滑参数。内插参数集中的每个均可包括与严格参数集701或宽松参数集703相同的参数,但是具有不同的纵向自由度和横向自由度。

在一个实施方式中,可基于历史驾驶统计数据来确定该多组内插参数。作为说明性示例,如果基于所收集的历史驾驶统计数据内插2组平滑参数,则动态QP平滑器601可将横向自由度A 705与横向自由度B 707之间的差的绝对值除以3(横向自由度A 705与横向自由度B 707之间的间隔的数目)以获得增量值|0.5-0.05|/3。其是0.15m。该增量值可用于生成内插参数集的横向自由度。

例如,第一组内插参数中的横向自由度将是0.05+0.15=0.20m。由于每组参数的纵向自由度与横向自由度之间的比值是固定的,因此可基于横向自由度(即,0.20m)以及横向自由度A 705与纵向自由度A709之间的比值来计算第一组内插参数的纵向自由度。在该示例中,纵向自由度将为(0.20*0.2)/0.05=0.8m。

第二组内插参数的横向自由度将是0.05+0.15+0.15=0.35m,以及纵向自由度将是(0.35*0.2)/0.05=1.4m。

因此,在上述示例所示的实施方式中,在两个相邻参数集中的横向自由度之间存在相等的间隔,并且在两个相邻参数集中的纵向自由度之间也存在相等的间隔。

在本发明的其它实施方式中,两个相邻参数集之间的横向自由度或纵向自由度之间的间隔可不相等,以及不同参数集中的横向自由度与纵向自由度之间的比值也可不同,而不是如上述示例中所示固定。

在一个实施方式中,动态QP平滑器601可使用四组平滑参数来平滑原始参考线的第一段AE 732。第一段AE可由五个控制点A、B、C、D和E表示。

对于控制点中的每一个,动态QP平滑器601可调用如图4中所述的边界框模块405,以为每组平滑参数生成边界框。

图7使用控制点C作为示例。如图所示,生成以控制点C为中心的4个边界框718、720、722和724。每个边界框由4组平滑参数之一中的横向自由度和纵向自由度形成。例如,边界框718由严格参数集701中的横向自由度A 705和纵向自由度A 709形成。因此,边界框718具有0.05m的宽度和0.2m的长度。原始参考线段AE中的4个其它控制点中的每一个均可具有与控制点C相同的一组边界框。

动态QP平滑器601可首先使用严格参数集701执行平滑操作。如果生成了平滑的参考线段(例如,平滑的参考线段730)且该平滑的参考线段穿过围绕五个控制点中的每一个的最小边界框(即边界框718),则认为平滑操作成功。否则,动态QP平滑器601可使用较宽松的参数集来执行平滑操作,该较宽松的参数集是具有0.2m的横向自由度和0.8m的纵向自由度的参数集。如果平滑操作再次失败,则动态QP平滑器601可尝试下一个参数集。如果所有四组参数都被使用且平滑操作都失败,则原始参考线段AE 732将用作平滑参考线段,以及动态QP平滑器601可移动至下一个原始参考线段进行平滑。

图8示出了根据一个实施方式的平滑原始参考线的示例性过程800。过程800可由可包括软件、硬件或其组合的处理逻辑来执行。例如,过程800可由图6中描述的动态QP平滑器601执行。

返回参考图8,在操作801中,处理逻辑生成多组平滑参数,包括第一组平滑参数、第二组平滑参数以及在其间内插的至少一组平滑参数。在操作802中,对于多组平滑参数中的每一组,处理逻辑对用于操作ADV的原始参考线段执行二次规划(QP)平滑操作,直到QP平滑操作成功。在操作803中,处理逻辑根据由成功的QP平滑操作生成的平滑参考线段来控制ADV。

应注意,如上文示出和描述的部件中的一些或全部可在软件、硬件或其组合中实施。例如,此类部件可实施为安装并存储在永久性存储装置中的软件,所述软件可通过处理器(未示出)加载在存储器中并在存储器中执行以实施贯穿本申请所述的过程或操作。可替代地,此类部件可实施为编程或嵌入到专用硬件(诸如,集成电路(例如,专用集成电路或ASIC)、数字信号处理器(DSP)或现场可编程门阵列(FPGA))中的可执行代码,所述可执行代码可经由来自应用的相应驱动程序和/或操作系统来访问。此外,此类部件可实施为处理器或处理器内核中的特定硬件逻辑,作为可由软件部件通过一个或多个特定指令访问的指令集的一部分。

前述详细描述中的一些部分已经根据在计算机存储器内对数据位的运算的算法和符号表示而呈现。这些算法描述和表示是数据处理领域中的技术人员所使用的方式,以将他们的工作实质最有效地传达给本领域中的其他技术人员。本文中,算法通常被认为是导致所期望结果的自洽操作序列。这些操作是指需要对物理量进行物理操控的操作。

所有这些和类似的术语均旨在与适当的物理量关联,并且仅仅是应用于这些量的方便标记。除非在以上讨论中以其它方式明确地指出,否则应当了解,在整个说明书中,利用术语(诸如所附权利要求书中所阐述的术语)进行的讨论是指计算机系统或类似电子计算装置的动作和处理,所述计算机系统或电子计算装置操控计算机系统的寄存器和存储器内的表示为物理(电子)量的数据,并将所述数据变换成计算机系统存储器或寄存器或者其它此类信息存储装置、传输或显示装置内类似地表示为物理量的其它数据。

本公开的实施方式还涉及用于执行本文中的操作的设备。这种计算机程序存储在非暂时性计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机构。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存存储器装置)。

前述附图中所描绘的过程或方法可由处理逻辑来执行,所述处理逻辑包括硬件(例如,电路、专用逻辑等)、软件(例如,体现在非暂时性计算机可读介质上)或两者的组合。尽管所述过程或方法在上文是依据一些顺序操作来描述的,但是应当了解,所述操作中的一些可按不同的顺序执行。此外,一些操作可并行地执行而不是顺序地执行。

本公开的实施方式并未参考任何特定的编程语言进行描述。应认识到,可使用多种编程语言来实施如本文描述的本公开的实施方式的教导。

在以上的说明书中,已经参考本公开的具体示例性实施方式对本公开的实施方式进行了描述。将显而易见的是,在不脱离所附权利要求书中阐述的本公开的更宽泛精神和范围的情况下,可对本发明作出各种修改。因此,应当在说明性意义而不是限制性意义上来理解本说明书和附图。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号