3. 传感器基础:激光雷达原理、IMU原理、轮式里程计、深度相机、多传感器融合的必要性
做AMR自主导航,说白了就是让机器人知道「我在哪」、「周围有啥」、「怎么走」。这三个问题,全靠传感器来回答。我入行那会儿,总觉得传感器越多越好,后来踩了不少坑才明白——选对传感器,比堆数量重要得多。
3.1 激光雷达:机器人的「眼睛」
激光雷达的原理其实不复杂。它发射激光束,打到物体上反射回来,通过计算飞行时间(TOF)或者三角测距,就能知道障碍物有多远。我习惯把激光雷达分成两类:
- 2D激光雷达:扫描一个平面,常用于室内导航、建图
- 3D激光雷达:扫描多个平面,能感知三维环境,适合室外复杂场景
你想想看,为什么AMR大多用2D激光雷达?因为室内地面平坦,机器人只需要知道同一高度有没有障碍物就够了。3D激光雷达贵,而且数据量大,处理起来费劲。
核心参数:
- 扫描频率:10Hz-50Hz,越高越能捕捉动态物体
- 角分辨率:0.1°-1°,决定了能看清多小的物体
- 测量距离:室内一般用10-30m,室外需要50m以上
- 精度:±2cm-±5cm,建图时精度直接影响地图质量
避坑指南:我曾经在项目中用了某款低价激光雷达,标称测距30m,结果在阳光下只能测到15m。后来才知道,激光雷达受环境光影响很大。选型时一定要看「抗环境光能力」这个参数。
3.2 IMU:机器人的「内耳」
IMU(惯性测量单元)包含加速度计和陀螺仪。加速度计测线加速度,陀螺仪测角速度。说白了,IMU就是靠「惯性」来推算运动状态。
但IMU有个致命问题——漂移。加速度计积分得到速度,速度积分得到位置,每一步都有误差,时间一长位置就飞了。我记得第一次做纯IMU定位,跑了30秒,位置误差已经超过10米。
为什么会这样?因为IMU的噪声是低频的,积分会放大低频误差。所以IMU不能单独用,必须和其他传感器配合。
| 传感器 | 优点 | 缺点 |
|---|---|---|
| 加速度计 | 静态时能测重力方向,提供俯仰/横滚角 | 动态时噪声大,不能单独用 |
| 陀螺仪 | 短时间角速度准,适合姿态估计 | 长时间积分会漂移 |
注意:IMU的零偏(bias)会随温度变化。我建议每次上电后做静态初始化,采集几秒数据,把零偏估计出来再开始工作。否则定位精度会大打折扣。
3.3 轮式里程计:最朴素的定位方式
轮式里程计,就是通过编码器测量轮子转了多少圈,再结合轮径、轮距,推算出机器人走了多远、转了多少角度。这个方法简单、便宜、实时性好。
但问题也很明显:
- 打滑:地面湿滑或急加速时,轮子空转,里程计会多算距离
- 轮径变化:轮胎磨损、胎压变化,都会导致测量不准
- 累积误差:和IMU一样,里程计也是积分过程,误差会累积
我个人习惯,在平坦硬质地面上,轮式里程计的精度能做到1%-3%。但遇到地毯、瓷砖、斜坡,误差可能飙升到10%以上。所以轮式里程计只能作为短时参考,不能长期依赖。
3.4 深度相机:看得更「立体」
深度相机能直接输出每个像素的深度值,相当于给普通相机加了个「测距」功能。常见的方案有三种:
- 结构光:投射红外点阵,通过变形计算深度。室内效果好,室外受阳光干扰大
- 双目视觉:两个相机模拟人眼,通过视差计算深度。不依赖主动光源,但计算量大
- ToF:发射红外光,测量飞行时间。速度快,但分辨率低
深度相机的好处是能提供稠密的深度信息,适合做避障、物体识别。但它的有效距离通常只有3-10米,而且对纹理、光照敏感。我在项目中用过双目相机,在白色墙壁面前直接「失明」——因为没有纹理,匹配不到特征点。
选型建议:
- 室内导航:结构光或ToF,性价比高
- 室外导航:双目视觉,抗阳光干扰
- 需要高精度:双目+结构光融合
3.5 多传感器融合:为什么是「必须」?
讲到这里,你应该发现了——没有一种传感器是完美的。
- 激光雷达精度高,但怕玻璃、怕黑、怕阳光
- IMU实时性好,但会漂移
- 轮式里程计简单,但打滑就废了
- 深度相机信息丰富,但距离短、受光照影响大
多传感器融合,就是取长补短。比如:
- 激光雷达提供全局定位,IMU填补两帧之间的运动
- 轮式里程计提供短时速度,修正IMU的漂移
- 深度相机检测动态障碍物,补充激光雷达的盲区
我做过一个项目,只用激光雷达做定位,结果机器人经过一面玻璃墙时直接「消失」了——激光穿透玻璃,测不到距离。后来加了IMU和里程计,用卡尔曼滤波融合,才解决了这个问题。
我的经验:融合不是简单地把数据加起来。你得理解每个传感器的「脾气」——什么时候准,什么时候不准。比如IMU在静止时很准,运动时噪声大;激光雷达在空旷环境准,在狭窄走廊容易多路径反射。把这些先验知识写进融合算法里,效果会好很多。
嗯,传感器基础就讲到这里。下一节我们会深入讲卡尔曼滤波,看看怎么把这些传感器的数据真正「揉」在一起。