饒期捷,黃海松,張松松
(貴州大學現代制造技術教育部重點實驗室,貴陽 550025)
隨著科學技術的飛速發展,人類迎來了人工智能時代,機器人的應用場景也伴隨著人工智能技術的發展,逐步進入醫療救援、家政服務、地質勘探、工業制造等領域。中國制造2025概念的提出,更使智能制造體系順應新的工業環境而建立,但傳統的工業機器人已經無法滿足智能制造體系。傳統的機器人抓取只能進行簡單重復的結構化動作,而新型智能協作式機器人通過與人工智能技術的結合,能滿足柔性靈活抓取需求,提升抓取作業的穩定性和生產效率。因此研究基于新型智能協作式機器人的靈活抓取對推進中國制造2025的進程有著重要的研究意義和巨大的應用前景。
機器視覺是通過光學的裝置和非接觸的傳感器自動的接受和處理一個真實物體的圖像,以獲得所需信息或用于控制機器人運動的裝置[1-4]。作為一門交叉性學科,機器視覺技術涵蓋圖像處理技術、人工智能技術、計算機科學和自動化領域[5]。通過模擬人的視覺,使機器人完成自主檢測和控制等功能,近年來,機器視覺憑借其高精度、高效率、非接觸式、易于集成等優勢,在智能制造方向扮演著重要的角色。本論文通過研究雙臂智能協作機器人Baxter的系統組成和工作原理,結合機器視覺技術,在ROS(robot operating system)平臺下開發基于智能協作機器人Baxter的目標抓取算法。
算法研究的主要任務是通過改進的機器人抓取檢測算法控制協作式機器人Baxter完成對指定工作區域的目標物件檢測,同時將識別出來的各類別物件抓取放置到置物托盤中,并通過實驗驗證抓取任務的準確性和魯棒性。重點針對任務過程中的圖像預處理和物件識別模塊使用的算法進行研究和改進,從而提升抓取過程總體的運行速度、準確性和魯棒性,以滿足智能制造體系生產的實際需求。
物件目標抓取任務過程結構如圖1所示,開啟機器人手部攝像機,控制機器人手臂移動到工作臺上方。目標抓取任務包括場景圖像感知、目標物件位置識別、物件抓取定位、機械臂抓取及放置四個模塊。場景圖像感知部分通過機器人手部相機獲得工作場景的實時彩色圖像后,通過ROS傳輸給計算機進行圖像預處理。目標物件位置識別模塊通過輸入預處理后的圖像,基于本文提出的抓取檢測算法,識別出待抓取的目標物件以及抓取物件后的放置托盤位置。物件抓取定位模塊獲取物件在像素坐標中的坐標信息后,通過手眼標定的方法,將像素坐標轉換為物體在機器人基坐標系下的坐標。機械臂抓取及放置模塊基于上文得到的待抓取物件坐標信息,通過反向動力學將坐標信息轉化為機器人7個關節的運動位置信息,進而控制機器人的手臂及其末端執行器完成抓取任務。

圖1 抓取任務過程結構圖
本文采用的機器人是美國 Rethink Robot 公司于2012年首次推出一款雙臂智能協作機器人Baxter機器人完成靈活抓取任務[6]。該機器人是世界上首款制造級的人形機器人,也是目前全球應用最廣泛的雙臂機器人,全球已經有27個國家的實驗室、大學和研發中心采用Baxter機器人作為研究平臺。在我國,由于對相關領域的研究較晚以及各項條件的限制,目前只有少數高等院校和科研院所具備使用智能協作機器人進行相關研究[7]。Baxter機器人擁有多種類型的末端執行器如圖2所示,在本文中使用平行夾爪作為抓取的末端執行器。手爪由Baxter機器人內置的伺服機控制手爪的張開與閉合,并通過Baxter API完成對手爪的編程操作。

(a) 平行夾爪 (b) 氣動力吸盤

(c) 壁虎式夾爪圖2 Baxter機器人末端執行器
Baxter機器人的左右機械臂由7個獨立的旋轉運動關節串聯而成,如圖3所示,其各關節轉角、轉速和力矩參數如表1所示。

圖3 Baxter機器人關節圖

表1 關節轉動范圍
本文為了提升目標物件位置和放置托盤位置識別的準確性,采用的機器人抓取檢測算法是改進的Canny算法和Hough變換算法相結合的方法。并使用二次定位的方式進一步提升識別結果的準確性[8]。
文獻[9]提出的Canny邊緣檢測算法是從不同視覺對象中提取有用的結構并大大減少待處理的數據量的一門方法。Canny邊緣檢測算法可以分為以下5個階段[10-12]:
第1階段:使用高斯濾波器與圖像進行卷積,用以平滑圖像消除噪聲,高斯濾波器核的生成方程式如下:
(1)
1≤i,j≤(2k+1)
(2)
第2階段:使用邊緣檢測的算子計算圖像中所有像素點水平Gx和垂直Gy方向的一階導數值,由此確定像素點的梯度G和方向θ。G和θ計算公式為:
(3)
θ=arctan(Gy/Gx)
(4)
第3階段:應用非極大值抑制,消除邊緣檢測造成的雜散響應,相關偽代碼如下:

