基于Jetson TX2視覺(jué)識(shí)別的取放一體平衡機(jī)器人
基金項(xiàng)目:*遼寧科技大學(xué)大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃專項(xiàng)經(jīng)費(fèi)資助
本文引用地址:http://cafeforensic.com/article/202308/449751.htm機(jī)器人技術(shù)是當(dāng)前發(fā)展最快的領(lǐng)域之一,已經(jīng)廣泛應(yīng)用于物流、制造、醫(yī)療衛(wèi)生和社會(huì)服務(wù)等多個(gè)領(lǐng)域。針對(duì)在復(fù)雜環(huán)境下人工操作難以實(shí)現(xiàn)自動(dòng)化、智能化和精確性的問(wèn)題,本項(xiàng)目開(kāi)發(fā)了一款基于Jetson TX2的取放一體平衡機(jī)器人。該機(jī)器人采用高性能的Jetson TX2作為硬件平臺(tái),可實(shí)現(xiàn)高速圖像處理和計(jì)算。機(jī)器人采用現(xiàn)代機(jī)器人技術(shù)的機(jī)械結(jié)構(gòu)和電氣控制,包括兩輪平衡機(jī)器人和機(jī)械臂等。軟件系統(tǒng)包括圖像處理、運(yùn)動(dòng)控制和用戶界面等模塊,通過(guò)自主感知、控制和運(yùn)動(dòng)規(guī)劃等功能,該機(jī)器人能夠精準(zhǔn)地捕獲并放置物品。本項(xiàng)目在Jetson TX2平臺(tái)上搭建了機(jī)器視覺(jué)開(kāi)發(fā)環(huán)境,并利用OpenCV等技術(shù)實(shí)現(xiàn)了本地端圖形方式的信息傳遞功能。針對(duì)機(jī)器人運(yùn)動(dòng)過(guò)程中的控制,采用了PID 控制算法。
1 系統(tǒng)設(shè)計(jì)
1.1 系統(tǒng)框架
本機(jī)器人的運(yùn)動(dòng)控制系統(tǒng)采用STM32F407IGH6 作為主控,該主控采用高性能的ARM Cortex-M4 處理器,能夠有效地處理高速數(shù)據(jù)和復(fù)雜算法。該主控存儲(chǔ)容量可擴(kuò)展,可儲(chǔ)存大量程序代碼和數(shù)據(jù),確保系統(tǒng)具有快速響應(yīng)和高效性能。此外,該主控還擁有多種外設(shè)和通信接口,支持機(jī)器人系統(tǒng)的多樣化和復(fù)雜功能。該系列主控還具有低功耗特性和較高性價(jià)比,易于獲取開(kāi)發(fā)工具。
另外,機(jī)器人的視覺(jué)識(shí)別系統(tǒng)采用Jetson TX2,該系統(tǒng)采用基于Pascal 的多處理器GPU 架構(gòu)和8 核ARM64 CPU,可提供超過(guò)1TFLOPS 的高性能計(jì)算能力,支持多種編程模型,包括神經(jīng)網(wǎng)絡(luò)、圖像處理和流媒體編碼等,還支持多種傳感器、控制器和執(zhí)行器的連接,并配備了豐富的開(kāi)發(fā)工具和樣例,方便開(kāi)發(fā)人員進(jìn)行機(jī)器人應(yīng)用的復(fù)雜開(kāi)發(fā)。綜上所述,Jetson TX2 在本項(xiàng)目中發(fā)揮了至關(guān)重要的作用,特別是在實(shí)現(xiàn)物體識(shí)別和信息獲取方面。
1.2 控制流程
機(jī)器人啟動(dòng)后,機(jī)器人將開(kāi)始采集環(huán)境圖像,并通過(guò)攝像頭將圖像傳遞給圖像處理模塊(TX2)。該模塊將使用圖像處理技術(shù)對(duì)圖像進(jìn)行處理,然后將處理后的數(shù)據(jù)傳遞給運(yùn)動(dòng)控制模塊。在數(shù)據(jù)處理過(guò)程中,運(yùn)動(dòng)控制模塊將使用PID 控制算法來(lái)監(jiān)控機(jī)器人的運(yùn)動(dòng)狀態(tài)。最終,在運(yùn)動(dòng)控制模塊的規(guī)劃和控制下,機(jī)器人將達(dá)到預(yù)定的目標(biāo)位置,并利用機(jī)械臂控制來(lái)抓取目標(biāo)物體并將其存儲(chǔ)??刂屏鞒倘鐖D1 所示。
圖1 控制流程
1.3 系統(tǒng)模塊
1.3.1 視覺(jué)模塊
為了處理視覺(jué)系統(tǒng)采集到的物體圖像和輸出檢測(cè)結(jié)果,本項(xiàng)目采用了Jetson TX2 和KS2A543 高速攝像頭。
1.3.2 平衡控制模塊
使用STM32F407IGH6 作為主控,通過(guò)CAN 總線獲取電機(jī)信息和參數(shù),采用PID控制算法實(shí)現(xiàn)多重閉環(huán),以控制輪組電機(jī)、YAW 軸電機(jī)和PITCH 軸電機(jī)。
2 硬件設(shè)計(jì)
2.1 硬件選型
為了提高機(jī)器人的性能,本項(xiàng)目采用了不同的硬件模塊。其中,Jetson TX2 作為視覺(jué)系統(tǒng)的處理器,用于處理物體圖片并輸出檢測(cè)結(jié)果;STM32F407IGH6 作為底盤(pán)和云臺(tái)的主控,負(fù)責(zé)底盤(pán)運(yùn)動(dòng)控制和云臺(tái)底盤(pán)信息傳遞;陀螺儀選用單片機(jī)內(nèi)置的BMI088。此外,為了實(shí)現(xiàn)高效穩(wěn)定的動(dòng)力輸出,輪組電機(jī)和YAW 軸電機(jī)均采用大疆M3508 電機(jī),具備有感FOC 控制,可提供穩(wěn)定的扭矩,無(wú)論轉(zhuǎn)速高低都能保持平穩(wěn)的動(dòng)力輸出,從而使得機(jī)器人具有快速響應(yīng)和穩(wěn)定性能。而根據(jù)實(shí)際需求,PITCH 軸電機(jī)則選用大疆M2006 電機(jī),以具備控制精度高、輸出功率大、體積小等特點(diǎn)。云臺(tái)除了部署Jetson TX2 以外,還有控制機(jī)械臂的PITCH 軸電機(jī)、YAW 軸電機(jī)和輪組電機(jī)以及放置于機(jī)器人底盤(pán)上的STM32 主控。底盤(pán)和云臺(tái)之間通過(guò)CAN 通信進(jìn)行交互。硬件整體連接框圖如圖2。
圖2 硬件整體連接圖
3 軟件設(shè)計(jì)
3.1 軟件架構(gòu)
本項(xiàng)目選用了TX2 作為嵌入式平臺(tái),搭載Ubuntu16.04 系統(tǒng)和OpenCV3.4 等軟件構(gòu)建高效運(yùn)算平臺(tái)。通過(guò)利用攝像頭和TX2 解算數(shù)據(jù)模型,本項(xiàng)目可獲取空間圖像信息,并通過(guò)UART 串口通信將信息傳輸至STM32 單片機(jī)。同時(shí),利用TX2 進(jìn)行深度圖像的像素級(jí)評(píng)估,對(duì)目標(biāo)物體構(gòu)建物體模型并獲取其特征點(diǎn)。接著,通過(guò)TX2 進(jìn)行解算判斷,縮小機(jī)器人和目標(biāo)物體之間的距離。此外,在Jetson TX2 平臺(tái)上構(gòu)建了機(jī)器視覺(jué)開(kāi)發(fā)環(huán)境,以實(shí)現(xiàn)基于OpenCV 等技術(shù)的本地端圖形方式信息傳遞功能。
3.2 視覺(jué)識(shí)別算法
首先,需要使用標(biāo)注工具對(duì)圖像中的目標(biāo)物體進(jìn)行標(biāo)記,并將其轉(zhuǎn)換為YOLO 模型所需的格式,包括圖片和標(biāo)注文件。由于Jetson TX2 的硬件資源有限,因此可以使用預(yù)訓(xùn)練的模型(如COCO、VOC 等)進(jìn)行微調(diào)訓(xùn)練,逐漸增加Batch Size 以提高性能和收斂速度。同時(shí),采用數(shù)據(jù)增強(qiáng)方法可以增加訓(xùn)練數(shù)據(jù),提高模型的準(zhǔn)確性。訓(xùn)練完成后,需要對(duì)其進(jìn)行測(cè)試以評(píng)估其準(zhǔn)確性和性能??梢酝ㄟ^(guò)使用測(cè)試集對(duì)YOLO 模型進(jìn)行測(cè)試,并觀察其輸出結(jié)果,從而檢查YOLO 算法是否能夠準(zhǔn)確地檢測(cè)目標(biāo)物體。最后,將訓(xùn)練好的YOLO模型部署到Jetson TX2 上,并使用YOLO 提供的API進(jìn)行目標(biāo)檢測(cè)。為了檢測(cè)圖像中的目標(biāo)物體,本項(xiàng)目可以使用OpenCV 對(duì)圖像文件進(jìn)行讀取和檢測(cè)結(jié)果的顯示。一旦檢測(cè)到目標(biāo)物體,可以獲取其位置、類別等信息。在確定目標(biāo)物體后,可以利用OpenCV 庫(kù)進(jìn)一步處理物體,如確定其顏色和尺寸等信息。
3.3 平衡控制算法
為了實(shí)現(xiàn)垂直方向上的平衡控制并生成程序骨架,可以使用STM32CubeMX工具并添加相關(guān)庫(kù)和驅(qū)動(dòng)程序,包括陀螺儀、CAN 和PID。利用CAN 總線獲取電機(jī)參數(shù)和信息,并讀取陀螺儀測(cè)量值,以實(shí)現(xiàn)平衡控制。在PID 控制算法中,P(比例)、I(積分)和D(微分)系數(shù)的選擇非常重要。P 系數(shù)影響響應(yīng)速度和穩(wěn)定性,I 系數(shù)用于消除靜態(tài)誤差,D系數(shù)減小震蕩??梢酝ㄟ^(guò)實(shí)驗(yàn)和仿真等方法來(lái)尋找最佳PID 系數(shù)值以實(shí)現(xiàn)更為穩(wěn)定的平衡控制。在程序中,計(jì)算PID 控制器的輸出并根據(jù)輸出來(lái)控制電機(jī)的速度或位置等參數(shù),以實(shí)現(xiàn)平衡控制。同時(shí),需要對(duì)PID 控制器進(jìn)行限幅以防止電機(jī)失控,并不斷調(diào)整PID 系數(shù)以使平衡控制更加穩(wěn)定和快速。
3.4 軟件總體實(shí)現(xiàn)
所有嵌入式算法基于HAL 庫(kù)通過(guò)freeRTOS 分任務(wù)執(zhí)行。其中Chassis Task 任務(wù)負(fù)責(zé)獲取底盤(pán)控制等信息;Gimbal Task 任務(wù)負(fù)責(zé)獲取云臺(tái)等信息;Imu Task 任務(wù)負(fù)責(zé)解算板載陀螺儀;Annex Task 任務(wù)負(fù)責(zé)控制一些附件,例如舵機(jī)等;最后System Inform Task 任務(wù)負(fù)責(zé)進(jìn)行數(shù)據(jù)更新、交互及數(shù)據(jù)加載。軟件總體實(shí)現(xiàn)框圖如圖3。
圖3 軟件總體實(shí)現(xiàn)框圖
4 系統(tǒng)測(cè)試
4.1 物體目標(biāo)檢測(cè)算法
首先,加載預(yù)先訓(xùn)練好的YOLO 權(quán)重文件,獲取網(wǎng)絡(luò)結(jié)構(gòu)的相關(guān)參數(shù),以及包含了YOLO 所需的目標(biāo)類別名稱的文本文件。接著,使用函數(shù)提供的接口加載輸入的權(quán)重參數(shù)和YOLO 配置文件。這兩個(gè)文件應(yīng)包含了模型的結(jié)構(gòu)細(xì)節(jié)、輸入/ 輸出層名稱和類別標(biāo)簽等信息。其次,加載需要檢測(cè)的圖像,并對(duì)其進(jìn)行預(yù)處理操作。這些操作包括:將像素值的范圍縮放到0~1 之間、調(diào)整其大小、重新排序,并添加1 個(gè)新的維度來(lái)拓展輸出數(shù)組形狀。將經(jīng)過(guò)預(yù)處理的圖像輸入到預(yù)訓(xùn)練的物體檢測(cè)算法中,輸出檢測(cè)結(jié)果。為了剔除概率小的或者IoU 值大于設(shè)定閾值的重疊框,可以采用非極大值抑制(NMS)算法對(duì)輸出結(jié)果進(jìn)行后處理。接著,對(duì)于檢測(cè)到的目標(biāo),進(jìn)行分類、位置定位以及預(yù)測(cè)置信度的解碼,將算法的輸出轉(zhuǎn)換為邊框、概率和類別ID。物體目標(biāo)檢測(cè)算法的部分代碼展示如圖4 所示。
圖4 物體目標(biāo)檢測(cè)算法部分代碼展示
4.2 測(cè)試結(jié)果
將處理好的目標(biāo)物體檢測(cè)結(jié)果通過(guò)在原圖上畫(huà)出邊界框的方式展示出來(lái)。不同的目標(biāo)物體可以用不同的顏色來(lái)代表它們所屬的不同識(shí)別類別,并在標(biāo)簽上顯示其對(duì)應(yīng)的類別名稱。測(cè)試結(jié)果如圖5。
圖5 測(cè)試結(jié)果
4.3 測(cè)試結(jié)果分析
盡管PID 算法是一種常用的控制算法,但通過(guò)改進(jìn)PID 算法以提高系統(tǒng)穩(wěn)定性和精度,或采用其他控制算法,如模糊控制、LQR 控制器等,可能會(huì)進(jìn)一步提高控制系統(tǒng)性能。需要注意的是,實(shí)驗(yàn)結(jié)果僅基于特定場(chǎng)景,應(yīng)進(jìn)一步探索該平衡機(jī)器人在實(shí)際日常條件下的表現(xiàn),例如在不同表面的摩擦系數(shù)和坡度變化的情況下運(yùn)動(dòng)、在不同亮度的日照下進(jìn)行視覺(jué)識(shí)別等。
5 結(jié)束語(yǔ)
本文介紹了一種基于Jetson TX2 平臺(tái)的平衡機(jī)器人,該機(jī)器人采用了視覺(jué)識(shí)別技術(shù)并使用STM32 作為主控芯片,能夠?qū)崟r(shí)獲取各種傳感器數(shù)據(jù),并對(duì)周圍環(huán)境進(jìn)行識(shí)別和控制。實(shí)驗(yàn)結(jié)果表明,該機(jī)器人實(shí)現(xiàn)了優(yōu)秀的自平衡和控制功能,并表現(xiàn)出魯棒性和可靠性。未來(lái)的研究方向包括進(jìn)一步優(yōu)化控制算法、提高系統(tǒng)的穩(wěn)定性和精度,以及在實(shí)際工作場(chǎng)景中進(jìn)行測(cè)試。此外,機(jī)械結(jié)構(gòu)的設(shè)計(jì)和控制策略研究也是一個(gè)重要的方向,以進(jìn)一步提高機(jī)器人的準(zhǔn)確性和穩(wěn)定性。這些方面的改進(jìn)和優(yōu)化將有助于更好地應(yīng)用平衡機(jī)器人在物流、醫(yī)療器械、環(huán)境衛(wèi)生和其他服務(wù)領(lǐng)域??傊?,該平衡機(jī)器人的設(shè)計(jì)和實(shí)現(xiàn)為機(jī)器人技術(shù)的發(fā)展提供了新的思路和方向,并在自動(dòng)化、智能化和精準(zhǔn)化作業(yè)的領(lǐng)域具有廣泛的應(yīng)用前景。
參考文獻(xiàn):
[1] 劉愛(ài)東,郭智超,徐君明,等.基于改進(jìn)YOLOv4與JetsonTX2的無(wú)人機(jī)實(shí)時(shí)目標(biāo)檢測(cè)方法[J].兵器裝備工程學(xué)報(bào),2022,43(4):204-210.
[2] 梁赟. 基于機(jī)器視覺(jué)的產(chǎn)品識(shí)別與定位方法研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2020.
[3] 阮激揚(yáng). 基于YOLO的目標(biāo)檢測(cè)算法設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2019.
[4] 王偉,張晶濤,柴天佑. PID參數(shù)先進(jìn)整定方法綜述[J].自動(dòng)化學(xué)報(bào),2000,38(3):347-355.
[5] 路成強(qiáng),曾潔,李千振.基于卡爾曼濾波的兩輪自平衡遙控小車設(shè)計(jì)[J].自動(dòng)化儀表,2017,38(9):44-47.
(本文來(lái)源于《電子產(chǎn)品世界》雜志2023年8月期)
評(píng)論