第二章 传感器基础:避障系统的“眼睛”

做避障机器人,说白了就是让机器“看见”障碍物。但机器没有眼睛,它靠的是传感器。这一章,我带你看看三种最常用的避障传感器:超声波、红外、激光雷达。它们各有脾气,选对了,你的机器人才能跑得稳。

核心观点:没有完美的传感器,只有合适的搭配。避障系统的灵魂,在于多传感器融合。

2.1 超声波传感器:原理与选型

超声波传感器,原理其实很简单。它发出人耳听不到的高频声波,声波碰到障碍物弹回来,传感器接收回波。通过计算发射和接收的时间差,就能算出距离。公式是:距离 = 声速 × 时间 / 2。声速在空气中大约是340m/s,但会随温度变化,这点后面会讲。

我个人习惯用HC-SR04这款,便宜又皮实。它的工作电压是5V,测距范围2cm到400cm,精度大概在3mm左右。嗯,这里要注意:它有个盲区,大概2cm以内测不准。为什么?因为发射的余震还没消,回波就被淹没了。

选型建议:如果你做室内小车,HC-SR04够用了。要是做户外或工业级,建议选IP67防水型,比如MB1240,贵是贵点,但不怕雨淋。

我在项目中遇到过一个问题:超声波对软性物体(比如海绵、布帘)反射很差,经常测不到。你想想看,声波打上去被吸收了,回波太弱,传感器就以为没障碍物。所以,超声波适合检测硬质平面,比如墙壁、木板、金属。

避坑指南:温度补偿

我曾经在冬天调试一台AGV,超声波测距突然不准了。查了半天,发现是温度从25℃降到了0℃,声速变了。声速公式是:v = 331.4 × √(1 + T/273.15),T是摄氏温度。0℃时声速只有331m/s,比常温慢了近10m/s。如果不补偿,测3米远的物体,误差能到8厘米。我的做法是:加一个温度传感器,实时修正声速。代码很简单:

// 温度补偿示例
float temperature = 25.0; // 从DS18B20读取
float soundSpeed = 331.4 * sqrt(1 + temperature / 273.15);
float distance = soundSpeed * duration / 2.0 / 10000; // duration单位微秒

2.2 红外传感器:原理与选型

红外传感器,用的是光,不是声。它发射红外光,碰到物体反射回来,通过接收到的光强或三角测距原理来判断距离。常见的型号有GP2Y0A02YK(测距20-150cm)和GP2Y0A41SK(测距4-30cm)。

红外的优点是:响应快,没有盲区。它不像超声波那样有2cm的死角,近距离也能用。而且它不受声音干扰,在嘈杂环境里很稳。但缺点也明显:受环境光影响大。大太阳底下,红外光被太阳光淹没,传感器就瞎了。

警告:红外传感器对黑色物体几乎无效。黑色吸光,反射回来的红外光太弱,测距会严重偏大甚至报错。我试过用黑色亚克力板做测试,测距直接从50cm跳到了200cm,差点撞车。

我记得有一次做服务机器人,客户要求能在强光下工作。我一开始用了红外,结果在落地窗旁边,机器人直接往墙上撞。后来换成超声波+激光雷达的组合,问题才解决。所以,室内弱光环境用红外,室外强光环境慎用。

选型对比表

传感器 测距范围 精度 盲区 环境光影响 典型价格
HC-SR04(超声波) 2-400cm ±3mm 2cm 无 5元
GP2Y0A02YK(红外) 20-150cm ±5cm 无 大 30元
TFmini(激光雷达) 0.1-12m ±1cm 10cm 小 200元

2.3 激光雷达(LiDAR):避障的“天眼”

激光雷达,简称LiDAR。它用激光束扫描周围环境,通过测量激光的飞行时间(ToF)或相位差来构建点云图。说白了,就是用激光给周围世界拍一张3D照片。在ROS里,最常用的是单线激光雷达,比如RPLIDAR A1、思岚A2、镭神N10等。

激光雷达的优点是:精度高、速度快、不受环境光影响。它每秒能测几千甚至几万个点,生成360°的扫描数据。在ROS里,这些数据以消息发布,包含角度、距离、强度等信息。我常用的配置是:

# 启动RPLIDAR A1的ROS驱动
roslaunch rplidar_ros rplidar.launch
# 查看激光数据
rostopic echo /scan

但激光雷达也有坑。它怕灰尘和雾霾,激光打在悬浮颗粒上会散射,导致噪点。还有,它对透明物体(比如玻璃)无效,激光直接穿透了,反射不回来。我曾经在玻璃幕墙的走廊里测试,激光雷达完全没检测到玻璃,机器人一头撞了上去。嗯,后来我加了超声波做互补。

核心建议:激光雷达做主传感器,超声波和红外做辅助。激光负责远距离和360°扫描,超声波负责近距离和玻璃检测,红外负责盲区补盲。三者配合,才能做到万无一失。

2.4 知识体系:传感器选型逻辑

下面这张图,是我自己总结的传感器选型逻辑。你一看就明白:

避障传感器选型逻辑图 避障需求 室内环境 室外环境 激光雷达+超声波 红外+超声波 激光雷达+超声波 核心原则:多传感器融合,优势互补

你看,室内环境我推荐两种方案:激光雷达+超声波(精度高,适合复杂场景),或者红外+超声波(成本低,适合简单场景)。室外环境,红外基本不能用,所以激光雷达+超声波是主流。记住,没有一种传感器能包打天下,融合才是王道。

个人经验:我做过一个项目,预算有限,只用了两个超声波和一个红外。结果在墙角处,超声波来回反射,测距乱跳。后来加了一个激光雷达做全局扫描,问题才解决。所以,预算允许的话,激光雷达是避坑的最佳投资。

好了,这一章的内容就到这里。传感器是避障系统的基础,选对了,后面的参数整定才能事半功倍。下一章,我们会把这些传感器接到ROS里,看看数据怎么读、怎么用。

可可精品资料库