裴宇昂,吳雯雯,陳 秀,徐扣敏,強紅賓,劉凱磊
(江蘇理工學院機械工程學院,江蘇 常州 213000)
垃圾抓取機器人通常工作在布局多變、障礙因素較多的環境,整個環境由不平整且范圍較廣的空間組成。為適應該環境下機器人的移動,其底盤采用了履帶式的行走底盤,采用直流電動機PWM控制技術,對速度及電流進行雙閉環控制分析,實現機器人履帶驅動直流伺服電動機的閉環控制算法,并采用差動驅動原理實現機器人在形態各異的地形下進行有效移動,通過調整左右電機的差速大小,使機器人能夠實現轉向、后退與直線行進等運動,適應各種復雜地形。
垃圾抓取在機器人對各種路況的環境路徑規劃過程中,需要利用算法規劃全局道路和局部整體道路。常用的全局路徑規劃算法包括Dijkstra計算和RRT算法等。Dijkstra算法通過集合間的判斷,以廣度優先尋找最短路徑,但遍歷結果較多導致效率低。RRT算法規劃路徑方法具有高效率性,但隨機點的生成容易陷入局部最優解。A*算法常采用啟發式搜索方法,目的使搜索方向向目標點行進的同時兼顧優先搜索路徑代價比較小的點,省去無意義的節點的計算,有效地提高算法效率。
全局路徑規劃可以獲取完整路徑軌跡,但不適用于快速避障,并且全局路徑規劃計算量相對比較龐大,因局部路徑變化反復調整全局路徑而增加計算量,將降低導航效率。應用動態窗口算法能夠實現局部路徑規劃,提高路徑規劃算法效率。
本文設計的垃圾識別抓取機器人實驗平臺,由直流電動機驅動主動輪,通過圍繞主動輪與從動輪的履帶鏈環來實現機器人的移動,配備14 000 mAH電池向機器人系統供電,Arduino開發板作為核心數據處理器,HC-SR04型超聲波傳感器用于障礙采集與測距,搭配K210視覺檢測模塊進行實時垃圾信息采集,并傳輸給Arduino開發板,通過運動學逆解使機械臂末端執行器進行物體抓取。由安裝了ubuntu 18.04虛擬機上位機作為計算機端通過Wi-Fi藍牙模塊實現與Arduino的實時通信,同時采用K210的視覺識別技術進行垃圾抓取后的分析與分類。
本文采用A*算法使機器人在路徑規劃中獲取最優路徑,利用啟發式搜索算法,對于遍歷的任意子節點或父節點采用評價函數f(n)計算通過該節點的代價,在每次施行搜索時選擇當前位置周圍f(n)值最小的點采取擴展,直至找到目標節點,生成最優路徑[1]。f(n)的計算如式(1)所示:
f(n)=g(n)+h(n)
(1)
式(1)中,g(n)為初始節點到當前節點之間的時間價格,而不考慮所駛路徑障礙物所占節點情況下的兩點的距離;h(n)為啟發函數,考慮路徑障礙物時的距離;f(n)為機器人移動到目標點所需代價。
在計算f(n)函數計算時,僅需要考慮點到點之間的移動所需代價,因而選擇曼哈頓距離算法計算距離,有利于提高路徑計算的效率:
dist=|x1-x2|+|y1-y2|
(2)
一般A*算法常采用八鄰域法[2],即搜索當前所在節點周圍的8個均勻節點。A*算法進行路徑規劃算法的基本步驟可分為設置合適的柵格環境,定義起始所在位置與目標所在位置,確定啟發函數h(n),執行A*啟發式搜索算法和生成規劃路徑。程序流程如圖1所示。

圖1 A*算法實現流程圖
同時,通過HC-SR04型超聲波感應器,可以使用IO觸發的方法進行測距,并通過使用超聲波檢測技術信號由控制端到接收端之間的最高電平時間,以及根據聲音在空氣中的傳導原理,估算障礙物的間距,進而實現探測定位的功能。在本設計中,使用了HC-SR04和SG60舵機相互融合技術來收集障礙物的方位信息。當智能車輛遇到障礙物時,信息就可以反映到超聲波信號感應器上,在完成了對障礙物方位信息的分析與數據處理之后再將信息反饋給Arduino處理芯片,使之調用對應的程序進行處理。
視覺模塊Kendryte K210采用RISC-V雙核64位處理器,以STM32F427CPU為核心,同時搭載了CSP三封裝的OV2710攝像頭傳感器,通過與DVP-10bit的并行數據端口,可以進行1080p@30fps的視頻信號拍攝,為后期KPU處理技術帶來了超高識別率的輸入值。使用C語言有效地完成了核心機器視覺算法,通過架設機器視覺系統實現了圖形采集。機器視覺算法中涉及搜索色塊、人臉圖像檢查、眼睛追蹤、邊界檢查、標志追蹤等,輔助機械臂進行自動視覺識別并采取抓取活動。
垃圾識別分類的核心技術是通過K210的神經網絡實現對圖像的處理與辨識,以Darknet作為深度學習開發的框架,通過YOLOv二模塊對物體進行檢索與分類,并擁有出色的mAP和FPS性能等指標,在訓練的過程也采用了數據增強的技術,使得數據具有更強的適應性。
視覺系統的神經網絡的設計思路來源于對抗神經網絡:擁有2個神經網絡,一個是用于圖像切割和初次垃圾識別的YOLOv5神經網絡,一個是用于特征提取和特征匹配的神經網絡,然后將指令傳遞到STM32核心。該神經網絡結構中使用的是基于VGG十六的卷積神經網絡模式。通過2個神經網絡的共同判斷,可以實現垃圾的準確判別。
為考慮后期模型優化問題,以更適用于K210等輕量級終端,在本文中引入了剪枝項目[3]的理論模型,對YOLOv二模式提供了稀疏訓練[4],其基本原理是對所有信道都引入比例因子β,使之乘以信道的輸出值。將比率因子β和訓練網絡的權值結合,再經過稀疏正側化的處理過程后,可以透過去掉比率因子通道,獲得微調剪枝網,練習目標公式如下:

