Motion Planning 是什么
前言与引用
这一个呢,主要是自己突然看一篇论文的时候不知道 为什么他提出的方法对于规划来说就是好的,规划又应该分为哪几个部分,解决的是哪几个部分的问题?带着这个问题,我就去搜:Motion Planning是什么?hhhh 然后从参考的知乎链接中到了这个课(其实我曾经在b站刷到过 但是当时我还没意识到自己的这一系列基础性问题 没问出问题,我向来是一个... 有问题再去学 再去找的 带着问题走)
- 知乎《Apollo Lattice Planner从学习到放弃.额不....到实践》:https://zhuanlan.zhihu.com/p/164635074
- 百度技术学院课程:https://bit.baidu.com/productsBuy?id=82
- 看的那篇论文是 Safe Trajectory Generation for Complex Urban Environments Using Spatio-temporal Semantic Corridor
- 课程中提到的参考 Steve Lavelle 的 Planning Algorithm:http://planning.cs.uiuc.edu/par1.pdf
这里可能很多部分都是我看第二个参考百度技术学院课的一种文字总结形式而已哈
What is Motion Planning?
回答我当初看的初衷:什么是规划?
规划的本质是一个搜索。那搜索又是什么呢?
给一个函数\(f(x)\) 找出最优解。这是数学意义上的,那对于规划中,就是给定现在的状态,给出最优的移动轨迹,那我们怎么定义出说这个轨迹是好的呢?也就是定出一个目标函数 像上面这样的\(f(x)\)
-
并不是,在后面的过程中分类中,解释了 只是不同的方向的人对于Motion Planning的定义不同,例如做机器人的考虑的是寻找目标点的路径,随后交给做控制的人去跟随住这样一个路径。
构建规划问题
课程中提到,构建自动驾驶中的Motion Planning问题是比较复杂的。把问题分分成简单的小问题,虽然其中有些问题又可以再次分成更小的问题,因为他们这一层还并不简单
1. Path Finding Problem
不需要关心环境,只需要关心整体的路径是怎样的。看起来有点像我们现在用的导航,感觉也是全局的路径规划问题
其中众所周知的算法:
BFS DFS: non-informative search
A*: 对比起来就快很多了,从这里也衍生了其他的全局的
但是呢,后面我们就会考虑A* 需要对全局环境障碍物提前知道,但实际情况是很难的,因为路径够长你的传感器就没法探知那么远的了。所以,在这里又分出了两类对环境的掌握情况:partially observed和 fully observed
partially observed: 如果使用的是贪心算法的,表现的形式就是一种incremental search 看到多少就按看到的去求出一个最优解
2. 路径的平滑
这一点在前面finding的举例,都是折线,是因为我们没考虑车辆运动学模型,也没考虑控制动力学方面,但其实这点想低速场景苟着的话,就把折线用五次平滑曲线弄一弄 也是OK的
3. 环境的动态性
前者 我们在构建的过程中总是缺了点什么:环境是动态的,我们不能将周围的所有东西都当做静态障碍物,特别是高速行驶的场景。而这一个问题,至今在规划中还是一个很难很好的解决的问题
4. 交通规则
怎样在模型中把交通规则给包含进去,然后再做规划
5. 实时性
视频中介绍的百度apollo规划模块的运转周期:100ms,反应时间是0.2-0.3s;对比人驾驶的反应时间大致是0.4-0.5s
Motion Planning for Autonomous driving 要求
safely and smoothly,本质上来讲是一个三维规划问题:X Y Time,但是从车辆动力学角度的话 维度可能还要进一步上升,因为涉及到车头方向、转向角、车辆速度、加速度等等
整体自动驾驶一览
轨迹在这里的定义就不是前面在第一点中提到的 路径是怎样的,而应该是随着时间这个路径应该怎么走英文上就换了个词:Trajectory
-
Path是静态的,不包括时间;Trajectory是除了路径还有其他信息可以说是时间,speed profile,这条路径上速度的变化关系
至此 Overview的部分课程就是这个,其中在最后提到的整个规划的框架内,感觉缺少了行为规划器那块的东西,就是状态机?
总结
所以回答了自己的问题?
-
规划又应该分为哪几个部分
就像上面提到的如果是针对整个车的规划问题,包括从全局到局部,到控制都是规划需要考虑的部分,如果是针对那篇论文,他解决的是第二部分的东西也就是Motion Planning: 局部感知后,对全局路径的修正,论文中处理的也是怎样把语义信息给结合起来
-
解决的是哪几个部分的问题?
好像和上面的问题是重合的 hhhh
感觉百度的这节课挺棒的