石世鋒,葉 南,吳 哲,張麗艷
(南京航空航天大學機電學院,南京 210016)
在航空航天領域,機械臂常用于自動鉆鉚系統中的送釘和插釘[1]、孔軸零件的裝配[2]和空間在軌服務[3]等。在大多數情況下,機械臂只能按部就班地執行事先規劃好的動作,對于任務環境中發生的變化,無法自適應地作出調整。這種工作模式缺乏靈活性,尤其是在復雜的工業現場,未知的環境變化時有發生,會嚴重影響到機械臂的工作效率和精度。
為提高機械臂工作的穩定性和靈活性,基于視覺的機械臂測量系統受到研究人員的廣泛關注,視覺傳感器因其精度高、成本低和適應性好等特點成為輔助機械臂完成定位、裝配等工作的重要手段之一。國外的相關技術已經非常成熟,德國Fraunhofer 研究所將雙目系統集成到銑削機器人上,在銑刀主軸上安裝反光靶點,通過雙目系統測量靶點位姿來反映銑刀主軸的偏差,然后對銑刀主軸的移動量進行反饋補償,提高機器人運動軌跡的精度,銑削機器人已經成功應用于空客A350 翼面的修配工作中[4]。國內的研究主要集中于各大高校,以浙江大學柯映林教授團隊[5]為例,針對自動鉆孔和鉚接問題,搭建了一套配備單相機和激光指示器的機械臂系統,將激光點作為視覺特征,以此來估計機械臂末端執行器與孔位的位姿關系,通過設計具有自適應控制增益的控制器來補償系統的不確定性,最終實現末端執行器與孔位的對齊。此外,針對軸承、法蘭等圓形金屬零件的抓取問題,提出了一種基于錐體退化理論和單目視覺的橢圓特征位姿測量方法[6],在獲取零件位姿數據后由視覺伺服方法控制機械臂抓取零件。
機械臂視覺系統在執行跟蹤、對接或抓取操作時,借助合作靶標進行定位和位姿測量是一種常見的解決方案:即事先在目標上設計一種尺寸、形狀已知的幾何圖形,視覺系統通過觀測該圖形獲得目標的位姿信息,然后把位姿反饋給機械臂驅動末端執行器對準目標[7]。雷金周等[8]提出了一種基于單目視覺的機械臂末端對準技術,通過識別和測量工件孔位附近的圓形陣列靶標,最終達到孔軸對準效果,前提條件是孔位與陣列靶標之間的位姿關系已知。Jiao 等[9]設計了一種十字型合作靶標,通過對靶標的識別和定位實施零件抓取動作。上海交通大學的胡佳興等[10]以復雜的太空桁架結構為例,設計了一套靶標系統用于桁架編碼,提前進行裝配信息定義,為后續開展智能裝配提供數據庫信息支持。合作靶標應用之廣,常用的靶標圖案一般都是由圓點、直線和圓環組合而成,合理的圖案設計和準確魯棒的識別算法為提高位姿估計精度提供保障。
目前,基于視覺的機械臂測量技術主要運用在單個工件的近距離測量工作中,當機械臂需要在多個工位間移動、對多目標執行對準操作時,機械臂往往需要從較遠距離開始工作,這使得系統工作環境的橫向空間跨度變大,縱向距離變長。在機械臂由遠及近的移動過程中,相機在某些距離段會出現失焦、離焦現象,導致位姿測量精度降低,甚至裝配任務失敗。針對此類問題,Qi 等[11]研究了變焦相機在機械臂視覺引導工作中的應用,變焦相機在機械臂移動過程中能對目標進行清晰成像,但目前變焦相機存在標定難度大、測量精度低、靈活性差等特點,極大限制了其在工業現場的應用。Qin 等[12]針對大尺寸工件的機械臂裝配問題,提出了一種基于多傳感器的自動對準策略,將機械臂末端工具與目標工件的對準過程劃分為遠距離粗對準和近距離精對準兩個階段。但由于使用了多種傳感器,增加了系統復雜度和數據處理難度。國防科技大學的于起峰團隊[13]在研究航天器自主對接時設計了一套遠近場視覺系統解決方案,在追蹤目標器上安裝兩種合作靶標,分別用于遠場視覺系統和近場視覺系統的位姿測量。
在上述研究的基礎上,本文針對機械臂多工位作業問題,搭建了一套具有遠近視距的兩目視覺系統,并以Eye-in-hand 形式與工業機械臂相結合。在完成系統標定的基礎上,為機械臂多工位對準作業建立任務表,然后在合作靶標的輔助下完成機械臂末端工具與目標的三階段自動對準,包括多工位起始位姿獲取、遠距離初定位和近距離精確對準。
所謂多工位對準作業,就是在未知的工作場景中,機械臂系統需要對多個對準目標進行識別和測量,然后按照某種順序依次完成末端工具與目標的精確對準(在本文中,用孔軸配合來表征)。
本文搭建的機械臂視覺測量系統示意圖如圖1 所示。為了避免測量過程中產生遮擋問題,并提高局部測量精度,本文將相機固連在機械臂末端,以Eye-in-hand 形式搭建測量系統。由于系統需要在多個工位間完成對準任務,為了標識不同工位的對準目標,需借助合作靶標對目標進行區分。本文選用陣列式編碼元[7]作為合作靶標,原因有:(1)該編碼元具備唯一身份特征;(2)該編碼元由8 個圓點構成,可用于對準過程中的位姿測量。在機械臂由遠處及近的運動過程中,相機需要采集編碼元圖像并解算當前位姿數據,但受鏡頭焦距等因素影響,單個相機無法同時在遠處和近處都清晰成像,離焦、失焦的圖像會導致位姿計算出現偏差,甚至定位失敗。因此,本文使用兩臺視距不同的工業相機構成兩目視覺系統[14],其中一臺用于全局觀察定位,工作距離約1.5 m,視場大小約2 m×1.6 m,稱之為全局相機;另一臺用于近距離精確對準,工作距離約0.3 m,視場大小約0.3 m×0.25 m,稱之為局域相機。兩臺相機分別工作在不同階段,但又需要相互配合,才能保證末端工具與目標順利對準。
系統的坐標系和位姿關系定義如下:全局相機坐標系{G},局域相機坐標系{P},機械臂基座坐標系{B},機械臂末端法蘭坐標系{F}和編碼元坐標系{M}。指的是全局相機坐標系相對于局域相機坐標系的位姿關系,本文定義其為兩目視覺系統的外參數;指的是法蘭坐標系相對于局域相機坐標系的位姿關系,本文定義其為手眼關系;指的是編碼元坐標系相對于全局相機坐標系的位姿關系指的是編碼元坐標系相對于局域相機坐標系之間的位姿關系指的是法蘭坐標系相對于基座坐標系的位姿關系。
系統的工作流程如圖1 所示,可分為離線先驗局部對準階段和在線自適應全局對準階段兩個部分,離線階段包括系統標定和建立多工位作業任務表,初定位階段和精對準階段主要是基于兩目視覺系統引導的機械臂多工位作業。
技術路線如圖2 所示。首先,系統需要進行離線標定,標定主要包括兩目視覺系統的內外參標定和手眼標定,具體內容詳見第2 節。
其次,為多工位作業建立任務表。將各個對準目標放置于末端工具上,進行預對準。此時的對準目標是獨立個體,并未處于相應的工位上。局域相機采集編碼元圖像,從圖像中解算出編碼值和位姿數據,編碼值用于標識不同對準目標,記為期望位姿。于是,任務表記錄了各個對準目標與編碼值、期望位姿之間的映射關系,這就將末端工具與目標的對準過程轉化為兩目視覺系統對編碼元的識別與位姿計算的過程。任務表可視為對準目標的一種資料入庫操作,并不涉及到機械臂位姿部分。在視覺伺服領域,絕大多數情況下,期望圖像或期望位姿都是需要預先獲取或設定的。具體內容詳見第3 節。
然后,執行三階段自動對準策略。當機械臂多工位作業時,對準目標是布置在各工位上,或放置于工作場景中,其位姿是未知的,因此需要視覺系統進行識別、捕捉,獲取目標的全局位姿。機械臂視覺測量系統要根據任務表執行對準操作,分別是多工位作業的起始位姿獲取階段、全局相機遠距離初定位階段和近距離局域相機精確對準階段。具體內容詳見第4 節。

