自主類人機(jī)器人采用Edge Impulse YOLO-Pro模型在Particle Tachyon上與Qualcomm AI加速器進(jìn)行球檢測和踢
該項(xiàng)目展示了一個(gè)自主的類人機(jī)器人,利用粒子速子和高通人工智能加速器來檢測和踢球,使用邊緣脈沖訓(xùn)練的YOLO-Pro模型。機(jī)器人利用ROS 2實(shí)現(xiàn)感知、決策和運(yùn)動控制的無縫集成。YOLO-Pro模型可實(shí)現(xiàn)高精度的實(shí)時(shí)球檢測,并針對高通AI加速器的邊緣部署進(jìn)行了優(yōu)化。該系統(tǒng)處理視覺輸入,規(guī)劃軌跡,并自動執(zhí)行精確的踢腳動作。這種創(chuàng)新的設(shè)置展示了嵌入式人工智能、邊緣計(jì)算和機(jī)器人技術(shù)在動態(tài)、現(xiàn)實(shí)世界任務(wù)中的協(xié)同作用。
硬件
我們正在使用高通Dragonwing QCM6490 SoC的粒子速子。Dragonwing QCM6490采用八核高通Kryo CPU,高通Adreno 643 GPU和高通Hexagon 770 DSP,其中包含能夠提供12 TOPS的AI加速器。
我們選擇了一個(gè)HiWonder的AiNex雙足人形機(jī)器人,配有24個(gè)串行總線伺服器,頭部安裝了一個(gè)640x480分辨率的USB攝像頭。它帶有一個(gè)預(yù)裝的樹莓派4,我們將換掉粒子速子。
我們選擇使用帶有高通AI加速器的粒子速子進(jìn)行快速推理,以便在需要快速響應(yīng)時(shí)間的動態(tài)環(huán)境中檢測球。粒子速子與樹莓派4的外形相同,但用5G天線取代了USB和LAN連接器。用粒子速子交換現(xiàn)有的樹莓派4很簡單。我們可以把機(jī)器人的背板拆下來,把機(jī)器人控制器帽和樹莓派4擰下來。
安裝粒子速子使用4 x十六進(jìn)制僵局。
將機(jī)器人控制器的帽子固定在粒子速子的40針頭上,用螺絲固定。
機(jī)器人控制器連接到24個(gè)串行總線伺服器,并從11.1 V, 3500 mAh的LiPo電池向粒子速子(通過40針頭上的5V電源引腳)和伺服器供電。我們在連接5G、USB網(wǎng)絡(luò)攝像頭和運(yùn)行人工智能加速器的情況下,評估了粒子速子的用電量。功耗一般保持在800mA以下,偶爾峰值達(dá)到1.2A。
設(shè)置粒子速子
完成后,通過WiFi對設(shè)備的SSH訪問應(yīng)該完全啟用并可操作。我們選擇Headless模式安裝是因?yàn)樵撛O(shè)備將部署在行走的人形機(jī)器人上,不需要桌面界面。
Qualcomm AI Engine直接SDK安裝
要使用為Qualcomm AI Accelerator編譯的QNN模型執(zhí)行推理,請按照我在提供的鏈接中提供的其他項(xiàng)目中概述的所需軟件包的安裝說明進(jìn)行操作。
人形機(jī)器人設(shè)置
HiWonder AiNex驅(qū)動程序和SDK依賴于ROS 1 Noetic,該公司已于2025年5月31日停產(chǎn)。它的Kinematics庫是在Ubuntu 20.04上為Python 3.8構(gòu)建的,由于Ubuntu 22.04或24.04的Python版本更新,因此與Ubuntu 22.04或24.04不兼容。然而,粒子速子本身支持Ubuntu 20.04。雖然ROS 2 Humble和Jazzy不能在Ubuntu 20.04上通過APT安裝,但ROS 2 Humble可以從源代碼編譯。因此,運(yùn)行Ubuntu 20.04的粒子速子是使用ROS 2 Humble和AiNex運(yùn)動學(xué)庫的最佳選擇。此外,由于RPI。GPIO庫不支持Particle Tachyon,它可以用Adafruit Blinka代替,它使用libgpiod來實(shí)現(xiàn)GPIO功能,并且與Particle Tachyon兼容。我們完全重寫并將所有提供的代碼從ROS 1移植到ROS 2。
ROS 2簡易安裝
按照下面的說明安裝從源代碼構(gòu)建ROS 2所需的基本包。
設(shè)置語言環(huán)境
設(shè)置ROS 2 Apt存儲庫
安裝開發(fā)工具和ROS工具
獲取ROS 2源代碼并安裝依賴項(xiàng)
從源代碼構(gòu)建ROS 2 Humble
如果由于缺少Ubuntu軟件包而導(dǎo)致構(gòu)建過程失敗,請檢查日志以識別丟失的軟件包,使用apt安裝它,然后使用以下命令恢復(fù)構(gòu)建過程。
我們省略了RViz2和它的依賴,因?yàn)榕c高通圖形驅(qū)動程序沖突,我們不需要它在無頭模式。
數(shù)據(jù)采集
我們需要在Edge Impulse工作室注冊一個(gè)賬戶然后創(chuàng)建一個(gè)新項(xiàng)目。我們將使用安裝在機(jī)器人頭上的網(wǎng)絡(luò)攝像頭來捕捉球的圖像。
運(yùn)行以下命令并按照屏幕上的說明將設(shè)備連接到Edge Impulse Studio進(jìn)行數(shù)據(jù)收集。
我們捕獲了232張不同距離和照明設(shè)置的圖像,并使用Edge Impulse Studio的數(shù)據(jù)采集頁面中的標(biāo)簽隊(duì)列選項(xiàng)卡標(biāo)記它們。
我們收集了多個(gè)由相機(jī)運(yùn)動、頭頂照明和反射表面引起的運(yùn)動模糊和明亮照明條件的樣本,以提高模型的準(zhǔn)確性并防止遺漏檢測。
脈沖設(shè)計(jì)
對于模型開發(fā),我們需要創(chuàng)建一個(gè)脈沖,一個(gè)集成圖像處理和機(jī)器學(xué)習(xí)模型的定制管道。導(dǎo)航到“脈沖設(shè)計(jì)>創(chuàng)建脈沖”頁面,選擇“添加處理塊”,并選擇“圖像”對圖像數(shù)據(jù)進(jìn)行預(yù)處理和歸一化。在同一頁面中選擇“添加學(xué)習(xí)塊”,選擇“目標(biāo)檢測(圖像)”。我們使用320x320的圖像大小。然后,單擊Save Impulse按鈕。
特征提取
接下來,進(jìn)入脈沖設(shè)計(jì)>圖像頁面,將顏色深度參數(shù)設(shè)置為RGB,然后點(diǎn)擊保存參數(shù)按鈕,這將重定向到另一個(gè)頁面,我們應(yīng)該點(diǎn)擊生成功能按鈕。通常需要幾分鐘來完成特征生成。
我們可以在Feature Explorer中看到生成特征的2D可視化。
模型訓(xùn)練
要訓(xùn)練模型,請導(dǎo)航到Impulse Design > ObjectDetection頁面。我們選擇的對象檢測設(shè)置如下所示。
我們在高級訓(xùn)練設(shè)置中選擇了基本的空間和色彩空間增強(qiáng)。
我們選擇了最新的YOLO-Pro型號,它非常適合檢測由于與相機(jī)距離不同而大小不同的球,并且能夠在高通AI加速器上高效運(yùn)行。點(diǎn)擊Save & train按鈕開始訓(xùn)練。
注:YOLO-Pro目前正在積極開發(fā)中。邊緣脈沖不保證準(zhǔn)確性,也不鼓勵在生產(chǎn)中使用這種模式。
訓(xùn)練結(jié)束后,訓(xùn)練效果如下圖所示。該模型在訓(xùn)練數(shù)據(jù)上獲得了98.7%的精度分?jǐn)?shù)。
模型試驗(yàn)
要評估模型在測試數(shù)據(jù)集上的性能,導(dǎo)航到模型測試頁面并單擊“分類所有”按鈕。該模型在未見過的數(shù)據(jù)集上顯示出更高的性能,準(zhǔn)確率達(dá)到100%。
模型部署
由于模型將使用高通AI加速器在粒子速子上運(yùn)行推斷,我們在部署頁面上選擇了Linux(帶有高通QNN的AARCH64)選項(xiàng)。
為模型優(yōu)化選擇Quantized (int8)選項(xiàng),因?yàn)楦咄ˋI加速器與float32模型不兼容。
點(diǎn)擊Build按鈕編譯并下載EIM(邊緣脈沖模型)二進(jìn)制文件。
應(yīng)用程序開發(fā)
應(yīng)用程序構(gòu)建為分布式ROS 2節(jié)點(diǎn),遵循關(guān)注點(diǎn)分離原則。它從相機(jī)捕獲圖像,處理它們以檢測球,并使用推理來跟蹤和接近球,并精確地控制步態(tài)。結(jié)果通過HTTP流傳輸以進(jìn)行實(shí)時(shí)監(jiān)控。這種模塊化的設(shè)計(jì)保證了任務(wù)的清晰劃分,提高了效率和可維護(hù)性。每個(gè)節(jié)點(diǎn)處理一個(gè)特定的功能,從圖像捕獲到運(yùn)動控制,同時(shí)無縫集成以實(shí)現(xiàn)應(yīng)用程序的目標(biāo)。
下面是object_detection節(jié)點(diǎn)的代碼。
下面是find_and_kick_ball節(jié)點(diǎn)的代碼。
find_and_kick_ball節(jié)點(diǎn)的功能可以通過下面所示的流程圖來理解。
完整的項(xiàng)目代碼可以在代碼部分列出的GitHub存儲庫中找到。將代碼復(fù)制或克隆到ws_ainex_robot目錄并構(gòu)建它。
啟動應(yīng)用程序
執(zhí)行以下命令設(shè)置ROS 2工作空間環(huán)境。
下面是啟動文件代碼。
執(zhí)行以下命令啟動應(yīng)用程序。
我們可以在/edge_impulse/detections主題上監(jiān)視檢測結(jié)果。
ROS 2節(jié)點(diǎn)
以下是應(yīng)用程序中使用的ROS 2節(jié)點(diǎn)的簡要說明:
?/camera/rectify_color:使用校準(zhǔn)數(shù)據(jù)校正原始相機(jī)圖像。
?/find_and_kick_ball:訂閱檢測主題,決定是否接近,并啟動踢球動作。
?/controller_node:運(yùn)行一個(gè)50 Hz的控制回路,通過低級串行伺服驅(qū)動器來管理機(jī)器人的運(yùn)動和步態(tài)。
?/object_detection:使用邊緣脈沖模型檢測校正圖像流中的球。
?/image_bbox_node:訂閱校正后的圖像和檢測結(jié)果,繪制邊界框,并將注釋后的圖像流式傳輸。
節(jié)點(diǎn)圖的示意圖如下所示。
當(dāng)web_video_server節(jié)點(diǎn)啟動時(shí),可以通過web瀏覽器查看320x320像素圖像的第一人稱視圖(First-Person View, FPV)。
結(jié)論
該項(xiàng)目展示了將Edge Impulse的人工智能功能與Particle Tachyon的高效處理與高通芯片相結(jié)合的強(qiáng)大功能,以實(shí)現(xiàn)實(shí)時(shí)、自主的機(jī)器人任務(wù)。ROS 2提供了低延遲通信,增強(qiáng)了機(jī)器人平臺之間的互操作性,并通過可重用組件簡化了開發(fā)。未來的增強(qiáng)功能可能包括多球跟蹤或自適應(yīng)學(xué)習(xí),以提高在動態(tài)環(huán)境中的準(zhǔn)確性。
本文編譯自hackster.io





