使用用于自主驾驶车辆的怠速的速度规划准则的速度规划的制作方法

文档序号:25444041发布日期:2021-06-11 22:05阅读:59来源:国知局
使用用于自主驾驶车辆的怠速的速度规划准则的速度规划的制作方法

本发明的实施例一般涉及操作自主车辆。更特别地,本发明的实施例涉及用于自主驾驶车辆的怠速的速度规划。



背景技术:

以自主模式(例如,无人驾驶)操作的车辆可以减轻乘坐者,尤其是驾驶员的一些驾驶相关责任。当以自主模式操作时,车辆可以使用车载传感器导航到各种位置,从而允许车辆以最小的人机交互或者在没有任何乘客的一些情况下行驶。

在常规的手动驾驶期间,人们可以简单地不做任何事情,即,没有任何油门或制动动作驾驶车辆。车辆将随着其怠速(idlespeed)而移动。然而,对于自主驾驶,自主驾驶车辆(adv)不容易规划以怠速自主驾驶。典型的自主驾驶被划分为规划阶段和控制阶段。控制阶段将精确地遵循由规划阶段规划的轨迹,这使得“释放气体和制动”不是自然的并且难以实施。另外,在车辆怠速下驾驶是非常困难的(尤其是对于汽油动力车辆),因为它需要不断地按压制动器,并且对控制阶段操作造成许多麻烦。



技术实现要素:

本发明的第一方面提供了一种用于操作自主驾驶车辆adv的计算机实现的方法。方法包括基于从多个传感器获得的传感器数据感知adv周围的驾驶环境,包括确定adv的当前速度。方法还包括响应于以怠速驾驶的请求,基于怠速曲线并根据adv的当前速度生成速度准则。方法还包括通过基于速度准则优化成本函数来执行速度规划操作,以确定沿着被规划为驾驶adv的轨迹的多个轨迹点的速度。方法还包括生成多个控制命令以沿着轨迹以规划的速度控制adv,使得adv根据预期的怠速移动。

本发明的第二方面提供了一种具有存储在其中的指令的非暂时性机器可读介质,指令在由处理器执行时使得处理器执行本发明的第一方面所提供的方法。

本发明的第三方面提供了一种数据处理系统,包括处理器以及存储器。存储器耦接到处理器并存储指令,指令在由处理器执行时使得处理器执行本发明的第一方面所提供的方法。

使用本发明的方法,可以更精确地控制自主驾驶车辆沿着规划的轨迹根据预期的怠速移动。

附图说明

本发明的实施例通过示例的方式示出并且不限于附图中的图,在附图中相同的附图标记指示相似的元件。

图1是示出根据一个实施例的联网系统的框图。

图2是示出根据一个实施例的自主车辆的示例的框图。

图3a-图3b是示出根据一个实施例的与自主车辆一起使用的感知和规划系统的示例的框图。

图4是示出根据一个实施例的由规划和控制系统执行的过程的示例的图。

图5是示出根据一个实施例的使用测点-横向图的路径和速度规划的示例的图。

图6a和图6b是示出根据一个实施例的使用测点-时间图的路径和速度规划的示例的图。

图7是示出根据一个实施例的怠速规划模块的示例的框图。

图8是示出根据一个实施例的怠速曲线的示例的图。

图9是示出根据一个实施例的用于怠速规划的过程的示例的流程图。

具体实施方式

将参考以下讨论的细节描述本发明的各个实施例和方面,并且附图将示出各个实施例。以下描述和附图是本公开的说明并且不应被解释为限制本发明。描述了许多具体细节以提供对本公开的各个实施例的全面理解。然而,在某些情况下,为了提供对本公开的实施例的简要讨论,没有描述公知或常规的细节。

说明书中对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性可包括在本公开的至少一个实施例中。在说明书中的各个地方出现的短语“在一个实施例中”不一定都指同一实施例。

