智能制造是先進制造技術和新一代信息技術的深度融合,代表著我國制造業高質量發展的主要方向.為了適應國際制造業發展新趨勢、促進我國制造業轉型升級、培養智能制造領域高素質人才,2017年教育部首次審批通過開設智能制造工程專業.智能制造具有引領性、交融性、創新性、跨界性和發展性等內涵和特征[1],涉及創新人才培養理念、培養模式、培養目標、培養體系、課程內容、實踐平臺、教學方式等一系列必須面對且普遍存在的核心和重大問題.其中,實踐教育教學體系是智能制造工程教育的重要組成部分,對智能制造創新人才的培養至關重要[2].如何建設一個能夠全方面訓練智能制造領域的高級工程人才,讓學生能夠將所學知識加以實踐的綜合實訓平臺,是各高校面臨的重大問題[3].文獻[4]以新工科建設理念為指導,將智能制造生產線和虛擬仿真教學軟件相結合,開發設計了“虛實結合”的智能制造虛擬仿真實訓教學平臺,取得了較好的實施效果.文獻[5]構建了“自動化+數字化”為核心的汽車輪轂設計及生產智能制造實訓平臺,以解決高校智能制造工程專業缺乏系統化實踐教學平臺的問題.為提升學生綜合創新實踐能力,文獻[6]研究設計了基于雙目視覺的雙臂協作教學機器人.
本文研究設計了基于3D視覺的機器人分揀實驗平臺,實驗內容涵蓋與智能制造密切相關的機械與機器人技術、機器視覺與圖像處理算法、傳感器與控制技術、軟硬件設計等,設計了抓取不同類型物體的多種末端執行器,能夠實現對不同顏色和形狀物體識別與分揀.
針對智能制造工程新專業綜合實驗教學平臺緊缺、學生綜合創新實踐能力急需提升的迫切需求,本文設計了基于3D視覺的機器人分揀實驗系統,系統總體設計方案如圖1所示.Kinect相機采集待分揀物體現場輸出彩色和深度3D圖像,通過USB2.0傳送至計算機,上位機軟件經系統初始化、物體識別、物體定位和通信,輸出分揀目標物體的顏色、形狀和位姿信息.上位機軟件與工業機器人控制器CS8C通過RS232串口通信方式傳遞目標物體信息,控制器通過PLC控制機械臂運動及末端執行器完成分揀任務.

圖1 實驗系統總體設計方案Fig.1 Overall design scheme of the experiment system
機器人按照關節連接方式不同分為串聯機器人和并聯機器人[7].在自動化工業生產中,串聯機器人結構設計簡單、運動空間范圍大并且成本較低,廣泛應用于3C、焊接、碼垛等領域;并聯機器人具有剛度大、承載能力強和末端件慣性小等優點,多應用于高速和大承載力場合.考慮本實驗的實際使用場景及需求,機器人選擇小型串聯史陶比爾TX60六自由度機械臂,視覺傳感器選擇Kinect相機,它由彩色相機和深度相機組成,通過計算光飛行的時間來獲取目標深度信息[8],系統硬件實驗平臺組成如圖2所示.

圖2 機器人分揀硬件實驗平臺Fig.2 Hardware experiment platform for robot sorting
該實驗平臺設計了氣動吸盤和MHZ2-32D氣動二指夾爪兩種末端執行器,學生可自主選擇完成對不同顏色和形狀的圓柱體、長方體塑料塊和齒輪的識別與分揀.
目前常用操作系統有Windows、UNIX、Linux和Mac OS X,考慮到學生對操作系統熟悉程度以及創建快捷人機交互界面需求,本實驗系統選擇Windows操作系統、編譯環境VS2010,使用MFC上位機平臺進行軟件開發.系統使用開源計算機視覺庫(OpenCV)和點云庫(PCL)作為基礎庫,其中OpenCV處理彩色圖片和深度圖片信息生成點云數據,PCL用來處理點云數據,估計分揀目標物體的位姿信息.軟件設計采用模塊化編程思路,整體架構如圖3所示,包含系統初始化、功能測試和主程序運行三大模塊.

