超声波与红外传感器——近距离避障的低成本方案
上篇讲了GPS/RTK定位原理从距离交会到载波相位模糊度解算再到NMEA协议解析和ROS2集成。今天讲两种最便宜的近距离传感器——超声波和红外它们虽然精度不高但在机器人避障、悬崖检测、液位测量等场景中不可替代。面试时候被问超声波和红外传感器有什么区别很多人会说一个用声波一个用光。但面试官想听的是更工程化的内容超声波的盲区怎么解决红外的距离-电压曲线怎么标定两种传感器怎么互补在ROS2中怎么集成多传感器之间的串扰怎么处理超声波传感器原理超声波传感器通过压电换能器发射和接收超声波脉冲。发射时压电陶瓷片在电信号激励下振动产生频率通常在40kHz左右的超声波。超声波遇到障碍物后反射回来接收器检测到回波通过测量发射到接收的时间差计算距离距离 声速 × 时间 / 2。声速和温度有关v 331.4 0.6 × TT为摄氏温度。如果不做温度补偿夏天35°C和冬天0°C的声速差了21m/s距离误差会达到6%左右。所以工业级超声波传感器都会内置温度传感器做补偿。import numpy as np class UltrasonicSensor: 超声波传感器模型 def __init__(self, min_range0.02, max_range4.0, beam_angle15.0, temperature25.0): self.min_range min_range # 最小测量距离m self.max_range max_range # 最大测量距离m self.beam_angle beam_angle # 波束角度 // ... (代码省略) return None # 表面太倾斜无法检测 return max(valid) - min(valid) # 距离差异越大表面越倾斜超声波传感器有几个显著的特点。优点不受光照条件影响黑暗中也能工作能检测透明物体玻璃、薄膜价格极低几块钱一个。缺点波束角大15-30度空间分辨率低对吸声材料泡沫、布料检测困难存在盲区通常2-5cm多传感器之间容易串扰。盲区是超声波传感器最大的限制之一。超声波传感器在发射脉冲后需要一段时间才能切换到接收模式余振时间这段时间内无法接收回波形成了盲区。普通超声波传感器的盲区在2-5cm特殊设计的窄盲区传感器可以做到1cm以内。实际安装超声波传感器有几个注意事项。第一传感器前方不能有遮挡物——安装支架、线缆、机器人外壳任何在波束锥角内的物体都会产生虚假回波。波束锥角通常是标称波束角的1.5-2倍标称15度的传感器实际有效波束可能到30度。安装前一定要看传感器的数据手册确认波束图的形状。第二多超声波传感器的串扰问题。如果两个超声波传感器同时工作A发射的脉冲可能被B的接收器检测到经过物体反射后导致B的读数异常。解决方法是分时复用——让传感器轮流发射每次只有一个传感器在工作。比如4个超声波传感器每个发射周期10ms总周期就是40ms25Hz。class UltrasonicMultiplexer: 超声波传感器分时复用控制器 def __init__(self, num_sensors, cycle_time_ms10): self.num_sensors num_sensors self.cycle_time cycle_time_ms / 1000.0 self.current_sensor 0 self.last_switch_time 0.0 def get_active_sensor(self, current_time): // ... (代码省略) self.last_switch_time current_time return self.current_sensor第三超声波传感器对表面材质很敏感。光滑坚硬的表面金属、玻璃、塑料反射效果好。柔软多孔的表面泡沫、布料、地毯会吸收超声波导致检测距离大幅缩短甚至检测不到。在设计避障系统时不能假设所有障碍物都能被超声波检测到——这就是为什么还需要红外或者激光雷达作为补充。超声波和红外的融合策略实际避障系统中超声波和红外传感器通常配合使用取长补短。超声波擅长检测中距离0.1-3m的障碍物不受物体颜色影响但波束角大、空间分辨率低。红外擅长检测近距离0.02-0.8m的障碍物空间分辨率高但受物体颜色和光照影响。两者融合时可以构建一个分层的距离检测模型红外负责近距离精确测距超声波负责中距离预警激光雷达负责远距离建图。数据融合的方法可以很简单取两种传感器读数的最小值作为障碍物距离估计。也可以更复杂用贝叶斯估计融合两种传感器的概率分布。对于避障这种安全相关的功能保守策略更合适——宁可误报虚警也不要漏报。面试中怎么聊面试官问超声波和红外传感器按这个顺序回答先说超声波原理压电换能器ToF和特点盲区、波束角、温度补偿再说红外原理三角测距/反射强度和特点受颜色影响、环境光干扰然后说两者的互补关系和融合策略最后说ROS2集成和串扰处理。如果面试官追问为什么不用激光雷达代替超声波你可以说成本。一个激光雷达几百到几千块一个超声波传感器几块钱。在只需要检测前方有没有障碍物的简单场景中超声波完全够用。另外超声波能检测透明物体玻璃门激光雷达对透明物体的检测不稳定激光可能穿透或者被折射。但如果是需要精确建图的场景激光雷达的优势就体现出来了。如果面试官追问悬崖检测用什么传感器你可以说红外对射传感器发射器和接收器分开安装。朝地面发射红外光如果地面存在反射光被接收器检测到。如果接收不到反射光说明前方是悬崖。这种方案简单可靠扫地机器人都在用。超声波不适合做悬崖检测因为超声波的波束角太大朝地面发射时反射信号太分散。如果面试官追问扫地机器人的传感器方案你可以展开说扫地机器人是近距离传感器应用的经典案例。它通常包含底部3-4个悬崖检测红外传感器防止跌落楼梯前端6-8个超声波或红外传感器检测墙壁和家具顶部一个激光雷达SLAM建图和导航侧面一两个接触式 bumper 传感器最后的物理保护。这些传感器形成一个完整的感知层次bumper是最后一道防线距离0红外/超声波负责近距离避障0.02-1m激光雷达负责中远距离建图和定位0.1-10m。这种分层设计在面试中说出来会让面试官觉得你对系统架构有整体理解。如果面试官追问红外传感器怎么标定你可以说三角测距型红外传感器的标定很简单。在已知距离比如20cm、40cm、60cm处测量传感器的输出电压然后用最小二乘法拟合距离-电压曲线通常是V a/d b的形式。标定完成后在几个验证距离上测试误差应该在标称精度以内。需要注意的是标定要在典型工作环境下进行——如果机器人会在不同光照条件下工作标定数据应该在室内和室外分别采集取最坏情况的参数。补充一个超声波传感器在实际项目中的踩坑经验。当时我们在仓库里部署AGV用了8个超声波传感器做近距离避障。测试时发现一个奇怪的现象有时候明明前方没有障碍物传感器却报告有物体在0.3米处。排查后发现是超声波的串扰——对面另一台AGV的超声波传感器在同一时间发射两台AGV的超声波信号互相干扰。解决办法是错开各传感器的发射时间给每个传感器分配不同的时隙比如8个传感器分成4组每组间隔5毫秒轮流发射。改完之后误报就消失了。这个经验说明多超声波系统的时序设计很重要不能简单地同时触发所有传感器。下一篇讲多传感器时间同步——硬件触发/PTP/软件时间戳的工程实践。前面讲了这么多传感器它们的数据怎么在时间上对齐是多传感器融合的关键前提。如果这篇文章对你有帮助欢迎点赞、在看、转发三连。 你的支持是我持续更新的最大动力。「机器人软件开发面试·从入门到精通」连载系列上一篇第162篇 GPS/RTK定位原理——室外机器人的定位方案 下一篇预告第164篇 多传感器时间同步——硬件触发/PTP/软件时间戳的工程实践有任何问题欢迎评论区留言我会尽量回复。