根据一些实施例,创建速度曲线的集合,每个速度曲线对应于特别的类型的车辆。速度曲线包含描述车辆的怠速驾驶行为的数据。怠速是指车辆在没有踩下油门踏板或刹车踏板的情况下移动的相对速度。例如,当车辆启动并且没有踩下油门或制动踏板时,车辆将移动并且其速度增加。车辆的速度在一段时间之后最终达到相对恒定的速度。这种相对恒定的速度被称为用于车辆的怠速。可基于从多种车辆收集的大量驾驶统计数据创建速度曲线。

然后,速度曲线可被上传到adv上,用于在自主驾驶期间实时进行速度规划。在自主驾驶期间,在速度规划期间,速度曲线可以用作速度参考线,也称为速度准则,以确定用于车辆的优化速度。由于速度准则是基于大量驾驶统计而生成的,因此怠速自主驾驶将非常接近地模仿人在怠速自主驾驶期间的驾驶行为。

根据一个实施例,基于从各种传感器获得的传感器数据感知驾驶环境,包括确定adv的当前速度。响应于以怠速驾驶的请求,基于怠速曲线并根据adv的当前速度生成速度准则。通过基于速度准则优化成本函数执行速度规划操作,以确定沿着被规划为驾驶adv的轨迹的不同的时间点处的轨迹点的速度。然后生成一个或多个控制命令以沿着规划的轨迹以规划的速度控制adv,使得adv根据预期的怠速移动。

在一个实施例中,怠速曲线已经基于从类似于adv的大量车辆收集的驾驶统计数据而生成,同时车辆以怠速驾驶。速度曲线表示在不应用油门命令或制动命令的情况下车辆从零到相对恒定的速度的速度变化。当生成速度准则时,从速度曲线中提取速度曲线的从adv的当前速度到由速度曲线表示的目标怠速的部分,其中速度曲线的提取的部分被用于速度规划操作。在速度规划操作期间,使用速度曲线的提取的部分作为速度参考线以使用速度成本函数生成速度成本。

在一个实施例中,响应于确定adv的当前速度低于预定的速度阈值而执行怠速规划操作。速度曲线是基于从多种车辆收集的驾驶统计而生成的许多速度曲线中的一个。速度曲线中的每个与不同类型的车辆中的一个相关联。

图1是示出根据本公开的一个实施例的自主车辆网络配置的框图。参考图1,网络配置100包括自主车辆101,自主车辆101可以通过网络102通信地耦接到一个或多个服务器103-104。尽管示出一个自主车辆,但是多个自主车辆可以通过网络102彼此耦接和/或耦接到服务器103-104。网络102可以是任何类型的网络,诸如局域网(lan)、诸如因特网的广域网(wan)、蜂窝网络、卫星网络、或其组合,有线或无线的网络。(一个或多个)服务器103-104可以是任何类型的服务器或服务器集群,诸如web或云服务器、应用服务器、后端服务器或其组合。服务器103-104可以是数据分析服务器、内容服务器、交通信息服务器、地图和兴趣点(mpoi)服务器或位置服务器等。

自主车辆指的是能够被配置为处于自主模式的车辆,在自主模式中,车辆在驾驶员很少或没有输入的情况下导航通过环境。这种自主车辆可包括具有一个或多个传感器的传感器系统,一个或多个传感器被配置为检测关于车辆操作于其中的环境的信息。车辆及其相关联的控制器使用检测的信息导航通过环境。自主车辆101可以以手动模式、全自主模式或部分自主模式操作。

在一个实施例中,自主车辆101包括但不限于感知和规划系统110、车辆控制系统111、无线通信系统112、用户接口系统113、信息娱乐系统114和传感器系统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,机器学习引擎122出于各种目的而生成或训练一组规则、算法和/或预测模型124。在一个实施例中,算法124可包括与各种类型的车辆相关联的速度曲线,其表示车辆的怠速行为。然后,算法124可以被上传到adv上以在自主驾驶期间实时地被使用。

图3a和3b是示出根据一个实施例的与自主车辆一起使用的感知和规划系统的示例的框图。系统300可以被实现为图1的自主车辆101的部分,包括但不限于感知和规划系统110、控制系统111和传感器系统115。参考图3a-图3b,感知和规划系统110包括但不限于定位模块301、感知模块302、预测模块303、决策模块304、规划模块305、控制模块306和路由模块307。