圖3 系統軟件整體架構Fig.3 Overall architecture of the system software
系統初始化操作主要完成分揀系統標定和通信參數設置.采用棋盤標定法完成深度相機的內外參數標定、手眼標定及相機配準.通信設置用來測試和保存串口號、波特率、數據位和發送方式等基本參數.功能測試模塊包含深度修復、物體識別、位置確定和姿態估計4部分,是分揀系統算法的核心部分.主程序運行模塊將各個功能模塊及與工業機器人控制器通信等集成在一個系統程序進程中,通過與機器人控制器CS8C通信來控制機器人完成分揀作業.
為了完成對相機視野內的目標物體定位任務,需要明確相機像素坐標系到系統世界坐標系之間的轉換關系,將物體中心點的像素坐標轉換成世界坐標系中的坐標,即完成Kinect相機的內外參數標定、手眼標定等工作.
本文采用模型通用性較好的張正友標定法對相機參數進行標定工作[9],即將黑白方格個數為10×7、每一方格為29 mm×29 mm的標準棋盤格作為標定模板,采集現場環境下相機視野內足夠多的彩色圖片和景深圖片,通過標定程序分別計算彩色攝像頭和景深攝像頭的內參數矩陣.為了將深度圖像和彩色圖像對齊,使彩色圖像擁有深度信息,需要完成相機的配準工作,即計算彩色相機和深度相機之間的旋轉矩陣和平移矩陣使深度圖像與彩色圖像統一到一個坐標系中.
相機外參數標定的目的在于確定相機坐標系與世界坐標系的映射關系,將物體從相機坐標系轉換到系統的世界坐標系.為了縮短系統運算時間,在進行外參數標定時選擇與相機坐標系平行的棋盤所在的工作桌面來建立相機系統的世界坐標系.
機器人分揀系統手眼標定的目的是建立機械臂所在的基坐標系與相機坐標系之間的關系,標定精度決定了機械臂是否能夠到達指定的位置.常見的手眼標定有眼在手外標定即Eye-to-Hand和眼在手內標定即Eye-in-hand[10].本實驗系統相機安裝于工作區域上方固定位置,所以采用眼在手外方式進行手眼系統標定,獲得相機到機器人基坐標系之間的映射關系.
圖像預處理的目的在于增強有用信息的可檢測性和最大限度地簡化數據,消除圖像中無關的信息,以提高物體識別與定位的精度及分揀的可靠性.
Kinect相機深度數據獲取采用PrimeSense公司發明的激光散斑(laser speckle)技術,即通過紅外光照射到毛玻璃得到隨機衍射斑點,再進行立體編碼生成對應深度圖,通過不同深度值來表示物體到相機的距離.若分揀目標物體表面非常光滑,激光散斑會發生鏡面反射導致Kinect接收不到返回照射在物體表面上的激光散斑.若分揀目標物體的材質為吸光材料,則會吸收相機發射的激光散斑,導致空洞現象產生.同時,由于Kinect發射的是隨機斑點,當激光斑點打在物體上時,雖然整個物體上面都均勻分布散射斑點,因斑點具有隨機性,目標物體邊緣處紅外散斑并非均勻分布,在獲取圖像深度值時,在物體邊緣處深度值會缺失,從而造成邊緣毛刺產生[11].
空洞和毛刺將影響點云數據處理結果,需要進行修復處理.本文提出了將中值濾波預處理和最近鄰插值修復相融合的空洞毛刺修復方法.首先通過中值濾波算法修復深度圖像中小區域空洞毛刺點,再經最近鄰插值法修復較大區域的空洞毛刺噪聲點,修復效果如圖4所示.為了進一步比較修復效果,表1列出了原圖、中值濾波圖和本文方法的峰值信噪比(PSNR)和信噪比(SNR).由圖4和表1可見,經中值濾波處理后的深度圖像比原圖圖像質量有較小的改善,但經本文提出的修復算法處理后的深度圖像對比原圖圖像質量有了明顯的提升.

