第1章 传感器选型与数据采集基础

做SLAM这么多年,我越来越觉得——传感器选型才是整个系统的基石。你想想看,算法再牛,如果传感器数据本身就有硬伤,后面再怎么优化也是白搭。这一章咱们就聊聊激光雷达、IMU、相机和轮式里程计,它们各自是什么脾气,选型时该盯住哪些参数。

📡 传感器选型与数据采集 · 知识框架 激光雷达 IMU 相机 轮式里程计 选型核心维度 精度 · 频率 · 视场角 · 抗干扰 · 成本 · 同步能力

1.1 激光雷达 —— 点云世界的眼睛

激光雷达,说白了就是通过发射激光束并测量往返时间来感知周围物体。机械式、固态、混合固态…… 市面上种类不少。我个人习惯先看两个硬指标:线数和测距精度。

  • 线数:16线、32线、64线甚至128线。线数越多,点云越密,但价格也翻着跟头涨。做室内低速机器人,16线其实够用;做自动驾驶,至少32线起步。
  • 测距精度:一般标称 ±2cm ~ ±5cm。但注意,这是针对高反射率目标。我在项目中遇到过,黑色车辆在10米外测距误差直接飙到10cm以上。
  • 视场角 (FOV):水平360°是机械雷达的标配,垂直视场角则差异很大,从30°到90°都有。
💡 我的经验: 选型时别只看最高参数。我曾经为了追求高线数,选了一款128线雷达,结果点云数据量太大,工控机CPU直接跑满。后来换了64线,配合合适的降采样,效果反而更稳。

1.2 IMU —— 藏在身体里的惯性导航

IMU(惯性测量单元)包含加速度计和陀螺仪。它不依赖外部信号,但有个致命缺点——漂移。你想想看,加速度积分一次得速度,再积分得位移,误差随时间疯狂累积。

选型时我主要关注:

  • 零偏稳定性:消费级IMU(如MPU6050)零偏稳定性在 10°/h 左右,工业级(如ADIS16470)能做到 0.1°/h。做SLAM后端优化,IMU预积分对零偏很敏感。
  • 输出频率:至少 100Hz 以上,200Hz 更理想。低频IMU在快速旋转时容易丢信息。
  • 量程:加速度计 ±8g 够用,陀螺仪 ±500°/s 覆盖大部分场景。
⚠️ 避坑指南: 我曾经用了一款廉价IMU做VIO初始化,静止时零偏变化像过山车。后来换了带温补的工业级IMU,初始化稳定性明显提升。记住,IMU的温漂是隐形杀手。

1.3 相机 —— 视觉SLAM的灵魂

相机分为单目、双目、RGB-D。单目便宜但有尺度不确定性;双目通过基线计算深度,但基线越长,近距离盲区越大;RGB-D直接输出深度图,但容易受环境光干扰。

选型要点:

  • 分辨率与帧率:640×480 @ 30fps 是底线。做特征点提取,分辨率太高反而拖慢速度。我一般用 1280×720 @ 30fps 平衡效果和性能。
  • 全局快门 vs 卷帘快门:运动场景下,卷帘快门会产生果冻效应。做SLAM,全局快门是首选。
  • 同步触发:支持硬件触发(如PPS信号)的相机,能极大简化多传感器时间同步。
🔑 核心观点: 相机和IMU是天生一对。视觉提供纹理,IMU提供快速运动估计。但前提是两者时间戳要对齐。我习惯用硬件同步线把相机和IMU的时钟绑在一起。

1.4 轮式里程计 —— 被低估的定位源

轮式里程计通过编码器测量车轮转速,再结合运动模型推算位移。它不依赖外部信号,但打滑是硬伤。选型时注意:

  • 编码器分辨率:每转脉冲数(PPR)越高,角度分辨率越细。一般 500~2000 PPR 比较常见。
  • 轮距与车轮直径:这两个参数必须精确标定。我见过一个项目,轮距标定误差1cm,转弯半径偏差导致地图扭曲。
  • 采样频率:至少 50Hz,否则高速运动时容易丢步。

轮式里程计在室内平地上表现不错,但遇到地毯、斜坡或光滑地面,误差会迅速增大。这时候就需要融合IMU或激光雷达来修正。

1.5 选型对比速查表

传感器优势劣势典型频率成本范围
激光雷达直接测距,精度高受天气影响,价格高10~20 Hz¥2000~¥50000+
IMU完全自主,高频漂移严重100~400 Hz¥50~¥10000
相机纹理丰富,成本低光照敏感,尺度模糊30~60 Hz¥100~¥5000
轮式里程计简单可靠,无漂移(短时)打滑,依赖地面50~200 Hz¥200~¥2000

1.6 数据采集的硬性门槛

传感器选好了,采集环节也不能马虎。我总结了几条铁律:

  • 时间同步:所有传感器使用同一时钟源(如GPS的PPS或ROS的time)。没有硬件同步,后期软件对齐会非常痛苦。
  • 数据记录格式:推荐使用rosbag(ROS环境)或自定义二进制格式。别用文本存点云,文件大得离谱。
  • 标定先行:内参、外参、时间延迟,必须在采集前完成粗标定。我曾经因为忘记标定相机-IMU外参,导致整个数据集作废。
📌 小技巧: 采集时多跑几圈“8”字轨迹,这样能充分激励IMU的各个轴,方便后续标定和VIO初始化。

嗯,这一章的内容差不多就是这些。传感器选型没有的最好,只有最适合你的场景。