王 帥, 王軍義, 賈子熙, 白 帆, 王冬冬
(東北大學機器人科學與工程學院,沈陽110819)
機器人工程專業是在新工科背景下順應國家建設需求和國際發展趨勢而設立的專業,在自動化類專業基礎上深化機器人科學與工程學科特色,具有交叉性、實踐性強的特點。按照機器人工程專業現行培養計劃,大四上學期開設的移動機器人控制實驗,以《工程教育認證標準》為指導目標,秉承“以學生為中心”的教學理念,采用項目式(project-based learning,PBL)教學方式[1],從符合產業發展的多學科交叉項目出發,“自頂而下”設計實驗內容,并對復雜工程問題分層次進行研究,設計了基于深度學習的移動機械手抓取實驗。以培養學生自主學習的能力以及團隊成員協作交流能力,包括撰寫報告和陳述發言、清晰表達或回應指令等能力。
硬件系統為搭載單線激光雷達的移動平臺、AUBO i5機械臂、Intel RealsenseSR300深度攝像頭和帶麥克風的IntelI7處理器的PC。軟件部分主要是在Ubuntu16.04下完成的,在機器人操作系統(robot operation system,ROS)平臺上進行各個部分的通信,并利用MoveIt進行機械臂的控制,系統總體架構如圖1所示。

圖1 機械臂抓取實驗平臺總體架構
通過語音系統下達任務指令,控制移動平臺開始自主導航和避障到達目標點,進行目標檢測和執行抓取任務。整個項目在ROS平臺上搭建,利用百度語音識別系統與用戶進行交互,借助ROS通信機制完成語音控制導航和控制目標檢測與抓取的功能。在自主導航和避障方面,采用gmapping方法通過成本較低的激光雷達采集室內地圖信息并保存為地圖,利用amcl
(自適應蒙特卡洛定位)方法實現自我定位,通過實時接收的里程計數據,調整移動機器人的運動,以減少誤差,并利用Bresenham算法計算柵格地圖中非障礙物格點的集合,將機器人安全地移動到目標位置,實現室內的低成本、高準確度的導航與避障功能。在目標檢測方面,直接讀取相機的彩色圖像,利用預訓練完成的YOLO模型進行物體識別與檢測,并將識別到的候選目標與語音指令中的目標對比,選定最終的目標區域,將其對應的深度圖像輸入到抓取生成卷積網絡GGCNN中。該網絡可以將深度圖像作為輸入,直接預測出每個像素點的抓取質量(成功率)、寬度和位姿,獲得物體的最優的抓取位姿。直接在ROS平臺下利用MoveIt控制機械臂,到達目標位姿,完成抓取動作。實驗結果表明本文構建的移動機器人系統能夠實現在語音控制下的導航避障、物體檢測與自主抓取,結合語音識別、SLAM、目標檢測、位姿生成、ROS和機械臂與移動平臺控制等多種技術,提高了學生解決復雜工程問題的能力。
(1)了解SLAM原理,并學會在ROS下應用SLAM;
(2)了解ROS下語音控制移動機器人導航方法;
(3)理解YOLO的算法原理,并學會利用預訓練的YOLO模型,進行物體識別與檢測;
(4)學會訓練并使用最優抓取位姿生成神經網絡(GG-CNN)模型,實現抓取位姿生成;
(5)掌握眼在手上的機器人視覺標定與相機內參標定;
(6)學會在ROS平臺下利用MoveIt控制機械臂完成目標抓取。
2.2.1 語音識別
在ROS下,利用百度語音識別系統實現人機交互,將語音信號轉化為指令,控制機器人導航到達目的地以及目標檢測指定物體功能[2]。表1為語音控制的偽代碼。

表1 語音控制偽代碼
2.2.2 自主導航和實時避障
對實驗場景進行地圖構建。Gmapping是基于濾波SLAM框架的常用開源SLAM算法,可以實時構建室內地圖,在構建小場景地圖所需的計算量較小且精度較高。相比Hector SLAM對激光雷達頻率要求低、魯棒性高。基于Gmapping算法建立的地圖如圖2所示。

圖2 Gmapping地圖
在建立完世界地圖后,利用移動機器人的概率定位算法AMCL[3],通過PF粒子濾波來跟蹤定位已知地圖中的機器人位置。激光傳感器會向固定的方向發射激光束,發射出的激光遇到障礙物會被反射,這樣就能得到激光從發射到收到的時間差,乘以速度除以2就得到了傳感器到該方向上最近障礙物的距離,再計算障礙物在柵格地圖中的坐標,以及機器人在柵格地圖中的坐標,使用Bresenham算法來計算非障礙物格點的集合。利用激光傳感器構建柵格地圖來完成避障導航功能[4],自主導航效果圖如圖3所示。

