查看: 708|回复: 5

自动驾驶运动规划(Motion Planning)

[复制链接]

41

主题

822

帖子

1638

积分

金牌飞友

Rank: 6Rank: 6

积分
1638
飞币
799
注册时间
2017-8-24
发表于 2022-10-25 22:36:53 | 显示全部楼层 |阅读模式
1.什么是Motion Planning

Motion Planning是在遵循道路交通规则的前提下,将自动驾驶车辆从当前位置导航到目的地的一种方法。
在实际开放道理场景下,自动驾驶要处理的场景非常繁杂:空旷的道路场景、与行人、障碍物共用道理的场景、空旷的十字路口、繁忙的十字路口、违反交通规则的行人/车辆、正常行驶的车辆/行人等等。场景虽然复杂,但都可以拆解为一系列简单行为(behavior)的组合:

自动驾驶运动规划(Motion Planning)-1.jpg
将这些简单的行为(behavior)组合起来,就可以完成复杂的驾驶行为。
2、Motion Planning的约束条件(constraints)

Motion Planning是一个复杂的问题,它的执行过程需要满足很多约束条件:
2.1 车辆运动学约束

车辆运动受到运动学约束,比如它不能实现瞬时侧向移动,前驱的车辆必须依赖前轮的转向才能实现变道、转向等操作,在弯道上不能速度过快等等。通常我们采用单车模型(Bicycle Model)对车辆运动进行建模。

自动驾驶运动规划(Motion Planning)-2.jpg
2.2 静态障碍物(Static Obstacle)约束

静态障碍物(Static Obstacle)是道路上静止的车辆、路面中间的石墩子等车辆不可行驶的区域。Motion Planning需要避开这些静态障碍物,避免与它们发生碰撞。解决碰撞的思路大概有两种:
1)将静态障碍物(Static Obstacle)在网格占位图中表示出来,然后检测规划路线是否与静态障碍物区域相交。
2)将车辆的轮廓扩大,比如扩展成一个圆形,然后检测障碍物是否与Circle发生碰撞。

自动驾驶运动规划(Motion Planning)-3.jpg
2.3 动态障碍物约束

Motion Planning要实时处理行人、车辆等各种运动的障碍物,避免与障碍物发生碰撞事故。

自动驾驶运动规划(Motion Planning)-4.jpg
2.4 道路交通规则约束

车辆在道路上行驶必须要遵守车道线约束规则(比如左转专用道只能左转、实线不能变道、路口必须遵守红绿灯的指示)和各种标志标牌的指示。

自动驾驶运动规划(Motion Planning)-5.jpg
3、Motion Planning的优化目标

了解Motion Planning的约束条件之后,需要构造目标优化函数,然后最小化目标函数,从而获得在当前环境下的最优运动轨迹。目标函数的种类有很多,下面枚举一些常用的目标函数。
1)关注路径长度(Path Length),寻求到达目的地的最短路径。
s_f = \int^{s_f}_{s_i}{\sqrt{1+ (\frac{dy}{dx})^2}dx}
2)关注通行时间(Travel Time),寻求到达目的地的最短时间。
T_f = \int^{s_f}_{0} {\frac{1}{v(s)}ds}
3)惩罚偏离参考轨迹和参考速度的行为。
\int^{s_f}_{0} {||x(s) - x_{ref}(s)||ds}
\int^{s_f}_{0} {||v(s) - v_{ref}(s)||ds}
4)考虑轨迹平滑性(Smoothness)
\int^{s_f}_{0} {||\dddot{x}(s)||^2ds}
5)考虑曲率约束(Curvature)
\int^{s_f}_{0} {||k(s)||^2ds}
通过组合设计自己的目标优化函数,从而获得较好的Planning效果。
4、分级运动规划器(Hierarchical Motion Planning)


自动驾驶运动规划(Motion Planning)-6.jpg
Motion Planning是一个异常复杂的问题,所以通常我们把它切分为一系列的子问题(Sub Problem)。比如Mission Planner、Behavior Planner、Local Planner、Vehicle Control等。

自动驾驶运动规划(Motion Planning)-7.jpg

4.1 Mission Planner