圖1 測量系統組成和工作流程Fig.1 Measurement system composition and workflow

圖2 系統技術路線Fig.2 System technical route
標定是測量系統必不可少的一個重要環節,高精度的標定結果是后續定位和對準工作的保障。與傳統的雙目立體視覺不同,本文兩目視覺系統中的兩臺相機視距不同,觀察的范圍大小不同,一般而言,當全局相機處于正常工作范圍時,局域相機處于離焦狀態,因此二者缺少公共視場。
針對本文的兩目視覺系統,采用標定方法如圖3(a)所示,全局相機和局域相機在多個視角下同時采集各自的標定板圖像,由多視圖幾何技術獲得兩臺相機的內參數,然后構建方程式


圖3 系統標定原理Fig.3 Principle of system calibration
對于本文的“Eye-in-hand”手眼系統,手眼標定的目的是獲取機械臂末端法蘭相對于局域相機的位姿關系,標定原理如圖3(b)所示。通過移動機械臂在不同位置拍攝標定板圖像,同樣能夠構建形如式(1)的方程式,最終確定手眼關系。
建立任務表是在對準目標還未處于工位上時完成的(離線階段),提前對各個對準目標進行先驗信息定義,這些信息包括編碼值、編碼元二維和三維坐標、期望位姿等。在后續機械臂執行多工位對準作業時,系統要根據任務表中的信息,依次在不同工位下,完成末端工具與目標的精確對準,建立任務表的流程如圖4 所示。
首先將對準目標放置于末端工具上,在預對準的情況下由局域相機獲取期望圖像;然后由對偶橢圓法[17]定位橢圓中心,得到8 個橢圓中心的像素坐標;使用編碼元解碼算法[14]確定其編號,并將8 個橢圓中心有序排列,排序后的橢圓中心記為{qj,j=1,2,…,8};最后,在局域相機內參數和8 個圓點中心的三維坐標{Qj,j=1,2,…,8}都已知的情況下(三維坐標事先由高精度光學儀器測量,且三維點與二維點一一對應),可根據多點透視投影理論[18](Perspective-n-point,PnP)求解編碼元坐標系{M}相對于局域相機坐標系{P}的位姿關系(包含旋轉量和平移量),稱之為期望位姿。
對每個對準目標都建立上述映射關系,最終形成一張完整的任務表,其形式如表1 所示。當對準目標被放置于工作場景中,系統就可以從此表中讀取信息,依次完成對準作業。