圖3 自主導航效果圖
2.2.3 物體識別與檢測
考慮到目標檢測的實時性,直接采用YOLO v1[5]進行目標檢測。YOLO v1是一種基于深度神經網絡的對象識別和定位算法,其最大的特點是運行速度快,可用于實時系統。YOLO v1將物體檢測作為回歸問題求解。基于一個單獨的end-to-end網絡,完成從原始圖像的輸入到物體位置和類別的輸出。僅經過一次模型推理,便能得到圖像中所有物體的位置和其所屬類別及相應的置信概率。
為方便學生盡快將目標檢測應用于項目中,在學習完YOLO v1的基本理論以后,直接應用預訓練的YOLO v1模型進行常用物體的識別與檢測,避免長時間的模型訓練。
在目標檢測過程中,加載預訓練的YOLO v1模型,讀取相機的彩色圖像,并以448×448×3的大小輸入到YOLO v1模型中,經過網絡模型的推理,得到輸出的是一個7×7×30的向量,包含了圖片中物體的分類結果以及其位置信息的編碼。輸出的30維的特征向量中前20維為模型預測的20個對象的概率,接著2維分別預測2個bounding box的置信度,最后的8維分別表示2個bounding box的位置,其中每個bounding box的位置需要4個數值進行表示。通過模型的輸出特征得到檢測的候選物體,并將其與語音指令中的物體對比,得到最終的目標物體,并將該區域對應的深度圖像發布到位姿生成算法的話題上,完成目標檢測。YOLO v1網絡示意圖如圖4,算法流程圖如圖5所示。

圖4 YOLO網絡示意圖

圖5 YOLO算法檢測流程
2.2.4 抓取位姿生成
在抓取位姿生成模型訓練中,采用Cornell Grasping Dataset[6]的數據。Cornell Grasping Dataset包含885個真實物體的RGB-D圖像,每個圖像打上若干標簽,其中5 110個被打上“positive抓取”標簽,2 909個被打上“negative抓取”標簽。這是一個相對較小的抓取數據集,使用隨機裁剪,縮放和旋轉來增加Cornell Grasping Dataset的數量[7],創建一組8 840個深度圖像和相關抓取圖像的集合G T,并有效地結合了51 100個抓取示例。
Cornell Grasping Dataset使用像素坐標將待抓取位姿表示為矩形框,校準末端執行器的位置和旋轉角度。為從抓取矩形框表示轉變為基于圖像的表示,選擇每個抓取矩形的中心1/3處作為圖像掩碼,其對應于抓取器中心的位置,選用被標記為positive的抓取訓練GG-CNN網絡并假設其他任何的區域都不是有效的抓取。
抓取質量(準確率):將每個有效抓取視為二進制標簽,并將抓取質量Q T的相應區域設置為1,其他所有像素均為0。
角度:計算每個抓取矩形在[-π/2,π/2]范圍內的角度,并設置相應的抓取角度ΦT區域。由于二指抓取在±π/2弧度附近是對稱的,本文使用兩個分量sin(2ΦT)和cos(2ΦT),它們提供在ΦT∈[-π/2,π/2]內唯一且在±π/2處對稱的值。
寬度:和角度類似,計算每個抓取矩形的寬度(以最大值為單位),表示抓取器的寬度并設置夾爪寬度W T的相應部分。在訓練期間,將W T的值按1/150的比例縮小,使其在[0,1]范圍內。
通過以上的定義和操作,從Cornell Grasping Dataset中,生成用于訓練GG-CNN模型的數據集。
生成最優抓取位姿利用GG-CNN[8]計算函數Mθ(I)=(Qθ,Φθ,Wθ),直接從輸入的深度圖像I來近似生成抓取信息圖像Gθ,以300×300的深度圖像作為輸入,經過3層卷積操作和3層反卷積操作,最終獲得抓取的信息圖。GG-CNN結構示意圖如6所示。

圖6 GG-CNN結構示意圖
將圖像中的抓取位姿變換到機器人坐標系下。