11:function ELIMINATE(Gp,Gp1,Gp2)2:result←03:edge←04:if Gp>Gp1 and Gp>Gp2 then5:edge←Gp6:else7:result←18:end if9:return result,edge10:end function
其中Gp1和Gp2分別表示像素點P1和P2的梯度線性插值。
第4階段:應用雙閾值檢測確定真實和潛在的邊緣。
第5階段:通過抑制孤立的弱邊緣完成最終的邊緣檢測。
由上文算法流程可知,在使用Canny邊緣檢測算法過程中,對平滑濾波方差、高低閾值這3個參數的設定是圖像處理的關鍵。尤其是在對雙閾值的處理過程中,閾值參數過高會造成邊緣斷裂和不連續的顯現;閾值參數設置過低則會導致出現較多的虛假邊緣。因此,本文針對傳統Canny邊緣檢測算法原理和缺陷進行研究分析,結合抓取圖像的特點,對Canny算子進行了改進,針對高低閾值設定這一方面,使用Otsu算法替代傳統的人工設置,通過實現雙閾值的自適應獲取改進生成的邊緣圖像的清晰度。
最大類間方差法(Otus)是一種可以根據圖像的灰度直方圖信息自適應確定閾值的方法,用于在類間方差最大的情形。該算法的基本思想是存在閾值Ω把采集到的圖像像素劃分為C1(小于Ω)和C2(大于Ω)兩類,設圖像灰度級為k,兩類像素的均值分別為m1和m2,全局的圖像像素均值為MG。同時像素被分為C1和C2兩類的概率分別為p1、p2,因此存在下列公式:
P1×M1+P2×M2=MG
(5)
P1+P2=1
(6)
其中,

(7)

(8)

(9)
其次灰度級k的累加均值M和圖像全局均值MG分別為:

(10)

(11)
將公式(10)、公式(11)帶入類間方差表達式最終得出:
(12)
根據公式(12)通過遍歷搜索、計算上述公式最大化的灰度級k,即能實現自適應獲取最優的高低閾值,進而提升生產的邊緣圖像的清晰度,改進前后檢測效果如圖4所示。

(a) 改進前 (b) 改進后圖4 邊緣檢測對比圖
霍夫變換是一種用于圖像分析,計算機視覺和數字圖像處理的特征提取技術。該技術的目的是通過投票程序找到特定類別的形狀中對象的不完美實例。該投票過程是在參數空間中執行的,在該參數空間中,由所謂的累加器空間中的局部最大值獲得對象候選,累加器空間由用于計算霍夫變換的算法明確構造。本文在傳統的Hough檢測技術的基礎上,加以改進,實現對目標工件的檢測與定位[13-16]。
直線在參數空間中的方程為:
(13)
圓在參數空間中的方程為:
r2=(a-x)2+(b-y)2
(14)
并且由于實際工廠的生產過程檢測現場存在較為復雜的光線干擾,例如灰塵、強光、昏暗等,導致采集到的圖片較為昏暗,因此本文使用一種新型的自適應亮度調節的辦法,對采集的圖像進行亮度的調整,通過設定像素閾值x,實現當圖像過于昏暗或亮度過高時自動對圖像進行調整,以增強目標工件在采集圖像中的辨識度。
像素點亮度計算公式為:
(15)
其中,F(x,y)表示平均像素值;R(x,y)、G(x,y)、B(x,y)分別表示各個通道的像素值。
為解決實驗過程中識別圓形目標時易出現的誤判現象,本文依據圓形物體所獨有的圓心到圓邊任意點距離相等的幾何特性,增加在圓形邊緣上選取的散點樣本的數量并將散點樣本的數量設置為參數空間中的閾值,用以解決對非圓形目標的誤判。改進前后圖形對比如圖5所示。

(a) 改進前 (b) 改進后圖5 目標檢測對比圖
Baxter機器人的雙機械臂末端設置有紅外感測裝置和攝像頭,因此本文設計基于手眼系統的靈活抓取算法,并通過內嵌的攝像頭采集工作臺上實時畫面,獲取目標物體中心點像素坐標,并通過一系列坐標計算變換,引導并控制機器人的手臂運動到指定位置,進而對工作臺上的工件進行靈活抓取。
Baxter機器人基坐標系、手臂末端坐標系及末端執行器坐標系之間位置關系如圖6所示。

