?

基于機器視覺的圣女果采摘機械臂的動作研究

2024-02-29 04:21陳肖宇馬興錄
計算機測量與控制 2024年2期
關鍵詞:圣女位姿輪廓

陳肖宇,馬興錄,劉 揚

(青島科技大學 信息科學技術學院,山東 青島 266061)

0 引言

隨著人工智能及機器人技術的不斷發展,機器人、機械臂等智能化的機械設備逐步被用于我們復雜社會生活的各個方面。不僅在生活中,在工、農生產制造中,機器人等機械設備的使用甚至更加必要和廣泛[1-3]。在農業采摘方面,以圣女果種植產業為例,圣女果的采摘工作成本高,工作量大,而且當前農業勞動力短缺,研發智能采摘機器人來解決當前圣女果采摘所面臨的難題是非常必要的,實現機器人全自動采摘也順應了農業智能機械化的發展要求[4]。

在國內,為保證圣女果的商業價值,其采摘基本要求帶有果蒂,而目前所見的圣女果采摘機器人無法保證帶有果蒂的采摘[5]。如當前較為成熟的美國RootAI公司研發的圣女果采摘機器人,其采摘方式為使用夾爪夾住圣女果果實后進行旋轉摘下,這種方式采摘下來的果實基本不會保留果蒂;于豐華等人設計的日光番茄采摘機器人通過柔性夾爪抓緊果實進行采摘,并未根據果實姿態對機械臂的采摘動作進行設定[6];付鑫等人發明的一種圣女果采摘方法及圣女果采摘機械手通過切割的方式進行采摘,這種采摘方式會保留較長的果梗,還需要后期的人工處理。

根據圣女果果蒂生長特點以及人工采摘的技巧,實驗團隊制定出一套模仿人手采摘圣女果的方案,即機械臂末端機械爪在采摘時能夠保持與圣女果果蒂方向基本一致,使用折果蒂的方式將帶有果蒂的圣女果采摘下來,從而使機械臂采摘下來的圣女果具備與人工采摘同樣的價值。

本文通過獲取的目標圣女果圖片來分析圣女果的成熟與否、方向以及距離等信息,由此生成機械臂采摘時末端執行器的目標位姿,從而通過求解機械臂運動學逆解獲得機械臂各關節角度,生成特定的采摘動作,即機械臂末端執行器達到抓取位置時能夠與圣女果果蒂方向保持一致,為進一步實現帶果蒂的采摘做鋪墊。

1 系統整體設計

1.1 系統運作流程

系統的主要運作流程如圖1所示,置于機械臂末端的單目相機通過顏色識別獲取當前視野范圍內的成熟圣女果,并遍歷篩選出其中最大的圣女果作為目標圣女果,經過腐蝕、膨脹、濾波等操作之后獲取較為完整的目標圣女果二值化圖像,獲取目標圣女果的形心坐標,同時對其進行細化,提取相應的骨架,通過“以直代曲”法獲取圣女果的中線以及中線方向,其中中線方向即為目標圣女果的生長方向。使用分類法對圣女果生長方向進行分類,圣女果的生長方向分別對應機械臂末端的最終方向。獲取了方向信息后,通過單目相機水平遷移測距法進行測距,使得機械臂在移動的過程中即獲得距離信息。對方向、距離等信息進行進一步處理后,求解出機械臂運動后的最終目標位姿,即機械臂末端抓取方向與圣女果方向一致的位姿。

圖1 系統運作流程圖

1.2 系統總體架構

如圖2所示,系統總體架構分為3個層面:硬件層、驅動層和軟件層。

圖2 系統總體架構圖

其中實驗所用到的硬件設備為高清單目相機、樹莓派4B核心控制板、高斯六軸機械臂。高清單目相機獲取的圖片的分辨率為640×480;圖3為樹莓派4B為本實驗的核心控制板,它擁有64位、1.5 GHz的四核CPU,內存為1 GB,且擁有兩個USB3.0和兩個USB2.0通信端口,燒錄了基于Linux的桌面型RasBian System[7];圖4為本實驗所使用的高斯六軸機械臂,其最大工作半徑為437 mm,垂直行程為687 mm,水平行程為874 mm[8]。

