无人驾驶中的决策规划控制技术

作者: 李力耘,刘少山
责编:何永灿,欢迎人工智能领域技术投稿、约稿、给文章纠错,请发送邮件至[email protected]
本文为《程序员》原创文章,未经允许不得转载,更多精彩文章请订阅《程序员》

无人车作为一个复杂软硬件结合系统,其安全可靠运行需要车载硬件、传感器集成、感知预测,以及控制规划等多个模块的协同配合工作。作者认为最关键的部分是感知预测和决策控制规划的紧密配合。狭义上的决策规划控制部分,包含了无人车行为决策(Behavior Decision)、动作规划(Motion Planning), 以及反馈控制(Feedback Control)这三个模块。而从更宽泛的概念来说,无人车的决策规划控制模块,紧密依赖于上游的路由寻径(Routing)以及交通预测(Prediction)的计算结果,所以本文也对路由寻径和交通预测模块进行介绍。

系统框架和模块划分

图1展示了一种无人车软件系统的典型功能模块划分。其中感知(Perception)模块负责从传感器数据中探测计算出周边环境的物体及其属性。这些物体信息经过预测模块的计算,生成预测轨迹传递给决策规划控制系统中的行为决策模块。决策规划控制系统的另一个上游模块是路由寻径模块,其作用在简单意义上可以理解为无人车软件系统内部的导航,即在宏观层面上指导无人车软件系统的控制规划模块按照什么样的道路行驶从而实现从起始点到目的地点。值得注意的是这里的路由寻径虽然在一定程度上类似传统的导航,但其细节上紧密依赖于专门为无人车导航绘制的高精度地图,所以和传统的导航还是有本质的不同。一般来说,路由寻径会作为单独的模块来进行实现,而交通预测部分,则既可以做为感知模块的业务延伸,也可以看成是决策规划控制模块的外围模块而单独进行实现。

图片描述

图1 无人车软件系统模块

决策规划控制(Decision,Planning & Control)系统的任务,就是在对感知到的周边物体的预测轨迹的基础上,结合无人车的路由意图和当前位置,对车辆做出最合理的决策和控制。整个决策规划控制软件系统,可以按照解决问题的不同层面,如图1所示自上而下划分为行为决策(Behavioral Decision)、动作规划(MotionPlanning),以及反馈控制(Feedback Control)这三个模块。

其中行为决策模块(Decision),可以直观理解成无人车的“副驾驶”。行为决策接受路由寻径的结果,同时也接收感知预测和地图信息。综合这些输入信息,行为决策模块在宏观上决定了无人车如何行使。宏观层面的决策包括在道路上的正常跟车,在遇到交通灯和行人时的等待避让,以及在路口和其他车辆的交互通过等。例如,在路由寻径要求无人车保持当前车道(Lane)行驶,感知发现前方有一辆正常行驶的车辆,行为决策的决定便很可能是跟车行为。 动作规划模块,在图1的划分中,解决的是具体的无人车动作(Motion)的规划问题。其功能可以理解为,在一个较小的时空区域内,具体解决无人车从A点到B点如何行驶的问题。动作规划模块在这里解决的问题,相对行为决策,又更加具体了一步。动作规划需要具体把一个短暂时间t内从A到B的中间路径点做出规划,包括选择途经哪些具体的路径点,以及到达每个路径点时,无人车的速度,朝向,加速度等。不仅如此,动作规划还需要保证两点:一是在后续时间内,生成从A到B的时空路径需要保持一定的一致性;二是,这些生成的A到B之间的路径点,包括到达每个点的速度朝向加速度等,都在下游的反馈控制的实际可操作的物理范围之内。决策规划控制系统最下层的模块是反馈控制模块。这是一个直接和无人车底层控制接口CAN-BUS对接的模块。其核心任务是消化上层动作规划模块的输出轨迹点,通过一系列结合车身属性和外界物理因素的动力学计算,转换成对车辆Drive-By-Wire控制的油门,刹车,以及方向盘信号,从而尽可能地控制车去实际执行这些轨迹点。反馈控制模块主要涉及对车辆自身控制,以及和外界物理环境交互的建模。

上述模块的划分方法,非常有效地将无人车决策控制规划这样一个复杂问题,按照计算逻辑从抽象到具体的做出了非常合理的切分。这样的划分使得每个模块可以各司其职专注解决本层次的问题,从而提升了整个复杂软件系统的开发效率。

预测模块(Prediction)