模块301-307中的一些或全部可以以软件、硬件或其组合实现。例如,这些模块可被安装在永久存储设备352中,被加载到存储器351中,并且由一个或多个处理器(未示出)执行。注意,这些模块中的一些或全部可以通信地耦接到图2的车辆控制系统111的一些或全部模块或与图2的车辆控制系统111的一些或全部模块集成。模块301-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中。

路由模块307被配置为提供从起点到目的地点的一条或多条路线或路径。对于例如从用户接收到的从起始位置到目的地位置的给定行程,路由模块307获得路线和地图信息311并且确定从起始位置用以到达目的地位置的所有可能的路线或路径。路由模块307可以为其确定的从起始位置用以到达目的地位置的每条路线生成地形图形式的参考线。参考线是指没有来自诸如其他车辆、障碍物或交通状况的其他因素的任何干扰的理想路线或路径。也就是说,如果在道路上没有其他车辆、行人或障碍物,则adv应该精确地或紧密地跟随参考线。然后,地形图被提供给决策模块304和/或规划模块305。决策模块304和/或规划模块305检查所有可能的路线,以根据由其他模块提供的其他数据(诸如来自定位模块301的交通状况、由感知模块302感知的驾驶环境和由预测模块303预测的交通状况)选择和修改最优路线中的一个。取决于在时间点处的特定驾驶环境,用于控制adv的实际路径或路线可以接近或不同于由路由模块307提供的参考线。

基于对感知的每个对象的决策,规划模块305使用由路由模块307提供的参考线作为基础,规划用于自主车辆的路径或路线以及驾驶参数(例如,距离、速度和/或转弯角度)。也就是说,对于给定对象,决策模块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系统的数据和一个或多个地图,以便确定用于自主车辆的驾驶路径。

图4是示出根据一个实施例的决策和规划系统的示例的框图。系统400可以被实现为图3a-图3b的自主驾驶系统300的部分,诸如,例如规划模块305和/或控制模块306,以执行路径规划和速度规划操作。参考图4,决策和规划系统400(也称为规划和控制或pnc系统或模块)包括路由模块307、定位/感知数据401、路径决策模块403、速度决策模块405、路径规划模块407、速度规划模块409、聚合器411和轨迹计算器413,等等。

路径决策模块403和速度决策模块405可以被实现为决策模块304的部分。在一个实施例中,路径决策模块403可包括路径状态机、一个或多个路径交通规则和测点-横向(station-lateral)地图生成器。路径决策模块403可以使用动态编程生成粗略路径曲线作为用于路径/速度规划模块407和409的初始约束。

在一个实施例中,路径状态机包括至少三个状态:巡航状态、改变车道状态和/或空闲状态。路径状态机提供先前的规划结果和重要信息,诸如adv是巡航还是改变车道。路径交通规则可以是图3a的驾驶/交通规则312的部分,路径交通规则包括可以影响路径决策模块的结果的交通规则。例如,路径交通规则可包括交通信息,诸如adv附近的施工交通标志,可以避开具有这种施工标志的车道。根据状态、交通规则、由路线选择模块307提供的参考线以及由adv的感知模块302感知的障碍,路径决策模块403可以决策如何处理感知的障碍(即,忽略、超过、让路、停止、通过),作为粗略路径曲线的部分。

例如,在一个实施例中,粗略路径曲线由成本函数生成,成本函数由基于以下的成本构成:路径的曲率和从参考线和/或参考点到障碍物的距离。选择参考线上的点,并将其移动到参考线的左侧或右侧,作为表示路径候选的候选移动。候选移动中的每个具有相关联的成本。可以使用动态编程求解用于参考线上一个或多个点的候选移动的相关联的成本,用于一次一个点地顺序地获得最优成本。

在一个实施例中,测点-横向(sl)地图生成器(未示出)生成sl地图作为粗略路径曲线的部分。sl地图是包括由adv感知的障碍物信息的二维几何地图(类似于x-y坐标平面)。根据sl地图,路径决策模块403可布置遵循障碍物决策的adv路径。动态编程(也称为动态优化)是一种数学优化方法,其将待求解的问题分解为一系列值函数,仅对这些值函数中的每个求解一次,并存储它们的解。下一次出现相同的值函数时,简单地查找先前计算的解,节省了计算时间,而不是重新计算其解。

