来源|知乎、RoboCar
最近看到一篇非常好的关于自动驾驶规划方法的综述(A Review of Motion Planning Techniques for Automated Vehicles),写的非常好,总结了近几十年来总动驾驶规划的发展之路,引用了许多经典的文章。觉得可能对做规划的小伙伴会有帮助,所以分享出来。
这篇文章的一个观点非常好,他把自动驾驶的运动规划分成四大类:graph search 图搜索,采样,插值和数值优化。下面展开论述。
A. Graph search based planners
这种方法把状态空间表达成网格或者lattice的形式,然后在这些状态里面找到一个可达的path。这类方法主要有A* D* Dijkstra algorithm 算法。值得一提的还有state lattice算法,虽然这个图看起来和Apollo里面的lattice不一样,但是这个是爸爸,在这篇文章[1]里面提出了时空lattice,这个也就是后来Apollo算法里面用的。
B. Sampling based planners
这个主要介绍了RRT算法,嗯非常经典好用,如果有感兴趣的可以单独开讲。
C. Interpolating Curve Planners
这里介绍了几种曲线生成的方法,主要有羊角螺旋线(Clothoid Curves)多项式曲线(Polynomial Curves) 贝塞尔曲线(Be ́zier Curves)
分别介绍了这几类样条曲线在路径规划的优化过程中作用。
clothoid curves 是个比较神奇的曲线,天生适合车辆规划,因为它的曲率是线性变化的,又因为车辆运行轨迹的曲率和方向盘基本上成正比,也就是说这种线型出来的结果方向盘会非常顺滑。
贝塞尔曲线 计算简单 速度快。