使用樹莓派構(gòu)建一款巡邏并帶回家中的機(jī)器人
你的樹莓派是否仍被安放在一個(gè)柜子里,默默地充當(dāng)著網(wǎng)絡(luò)存儲設(shè)備或家庭服務(wù)器的角色?是時(shí)候給它賦予一個(gè)新的形態(tài)了——一個(gè)能夠移動(dòng)、觀察和互動(dòng)的形態(tài)。這就是我最新項(xiàng)目的核心內(nèi)容:將 PuppyPi(一款專為學(xué)習(xí)而設(shè)計(jì)的開源 ROS 四足機(jī)器人)改造為一個(gè)真正實(shí)用的家庭助手原型。這并非關(guān)于遠(yuǎn)程控制,而是要?jiǎng)?chuàng)造一個(gè)能夠自主巡邏、理解指令甚至能執(zhí)行簡單物理任務(wù)的移動(dòng)智能體。這就是我如何將一個(gè)開發(fā)平臺轉(zhuǎn)變?yōu)榧彝バ鲁蓡T的過程。
第一部分:為何“小狗派”是“樹莓派”的“終極形態(tài)”
Raspberry Pi 的偉大之處在于其無限的潛力,但其功能往往局限于數(shù)字世界。而 PuppyPi 則很好地解決了這一問題,它提供了缺失的部分:實(shí)體化和交互功能。從本質(zhì)上講,它是一款為 Raspberry Pi(尤其是 Pi 5/CM4)量身定制的高精度機(jī)器人軀體。
其堅(jiān)固的 CNC 鋁合金框架和八個(gè)具備反饋功能的智能伺服系統(tǒng)為移動(dòng)底座提供了穩(wěn)定且可靠的支撐。其原生支持 ROS 1/2 功能意味著可以直接接入龐大的開源機(jī)器人生態(tài)系統(tǒng)。至關(guān)重要的是,其模塊化設(shè)計(jì)使您能夠像搭建積木一樣擴(kuò)展其功能:添加高清廣角攝像頭、ToF 激光雷達(dá)和一個(gè) 2 自由度的機(jī)械臂。這“三重?cái)U(kuò)展性”構(gòu)成了家庭助手的硬件基礎(chǔ):視覺感知、空間導(dǎo)航和物理操作。
第二部分:構(gòu)建“家庭助手”的軟件大腦與神經(jīng)系統(tǒng)
硬件是軀體;軟件是靈魂。我基于 ROS 2(胡姆布爾·哈克斯比爾)構(gòu)建了整個(gè)“中樞神經(jīng)系統(tǒng)”。ROS 的分布式節(jié)點(diǎn)架構(gòu)非常適合這樣一個(gè)復(fù)雜的項(xiàng)目。
我創(chuàng)建了幾個(gè)通過主題和服務(wù)進(jìn)行通信的核心節(jié)點(diǎn):
導(dǎo)航核心節(jié)點(diǎn):將基于激光雷達(dá)的 SLAM 技術(shù)(我使用的是 Cartographer)與 ROS 2 的 Nav2 導(dǎo)航棧相結(jié)合。該節(jié)點(diǎn)負(fù)責(zé)構(gòu)建家庭環(huán)境的地圖,并規(guī)劃無碰撞路徑。
視覺大腦節(jié)點(diǎn):在樹莓派上運(yùn)行優(yōu)化后的 YOLO 模型,以處理攝像頭數(shù)據(jù),從而實(shí)現(xiàn)人臉識別、寵物檢測或特定物品(如鑰匙或拖鞋)的識別功能。
語音接口節(jié)點(diǎn):集成了離線語音識別引擎(如 Vosk),用于實(shí)現(xiàn)低延遲、本地喚醒詞及指令的識別——響應(yīng)迅速且保護(hù)用戶隱私。
任務(wù)管理器調(diào)度器:這是系統(tǒng)的“大腦”。它將高級的自然語言指令(例如“開始巡邏”)分解為具體的任務(wù)序列,并協(xié)調(diào)所有其他節(jié)點(diǎn)來執(zhí)行這些任務(wù)。
第三部分:深入探討:實(shí)現(xiàn)三項(xiàng)核心功能
功能 1:自主安全哨兵
這是我實(shí)現(xiàn)的第一個(gè)功能。PuppyPi 會(huì)按照預(yù)設(shè)的時(shí)間表或者通過語音指令進(jìn)入巡邏模式。利用其激光雷達(dá)地圖,它會(huì)在預(yù)先設(shè)定的點(diǎn)之間移動(dòng),同時(shí)其攝像頭會(huì)進(jìn)行持續(xù)的視覺分析。我編寫了一個(gè)簡單的算法,如果它檢測到一個(gè)未知面孔,或者通過背景減法發(fā)現(xiàn)不應(yīng)該出現(xiàn)的物體(比如突然出現(xiàn)的包裹),它就會(huì)自動(dòng)拍攝一張照片,并通過 Telegram 機(jī)器人將包含照片的警報(bào)發(fā)送到我的手機(jī)上。這比靜態(tài)攝像頭要靈活和主動(dòng)得多。
功能 2:語音與視覺互動(dòng)伴侶
為了使互動(dòng)更加自然,我編寫了多個(gè)場景:
“來找我吧”:當(dāng)我從另一間房間呼喚它的名字時(shí),語音識別節(jié)點(diǎn)能夠識別出這個(gè)指令,而視覺大腦節(jié)點(diǎn)則通過攝像頭結(jié)合聲源定位和面部搜索技術(shù),引導(dǎo)它走向我。
“去查看一下……”:有一次我問道:“陽臺的窗戶關(guān)上了嗎?”它規(guī)劃了一條通往陽臺的路徑,將攝像頭對準(zhǔn)窗戶,經(jīng)過視覺大腦的分析后,通過語音合成回答道:“窗戶是關(guān)上的?!边@種感覺簡直太未來主義了。
移動(dòng)第一人稱視角:我可以通過手機(jī)上的網(wǎng)頁界面遠(yuǎn)程訪問其 ROS 系統(tǒng),查看實(shí)時(shí)攝像頭畫面并進(jìn)行手動(dòng)控制,從而實(shí)現(xiàn)“遠(yuǎn)程存在”的效果。
功能 3:簡易配送機(jī)器人
這是最復(fù)雜但也最酷的功能,需要添加一個(gè)兩自由度的機(jī)械臂。首先,我使用 AprilTag 二維碼來標(biāo)記常見的物品(比如電視遙控器)。
第四部分:技術(shù)愛好者的深度評測與優(yōu)化指南
經(jīng)過數(shù)周的開發(fā)和調(diào)試,現(xiàn)在讓我們深入探討一下其優(yōu)點(diǎn)、缺點(diǎn)以及解決方法:
優(yōu)點(diǎn)(為何值得這樣做):
一款真正的全棧學(xué)習(xí)平臺:您能夠深入學(xué)習(xí)機(jī)器人技術(shù)的各個(gè)層面——從低級的串行伺服控制、中級的ROS通信,到高級的人工智能算法。其教育價(jià)值是無可比擬的。
無與倫比的擴(kuò)展性:開源的硬件和軟件生態(tài)系統(tǒng)意味著沒有上限。您可以集成來自 ROS 社區(qū)的幾乎任何新的軟件包。
專業(yè)級品質(zhì),超越玩具范疇:金屬齒輪伺服裝置帶來的穩(wěn)定性和耐用性以及精準(zhǔn)的構(gòu)造,是塑料玩具平臺無法企及的,這使得長期的開發(fā)和功能迭代成為可能。
挑戰(zhàn)與切實(shí)可行的解決辦法(您必須了解的陷阱):
電池續(xù)航焦慮:在滿負(fù)荷運(yùn)行狀態(tài)下(尤其是當(dāng)機(jī)械臂和激光雷達(dá)同時(shí)工作時(shí)),續(xù)航時(shí)間約為 40 至 60 分鐘。我的解決辦法是進(jìn)行代碼優(yōu)化,并實(shí)現(xiàn)自動(dòng)充電站的邏輯(通過視覺標(biāo)記導(dǎo)航來實(shí)現(xiàn))。
Pi 的計(jì)算極限:同時(shí)運(yùn)行 SLAM、視覺模型和導(dǎo)航功能對于 Pi 5 來說是一項(xiàng)艱巨的任務(wù)。為此,我通過模型量化、使用更高效的模型(YOLOv8n)以及將部分節(jié)點(diǎn)轉(zhuǎn)移到家庭服務(wù)器上運(yùn)行,并通過 ROS 2 的 DDS 進(jìn)行通信以實(shí)現(xiàn)分布式計(jì)算,從而緩解了這一問題。這顯著提高了性能。
“家庭環(huán)境的‘長尾’部分”:低矮的椅子腿、反光的地面以及隨意擺放的拖鞋,這些都是需要應(yīng)對的問題。我采用了多傳感器融合技術(shù),將激光雷達(dá)數(shù)據(jù)與相機(jī)(或超聲波傳感器)獲取的深度信息相結(jié)合,極大地提高了避障的可靠性。
結(jié)論
該項(xiàng)目最終證明,PuppyPi 能夠完全超越其最初作為教育工具的角色,成為一款高度可定制、功能強(qiáng)大的家庭智能設(shè)備原型。它不再是一個(gè)等待指令的靜態(tài)設(shè)備,而是一個(gè)具備主動(dòng)感知、移動(dòng)和影響環(huán)境能力的自主智能單元。對于開發(fā)者和制作者而言,PuppyPi 與 Raspberry Pi 的結(jié)合可以說是當(dāng)今可用的最佳平臺之一,能夠?qū)⒕幋a創(chuàng)意轉(zhuǎn)化為現(xiàn)實(shí)世界中的實(shí)際應(yīng)用。它并非消費(fèi)級的現(xiàn)成產(chǎn)品,但為您提供了無與倫比的開放實(shí)驗(yàn)空間,讓您能夠塑造對未來家庭自動(dòng)化愿景的構(gòu)想。我的代碼和配置是開源的。我期待看到您創(chuàng)造出更酷、更實(shí)用的應(yīng)用程序。
本文編譯自hackster.io





