趙寶樂,姬五勝,2,陳建敏
(1.天津職業技術師范大學 電子工程學院,天津 300222;2.天津市現場總線控制技術工程中心,天津 300222)
自20世紀50年代以來,人類對機器視覺的研究取得了重大突破,視覺檢測技術為科學技術的發展提供了新的思路,它不僅是高級視覺處理和分析任務的基礎,也是未來發展的重要動力[1-3]。Marr 教授領導的研究團隊首次提出了一種全新的視覺計算理論(Vision Computational Theory)。北美、歐洲和日本等地區相繼成為國際機器視覺的重要產業基地。在“十四五”時期,中國積極推動機器視覺技術的發展,制定了一系列有助于推動智能工廠建設的政策,大力推廣智能機器人的大規模應用,從而促進了機器視覺技術的普及和應用[4]?;赗OS 技術機器人能夠實現基于雙目視覺的自動抓取。首先,機器人需要經過相機標定[5];然后,機器人需要進行手眼標定[6],從而獲取物體的基本位置信息。此外,ROS 還能夠利用其獨特的消息傳輸機制,構建機械臂和相機之間的三維空間模型,從而實現機器人的自動抓取,并且能夠實現基于視覺的機械臂抓取系統的研究[7-9]。
隨著技術的發展,單目測繪的地圖軌跡與實際情況存在較大的不同,而且只依靠圖片也不能準確反映出物體的真實尺寸和深度。因此,為了更準確地測量物體的位置,人們普遍采用雙目測繪技術[10]。深度相機[11]可以獲得外界環境信息,將尺度信息和彩色圖像特征信息結合起來建立外界環境,但處理信息并不能像雙目視覺一樣通過軟件計算來實現。采用一種結構已知、精度較高的參照物,根據參照物在圖像和空間坐標系的位姿約束關系,建立攝像機參數標定的方程組,基于視差理論的雙目立體視覺[12]利用兩個相同攝像機對同一場景不同位置進行成像,從而獲得場景立體圖像[13]。
本文基于雙目視覺機器人的手眼標定,采用“眼”(相機)在“手”(機械臂)上的方法,相機探測像素在目標圖像上的位置,標定坐標變換矩陣實現像素坐標到空間坐標的變換,并基于機械手坐標解算機器運動方式;根據機械手坐標計算所述機器的運動方式,以控制所述機械手到指定地點對物體進行抓取操作。通過將多種先進的技術融合到一起,如視覺檢測、深度學習、運動規劃和物體抓取,最終實現一個基于雙目視覺的高效物體抓取實驗。
機器人抓取目標系統結構如圖1所示。根據研究任務和實驗背景,將相機固定在機械臂上,采用“眼”在“手”上的方法,在機械臂末端安裝夾爪,機器人在收到指令后通過相機采集圖像,對目標物體進行檢測;雙目相機經過相機標定后,將采集到的圖像傳送到機械手的空間坐標系中,根據檢測的手眼標定和圖像分析結果進行姿態估計,通過相機和機器人末端坐標系位姿關系,獲得連續的關節位置坐標進行運動規劃,最后控制機械臂對目標物進行抓取任務。

圖1 系統結構
根據實驗場景選取合適的硬件,主要包括:(1)Realsense D435:librealsense sdk、realsense-ros 功能包;(2)Marker 標記識別:Aruco 功能包;(3)手眼標定:easy_handeye 功能包;(4)機械臂:輕型6 自由度協作機器人;(5)電腦主機:負責通過ROS 控制相機采集圖像信息,經過數據處理后將物體的坐標位置發送給機械臂,實現抓取任務;(6)夾爪:具有力控制和位置控制的功能。
根據相位測量原理,相機可以準確地測量物體的高度。當光柵投射到物體表面時,相位會受到物體高度的影響,獲取相位變化值,從而準確地反映出物體的高度信息。相機標定的主要目的在于獲得相機的內外參數,當獲得的相機的內外參數都正確時,圖像失真比較小,描述數字圖像中物體成像的像點坐標并從相機坐標系中讀出信息,坐標為(u,v),單位為pixels(像素數目)。
通過相機標定,在三維世界和成像平面內建立物體的一一對應關系,這種一一對應關系可以通過世界坐標系、相機坐標系、圖像坐標系和像素坐標系的變換來實現,如圖2所示,原點通常位于左右相機之間,或者X軸方向的中點。當Z軸與光軸完全重疊時,它們將沿著一條水平線穿過,并與圖像坐標系完全垂直;而像素坐標系的u-v與圖像坐標系的x-y將完全重疊,兩者之間的距離被稱為焦距f。通過將旋轉矩陣R與平移向量T結合在一起,可以將世界坐標系和相機坐標系的位置轉換為一個新的坐標系,相機坐標系與圖像坐標系相連接就是透視投影。如圖3所示,在圖像坐標系中,原點與像素點之間并不重合,在這種情況下原點在像素坐標系中的坐標為(u0,v0),而像素點在x軸和y軸方向的尺寸分別為dx和dy,實際像點p在圖像坐標系中的坐標為(x,y),因此得到了它的坐標(u,v)。

圖2 坐標系關系轉換

圖3 相機標定原理
通過手眼標定,機器人可以實現基坐標系和相機坐標系之間的精確轉換。第一種方法是通過eye-in-hand來實現手眼標定,即將相機固定在機器臂的末端,并讓它與機械臂運動;第二種方法被稱為eye-to-hand,它將相機與機器人的基座完全隔絕,使得機器臂的移動不會受到相機的影響,從而實現了更加高效的操作。通過機械手臂與相機的協同作用,可以實現對機器人標定板的精確測量,并且保持基礎與底座之間的關系不變,從而確保末端坐標系的準確性,如圖4(a)所示。