圖3 樹莓派4B

圖4 高斯六軸機械臂

驅動層包括USB_Cam相機驅動、電機驅動等。軟件層包含多種算法及功能包,如成熟圣女果識別算法、測距算法、圣女果方向識別算法以及ROS軟件包等,其中圣女果生長方向識別算法又包括對于圣女果二值化圖像的骨架提取算法和使用“以直代曲”法獲得圣女果中心方向的算法等。

2 算法研究與創新

2.1 成熟圣女果目標獲取算法

成熟圣女果獲取算法流程如圖5所示。在圖像處理中使用較多的是 HSV 顏色空間,它比 RGB 更接近人們對彩色的感知經驗,能非常直觀地表達顏色的色調、鮮艷程度和明暗程度,方便進行顏色的對比[9]。成熟的圣女果外觀特點鮮明,使用單目相機獲取當前視野RGB圖片后將其轉換到HSV顏色空間,然后根據成熟圣女果相應顏色閾值對圖像進行二值化,二值化的一般算法如式(1),如果輸入圖像的像素點對應HSV值在成熟圣女果對應閾值范圍內則將該像素點值置為最大,否則將其置為0[10]。

(1)

圖5 成熟圣女果識別流程圖

成熟圣女果在二值化圖像中具有明顯的區域輪廓,但圣女果種植環境復雜,光照影響等原因會產生區域面積明顯小于正常果實的噪聲,因此采用中值濾波對圖像進行處理以獲取更加完整的成熟圣女果輪廓圖。中值濾波采用非線性的方法,它在平滑脈沖噪聲方面非常有效,同時它可以保護圖像尖銳的邊緣,選擇適當的點來替代污染點的值,所以處理效果比較理想。

由于成熟圣女果的二值化圖像輪廓為封閉圖形,因此可以采用公式(2)的格林公式來求解連通域面積,在此情景下則是計算目標的輪廓內面積[11]。

(2)

遍歷每個符合條件的輪廓,獲取其面積S、矩形邊框起始點坐標(u,v)以及像素寬度w和長度h等參數,記錄其中最大面積S′對應的輪廓起始點坐標,并由此計算出目標圣女果中心坐標點(u′,v′),u′與v′的計算方法如公式(3)所示。至此便已完成獲取成熟圣女果位置坐標的工作。

(3)

2.2 單目相機水平前移測距法

機械臂在抓取的時候還有一個必要的參數便是距離,因為本實驗只采用一個單目相機,將單目相機固定在機械臂末端,用“眼在手上”的方法獲取參數并將機械臂末端以一定姿態伸至目標位置,所以對于距離參數的獲取也是使用單目相機來進行的。通過分析相機成像原理即物像之間的大小關系換算原理可得單目相機水平前移測距法[12-14]。

相機拍攝物像大小關系如圖6所示,目標物大小用H來表示,相機焦距f是固定不變的,在左側相機位置對目標物進行拍照,所成像為左側像,其大小用w1來表示,此時相機與目標物的距離記為l1,則有物像大小關系如式(4)所示:

(4)

圖6 物像大小關系示意圖

使相機向目標物水平移動距離d并拍照,如圖6中右側相機所示,所得像為右側像,其大小用w2來表示,此時相機與目標物的距離記為l2,則有物像大小關系如式(5)所示:

(5)

相機前移前后的兩個位置與目標物的距離分別是l1與l2,相機前移的距離為d,則有式(6):

l1=l2+d

(6)

通過聯立式(4)~(6)可以得到相機前移之后的位置與目標物的距離l2即圖中L,如式(7)所示:

(7)