速度决策模块405或速度决策模块包括速度状态机、速度交通规则和测点-时间(station-time)图生成器(未示出)。速度决策过程405或速度决策模块可以使用动态编程生成粗略速度曲线作为用于路径/速度规划模块407和409的初始约束。在一个实施例中,速度状态机包括至少两个状态:加速状态和/或减速状态。速度交通规则可以是图3a的驾驶/交通规则312的部分,速度交通规则包括可影响速度决策模块的结果的交通规则。例如,速度交通规则可包括交通信息,诸如红/绿交通灯、交叉路线中的另一车辆等。根据速度状态机的状态、速度交通规则、由决策模块403生成的粗略路径曲线/sl地图以及感知的障碍物,速度决策模块405可生成粗略速度曲线以控制何时加速和/或减速adv。sl图生成器可以生成作为粗略速度曲线的部分的测点-时间(st)图。

在一个实施例中,路径规划模块407包括一个或多个sl地图、几何平滑器和路径成本模块(未示出)。sl地图可包括由路径决策模块403的sl地图生成器生成的测点-横向地图。路径规划模块407可以使用粗略路径曲线(例如,测点-横向地图)作为初始约束,以使用二次编程重新计算最优参考线。二次编程(qp)涉及最小化或最大化受制于边界、线性等式和不等式约束的目标函数(例如,具有若干变量的二次函数)。

动态编程与二次编程之间的一个差异在于二次编程一次优化用于参考线上所有点的所有候选移动。几何平滑器可以对输出测点-横向地图应用平滑算法(诸如b样条或回归)。路径成本模块可以使用路径成本函数重新计算参考线,以例如使用由qp模块(未示出)执行的qp优化,优化参考点的用于候选移动的总成本。例如,在一个实施例中,总路径成本函数可以被定义如下:

pathcost=∑points(heading)2+∑points(curvature)2+∑points(distance)2,

其中,pathcost是对参考线上的所有点进行求和,heading表示点相对于参考线之间的径向角(例如,方向)的差,curvature表示由这些点形成的曲线相对于该点的参考线的曲率之间的差,以及distance表示从点到参考线的横向(垂直于参考线的方向)距离。在一些实施例中,distance表示从点到目的地位置或参考线的中间点的距离。在另一实施例中,曲率成本是在相邻点处形成的曲线的曲率值之间的改变。注意,参考线上的点可以被选择为与相邻点具有相等距离的点。基于路径成本,路径成本模块可通过使用二次编程优化最小化路径成本而重新计算参考线,例如通过qp模块。

速度规划模块409包括测点-时间图、序列平滑器和速度成本模块。测点-时间图可包括由速度决策模块405的st图生成器生成的st图。速度规划模块409可以使用粗略速度曲线(例如,测点-时间图)和来自路径规划模块407的结果作为初始约束以计算最优测点-时间曲线。序列平滑器可以将平滑算法(诸如b样条或回归)应用于点的时间序列。速度成本模块可以使用速度成本函数重新计算st图,速度成本函数用以优化在不同的时间点处的用于移动候选(例如,加速/减速)的总成本。

例如,在一个实施例中,总速度成本函数可以是:

speedcost=∑points(speed′)2+∑points(speed″)2+(distance)2,

其中,speedcost是在所有时间进程点上进行求和,speed’表示加速度值或在两个相邻点之间改变速度的成本,speed”表示跳动值,或加速度值的导数或在两个相邻点之间改变速度的成本,以及distance表示从st点到目的地位置的距离。这里,速度成本模块通过使用二次编程优化最小化速度成本计算测点-时间图,例如通过qp模块。

聚合器411执行聚合路径和速度规划结果的功能。例如,在一个实施例中,聚合器411可以将二维st图和sl地图组合成三维slt图。在另一实施例中,聚合器411可以基于sl参考线或st曲线上的两个连续点进行内插(或填充额外的点)。在另一实施例中,聚合器411可将参考点从(s,l)坐标平移到(x,y)坐标。轨迹生成器413可以计算最终轨迹以控制adv510。例如,基于由聚合器411提供的slt图,轨迹生成器413计算(x,y,t)点的列表,其指示adc在什么时间应当经过特别的(x,y)坐标。

