姚燕,莊澤澍,詹祎,王鵬云
(北京郵電大學(xué)人工智能學(xué)院,北京 100876)
快速換裝接頭是一端與機械臂相連,另一端與末端執(zhí)行器相連的特殊結(jié)構(gòu)[1-2]。機械手可以通過換裝接頭實現(xiàn)末端執(zhí)行器的快速更換,以滿足不同場景下不同任務(wù)的需求[3-4]??焖贀Q裝接頭的設(shè)計思想已廣泛應(yīng)用在了生產(chǎn)制造、水下探索、排爆、應(yīng)急搶險、破拆等多個領(lǐng)域的機械臂中[3-6]??焖贀Q裝接頭在空間機械臂上也有非常廣泛的應(yīng)用,而空間機械臂是航天器在軌服務(wù)的核心裝備[7]??焖贀Q裝接頭一般搭載有視覺感知系統(tǒng),以獲取工具及其他部件的位姿信息[8]。著名的搭載有快換裝置的空間機械臂系統(tǒng)有MSS、ETS-VII[9]、EUROBOT[10]和軌道快車等[11]。
目前的機械臂系統(tǒng)快換裝置已具有精度高,適用范圍廣等優(yōu)點,視覺技術(shù)也大量應(yīng)用其中,但目前視覺技術(shù)一般用于識別和計算物體的位姿信息,而用于識別部件類型并自動更換末端工具方面的研究較少。
針對快換裝置智能化程度有待進一步提高的問題,本文設(shè)計并實現(xiàn)一個基于深度學(xué)習(xí)的智能機械臂末端快換裝置,從機械結(jié)構(gòu)和控制系統(tǒng)兩方面進行了快換機械臂末端工具的設(shè)計,研究的重點是控制系統(tǒng)中圖像識別子系統(tǒng)的設(shè)計與實現(xiàn),達到依據(jù)視覺處理系統(tǒng)自動識別部件進而控制機械手的動作。
智能機械手的機械結(jié)構(gòu)主要由快換裝置和末端執(zhí)行器組成。
(1)快換裝置??鞊Q裝置的上端(機械臂適配器)與機械臂相連,接頭的基體由機械臂適配器、更換模塊、固定結(jié)合模塊、工具端適配器四者組成。機械臂適配器與更換模塊通過螺釘連接。工作時,在電動機的驅(qū)動下,更換模塊中的滑塊向下直線運動,從而將4個卡塊向外推?;瑝K在鎖緊工作位時,卡塊自鎖,更換模塊與固定結(jié)合模塊鎖緊??鞊Q裝置結(jié)構(gòu)如圖1所示。
圖1 快換裝置結(jié)構(gòu)
(2)末端執(zhí)行器。末端執(zhí)行器包括剪刀和螺絲刀兩種工具。剪刀部分主要由電動機、螺母、滑塊、剪刀鉗組成。功能是剪切直徑約2 mm的導(dǎo)線。電動機驅(qū)動螺桿,螺母在螺桿上直線往復(fù)運動,螺母上固連一連桿與剪刀柄上的滑塊鉸接,從而將螺母的直線運動轉(zhuǎn)換為剪刀柄的擺動,實現(xiàn)剪切。剪刀結(jié)構(gòu)如圖2 所示。
圖2 剪刀結(jié)構(gòu)
電動螺絲刀末端執(zhí)行器結(jié)構(gòu)分為3 個部分:與中間輔助結(jié)構(gòu)的連接部分、中間連接桿及外六角螺栓批頭。中間連接桿上的外螺紋在螺絲刀的旋轉(zhuǎn)下,在固定在外殼上的螺母的作用下,螺絲刀結(jié)構(gòu)即可實現(xiàn)旋轉(zhuǎn)前進,完成擰螺栓的操作。該電動螺絲刀直接使用絲桿螺母機構(gòu)完成旋轉(zhuǎn)前進的功能,結(jié)構(gòu)簡單易實現(xiàn)。螺絲刀結(jié)構(gòu)如圖3 所示。
圖3 螺絲刀結(jié)構(gòu)
快速換裝機械手控制系統(tǒng)主要由兩部分組成,即:基于ImageAi的圖像識別子系統(tǒng),由計算機實現(xiàn);機械手控制子系統(tǒng),主要由AVR 單片機實現(xiàn)。2 個子系統(tǒng)通過無線串口模塊相通信。系統(tǒng)整體結(jié)構(gòu)圖如圖4所示。
圖4 系統(tǒng)整體結(jié)構(gòu)圖
(1)圖像識別子系統(tǒng)。該子系統(tǒng)主要采用基于Tensorflow軟件的ImageAi庫實現(xiàn),構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)對目標工件訓(xùn)練集進行訓(xùn)練,并對工程中實際拍攝的圖片進行識別。圖像識別子系統(tǒng)通過無線串口模塊與單片機通信,根據(jù)單片機傳來的請求控制攝像頭拍攝并將識別結(jié)果回傳到單片機中。
(2)機械手控制子系統(tǒng)。機械手控制子系統(tǒng)主要由ATMEGA2560 單片機、3 個電動機、無線透傳模塊、語音輸出模塊等組成。其主要功能為:①在單片機的控制下,通過各電機的運動,實現(xiàn)快換裝置的緊固和松脫以及各工具頭的動作;②單片機還負責(zé)接收人機交互模塊傳來的各種控制指令、接收圖像識別子系統(tǒng)傳來與圖像識別有關(guān)的訊息,并對各種指令信息做出相應(yīng)的反饋。
系統(tǒng)主程序?qū)⑶笆龈鞑糠志C合在一起,共同實現(xiàn)智能快速換裝的功能。程序控制過程如下:
(1)主循環(huán)中。在主循環(huán)的流程中:①進入待機狀態(tài);②在檢測到啟動信號后,機械手在機械臂(或其他運動控制設(shè)備)的引導(dǎo)下運動到工件處;③到位后通過無線串口模塊通知圖像識別子系統(tǒng)拍照和識別,識別結(jié)果返回單片機。
(2)收到圖像識別子系統(tǒng)發(fā)來的識別結(jié)果后。單片機收到圖像識別結(jié)果后的流程:①用戶根據(jù)識別情況按下正確或錯誤按鈕,告知單片機本次識別正確與否;②機械臂將快換裝置引導(dǎo)到相應(yīng)的末端執(zhí)行器位置并與末端執(zhí)行器鎖定,待鎖定完成后機械臂再次將快換裝置及末端執(zhí)行器帶至工件處,執(zhí)行相應(yīng)的動作;③快換裝置與末端執(zhí)行器解鎖,末端執(zhí)行器及快換裝置歸位。
設(shè)備在循環(huán)的每一步中,都配有相應(yīng)的語音輸出,用以提醒操作者當前設(shè)備狀態(tài)。
本文的圖像識別子系統(tǒng)采用PYTHON 語言在計算機上實現(xiàn),并通過無線串口模塊與單片機進行通信。
本文分別用ResNet 和DenseNet 兩種當下主流的CNN網(wǎng)絡(luò)建立了算法模型,并分別進行了訓(xùn)練和性能比較,選取最優(yōu)模型。
ResNet網(wǎng)絡(luò)是一種典型的CNN卷積神經(jīng)網(wǎng)絡(luò),其核心思想是引入深度殘差框架有效解決了梯度消失問題,如圖5 所示ResNet 網(wǎng)絡(luò)通過殘差學(xué)習(xí)單元,建立前面層與后面層之間的“快捷連接”[12],一定程度上解決了網(wǎng)絡(luò)退化問題,從而能訓(xùn)練出更深層的CNN網(wǎng)絡(luò)[13]。
圖5 ResNet算法殘差學(xué)習(xí)單元
DenseNet網(wǎng)絡(luò)是一種具有密集連接的卷積神經(jīng)網(wǎng)絡(luò)。它的基本思路與ResNet 一致,與ResNet 的主要不同是該網(wǎng)絡(luò)中任意兩層之間都有直接的連接[14],而該層所學(xué)習(xí)的特征也會被直接傳給其后面所有層作為輸入,從而實現(xiàn)特征重用提升效率。
圖像識別子系統(tǒng)采用基于TensorFlow軟件便捷高效的ImageAi 庫搭建了深度學(xué)習(xí)模型,ImageAi 提供4種不同的算法模型來執(zhí)行自定義預(yù)測模型訓(xùn)練。將其中任意一種算法加載到imageai.Prediction.Custom.CustomImagePrediction類中,即可在任何對象/人的圖像集上訓(xùn)練模型[15]。本項目分別選用ResNet網(wǎng)絡(luò)和DenseNet網(wǎng)絡(luò)進行了訓(xùn)練并做了性能分析比較。
應(yīng)用ImageAi庫進行自定義預(yù)測模型訓(xùn)練,首先需要準備用于訓(xùn)練的圖像,本項目共計收集到實際工程應(yīng)用中的螺絲、電線圖片441張,訓(xùn)練、測試集約按4∶1劃分。
通過調(diào)用訓(xùn)練語句,對模型類別、迭代次數(shù)、訓(xùn)練集位置等進行設(shè)置,即可快速高效對模型進行訓(xùn)練。ResNet網(wǎng)絡(luò)所生成的模型共有約2 300 萬個可訓(xùn)練參數(shù),網(wǎng)絡(luò)結(jié)構(gòu)龐大;DenseNet 網(wǎng)絡(luò)所生成的模型共有約700 萬個待訓(xùn)練參數(shù),網(wǎng)絡(luò)規(guī)模小于ResNet。
訓(xùn)練次數(shù)設(shè)置為100輪,訓(xùn)練程序運行在1 臺型號為ThinkPAD T460 的筆記本電腦上,其配置了英特爾i5-6200U,DDR3L8 GB 內(nèi)存,操作系統(tǒng)為Windows10。訓(xùn)練耗時約為28 h,其中ResNet 的訓(xùn)練每輪時長平均為7 min,而DenseNet 的訓(xùn)練每輪時長平均為10 min,長于ResNet,這是由于DenseNet 訓(xùn)練過程中內(nèi)存占用更多的原因所導(dǎo)致的,訓(xùn)練所得到的模型文件是圖像識別的基礎(chǔ)。
通過訓(xùn)練測試模型準確率結(jié)果見表1 所列。
表1 模型準確率情況匯總表
(1)ResNet 模型測試。其各指標與訓(xùn)練輪數(shù)關(guān)系如圖6 所示,可見在訓(xùn)練集上的準確率在30 輪訓(xùn)練之后基本保持了穩(wěn)定上升的趨勢,在第40 輪前后損失出現(xiàn)了一個提高,這使得模型參數(shù)得到了較好調(diào)整,準確率出現(xiàn)了約4%的上升。最終準確率可達99.0%。
圖6 ResNet模型準確率變化曲線
而測試集上的準確率在40 輪之前一直很低,在第40 輪模型訓(xùn)練集準確率提高后,測試集準確率有一定上升,但在50輪左右測試集損失大幅增加,而后模型預(yù)測水平出現(xiàn)了飛躍,測試集準確率從54%逐步提高并穩(wěn)定到了90.6%,這說明模型“學(xué)習(xí)”到了更普遍更準確地分類特征。對于為何測試集準確率會在學(xué)習(xí)率準確率保持穩(wěn)定的情況下,出現(xiàn)大幅度的躍升,或許是由于樣本采集與分布問題,也有可能是ResNet本身特性所致,值得進一步的探究。
(2)DenseNet模型測試。其各指標與訓(xùn)練輪數(shù)關(guān)系如圖7 所示,可見在訓(xùn)練集上的準確率及損失在60輪訓(xùn)練之后基本達到穩(wěn)定,準確率可達98.6%左右,而測試集上的準確率與損失在75 輪訓(xùn)練后達到穩(wěn)定,準確率為85.4%,準確率略遜于ResNet網(wǎng)絡(luò)。
圖7 DenseNet模型準確率變化曲線
由表1 及圖6~7 可知,在相同條件下,ResNet 在準確率方面較DenseNet 更優(yōu),選擇識別性能較好的ResNet模型作為應(yīng)用在圖像識別子系統(tǒng)上的模型。由于時間及條件限制,本文的實驗數(shù)據(jù)集規(guī)模較小,僅為441 張圖片,未達到ImageAi 推薦的每類500 張訓(xùn)練圖片、100 張測試圖片的規(guī)模,這也是測試集準確率水平未進一步提高的原因。
本文圖像識別子系統(tǒng)中使用OPENCV 控制攝像頭對真實工件進行拍照,獲得的實際圖像用于識別。
在圖像識別子系統(tǒng)主程序中,首先通過serial 庫設(shè)置無線透傳模塊的串口號及波特率,建立起與單片機的通信;然后加載訓(xùn)練好的模型文件,以備識別。當單片機發(fā)來請求后,根據(jù)不同請求執(zhí)行拍照、識別等操作,并將結(jié)果返回單片機。在實際測試中由于抖動等原因,識別準確率尚不及測試集上的準確率。圖像識別子系統(tǒng)程序的流程圖如圖8 所示。
圖8 圖像識別子系統(tǒng)程序流程圖
本文設(shè)計并實現(xiàn)了一個基于Resnet 神經(jīng)網(wǎng)絡(luò)的可快速更換末端執(zhí)行器的機械手系統(tǒng),并進行了訓(xùn)練、圖像拍照及識別實驗,實驗結(jié)果表明,控制系統(tǒng)可以完成預(yù)定動作,電動機控制平穩(wěn)可靠,圖像識別效果良好。后續(xù)工作將擴展除剪刀和螺絲刀外的其他末端工具,該設(shè)備預(yù)期將裝載到真實機械臂末端進行實際檢驗,從而為更好地模擬航天器艙外操作工作做好準備。