圖4 真實場景和標定示意圖
手眼標定eye-in-hand 示意圖如圖4(b)所示,底座與末端關系為底座與相機關系為相機與標定板的關系為在eye-in-hand 的配置方式中對機器人移動過程中的任意兩個位姿有以下公式成立:
標定板和機器人底座間兩次運動保持不變。對式(1)進行移項后可得:
求解相機和機器人末端之間的關系X,機械臂末端的坐標變換關系設為A,相機的坐標變換關系設為B,最終轉化成求解方程為:
使用三維重建函數能夠精確地測量和校準相機和投影儀的內部和外部參數,并重建這些測量值在相機坐標系中的三維位置。根據設計值可以確定標定板上特征點的位置,并利用這些信息來構建一個相應的坐標系,從而實現對其進行轉換。
通過卷積神經網絡(Convolutional Neural Network,CNN),可以根據目標的位置、尺寸和長寬比等因素進行綜合抽樣,從而實現快速、準確的特征提取與回收。
(1)SSD 使用了基于VGG16 的雙框檢測器,可以檢測出大量的特征圖,而且可以根據不同的尺寸來實現檢測。
(2)SSD 利用卷積從測試結果中抽取不同特征進行映射,其形狀為m×n×p圖形,圖形特征讀數可利用3×3×p從更小卷積核中獲取。
(3)SSD 每個單元都有不同配比的先驗框,在一定程度上降低了訓練難度。
在ROS 環境中啟動Moveit 框架中的相關節點程序,開啟抓取程序后,相機固定到機械臂末端,通過網線連接到主機,相機識別到目標位置信息進行抓取任務。
啟動Realsense 節點,相機通過Type-C 數據線與USB3.0接口相連,啟動aruco 節點識別 Marker 標簽,執行命令啟動image_view顯示圖像;運行成功后在 rviz 中可以看到機器人模型與真實機械臂的狀態保持一致,真實機械臂會按照 rviz中Moveit!規劃的路徑運動;在啟動標定程序前,先在 rviz中通過Moveit 或手動調節機械臂到一個合適的姿態,然后將aruco 二維碼移動至相機視野中心附近。目標物體位姿識別如圖5所示。

圖5 目標物體位姿識別
標定步驟如下:
(1)當Check starting pose 被激活時,“Ready to start”將會顯示,但是若檢測結果顯示 0/17,則表明當前機械臂的姿勢與預期的設計相差較遠。解決方法:關閉標定節點然后調節機械臂到一個合適姿態并將aruco 碼移動至相機視野中心附近,再重啟標定節點繼續標定。
(2)機械臂移動至新位姿,二維碼在相機檢測范圍內檢測成功,則進行下一步。若aruco 碼不在相機視野范圍內或部分在視野外,檢測不到,則一直等到aruco 碼完全在相機視野范圍內且能檢測成功,再進行下一步。
(3)如果Samples 對話框中顯示了有用的信息,則表明第一個點已經被標定。
(4)重復執行步驟(2)和步驟(3),直至 17 個點全部標定完畢。
(5)界面2 中Result 對話框中會出現結果。
相機相對于目標物體的TF 坐標轉換關系為:camera_color_optical_frame到aroce_marker_frame。在抓取節點應用中,通過TF 轉換可以獲得機械臂的坐標系相對于目標物體的轉換關系:base_link到aroce_marker_frame。相機與機械臂基坐標系的TF 轉換見表1 所列,marker 在相機坐標系下的位姿終端打印信息如圖6所示。

表1 位姿信息

圖6 終端打印信息
在實驗平臺進行抓取測試,驗證抓取實驗的可行性。在測試前,通過ROS 系統的Moveit!軟件實現機械臂的運動規劃和運動空間限制。首先對機械臂正逆運動學進行分析,完成機械臂的運動規劃并為運動空間限制提供基礎,通過在move_group中設置逆解算法進行機械臂末端夾爪到目標物體的路點軌跡規劃。抓取目標物體過程如圖7所示。實驗測試機械臂對水瓶的檢測、抓取以及放置,機械臂在固定區域內完成50 次抓取測試,從目標檢測成功到水瓶被抓取再到放置算一次成功抓取。整個抓取過程為開環抓取,得到目標物體位置之后,進行抓取操作,機械臂從初始姿態到抓到目標物體平均用時 12 s,放置用時 6 s,機械臂回到初始位姿等待下一次檢測,用時 8 s,整體抓取時間較長,但不影響實驗目的。抓取結果見表2 所列。

圖7 抓取目標物體過程

表2 抓取結果
本實驗對特定的物體水瓶共抓取了50 次,抓取成功率為82%,抓取失敗的原因有:機械手抓取目標物體表面呈現摩擦力較小,沒有更好的適應力;水瓶位置放置偏或不能到達機械臂可操作范圍,機械臂無法規劃出運動軌跡。
標定過程可能會受相關硬件及環境等條件因素的影響,所以標定結果可能存在一定的誤差,標定完成后可以通過獲取物體在相機坐標下的位姿,然后轉換到機械臂下的位姿進行調試,存在誤差可以后續在程序中進行補償計算。
本文設計的基于雙目視覺抓取實驗基本上實現了預期的效果,完成了手眼標定、物體識別定位抓取等操作,通過在ROS 操作系統平臺實現相機和機械臂的坐標轉換,結合目標檢測以及路徑規劃相關算法,最終實現目標物體的抓取。未來將進一步探索人類視覺的三維融合及其產生的機理,為特定場景設置一些限制條件和匹配模式,以此來提升基于視覺的目標識別的準確性、及時性,同時拓寬匹配規范和算法架構。