传感器基础与数据采集:激光雷达、IMU、里程计与相机

大家好,我是你们的老朋友。今天我们来聊聊SLAM系统的“眼睛”和“耳朵”——传感器。说实话,很多同学做SLAM做到崩溃,不是算法不行,而是传感器数据没用好。我见过太多人拿着噪声巨大的激光数据硬跑算法,结果地图建得一塌糊涂。

这一章,我会把激光雷达、IMU、里程计和相机这四类核心传感器掰开揉碎了讲。咱们不光讲原理,还会聊聊我在实际项目中踩过的坑。

核心观点:传感器数据质量,直接决定了SLAM系统的上限。算法再好,也救不了烂数据。

1. 激光雷达:2D与3D的差异

激光雷达,说白了就是通过发射激光束并测量反射时间来测距。2D激光雷达扫一个平面,3D激光雷达扫一个立体空间。

2D激光雷达:常见于扫地机器人、AGV小车。它只能获取一个平面内的距离信息。我早期做室内机器人时,就吃过亏——2D雷达看不到桌子腿以上的障碍物,结果机器人一头撞上了悬空的柜门。

3D激光雷达:比如Velodyne、Livox系列。它能获取三维点云,适合复杂环境。但要注意,3D雷达的数据量巨大,处理不好会拖垮CPU。

类型 典型型号 数据量 适用场景
2D RPLIDAR A1 ~1K点/帧 室内平面导航
3D Velodyne VLP-16 ~30K点/帧 室外三维建图

我的经验:选型时别只看分辨率。2D雷达的扫描频率通常更高(10-40Hz),适合快速运动场景。3D雷达频率低(5-20Hz),但信息丰富。我曾经在AGV项目里混用2D和3D雷达做融合,效果出奇的好。

2. IMU与里程计:互补的“难兄难弟”

IMU(惯性测量单元)测量加速度和角速度。里程计(轮式或视觉)测量相对位移。它们各有致命缺陷:IMU有漂移,里程计有滑移。

为什么会这样?IMU积分一次得到速度,再积分得到位置,误差会随时间平方增长。轮式里程计在光滑地面上打滑时,数据直接报废。

我的做法:用IMU做短时间的高频估计,用里程计做长时间的低频校正。两者通过扩展卡尔曼滤波(EKF)融合。嗯,这里要注意,IMU的零偏校准一定要做,否则融合结果还不如不用IMU。

避坑指南:我曾经在户外越野车上只用IMU做位姿估计,结果10秒后位置漂了5米。后来加了轮式里程计做约束,才把误差压到0.3米以内。记住:IMU不能单独用,必须配合其他传感器。

3. 相机模型与图像数据

相机模型,核心就是针孔模型和畸变模型。针孔模型描述光线如何通过小孔成像,畸变模型修正镜头带来的径向和切向变形。

你想想看,一张图像上的像素点(u, v),怎么对应到三维空间中的点(X, Y, Z)?公式很简单:

// 针孔模型投影公式
u = fx * X / Z + cx
v = fy * Y / Z + cy

其中fx, fy是焦距,cx, cy是光心偏移。这些参数需要通过标定得到。我建议用OpenCV的棋盘格标定法,至少拍20张不同角度的图片。

图像数据的特点:

  • 分辨率高(百万像素级),但受光照影响大
  • 纹理丰富时特征点提取效果好,弱纹理区域(白墙)直接失效
  • 帧率通常30fps,比激光雷达高,但计算量大

我的习惯:在弱光环境下,我会把相机曝光时间调长,但要注意运动模糊。曾经在隧道里做视觉SLAM,图像全黑,后来加了红外补光灯才解决问题。

4. ROS下的数据录制与回放

ROS(机器人操作系统)提供了强大的数据录制工具——rosbag。我个人觉得,这是SLAM开发中最实用的功能之一。

录制数据:

# 录制所有话题
rosbag record -a -o my_data.bag

# 录制指定话题
rosbag record /scan /imu /odom /camera/image_raw -o my_data.bag

回放数据:

# 以1倍速回放
rosbag play my_data.bag

# 以0.5倍速回放(方便调试)
rosbag play -r 0.5 my_data.bag

为什么要用rosbag?因为你可以反复使用同一份数据调试算法,确保结果可复现。我当年做SLAM时,就是靠着一份rosbag数据,反复调参,最终找到了最优参数组合。

注意:录制时一定要保证时间戳同步。不同传感器的时间戳如果偏差超过10ms,融合效果会大打折扣。我曾经因为电脑时钟不同步,导致激光和IMU数据错位,建图直接失败。后来用NTP同步所有设备时间才解决。

5. 知识体系总览

下面这张图,是我对本章知识体系的总结。你可以看到,传感器数据采集是SLAM的起点,数据质量决定了后续所有环节的成败。

传感器数据采集 激光雷达 2D/3D测距 IMU与里程计 惯性/轮式估计 相机模型 图像数据采集 ROS工具 录制与回放 数据质量决定SLAM系统上限

好了,这一章的内容就到这里。传感器是SLAM的基石,理解它们的特性和局限,比背公式更重要。下一章我们会深入数据预处理,到时候见。

可可精品资料库