表1 不同方法深度圖像修復結果

圖4 深度圖像修復效果Fig.4 Results of depth image inpainting
Kinect相機拍攝的是整個視野范圍圖像,輸出的原始彩色圖片和深度圖片像素均為640×480,而標定板所在的桌面區域即分揀區域遠小于輸出圖片,因此需要裁剪其他多余信息,提取感興趣區域(Region of Interest,ROI),通過OpenCV裁剪函數來提取指定像素范圍的圖像.
為了進一步減少圖像處理所需時間,采用圖像分割算法去除ROI的背景信息并提取目標物體,將所需分揀的物體與工作平面分離.本文采用基于邊緣的分割方法,以Canny邊緣檢測算子為主體,引入分水嶺算法實現對彩色圖像的ROI區域背景的準確分割.
機器人能否在系統工作區域內準確地識別與定位目標物體,是機器人分揀實驗系統的關鍵環節.
支持向量機(Support Vector Machine,SVM)是根據統計學習理論中結構最小化原則以及VC維(Vapnik-Chervonenkis Dimension,VC維)理論提出的.SVM算法適合處理小樣本、非線性、高維數和局部最優解等問題[12].本實驗系統分揀對象為不同形狀和顏色的物體,使用SVM分類器進行物體識別,考慮到分揀對象均為規則幾何形狀,為了提高系統實時性、減少程序計算量,形狀識別采用邊緣信息進行特征表述,顏色識別采用顏色特征直方圖表述,物體識別流程如圖5所示.

圖5 物體識別流程Fig.5 Flow chart for object recognition
分別對20、50、100和150張圓柱體、長方體和齒輪物體的樣本圖片進行測試,實驗中物體軸線與工作臺面垂直擺放,其識別成功率如圖6所示,平均為96.6%,標準差為1.40,說明物體識別算法準確性與穩定性都很高,能夠滿足實驗要求.

圖6 樣本識別結果Fig.6 Sample identification results
機器人控制器采用點到點運動形式,在驅動機械臂末端到達指定點完成分揀動作時,需要將末端位姿點坐標(x,y,z,Rx,Ry,Rz)傳送給機器人控制器,實現物體定位.
本系統設計了兩種位姿估計策略如圖7所示.當被分揀物體獨立擺放時采用策略一,即姿態設定為機器人零位狀態,采用霍夫變換計算中心點位置.針對有重疊相互遮擋的物體采用策略二,即采用基于點云配準計算物體位姿.

圖7 物體定位設計Fig.7 Object positioning design
4.2.1 基于霍夫變換的位置確定
本系統待分揀目標物體為規則形狀,因此采用霍夫變換檢測圖像中的直線和圓,其中直線檢測采用累積概率霍夫變換,圓檢測采用霍夫梯度法.實驗過程如圖8所示,采用霍夫變換方法檢測二值化后圖片中的直線和圓,用矩形和圓擬合目標物體邊緣,根據包圍矩形和圓形,計算其中心點并顯示在圖片上.圖8d邊緣提取后右側圖未能得到完整圖,原因是圖像獲取時光照不均勻,導致右側圖邊緣亮度不夠,與背景色接近,邊緣提取不完整.解決該問題常用的方法是在圖像預處理階段對圖像進行增強或者濾波,使得物體的邊緣更加明顯.
4.2.2 基于點云配準的位姿估計
點云配準時首先將獲取的原始點云數據進行直通濾波,再計算點云法向量,將法線方向一致的歸為一類點云數據,由最近鄰查詢點產生協方差矩陣C:

(1)