因此,路径决策模块403和速度决策模块405被配置为考虑障碍物和/或交通状况而生成粗略路径曲线和粗略速度曲线。给定关于障碍物的所有路径和速度决策,路径规划模块407和速度规划模块409将使用qp编程根据障碍物优化粗略路径曲线和粗略速度曲线,以生成具有最小路径成本和/或速度成本的最优轨迹。

图5是示出根据一个实施例的测点-横向地图的框图。参考图5,sl地图500具有s水平轴或测点,以及l垂直轴或侧面。如上所述,测点-横向坐标是参考参考线上的特别固定点并遵循参考线的相对的几何坐标系。例如,(s,l)=(1,0)坐标可以表示在参考线上的固定点(即,参考点)前面一米,且零米的横向偏移。(s,l)=(2,1)参考点可以表示沿着参考线在固定参考点之前两米,并且与参考线的一米垂直横向偏移,例如,左偏移。

参考图5,sl地图500包括参考线501和adv510感知的障碍物503-509。在一个实施例中,adv510的radar或lidar单元可以在不同的坐标系中感知障碍物503-509,并将其平移到sl坐标系。在另一实施例中,障碍物503-509可以是作为约束的人工形成的屏障,因此决策和规划模块将不在受约束的几何空间中搜索。在该示例中,路径决策模块可为障碍物503-509中的每个生成决策,诸如避开障碍物503-508和轻推(非常接近)障碍物509(即,这些障碍可以是其他汽车、建筑物和/或结构)的决策。然后,路径规划模块可以使用qp编程根据障碍物503-509基于路径成本重新计算或优化参考线501,以如上所述的最小总成本微调参考线501。在该示例中,adv从障碍509的左侧轻推或接近障碍509非常近。

图6a和图6b是示出根据一些实施例的测点-时间图的框图。参考图6a,st图600具有测点(或s)垂直轴和时间(或t)水平轴。st图600包括曲线601和障碍物603-607。如上所述,测点-时间图上的曲线601指示adv在什么时间以及离开测点多远。例如,(t,s)=(10000,150)可以表示在10000毫秒内,adv将距离固定点(即,参考点)150米。在该示例中,障碍物603可以是待避开的建筑物/结构,以及障碍物607可以是与超过移动车辆的决策对应的人工屏障。

参考图6b,在这种情况下,人工栅栏605被添加到st图610作为约束。人工屏障可以是在路径中的红灯或行人的示例,其与测定参考点的距离为大约s2,如adv所感知的。屏障705对应于“停止”adv直到稍后移除人工屏障(即,交通灯从红色变为绿色,或者行人不再处于路径中)的决策。

路径规划和速度规划场景中的一个是规划怠速驾驶场景。如上所述,由于怠速场景的性质,自主驾驶系统难以通过在一段时间内发出油门命令和制动命令规划路径曲线和速度曲线以模拟怠速驾驶场景。在感知的怠速情况下,如果车辆由人驾驶,则不应发出油门或制动命令。然而,在自主驾驶期间,对于每个驾驶循环,控制模块306将根据规划模块305提供的规划和控制信息发出控制命令,这是困难的。

返回参考图3a,根据一个实施例,怠速规划模块308被配置为执行用于怠速驾驶场景的路径规划和速度规划。怠速规划模块308可以被实现为规划模块305和/或控制模块306的部分,或者可替换地,图4的规划和控制系统400的部分。在一个实施例中,怠速规划模块308包括但不限于如图7所示的速度准则生成器701和怠速优化器702。

根据一个实施例,例如由感知模块302和/或定位模块303基于从多种传感器(例如,gps、imu)获得的传感器数据感知驾驶环境,包括确定adv的当前速度。响应于以怠速驾驶的请求,速度准则生成器701基于怠速曲线并根据adv的当前速度生成速度准则。怠速优化器702执行速度规划操作,包括基于速度准则优化成本函数,以确定沿着被规划为驾驶adv的轨迹在不同时间点处的轨迹点的速度。然后,生成一个或多个控制命令以沿着规划的轨迹以规划的速度控制adv,使得adv根据预期的怠速移动。