圖4 任務表建立過程Fig.4 Process of establishing a task table

表1 存儲任務信息的映射表Table 1 Task table recording related information
首先,全局相機對整個場景中的編碼元進行搜索,以確定多工位作業的起始位姿。在執行每一項作業過程中,系統都要經過全局相機的初定位和局域相機的精對準,才能實現末端工具與目標的精確對準。
系統需要在多個工位下執行對準任務。首先要解決的問題是,對于每一項任務,機械臂的起始位姿在何處,才能保證全局相機能夠觀察到與當前任務相關的編碼元。只有全局相機觀測到編碼元,才能進行位姿估計并引導機械臂運動。

圖5 全局相機搜索編碼元Fig.5 Process of global camera searching coded targets
機械臂起始位姿的獲取過程如圖5 所示。首先控制機械臂處于一個合適的初始位姿,使得全局相機至少能觀察到一個編碼元,然后以該編碼元為中心,沿編碼元所在平面進行多方向移動搜索,移動步長的選取要根據實際場景大小確定。以全局相機視場約為2 m×1.6 m 為例,可選擇移動步長為0.5 m。機械臂移動過程中,全局相機對場景進行觀察,若檢測到與任務表相關的編碼元,記錄下此時的機械臂位姿,作為此項任務的起始位姿。當檢測不到任何編碼元時,機械臂停止運動,全局相機完成搜索,最終得到所有任務的起始位姿,,…,。若場景中存在相距較遠的工位(兩個編碼元之間距離超過0.5 m),為避免遺漏起始位姿,在全局相機開始搜索前,就要在場景中布設輔助編碼元作為過渡處理。
確定完所有任務的起始位姿后,機械臂移動到第一項任務所對應的起始位姿處。全局相機觀察視場,由對偶橢圓法獲得編碼元上的8 個橢圓中心像素坐標,經解碼后得出編碼號,并將8 個中心坐標有序排列。如圖6 所示,此時機械臂處于起始位姿處,全局相機觀測到視場中存在3 個編碼元,搜索任務表確定當前任務所對應的編號為061015,將編號和解碼結果進行匹配,得到屬于該編碼元的二維像素坐標和三維坐標,最后根據PnP 計算編碼元坐標系{M}相對于全局相機坐標系{G}的初始位姿關系。

