Explore Locally, Plan Globally: A Path Planning Framework for
Autonomous Robotic Exploration in Subterranean Environments
发表期刊及时间: 2019 International Conference on Advanced Robotics (ICAR)
目录
博主打算继续拜读Kostas Alexis老师的作品,因为…这位老师的团队怎么说呢…个人觉得写的是比较清晰明白的,而且大部分的作品都是开源的,很有学习价值。
一、论文概述
尽管本文文章的标题是局部探索和全局探索的框架,但本文仍然提出的是一种机器人环境探索方法,此方法与Alexis老师之前的论文有很多相似之处,探索的框架仍然是采用了Local Planner和Global Planner,但与之前的graph-based的探索方法相比,局部规划器不再采用RRG的形式,而是采用了RRT*算法进行采样空间(两者本质上都是一种图),进一步节省了遍历时间和路径代价,并且在best path的选取上添加了安全评分机制(距离障碍物越远越好),本文还对graph-based那篇论文中的一些概念做了新的解释。本文所提算法的优缺点:
优点:1、采用了RRT*算法作为Local Planner的采样算法,通过RRT*的父节点重选和重布线机制,可以同时做到减少边的数量和减少路径代价。2、把节点与障碍物的距离作为一个安全评分项加入到选取best path中,避免了UAV在复杂地下环境与障碍物发生碰撞。3、继承了graph-based的优点。
缺点:1、不能解决随机采样算法的通病,难以通过狭小细窄的入口。2、探索后期,全局图的规模巨大,需要耗费很大的计算资源去判断去往哪个frontier和寻找通向frontier的路径。
二、系统概述
以上是整个探索过程的流程图(与之前的graph-based的架构差不多,可以看这里),LP(Local Planner)负责在以机器人为中心的一个体积空间DL内生成RRT(本文没有对树的过程作过多解释,不过应该和graph-based方法一样,有一个最大边数和节点数的限制,一旦超过了数量停止结束),然后一个信息增益的评价函数和聚类算法,得到一组good path。然后利用安全评分机制对这一组good path进行评分,选出评分最高的作为best path。这是LP的一个iteration。GP(Global planner)仍然采用全局图(global graph)的形式,并且在LP工作时,全局图也一直在生长,主要负责归巢和选取剩余frontier。因此,在LP的iteration后面会做一个续航检测,如果电量足够,就执行这个best path,反之归巢(Go home)。
三、算法概述
本文提出的探索算法其核心仍然是两个planner(即:GP和LP)(PS:当今探索算法的框架貌似都是这样,分为局部和全局)
3.1 局部规划(Local planner)
LP的作用: 通过RRT*算法生成RRT,通过RRT来计算出机器人当前要去的目标点以及最佳路径。
算法伪代码如下:
(与graph-based中的LP大致相同,此处请各位读者查看我之前的文章看一下,本文仅介绍不同的地方)
1:获取当前机器人的位置作为RRT的根节点(PS:本文中,位置坐标均已configuration表示)
2:通过BuildLocalTree函数在一个有限的空间内生成局部RRT
3:生成好的局部树有多个末端节点,找出所有由根节点到末端的路径
4-11:对所有的path计算探索信息增益,取最大值的path作为good path(增益函数与graph-based相同)
12:利用cluster算法得到一组与good path相似的good paths
13:利用safety score的方法,从一组good paths路径中筛选出评分最高的作为best path。
(以上为local graph的一个迭代过程, 也就是说这个过程每到达一次目标点就会迭代一次,直至exploration结束)
关于RRT*算法,网上有很多介绍,与RRT生长过程大致相同,比RRT算法增加了重新选择父节点和重布线,比RRT进一步缩短了路径长度,具体关于RRT*的介绍,读者可以看看这篇文章。
至于为什么抛弃原来的Local graph,个人认为原因应该是graph是一种类似于网状的结构,我们可以从graph上找出很多路径,最终我们要选择最短的一条路径,那么其他的路径就是冗余的,会耗费宝贵的计算资源,而RRT*在生长时会根据路径长度不断调整自己的边(重选父节点和重布线),因此它在长树的规程中就已经把冗余的边剪掉了,节省了计算资源。
3.2 全局规划(Global planner)
GP和LP是同时运行的,GP的作用是:提供归巢(返回探索起始点)的路径和机器人遇到死胡同时的其他可探索的frontier。因此,GP产生一个全局图(本文在graph-based的基础上进一步解释了GP的运作机制)
全局图的生长过程与graph-based中的GP生长大致相同,只不过本文中选取添加到全局图中的路径是一个principle path,怎么来的呢?看下图
当遇到岔路口时,LP在生长RRT的过程中,每个岔路的方向都会有一定数量的树枝(上图左上角),而在每个方向的树枝里,进行一次safe core,选取分最高的safest path作为添加到全局图中的路径,路径添加的规则与graph-based完全相同,此处不再赘述。
3.3 如何选取safest path
我们在3.1中说到RRT的建立,建立RRT后,会找到很多条good paths(至于怎么聚类得到这些paths,博主还没弄明白),然后再从众多good paths中筛选出best path。
如何筛选呢?靠的是下面的安全评分函数
其中,dm()是该条路径上所有节点与周围障碍物最近距离的和,T应该是节点数,Δt应该是一个比例因子(原文中没说明),可以看到上式表明距离障碍物越远,评分越高。最终选取Ssafe评分最高的作为safest path
如上图所示,逐步筛选出safest path,也就是当前iteration中的best path。
3.5 博主的疑问
- 论文中,作者并没有详细写出如何如何同DTW算法将一条good path聚类出一组方向大致相同的good paths的,而且探索增益函数中也应用到了DTW判断相似性,具体如何判断未曾写明。
- 请看图中
4. 算法优缺点
优点:1、采用了RRT*算法作为Local Planner的采样算法,通过RRT*的父节点重选和重布线机制,可以同时做到减少边的数量和减少路径代价。2、把节点与障碍物的距离作为一个安全评分项加入到选取best path中,避免了UAV在复杂地下环境与障碍物发生碰撞。3、继承了graph-based的优点。
缺点:1、不能解决随机采样算法的通病,难以通过狭小细窄的入口。2、探索后期,全局图的规模巨大,需要耗费很大的计算资源去判断去往哪个frontier和寻找通向frontier的路径。