點云分割時先用歐幾里得分割法對點云數據進行預處理,將單個分揀目標分離出來,對于有重疊部分的點云使用基于法線和基于顏色兩種區域生長法進行分割.
點云配準時首先對點云數據采樣,獲得原始點云和目標點云;接著采用采樣一致性初始配準算法(Sample Consensus Initial Alignment,SAC-IA)[13]進行粗配準,將經過SAC-IA粗配準后的點云作為新的原始點云,目標點云保持不變再經迭代最近點算法(Iterative Closest Point,ICP)[14]進行精配準及正態分布變換(Normal Distribution Transform,NDT)精配準[15],使原始點云數據最大限度地接近目標點云數據,輸出配準結果即原始點云數據相對于目標點云數據的旋轉和平移矩陣,完成姿態估計實驗.
分揀實驗系統軟件初始界面包括“系統初始化”、“功能模塊測試”、“開始”、“停止”和“結束”按鈕.
5.1.1 系統初始化實驗
系統初始化實驗模塊如圖9所示,分為系統標定和通信實驗兩部分.系統標定用于完成相機內外參數標定和手眼標定.通信模塊用于設置通信相關參數及測試機器人控制器與上位機之間通信是否正常.

圖9 系統初始化實驗模塊Fig.9 System initialization experiment module
根據界面提示,載入Kinect相機視野范圍內的20張不同位姿棋盤格圖片,完成攝像機及手眼標定,結果如圖10所示.

圖10 標定實驗結果Fig.10 Calibration experiment results
本系統機器人控制器數據傳輸類型為雙精度浮點型,輸入輸出的位姿點均轉換成8位雙精度浮點型存儲,通信測試實驗如圖11所示,右邊區域為測試區域,通過比較測試位姿點與示教器讀取位姿點來判斷PC機與機器人控制器之間的通信結果.

圖11 通信測試實驗Fig.11 Communication test experiment
5.1.2 功能模塊測試實驗
根據分揀系統總體方案框架,該實驗系統分為深度修復、物體識別、位置確定和姿態確定四大功能模塊.根據各模塊按鈕提示進行操作,即可完成相關實驗.其中物體位置和姿態確定實驗結果分別如圖12、13所示.

圖13 姿態估計實驗Fig.13 Attitude estimation experiment
機器人分揀分為識別和抓取兩個動作,根據被分揀物體是否有重疊相互遮擋,系統自動選擇策略一或策略二完成智能分揀.圖14為目標物體有重疊且相互遮擋,系統經點云配準完成智能分揀實驗過程圖.由圖14可見,本實驗系統能夠對不同形狀和顏色的物體進行準確分揀.

圖14 機器人分揀實驗Fig.14 Robot sorting experiment
Leica AT960測量精度為15 μm+6 μm/m,配置有TMAC探測器及Spatial Analyzer(SA)測量軟件,能夠同時完成末端位置和姿態測量[16].為了驗證系統的定位精度,采用LeicaAT960激光跟蹤儀測量塑料塊中心點獲得理論位姿,經點云處理生成實際位姿如表2所示.由表2可見,本系統提出的將SAC-IA粗配準、ICP精配準和NDT精配相融合的點云處理算法,獲得的實際位姿精度高,能夠滿足系統分揀需求.

表2 點云處理生成的位姿點
針對新工科專業前沿性、交融性和實踐性強的特點,本文研究設計了基于3D視覺的機器人分揀實驗平臺,包括硬件實驗平臺搭建、軟件系統及算法設計,實驗結果證實了該平臺能夠完成相機標定、通信測試、圖像預處理、物體識別、位置及位姿確定、智能分揀等系列實驗.實驗系統融合了機械與機器人、機器視覺與圖像處理、軟硬件設計等多種知識與技術,綜合性強、開放性好,能夠很好地提升學生的綜合實踐及創新能力,適于在智能制造、人工智能、機器人工程等新工科專業中推廣應用.