圖6 全局相機的初定位過程Fig.6 Initial positioning process of global camera
結合兩目視覺系統外參數計算編碼元坐標系相對于局域相機坐標系的位姿關系

式中為編碼元相對于局域相機的當前位姿,與期望位姿P MTe存在偏差,偏差值ΔT為

當前位姿和期望位姿的偏差是建立在局域相機坐標系下的,要依據此偏差量計算出機械臂的運動修正量,必須結合第2 節系統標定中的手眼關系進行計算,詳細計算過程可參考文獻[19],最終結果如下

式中:BFTi為當前法蘭坐標系相對于機械臂基坐標系的位姿關系,可以直接從機械臂自身程序讀取,為手眼關系;ΔT為偏差值。均為已知量,可以直接計算出,即下一時刻機械臂要運動到達的位姿狀態。
在機械臂運動過程中,系統以路點的形式記錄下機械臂末端的運動軌跡,記為Φ1,Φ2,…,Φn。此舉的目的是,在整個定位和對準過程中,當兩目視覺系統對編碼元的觀測出現盲區時,機械臂嘗試退回最近的路點重新定位決策。
由于全局相機的初定位精度有限,當機械臂運動后,偏差值ΔT并未達到本文設定的對準精度要求(角度偏差0.1°,位置偏差0.2 mm),于是系統自適應地切換到局域相機工作模式,進入精對準階段。

式中:Δn為旋轉軸,其模長表示旋轉角度;Δt為ΔT中的平移量。
在系統近距離對準的過程中,需要注意目標丟失問題。一般來說,編碼元丟失常由旋轉引起,平移是不會導致目標丟失問題的[20]。因此,本文對機械臂的旋轉量進行限制,一個具體做法是借助李群李代數或四元數的理論對旋轉進行插值,進而獲得中間姿態[21-22]。

圖7 精對準階段控制流程Fig.7 Flowchart of fine alignment stage
在機械臂運動的過程中,測量系統以固定頻率從機械臂讀取當前時刻的位姿數據,用來判斷是否已經運動到指定位姿。機械臂一旦調整至位姿,局域相機再次介入,采集編碼元的當前圖像,系統計算位姿偏差ΔT,如此循環,直至偏差滿足式(5)。
當測量系統完成當前對準任務后,系統在任務表中搜索下一項對準任務的信息,并確定其對應的起始位姿機械臂退出當前工位,移動到下一項任務的起始位姿處,繼續執行對準任務。需要說明的是,本文僅給出兩個位置間的直線傳遞路徑,沒有做避障等路徑規劃。在實際應用中,可通過機器人操作系統(Robot operating system,ROS)對現場環境進行建模,利用本文提供前后兩個末端位姿信息,在MoveIt 模塊中進行避障路徑規劃。
為驗證本文基于視覺的機械臂末端對準方法的有效性,搭建了如圖8 所示的測量場景。