在實際測距過程中,w1與w2分別為相機前移前后獲得的同一目標物在照片中的像素寬度。此方法可以在機械臂末端對準目標之后水平遷移過程中進行圖片獲取與距離計算。表1為測試此測距法的結果,選取不同顏色的不同物體各進行了10次測試,誤差距離單位為毫米。由于實驗后期要設計的機械爪閉合時需要在爪內部形成一定的空間來包裹圣女果,并且在圣女果前后會留有一定的容錯空間,此容錯為±0.4 cm。由測試結果可以得出,對相機前移前后兩張圖片中不產生形變的物體的測距更加準確,比如紅色球體和紅色方塊,其方差分別為1.00和0.64,相對都比較小,結果穩定性較高。由于實驗采用顏色識別來尋找目標物體,因此外界環境比如光照等因素會產生一定的干擾,從而使得目標物體的像素寬度產生微小的變化。對于實際要抓取的圣女果的測距誤差均值為3.3 mm,處于中等水平,而方差1.61是在5種目標物體中最高的,這是因為圣女果的外形特征不同,且識別效果穩定性比形狀固定的物體略低,測距結果受到圣女果自身以及環境影響相對略大。實驗過程使用機械臂進行前移操作,機械臂理論運動學模型與實際模型之間不可避免存在誤差,這也會增大結果的誤差值。從測試數據和總體結果來看,此測距法雖然相對于存在一些誤差,但對于紅色圣女果的測試結果在預期范圍內。在后期提高測距精度方面,對于外部環境的干擾可以規范其使用環境,降低光照、遮擋等因素帶來的影響;對于機械臂本身運動誤差需要通過標定進一步提高機器人的絕對位置精度。

表1 測距法測試數據表

2.3 圣女果方向識別算法改進

由于圣女果果實與果蒂處于同一中軸線上,為使得機械臂末端在抓取時的方向與圣女果果蒂的水平方向一致,因此需要對更容易分析的圣女果果實的方向進行識別與研究。本文實驗所使用的圣女果果實外形與橢圓相似,并且在生長時是自然向下的,因此可以利用其外形特點進行圖像形態學處理,改進傳統方法,保留圣女果的總體外形特征,來獲取其實際意義上的中軸線,從而獲取實驗所需要的方向。

在第2.1小節中對圖7(a)獲取成熟圣女果目標后可以得到如圖7(b)所示的二值圖,由于正面光照影響,圣女果光滑的表面會呈現反光效果,這對圣女果整體輪廓的獲取產生了一定的影響,如果不加處理則會影響對其形狀的分析,因此要對輪廓內部點進行填充,填充規則如式(8)所示:

(8)

圖7 圖像處理示意圖

其中:(xu,yv)為目標輪廓內部點,當輸入像素點是輪廓內部點且值為0時,則將其置為valmax,否則不作操作[15]。填充操作后的二值圖像如圖7(c)所示。

經過圖像處理獲得的目標圣女果輪廓二值圖相較于真實的圣女果形態并不是很完整,直接通過輪廓特征處理二值圖獲得輪廓的擬合直線會得到與實際方向偏差較大的結果,如圖8所示,穿過圣女果輪廓的灰色線存在明顯偏差[16]。

圖8 輪廓的擬合直線

為使得輪廓的特征更加明顯,此處增加對二值圖像的細化操作。根據圣女果輪廓的對稱性以及非窄距性,采用獲取其中軸線的方法實現對目標輪廓的細化,進一步凸顯輪廓的特征[17-18]。獲取的中軸線如圖9所示,由于實驗對象選取的是識別難度較大的近圓形的圣女果,因此中軸線會相對較小,而對更加接近橢圓的圣女果的識別效果會更加明顯。

獲取到更加能夠凸顯目標輪廓的特征中軸線之后再次計算其擬合直線,可以得到如圖10(a)中的深灰色線條結果,能夠近似反映圣女果的方向。

最終獲取的方向需要作為機械臂的運動參數,為了得到更精確的結果,本文根據輪廓的擬合直線思想進行了算法的適應性改進:

改進后擬合算法流程如圖11所示,首先采用Scikit-image的骨架提取功能獲取目標輪廓特征中軸線,對目標輪廓的特征進行進一步凸顯,然后獲取質心,做一條經過質心的直線,計算中軸線上的每個像素點到該直線的距離之和,取最小值對應直線作為圣女果真正的中軸線,取其傾斜角作為最終需要得到的圣女果的方向。

圖11 改進后擬合算法流程圖

