使用树莓派构建一款巡逻并带回家中的机器人
扫描二维码
随时随地手机看文章
你的树莓派是否仍被安放在一个柜子里,默默地充当着网络存储设备或家庭服务器的角色?是时候给它赋予一个新的形态了——一个能够移动、观察和互动的形态。这就是我最新项目的核心内容:将 PuppyPi(一款专为学习而设计的开源 ROS 四足机器人)改造为一个真正实用的家庭助手原型。这并非关于远程控制,而是要创造一个能够自主巡逻、理解指令甚至能执行简单物理任务的移动智能体。这就是我如何将一个开发平台转变为家庭新成员的过程。
第一部分:为何“小狗派”是“树莓派”的“终极形态”
Raspberry Pi 的伟大之处在于其无限的潜力,但其功能往往局限于数字世界。而 PuppyPi 则很好地解决了这一问题,它提供了缺失的部分:实体化和交互功能。从本质上讲,它是一款为 Raspberry Pi(尤其是 Pi 5/CM4)量身定制的高精度机器人躯体。
其坚固的 CNC 铝合金框架和八个具备反馈功能的智能伺服系统为移动底座提供了稳定且可靠的支撑。其原生支持 ROS 1/2 功能意味着可以直接接入庞大的开源机器人生态系统。至关重要的是,其模块化设计使您能够像搭建积木一样扩展其功能:添加高清广角摄像头、ToF 激光雷达和一个 2 自由度的机械臂。这“三重扩展性”构成了家庭助手的硬件基础:视觉感知、空间导航和物理操作。
第二部分:构建“家庭助手”的软件大脑与神经系统
硬件是躯体;软件是灵魂。我基于 ROS 2(胡姆布尔·哈克斯比尔)构建了整个“中枢神经系统”。ROS 的分布式节点架构非常适合这样一个复杂的项目。
我创建了几个通过主题和服务进行通信的核心节点:
导航核心节点:将基于激光雷达的 SLAM 技术(我使用的是 Cartographer)与 ROS 2 的 Nav2 导航栈相结合。该节点负责构建家庭环境的地图,并规划无碰撞路径。
视觉大脑节点:在树莓派上运行优化后的 YOLO 模型,以处理摄像头数据,从而实现人脸识别、宠物检测或特定物品(如钥匙或拖鞋)的识别功能。
语音接口节点:集成了离线语音识别引擎(如 Vosk),用于实现低延迟、本地唤醒词及指令的识别——响应迅速且保护用户隐私。
任务管理器调度器:这是系统的“大脑”。它将高级的自然语言指令(例如“开始巡逻”)分解为具体的任务序列,并协调所有其他节点来执行这些任务。
第三部分:深入探讨:实现三项核心功能
功能 1:自主安全哨兵
这是我实现的第一个功能。PuppyPi 会按照预设的时间表或者通过语音指令进入巡逻模式。利用其激光雷达地图,它会在预先设定的点之间移动,同时其摄像头会进行持续的视觉分析。我编写了一个简单的算法,如果它检测到一个未知面孔,或者通过背景减法发现不应该出现的物体(比如突然出现的包裹),它就会自动拍摄一张照片,并通过 Telegram 机器人将包含照片的警报发送到我的手机上。这比静态摄像头要灵活和主动得多。
功能 2:语音与视觉互动伴侣
为了使互动更加自然,我编写了多个场景:
“来找我吧”:当我从另一间房间呼唤它的名字时,语音识别节点能够识别出这个指令,而视觉大脑节点则通过摄像头结合声源定位和面部搜索技术,引导它走向我。
“去查看一下……”:有一次我问道:“阳台的窗户关上了吗?”它规划了一条通往阳台的路径,将摄像头对准窗户,经过视觉大脑的分析后,通过语音合成回答道:“窗户是关上的。”这种感觉简直太未来主义了。
移动第一人称视角:我可以通过手机上的网页界面远程访问其 ROS 系统,查看实时摄像头画面并进行手动控制,从而实现“远程存在”的效果。
功能 3:简易配送机器人
这是最复杂但也最酷的功能,需要添加一个两自由度的机械臂。首先,我使用 AprilTag 二维码来标记常见的物品(比如电视遥控器)。
第四部分:技术爱好者的深度评测与优化指南
经过数周的开发和调试,现在让我们深入探讨一下其优点、缺点以及解决方法:
优点(为何值得这样做):
一款真正的全栈学习平台:您能够深入学习机器人技术的各个层面——从低级的串行伺服控制、中级的ROS通信,到高级的人工智能算法。其教育价值是无可比拟的。
无与伦比的扩展性:开源的硬件和软件生态系统意味着没有上限。您可以集成来自 ROS 社区的几乎任何新的软件包。
专业级品质,超越玩具范畴:金属齿轮伺服装置带来的稳定性和耐用性以及精准的构造,是塑料玩具平台无法企及的,这使得长期的开发和功能迭代成为可能。
挑战与切实可行的解决办法(您必须了解的陷阱):
电池续航焦虑:在满负荷运行状态下(尤其是当机械臂和激光雷达同时工作时),续航时间约为 40 至 60 分钟。我的解决办法是进行代码优化,并实现自动充电站的逻辑(通过视觉标记导航来实现)。
Pi 的计算极限:同时运行 SLAM、视觉模型和导航功能对于 Pi 5 来说是一项艰巨的任务。为此,我通过模型量化、使用更高效的模型(YOLOv8n)以及将部分节点转移到家庭服务器上运行,并通过 ROS 2 的 DDS 进行通信以实现分布式计算,从而缓解了这一问题。这显著提高了性能。
“家庭环境的‘长尾’部分”:低矮的椅子腿、反光的地面以及随意摆放的拖鞋,这些都是需要应对的问题。我采用了多传感器融合技术,将激光雷达数据与相机(或超声波传感器)获取的深度信息相结合,极大地提高了避障的可靠性。
结论
该项目最终证明,PuppyPi 能够完全超越其最初作为教育工具的角色,成为一款高度可定制、功能强大的家庭智能设备原型。它不再是一个等待指令的静态设备,而是一个具备主动感知、移动和影响环境能力的自主智能单元。对于开发者和制作者而言,PuppyPi 与 Raspberry Pi 的结合可以说是当今可用的最佳平台之一,能够将编码创意转化为现实世界中的实际应用。它并非消费级的现成产品,但为您提供了无与伦比的开放实验空间,让您能够塑造对未来家庭自动化愿景的构想。我的代码和配置是开源的。我期待看到您创造出更酷、更实用的应用程序。
本文编译自hackster.io





