第1章:传感器基础——扫地机器人的“感官世界”
大家好,我是你们的老朋友。今天咱们聊聊扫地机器人的传感器。
你想想看,一台机器要自己满屋子跑,还得知道哪儿脏、哪儿有墙、哪儿会掉下去。靠什么?靠的就是传感器。说白了,传感器就是机器人的眼睛、耳朵和触觉。
我做了这么多年SLAM,踩过不少坑。今天就把这些传感器的底细,给你掰扯清楚。
1.1 激光雷达(LDS)——机器人的“主心骨”
激光雷达,英文叫LDS(Laser Distance Sensor)。这是目前主流扫地机最核心的传感器。没有它,地图构建基本没戏。
工作原理:
它发射一束激光,打到障碍物上反射回来。通过测量飞行时间(ToF,Time of Flight),算出距离。然后旋转扫描,一圈下来就是360°的环境轮廓。
核心公式:
距离 = (光速 × 飞行时间) / 2
注意:除以2是因为光走了个来回。
我个人的经验:
我在项目里用过单线激光雷达,就是那种只扫一个平面的。它有个致命弱点——遇到低矮的障碍物(比如拖鞋、电线),它根本看不见。因为激光束是水平的,低矮物体在扫描平面以下。
避坑指南:
我曾经遇到过一台扫地机,激光雷达明明扫到了墙,但机器人还是撞上去了。后来发现,是雷达的安装角度偏了0.5度。别小看这0.5度,5米外误差就是4厘米。所以,安装校准一定要做。
常见参数:
| 参数 | 典型值 | 说明 |
|---|---|---|
| 扫描半径 | 6-12米 | 家用足够,商用需要更大 |
| 扫描频率 | 5-15 Hz | 越高,地图更新越快 |
| 角度分辨率 | 0.5° - 1° | 越小,细节越丰富 |
| 测距精度 | ±1-3 cm | 受环境光影响 |
小技巧:
如果你自己调试雷达数据,可以用ROS的rviz工具可视化。看到点云图,你就知道机器人“看”到了什么。
1.2 红外传感器——低成本的距离感知
红外传感器,成本低,功耗小。很多入门级扫地机用它替代激光雷达。
原理:
发射红外光,接收反射光。通过三角测距法计算距离。说白了,就是发射器和接收器之间有个夹角,根据反射光落在接收器上的位置,算出距离。
我的看法:
红外传感器有个大问题——受环境光干扰严重。阳光直射下,它基本就废了。我建议只在室内、光线稳定的场景用。
适用场景:
- 悬崖检测(防止机器人掉下楼梯)
- 沿墙行走(配合碰撞传感器)
- 近距离避障(10cm以内)
1.3 超声波传感器——不怕玻璃的“蝙蝠”
超声波传感器,模仿蝙蝠的回声定位。发射超声波,接收回波,算时间差。
为什么需要它?
激光和红外遇到透明玻璃,基本就穿过去了。但超声波不一样,声波会被玻璃反射回来。所以,检测玻璃门、玻璃窗,超声波是首选。
我踩过的坑:
我曾经用超声波做避障,发现它有个“盲区”——距离太近(<5cm)时,发射和接收会混在一起,测不准。后来我加了个延时处理,才解决。
注意事项:
- 超声波速度受温度影响,需要温度补偿
- 多个超声波同时工作会互相干扰,需要分时复用
- 软质物体(如窗帘)吸收声波,测距不准
1.4 碰撞传感器——最后的“安全网”
碰撞传感器,说白了就是保险杠。机器人撞到东西了,它才触发。
类型:
- 机械式:微动开关,简单可靠。但容易磨损。
- 电容式:感应人体静电,灵敏度高。但容易误触。
- 压电式:检测压力变化,响应快。成本高一些。
我的建议:
别把碰撞传感器当主要避障手段。它应该是最后一道防线。好的SLAM系统,应该在碰撞前就完成避障。碰撞传感器只是“兜底”的。
调试经验:
我习惯在碰撞传感器周围加一圈软胶垫。这样既能缓冲撞击,又能延长传感器寿命。别小看这个细节,能省不少维修费。
1.5 陀螺仪与里程计——机器人的“方向感”
这两个传感器,负责告诉机器人“我在哪”、“我朝哪走”。
陀螺仪:
测量角速度。说白了,就是机器人转弯时,它能知道转了多少度。
我常用的陀螺仪是MPU6050,六轴(三轴陀螺仪+三轴加速度计)。
里程计:
通过轮子编码器,计算机器人走了多远。公式很简单:
// 里程计计算示例
float wheel_diameter = 0.066; // 轮子直径,单位米
float encoder_resolution = 360; // 编码器每圈脉冲数
int pulse_count = 1024; // 读取到的脉冲数
float distance = (pulse_count / encoder_resolution) * PI * wheel_diameter;
// 结果:走了约0.59米
为什么两个都要?
因为里程计会打滑。你想想看,机器人在地板上走,轮子打滑了,编码器以为走了1米,实际只走了0.8米。这时候就需要陀螺仪来修正方向。
融合方法:
我一般用卡尔曼滤波(Kalman Filter)把陀螺仪和里程计的数据融合。简单说,就是让两个传感器互相“纠错”。
- 里程计提供位置估计(但会漂移)
- 陀螺仪提供方向估计(但会累积误差)
- 融合后,得到更准确的位姿
避坑指南:
我曾经遇到过一个问题:机器人走直线,但地图上画出来是弯的。查了半天,发现是陀螺仪的零偏没有校准。每次上电后,陀螺仪都有一个固定的偏移量。不校准的话,方向误差会越来越大。
解决办法:每次开机后,让机器人静止5秒,采集陀螺仪数据,计算平均偏移,然后减去这个偏移。
小结
好了,这一章我们聊了扫地机器人的五大传感器。总结一下:
- 激光雷达:地图构建的核心,精度高,但怕低矮障碍物
- 红外传感器:低成本,但怕阳光
- 超声波传感器:检测玻璃的好手,但有盲区
- 碰撞传感器:最后的防线,别依赖它
- 陀螺仪+里程计:定位的基础,需要融合使用
下一章,我们会把这些传感器组合起来,讲讲怎么用它们构建一张完整的地图。到时候,我会分享一些实际项目中的代码和调试经验。
嗯,今天就到这儿。有问题随时交流。
公众号:蓝海资料掘金营,微信deep3321