2、传感器基础:激光雷达原理与数据特点、深度相机与视觉传感器、IMU与里程计融合、传感器选型建议

做机器人避障这么多年,我最大的感触就是:传感器选对了,项目就成功了一半。你想想看,算法再牛,传感器数据一塌糊涂,那也是白搭。今天咱们就聊聊几种主流传感器的原理、特点,以及我踩过的那些坑。

2.1 激光雷达:原理与数据特点

激光雷达,说白了就是“用光来测距的雷达”。它发射激光束,打到物体上反射回来,通过计算时间差或相位差,就能知道距离。

2.1.1 工作原理

主流方案有两种:

  • TOF(飞行时间法):直接测激光往返时间。精度高,抗干扰强,但成本也高。我在做园区物流机器人时,用的就是TOF雷达,室外强光下依然稳定。
  • 三角测距法:利用激光发射点和接收点的几何关系算距离。成本低,但近距离精度好,远距离就拉胯了。适合室内小场景。

核心参数速查表

参数说明我的建议
扫描频率10-20Hz常见动态避障建议≥15Hz
角分辨率0.1°-1°越小越好,但数据量也大
测量距离室内10-30m,室外可达100m+根据场景选,别盲目追求远
精度±1-3cmTOF通常优于三角法

2.1.2 数据特点与处理

激光雷达输出的是点云数据,说白了就是一堆(x, y, z)坐标点。但要注意:

  • 稀疏性:单线雷达只有一圈点,16线也就16圈。别指望它看清细节。
  • 噪声:玻璃、镜面、雨雪都会产生噪点。我曾经在玻璃幕墙前吃过亏,雷达直接“看穿”了。
  • 运动畸变:机器人移动时,一帧数据里的点其实是不同时刻采集的。需要做运动补偿。

我的处理习惯:拿到点云先做滤波,去掉孤立噪点。然后用体素滤波降采样,控制数据量。最后做运动畸变校正,这步不能省。

2.2 深度相机与视觉传感器

视觉传感器这几年火得不行。它不像激光雷达只能测距离,还能提供纹理、颜色、语义信息。说白了,它能“看懂”环境。

2.2.1 主流方案对比

类型原理优点缺点
双目立体视觉两个相机视差计算深度成本低,室内外都行纹理弱时失效,计算量大
结构光投射红外点阵,变形算深度近距离精度高室外强光下基本废了
ToF深度相机类似激光雷达,但用面阵帧率高,体积小分辨率低,多机干扰

我个人习惯是:室内用结构光或ToF,室外用双目。有一次在室外做巡检机器人,用了结构光相机,大太阳底下直接“瞎了”,后来换成双目才搞定。

2.2.2 视觉数据的坑

  • 光照敏感:太亮过曝,太暗没信息。需要自动曝光或HDR。
  • 运动模糊:机器人一快,图像就糊。我一般把曝光时间控制在10ms以内。
  • 计算资源:一张1080p图像处理起来,CPU直接拉满。建议用GPU或NPU加速。

注意:深度相机在纯色墙面、反光表面、细长物体(比如电线)上,深度值会丢失或出错。这是物理限制,算法很难完全弥补。

2.3 IMU与里程计融合

IMU(惯性测量单元)测加速度和角速度。它有个特点:短期精度高,长期漂移大。里程计(比如轮式编码器)则相反,长期稳定但短期有滑移。

所以,融合是必然的。我常用的方法是扩展卡尔曼滤波(EKF)。

2.3.1 融合思路

说白了就是:用IMU的高频数据做状态预测,用里程计的低频数据做观测校正。这样既保证了实时性,又抑制了漂移。

# 伪代码示意
while True:
    # IMU预测
    predict_state(imu_data)
    predict_covariance()
    
    # 里程计更新
    if odom_available:
        kalman_gain = compute_gain()
        state = state + kalman_gain * (odom_measurement - predicted_measurement)
        covariance = (I - kalman_gain * H) * covariance

避坑指南:我曾经在EKF里把IMU的噪声参数设得太小,结果系统过于相信IMU,一震动就飘。后来老老实实做了艾伦方差分析,才把参数调对。

2.3.2 常见融合方案

  • EKF:经典方案,适合非线性不强的系统。我用了好多年。
  • ESKF(误差状态卡尔曼滤波):对姿态估计更友好,适合四旋翼。
  • 因子图优化:精度高,但计算量大。适合离线或高算力平台。

2.4 传感器选型建议

选传感器,我总结了四个字:够用就好。别盲目追求参数,关键看场景。

2.4.1 场景化选型

场景推荐方案理由
室内仓储AGV单线激光雷达 + 轮式里程计成本低,够用
室内服务机器人深度相机 + IMU需要避障+识别
室外巡检多线激光雷达 + 双目 + IMU + GPS环境复杂,冗余必须
无人机避障双目 + IMU + 超声波重量敏感,视觉为主

2.4.2 我的选型流程

  1. 明确需求:要避障?要建图?要识别?不同需求对传感器要求不同。
  2. 评估环境:室内/室外?光照?动态物体多不多?
  3. 算力匹配:传感器数据量越大,对处理器要求越高。别选了高分辨率相机,结果跑不动。
  4. 成本控制:工业级传感器和消费级,价格差10倍。看项目预算。
  5. 冗余设计:关键应用一定要有冗余。我见过单激光雷达的AGV,被一块玻璃搞停线。

一句话总结:激光雷达是“骨架”,提供精确距离;视觉是“血肉”,提供丰富语义;IMU是“神经”,提供运动感知。三者融合,才能让机器人真正“看懂”世界。

传感器融合知识体系 激光雷达 深度相机/视觉 IMU + 里程计 TOF / 三角测距 点云稀疏 / 运动畸变 双目 / 结构光 / ToF 光照敏感 / 计算量大 短期准 / 长期漂 EKF / ESKF 融合 多传感器融合 → 稳定避障 各传感器互补,共同构建环境感知能力

嗯,传感器这块内容不少,但核心就这些。记住:没有最好的传感器,只有最合适的组合。我在项目里吃过不少亏,也积累了一些经验,希望能帮你少走弯路。


公众号:蓝海资料掘金营,微信deep3321