在一个实施例中,例如,由诸如服务器103的数据分析系统基于在与adv类似的大量车辆以怠速驾驶时从这些车辆收集的驾驶统计数据生成怠速曲线。速度曲线表示在不应用油门命令或制动命令的情况下车辆从零到相对恒定的速度的速度变化。当生成速度准则时,从速度曲线中提取速度曲线的从adv的当前速度到由速度曲线表示的目标怠速的部分,其中速度曲线的提取的部分被用于速度规划操作。在速度规划操作期间,使用速度曲线的提取的部分作为速度参考线以使用速度成本函数生成速度成本。

在一个实施例中,响应于确定adv的当前速度低于预定速度阈值(例如,与adv相关联的目标怠速)执行怠速规划操作。速度曲线是基于从多种车辆收集的驾驶统计而生成的许多速度曲线中的一个。速度曲线中的每个与不同类型或型号的车辆中的一个相关联。

图8示出根据一个实施例的表示车辆的怠速行为的速度曲线的示例。速度曲线800表示在与特别的类型或型号的车辆相关联的怠速驾驶场景下车辆速度的改变或行为。速度曲线800可以基于从相同或相似类型或型号的大量车辆收集的大量驾驶统计数据离线生成。根据一个实施例,响应于adv的当前速度801,在速度曲线800上执行查找操作。在该示例中,基于当前速度801,从速度曲线800中识别并提取部分802。部分802表示从当前速度到目标速度803的速度曲线。如上所述,对于怠速驾驶场景,部分802可以用作用于速度规划或速度优化的怠速准则或怠速参考线。例如,可以使用诸如如上所述的速度成本函数的速度成本函数,基于速度曲线和怠速准则802之间的差确定速度成本。当差较大时,速度成本较高,反之亦然。由于怠速曲线是基于大量车辆的人类驾驶员的驾驶行为而生成的,因此用于怠速驾驶场景的速度规划可以接近于人类驾驶体验或类似的舒适度水平。

图9是示出根据一个实施例的用于怠速规划的过程的示例的流程图。过程900可以由处理逻辑执行,处理逻辑可包括软件、硬件或其组合。例如,过程900可以通过由图3a-图3b的自主驾驶系统300执行。参考图9,在框901处,处理逻辑基于从多个传感器获得的传感器数据感知adv周围的驾驶环境,包括确定adv的当前速度。在框902处,响应于以怠速驾驶的请求,处理逻辑基于怠速曲线并根据adv的当前速度生成速度准则。在一个实施例中,检索与adv的类型或型号相关联的怠速曲线,以及基于adv的当前速度,从怠速曲线中提取怠速曲线的部分。在框903处,处理逻辑通过基于速度准则优化成本函数执行速度规划操作,以确定沿着被规划为驾驶adv的轨迹的多个轨迹点的速度。在框904处,处理逻辑生成多个控制命令以沿着轨迹以规划的速度控制adv,使得adv根据预期的怠速移动。

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

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

然而,应当记住的是,所有这些和类似的术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便的标记。除非特别声明,否则从以上讨论中显而易见的是,应当理解的是,在整个说明书中,使用诸如所附权利要求书中所阐述的术语的讨论指的是计算机系统或类似电子计算设备的动作和过程,所述计算机系统或类似电子计算设备将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操纵和变换成计算机系统存储器或寄存器或其他这样的信息存储、传输或显示设备内的类似地表示为物理量的其他数据。

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

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

本公开的实施例不是参考任何特别编程语言描述的。将了解,可使用各种编程语言实施如本文所述的本公开的实施例的教示。

在前述说明书中,已经参考本公开的具体示例性实施例描述了本公开的实施例。显然,在不背离如所附权利要求书中所阐述的本公开的更宽的精神和范围的情况下,可以对其进行各种修改。因此,说明书和附图应被认为是说明性的而不是限制性的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1