04 感知、状态估计与 SLAM
本章抓手
- 感知回答“世界里有什么”,状态估计回答“当前状态是什么”,SLAM 回答“我在哪里且地图是什么”。
- Robotics 中感知结果必须服务行动,低延迟、坐标一致和不确定性传递非常关键。
- 很多系统失败不是模型不够大,而是标定、时间戳、漂移和退化场景没有处理好。
它解决什么问题
机器人需要知道自己在哪里、周围有什么、世界如何变化。感知 perception 负责从传感器中提取语义和几何信息;状态估计 state estimation 负责融合 noisy observations 得到连续、低延迟的状态;SLAM 负责在未知环境中同时定位和建图。
感知 Perception
感知回答“世界里有什么”。在 robotics 中,感知不是独立 benchmark,而是要服务于行动。
常见任务:
- Object detection:检测物体位置和类别。
- Segmentation:像素级或点级分割。
- Depth estimation:估计深度。
- Pose estimation:估计物体 6D pose。
- Tracking:跨时间关联目标。
- Affordance perception:识别物体可抓、可推、可打开等动作属性。
代表方法:
- CNN / Transformer based visual perception。
- PointNet / sparse convolution for point cloud。
- Multi-view geometry。
- 2D-to-3D fusion。
- BEV representation。
Robotics 特殊要求:
- 低延迟比单帧精度更重要时很常见。
- 误检和漏检的代价取决于下游任务。
- 不确定性需要传给规划层,而不是只输出 hard label。
- 标定、光照、运动模糊、遮挡和域偏移会显著影响部署。
学习关键词:robot perception, 6D pose estimation, affordance, point cloud, BEV。
状态估计 State Estimation
状态估计回答“系统当前状态是什么”。它通常比 perception 更接近控制闭环,因此强调连续性、低延迟和不确定性表达。
常见状态:
- 机器人 base pose。
- 速度和加速度。
- 姿态 orientation。
- IMU bias。
- 关节位置和速度。
- 物体位姿。
核心方法:
- Bayesian filtering:递归更新 belief。
- EKF / UKF:非线性系统上的高斯近似滤波。
- Particle filter:用粒子表达非高斯分布。
- Factor graph:把估计问题写成图优化。
- Smoothing:利用一段时间窗口联合优化。
典型接口:
prediction: x_t = f(x_{t-1}, u_t) + process_noise
update: z_t = h(x_t) + measurement_noise
学习关键词:state estimation, sensor fusion, EKF, particle filter, factor graph。
传感器融合 Sensor Fusion
单一传感器往往不可靠,所以 robotics 依赖 fusion。
常见组合:
- Camera + IMU:visual-inertial odometry。
- LiDAR + IMU:LiDAR-inertial odometry。
- Wheel encoder + IMU:移动机器人里程计。
- GPS + IMU + wheel odometry:自动驾驶定位。
- Force sensor + vision:接触操作。
融合难点:
- 时间戳不同步。
- 坐标系外参不准。
- 传感器频率不同。
- 噪声分布和 outlier 不匹配。
- 某些传感器在特定环境中退化。
学习关键词:sensor fusion, VIO, LIO, calibration, timestamp synchronization。
SLAM
SLAM 同时估计机器人轨迹和地图。它的核心矛盾是局部运动估计会漂移,而回环检测 loop closure 可以纠正长期误差。
经典 pipeline:
front-end feature / scan matching
-> data association
-> back-end optimization
-> loop closure
-> map update
关键模块:
- Front-end:从传感器中产生约束,例如视觉特征匹配、LiDAR scan matching。
- Back-end:优化 pose graph 或 factor graph。
- Loop closure:识别回到旧地点并加入全局约束。
- Map representation:决定地图如何被规划和定位使用。
代表算法:
- Visual SLAM:ORB-SLAM, DSO。
- LiDAR SLAM:LOAM, LeGO-LOAM, Cartographer。
- RGB-D SLAM:KinectFusion, ElasticFusion。
- Graph-based SLAM:pose graph optimization。
- Semantic SLAM:把语义对象加入地图。
学习关键词:SLAM, visual odometry, scan matching, loop closure, pose graph optimization。
地图表示 Map Representation
不同地图服务于不同下游任务。
| 地图类型 | 适合用途 | 局限 |
|---|---|---|
| Occupancy grid | 2D 导航、避障 | 语义弱,三维表达有限 |
| Point cloud map | 3D 几何定位 | 存储大,规划不方便 |
| TSDF / ESDF | 3D 重建、距离查询 | 更新和内存成本较高 |
| Topological map | 长距离导航 | 几何精度低 |
| Semantic map | 任务规划、人机交互 | 构建难,语义误差影响大 |
| Object-centric map | 操作和长期任务 | 依赖稳定物体检测和跟踪 |
学习关键词:occupancy grid, TSDF, ESDF, semantic map, topological map。
与规划和控制的关系
- 感知决定机器人知道哪些障碍、物体和可操作区域。
- 状态估计决定控制器输入是否稳定和及时。
- 地图表示决定规划器能用什么约束和代价。
- SLAM 漂移会让长期导航和操作失败。
- 感知不确定性如果不传递给规划层,会形成隐藏风险。
常见失败模式
- 标定错误导致所有几何推断系统性偏移。
- 低纹理、强反光、动态物体让视觉里程计退化。
- 长走廊、重复结构让回环检测误匹配。
- LiDAR 在玻璃、雨雾、稀疏结构中表现变差。
- 状态估计延迟让控制器看见“过去的状态”。
学习关键词
robot perception, state estimation, Bayesian filtering, EKF, factor graph, visual-inertial odometry, LiDAR SLAM, semantic mapping, calibration。