文章中的所有案例均为博主手动复现,用于记录博主学习路径规划的过程,如有不妥,欢迎在评论区交流
目录
- 1 标准RRT
- 1.1 算法原理
- 1.2 演示
- 2 GBRRT
- 2.1 算法原理
- 2.2 算法演示
- 3 RRT-STAR
- 3.1 算法原理
- 3.2 算法演示
- 4 RRT-CONNECT
- 4.1 算法原理
- 4.2 算法演示
- 5 RRT-STAR-CONNECT
- 5.1 算法原理
- 5.2 算法演示
- 6 PQ-RRT
- 6.1 算法原理
- 6.2 算法演示
- 7 代码
1 标准RRT
1.1 算法原理
RRT算法是基于随机采样的一种路径规划算法,如上图所示。首先在规划空间中生成随机采样点Xrand,然后遍历先有的路径节点,搜寻与Xrand距离最近的节点,然后按照步长Step生成新节点Xnew,如果节点Xnew与其父节点连线与障碍物发生碰撞则去掉,否则将Xnew加入总路径节点中,重复此步骤,知道Xnew与Xgoal的距离小于阈值D,算法收敛,成功搜寻到无障碍路径。
1.2 演示
RRT
2 GBRRT
2.1 算法原理
标准RRT在规划空间中随机搜索,没有方向性,在此基础上引入目标偏向p:
当rand()>=p时,采样点为随机点;当rand()<p时,取目标点Xgoal作为随机点。提高了算法的搜索导向性,但在复杂环境中容易陷入局部最小值
2.2 算法演示
GBRRT
3 RRT-STAR
3.1 算法原理
算法在标准RRT的基础上引入了重选父节点和重新布线策略,具有渐进最优性,成功搜寻到路径后算法不会停止,随着不断迭代,理论上能够搜寻到最优路径。本案例设置为搜寻到路径后就停止继续搜索。
3.2 算法演示
RRT-STAR
4 RRT-CONNECT
4.1 算法原理
标准RRT算法只有一棵随机树单向搜索,搜索效率较慢,在此基础上引入两棵随机树双向搜索,一定程度上能够提升搜索效率。(还有三棵树的方法),但是一定程度上增加了路径的冗余度、长度
4.2 算法演示
RRT-CONNECT
5 RRT-STAR-CONNECT
5.1 算法原理
将RRT-STAR与RRT-CONNECT算法进行结合,具有两者的有点
5.2 算法演示
RRT-STAR_CONNECT
6 PQ-RRT
6.1 算法原理
(1)在标准RRT算法上引入了目标偏置p
(2)在RRT-STAR算法基础上,扩大了重选父节点、重新布线的范围,扩大为范围内父节点、包括父节点再往上的若干代父节点
6.2 算法演示
QRRT
7 代码
代码包含上述例子的所有代码,下载即可使用
链接:https://pan.baidu.com/s/1uKkTmaqrZwXrs5P8OMWKRQ?pwd=SSLL
提取码:SSLL
如果觉得有帮助,请大家点一下点赞和收藏,谢谢大家!如果点赞收藏多的话,后续会给出其他改进RRT算法代码,以及三维RRT代码