王 帥, 王軍義, 賈子熙, 白 帆, 王冬冬
(東北大學(xué)機(jī)器人科學(xué)與工程學(xué)院,沈陽110819)
機(jī)器人工程專業(yè)是在新工科背景下順應(yīng)國家建設(shè)需求和國際發(fā)展趨勢而設(shè)立的專業(yè),在自動化類專業(yè)基礎(chǔ)上深化機(jī)器人科學(xué)與工程學(xué)科特色,具有交叉性、實(shí)踐性強(qiáng)的特點(diǎn)。按照機(jī)器人工程專業(yè)現(xiàn)行培養(yǎng)計劃,大四上學(xué)期開設(shè)的移動機(jī)器人控制實(shí)驗(yàn),以《工程教育認(rèn)證標(biāo)準(zhǔn)》為指導(dǎo)目標(biāo),秉承“以學(xué)生為中心”的教學(xué)理念,采用項(xiàng)目式(project-based learning,PBL)教學(xué)方式[1],從符合產(chǎn)業(yè)發(fā)展的多學(xué)科交叉項(xiàng)目出發(fā),“自頂而下”設(shè)計實(shí)驗(yàn)內(nèi)容,并對復(fù)雜工程問題分層次進(jìn)行研究,設(shè)計了基于深度學(xué)習(xí)的移動機(jī)械手抓取實(shí)驗(yàn)。以培養(yǎng)學(xué)生自主學(xué)習(xí)的能力以及團(tuán)隊(duì)成員協(xié)作交流能力,包括撰寫報告和陳述發(fā)言、清晰表達(dá)或回應(yīng)指令等能力。
硬件系統(tǒng)為搭載單線激光雷達(dá)的移動平臺、AUBO i5機(jī)械臂、Intel RealsenseSR300深度攝像頭和帶麥克風(fēng)的IntelI7處理器的PC。軟件部分主要是在Ubuntu16.04下完成的,在機(jī)器人操作系統(tǒng)(robot operation system,ROS)平臺上進(jìn)行各個部分的通信,并利用MoveIt進(jìn)行機(jī)械臂的控制,系統(tǒng)總體架構(gòu)如圖1所示。
圖1 機(jī)械臂抓取實(shí)驗(yàn)平臺總體架構(gòu)
通過語音系統(tǒng)下達(dá)任務(wù)指令,控制移動平臺開始自主導(dǎo)航和避障到達(dá)目標(biāo)點(diǎn),進(jìn)行目標(biāo)檢測和執(zhí)行抓取任務(wù)。整個項(xiàng)目在ROS平臺上搭建,利用百度語音識別系統(tǒng)與用戶進(jìn)行交互,借助ROS通信機(jī)制完成語音控制導(dǎo)航和控制目標(biāo)檢測與抓取的功能。在自主導(dǎo)航和避障方面,采用gmapping方法通過成本較低的激光雷達(dá)采集室內(nèi)地圖信息并保存為地圖,利用amcl
(自適應(yīng)蒙特卡洛定位)方法實(shí)現(xiàn)自我定位,通過實(shí)時接收的里程計數(shù)據(jù),調(diào)整移動機(jī)器人的運(yùn)動,以減少誤差,并利用Bresenham算法計算柵格地圖中非障礙物格點(diǎn)的集合,將機(jī)器人安全地移動到目標(biāo)位置,實(shí)現(xiàn)室內(nèi)的低成本、高準(zhǔn)確度的導(dǎo)航與避障功能。在目標(biāo)檢測方面,直接讀取相機(jī)的彩色圖像,利用預(yù)訓(xùn)練完成的YOLO模型進(jìn)行物體識別與檢測,并將識別到的候選目標(biāo)與語音指令中的目標(biāo)對比,選定最終的目標(biāo)區(qū)域,將其對應(yīng)的深度圖像輸入到抓取生成卷積網(wǎng)絡(luò)GGCNN中。該網(wǎng)絡(luò)可以將深度圖像作為輸入,直接預(yù)測出每個像素點(diǎn)的抓取質(zhì)量(成功率)、寬度和位姿,獲得物體的最優(yōu)的抓取位姿。直接在ROS平臺下利用MoveIt控制機(jī)械臂,到達(dá)目標(biāo)位姿,完成抓取動作。實(shí)驗(yàn)結(jié)果表明本文構(gòu)建的移動機(jī)器人系統(tǒng)能夠?qū)崿F(xiàn)在語音控制下的導(dǎo)航避障、物體檢測與自主抓取,結(jié)合語音識別、SLAM、目標(biāo)檢測、位姿生成、ROS和機(jī)械臂與移動平臺控制等多種技術(shù),提高了學(xué)生解決復(fù)雜工程問題的能力。
(1)了解SLAM原理,并學(xué)會在ROS下應(yīng)用SLAM;
(2)了解ROS下語音控制移動機(jī)器人導(dǎo)航方法;
(3)理解YOLO的算法原理,并學(xué)會利用預(yù)訓(xùn)練的YOLO模型,進(jìn)行物體識別與檢測;
(4)學(xué)會訓(xùn)練并使用最優(yōu)抓取位姿生成神經(jīng)網(wǎng)絡(luò)(GG-CNN)模型,實(shí)現(xiàn)抓取位姿生成;
(5)掌握眼在手上的機(jī)器人視覺標(biāo)定與相機(jī)內(nèi)參標(biāo)定;
(6)學(xué)會在ROS平臺下利用MoveIt控制機(jī)械臂完成目標(biāo)抓取。
2.2.1 語音識別
在ROS下,利用百度語音識別系統(tǒng)實(shí)現(xiàn)人機(jī)交互,將語音信號轉(zhuǎn)化為指令,控制機(jī)器人導(dǎo)航到達(dá)目的地以及目標(biāo)檢測指定物體功能[2]。表1為語音控制的偽代碼。
表1 語音控制偽代碼
2.2.2 自主導(dǎo)航和實(shí)時避障
對實(shí)驗(yàn)場景進(jìn)行地圖構(gòu)建。Gmapping是基于濾波SLAM框架的常用開源SLAM算法,可以實(shí)時構(gòu)建室內(nèi)地圖,在構(gòu)建小場景地圖所需的計算量較小且精度較高。相比Hector SLAM對激光雷達(dá)頻率要求低、魯棒性高?;贕mapping算法建立的地圖如圖2所示。
圖2 Gmapping地圖
在建立完世界地圖后,利用移動機(jī)器人的概率定位算法AMCL[3],通過PF粒子濾波來跟蹤定位已知地圖中的機(jī)器人位置。激光傳感器會向固定的方向發(fā)射激光束,發(fā)射出的激光遇到障礙物會被反射,這樣就能得到激光從發(fā)射到收到的時間差,乘以速度除以2就得到了傳感器到該方向上最近障礙物的距離,再計算障礙物在柵格地圖中的坐標(biāo),以及機(jī)器人在柵格地圖中的坐標(biāo),使用Bresenham算法來計算非障礙物格點(diǎn)的集合。利用激光傳感器構(gòu)建柵格地圖來完成避障導(dǎo)航功能[4],自主導(dǎo)航效果圖如圖3所示。
圖3 自主導(dǎo)航效果圖
2.2.3 物體識別與檢測
考慮到目標(biāo)檢測的實(shí)時性,直接采用YOLO v1[5]進(jìn)行目標(biāo)檢測。YOLO v1是一種基于深度神經(jīng)網(wǎng)絡(luò)的對象識別和定位算法,其最大的特點(diǎn)是運(yùn)行速度快,可用于實(shí)時系統(tǒng)。YOLO v1將物體檢測作為回歸問題求解?;谝粋€單獨(dú)的end-to-end網(wǎng)絡(luò),完成從原始圖像的輸入到物體位置和類別的輸出。僅經(jīng)過一次模型推理,便能得到圖像中所有物體的位置和其所屬類別及相應(yīng)的置信概率。
為方便學(xué)生盡快將目標(biāo)檢測應(yīng)用于項(xiàng)目中,在學(xué)習(xí)完YOLO v1的基本理論以后,直接應(yīng)用預(yù)訓(xùn)練的YOLO v1模型進(jìn)行常用物體的識別與檢測,避免長時間的模型訓(xùn)練。
在目標(biāo)檢測過程中,加載預(yù)訓(xùn)練的YOLO v1模型,讀取相機(jī)的彩色圖像,并以448×448×3的大小輸入到Y(jié)OLO v1模型中,經(jīng)過網(wǎng)絡(luò)模型的推理,得到輸出的是一個7×7×30的向量,包含了圖片中物體的分類結(jié)果以及其位置信息的編碼。輸出的30維的特征向量中前20維為模型預(yù)測的20個對象的概率,接著2維分別預(yù)測2個bounding box的置信度,最后的8維分別表示2個bounding box的位置,其中每個bounding box的位置需要4個數(shù)值進(jìn)行表示。通過模型的輸出特征得到檢測的候選物體,并將其與語音指令中的物體對比,得到最終的目標(biāo)物體,并將該區(qū)域?qū)?yīng)的深度圖像發(fā)布到位姿生成算法的話題上,完成目標(biāo)檢測。YOLO v1網(wǎng)絡(luò)示意圖如圖4,算法流程圖如圖5所示。
圖4 YOLO網(wǎng)絡(luò)示意圖
圖5 YOLO算法檢測流程
2.2.4 抓取位姿生成
在抓取位姿生成模型訓(xùn)練中,采用Cornell Grasping Dataset[6]的數(shù)據(jù)。Cornell Grasping Dataset包含885個真實(shí)物體的RGB-D圖像,每個圖像打上若干標(biāo)簽,其中5 110個被打上“positive抓取”標(biāo)簽,2 909個被打上“negative抓取”標(biāo)簽。這是一個相對較小的抓取數(shù)據(jù)集,使用隨機(jī)裁剪,縮放和旋轉(zhuǎn)來增加Cornell Grasping Dataset的數(shù)量[7],創(chuàng)建一組8 840個深度圖像和相關(guān)抓取圖像的集合G T,并有效地結(jié)合了51 100個抓取示例。
Cornell Grasping Dataset使用像素坐標(biāo)將待抓取位姿表示為矩形框,校準(zhǔn)末端執(zhí)行器的位置和旋轉(zhuǎn)角度。為從抓取矩形框表示轉(zhuǎn)變?yōu)榛趫D像的表示,選擇每個抓取矩形的中心1/3處作為圖像掩碼,其對應(yīng)于抓取器中心的位置,選用被標(biāo)記為positive的抓取訓(xùn)練GG-CNN網(wǎng)絡(luò)并假設(shè)其他任何的區(qū)域都不是有效的抓取。
抓取質(zhì)量(準(zhǔn)確率):將每個有效抓取視為二進(jìn)制標(biāo)簽,并將抓取質(zhì)量Q T的相應(yīng)區(qū)域設(shè)置為1,其他所有像素均為0。
角度:計算每個抓取矩形在[-π/2,π/2]范圍內(nèi)的角度,并設(shè)置相應(yīng)的抓取角度ΦT區(qū)域。由于二指抓取在±π/2弧度附近是對稱的,本文使用兩個分量sin(2ΦT)和cos(2ΦT),它們提供在ΦT∈[-π/2,π/2]內(nèi)唯一且在±π/2處對稱的值。
寬度:和角度類似,計算每個抓取矩形的寬度(以最大值為單位),表示抓取器的寬度并設(shè)置夾爪寬度W T的相應(yīng)部分。在訓(xùn)練期間,將W T的值按1/150的比例縮小,使其在[0,1]范圍內(nèi)。
通過以上的定義和操作,從Cornell Grasping Dataset中,生成用于訓(xùn)練GG-CNN模型的數(shù)據(jù)集。
生成最優(yōu)抓取位姿利用GG-CNN[8]計算函數(shù)Mθ(I)=(Qθ,Φθ,Wθ),直接從輸入的深度圖像I來近似生成抓取信息圖像Gθ,以300×300的深度圖像作為輸入,經(jīng)過3層卷積操作和3層反卷積操作,最終獲得抓取的信息圖。GG-CNN結(jié)構(gòu)示意圖如6所示。
圖6 GG-CNN結(jié)構(gòu)示意圖
將圖像中的抓取位姿變換到機(jī)器人坐標(biāo)系下。
式中:tRC為從相機(jī)坐標(biāo)系轉(zhuǎn)換到機(jī)械臂坐標(biāo)系的坐標(biāo)變換;tCI為基于相機(jī)內(nèi)部參數(shù)和機(jī)器人與相機(jī)之間的已知校準(zhǔn),從2D圖像坐標(biāo)轉(zhuǎn)換到3D相機(jī)坐標(biāo)系;g~
為從抓取信息圖Gθ中得到的一組抓取信息。
2.2.5 手眼標(biāo)定
本文采用眼在手上(eye in hand)的方式識別AR Marker碼[10]來進(jìn)行相機(jī)外參標(biāo)定,如圖7所示。
圖7 Eye-in-hand手眼標(biāo)定過程
對于機(jī)器人移動過程中任意兩個位姿,機(jī)器人底座和標(biāo)定板的關(guān)系始終不變,求出相機(jī)和機(jī)器人末端坐標(biāo)系的位姿關(guān)系。
式中:Camera1、Camera2為兩次運(yùn)動相機(jī)的位姿;End1、End2為兩次運(yùn)動機(jī)械臂末端位姿,根據(jù)標(biāo)定板(Object)和機(jī)器人底座間(Base)兩次運(yùn)動保持不變,上式經(jīng)過轉(zhuǎn)換后,可得:
即
在標(biāo)定中,首先利用ROScamera_calibration包基于張正友法進(jìn)行內(nèi)參標(biāo)定[9],然后再利用easy_handeye手眼標(biāo)定功能包直接求解[10]進(jìn)行外參標(biāo)定,至此完成手眼標(biāo)定用于后面的基于視覺的抓取工作。
2.2.6 實(shí)驗(yàn)結(jié)果
本文在1080ti GPU訓(xùn)練GG-CNN網(wǎng)絡(luò)模型,經(jīng)過100個epoch的訓(xùn)練后,將訓(xùn)練好的模型進(jìn)行測試,預(yù)測效果如圖8所示。
圖8 GG-CNN輸出及抓取框生成
將數(shù)據(jù)集中帶標(biāo)記抓取框(綠色)的RGB圖像(左上)、生成抓取框(紅色)的深度圖像(右上)、網(wǎng)絡(luò)輸出的抓取寬度圖像(左下)和抓取角度圖像(右下)顯示出來。從生成抓取框的灰度圖像可以清晰地看出,GG-CNN所生成的抓取框與原數(shù)據(jù)集中標(biāo)記的抓取框的位置、寬度和角度值相差不大,效果理想。
將項(xiàng)目整體進(jìn)行實(shí)驗(yàn)測試,硬件系統(tǒng)為搭載激光雷達(dá)的移動平臺、AUBO i5機(jī)械臂、Intel Realsense SR300深度攝像頭和帶麥克風(fēng)的Intel I7處理器的PC。軟件部分主要是在Ubuntu16.04下完成的,在ROS平臺上進(jìn)行各個部分的通信,并利用MoveIt控制機(jī)械臂完成抓取動作[11],實(shí)驗(yàn)效果如圖9所示。
圖9 實(shí)驗(yàn)系統(tǒng)驗(yàn)證效果
移動機(jī)器人在實(shí)驗(yàn)者語音的指導(dǎo)下由“客廳”走進(jìn)“廚房”,然后按照命令夾起“香蕉”。經(jīng)過實(shí)驗(yàn)驗(yàn)證與測試,移動機(jī)器人能夠在用戶的語音控制下順利地完成自主導(dǎo)航與避障、目標(biāo)物體的識別檢測與自主抓取,系統(tǒng)的魯棒性和實(shí)時性較好。
實(shí)驗(yàn)采用5~6人一組,自由組隊(duì),組長分配任務(wù)和權(quán)重。實(shí)驗(yàn)內(nèi)容及考核方式見表2。
表2 實(shí)驗(yàn)內(nèi)容及考核方式
(1)預(yù)習(xí)階段。通過檢索國內(nèi)外科技論文,查閱資料,了解移動機(jī)器人的組成、導(dǎo)航算法、目標(biāo)檢測算法、抓取位姿生成算法,以及語音識別,手眼標(biāo)定,MoveIt控制機(jī)械臂;引導(dǎo)學(xué)生把項(xiàng)目分解為若干子課題,討論分工及子課題的進(jìn)行順序,撰寫實(shí)驗(yàn)計劃。
(2)操作階段。根據(jù)學(xué)生的知識水平、學(xué)習(xí)能力和實(shí)踐能力,結(jié)合課程設(shè)計項(xiàng)目的難度和特點(diǎn),分“基礎(chǔ)-拓展-提高”3階段有序開展創(chuàng)新能力培養(yǎng)工作?;A(chǔ)階段首先讓學(xué)生了解ROS下通信機(jī)制,完成機(jī)械臂和AGV的校正,完成“眼在手上”手眼標(biāo)定;拓展階段學(xué)會MoveIt功能包控制機(jī)械臂,以及利用百度語音識別庫控制AGV運(yùn)動;提高階段實(shí)現(xiàn)物體識別檢測,生成最優(yōu)抓取位姿,控制機(jī)械臂抓取。
(3)總結(jié)階段。每組寫一份課程設(shè)計報告,介紹分組情況,系統(tǒng)原理、硬件組成、軟件組成、代碼實(shí)現(xiàn)、系統(tǒng)調(diào)試等部分。每組進(jìn)行演示答辯,老師給出每組成績,組長和老師一起分配組員成績權(quán)重。
針對移動機(jī)器人控制實(shí)驗(yàn)課程,搭建了基于深度學(xué)習(xí)的移動機(jī)械手實(shí)驗(yàn)平臺,并設(shè)計了32學(xué)時的課程設(shè)計內(nèi)容,取得良好的教學(xué)效果。實(shí)驗(yàn)項(xiàng)目具有以下特點(diǎn):
(1)按照“自底向上”的教學(xué)設(shè)計方法,對標(biāo)《工程教育認(rèn)證標(biāo)準(zhǔn)》,制定人才培養(yǎng)方案,同時融合“自頂向下”的教學(xué)設(shè)計方法,分階段完成復(fù)雜工程項(xiàng)目[12]。
(2)基于PBL項(xiàng)目式實(shí)踐教學(xué)模式,把大學(xué)4年所學(xué)多門課程如機(jī)器人基礎(chǔ)原理、機(jī)器人操作系統(tǒng)、圖像處理、機(jī)器視覺等知識融會貫通,真正做到多學(xué)科交叉。
(3)階梯式創(chuàng)新人才培養(yǎng)模式[13],把科研項(xiàng)目拆解成子課題,根據(jù)學(xué)生的知識水平、學(xué)習(xí)能力和實(shí)踐能力,結(jié)合課程設(shè)計項(xiàng)目的難度和特點(diǎn),分階段有序開展創(chuàng)新能力培養(yǎng)工作。
(4)本系統(tǒng)可在多領(lǐng)域應(yīng)用,如可以用作智能輪椅為老年人與殘疾人的生活提供便利,或者作為搬運(yùn)機(jī)器人,具有一定的社會意義和研究價值[14-16]。