Detour地面纹理SLAM算法详解
概述 / Overview
地面纹理 SLAM(Ground-Texture SLAM)使用向下的高分辨率工业相机,把地面的微观纹理(划痕、混凝土颗粒、油渍、地砖缝)作为 全场景同质的视觉地标,做位姿估计与建图。在激光 SLAM 表现差的场景(特征贫乏、动态多、地面平整)下效果显著。
Ground-texture SLAM uses a downward-facing high-res industrial camera and treats the floor's micro-features (scratches, concrete grit, oil stains, tile joints) as everywhere-homogeneous visual landmarks. It excels where laser SLAM is weak: featureless walls, heavy dynamic obstacles, but smooth uniform floors.
入门见 地纹 SLAM 技术概述;本页讲算法细节。 For an intro see the ground-texture SLAM overview; this page covers the algorithmic core.
算法原理 / Algorithm overview
| 模块 / Module | 说明 / Description |
|---|---|
| 特征提取 / Feature extraction | ORB / FAST + BRIEF(每帧 ~500 个点)/ ORB / FAST + BRIEF (~500 features per frame) |
| 帧间匹配 / Frame matching | Hamming 距离 KNN + 比率测试 / KNN matching with ratio test |
| 位姿估计 / Pose estimation | PnP(2D-to-2D 因深度近似常数)/ 2D-2D PnP since depth ≈ const |
| 关键帧筛选 / Keyframe selection | 平移 ≥ 30 mm 或转角 ≥ 5° / displacement ≥ 30 mm or yaw ≥ 5° |
| 局部建图 / Local mapping | 关键帧池 + Bundle Adjustment / keyframe pool + BA |
| 全局闭环 / Global loop closure | 词袋(BoVW)/ Bag of Visual Words |
| 位姿图优化 / Pose-graph | g2o / Ceres |
硬件配置 / Hardware setup
| 部件 / Part | 典型规格 / Typical |
|---|---|
| 相机 / Camera | 工业 USB3 全局快门,120 FPS,1 MP |
| 安装高度 / Mount height | 80–150 mm 距地 / ground-clearance |
| 视场 / FOV | 200 × 150 mm 实测覆盖区 |
| 照明 / Lighting | 自带 LED 环形灯,确保不被外光影响 |
| 防护 / Protection | 抗油 / 抗尘罩,定期清洁 |
与激光 SLAM 的差异 / vs laser SLAM
| 项 / Item | 激光 SLAM | 地纹 SLAM |
|---|---|---|
| 主感知 / Primary sensing | 2D 距离扫描 / 2D ranges | 向下相机图像 / downward image |
| 全局位姿误差 / Global error | cm 量级(受墙体不规则影响) | mm 量级(局部很准) |
| 全局漂移 / Global drift | 受闭环密度影响 | 重度依赖关键帧密度 |
| 弱场景 / Weak case | 长走廊 / 反光板缺 | 极平整无纹理地面(如新漆面) |
| 重定位 / Re-loc | 全局粗定位足够 | 需要预先扫描全场地图 |
| 计算需求 / Compute | CPU 中等 | CPU + GPU(GPU 加速特征匹配);见 核显工控机 |
工作流程 / Workflow
- 用专用扫描车在工地上 慢速、完全覆盖采集地纹(推荐 ≤ 0.5 m/s)。
- 后处理生成 地纹地图(特征点数据库 + 关键帧池);典型大小 1 GB / 1000 m²。
- 上线时车上跑实时定位:每帧提特征 → 与本地关键帧匹配 → 估姿 → 周期性查全局 BoVW 做闭环。
- Detour TightCoupler 把地纹位姿与激光 / IMU 融合。
- Slowly traverse the entire site (≤ 0.5 m/s) to capture textures.
- Off-line build the texture map (feature DB + keyframe pool); typically ~1 GB per 1000 m².
- At runtime: extract features per frame → match to local keyframes → estimate pose → periodically query global BoVW for loop-closure.
- Detour's TightCoupler fuses ground-texture pose with laser + IMU.
关键参数 / Key parameters
- `featurePerFrame`: 500 (上下限 200–1000)
- `keyframeSpacing`: 30 mm
- `bowVocabSize`: 5000 个视觉单词
- `localBaWindow`: 10 关键帧
- `loopClosureMinScore`: 0.6
适用与不适用 / Applicability
适合 / Use when:
- 地面有微观纹理(混凝土、地砖、橡胶颗粒)
- 工作面平整、车体俯仰/翻滚小
- 激光 SLAM 表现差(长走廊、镜面墙)
不适合 / Avoid when:
- 地面持续湿水、油污(特征被遮)
- 地面定期翻新(特征漂变快)
- 上下楼梯 / 大坡度
快速找回定位 / Re-localisation in ground texture
地纹场景下"丢失定位"恢复较难,因为没有全局粗位姿。MDCS 推荐 二维码辅助方案:在关键位置贴二维码作为 重定位锚点。具体见 使用手册 - 在地纹导航中使用二维码快速找回定位。
In ground-texture mode, recovery is hard. The recommended pattern is QR-assisted re-localisation: paste QR tags at strategic points as anchors. See the dedicated guide.