文章目录
简介
基于图搜索的路径规划算法主要用于低维度空间上的路径规划问题,它在这类问题中往往具有较好的完备性,但是需要对环境进行完整的建模工作,在高维度空间中往往会出现维数灾难。为了解决这些问题,本文将介绍基于随机采样的路径规划算法。这类算法适用于高维度空间,它们以概率完备性(当时间接近无限时一定有解)来代替完备性,从而提高搜索效率。
规划中的完备性概念
完备规划器:总能在限定时间内正确查找到规划的路径。
概率完备规划器:如果存在解的情况,则规划器最终会使用随机抽样的方式(如蒙特卡洛采样)找到它。
分辨率完备规划器:与上述相同,但基于确定性采样(如在固定网格上进行采样)。
1. PRM(概率路线图)
PRM算法是采用随机采样的方式在环境中建立路径网络图,将连续空间转换成离散空间,再利用A*等搜索算法在路线图上寻找路径,以提高搜索效率。整个过程主要分为两个阶段Learning phase 和 Query phase。
Learning phase
在自由空间中采样N个点,删除在障碍物内的点。然后将点与点之间连接起来,但是连接时对距离做一定的限制,如果连线超过一定的距离或者连线经过障碍物则不连接,连线构成一张路线图。
Query phase
在路线图上寻找起点到终点的路径(使用A*或Dijkstra算法),此时路线图类似于栅格地图。
PRM优缺点
优点:概率完备性,相比于图搜索的比较高效
缺点:两点边界值问题,在状态空间上构建图,但不特别关心所生成路径,而且效率不高。
碰撞检测:lazy collision-checking
在撒点和构建图的时候,不管碰撞问题。在搜索到路径之后,再删去发生碰撞的部分,重新搜索其他路径。
2. RRT(快速扩展随机树)
初始化起点,然后随机撒点,随机选出一个x_rand,在树上找出最近点x_near,取两者之间的中点作为x_new,最后,还要做一次collision checking, 看看生成的点是不是和x_near 连接起来后是否会碰撞障碍物。
RRT优缺点
优点:RRT比概率图方法效率更高,但是这依然不是个高效的搜索方法;
缺点:得到到不是最优的路径,每次搜索路径的不一定相同。
3.双向RRT
双向RRT, 意思就是从起点和终点同时搜索,一直到两棵树交汇,提高RRT搜索效率。
4. RRT*
RRT*是RRT算法基础上的改进,改进的地方是x_near 和 x_new不会直接连接起来,而是做一个优化处理,在x_near附近圈一个圆,将被圈在圈内的各个点与x_new的距离作对比,如果x_near 到 x_new的距离比通过x1、x2后再到x_new的距离低,就将x_near和x_new连接起来。同时我们对比从x_near出发到x2的距离最短值;发现通过x_new之后到达x2的距离更短,则将x2的父节点更新为x_new。这个步骤之为rewire function。
5. Kinodynamic-RRT*
符合机器人运动学约束的曲线。
https://www.youtube.com/watch?v=RB3g_GP0-dU
6. Anytime-RRT*
Anytime-RRT*实时构建路径,适用于变化的环境。
7. Informed RRT*
将采样的过程限制在一个椭圆中,该椭圆由已经产生的路径决定。
8. Cross-entropy motion planning
圆内进行采样生成轨迹。
其他
• Lower Bound Tree RRT (LBTRRT)[a]
• Sparse Stable RRT[b]
• Transition-based RRT (T-RRT)[c]
• Vector Field RRT[d]
• Parallel RRT (pRRT)[e]
• Etc.[f]
[1] An Overview of the Class of Rapidly-Exploring Random Trees
[2] http://msl.cs.uiuc.edu/rrt/
[a] https://arxiv.org/pdf/1308.0189.pdf
[b] http://pracsyslab.org/sst_software
[c] http://homepages.laas.fr/jcortes/Papers/jaillet_aaaiWS08.pdf
[d] https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6606360
[e] https://robotics.cs.unc.edu/publications/Ichnowski2012_IROS.pdf
[f] https://github.com/zychaoqun
参考资料
【1】深蓝学院运动规划课程。