第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