相关新闻

Mac上配置Git SSH密钥:从原理到实战的完整指南

Mac上配置Git SSH密钥:从原理到实战的完整指南

1. 项目概述:为什么Mac上的Git SSH密钥配置是开发者的“第一课” 如果你刚拿到一台新的Mac,准备开始写代码,或者准备从GitHub、GitLab上拉取公司的项目,那么配置SSH密钥几乎是你绕不开的第一步。很多新手教程会直接扔给你一串命令…

2026/10/26 18:53:36 阅读更多 →
Golang-unsafe 包与底层编程

Golang-unsafe 包与底层编程

unsafe 包与底层编程 一、为什么需要 unsafe Go 以内存安全著称——类型系统阻止非法转换,垃圾回收器防止内存泄漏,数组边界检查杜绝溢出。但有些场景确实需要绕过这些保护: 与 C 语言交互(cgo 调用需要传递原始指针)极…

2026/10/21 10:53:54 阅读更多 →
腾讯云Lighthouse部署OpenClaw:低成本AI智能体云端部署实战指南

腾讯云Lighthouse部署OpenClaw:低成本AI智能体云端部署实战指南

1. 项目概述:为什么OpenClaw的云端部署值得关注? 最近在折腾AI智能体部署的朋友,应该都绕不开OpenClaw这个名字。它不是一个新概念,但最近的热度确实又上来了,尤其是在寻求低成本、高效率的云端部署方案时。我最近刚把…

2026/10/25 14:48:52 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/26 12:00:21 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/25 22:36:10 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/26 4:52:12 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/26 12:00:21 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/26 5:00:37 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/26 3:16:46 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/26 12:00:19 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/25 13:21:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/26 8:34:37 阅读更多 →