式中:tRC為從相機坐標系轉換到機械臂坐標系的坐標變換;tCI為基于相機內部參數和機器人與相機之間的已知校準,從2D圖像坐標轉換到3D相機坐標系;g~
為從抓取信息圖Gθ中得到的一組抓取信息。
2.2.5 手眼標定
本文采用眼在手上(eye in hand)的方式識別AR Marker碼[10]來進行相機外參標定,如圖7所示。

圖7 Eye-in-hand手眼標定過程
對于機器人移動過程中任意兩個位姿,機器人底座和標定板的關系始終不變,求出相機和機器人末端坐標系的位姿關系。

式中:Camera1、Camera2為兩次運動相機的位姿;End1、End2為兩次運動機械臂末端位姿,根據標定板(Object)和機器人底座間(Base)兩次運動保持不變,上式經過轉換后,可得:

即

在標定中,首先利用ROScamera_calibration包基于張正友法進行內參標定[9],然后再利用easy_handeye手眼標定功能包直接求解[10]進行外參標定,至此完成手眼標定用于后面的基于視覺的抓取工作。
2.2.6 實驗結果
本文在1080ti GPU訓練GG-CNN網絡模型,經過100個epoch的訓練后,將訓練好的模型進行測試,預測效果如圖8所示。

圖8 GG-CNN輸出及抓取框生成
將數據集中帶標記抓取框(綠色)的RGB圖像(左上)、生成抓取框(紅色)的深度圖像(右上)、網絡輸出的抓取寬度圖像(左下)和抓取角度圖像(右下)顯示出來。從生成抓取框的灰度圖像可以清晰地看出,GG-CNN所生成的抓取框與原數據集中標記的抓取框的位置、寬度和角度值相差不大,效果理想。
將項目整體進行實驗測試,硬件系統為搭載激光雷達的移動平臺、AUBO i5機械臂、Intel Realsense SR300深度攝像頭和帶麥克風的Intel I7處理器的PC。軟件部分主要是在Ubuntu16.04下完成的,在ROS平臺上進行各個部分的通信,并利用MoveIt控制機械臂完成抓取動作[11],實驗效果如圖9所示。

圖9 實驗系統驗證效果
移動機器人在實驗者語音的指導下由“客廳”走進“廚房”,然后按照命令夾起“香蕉”。經過實驗驗證與測試,移動機器人能夠在用戶的語音控制下順利地完成自主導航與避障、目標物體的識別檢測與自主抓取,系統的魯棒性和實時性較好。
實驗采用5~6人一組,自由組隊,組長分配任務和權重。實驗內容及考核方式見表2。

表2 實驗內容及考核方式
(1)預習階段。通過檢索國內外科技論文,查閱資料,了解移動機器人的組成、導航算法、目標檢測算法、抓取位姿生成算法,以及語音識別,手眼標定,MoveIt控制機械臂;引導學生把項目分解為若干子課題,討論分工及子課題的進行順序,撰寫實驗計劃。
(2)操作階段。根據學生的知識水平、學習能力和實踐能力,結合課程設計項目的難度和特點,分“基礎-拓展-提高”3階段有序開展創新能力培養工作。基礎階段首先讓學生了解ROS下通信機制,完成機械臂和AGV的校正,完成“眼在手上”手眼標定;拓展階段學會MoveIt功能包控制機械臂,以及利用百度語音識別庫控制AGV運動;提高階段實現物體識別檢測,生成最優抓取位姿,控制機械臂抓取。
(3)總結階段。每組寫一份課程設計報告,介紹分組情況,系統原理、硬件組成、軟件組成、代碼實現、系統調試等部分。每組進行演示答辯,老師給出每組成績,組長和老師一起分配組員成績權重。
針對移動機器人控制實驗課程,搭建了基于深度學習的移動機械手實驗平臺,并設計了32學時的課程設計內容,取得良好的教學效果。實驗項目具有以下特點:
(1)按照“自底向上”的教學設計方法,對標《工程教育認證標準》,制定人才培養方案,同時融合“自頂向下”的教學設計方法,分階段完成復雜工程項目[12]。
(2)基于PBL項目式實踐教學模式,把大學4年所學多門課程如機器人基礎原理、機器人操作系統、圖像處理、機器視覺等知識融會貫通,真正做到多學科交叉。
(3)階梯式創新人才培養模式[13],把科研項目拆解成子課題,根據學生的知識水平、學習能力和實踐能力,結合課程設計項目的難度和特點,分階段有序開展創新能力培養工作。
(4)本系統可在多領域應用,如可以用作智能輪椅為老年人與殘疾人的生活提供便利,或者作為搬運機器人,具有一定的社會意義和研究價值[14-16]。