汪洋,王黎明,薛毓銓,韓力春
(海軍工程大學電氣工程學院,湖北武漢 430033)
海洋蘊藏著豐富的資源,許多國家把戰略重點放在海洋的開發和利用上。在開發海洋資源的各種技術中,水下機器人技術脫穎而出。水下機器人的類型分為有線遙控水下機器人(ROV)和無纜水下機器人(AUV)。美國華盛頓大學應用物理實驗室研制出首個無人無纜潛水器CURV1,該潛水器在海底發現氫彈,轟動全球。1986年,日本海洋科技中心研制出無人駕駛潛艇,它可以潛入世界上最深的馬里亞納海溝。2012年,中國制造的蛟龍號創下了7 062 m的潛水紀錄,在海洋科學調查方面領先世界。
在圖像識別方面,對于兩幅靜態圖像,MORAVEC使用角點檢測算法比較圖像中像素,進行模板匹配。HARRIS和STEPHENS提出了角點檢測算子來提取圖像的特征點,與MORAVEC的角點算子方法相比,它具有亮度不變性和尺度不變性等良好的性質,但計算速度較慢、抗噪聲能力較差,在尺度變化大、亮度低等條件下難以進行圖像識別。在此基礎上,LOWE提出尺度不變特征(Scale-Invariant Feature Transform,SIFT)算法,該算法采用金字塔分層方式,提取尺度、位置、旋轉不變特征量信息。馮亦東和孫躍提出了以SURF 特征提取為基礎,對圖像進行最近鄰查找的圖像匹配算法,在不同條件下可以達到快速識別的效果。
在水下目標識別方面,史廷彥和趙書斌以目標角點和不變性特征為依據,通過神經網絡分類器對目標進行分類識別。IBARRA等采用Canny算子提取邊界信息,對目標位置進行定位。該算法僅適用于已知目標信息的定位方法。
本文作者選取適當的方法,對海參進行識別定位。用D-H方法對機械臂進行運動建模,控制其末端執行器到達指定位置并做出相應動作,實現對海參的識別定位抓取。
系統模塊包括圖像識別定位系統、機械臂抓取作業系統和控制系統。機械臂系統構成如圖1所示。

圖1 機械臂系統構成
水下機器人移動至合適位置后進行抓取作業前,水下機器人通過圖像識別模塊完成對海參的識別。
圖像識別模塊由計算機和攝像頭連接組成。計算機可實時傳輸攝像頭拍攝到的圖像,使用OpenCV中SIFT算法對海參進行識別,調整與優化參數,排除其他干擾因素,提高識別效果,并使用黑色方框標注識別出的海參,通過相應的計算可對海參進行空間位置定位。
抓取作業模塊機械臂的關節由步進電機組成,抓取作業模塊由Arduino單片機控制。機械臂獲取海參圖像信息后,經計算得到機械臂各個關節需要轉動的角度。通過引腳高低電平變化控制機械臂各個關節的運動,使末端執行器到達指定位置。由PWM波控制舵機控制機械爪抓取。在末端執行器放置超聲波模塊,通過超聲波模塊測距,根據得到的距離進行反饋控制。
水下機器人的識別系統、機械系統及其他部件由控制系統直接控制,控制系統采用多分布式控制。上層計算機作為主控計算機,進行圖像處理、識別定位、運算等。下層由Ardunio控制,根據機械臂結構特點選擇不同功能的模塊并采用合適的算法進行控制,確保機械臂各個關節精準運動,保證機械臂滿足實際抓取作業要求。
在實際應用中,基本的圖像灰度變化和視角變換等都基于特征匹配方法的不確定因素,導致常見的匹配算法如模板匹配包含大量的誤匹配點,因此匹配精度比較低。海參模板匹配識別效果如圖2所示。

