裴宇昂,吳雯雯,陳 秀,徐扣敏,強(qiáng)紅賓,劉凱磊
(江蘇理工學(xué)院機(jī)械工程學(xué)院,江蘇 常州 213000)
垃圾抓取機(jī)器人通常工作在布局多變、障礙因素較多的環(huán)境,整個(gè)環(huán)境由不平整且范圍較廣的空間組成。為適應(yīng)該環(huán)境下機(jī)器人的移動(dòng),其底盤(pán)采用了履帶式的行走底盤(pán),采用直流電動(dòng)機(jī)PWM控制技術(shù),對(duì)速度及電流進(jìn)行雙閉環(huán)控制分析,實(shí)現(xiàn)機(jī)器人履帶驅(qū)動(dòng)直流伺服電動(dòng)機(jī)的閉環(huán)控制算法,并采用差動(dòng)驅(qū)動(dòng)原理實(shí)現(xiàn)機(jī)器人在形態(tài)各異的地形下進(jìn)行有效移動(dòng),通過(guò)調(diào)整左右電機(jī)的差速大小,使機(jī)器人能夠?qū)崿F(xiàn)轉(zhuǎn)向、后退與直線行進(jìn)等運(yùn)動(dòng),適應(yīng)各種復(fù)雜地形。
垃圾抓取在機(jī)器人對(duì)各種路況的環(huán)境路徑規(guī)劃過(guò)程中,需要利用算法規(guī)劃全局道路和局部整體道路。常用的全局路徑規(guī)劃算法包括Dijkstra計(jì)算和RRT算法等。Dijkstra算法通過(guò)集合間的判斷,以廣度優(yōu)先尋找最短路徑,但遍歷結(jié)果較多導(dǎo)致效率低。RRT算法規(guī)劃路徑方法具有高效率性,但隨機(jī)點(diǎn)的生成容易陷入局部最優(yōu)解。A*算法常采用啟發(fā)式搜索方法,目的使搜索方向向目標(biāo)點(diǎn)行進(jìn)的同時(shí)兼顧優(yōu)先搜索路徑代價(jià)比較小的點(diǎn),省去無(wú)意義的節(jié)點(diǎn)的計(jì)算,有效地提高算法效率。
全局路徑規(guī)劃可以獲取完整路徑軌跡,但不適用于快速避障,并且全局路徑規(guī)劃計(jì)算量相對(duì)比較龐大,因局部路徑變化反復(fù)調(diào)整全局路徑而增加計(jì)算量,將降低導(dǎo)航效率。應(yīng)用動(dòng)態(tài)窗口算法能夠?qū)崿F(xiàn)局部路徑規(guī)劃,提高路徑規(guī)劃算法效率。
本文設(shè)計(jì)的垃圾識(shí)別抓取機(jī)器人實(shí)驗(yàn)平臺(tái),由直流電動(dòng)機(jī)驅(qū)動(dòng)主動(dòng)輪,通過(guò)圍繞主動(dòng)輪與從動(dòng)輪的履帶鏈環(huán)來(lái)實(shí)現(xiàn)機(jī)器人的移動(dòng),配備14 000 mAH電池向機(jī)器人系統(tǒng)供電,Arduino開(kāi)發(fā)板作為核心數(shù)據(jù)處理器,HC-SR04型超聲波傳感器用于障礙采集與測(cè)距,搭配K210視覺(jué)檢測(cè)模塊進(jìn)行實(shí)時(shí)垃圾信息采集,并傳輸給Arduino開(kāi)發(fā)板,通過(guò)運(yùn)動(dòng)學(xué)逆解使機(jī)械臂末端執(zhí)行器進(jìn)行物體抓取。由安裝了ubuntu 18.04虛擬機(jī)上位機(jī)作為計(jì)算機(jī)端通過(guò)Wi-Fi藍(lán)牙模塊實(shí)現(xiàn)與Arduino的實(shí)時(shí)通信,同時(shí)采用K210的視覺(jué)識(shí)別技術(shù)進(jìn)行垃圾抓取后的分析與分類(lèi)。
本文采用A*算法使機(jī)器人在路徑規(guī)劃中獲取最優(yōu)路徑,利用啟發(fā)式搜索算法,對(duì)于遍歷的任意子節(jié)點(diǎn)或父節(jié)點(diǎn)采用評(píng)價(jià)函數(shù)f(n)計(jì)算通過(guò)該節(jié)點(diǎn)的代價(jià),在每次施行搜索時(shí)選擇當(dāng)前位置周?chē)鷉(n)值最小的點(diǎn)采取擴(kuò)展,直至找到目標(biāo)節(jié)點(diǎn),生成最優(yōu)路徑[1]。f(n)的計(jì)算如式(1)所示:
f(n)=g(n)+h(n)
(1)
式(1)中,g(n)為初始節(jié)點(diǎn)到當(dāng)前節(jié)點(diǎn)之間的時(shí)間價(jià)格,而不考慮所駛路徑障礙物所占節(jié)點(diǎn)情況下的兩點(diǎn)的距離;h(n)為啟發(fā)函數(shù),考慮路徑障礙物時(shí)的距離;f(n)為機(jī)器人移動(dòng)到目標(biāo)點(diǎn)所需代價(jià)。
在計(jì)算f(n)函數(shù)計(jì)算時(shí),僅需要考慮點(diǎn)到點(diǎn)之間的移動(dòng)所需代價(jià),因而選擇曼哈頓距離算法計(jì)算距離,有利于提高路徑計(jì)算的效率:
dist=|x1-x2|+|y1-y2|
(2)
一般A*算法常采用八鄰域法[2],即搜索當(dāng)前所在節(jié)點(diǎn)周?chē)?個(gè)均勻節(jié)點(diǎn)。A*算法進(jìn)行路徑規(guī)劃算法的基本步驟可分為設(shè)置合適的柵格環(huán)境,定義起始所在位置與目標(biāo)所在位置,確定啟發(fā)函數(shù)h(n),執(zhí)行A*啟發(fā)式搜索算法和生成規(guī)劃路徑。程序流程如圖1所示。
圖1 A*算法實(shí)現(xiàn)流程圖
同時(shí),通過(guò)HC-SR04型超聲波感應(yīng)器,可以使用IO觸發(fā)的方法進(jìn)行測(cè)距,并通過(guò)使用超聲波檢測(cè)技術(shù)信號(hào)由控制端到接收端之間的最高電平時(shí)間,以及根據(jù)聲音在空氣中的傳導(dǎo)原理,估算障礙物的間距,進(jìn)而實(shí)現(xiàn)探測(cè)定位的功能。在本設(shè)計(jì)中,使用了HC-SR04和SG60舵機(jī)相互融合技術(shù)來(lái)收集障礙物的方位信息。當(dāng)智能車(chē)輛遇到障礙物時(shí),信息就可以反映到超聲波信號(hào)感應(yīng)器上,在完成了對(duì)障礙物方位信息的分析與數(shù)據(jù)處理之后再將信息反饋給Arduino處理芯片,使之調(diào)用對(duì)應(yīng)的程序進(jìn)行處理。
視覺(jué)模塊Kendryte K210采用RISC-V雙核64位處理器,以STM32F427CPU為核心,同時(shí)搭載了CSP三封裝的OV2710攝像頭傳感器,通過(guò)與DVP-10bit的并行數(shù)據(jù)端口,可以進(jìn)行1080p@30fps的視頻信號(hào)拍攝,為后期KPU處理技術(shù)帶來(lái)了超高識(shí)別率的輸入值。使用C語(yǔ)言有效地完成了核心機(jī)器視覺(jué)算法,通過(guò)架設(shè)機(jī)器視覺(jué)系統(tǒng)實(shí)現(xiàn)了圖形采集。機(jī)器視覺(jué)算法中涉及搜索色塊、人臉圖像檢查、眼睛追蹤、邊界檢查、標(biāo)志追蹤等,輔助機(jī)械臂進(jìn)行自動(dòng)視覺(jué)識(shí)別并采取抓取活動(dòng)。
垃圾識(shí)別分類(lèi)的核心技術(shù)是通過(guò)K210的神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)對(duì)圖像的處理與辨識(shí),以Darknet作為深度學(xué)習(xí)開(kāi)發(fā)的框架,通過(guò)YOLOv二模塊對(duì)物體進(jìn)行檢索與分類(lèi),并擁有出色的mAP和FPS性能等指標(biāo),在訓(xùn)練的過(guò)程也采用了數(shù)據(jù)增強(qiáng)的技術(shù),使得數(shù)據(jù)具有更強(qiáng)的適應(yīng)性。
視覺(jué)系統(tǒng)的神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)思路來(lái)源于對(duì)抗神經(jīng)網(wǎng)絡(luò):擁有2個(gè)神經(jīng)網(wǎng)絡(luò),一個(gè)是用于圖像切割和初次垃圾識(shí)別的YOLOv5神經(jīng)網(wǎng)絡(luò),一個(gè)是用于特征提取和特征匹配的神經(jīng)網(wǎng)絡(luò),然后將指令傳遞到STM32核心。該神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中使用的是基于VGG十六的卷積神經(jīng)網(wǎng)絡(luò)模式。通過(guò)2個(gè)神經(jīng)網(wǎng)絡(luò)的共同判斷,可以實(shí)現(xiàn)垃圾的準(zhǔn)確判別。
為考慮后期模型優(yōu)化問(wèn)題,以更適用于K210等輕量級(jí)終端,在本文中引入了剪枝項(xiàng)目[3]的理論模型,對(duì)YOLOv二模式提供了稀疏訓(xùn)練[4],其基本原理是對(duì)所有信道都引入比例因子β,使之乘以信道的輸出值。將比率因子β和訓(xùn)練網(wǎng)絡(luò)的權(quán)值結(jié)合,再經(jīng)過(guò)稀疏正側(cè)化的處理過(guò)程后,可以透過(guò)去掉比率因子通道,獲得微調(diào)剪枝網(wǎng),練習(xí)目標(biāo)公式如下:
(3)
式中:x,y為訓(xùn)練數(shù)據(jù)信息和標(biāo)記;W為網(wǎng)絡(luò)的可練習(xí)參數(shù)。其中,l(f(x,W),y)表示訓(xùn)練的 loss函數(shù);g(β)是在比例因子上的訓(xùn)練參數(shù);λ則是稀疏系數(shù)。
在取g(β)=β時(shí),即應(yīng)用于稀疏化操作的L1-Norm(L1正則化)。經(jīng)過(guò)設(shè)計(jì)后的模塊有效減少了內(nèi)部存儲(chǔ)器占用和模型空間[5],從而可以在K210上進(jìn)行更高效的部署、使用和管理。而后期導(dǎo)入培訓(xùn)完成后的模塊在K210運(yùn)行測(cè)試中,將必須重新調(diào)用其內(nèi)部的神經(jīng)網(wǎng)絡(luò)處理器KPU,然后進(jìn)行裝載,并執(zhí)行新構(gòu)建的算法模型實(shí)現(xiàn)目標(biāo)檢測(cè),內(nèi)部分析過(guò)程如圖2所示。
圖2 智能垃圾分類(lèi)流程圖
使用K210所搭載的YOLOv2算法對(duì)圖片中的目標(biāo)物品加以偵測(cè)辨別,從而獲得了目標(biāo)物品在RGB圖片中的正確定位信號(hào);基于深度圖像信息,使用K-means++聚類(lèi)算法可以快速估計(jì)目標(biāo)物體與攝像機(jī)之間的距離,并預(yù)測(cè)目標(biāo)物體尺寸和姿勢(shì),同時(shí)可以在開(kāi)環(huán)控制中,通過(guò)運(yùn)動(dòng)學(xué)逆解計(jì)算機(jī)械臂末端執(zhí)行機(jī)的位移信號(hào),再根據(jù)目標(biāo)物體的尺寸、姿勢(shì)和到末端執(zhí)行機(jī)的距離等信號(hào),并使用PID算法操控機(jī)械手臂捕獲目標(biāo)物體。
機(jī)臂運(yùn)動(dòng)學(xué)逆解(Analytical solution)是基于存在可解性(solvability)的情況下,通過(guò)驅(qū)動(dòng)操舵設(shè)備等使機(jī)器人滑膜關(guān)節(jié)實(shí)現(xiàn)回轉(zhuǎn)或平移動(dòng)作,同時(shí)考慮當(dāng)前的位置作為輸入?yún)?shù)并設(shè)定權(quán)重比,得到控制程序執(zhí)行至目標(biāo)點(diǎn)時(shí)的最優(yōu)值,在原本設(shè)計(jì)中需要考慮碰撞體積、路線規(guī)劃等問(wèn)題的基礎(chǔ)上,得到了全部值。逆解個(gè)數(shù)決定了機(jī)器人的滑膜關(guān)節(jié)數(shù)量、自動(dòng)化機(jī)器人的基本構(gòu)造、對(duì)滑膜關(guān)節(jié)的控制范圍,而決定自動(dòng)化機(jī)器人結(jié)構(gòu)的D-H參數(shù)表上的非零值愈來(lái)愈多,因此也有愈來(lái)愈多的解存在。具體控制流程如圖3所示。
圖3 機(jī)械臂控制流程圖
本文主要通過(guò)全地形的履帶式自動(dòng)化機(jī)器人設(shè)計(jì),在各類(lèi)復(fù)雜多變道路下進(jìn)行仿真,提升了自動(dòng)化機(jī)器人一定的越障能力和機(jī)動(dòng)性能,利用鉚釘履帶輪增強(qiáng)機(jī)器人的抓地力,使行駛更安全;同時(shí)在工作過(guò)程中利用自身傳感器收集信息,對(duì)燒錄的程序進(jìn)行適當(dāng)?shù)奶幚恚⒄{(diào)節(jié)相應(yīng)的舵機(jī)或電動(dòng)機(jī)運(yùn)行,以便通過(guò)所有障礙。
為避免在管道路況的環(huán)境行駛時(shí)產(chǎn)生打滑現(xiàn)象,因此設(shè)計(jì)上采用了履帶花紋,以增加與地面的摩擦系數(shù),可在各種道路上靈活調(diào)節(jié)方向,但不適宜用于實(shí)現(xiàn)差速轉(zhuǎn)彎。采用懸掛式構(gòu)造,在折疊車(chē)前部使用了二組較大且獨(dú)立的履輪,并使用了二標(biāo)準(zhǔn)操舵裝置將機(jī)器人主體連接,在使用階梯時(shí)有效減少了震動(dòng)和卡頓。
采用三維建模軟件Soliworks對(duì)垃圾抓取全地形智能避障小車(chē)進(jìn)行車(chē)體結(jié)構(gòu)、攝像頭支撐結(jié)構(gòu)、攝像頭調(diào)整結(jié)構(gòu)等設(shè)計(jì),在保證滿足功能需要和所用材料力學(xué)性能的同時(shí),采用復(fù)合輕量級(jí)材料,車(chē)身更輕。
兼顧了搜索有效性與路徑有效性,本設(shè)計(jì)通過(guò)MATLAB對(duì)于A*算法進(jìn)行了全局路線規(guī)劃的仿真檢驗(yàn),并通過(guò)MATLAB模擬流程,實(shí)現(xiàn)了對(duì)機(jī)器人在仿真場(chǎng)景中使用A*算法實(shí)現(xiàn)的全局路線規(guī)劃和導(dǎo)航,結(jié)果如圖4所示:Routing表示全局路徑,Obstacle表示全局路徑障礙目標(biāo)點(diǎn),結(jié)果表示實(shí)驗(yàn)平臺(tái)能夠根據(jù)上位機(jī)端發(fā)布的導(dǎo)航點(diǎn)自主規(guī)劃通往目標(biāo)點(diǎn)的路徑,該仿真驗(yàn)證了本文路徑規(guī)劃方法的有效性。
圖4 MATLAB路徑規(guī)劃仿真圖
為實(shí)現(xiàn)多種復(fù)雜路況下垃圾抓取與識(shí)別,本文設(shè)計(jì)了一種針對(duì)復(fù)雜場(chǎng)景下的智能垃圾抓取分類(lèi)機(jī)器人平臺(tái),從機(jī)器人機(jī)械臂、路徑規(guī)劃、視覺(jué)識(shí)別及機(jī)械結(jié)構(gòu)方案等方面進(jìn)行設(shè)計(jì),采用基于運(yùn)動(dòng)學(xué)逆解的機(jī)械臂開(kāi)環(huán)控制、基于K210下YOLOv2算法的物體視覺(jué)識(shí)別方法、基于A*算法的全局路徑規(guī)劃方法,較好地實(shí)現(xiàn)與全局路徑規(guī)劃、垃圾識(shí)別抓取與分類(lèi)功能,通過(guò)超聲波傳感器實(shí)現(xiàn)避障。實(shí)驗(yàn)結(jié)果證明了本文的設(shè)計(jì)效果良好,具有廣泛的應(yīng)用前景。