一、算法描述:
1、主要思想
简单来说, RRT算法是一种树型算法,它由一个起始点Xinit作为树的起始节点(或者叫根节点),然后从这个起始点进行随机生长,通过随机采样增加叶子节点Xnew的方式,生成一个随机扩展树,当随机树中的叶子节点包含了目标点或进入了目标区域,便从随机树中找到一条由从初始点到目标点的路径
2、拟解决的问题
(1)在一个未知环境中,使机器人快速对环境进行建模。
(2)或使机器人在一个未知环境中到达目标点。
3、适用环境: 二维及多维空间
4、特点:
(1)优点:①适合多维空间, 可以使机器人能够快速有效地搜索高维空间,从而实现对目标点的路径规划。
②原理简单,适用性强,无需预知环境,也可完成对机器人的路径规划。
(2)缺点:路径规划的效果受规划时间、地形复杂程度以及生长步长的影响,而且规划好的路径不一定是最优路径。
图1 RRT路径规划效果图
二、算法内容描述
Algorithm RRT |
1: 定义初始点Xinit; 2:while 2: 随机产生一个随机点Xrand; 3: 找到RRT中距离Xrand 距离最近的点Xnearest; 4: 朝Xrand方向生长δ步长的距离,产生Xnew; 5: if Xnew无碰撞 and 不位于未知区域 6: 将Xnew加入RRT的节点 7: else 删除Xnew; 8: end if 9: end while |
主要思想: 1.随机采样一个点
2.向随机点方向生长δ 条件判定
3.满足即加入RRT,否则舍弃
三、基于RRT的机器人自主探索算法优缺点
优点: 1.快速提取地图的前沿点;
2.双前沿点探测器(局部+全局)提高探索效率和灵活性;
3.倾向于对未知区域进行探索;
缺点: 1.对于具有狭窄通道和狭窄入口的区域,RRT生长困难,探索效率低;
2.探索过程的后期,RRT生长缓慢。
GitHub源码: rrt_exploration & rrt_exploration_tutorials