2、传感器基础:激光雷达原理与数据特点、深度相机与视觉传感器、IMU与里程计融合、传感器选型建议
做机器人避障这么多年,我最大的感触就是:传感器选对了,项目就成功了一半。你想想看,算法再牛,传感器数据一塌糊涂,那也是白搭。今天咱们就聊聊几种主流传感器的原理、特点,以及我踩过的那些坑。
2.1 激光雷达:原理与数据特点
激光雷达,说白了就是“用光来测距的雷达”。它发射激光束,打到物体上反射回来,通过计算时间差或相位差,就能知道距离。
2.1.1 工作原理
主流方案有两种:
- TOF(飞行时间法):直接测激光往返时间。精度高,抗干扰强,但成本也高。我在做园区物流机器人时,用的就是TOF雷达,室外强光下依然稳定。
- 三角测距法:利用激光发射点和接收点的几何关系算距离。成本低,但近距离精度好,远距离就拉胯了。适合室内小场景。
核心参数速查表
| 参数 | 说明 | 我的建议 |
|---|---|---|
| 扫描频率 | 10-20Hz常见 | 动态避障建议≥15Hz |
| 角分辨率 | 0.1°-1° | 越小越好,但数据量也大 |
| 测量距离 | 室内10-30m,室外可达100m+ | 根据场景选,别盲目追求远 |
| 精度 | ±1-3cm | TOF通常优于三角法 |
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 我的选型流程
- 明确需求:要避障?要建图?要识别?不同需求对传感器要求不同。
- 评估环境:室内/室外?光照?动态物体多不多?
- 算力匹配:传感器数据量越大,对处理器要求越高。别选了高分辨率相机,结果跑不动。
- 成本控制:工业级传感器和消费级,价格差10倍。看项目预算。
- 冗余设计:关键应用一定要有冗余。我见过单激光雷达的AGV,被一块玻璃搞停线。
一句话总结:激光雷达是“骨架”,提供精确距离;视觉是“血肉”,提供丰富语义;IMU是“神经”,提供运动感知。三者融合,才能让机器人真正“看懂”世界。
嗯,传感器这块内容不少,但核心就这些。记住:没有最好的传感器,只有最合适的组合。我在项目里吃过不少亏,也积累了一些经验,希望能帮你少走弯路。
公众号:蓝海资料掘金营,微信deep3321