汪洋,王黎明,薛毓銓,韓力春
(海軍工程大學(xué)電氣工程學(xué)院,湖北武漢 430033)
海洋蘊藏著豐富的資源,許多國家把戰(zhàn)略重點放在海洋的開發(fā)和利用上。在開發(fā)海洋資源的各種技術(shù)中,水下機器人技術(shù)脫穎而出。水下機器人的類型分為有線遙控水下機器人(ROV)和無纜水下機器人(AUV)。美國華盛頓大學(xué)應(yīng)用物理實驗室研制出首個無人無纜潛水器CURV1,該潛水器在海底發(fā)現(xiàn)氫彈,轟動全球。1986年,日本海洋科技中心研制出無人駕駛潛艇,它可以潛入世界上最深的馬里亞納海溝。2012年,中國制造的蛟龍?zhí)杽?chuàng)下了7 062 m的潛水紀(jì)錄,在海洋科學(xué)調(diào)查方面領(lǐng)先世界。
在圖像識別方面,對于兩幅靜態(tài)圖像,MORAVEC使用角點檢測算法比較圖像中像素,進行模板匹配。HARRIS和STEPHENS提出了角點檢測算子來提取圖像的特征點,與MORAVEC的角點算子方法相比,它具有亮度不變性和尺度不變性等良好的性質(zhì),但計算速度較慢、抗噪聲能力較差,在尺度變化大、亮度低等條件下難以進行圖像識別。在此基礎(chǔ)上,LOWE提出尺度不變特征(Scale-Invariant Feature Transform,SIFT)算法,該算法采用金字塔分層方式,提取尺度、位置、旋轉(zhuǎn)不變特征量信息。馮亦東和孫躍提出了以SURF 特征提取為基礎(chǔ),對圖像進行最近鄰查找的圖像匹配算法,在不同條件下可以達到快速識別的效果。
在水下目標(biāo)識別方面,史廷彥和趙書斌以目標(biāo)角點和不變性特征為依據(jù),通過神經(jīng)網(wǎng)絡(luò)分類器對目標(biāo)進行分類識別。IBARRA等采用Canny算子提取邊界信息,對目標(biāo)位置進行定位。該算法僅適用于已知目標(biāo)信息的定位方法。
本文作者選取適當(dāng)?shù)姆椒?,對海參進行識別定位。用D-H方法對機械臂進行運動建模,控制其末端執(zhí)行器到達指定位置并做出相應(yīng)動作,實現(xiàn)對海參的識別定位抓取。
系統(tǒng)模塊包括圖像識別定位系統(tǒng)、機械臂抓取作業(yè)系統(tǒng)和控制系統(tǒng)。機械臂系統(tǒng)構(gòu)成如圖1所示。
圖1 機械臂系統(tǒng)構(gòu)成
水下機器人移動至合適位置后進行抓取作業(yè)前,水下機器人通過圖像識別模塊完成對海參的識別。
圖像識別模塊由計算機和攝像頭連接組成。計算機可實時傳輸攝像頭拍攝到的圖像,使用OpenCV中SIFT算法對海參進行識別,調(diào)整與優(yōu)化參數(shù),排除其他干擾因素,提高識別效果,并使用黑色方框標(biāo)注識別出的海參,通過相應(yīng)的計算可對海參進行空間位置定位。
抓取作業(yè)模塊機械臂的關(guān)節(jié)由步進電機組成,抓取作業(yè)模塊由Arduino單片機控制。機械臂獲取海參圖像信息后,經(jīng)計算得到機械臂各個關(guān)節(jié)需要轉(zhuǎn)動的角度。通過引腳高低電平變化控制機械臂各個關(guān)節(jié)的運動,使末端執(zhí)行器到達指定位置。由PWM波控制舵機控制機械爪抓取。在末端執(zhí)行器放置超聲波模塊,通過超聲波模塊測距,根據(jù)得到的距離進行反饋控制。
水下機器人的識別系統(tǒng)、機械系統(tǒng)及其他部件由控制系統(tǒng)直接控制,控制系統(tǒng)采用多分布式控制。上層計算機作為主控計算機,進行圖像處理、識別定位、運算等。下層由Ardunio控制,根據(jù)機械臂結(jié)構(gòu)特點選擇不同功能的模塊并采用合適的算法進行控制,確保機械臂各個關(guān)節(jié)精準(zhǔn)運動,保證機械臂滿足實際抓取作業(yè)要求。
在實際應(yīng)用中,基本的圖像灰度變化和視角變換等都基于特征匹配方法的不確定因素,導(dǎo)致常見的匹配算法如模板匹配包含大量的誤匹配點,因此匹配精度比較低。海參模板匹配識別效果如圖2所示。
圖2 海參模板匹配識別效果
當(dāng)背景簡單時,對位置1、2、3的識別效果較好。轉(zhuǎn)動圖中海參,可以看到對位置4的識別存在誤差。為解決這一問題,將SIFT算法提取圖像特征點與FLANN(Fast Library for Approximate Nearest Neighbors) 匹配算法相結(jié)合,提出圖像識別方法。SIFT算法是一種局部特征提取算法,旋轉(zhuǎn)、尺度、亮度保持不變,在噪聲等因素的影響下仍能保持良好的匹配效果。FLANN算法是一組用于最近鄰搜索的算法,利用歐氏距離計算并匹配圖像中最接近的點。歐氏距離計算公式為
(1)
由式(1)可知,值越小, 這些特征點對之間的距離越近, 說明匹配圖片相似程度越高。
由圖3可知:在海參放置在不同位置、方向且海參大小不同的條件下,該算法均可以識別出海參。
圖3 海參SIFT算法識別
圖3(b)(c)中識別的圖像框存在傾斜情況,原因是模板圖片和識別圖片中海參的位置發(fā)生改變,且攝像頭拍攝到的圖片相對傾斜,導(dǎo)致圖像框扭曲為平行四邊形。對此情況做出如下調(diào)整:圖片傾斜時對應(yīng)的中心位置不會改變,由SITF算法和FLANN算法結(jié)合計算得到四邊形4個頂點,以平行四邊形的中心位置為依據(jù),調(diào)整圖像框后的識別效果如圖4所示。
圖4 調(diào)整圖像框后海參識別結(jié)果
將識別到的海參所處中心位置按照相應(yīng)的比例轉(zhuǎn)化為實際位置的坐標(biāo),便于后續(xù)進行抓取工作。
本文作者以三自由度機械臂為研究對象。該機械臂是一個串聯(lián)式機械臂,底座安裝在水下機器人上,末端安裝機械爪如圖5所示。機械臂大臂和小臂由關(guān)節(jié)連接,電機驅(qū)動各關(guān)節(jié)轉(zhuǎn)動,控制機械臂運動,使機械爪到達所需位置。
圖5 機械臂模型
利用D-H算法建立基于機械手正逆運動學(xué)模型,描述機械臂關(guān)節(jié)角度與機械臂末端執(zhí)行器位置之間的映射關(guān)系,建立機械臂末端狀態(tài)與關(guān)節(jié)角度之間的關(guān)系。機械臂參數(shù)如表1所示。
表1 機械臂參數(shù)
3.1.1 正運動學(xué)分析
機械臂的每個關(guān)節(jié)由表示,將關(guān)節(jié)矩陣相乘,計算出末端變換矩陣為
==
(2)
3.1.2 逆運動學(xué)分析
給定位置,分別求出機械臂關(guān)節(jié)轉(zhuǎn)動角度:
=
(3)
=
(4)
實驗為定向抓取,驗證可簡化為平面二連桿機械手的運動學(xué)計算。平面二連桿模型如圖6所示。
圖6 平面二連桿模型
3.2.1 正運動學(xué)分析
根據(jù)幾何關(guān)系,可推導(dǎo)出機械臂末端位置與關(guān)節(jié)變量之間的關(guān)系,得到平面二連桿機械手的正運動學(xué)方程。
3.2.2 逆運動學(xué)分析
通過求解機器人給定位置各關(guān)節(jié)的轉(zhuǎn)角,推導(dǎo)出平面雙連桿機械手的逆運動學(xué)方程。在給定一個目標(biāo)點(,)和2個連桿的長度、時,、就是平面兩連桿機械手逆運動學(xué)方程的解:
(5)
(6)
計算得到的角度可用于驗證D-H算法的準(zhǔn)確性。
采用圖像識別算法對海參圖像進行識別,并將計算得到的位置發(fā)送給機械臂,超聲波傳感器模塊測量距離并傳輸至計算機端,當(dāng)末端執(zhí)行器機械爪到達指定位置時,Arduino控制舵機轉(zhuǎn)動實現(xiàn)對海參的抓取作業(yè),如圖7所示。同時,在程序中設(shè)置機械爪舵機旋轉(zhuǎn)角度和夾取速度,確??梢栽谥付ǖ臅r間內(nèi)完成海參抓取動作且不對海參品質(zhì)造成較大影響。
圖7 海參抓取實驗
設(shè)定10組理論條件下機械臂可以到達的位置,通過編寫程序控制步進電機轉(zhuǎn)動,使機械臂的末端執(zhí)行器到達設(shè)定的位置并計算誤差,結(jié)果如表2所示。
表2 機械臂末端坐標(biāo) 單位:cm
由表2可知:平均誤差為2.4 mm,誤差較小,可以認為機械臂在實際應(yīng)用中可達到指定位置。
本文作者在自主研發(fā)的機械臂系統(tǒng)平臺上,采用SIFT+FLANN的圖像識別融合算法,進行圖像框的矯正,提高了系統(tǒng)目標(biāo)識別的準(zhǔn)確率。同時,基于D-H參數(shù)法,建立了機械臂模型,并在此基礎(chǔ)上進行運動學(xué)分析,實現(xiàn)系統(tǒng)優(yōu)化控制。結(jié)合定向抓取控制實驗,通過相機定位獲取海參的位置信息,當(dāng)機械臂接收目標(biāo)物位置信息后,機械臂對海參進行抓取。所提方法可提高系統(tǒng)識別算法準(zhǔn)確性和控制系統(tǒng)的有效性,為機械臂控制研究提供參考。