Open Source Robotics

精选高质量开源机器人项目、工具和软件,推动机器人社区发展。

Frontier-Based Exploration

  • 又称: frontier exploration, frontier-based mapping
  • 类别: State estimation & navigation › Navigation
  • 标签: exploration, navigation, mapping, occupancy-grid, mobile-robots

一种探索策略:机器人反复驶向已建图的空闲空间与未探索空间之间的边界,不断扩展地图,直到不再存在这样的边界。

定义

基于前沿的探索(Frontier-based exploration)是一种为未知环境建图的策略。前沿(frontier)是机器人已观测为空闲的空间与尚未观测的空间之间的边界。这一思想由 Brian Yamauchi 于 1997 年提出,其要点是:移动到前沿是获取新信息最直接的方式,因为越过前沿指向的传感器将看到未探索的空间。

基本循环很简单。机器人构建一个包含空闲、占据和未知栅格的占据栅格地图。它检测前沿栅格,即与未知栅格相邻的空闲栅格,把相邻的前沿栅格归组为前沿区域,并舍弃那些太小而无关紧要的区域。然后它选择一个目标前沿,规划一条通往它的路径,并在行驶过程中更新地图。随着旧的前沿被清除,新的前沿不断出现;当不再有可到达的前沿时,探索结束。

不同方法之间的差异主要在于如何选择下一个前沿。最初的方法选择最近的前沿。后来的方法综合行驶代价和预期的信息增益(即可能被揭示的未知空间的大小)为前沿打分,或者使用下一最佳视点规划,在前沿附近选择一个视点,而不是前沿栅格本身。三维版本为无人机使用体素地图,多机器人版本则把不同的前沿分配给不同的机器人,以避免重复工作。

前沿方法可靠且易于实现,但它们只对当前地图作出反应。学习型探索策略试图预判前沿之外是什么,例如一条走廊很可能会继续延伸,这类策略常常以基于前沿的探索作为基线进行比较。

为何重要

基于前沿的探索为机器人提供了一种简单、成熟的方法,可以在没有人工引导的情况下为未知空间建图。它至今仍是自主探索研究中的标准基线,也是建图机器人中的实用组件。

主要应用

  • 建筑物、仓库和地下空间的自主建图
  • 使用地面机器人和无人机进行搜救探索
  • 多机器人协同探索
  • 作为学习型探索策略的基线比较

实际应用

构建自主建图机器人的团队通常运行 SLAM 来维护占据栅格地图,在每次地图更新后提取前沿栅格,对其进行聚类,并按距离和大小为每个聚类打分。导航栈规划一条通往最佳聚类质心或其附近某个可到达点的路径;如果目标被证明无法到达,就把它列入黑名单,并尝试下一个候选。在基于 ROS 的系统中,这一逻辑通常被封装为一个探索节点,向导航栈提供目标。

常见误解

  • 前沿探索总是前往最近的前沿 — 那是最初的规则,但许多变体会在行驶代价与预期信息增益之间进行权衡
  • 地图看起来完整时探索就结束了 — 探索在不再有可到达的前沿时结束,这可能会让无法到达的区域未被建图
  • 前沿方法需要完美的地图 — 它们可以使用含噪声的占据栅格,不过必须滤除虚假的小前沿

谁需要了解

  • 移动机器人导航工程师
  • 自主探索和主动建图方向的研究人员
  • 为未知环境建图的无人机自主系统工程师

相关技术

  • 占据栅格(Occupancy Grid)
  • SLAM
  • 下一最佳视点规划(Next-Best-View Planning)
  • ROS 导航栈(ROS Navigation Stack)
  • 信息增益(Information Gain)

相关术语

  • SLAM
  • Topological Map
  • AMR
  • Obstacle Avoidance

相关项目

  • LingBot-Map: Streaming 3D reconstruction from one camera: pose and depth for every frame, live
  • Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
  • OpenDroneMap: Open-source photogrammetry toolkit that turns drone images into maps and 3D models
  • Nav2: ROS 2 navigation stack with path planning and obstacle avoidance for mobile robots
  • DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required
  • RTAB-Map: Versatile graph-based SLAM supporting RGB-D, stereo, and LiDAR with real-time operation

本网站需要 JavaScript 才能正常运行。请启用 JavaScript 以浏览我们的开源机器人项目。