其中對于質心的獲取是在OpenCV中使用矩來計算得到的,圖像矩是圖像像素強度的一種特殊的加權平均值。目標圖像轉換為二值圖像后由式(9)便可得到目標質心,其中Cx為質心的x軸坐標,Cy為質心的y軸坐標。由質心坐標以及直線傾斜角θ便可通過公式y=kx+b獲得直線方程,其中k=tan-1θ,b=Cy-Cxtan-1θ。由式(10)點到直線距離公式可得中軸線上像素點(xi,yi)到該直線的距離d,其中A=tan-1θ,B=-1,C=Cy-Cxtan-1θ,進而可得圖像中n個像素點到該直線的距離之和D[19],如式(11)所示。對于以Δθ為變化率的每條經過質心的直線均需要求一次距離之和,并求出最小值Dmin及對應的傾斜角θ,此θ便是最終需要獲取的圣女果方向。

(9)

(10)

D=

(θ≠90°)

(11)

如圖10(b)所示,淺灰色線為本文改進之后的擬合算法所得結果,圖10(c)為對輪廓的擬合直線(a線)與本文算法所得結果(b線)在同一幅二值圖像中的對比顯示,從中可以明顯看出本文算法在對于該次實驗目標圣女果方向識別更加準確。為驗證算法的準確性和穩定性,對不同的圣女果分別使用傳統方法與本文方法進行了多次實驗,對比測試數據如表2所示,對比測試誤差如圖12所示。圖中橫坐標為對應的實驗序號,縱坐標為該次實驗對應的誤差,取絕對值后,傳統方法的誤差均值為4.45,本文方法的平均誤差值為2.9,就單次實驗來說兩種方法的誤差方向具有相似性,但本文所用方法會相對更加精確一些。傳統方法誤差值方差為9.20,本文方法誤差值方差為4.29,所以本文通過圖像分析來計算圣女果方向的方法相對更加穩定,也更適合在實際應用中使用。

表2 對比測試數據表

圖12 對比測試誤差圖

3 機械臂動作生成

機械臂正運動學求解是在已知各連桿相對位置關系的情況下計算得到末端執行器的位姿,而機械臂逆運動學求解是在已知機器人末端執行器的目標位姿的情況下求解出機械臂末端執行器到目標位置過程中各關節需要轉動的角度值[20-21]。本實驗將已獲得的圣女果的位置及果蒂方向作為機械臂末端夾爪的最終位姿,并由此反推機械臂各關節的狀態,因此求解機械臂逆運動學是本小節的關鍵。本文以高斯機械臂為研究對象,對機械臂進行D-H法建模[22],D-H參數如表3所示,機械臂連桿坐標系如圖13所示。

表3 高斯機械臂D-H參數表

圖13 高斯機械臂連桿坐標系

機械臂逆運動學求解就是求出每個關節的角度,對于本實驗所用六自由度機械臂而言就是求θ1、θ2、θ3、θ4、θ5、θ6。機械臂的D-H參數已集成至ROS的URDF文件中,通過MoveIt!功能包中的KDL(Kinematics and Dynamics Library)進行逆運動學的求解[23],求解過程為:節點初始化,選擇機械臂移動組,指定機械臂的末端操作,指定參考坐標系,調用位姿描述函數,給定坐標系的位姿,選擇運動方案,運動規劃執行。

4 實驗測試與結果分析

4.1 實驗測試

實驗設備硬件層主要由六軸高斯機械臂、樹莓派4B、高清單目相機以及個人電腦組成,相關硬件參數已由第1節給出。機械臂由配置了機器人控制系統(ROS)的樹莓派來進行控制,高清單目相機連接到樹莓派USB端口,同時將個人電腦通過網線與樹莓派相連接。成熟圣女果識別算法、圣女果方向分析算法、測距算法均部署在個人電腦上以減輕高斯機械臂上樹莓派的運算壓力。在樹莓派上部署Master,用來控制整個系統流程。

本實驗屬于綜合性實驗,前部分的實驗結果會對之后的操作產生一定影響,因此需要對成熟圣女果識別率,最大圣女果識別效果,果實輪廓完整性,方向識別算法誤差值以及機械臂位姿誤差等方面進行實驗記錄與分析。