圖2 海參模板匹配識別效果
當背景簡單時,對位置1、2、3的識別效果較好。轉動圖中海參,可以看到對位置4的識別存在誤差。為解決這一問題,將SIFT算法提取圖像特征點與FLANN(Fast Library for Approximate Nearest Neighbors) 匹配算法相結合,提出圖像識別方法。SIFT算法是一種局部特征提取算法,旋轉、尺度、亮度保持不變,在噪聲等因素的影響下仍能保持良好的匹配效果。FLANN算法是一組用于最近鄰搜索的算法,利用歐氏距離計算并匹配圖像中最接近的點。歐氏距離計算公式為

(1)
由式(1)可知,值越小, 這些特征點對之間的距離越近, 說明匹配圖片相似程度越高。
由圖3可知:在海參放置在不同位置、方向且海參大小不同的條件下,該算法均可以識別出海參。

圖3 海參SIFT算法識別
圖3(b)(c)中識別的圖像框存在傾斜情況,原因是模板圖片和識別圖片中海參的位置發生改變,且攝像頭拍攝到的圖片相對傾斜,導致圖像框扭曲為平行四邊形。對此情況做出如下調整:圖片傾斜時對應的中心位置不會改變,由SITF算法和FLANN算法結合計算得到四邊形4個頂點,以平行四邊形的中心位置為依據,調整圖像框后的識別效果如圖4所示。

圖4 調整圖像框后海參識別結果
將識別到的海參所處中心位置按照相應的比例轉化為實際位置的坐標,便于后續進行抓取工作。
本文作者以三自由度機械臂為研究對象。該機械臂是一個串聯式機械臂,底座安裝在水下機器人上,末端安裝機械爪如圖5所示。機械臂大臂和小臂由關節連接,電機驅動各關節轉動,控制機械臂運動,使機械爪到達所需位置。

圖5 機械臂模型
利用D-H算法建立基于機械手正逆運動學模型,描述機械臂關節角度與機械臂末端執行器位置之間的映射關系,建立機械臂末端狀態與關節角度之間的關系。機械臂參數如表1所示。

表1 機械臂參數
3.1.1 正運動學分析
機械臂的每個關節由表示,將關節矩陣相乘,計算出末端變換矩陣為
==

(2)
3.1.2 逆運動學分析
給定位置,分別求出機械臂關節轉動角度:
=

(3)
=

(4)
實驗為定向抓取,驗證可簡化為平面二連桿機械手的運動學計算。平面二連桿模型如圖6所示。

圖6 平面二連桿模型
3.2.1 正運動學分析
根據幾何關系,可推導出機械臂末端位置與關節變量之間的關系,得到平面二連桿機械手的正運動學方程。
3.2.2 逆運動學分析
通過求解機器人給定位置各關節的轉角,推導出平面雙連桿機械手的逆運動學方程。在給定一個目標點(,)和2個連桿的長度、時,、就是平面兩連桿機械手逆運動學方程的解:

(5)

(6)
計算得到的角度可用于驗證D-H算法的準確性。
采用圖像識別算法對海參圖像進行識別,并將計算得到的位置發送給機械臂,超聲波傳感器模塊測量距離并傳輸至計算機端,當末端執行器機械爪到達指定位置時,Arduino控制舵機轉動實現對海參的抓取作業,如圖7所示。同時,在程序中設置機械爪舵機旋轉角度和夾取速度,確保可以在指定的時間內完成海參抓取動作且不對海參品質造成較大影響。

圖7 海參抓取實驗
設定10組理論條件下機械臂可以到達的位置,通過編寫程序控制步進電機轉動,使機械臂的末端執行器到達設定的位置并計算誤差,結果如表2所示。

表2 機械臂末端坐標 單位:cm
由表2可知:平均誤差為2.4 mm,誤差較小,可以認為機械臂在實際應用中可達到指定位置。
本文作者在自主研發的機械臂系統平臺上,采用SIFT+FLANN的圖像識別融合算法,進行圖像框的矯正,提高了系統目標識別的準確率。同時,基于D-H參數法,建立了機械臂模型,并在此基礎上進行運動學分析,實現系統優化控制。結合定向抓取控制實驗,通過相機定位獲取海參的位置信息,當機械臂接收目標物位置信息后,機械臂對海參進行抓取。所提方法可提高系統識別算法準確性和控制系統的有效性,為機械臂控制研究提供參考。