4. 传感器数据基础
SLAM前端里程计的本质,是把不同传感器采集到的原始观测转换成“位姿增量”的估计。不同传感器的数据格式、坐标系约定、时间戳语义和噪声模型差异极大,如果对这些基础特性理解不清,后续的扫描匹配、点云配准、预积分和融合都会出现难以定位的误差。本节从数据格式与噪声特性两个维度,梳理四类常用传感器的关键要点。
一、四类传感器的数据格式与坐标系
激光雷达输出的是距离测量集合。2D激光雷达通常以极坐标形式给出每个角度上的距离,转换为笛卡尔坐标后形成平面点云;3D激光雷达则输出带强度信息的三维点云,常见格式为 PointCloud2,字段包括 x, y, z, intensity, ring, time。RGB-D相机同时输出彩色图像、深度图像和相机内参,深度图每个像素对应一个深度值,需通过内参反投影为点云。IMU输出三轴线加速度与三轴角速度,部分器件还提供磁力计和姿态四元数。轮式里程计则通过编码器脉冲累计得到左右轮位移,再依据运动学模型解算为平面位姿增量。
坐标系是数据格式中容易被忽视却极其关键的部分。激光雷达数据通常定义在 laser 或 lidar 坐标系下,RGB-D相机数据定义在 camera 坐标系下,IMU定义在 imu 坐标系下,轮式里程计定义在 odom 坐标系下。所有传感器数据在进入前端里程计前,必须通过外参标定统一到同一参考坐标系,否则点云配准会出现系统性偏差。
二、噪声特性与误差来源
激光雷达的测距噪声通常近似为高斯分布,但存在两类非高斯误差:一是运动畸变,即雷达旋转或平台移动过程中,同一帧内不同时刻采集的点不在同一坐标系下,表现为点云“拖尾”;二是环境噪声,如玻璃、镜面、黑色物体导致回波丢失或测距异常。3D激光雷达还存在垂直角分辨率带来的稀疏性问题,远处地面点间距可达数十厘米。
RGB-D相机的深度噪声与距离强相关。结构光相机在近距离精度较高,但随距离增加误差迅速增大;ToF相机在远距离仍有较好表现,但存在多路径干扰。透明物体、反光表面和黑色吸光材质会导致深度缺失或跳变。此外,RGB与深度图之间的对齐误差、卷帘快门效应也会引入额外噪声。
IMU的噪声模型包含两部分:确定性误差(零偏、尺度因子、轴间不对准)和随机误差(高斯白噪声、零偏随机游走)。零偏会随时间缓慢变化,必须在线估计;随机游走导致角速度和加速度积分后位姿漂移随时间累积,因此IMU通常只用于短时高频位姿预测,需与其他传感器融合校正。
轮式里程计的误差主要来自轮径标定不准、轮距标定误差、地面打滑和轮胎形变。在光滑地面或急转弯时,打滑会使里程计读数严重偏离真实运动,表现为位姿协方差急剧增大。因此轮式里程计适合作为低频、平滑的运动先验,而不适合单独承担长距离定位。
三、典型数据格式与参数示例
以下以ROS中常见消息格式为例,展示关键字段与典型参数:
# 2D LaserScan 关键字段
angle_min: -3.14159
angle_max: 3.14159
angle_increment: 0.00436 # 约0.25°
range_min: 0.05
range_max: 30.0
ranges: [1.23, 1.25, ...] # 每个角度的距离
# 3D PointCloud2 关键字段
fields: x, y, z, intensity, ring, time
point_step: 32
is_dense: false
# IMU 关键字段
linear_acceleration: {x, y, z}
angular_velocity: {x, y, z}
orientation_covariance: [...]
# 轮式里程计
pose.pose.position: {x, y, z}
pose.pose.orientation: {x, y, z, w}
twist.twist.linear.x: v
twist.twist.angular.z: ω
四、误区与复盘
常见误区一:忽略时间戳同步。激光雷达与IMU时间戳未对齐时,运动补偿会引入系统性偏差,表现为建图重影。务必检查各传感器时间戳是否来自同一时钟源,必要时做时间偏移标定。
常见误区二:直接用原始点云配准。未去畸变的3D点云在快速运动时配准误差显著增大。应先利用IMU或匀速模型做去畸变,再进行扫描匹配。
常见误区三:过度信任轮式里程计。在打滑场景下,轮式里程计方差应被动态放大,否则融合结果会被错误观测拉偏。
复盘建议:建立传感器数据质量检查清单——时间戳是否单调递增、点云是否有NaN、IMU零偏是否收敛、轮式里程计协方差是否合理。每次前端里程计出现异常时,先回查原始数据质量,再排查算法参数。
五、核心要点清单
| 传感器 | 核心数据 | 主要噪声 | 前端使用方式 |
|---|---|---|---|
| 2D激光雷达 | 距离+角度 | 测距误差、角度分辨率 | 扫描匹配、位姿增量 |
| 3D激光雷达 | 三维点云+强度 | 运动畸变、环境噪点 | 点云配准、去畸变 |
| RGB-D相机 | RGB+深度+内参 | 深度随距离增大、多路径 | 视觉里程计、点云生成 |
| IMU | 加速度+角速度 | 零偏、随机游走 | 预积分、运动预测 |
| 轮式里程计 | 轮速→位姿 | 打滑、标定误差 | 低频先验、融合约束 |
理解四类传感器的数据格式与噪声特性,是设计鲁棒前端里程计的前提。实际系统中,往往需要根据场景特点选择传感器组合,并针对各自噪声模型设计滤波、加权或鲁棒核函数,才能获得稳定可靠的位姿估计。