實驗過程:由單目相機在機械臂初始位置且靜止狀態完成當前視野圖片的獲取,利用2.1小節的成熟圣女果目標獲取算法在當前視野獲取最大成熟圣女果作為目標,利用2.3小節的圣女果方向識別算法來對目標圣女果進行方向識別,利用2.2小節的測距算法實現對目標圣女果與機械臂末端的距離獲取,將以上得到的圣女果位姿信息(x,y,z,θ)作為機械臂末端執行器的目標位姿,通過ROS軟件平臺控制機械臂達到目標位姿。機械臂初始位姿運動到目標位姿如圖14所示。在正常的日光條件下,同樣的步驟對于不同位置、不同品種的圣女果共進行了16次,每次均需要記錄以下數據:目標圣女果是否判斷為成熟,目標圣女果是否為當前視野最大圣女果,果實輪廓完整率,測距誤差值,方向識別誤差值,機械臂末端方向誤差值,具體數據如表4所示。

表4 實驗數據記錄表

圖14 機械臂運動狀態示意圖

上述16次實驗中機械臂動作生成所用時間分別為:{3.6,4.0,3.9,3.5,4.6,5.0,3.9,3.4,3.5,3.8,3.4,4.1,4.3,3.8,3.9,5.2 s},動作生成平均用時為3.9 s。

外部環境變量中,光照和遮擋是影響實驗結果最重要的因素,本實驗基于機器視覺,因此需要盡可能地減少對目標圣女果的遮擋。除上述正常日光條件下的測試外,本實驗在相同遮擋條件下對上述目標圣女果在夜間使用照明燈的環境下進行了16次對比測試,實驗表明,平均圣女果輪廓完整率相對于日光條件下降了約4.6%,測距誤差增大了約1%,方向識別誤差增大約1.8%,機械臂末端方向誤差增大約1.5%,機械臂動作生成平均時間為3.9秒。

4.2 結果分析

本次綜合實驗對過程中的各分項步驟均進行了數據的測量和記錄,機械臂最終動作的生成依賴之前獲得的圖片分析結果,實驗有明顯的誤差是正常的。本文除了在正常日光條件下進行了16次詳細測量數據的實驗之外,還對同樣的目標圣女果在保持遮擋條件一定的情況下,在夜間使用照明燈的環境下進行了同樣16次測試。除此之外還進行了額外的34次有針對性記錄的實驗,平均動作生成時間為3.6 s。

在準確率方面,對于目標果實是否成熟的判斷,本實驗采用的是顏色識別,成熟與不成熟有較大的區別,因此在識別過程中獲得的結果均是正確的。對于目標果實是否為當前視野區域最大成熟果實的判斷,由于圣女果生長環境復雜,圣女果與圣女果之間以及圣女果與枝葉之間有互相遮擋的情況,這就給識別帶來了困難。對于比較復雜的情形會容易產生識別錯誤,以上32對比次實驗中有兩次是因為遮擋問題識別失敗,從后續進行的34次實驗也可以看出只要獲取到了目標就不會對后續步驟產生較大的影響。對于目標圣女果二值圖的獲取,如表4中輪廓完整率所示,輪廓的獲取受外部影響較大,比如圣女果外表光滑,較強的外部光照會在圣女果表面產生反光,而正常的日光與夜間照明燈的光照條件也會對實驗結果產生不同的影響。圣女果的果蒂也會在圣女果頭部形成一定程度的遮擋,這就使得在獲取圣女果二值圖的時候,反光以及被遮擋的部分均變為背景。從整體實驗來看,獲取的成熟圣女果輪廓的完整率平均在82%以上,日光條件下的識別效果優于夜間照明燈條件下的識別效果,對于非枝葉遮擋圣女果的識別效果達到預期目標。針對二值圖不完整的問題,本文2.3小節有提到對二值圖進行內部填充,盡可能減小反光的影響,使得可以識別到的部分達到較為完整的效果,從而為后續進行果實姿態分析時使用的中軸線獲取算法提供較準確的輸入。對于測距算法,實驗結果和本文2.2小節所做測試相近,環境因素以及圣女果自身的弧度會使目標物體的像素寬度產生微小的變化,總體來看雖有一些誤差,但是測試數據和結果顯示達標率為84%。在圣女果方向的識別方面,對于圣女果輪廓識別較為完整或者經過填充后的二值圖較為完整的目標,方向識別誤差值會比較小,在對近橢圓形的圣女果進行識別時尤其準確。對于輪廓識別完整度不高的目標,由于其二值圖中軸線無法體現出圣女果本身的特點,也就導致方向偏差較大,但是整體達標率是86%,結果符合預期。最終機械臂末端到達目標位置后的方向準確度十分依賴圖片識別的結果,對于距離和方向的誤差值均比較小的實驗,機械臂最終位姿的誤差也是比較小的;而對于前期輪廓識別誤差大,方向誤差大的目標,機械臂的最終位姿誤差也比較大。從以上實驗數據來看,機械臂位姿的達標率能夠達到80%,符合預期目標。在速度方面,機械臂從初始狀態運動達到目標位姿的平均用時為3.75 s,這個過程不包括機械臂末端的采摘以及采摘之后的返回時間。本實驗著重針對機械臂生成特定采摘位姿做了研究,機械臂過快的運動速度需要配以較重的底盤來穩定主體機器,因此3.75秒的平均動作生成時間符合預期目標。

