basic motion planning and overview
轨迹规划概览
一、What is motion planning
通俗解释:一个搜索问题,对于当前最优的状态进行搜索,怎么样去移动的一个最优解。而这个最优值我们会去用一个函数f(x)去定义它,我们通过数学计算来确定它的最优值。
上面是不同的领域所涉及的规划问题的不同方法和思想核心。当然我们都是把问题抽象化,去寻找最优值才简单。
比如我举个寻找下一个点的例子,并且使用广度优先算法的思想去寻找它:
Y可以看到,它的思想就是在绿色的起点处,不断向外扩张领域,直到碰到终点后,结束搜索,而这次寻找花费了6.4毫秒,好是花费了很长的时间了。
接着我们看看A*算法的搜索情况:
首先可以看到它的搜索步骤就变得很少了,没有上面的搜索那么复杂,而且还提高了不少的计算效率。可以看到它的下面有个算法公式,它的G(n)就是实际代价,也就是它走出去多远,花费的代价。而它的H(n)就是估计代价,也就是估算到终点的代价。
举个例子:
可以看到,红色小点是汽车,大块的红色和绿色是障碍物,当然是静态的,减少复杂度嘛。然后小车想沿着小路通过,并且躲避障碍物,那么它使用最优的A*算法行不行?
当然不可以啊,A*算法适用于全局搜索,也就是知道全局所有的信息的时候,去使用它才最好,如果你不知道全局信息就很难使用它。但是总得想个办法,于是想到了贪心算法,这就很贴近我们要求搜索了,想了解贪心算法得原理,可以自己详细学习哦。
当然我们继续分析上述得问题,就是无人车在通过一段路时,如何决策得问题。你可以看到车在拐弯的时候是直角,直来直去的,你觉得可能性大吗?显然不符合汽车的常量嘛,轮子360°无死角旋转都很难做到。
当然我们需要的是一个很适合驾驶和体验的平滑感觉,所以路也是需要有一定的平滑曲线作支撑的。那么我们不仅需要研究其规划模型,而且还需要考虑其运动模型,也确保规划模型是最优的。
难题之处
上面提到了对于静态障碍物的规划,那么其实在汽车行驶时,遇到的很多都是动态障碍物,所以我们需要去面对动态障碍物的避障问题。这就比静态障碍物更难去处理,但是又不得不去处理的地方了。
在处理之前我们需要干什么呢?我认为应该把交通规则注入无人车的灵魂中去,因为需要让无人车也去遵守大家都在遵守的一个规则,这样才会维护道路秩序,确保行车安全。
算的能否在最短的时间内得出最优的算法,确保在安全问题发生之前处理掉一个汽车应该处理的问题,才会让无人车赶超人类驾驶的方式。
可以看到这里面有很多感知模块,都是对信息采集的过程的描述。其中动态信息就是你当前的位置和状态,另一边静态信息主要就是地图信息带给我们的资源。
当然我们就需要了解一下这些系统的模块都是怎么去工作的。
module | question |
---|---|
Localization | Where we are |
Perception | What we see |
Prediction | How the environment will change |
Motion Planning | How we move |
Control | How to control the car |
最后我们对本小节课程做个总结:
二、motion planning with autonomous driving
首先我们就以下几个方面入手,对我们的规划模块做一个学术的学习,以便更加了解我们的这个模块。