Mission Planner关注High-Level的地图级别的规划;通过Graph Based的图搜索算法实现自动驾驶路径的规划。

自动驾驶运动规划(Motion Planning)-8.jpg
4.2 Behavior Planner

Behavior Planner主要关注交通规则、其它道路交通参与者(自行车、行人、社会车辆)等等,决定在在当前场景下应该采取何种操作(如停车让行、加速通过、避让行人等等)。

自动驾驶运动规划(Motion Planning)-9.jpg
Behavior Planner的实现方式比较常见的有几种:有限状态机(Finite State Machines)、规则匹配系统(Rule Based System)、强化学习系统(Reinforcement Learning)。
有限状态机中的State是各个行为决策,根据对外界环境的感知和交通规则的约束在各个状态之间转换。比如在路口红绿灯的场景,当路口交通灯为红色不可通行时,车辆会首先切换到Decelerate to Stop状态,然后在路口停止线完全停下来,进入Stop状态,并持续在Stop状态等待,直至交通灯变为绿色允许车辆通行,车辆进入Track Speed状态,继续前行。

自动驾驶运动规划(Motion Planning)-10.jpg
Rule-Based System是通过一系列的分级的规则匹配来决定下一步的决策行为。比如交通灯绿色->通行;交通灯红色->停车等待。

自动驾驶运动规划(Motion Planning)-11.jpg
基于强化学习的Behavior Planner系统如下:

自动驾驶运动规划(Motion Planning)-12.jpg
4.3 Local Planner

Local Planner关注如何生成舒适的、碰撞避免的行驶路径和舒适的运动速度,所以Local Planner又可以拆分为两个子问题:Path Planner和Velocity Profile Generation。Path Planner又分为Sampling-Based Planner、Variational Planner和Lattice Planner。
最经典的Sampling-Based Planner算法是Rapidly Exploring Random Tree,RRT算法。

自动驾驶运动规划(Motion Planning)-13.jpg
Variational Planner根据Cost Function进行优化调整,从而避开障碍物,生成安全的轨迹。

自动驾驶运动规划(Motion Planning)-14.jpg
Lattice Planner将空间搜索限制在对车辆可行的Action Space。

自动驾驶运动规划(Motion Planning)-15.jpg
Velocity Profile Generation要考虑到限速、速度的平滑性等。

自动驾驶运动规划(Motion Planning)-16.jpg
Vehicle Control将Planner的规划结果转化为车辆的运动行为。

自动驾驶运动规划(Motion Planning)-17.jpg

公众号:半杯茶的小酒杯

个人博客地址:
参考链接

1、Course自动驾驶课程: Motion Planning for Self-Driving Cars
相关文章

48

主题

786

帖子

1583

积分

金牌飞友

Rank: 6Rank: 6

积分
1583
飞币
786
注册时间
2017-9-19
发表于 2022-10-25 22:48:57 | 显示全部楼层
点石-成金 已经会点石了呢,港区会越来越繁荣哦!

46

主题

767

帖子

1534

积分

金牌飞友

Rank: 6Rank: 6

积分
1534
飞币
760
注册时间
2017-9-2
发表于 2022-10-25 23:02:50 | 显示全部楼层
加油,对我这种小白新人帮助很大~

316

主题

362

帖子

1005

积分

金牌飞友

Rank: 6Rank: 6

积分
1005
飞币
651
注册时间
2017-7-27
发表于 2022-10-25 23:17:26 | 显示全部楼层
20210501个人博客好像打不开了

49

主题

856

帖子

1709

积分

金牌飞友

Rank: 6Rank: 6

积分
1709
QQ
飞币
846
注册时间
2017-8-23
发表于 2022-10-25 23:28:36 | 显示全部楼层
个人博客因为有翻墙软件相关的文章,被封了[捂脸]

295

主题

340

帖子

938

积分

高级飞友

Rank: 4

积分
938
飞币
589
注册时间
2017-7-10
发表于 2022-10-25 23:42:32 | 显示全部楼层
好文章,清晰易懂。想问下,如果上面的基本上都掌握了,可以在自动驾驶公司找到mp相关的工作吗
您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

快速回复 返回顶部 返回列表