Loop Closure
- 又称: loop closing, loop closure detection
- 类别: State estimation & navigation › Localisation
- 标签: slam, localization, place-recognition, mapping, state-estimation
SLAM 中的一个步骤:机器人识别出自己回到了先前到过的地方,并利用这一匹配修正沿途累积的漂移。
定义
回环(Loop closure)是指在建图过程中识别出机器人回到了一个它已经见过的地方,并利用这一识别来修正其估计的轨迹。里程计,无论来自车轮、IMU、相机还是激光雷达,每一步都会累积微小的误差。在走完一个长环之后,即使机器人在物理上已经回到同一地点,它对自身位置的估计也可能与出发点有明显偏差。回环把当前位姿与先前的位姿联系起来,让系统重新分配误差。
回环包括两个部分。检测,通常称为位置识别,判断当前观测是否与先前的某个观测相匹配。基于相机的系统通常使用 DBoW2 等视觉词袋方法或学习得到的全局描述子;激光雷达系统使用 Scan Context 等扫描描述子或直接的几何匹配。随后的验证计算两次观测之间的相对变换,例如对图像使用特征匹配和 RANSAC,对点云使用 ICP,并剔除几何上不吻合的匹配。
验证通过后,回环被作为一个约束加入,通常是位姿图中的一条边,后端随后重新优化所有位姿。修正会分摊到整个环上,而不是只施加在末端。
主要难点是感知混淆:不同的地方可能看起来很相似,例如完全相同的走廊、一排排货架或重复的作物行。一个错误的回环可能使整张地图扭曲,因此实际系统都很保守,宁可错过一个真实的回环,也不接受一个错误的回环。
为何重要
没有回环,任何由里程计构建的地图都会随着漂移增大而逐渐劣化,同一条走廊最终可能在略有不同的位置被建图两次。正是回环让 SLAM 系统能够在长距离和多次重访中构建全局一致的地图。
主要应用
- 用激光雷达或相机 SLAM 构建一致的室内外地图
- 修正视觉里程计和视觉惯性里程计中的漂移
- 机器人被移动或跟踪丢失后的重定位
- 合并来自多次会话或多台机器人的地图
实际应用
在运行 Cartographer、RTAB-Map 或 ORB-SLAM 等 SLAM 软件包的移动机器人上,回环检测与跟踪一起在后台运行。每个新的关键帧或子图都会与由先前关键帧或子图构成的数据库进行比较;通过外观阈值的候选会接受几何检查,只有内点足够多且变换一致的候选才会被传给位姿图优化器。团队在为新场地建图时通常会有意驾驶机器人走出环路,让系统有机会闭合它们,并针对每种环境调整检测阈值,在仓库等重复性空间中接受更少的回环。当地图出现重影墙壁或弯曲的走廊时,遗漏或错误的回环是工程师首先检查的问题之一。
常见误解
- 回环只修正当前位姿 — 它加入一个约束,由后端优化器传播到整条轨迹
- 如果两幅图像看起来相同,那么地点也相同 — 感知混淆意味着外观匹配在被信任之前必须经过几何验证
- 视觉里程计已经包含回环 — 里程计只估计增量运动;正是回环把里程计变成完整的 SLAM
谁需要了解
- SLAM 和建图工程师
- 移动机器人和无人机导航开发者
- 从事位置识别的计算机视觉工程师
- 对大型户外场地进行建图的野外机器人团队
相关技术
- 位置识别(Place Recognition)
- 视觉词袋(Bag of Visual Words)
- RANSAC
- ORB-SLAM
- Cartographer
- RTAB-Map
相关术语
相关项目
- LingBot-Map: Streaming 3D reconstruction from one camera: pose and depth for every frame, live
- oomwoo: Open-source DIY robot vacuum: 3D-printed, ROS2 + 2D LiDAR, fully local.
- 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
- FAST-LIVO2: Fast, direct LiDAR-inertial-visual odometry from HKU-MARS, published in IEEE T-RO
视频
- SLAM Course - 20 - SLAM Frontends (2013/14; Cyrill Stachniss): Cyrill Stachniss