作为决策规划控制模块的直接数据上游之一,预测模块的作用是对感知所探测到的物体进行行为预测,并且将预测的结果具体化为时间空间维度的轨迹传递给下游模块。一般而言,感知模块所输出的物体信息包括位置,速度,朝向以及物体分类(如车辆,行人,自行车)等物理属性。这些感知所计算输出的物体属性偏向于客观的物理属性。利用这些输出的属性,结合客观的物理规律,可以对物体做出一个在非常短时间内的“瞬时预测”。预测模块所需要解决的问题,不仅仅局限于结合物理规律对物体做出预测,往往更重要的是结合物体和周边环境,以及积累的历史数据知识,对感知到的物体做出更为宏观的行为预测。例如在图2中,行为预测需要在宏观层面预测图中的车辆是否会保持直行还是右转通过路口。

图片描述

图2 无人车周边物体行为预测

行为预测的轨迹,既包括了障碍物在将来一段时间内运动的方向,还体现了它们在运动中的速度变化。譬如行人过马路的时候会预测他们使用较为恒定的步行速度,车辆转弯的时候会先减速后加速,而加减速的快慢也取决于弯道的弧度和长短。实际的无人车系统中,往往将宏观层面的行为预测和轨迹生成抽象成两个问题来解决。

宏观层面的行为预测问题,往往可以抽象成经典的机器学习问题,并且利用基于大数据的深度学习技术来解决。例如, 在假设车辆按照高精地图划分的道路(Lane)行驶的前提下,我们可以认为在任何一个时刻,车辆可行驶的每一个Lane序列都是一个需要进binary classification的样本。在这个假设下,我们不需要对直行、并道、路口拐弯等场景进行区分处理,因为无论是直行、并道,和路口拐弯,都可以统一看成是车辆在不同Lane序列上的行驶。车辆的宏观行为预测问题,变简化为对于Lane序列的Binary Classification问题。

图片描述

图3 无人车行为预测中的Lane序列Binary Classification抽象

如图3所示,在t时刻,无人车主车位于Lane 1,此时按照Lane序列的可能展开途径,我们考虑三条轨迹:

  • Trajectory 1: Lane 1、Lane 2、Lane 3对应路口右转;
  • Trajectory 2:Lane 1、Lane 6、Lane 8对应路口直行;
  • Trajectory 3:Lane 1、Lane 4、Lane 5、Lane7对应换道后直行通过路口。

假设在t+w时刻,无人车经过Lane 6行驶到Lane8的位置,那么轨迹Trajectory 2便成为该Binary Classification的正样本,其余两条轨迹便成为负样本。在这种基于Lane序列的问题抽象下,所有的正负样本可以从历史数据的回放中获得,并成为模型训练的样本数据。另一方面,模型的特征抽取可以结合一定时间内的如下信息来设计:

  • 车辆本身的物理信息:速度、朝向等;
  • 车辆相对于道路的信息:在Lane上的横向/纵向位移和速度,相对Lane边界的距离等;
  • 车辆周边的其他物体的信息:车辆周围例如左右相邻Lane是否有障碍物等。

在上述的样本标签定义和特征抽取下,无人车Prediction部分的宏观行为预测可以很好的抽象成典型的机器学习问题来解决。在预测得出的宏观行为基础上,相关的轨迹生成和速度预测可以通过特定的规则或者物理模型来实现。

路由寻径(Routing)

无人车路径规划的Routing寻径问题,虽然也是要解决从A点到B点的路由问题,但由于其输出结果并不是为实际的驾驶员所使用,而是给下游的行为决策(Decision)和动作规划(Planning)等模块作为输入,其路径规划的层次要更加深入到无人车所使用的高精地图的车道(Lane)级别。如图4所示,其中的箭头线段代表高精地图级别的道路划分和方向。lane1,lane2,………,lane8构成了一条Routing输出的路由片段序列。可以看到,无人车地图级别的Lane划分并非和实际的自然道路划分对应。比如lane2,lane5,lane7都代表了由地图定义绘制的“虚拟”转向Lane。类似的,一条较长的自然道路,也可能被划分为若干个lane(例如lane3,lane4 )。

做为整体无人车决策控制规划(Decision,Planning & Control)系统的最上游模块,路由寻径模块的输出严格依赖于无人车高精地图(HD-Map)的绘制。在高精地图定义绘制的路网(Road Graph)的道路(Lane)划分的基础上,以及在一定的最优策略定义下,路由寻径模块需要解决的问题是计算出一个从起点到终点的最佳道路(Lane)行驶序列:{(lane,start_posotion,end_position)i},其中,(lane,start_posotion,end_position)i我们称作一个Routing Segment(路由片段),所在的道路由lane来标识,start_posotion,end_position分别代表在这条道路上的起始纵向距离和结束纵向距离。