圖6 坐標系位置關系圖
通過分析Baxter機器人手部紅外、攝像頭采集到的Baxter雙臂的末端執行器到置物托盤和工作臺的高度與角度,建立待檢測目標相對相機坐標系的轉換矩陣、相機坐標系相對機械臂末端坐標系的轉換矩陣以及機械臂末端坐標系相對機器人基坐標的轉換矩陣。
為了使用Baxter機器人的手部攝像機找到目標的位置,必須知道從相機到物體的距離以及該距離處的像素寬度,因此本文采用RAC標定法[17],并執行以下實驗以查找相機的校準因子。如圖7所示單獨的圖像只能得出圖像點的角度。

圖7 坐標系投影示意圖
因此本文在實驗過程中準備了一個如圖8所示的靶,該靶由24個分布于6×4網格,其中間間隔為4 cm的2 cm正方形組成。將其放置在距離相機不同距離的位置,并對圖像進行分析以找到每個正方形的中心(以像素為單位)。將每個圖像都轉換為灰度圖像。用于將灰度圖像轉換為黑白圖像以及觸摸圖像的所有黑色區域的強度閾值。面積閾值用于去除圖像中心的黑色小區域,從而保留目標正方形。在找到每個目標正方形的中心并用圓盤標記中心的情況下,將正方形轉換為灰色,產生結果如圖8所示,通過對結果的分析得出,相機在1m處的校準系數為每像素2.5 mm。

圖8 相機標定圖
在分揀系統的設計過程中,本文設定機械臂末端執行器位姿于工作臺桌面垂直向上方位并保持分揀過程中機械臂手臂高度固定的方法,將原本采集圖像像素坐標到Baxter機器人的三維工作空間坐標系的轉換簡化為二維平面的工作空間坐標系轉換。通過Baxter機器人手部的紅外傳感器可測出末端到工作臺桌面的距離,結合攝像機標定系數,利用公式(16)可以實現圖像坐標系與Baxter機器人末端執行器坐標系之間的轉換[18]。
α=(β-γ)×Cc×d+Pa+O
(16)
其中,α表示機器人基坐標系下的坐標;β表示相機坐標系下的像素坐標;γ表示相機圖像中心點像素的坐標;Pa表示Baxter機械臂的位姿;Os表示Baxter機械臂末端執行器與手部攝像頭在x,y坐標系下的偏移量;Cc表示相機校準系數;d表示攝像頭到工作臺的距離。
機器人靈活抓取的工作流程,分為以下幾個步驟。
步驟1:啟動Baxter機器人,控制Baxter機器人的機械臂移動到工作區域正上方如圖9所示,并保持手臂垂直向下,同時開啟機械臂末端執行器的攝像頭。

圖9 Baxter機器人工作狀態圖
步驟2:使用末端執行器上的攝像機采集工作臺上的實時場景圖像,并通過機器人操作系統將采集到的圖像信息實時傳遞回計算機,其中場景采集圖像和以及ROS系統中Baxter機器人采集圖像和計算機進行實時傳遞過程中,用于發布和訂閱圖像信息的robot、Baxter_cams、cameras 3個節點之間的關系如圖10b所示。

(a) 實時圖像(b) ROS節點圖圖10 采集圖像及ROS節點圖
步驟3:通過Hough算法識別出工作臺上的目標物件,并計算出物件的質心坐標,同時對質心坐標處于托盤區域的目標物件進行剔除防止重復夾取的狀況出現。
步驟4:通過Canny算法對預處理后的圖像進行邊緣檢測,識別出相應的物件放置區域中心,并對檢測出的物件放置托盤進行劃分,如圖11所示。

圖11 中心識別及托盤區域劃分圖
步驟5:Baxter機器人執行抓取任務,并自動調整夾持器角度,避免抓取過程對目標物件周圍臨近的物件造成碰撞,影響被碰撞物件的抓取。
實驗開始,將多種物品隨機擺放在工作臺的隨機位置上,按照上述抓取任務流程進行10次反復試驗,執行抓取的過程中,多目標任務的抓取原則為攝像頭采集圖像最右上端的物件,并重復抓取動作直至所有被檢測物件都放置到托盤區域。如果出現抓取失敗的情況,程序自動結束并提示抓取失敗。10次抓取實驗的成功率均為100%,但是10次實驗中出現了部分目標物件未識別的情況目標物件的總體識別率在90%~100%之間,該實驗結果證明了本文提出的基于機器視覺的Baxter機器人靈活抓取算法具有較好的魯棒性和準確性。實驗過程如圖12所示。

圖12 實驗過程圖
本文以雙臂智能協作式機器人Baxter為研究對象,基于機器視覺技術,在ROS平臺下,提出并實現了一種融合Canny邊緣檢測技術和Hough變換算法的機器人抓取檢測方法。并在Baxter機器人上基于該算法進行了靈活抓取的實驗驗證,展示了基于Baxter機器人的完整靈活抓取流程。實驗結果表明該方法具有較強的魯棒性和準確性。該實驗對國內智能協作式機器人的研究以及工業生產過程中的靈活抓取應用研究具有案例參考價值,并能夠作為實現自主抓取應用的主要解決方案進行進一步研究。