具有高鲁棒性的激光SLAM算法
概述 / Overview
MDCS 中"激光 SLAM 鲁棒性"指的是在 特征贫乏、动态多、环境光干扰、传感器噪声等不友好条件下仍能稳定输出位姿的能力。本页列出 Detour 激光 SLAM 用到的关键鲁棒性技巧(与 算法细节 是不同维度的视角)。
"Robustness" in MDCS laser SLAM means stable pose output even when the environment is featureless, dynamic-heavy, glare-prone, or sensor-noisy. This page lists the key techniques Detour uses (an orthogonal view to the algorithmic details).
关键技巧 / Key techniques
1. 多分辨率扫描匹配 / Multi-resolution scan matching
从粗到细搜索位姿:先在 10 cm 分辨率上找候选 → 再 2 cm → 再 5 mm。等效于 分支限界,避免直接在原始分辨率求全局最优时的指数代价。
Coarse-to-fine pose search (10 cm → 2 cm → 5 mm). Branch-and-bound equivalent; avoids the exponential cost of direct fine-grained search.
2. 紧耦合 IMU 预积分 / Tight-coupled IMU pre-integration
把 IMU 数据从激光帧之间积分得到 相对位姿先验,作为扫描匹配的初值。在动态环境(车辆运动 + 旋转剧烈)下,避免位姿跳变。
Integrate IMU between laser frames to give the scan matcher a relative-pose prior. Prevents pose jumps in dynamic-heavy / high-yaw conditions.
3. 动态障碍过滤 / Dynamic obstacle filtering
- 占用一致性: 维护"长期占用率"地图,与当前帧异常突现的点视为动态点丢弃。
- 可见性约束: 与上一帧比较 —— 一个点如果在上一帧应被现帧雷达看到却没有,视为动态。
- 速度约束: 同一区域连续帧出现的点云速度估计 > 步行速度 → 滤除。
- Occupancy consistency: maintain a long-term occupancy map; reject points appearing where the map says 'free'.
- Visibility check: a point present in the previous frame but absent now (or vice versa, in expected region) is dynamic.
- Velocity gate: estimated cloud velocity > walking speed → reject.
4. 反光板辅助 / Reflector assistance
在长直走廊 / 镜面 / 重度对称的场景下,铺 高反光板作为人工地标,几何匹配亚厘米精度。详见 激光 SLAM + 反光板建图手册。
In long corridors / mirrored / heavily symmetric scenes, deploy high-reflectivity panels as artificial landmarks for sub-cm geometric matching.
5. 自适应协方差 / Adaptive covariance
扫描匹配的输出位姿同时附带 协方差矩阵(来自 Hessian 求逆)。当协方差大 → TightCoupler 自动降权,让 IMU / 里程计主导;协方差小 → 激光主导。
The scan matcher outputs not only a pose but its covariance (from Hessian inverse). When uncertainty is high, TightCoupler down-weights laser and lets IMU / odom dominate; when low, laser leads.
6. 多源融合 / Multi-source fusion
激光不是唯一定位源 —— 与 地纹、天花板、二维码、IMU、RTK、UWB 紧耦合(多定位源的自动综合)。
7. 局部 / 全局重定位 / Local / global re-localisation
"丢线"分两级:
- 局部丢失 (协方差 > 阈值 持续 N 帧) → 小搜索半径重定位
- 全局丢失 (局部重定位失败 > T 秒) → 全图分支限界搜索(建图 提供的初始地图)
"Lost" comes in two grades: local (covariance > threshold for N frames) → small search radius; global (local recovery fails > T seconds) → full-map branch-and-bound.
8. 长期地图自更新 / Long-term map self-update
环境会变(货架挪位、临时区域开通)。Detour 定期把"明显持久的占用变化"合并到地图:可选 自动(默认关)或 手动审批(推荐)。
Environments drift. Detour can fold "obviously persistent occupancy changes" back into the map — manual approval (default) or auto-merge (opt-in).
9. 弱场景预测 / Weak-scene prediction
建图后离线分析地图:每个格点 几何信息量有多大(垂直墙体的距离、特征覆盖角度)。低信息量区域在 UI 上显示为黄色,提示开发者 加反光板或 减少在此区段做精动作。
Off-line analysis after mapping: per-cell geometric information score (perpendicular wall distance, feature angular coverage). Low-score regions show yellow in the UI — hint to add reflectors or avoid precise work there.
不属于 SLAM 的鲁棒性 / Things outside SLAM proper
有些鲁棒性是 上层组件的责任,不应混入 SLAM:
- 传感器故障切换 / Sensor failover: Medulla 监测雷达 watchdog;超时切到备份雷达。
- 突遇人员: Clumsy 局部 e-stop(绕障行走)。
- 任务级回退: SimpleCore 收到位姿 totally lost事件 → 全局停车,操作工介入。
- Sensor failover: Medulla's watchdog flips to a backup lidar.
- Sudden people: Clumsy's local e-stop.
- Mission-level fallback: SimpleCore halts the fleet when localisation is utterly lost; operator intervention.
调试与验证 / Validation
- SLAM 健康指标: Detour UI 显示协方差、闭环数 / s、动态过滤丢点率、活跃 SLAM 后端。
- 回放: 用 数据录制与回放 在离线复现疑难帧。
- Stress test: 在仓库引入有意的扰动(多人通过、临时叉车),观察 SLAM 输出的位姿连续性。