石世鋒,葉 南,吳 哲,張麗艷
(南京航空航天大學(xué)機電學(xué)院,南京 210016)
在航空航天領(lǐng)域,機械臂常用于自動鉆鉚系統(tǒng)中的送釘和插釘[1]、孔軸零件的裝配[2]和空間在軌服務(wù)[3]等。在大多數(shù)情況下,機械臂只能按部就班地執(zhí)行事先規(guī)劃好的動作,對于任務(wù)環(huán)境中發(fā)生的變化,無法自適應(yīng)地作出調(diào)整。這種工作模式缺乏靈活性,尤其是在復(fù)雜的工業(yè)現(xiàn)場,未知的環(huán)境變化時有發(fā)生,會嚴重影響到機械臂的工作效率和精度。
為提高機械臂工作的穩(wěn)定性和靈活性,基于視覺的機械臂測量系統(tǒng)受到研究人員的廣泛關(guān)注,視覺傳感器因其精度高、成本低和適應(yīng)性好等特點成為輔助機械臂完成定位、裝配等工作的重要手段之一。國外的相關(guān)技術(shù)已經(jīng)非常成熟,德國Fraunhofer 研究所將雙目系統(tǒng)集成到銑削機器人上,在銑刀主軸上安裝反光靶點,通過雙目系統(tǒng)測量靶點位姿來反映銑刀主軸的偏差,然后對銑刀主軸的移動量進行反饋補償,提高機器人運動軌跡的精度,銑削機器人已經(jīng)成功應(yīng)用于空客A350 翼面的修配工作中[4]。國內(nèi)的研究主要集中于各大高校,以浙江大學(xué)柯映林教授團隊[5]為例,針對自動鉆孔和鉚接問題,搭建了一套配備單相機和激光指示器的機械臂系統(tǒng),將激光點作為視覺特征,以此來估計機械臂末端執(zhí)行器與孔位的位姿關(guān)系,通過設(shè)計具有自適應(yīng)控制增益的控制器來補償系統(tǒng)的不確定性,最終實現(xiàn)末端執(zhí)行器與孔位的對齊。此外,針對軸承、法蘭等圓形金屬零件的抓取問題,提出了一種基于錐體退化理論和單目視覺的橢圓特征位姿測量方法[6],在獲取零件位姿數(shù)據(jù)后由視覺伺服方法控制機械臂抓取零件。
機械臂視覺系統(tǒng)在執(zhí)行跟蹤、對接或抓取操作時,借助合作靶標進行定位和位姿測量是一種常見的解決方案:即事先在目標上設(shè)計一種尺寸、形狀已知的幾何圖形,視覺系統(tǒng)通過觀測該圖形獲得目標的位姿信息,然后把位姿反饋給機械臂驅(qū)動末端執(zhí)行器對準目標[7]。雷金周等[8]提出了一種基于單目視覺的機械臂末端對準技術(shù),通過識別和測量工件孔位附近的圓形陣列靶標,最終達到孔軸對準效果,前提條件是孔位與陣列靶標之間的位姿關(guān)系已知。Jiao 等[9]設(shè)計了一種十字型合作靶標,通過對靶標的識別和定位實施零件抓取動作。上海交通大學(xué)的胡佳興等[10]以復(fù)雜的太空桁架結(jié)構(gòu)為例,設(shè)計了一套靶標系統(tǒng)用于桁架編碼,提前進行裝配信息定義,為后續(xù)開展智能裝配提供數(shù)據(jù)庫信息支持。合作靶標應(yīng)用之廣,常用的靶標圖案一般都是由圓點、直線和圓環(huán)組合而成,合理的圖案設(shè)計和準確魯棒的識別算法為提高位姿估計精度提供保障。
目前,基于視覺的機械臂測量技術(shù)主要運用在單個工件的近距離測量工作中,當機械臂需要在多個工位間移動、對多目標執(zhí)行對準操作時,機械臂往往需要從較遠距離開始工作,這使得系統(tǒng)工作環(huán)境的橫向空間跨度變大,縱向距離變長。在機械臂由遠及近的移動過程中,相機在某些距離段會出現(xiàn)失焦、離焦現(xiàn)象,導(dǎo)致位姿測量精度降低,甚至裝配任務(wù)失敗。針對此類問題,Qi 等[11]研究了變焦相機在機械臂視覺引導(dǎo)工作中的應(yīng)用,變焦相機在機械臂移動過程中能對目標進行清晰成像,但目前變焦相機存在標定難度大、測量精度低、靈活性差等特點,極大限制了其在工業(yè)現(xiàn)場的應(yīng)用。Qin 等[12]針對大尺寸工件的機械臂裝配問題,提出了一種基于多傳感器的自動對準策略,將機械臂末端工具與目標工件的對準過程劃分為遠距離粗對準和近距離精對準兩個階段。但由于使用了多種傳感器,增加了系統(tǒng)復(fù)雜度和數(shù)據(jù)處理難度。國防科技大學(xué)的于起峰團隊[13]在研究航天器自主對接時設(shè)計了一套遠近場視覺系統(tǒng)解決方案,在追蹤目標器上安裝兩種合作靶標,分別用于遠場視覺系統(tǒng)和近場視覺系統(tǒng)的位姿測量。
在上述研究的基礎(chǔ)上,本文針對機械臂多工位作業(yè)問題,搭建了一套具有遠近視距的兩目視覺系統(tǒng),并以Eye-in-hand 形式與工業(yè)機械臂相結(jié)合。在完成系統(tǒng)標定的基礎(chǔ)上,為機械臂多工位對準作業(yè)建立任務(wù)表,然后在合作靶標的輔助下完成機械臂末端工具與目標的三階段自動對準,包括多工位起始位姿獲取、遠距離初定位和近距離精確對準。
所謂多工位對準作業(yè),就是在未知的工作場景中,機械臂系統(tǒng)需要對多個對準目標進行識別和測量,然后按照某種順序依次完成末端工具與目標的精確對準(在本文中,用孔軸配合來表征)。
本文搭建的機械臂視覺測量系統(tǒng)示意圖如圖1 所示。為了避免測量過程中產(chǎn)生遮擋問題,并提高局部測量精度,本文將相機固連在機械臂末端,以Eye-in-hand 形式搭建測量系統(tǒng)。由于系統(tǒng)需要在多個工位間完成對準任務(wù),為了標識不同工位的對準目標,需借助合作靶標對目標進行區(qū)分。本文選用陣列式編碼元[7]作為合作靶標,原因有:(1)該編碼元具備唯一身份特征;(2)該編碼元由8 個圓點構(gòu)成,可用于對準過程中的位姿測量。在機械臂由遠處及近的運動過程中,相機需要采集編碼元圖像并解算當前位姿數(shù)據(jù),但受鏡頭焦距等因素影響,單個相機無法同時在遠處和近處都清晰成像,離焦、失焦的圖像會導(dǎo)致位姿計算出現(xiàn)偏差,甚至定位失敗。因此,本文使用兩臺視距不同的工業(yè)相機構(gòu)成兩目視覺系統(tǒng)[14],其中一臺用于全局觀察定位,工作距離約1.5 m,視場大小約2 m×1.6 m,稱之為全局相機;另一臺用于近距離精確對準,工作距離約0.3 m,視場大小約0.3 m×0.25 m,稱之為局域相機。兩臺相機分別工作在不同階段,但又需要相互配合,才能保證末端工具與目標順利對準。
系統(tǒng)的坐標系和位姿關(guān)系定義如下:全局相機坐標系{G},局域相機坐標系{P},機械臂基座坐標系{B},機械臂末端法蘭坐標系{F}和編碼元坐標系{M}。指的是全局相機坐標系相對于局域相機坐標系的位姿關(guān)系,本文定義其為兩目視覺系統(tǒng)的外參數(shù);指的是法蘭坐標系相對于局域相機坐標系的位姿關(guān)系,本文定義其為手眼關(guān)系;指的是編碼元坐標系相對于全局相機坐標系的位姿關(guān)系指的是編碼元坐標系相對于局域相機坐標系之間的位姿關(guān)系指的是法蘭坐標系相對于基座坐標系的位姿關(guān)系。
系統(tǒng)的工作流程如圖1 所示,可分為離線先驗局部對準階段和在線自適應(yīng)全局對準階段兩個部分,離線階段包括系統(tǒng)標定和建立多工位作業(yè)任務(wù)表,初定位階段和精對準階段主要是基于兩目視覺系統(tǒng)引導(dǎo)的機械臂多工位作業(yè)。
技術(shù)路線如圖2 所示。首先,系統(tǒng)需要進行離線標定,標定主要包括兩目視覺系統(tǒng)的內(nèi)外參標定和手眼標定,具體內(nèi)容詳見第2 節(jié)。
其次,為多工位作業(yè)建立任務(wù)表。將各個對準目標放置于末端工具上,進行預(yù)對準。此時的對準目標是獨立個體,并未處于相應(yīng)的工位上。局域相機采集編碼元圖像,從圖像中解算出編碼值和位姿數(shù)據(jù),編碼值用于標識不同對準目標,記為期望位姿。于是,任務(wù)表記錄了各個對準目標與編碼值、期望位姿之間的映射關(guān)系,這就將末端工具與目標的對準過程轉(zhuǎn)化為兩目視覺系統(tǒng)對編碼元的識別與位姿計算的過程。任務(wù)表可視為對準目標的一種資料入庫操作,并不涉及到機械臂位姿部分。在視覺伺服領(lǐng)域,絕大多數(shù)情況下,期望圖像或期望位姿都是需要預(yù)先獲取或設(shè)定的。具體內(nèi)容詳見第3 節(jié)。
然后,執(zhí)行三階段自動對準策略。當機械臂多工位作業(yè)時,對準目標是布置在各工位上,或放置于工作場景中,其位姿是未知的,因此需要視覺系統(tǒng)進行識別、捕捉,獲取目標的全局位姿。機械臂視覺測量系統(tǒng)要根據(jù)任務(wù)表執(zhí)行對準操作,分別是多工位作業(yè)的起始位姿獲取階段、全局相機遠距離初定位階段和近距離局域相機精確對準階段。具體內(nèi)容詳見第4 節(jié)。
圖1 測量系統(tǒng)組成和工作流程Fig.1 Measurement system composition and workflow
圖2 系統(tǒng)技術(shù)路線Fig.2 System technical route
標定是測量系統(tǒng)必不可少的一個重要環(huán)節(jié),高精度的標定結(jié)果是后續(xù)定位和對準工作的保障。與傳統(tǒng)的雙目立體視覺不同,本文兩目視覺系統(tǒng)中的兩臺相機視距不同,觀察的范圍大小不同,一般而言,當全局相機處于正常工作范圍時,局域相機處于離焦狀態(tài),因此二者缺少公共視場。
針對本文的兩目視覺系統(tǒng),采用標定方法如圖3(a)所示,全局相機和局域相機在多個視角下同時采集各自的標定板圖像,由多視圖幾何技術(shù)獲得兩臺相機的內(nèi)參數(shù),然后構(gòu)建方程式
圖3 系統(tǒng)標定原理Fig.3 Principle of system calibration
對于本文的“Eye-in-hand”手眼系統(tǒng),手眼標定的目的是獲取機械臂末端法蘭相對于局域相機的位姿關(guān)系,標定原理如圖3(b)所示。通過移動機械臂在不同位置拍攝標定板圖像,同樣能夠構(gòu)建形如式(1)的方程式,最終確定手眼關(guān)系。
建立任務(wù)表是在對準目標還未處于工位上時完成的(離線階段),提前對各個對準目標進行先驗信息定義,這些信息包括編碼值、編碼元二維和三維坐標、期望位姿等。在后續(xù)機械臂執(zhí)行多工位對準作業(yè)時,系統(tǒng)要根據(jù)任務(wù)表中的信息,依次在不同工位下,完成末端工具與目標的精確對準,建立任務(wù)表的流程如圖4 所示。
首先將對準目標放置于末端工具上,在預(yù)對準的情況下由局域相機獲取期望圖像;然后由對偶橢圓法[17]定位橢圓中心,得到8 個橢圓中心的像素坐標;使用編碼元解碼算法[14]確定其編號,并將8 個橢圓中心有序排列,排序后的橢圓中心記為{qj,j=1,2,…,8};最后,在局域相機內(nèi)參數(shù)和8 個圓點中心的三維坐標{Qj,j=1,2,…,8}都已知的情況下(三維坐標事先由高精度光學(xué)儀器測量,且三維點與二維點一一對應(yīng)),可根據(jù)多點透視投影理論[18](Perspective-n-point,PnP)求解編碼元坐標系{M}相對于局域相機坐標系{P}的位姿關(guān)系(包含旋轉(zhuǎn)量和平移量),稱之為期望位姿。
對每個對準目標都建立上述映射關(guān)系,最終形成一張完整的任務(wù)表,其形式如表1 所示。當對準目標被放置于工作場景中,系統(tǒng)就可以從此表中讀取信息,依次完成對準作業(yè)。
圖4 任務(wù)表建立過程Fig.4 Process of establishing a task table
表1 存儲任務(wù)信息的映射表Table 1 Task table recording related information
首先,全局相機對整個場景中的編碼元進行搜索,以確定多工位作業(yè)的起始位姿。在執(zhí)行每一項作業(yè)過程中,系統(tǒng)都要經(jīng)過全局相機的初定位和局域相機的精對準,才能實現(xiàn)末端工具與目標的精確對準。
系統(tǒng)需要在多個工位下執(zhí)行對準任務(wù)。首先要解決的問題是,對于每一項任務(wù),機械臂的起始位姿在何處,才能保證全局相機能夠觀察到與當前任務(wù)相關(guān)的編碼元。只有全局相機觀測到編碼元,才能進行位姿估計并引導(dǎo)機械臂運動。
圖5 全局相機搜索編碼元Fig.5 Process of global camera searching coded targets
機械臂起始位姿的獲取過程如圖5 所示。首先控制機械臂處于一個合適的初始位姿,使得全局相機至少能觀察到一個編碼元,然后以該編碼元為中心,沿編碼元所在平面進行多方向移動搜索,移動步長的選取要根據(jù)實際場景大小確定。以全局相機視場約為2 m×1.6 m 為例,可選擇移動步長為0.5 m。機械臂移動過程中,全局相機對場景進行觀察,若檢測到與任務(wù)表相關(guān)的編碼元,記錄下此時的機械臂位姿,作為此項任務(wù)的起始位姿。當檢測不到任何編碼元時,機械臂停止運動,全局相機完成搜索,最終得到所有任務(wù)的起始位姿,,…,。若場景中存在相距較遠的工位(兩個編碼元之間距離超過0.5 m),為避免遺漏起始位姿,在全局相機開始搜索前,就要在場景中布設(shè)輔助編碼元作為過渡處理。
確定完所有任務(wù)的起始位姿后,機械臂移動到第一項任務(wù)所對應(yīng)的起始位姿處。全局相機觀察視場,由對偶橢圓法獲得編碼元上的8 個橢圓中心像素坐標,經(jīng)解碼后得出編碼號,并將8 個中心坐標有序排列。如圖6 所示,此時機械臂處于起始位姿處,全局相機觀測到視場中存在3 個編碼元,搜索任務(wù)表確定當前任務(wù)所對應(yīng)的編號為061015,將編號和解碼結(jié)果進行匹配,得到屬于該編碼元的二維像素坐標和三維坐標,最后根據(jù)PnP 計算編碼元坐標系{M}相對于全局相機坐標系{G}的初始位姿關(guān)系。
圖6 全局相機的初定位過程Fig.6 Initial positioning process of global camera
結(jié)合兩目視覺系統(tǒng)外參數(shù)計算編碼元坐標系相對于局域相機坐標系的位姿關(guān)系
式中為編碼元相對于局域相機的當前位姿,與期望位姿P MTe存在偏差,偏差值ΔT為
當前位姿和期望位姿的偏差是建立在局域相機坐標系下的,要依據(jù)此偏差量計算出機械臂的運動修正量,必須結(jié)合第2 節(jié)系統(tǒng)標定中的手眼關(guān)系進行計算,詳細計算過程可參考文獻[19],最終結(jié)果如下
式中:BFTi為當前法蘭坐標系相對于機械臂基坐標系的位姿關(guān)系,可以直接從機械臂自身程序讀取,為手眼關(guān)系;ΔT為偏差值。均為已知量,可以直接計算出,即下一時刻機械臂要運動到達的位姿狀態(tài)。
在機械臂運動過程中,系統(tǒng)以路點的形式記錄下機械臂末端的運動軌跡,記為Φ1,Φ2,…,Φn。此舉的目的是,在整個定位和對準過程中,當兩目視覺系統(tǒng)對編碼元的觀測出現(xiàn)盲區(qū)時,機械臂嘗試退回最近的路點重新定位決策。
由于全局相機的初定位精度有限,當機械臂運動后,偏差值ΔT并未達到本文設(shè)定的對準精度要求(角度偏差0.1°,位置偏差0.2 mm),于是系統(tǒng)自適應(yīng)地切換到局域相機工作模式,進入精對準階段。
式中:Δn為旋轉(zhuǎn)軸,其模長表示旋轉(zhuǎn)角度;Δt為ΔT中的平移量。
在系統(tǒng)近距離對準的過程中,需要注意目標丟失問題。一般來說,編碼元丟失常由旋轉(zhuǎn)引起,平移是不會導(dǎo)致目標丟失問題的[20]。因此,本文對機械臂的旋轉(zhuǎn)量進行限制,一個具體做法是借助李群李代數(shù)或四元數(shù)的理論對旋轉(zhuǎn)進行插值,進而獲得中間姿態(tài)[21-22]。
圖7 精對準階段控制流程Fig.7 Flowchart of fine alignment stage
在機械臂運動的過程中,測量系統(tǒng)以固定頻率從機械臂讀取當前時刻的位姿數(shù)據(jù),用來判斷是否已經(jīng)運動到指定位姿。機械臂一旦調(diào)整至位姿,局域相機再次介入,采集編碼元的當前圖像,系統(tǒng)計算位姿偏差ΔT,如此循環(huán),直至偏差滿足式(5)。
當測量系統(tǒng)完成當前對準任務(wù)后,系統(tǒng)在任務(wù)表中搜索下一項對準任務(wù)的信息,并確定其對應(yīng)的起始位姿機械臂退出當前工位,移動到下一項任務(wù)的起始位姿處,繼續(xù)執(zhí)行對準任務(wù)。需要說明的是,本文僅給出兩個位置間的直線傳遞路徑,沒有做避障等路徑規(guī)劃。在實際應(yīng)用中,可通過機器人操作系統(tǒng)(Robot operating system,ROS)對現(xiàn)場環(huán)境進行建模,利用本文提供前后兩個末端位姿信息,在MoveIt 模塊中進行避障路徑規(guī)劃。
為驗證本文基于視覺的機械臂末端對準方法的有效性,搭建了如圖8 所示的測量場景。
圖8 實驗驗證場景Fig.8 Experiment setup
全局相機和局域相機均采用大恒水星系列型號為MER-502-79U3M 的國產(chǎn)相機,分辨率為2 448 像素×2 048 像素,全局相機使用6 mm 鏡頭,局域相機使用8 mm 鏡頭使用。光源選擇前向照明與頻閃照明相結(jié)合的方式,投射頻率與相機采集頻率同步。以UR10 機械臂為中心,在其周圍布置了3 個工位,共3 個對準目標,其所在平面高低不同、角度各異,最大角度差約為90°。機械臂的工作半徑在1 m 左右,回轉(zhuǎn)角度最大可達120°。兩目視覺系統(tǒng)到對準孔的初始距離在1 ~1.5 m 范圍不等。經(jīng)游標卡尺測量,對準軸的直徑為9.90 mm,對準孔1、對準孔2 和對準孔3 的直徑分別為10.04、10.20 和10.98 mm。
在機械臂開始執(zhí)行多工位作業(yè)前,任務(wù)表已事先建立,記錄了3 項對準任務(wù),其編碼元編號分別為020812、010812 和031012。此外,對準任務(wù)的起始位姿也已確定。首先,機械臂對孔1 執(zhí)行對準操作,全局相機在場景中搜索到020812編碼元后進行位姿估計并引導(dǎo)機械臂運動,然后由局域相機進行觀測,引導(dǎo)對準軸與孔1 完成精對準,孔軸精確對準時的機械臂狀態(tài)如圖9所示。
圖9 孔1 對準結(jié)果Fig.9 Alignment result for hole 1
統(tǒng)計整個對準過程中當前位姿與期望位姿的偏差量ΔT,如表2 所示。其中,Δα、Δβ和Δγ分別表示繞X、Y、Z軸的角度偏差,ΔX、ΔY和ΔZ分別表示沿X、Y、Z軸的位置偏差。表2 中的步驟0 表示初始位姿偏差;步驟1 為全局相機初定位結(jié)果,偏差大幅減小,但顯然不滿足對準精度要求;在局域相機引導(dǎo)下,機械臂經(jīng)過3 次微調(diào),角度和位置偏差逐漸收斂,孔軸達到對準狀態(tài),最終的角度偏差為0.05°,位置偏差為0.17 mm。
孔2 和孔3 的對準過程與孔1 類似,對準結(jié)果如圖10 所示,孔軸能夠達到精確對準狀態(tài),此時孔2 的角度偏差為0.05° ,位置偏差為0.12 mm;孔3 的角度偏差為0.02°,位置偏差為0.10 mm。需要說明的是,受實驗條件等因素限制,本實驗設(shè)置了3 個工位進行方法驗證,但該系統(tǒng)可以在更多工位的場景中執(zhí)行對準、抓取等作業(yè),機械臂的橫向跨度和徑向范圍可以進一步增大。
表2 孔1 對準過程的位姿偏差Table 2 Pose deviation of alignment process of hole 1
圖10 孔2 和孔3 的對準結(jié)果Fig.10 Alignment results for hole 2 and hole 3
為了驗證本文方法的重復(fù)性對準精度,對圖8 中的目標孔1 進行了50 次對準實驗,統(tǒng)計孔軸對準時的位姿偏差,包括繞X、Y、Z軸的角度偏差和沿X、Y、Z軸的位置偏差,結(jié)果如圖11所示。
從圖中可得,沿X、Y、Z軸的位置偏差量相當,繞Z軸的角度偏差明顯小于繞X、Y軸的角度偏差,這是由于本文使用的是PnP 算法進行位姿估計,PnP 對面內(nèi)旋轉(zhuǎn)(繞Z軸旋轉(zhuǎn))的位姿估計精度更高。同時,表3 給出了偏差絕對量的均值、最大值和標準差,角度偏差的均值為0.03°,標準差為0.015°,位置偏差的均值為0.12 mm,標準差為0.078 mm,說明本文對準策略的穩(wěn)定性較好。
圖11 50 次對準實驗的偏差Fig.11 Deviation of 50 alignment experiments
表3 重復(fù)50 次對準實驗結(jié)果Table 3 Results of 50 alignment experiments
本文圍繞機械臂在多個工位間移動作業(yè)時需要對多目標執(zhí)行對準操作這一問題展開研究,搭建了一套具有遠近視距的機械臂測量系統(tǒng)。在完成系統(tǒng)標定和事先建立任務(wù)表以記錄各對準目標相關(guān)信息的基礎(chǔ)上,由全局相機和局域相機進行視覺引導(dǎo),將機械臂多工位作業(yè)過程分為起始位姿獲取、初定位和精對準3 個階段,最終實現(xiàn)機械臂末端工具與目標的精確對準。通過孔軸對準實驗說明本文方法的可行性,單個孔位重復(fù)對準標準差角度不超過0.015°,位置不超過0.078 mm;三階段對準實驗結(jié)果表明,角度誤差小于0.05°,位置誤差小于0.17 mm。在本文的基礎(chǔ)上,下一步的研究工作主要是改進全局相機搜索編碼元的策略和針對動態(tài)目標的跟蹤方法兩個方面。