Autonomous Robotic Exploration Based on Multiple Rapidly-exploring-笔记

论文链接
机器人探索算法主要就是引导机器人在未知空间去进行探索,一般常用的策略就是寻找边界,机器人移动到边界点(划分已经探索和未知区域),但是随着地图的扩大,检测边界需要消耗很多的计算资源。

RRT:核心特点是偏向于探索未知区域,能够探索整个地图,但可能有回溯问题(机器人容易折返),SRT算法也不一定能有效解决。

本文:使用RRT算法,但是只将其用于边界点检测,即机器人不按照RRT树进行移动,多颗RRT
的构建是独立的,机器人每次只是从中选取边界点去进行探索。

关键术语:
总地图 X ,占用网格(0 1 -1),顶点集合V,边集合E,图G
Nearest算法:在图G中找一个距离x最近的顶点
Sterer算法:在两个点(x,y)之间,返回一个符合要求的点z

系统实现:
在这里插入图片描述
核心就是三大模块:边界探索模块、过滤模块、任务分配模块

**边界探索模块:**以RRT算法为基础,如果RRT树的节点到达了未知区域,则将这个节点记为边界点。
分为全局与本地探索两个部分。

本地探索:
在这里插入图片描述
首先是初始化顶点集合与边集E。
然后就是随机化一个点作为RRT种子,利用nearest算法找一个Xnear,然后用steer算法找出一个Xnew,
在这里插入图片描述
然后在看这个Xnew是否符合要求,具体而言就是看Xnew与Xnear之间是否有位于未知区域的点,那么这个Xnew就是合乎要求的边界点,然后送到过滤模块,并且重置本地的RRT树,否则的话把Xnew加进去继续生长RRT树。
全局探索:没有什么特殊的,类似RRT算法,和上面的算法类似,只是没有第八步,重置RRT树。

为什么有两个模块:
主要就是为了加快RRT算法的检测边界点的速度,但是又不能有遗漏,多快好省的检测边界点。具体而言:局部算法每次从当前位置进行计算RRT树,可以利用其前期非常快的速度,但是容易有遗漏,而全局算法到了后面,检测边界点会特别慢。
补充解释:泰森多边形(Voronoi diagram),当空间点集比较少时,未知区域的泰森多边形面积更大,RRT树更倾向向面积大的地方生长,开始较快,后面点集多了就慢了。

过滤模块:
由于有两个检测器的存在,所以边界点的检测会非常容易且频繁,过多的点可能是非常接近的并且有重合的,这时候需要这个模块对他进行聚类(只储存一个中心点,其余的被抛弃),并且还会过滤掉无效点(不可达)、以及重复的已经探索的边界点。

任务分配模块:
先看这个公式
在这里插入图片描述
设机器人当前位置为Xr,目标点为Xfp
其中I(x)代表的是信息增益成本,其计算过程就是计算机器人走到这个边界点可以探索到的未知区域的面积大小,(地图被分成很多小cell);N(x)代表的是当前点去目标点的路径代价;这个参数lamda可以调节信息增益与导航成本之间的数量级差异,也可以平衡他们之间的比例关系。
第二个公式H(Xr,Xfp),其主要就是为了衡量要去的边界点和当前位置是不是在一个人为的半径以内,尽量也在一个比较近的范围探索,避免来回折返。

实现部分:
在这里插入图片描述
最上面的三个模块就是我们之前已经描述过的,本文已经将其写成了ros包,Slam部分可以使用ros自带的gmapping算法,path planner可以使用ros自带的路径规划算法A*等。

测试部分
首先有三个测试环境,两个仿真环境,一个真实环境
对比试验是与基于图像检测的边界点检测算法进行对比
其中为了测试之前steer算法的参数n,还对比了不同的n值带来的影响

在这里插入图片描述
试验结果表明,用本文的RRT检测的算法在效率上不低于图像检测,虽然略有不如,但是他的表现也还差强人意
作者认为,本文的技术可以扩展到3维空间,而基于图像的方法却很难。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值