(3)
式中:x,y為訓練數據信息和標記;W為網絡的可練習參數。其中,l(f(x,W),y)表示訓練的 loss函數;g(β)是在比例因子上的訓練參數;λ則是稀疏系數。
在取g(β)=β時,即應用于稀疏化操作的L1-Norm(L1正則化)。經過設計后的模塊有效減少了內部存儲器占用和模型空間[5],從而可以在K210上進行更高效的部署、使用和管理。而后期導入培訓完成后的模塊在K210運行測試中,將必須重新調用其內部的神經網絡處理器KPU,然后進行裝載,并執行新構建的算法模型實現目標檢測,內部分析過程如圖2所示。

圖2 智能垃圾分類流程圖
使用K210所搭載的YOLOv2算法對圖片中的目標物品加以偵測辨別,從而獲得了目標物品在RGB圖片中的正確定位信號;基于深度圖像信息,使用K-means++聚類算法可以快速估計目標物體與攝像機之間的距離,并預測目標物體尺寸和姿勢,同時可以在開環控制中,通過運動學逆解計算機械臂末端執行機的位移信號,再根據目標物體的尺寸、姿勢和到末端執行機的距離等信號,并使用PID算法操控機械手臂捕獲目標物體。
機臂運動學逆解(Analytical solution)是基于存在可解性(solvability)的情況下,通過驅動操舵設備等使機器人滑膜關節實現回轉或平移動作,同時考慮當前的位置作為輸入參數并設定權重比,得到控制程序執行至目標點時的最優值,在原本設計中需要考慮碰撞體積、路線規劃等問題的基礎上,得到了全部值。逆解個數決定了機器人的滑膜關節數量、自動化機器人的基本構造、對滑膜關節的控制范圍,而決定自動化機器人結構的D-H參數表上的非零值愈來愈多,因此也有愈來愈多的解存在。具體控制流程如圖3所示。

圖3 機械臂控制流程圖
本文主要通過全地形的履帶式自動化機器人設計,在各類復雜多變道路下進行仿真,提升了自動化機器人一定的越障能力和機動性能,利用鉚釘履帶輪增強機器人的抓地力,使行駛更安全;同時在工作過程中利用自身傳感器收集信息,對燒錄的程序進行適當的處理,并調節相應的舵機或電動機運行,以便通過所有障礙。
為避免在管道路況的環境行駛時產生打滑現象,因此設計上采用了履帶花紋,以增加與地面的摩擦系數,可在各種道路上靈活調節方向,但不適宜用于實現差速轉彎。采用懸掛式構造,在折疊車前部使用了二組較大且獨立的履輪,并使用了二標準操舵裝置將機器人主體連接,在使用階梯時有效減少了震動和卡頓。
采用三維建模軟件Soliworks對垃圾抓取全地形智能避障小車進行車體結構、攝像頭支撐結構、攝像頭調整結構等設計,在保證滿足功能需要和所用材料力學性能的同時,采用復合輕量級材料,車身更輕。
兼顧了搜索有效性與路徑有效性,本設計通過MATLAB對于A*算法進行了全局路線規劃的仿真檢驗,并通過MATLAB模擬流程,實現了對機器人在仿真場景中使用A*算法實現的全局路線規劃和導航,結果如圖4所示:Routing表示全局路徑,Obstacle表示全局路徑障礙目標點,結果表示實驗平臺能夠根據上位機端發布的導航點自主規劃通往目標點的路徑,該仿真驗證了本文路徑規劃方法的有效性。

圖4 MATLAB路徑規劃仿真圖
為實現多種復雜路況下垃圾抓取與識別,本文設計了一種針對復雜場景下的智能垃圾抓取分類機器人平臺,從機器人機械臂、路徑規劃、視覺識別及機械結構方案等方面進行設計,采用基于運動學逆解的機械臂開環控制、基于K210下YOLOv2算法的物體視覺識別方法、基于A*算法的全局路徑規劃方法,較好地實現與全局路徑規劃、垃圾識別抓取與分類功能,通過超聲波傳感器實現避障。實驗結果證明了本文的設計效果良好,具有廣泛的應用前景。