图片描述

图4 无人车路由寻径模块(Routing)的高精地图道路(Lane)级别寻径路由

图片描述

图5 无人车寻径(Routing)基于Lane Point的有向带权图上的最短路径问题抽象

我们可以把无人车在高精地图的Lane级别寻径问题,抽象成一个在带权有向图上的最短路径搜索问题(如图5所示)。路由寻径(Routing)模块首先会基于Lane级别的高精度地图,在一定范围内所有可能经过的Lane上进行分散“撒点”,我们称这些点为“Lane Point”。这些点代表了对无人车可能经过的Lane上的位置的抽样。这些点与点之间,由有向带权的边进行连接。Lane Point之间连接的权,代表了无人车从一个点行驶到另一个点的潜在代价(Cost)。在这样的有向带权图的问题抽象下,路由寻径问题可以利用常见的A*算法或者Dijkstra算法来进行实现。

行为决策(Behavioral Decision)

行为决策(Behavior Decision)层在整个无人车决策规划控制软件系统中扮演着“副驾驶”的角色。这个层面汇集了所有重要的车辆周边信息,不仅包括了无人车本身的当前位置、速度、朝向以及所处车道,还收集了无人车一定距离以内所有重要的感知相关的障碍物信息以及预测轨迹。行为决策层需要解决的问题,就是在知晓这些信息的基础上,决定无人车的行驶策略。这些信息具体包括:

所有的路由寻径结果:比如无人车为了达到目的地,需要进入的车道是什么(target lane)。

  • 无人车的当前自身状态:车的位置速度朝向,以及当前主车所在的车道。
  • 无人车的历史信息:在上一个行为决策(Behavioral Decision)周期,无人车所做出的决策是什么?是跟车,停车,转弯或者是换道?
  • 无人车周边的障碍物信息:无人车周边一定距离范围内的所有障碍物信息。例如周边的车辆所在的车道,邻近的路口有哪些车辆,它们的速度位置如何?以及在一个较短的时间内它们的意图和预测的轨迹。周边是否有自行车或者行人,以及他们的位置速度轨迹等;
  • 无人车周边的交通标识信息:一定范围内的Lane的变化情况。比如路由寻径的结果是在Lane1的纵向位移10m处换道进入对应的相邻Lane2的纵向位移20m处,那么Lane 1的合法的纵向位移换道空间是多大ÿ
  • 34
    点赞
  • 265
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
百度无人驾驶汽车类应用技术专利资料150个合集(文): CN105956527A-用于无人驾驶车的障碍物检测结果评估方法和装置-公开.PDF CN105973245A-利用无人驾驶车辆更新在线地图的方法和装置-公开.PDF CN105974912A-无人驾驶车辆的告警方法和装置-公开.PDF CN105976450A-无人驾驶车辆的数据处理方法和装置、黑匣子系统-公开.PDF CN106020203A-用于控制无人驾驶车辆的方法及装置-公开.PDF CN106043222B-无人驾驶车辆防盗系统-授权.PDF CN106052702A-车辆导航方法和装置-公开.PDF CN106080590B-车辆控制方法和装置以及决策模型的获取方法和装置-授权.PDF CN106080606A-用于控制无人驾驶车辆的方法和装置-公开.PDF CN106094830A-用于控制无人驾驶车辆的方法和装置-公开.PDF CN106096192A-一种无人驾驶车辆的测试场景的构建方法和装置-公开.PDF CN106154834A-用于控制无人驾驶车辆的方法和装置-公开.PDF CN106155055A-用于无人驾驶车辆的预警方法和装置-公开.PDF CN106200467A-用于控制无人驾驶车辆的方法和装置-公开.PDF CN106200631A-自动驾驶控制装置及自动驾驶控制方法-公开.PDF CN106202606A-一种模拟智能体的特征信息获取方法和装置-公开.PDF CN106218632A-用于控制无人驾驶车辆的方法和装置-公开.PDF CN106218639A-无人驾驶车辆、用于控制无人驾驶车辆的方法和装置-公开.PDF CN106227204A-车载装置及用于控制无人驾驶车辆的系统、方法和装置-公开.PDF CN106228233A-一种用于无人驾驶车辆测试的智能体的构建方法和装置-公开.PDF CN106228635A-用于无人驾驶车辆的信息处理方法及装置-公开.PDF CN106250387A-一种用于无人驾驶车辆测试的高精地图的编辑方法和装置-公开.PDF CN106256643A-自动驾驶装置和车辆控制装置-公开.PDF CN106289797A-用于测试无人驾驶车辆的方法和装置-公开.PDF CN106407947A-用于无人驾驶车辆的目标物体识别方法和装置-公开.PDF CN106485340A-自动驾驶车辆的派遣系统-公开.PDF CN106515578A-无人车驾驶状态的识别装置、识别方法及无人车-公开.PDF CN106515710B-车辆的自动驾驶控制装置-授权.PDF CN106553644A-自动驾驶设备和自动驾驶系统-公开.PDF CN106585544A-无人驾驶车辆落水后的紧急救助方法、装置和系统-公开.PDF CN106652645A-车辆驾驶训练设备、车辆驾驶训练设备的操作方法和装置-公开.PDF CN106710028A-用于测试无人驾驶车辆的唤醒耗时的方法和装置-公开.PDF CN106740853A-一种无人驾驶车辆的驾驶模式切换控制方法和装置-公开.PDF CN106769080A-用于测量无人驾驶车辆的行驶精度的方法和装置-公开.PDF CN106774289A-一种无人驾驶车辆的驾驶模式切换方法和装置-公开.PDF CN106774306B-应用于无人驾驶车辆的启动检测方法、装置和系统-授权.PDF CN106951847A-障碍物检测方法、装置、设备及存储介质-公开.PDF CN106953904A-自动驾驶车辆的数据传输方法、装置、设备及存储介质-公开.PDF CN106959918A-用于评测机器人操作系统的操作的方法和装置-公开.PDF CN106969763A-用于确定无人驾驶车辆的偏航角的方法和装置-公开.PDF CN106994958A-无人车安保控制方法及装置-公开.PDF CN107063713A-应用于无人驾驶汽车的测试方法和装置-公开.PDF CN107111933A-自动驾驶系统-公开.PDF CN107123175A-一种记录驾驶信息的方法、装置和系统-公开.PDF CN107150691A-无人驾驶车辆特技表演方法、装置、设备及存储介质-公开.PDF CN107153363A-无人驾驶汽车的仿真测试方法及装置、设备与可读介质-公开.PDF CN107167323A-无人驾驶汽车的场地测试方法及系统、设备与可读介质-公开.PDF CN107187420A-无人驾驶汽车及其启动方法、计算机可读介质-公开.PDF CN107194248A-无人驾驶车辆的反黑客劫持方法、装置、设备及存储介质-公开.PDF CN107218941A-应用于无人驾驶汽车的测试方法和装置
对于无人驾驶车辆模型的预测控制配套实验,可以考虑以下步骤: 1. 数据收集:使用传感器(如摄像头、激光雷达、惯性测量单元等)装备无人驾驶车辆,并记录车辆在不同场景和驾驶条件下的数据。这些数据可以包括图像、点云、车辆状态等信息。 2. 数据预处理:对收集到的数据进行预处理,包括数据清洗、去噪、标定等操作。这一步骤的目的是保证数据的准确性和一致性。 3. 特征提取:从预处理后的数据提取有用的特征。可以使用计算机视觉和机器学习等技术,提取图像的物体、道路信息,或者从点云数据提取车辆周围环境的几何结构等。 4. 模型训练:根据特征提取的结果,构建合适的模型用于预测无人驾驶车辆的控制指令。可以选择机器学习方法如神经网络、决策树等,或者采用传统的控制方法如PID控制等。 5. 实验设计:设计实验来验证模型的性能和鲁棒性。可以使用真实的无人驾驶车辆进行实验,或者使用仿真环境来进行模拟实验。 6. 实验执行:根据设计的实验方案,执行实验并记录实验数据。可以通过对比实际控制指令和模型预测的控制指令来评估模型的准确性和性能。 7. 实验分析:对实验数据进行分析,评估模型的预测精度、鲁棒性以及对不同场景和驾驶条件的适应性。 8. 结果总结:根据实验分析的结果,总结模型的优点和缺点,并提出改进措施。可以进一步优化模型或者调整实验设计来提高预测控制的效果。 请注意,以上步骤仅为一种常见的实验流程,具体的实验设计和方法选择可以根据具体问题和需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值