從實驗室的實驗結果來看,整體效果能夠達到預期目標,方案可行,但是可提升空間比較大。圣女果表面反光會影響輪廓識別的完整性,不同的光照條件下的識別效果是不同的,后期應避免環境有較強的直射光,減少反光對于RGB圖像的獲取效果,尤其需要提升夜間照明燈條件下的識別效果。圣女果植株生長比較復雜,尤其是枝葉遮擋情況比較嚴重,這對識別效果會產生較大影響,采摘前需要將圣女果周圍遮擋嚴重的枝葉進行修剪,盡可能地將圣女果裸露出來,這樣可以降低機器人運作的難度。

5 結束語

圣女果種植范圍廣,人工采摘成本高且工作量大,研發智能采摘機器人來解決當前圣女果采摘所面臨的難題是非常必要的,實現機器人全自動采摘也順應了農業智能機械化的發展要求。但是目前大多數圣女果采摘機器人都處在實驗室階段,少數可以實現采摘,但是不能保證帶有果蒂的采摘。本文在帶蒂采摘方法上展開探索,通過模擬人手采摘的流程,使機械臂末端機械爪在達到目標圣女果位置時能夠與圣女果果蒂方向基本一致,從而保證在后期研發中能夠使用折果蒂的方式將帶有果蒂的圣女果采摘下來,使機械臂采摘下來的圣女果具備與人工采摘同樣的商業價值。模擬人手采摘流程需要制定特定的采摘機械爪,而目前機械爪還在設計階段,因此本實驗是對機械臂采摘之前的位姿生成進行了方法探索,為后續完成完整的采摘動作做下鋪墊。

綜合本文算法設計和實驗結果,對圣女果進行目標識別與方向分析進而生成機械臂特定采摘位姿的方法具有一定的適用性和可行性。針對實驗中的光照、環境干擾問題進行了對比測試,后續實驗應該降低環境問題對算法的影響,進一步驗證算法的準確率。在實際應用之前,圣女果在種植時應該進行相應改變來方便機器人進行采摘,比如在采摘之前整理側枝,同時將果實所在莖稈單獨裸露在通道方向,這樣既能保證對圣女果的營養輸送,又能為機器視覺提供廣闊的視野。

未來會著重提高算法在復雜環境條件下的適用性和準確度,必要時會更換相關算法思路來提高實用性,同時結合具有人手采摘特點的機械爪進行采摘實驗,實現完整的采摘流程。

猜你喜歡
圣女位姿輪廓
圣女果高產栽培六步曲
圣女果的“真面目”
OPENCV輪廓識別研究與實踐
山東臨清測土配方助圣女果豐收
基于實時輪廓誤差估算的數控系統輪廓控制
基于共面直線迭代加權最小二乘的相機位姿估計
基于CAD模型的單目六自由度位姿測量
小型四旋翼飛行器位姿建模及其仿真
在線學習機制下的Snake輪廓跟蹤
蓮霧圣女果低脂冰激凌的生產工藝研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合