2. 核心传感器(一):激光雷达(LDS)的工作原理、数据特性与常见选型

做扫地机器人,第一个要搞定的传感器就是激光雷达。我入行那会儿,市面上还都是随机碰撞的“盲人”扫地机,后来LDS一普及,整个行业才真正有了“眼睛”。

说白了,激光雷达就是扫地机的“拐杖”。它告诉机器人:前面有墙,左边是沙发腿,右边是垃圾桶。没有它,什么路径规划、SLAM都是空谈。

2.1 工作原理:它怎么“看”世界的?

激光雷达的原理其实不复杂。它发射一束激光,打到物体上反射回来,接收器捕捉到回波。通过计算发射和接收的时间差,就能知道距离。

公式很简单:

距离 = 光速 × 飞行时间 / 2

嗯,这里要注意。除以2是因为光走了个来回。我见过不少新手写代码时忘了除以2,结果地图直接放大一倍,机器人到处撞墙。

扫地机上用的LDS,大多是单线旋转式的。就是让激光发射器转起来,一圈一圈地扫描。每转一圈,就能得到周围360°的距离数据。你想想看,这不就是机器人版的“环顾四周”吗?

具体工作流程是这样的:

  1. 发射激光:激光二极管发出红外激光脉冲
  2. 旋转扫描:电机带动整个模组匀速旋转,通常5-10圈/秒
  3. 接收回波:光电探测器接收反射回来的光信号
  4. 计算距离:通过TOF或三角测距法算出每个角度上的距离值
  5. 输出点云:输出一组 (角度, 距离) 的数据对,这就是原始点云

我在项目中遇到过一个问题:扫地机在阳光直射的窗边,激光雷达数据突然全乱了。后来排查发现,是太阳光里的红外成分干扰了接收器。这个坑,后面我会专门讲怎么处理。

2.2 数据特性:拿到数据后,你得知道它长什么样

LDS输出的原始数据,本质上就是一个极坐标下的点集。每个点包含两个信息:角度θ和距离r。

举个例子,一次扫描的数据大概长这样:

// 伪代码:一次360°扫描的数据
scan_data = [
  {angle: 0.0,   distance: 1200},   // 正前方1.2米有障碍
  {angle: 0.5,   distance: 1201},
  {angle: 1.0,   distance: 1198},
  // ... 中间省略700多个点
  {angle: 180.0, distance: 5000},   // 正后方5米,可能是空旷区域
  // ...
  {angle: 359.5, distance: 0},      // 0表示无效数据
]

这里有几个关键特性,你得心里有数:

特性 说明 影响
角度分辨率 相邻两个扫描点之间的角度间隔,常见0.5°或1° 分辨率越高,细节越丰富,但数据量也越大
测距范围 能测到的最远距离,家用扫地机通常6-12米 范围太小,大房间建图会丢边角
测距精度 距离测量的误差范围,一般±1-3cm 精度差会导致地图扭曲、重影
扫描频率 每秒完成多少次360°扫描,常见5-15Hz 频率低,机器人跑快了会漏掉障碍物
无效数据 距离为0或极大值,表示没测到有效回波 必须做滤波处理,否则SLAM会崩

我个人习惯,拿到一款新LDS后,第一件事就是先看它的无效数据比例。如果超过5%的点都是0,那这传感器在复杂环境下的表现堪忧。

核心要点:LDS数据本质是极坐标下的稀疏点云。它不像摄像头那样有丰富的纹理信息,只有几何距离。所以SLAM算法主要靠几何特征(直线、角点)来匹配和定位。

2.3 常见选型:市面上主流方案怎么挑?

现在扫地机用的LDS,主流方案就两种:三角测距法和TOF法。我两种都用过,各有优劣。

2.3.1 三角测距法

这是早期最成熟的方案。原理是:激光发射器固定,接收器是线性CCD或CMOS。当物体距离变化时,反射光斑在接收器上的位置会移动。通过三角几何关系算出距离。

优点:成本低,近距离精度高(1米内能做到±0.5cm)。
缺点:远距离精度下降快,容易受环境光干扰。

我曾经用一款三角测距的LDS做测试,在白色墙壁前表现很好,换成黑色哑光家具后,数据直接掉了30%的有效点。后来加了增益自适应调节才搞定。

2.3.2 TOF法(飞行时间法)

这是目前中高端扫地机的主流方案。直接测量激光飞行时间,原理更直接。

优点:测距范围大(10米以上),精度稳定,抗环境光能力强。
缺点:成本高,功耗略大。

我建议,如果你做的是千元以下的入门机型,用三角测距就够了。如果是中高端产品,直接上TOF,省心很多。

2.3.3 选型对比表

参数 三角测距 TOF
典型成本 30-80元 80-200元
测距范围 0.1-6米 0.1-12米
近距离精度 ±0.5cm ±1cm
远距离精度 ±3-5cm ±1-2cm
抗环境光
典型品牌 思岚A1/A2、星网宇达 思岚A3、镭神、华为

选型小技巧:别只看参数表。我建议你拿两款候选传感器,在同一个房间跑一遍SLAM,对比建图效果。有时候参数好的传感器,实际表现反而不如参数一般的。为什么?因为算法适配度不同。

2.4 避坑指南:我踩过的那些坑

做LDS选型和调试这几年,我总结了几条血泪教训:

  • 镜面反射:黑色玻璃、镜面家具会让激光直接穿透或反射偏掉。我曾经遇到过扫地机对着穿衣镜疯狂撞,因为LDS以为前面是空的。
  • 电机寿命:LDS里的旋转电机是易损件。选型时一定要看MTBF(平均无故障时间),低于2000小时的别考虑。
  • 数据抖动:即使静止不动,LDS数据也会有±1cm的随机抖动。做SLAM时一定要加滤波,我习惯用中值滤波+滑动平均。
  • 温度漂移:LDS在高温下(比如夏天阳台)测距会偏大。如果你做的是出口到中东的产品,这个必须做温度补偿。

警告:千万不要直接用LDS的原始数据做避障!一定要先做数据预处理:剔除无效点、滤波去噪、畸变校正。否则你的机器人会像喝醉了一样乱晃。

好了,这一章就到这里。下一章我们聊另一个核心传感器——IMU。它和LDS怎么配合,才能让机器人走直线不跑偏?到时候细说。