圖8 實驗驗證場景Fig.8 Experiment setup
全局相機和局域相機均采用大恒水星系列型號為MER-502-79U3M 的國產相機,分辨率為2 448 像素×2 048 像素,全局相機使用6 mm 鏡頭,局域相機使用8 mm 鏡頭使用。光源選擇前向照明與頻閃照明相結合的方式,投射頻率與相機采集頻率同步。以UR10 機械臂為中心,在其周圍布置了3 個工位,共3 個對準目標,其所在平面高低不同、角度各異,最大角度差約為90°。機械臂的工作半徑在1 m 左右,回轉角度最大可達120°。兩目視覺系統到對準孔的初始距離在1 ~1.5 m 范圍不等。經游標卡尺測量,對準軸的直徑為9.90 mm,對準孔1、對準孔2 和對準孔3 的直徑分別為10.04、10.20 和10.98 mm。
在機械臂開始執行多工位作業前,任務表已事先建立,記錄了3 項對準任務,其編碼元編號分別為020812、010812 和031012。此外,對準任務的起始位姿也已確定。首先,機械臂對孔1 執行對準操作,全局相機在場景中搜索到020812編碼元后進行位姿估計并引導機械臂運動,然后由局域相機進行觀測,引導對準軸與孔1 完成精對準,孔軸精確對準時的機械臂狀態如圖9所示。

圖9 孔1 對準結果Fig.9 Alignment result for hole 1
統計整個對準過程中當前位姿與期望位姿的偏差量ΔT,如表2 所示。其中,Δα、Δβ和Δγ分別表示繞X、Y、Z軸的角度偏差,ΔX、ΔY和ΔZ分別表示沿X、Y、Z軸的位置偏差。表2 中的步驟0 表示初始位姿偏差;步驟1 為全局相機初定位結果,偏差大幅減小,但顯然不滿足對準精度要求;在局域相機引導下,機械臂經過3 次微調,角度和位置偏差逐漸收斂,孔軸達到對準狀態,最終的角度偏差為0.05°,位置偏差為0.17 mm。
孔2 和孔3 的對準過程與孔1 類似,對準結果如圖10 所示,孔軸能夠達到精確對準狀態,此時孔2 的角度偏差為0.05° ,位置偏差為0.12 mm;孔3 的角度偏差為0.02°,位置偏差為0.10 mm。需要說明的是,受實驗條件等因素限制,本實驗設置了3 個工位進行方法驗證,但該系統可以在更多工位的場景中執行對準、抓取等作業,機械臂的橫向跨度和徑向范圍可以進一步增大。

表2 孔1 對準過程的位姿偏差Table 2 Pose deviation of alignment process of hole 1

圖10 孔2 和孔3 的對準結果Fig.10 Alignment results for hole 2 and hole 3
為了驗證本文方法的重復性對準精度,對圖8 中的目標孔1 進行了50 次對準實驗,統計孔軸對準時的位姿偏差,包括繞X、Y、Z軸的角度偏差和沿X、Y、Z軸的位置偏差,結果如圖11所示。
從圖中可得,沿X、Y、Z軸的位置偏差量相當,繞Z軸的角度偏差明顯小于繞X、Y軸的角度偏差,這是由于本文使用的是PnP 算法進行位姿估計,PnP 對面內旋轉(繞Z軸旋轉)的位姿估計精度更高。同時,表3 給出了偏差絕對量的均值、最大值和標準差,角度偏差的均值為0.03°,標準差為0.015°,位置偏差的均值為0.12 mm,標準差為0.078 mm,說明本文對準策略的穩定性較好。

圖11 50 次對準實驗的偏差Fig.11 Deviation of 50 alignment experiments

表3 重復50 次對準實驗結果Table 3 Results of 50 alignment experiments
本文圍繞機械臂在多個工位間移動作業時需要對多目標執行對準操作這一問題展開研究,搭建了一套具有遠近視距的機械臂測量系統。在完成系統標定和事先建立任務表以記錄各對準目標相關信息的基礎上,由全局相機和局域相機進行視覺引導,將機械臂多工位作業過程分為起始位姿獲取、初定位和精對準3 個階段,最終實現機械臂末端工具與目標的精確對準。通過孔軸對準實驗說明本文方法的可行性,單個孔位重復對準標準差角度不超過0.015°,位置不超過0.078 mm;三階段對準實驗結果表明,角度誤差小于0.05°,位置誤差小于0.17 mm。在本文的基礎上,下一步的研究工作主要是改進全局相機搜索編碼元的策略和針對動態目標的跟蹤方法兩個方面。