Frontier-based exploration

Frontier-based exploration

Yamauchi B. A frontier-based approach for autonomous exploration[C]. IEEE International Symposium on Computational Intelligence in Robotics and Automation, 1997, pp. 146-151.

frontier_exploration source code
关于active_SLAM比较早期的文章,主要是上面这篇。配套的还有开源代码,从论文角度而言,其实还是有些许差别,传感系统就不太一样:
1、 在active-SLAM领域算是比较早的一篇论文,论文短小,实验充分,使用混合传感模型(激光,红外以及声纳);
2、 使用栅格地图模型,在探索过程中没有涉及到信息熵的概念,当然也不会去考虑如何平衡开发“(exploitation)”~“探索(exploration)”之间的关系;
3、 文章旨在探索未知区域,对未知区域进行排序,以深度优先的方式就近探索未知区域;
4、 ROS中有相关的package,frontier_exploration,配合navigation的move_base和gmapping建图构成一整个active_slam。

正如RAS在2016年发表的一篇关于前向模拟的active_SLAM论文。

Lauri M, Ritala R. Planning for robotic exploration based on forward simulation[J]. Robotics and Autonomous Systems, 2016, 83: 15-31.

文章中有一张关于整体架构的图:
Frontier-based exploration_第1张图片

一般就active_SLAM而言,考虑更多是寻找一个合适的目标函数,执行一个决策。在本次博客中不多展开,后期会补上这方面的内容。

Motivation:希望到passive slam到active slam的转变,让移动机器人自己以最优(质量和效率)的状态进行定位和环境建图,同时这也是移动机器人迈向自动化的方向。旨在解放对移动机器人的束缚,使其自由的进行环境建图。
Process:主要分为frontier的检测—然后探索未知区域—直到环境中不再有未知的区域。其中需要SLAM的参与进行定位和建图,目前默认的建图模式采用gmapping(栅格地图),现阶段大量学者开始研究pose graph based active SLAM.

边界探测过程

Frontier-based exploration_第2张图片
上展示的主要是通过扫描-SLAM之后如何辨识边界,获取边界点集合之后,获取边界目标点,上图中主要展示的是目标点是边界点集合的几何中心位置,目前的开源代码上可供选择的模式还有最近点和中点。

在检测过程中,需要对未知区域进行一些处理,在后续一些别的论文中也有关于frontier的说明,会有一些形态学的处理方法,使得frontier尽量是单个像素(栅格)组成的,关键这部分的说明,文章也不是很多,然后在论文里也是浅谈则止。最后找最近的边界目标以深度优先的方式进行探索。

整个过程如上图所示,作为active_SLAM的先行者,在后续很多关于active_slam的论文中,都会以frontier_exploration作为对比方案,或者在所提算法不行时,切换到frontier_based的探索模式。

开源代码仿真

建议ubuntu 14.04 + indigo
也可以参考wiki-frontier_exploration

第一步

安装一些依赖项

sudo apt-get install ros-kinetic-frontier-exploration ros-kinetic-navigation-stage

第二步

可以直接运行下面两个launch文件,wiki上有3个,其中有个貌似是多余的,已经包含在前一个的launch文件中

roslaunch navigation_stage move_base_gmapping_5cm.launch

roslaunch frontier_exploration global_map.launch

下面的步骤可以直接参照wiki上的进行。
建议在关于costmap的参数文件中,把机器人半径设置的稍微小一些。


后来用北阳的UTM-30LX和先锋机器人进行了实验,需要remap一下消息

rosrun hokuyo_node hokuyo_node scan:=base_scan
rosrun rosaria RosAria RosAria/cmd_vel:=cmd_vel

环境如下
Frontier-based exploration_第3张图片

建图效果
Frontier-based exploration_第4张图片

由于没有好好的调过参数,建图过程也是缓慢至极,经常绕圈。后续会更新有关先阶段一些active_SLAM的论文和方法。

有问题可加群 (移动机器人导航与控制群:199938556) 讨论交流,进群修改备注。

你可能感兴趣的:(机器视觉)