徐德
視覺可以為機器人提供外部信息,是機器人的重要信息源,是機器人實現(xiàn)自動作業(yè)以及自主作業(yè)的重要保障.因此,視覺在機器人領域具有重要的地位和作用.視覺伺服是利用視覺信息對機器人或者相機位姿進行的伺服控制,其目標是控制機器人或者相機快速到達期望的位姿.
視覺伺服涉及視覺信息與運動的映射、特征選擇、控制律設計、視覺系統(tǒng)標定等問題.早在1996年,Hutchinson等[1]撰寫了視覺伺服的教程,將視覺伺服按照控制系統(tǒng)的構成方式分為基于位置的視覺伺服(Position-based visual servo)、基于圖像的視覺伺服(Image-based visual servo).其中,基于位置的視覺伺服在3D笛卡爾空間構成閉環(huán)控制系統(tǒng),利用視覺信息獲得被觀測對象在笛卡爾空間的位置和姿態(tài),與期望的位置和姿態(tài)相比較形成誤差,根據(jù)該誤差設計控制律,控制機器人或者相機運動;基于圖像的視覺伺服在2D圖像空間構成閉環(huán)控制系統(tǒng),利用視覺信息獲得被觀測對象在圖像空間的特征,與期望的圖像特征相比較形成誤差,根據(jù)該誤差設計控制律,控制機器人或者相機運動.1999年,Malis等[2]提出了混合視覺伺服方法.混合視覺伺服包含了在3D笛卡爾空間構成的閉環(huán)控制系統(tǒng)和2D圖像空間構成的閉環(huán)控制系統(tǒng),一部分自由度采用基于位置的視覺伺服,另一部分自由度采用基于圖像的視覺伺服.混合視覺伺服結合了基于位置和基于圖像的視覺伺服,既含有3D空間又含有2D空間的伺服控制,所以又稱為2.5D視覺伺服[3].2003年,Hashimoto[4]對工業(yè)機器人基于視覺的控制方法進行了綜述,Kragic等[5]對基于位置、基于圖像的視覺伺服方法進行了工業(yè)機器人的抓取實驗,Gans等[6]對不同的視覺伺服系統(tǒng)的性能進行了測試.基于位置的視覺伺服在3D笛卡爾空間設計控制律,能夠保證系統(tǒng)的全局漸近穩(wěn)定,但相機標定誤差和機器人的模型誤差對控制精度具有明顯影響.基于圖像的視覺伺服在2D圖像空間構成閉環(huán),對相機標定誤差和機器人的模型誤差不敏感,具有很高的穩(wěn)態(tài)控制精度,但控制系統(tǒng)只是局部穩(wěn)定,對于大幅度旋轉的伺服控制效果較差[6],而且圖像雅可比矩陣的奇異性也會導致伺服控制失敗.混合視覺伺服結合了基于位置和基于圖像的視覺伺服的優(yōu)點,利用基于位置的視覺伺服對姿態(tài)進行控制,可防止姿態(tài)變化過大導致的伺服失敗;利用基于圖像的視覺伺服對位置進行控制,可提高位置控制精度;但單應性矩陣(Homography matrix)的估計對圖像噪聲敏感,且需要對單應性矩陣進行分解.2005年,Marchand等[7]設計了視覺伺服平臺的Matlab工具箱,Mariottini等[8]設計了基于極線幾何視覺伺服的Matlab工具箱,為視覺伺服系統(tǒng)的設計和仿真提供了便利.2006年,Chaumette和Hutchinson[9?10]再度撰寫了視覺伺服的教程,分別介紹了視覺伺服的基本方法和先進方法,基本方法包括基于位置的視覺伺服、基于圖像的視覺伺服,先進方法包括2.5D混合視覺伺服、全分離式視覺伺服(Partitioned visual servo)、開關式視覺伺服(Switching visual servo)等.其中,全分離式視覺伺服選擇6個特征,對線速度和角速度的6個自由度分別進行控制.開關式視覺伺服采用開關控制器選擇當前的有效控制器[11?12],在誤差較大時選用基于位置的視覺伺服,在誤差較小時采用基于圖像的視覺伺服.2010年,Staniak等[13]以工業(yè)機器人趨近與抓取靜態(tài)對象的任務為背景,分別針對Eye-in-hand和Eye-to-hand視覺系統(tǒng),對基于位置、基于圖像、開關式視覺伺服進行了分析和實驗,對影響穩(wěn)態(tài)誤差的因素進行了分析和驗證.2011年Janabi-Sharif i等[14]對基于位置和基于圖像的視覺伺服方法進行了對比,包括系統(tǒng)穩(wěn)定性、魯棒性、靈敏性和在笛卡爾空間與圖像空間的動態(tài)性能.兩者均能夠局部漸近穩(wěn)定,而且對建模誤差局部魯棒,但笛卡爾空間與圖像空間的軌跡以及時間收斂性受到相機、對象和機器人建模誤差的影響.2015年,賈丙西等[15]對機器人視覺伺服進行了綜述,重點介紹了視覺系統(tǒng)中改善動態(tài)性能和處理噪聲的方法.
視覺系統(tǒng)常用的構成方式包括單目視覺和雙目立體視覺.雖然雙目立體視覺能夠測量特征點的三維坐標,便于構成基于位置的視覺伺服控制系統(tǒng),但是其內外參數(shù)標定比較繁雜,與單目視覺相比成本較高,使用與維護的方便性較差.單目視覺具有成本較低、使用與維護較方便等特點,受到機器人視覺領域研究人員的普遍重視,近年來針對視覺伺服的研究主要面向單目視覺系統(tǒng).因此,本文針對單目視覺系統(tǒng)討論視覺伺服.此外,現(xiàn)有的關于機器人視覺伺服的綜述或者教程,如Hutchinson等的視覺伺服教程[1,9?10],主要從視覺信息與運動映射和控制律設計的角度討論視覺伺服,較少涉及特征選擇、視覺系統(tǒng)標定等問題.為了更好地體現(xiàn)不同的視覺伺服方法的特點,本文從視覺信息與運動映射、控制律設計、特征選擇、視覺系統(tǒng)標定等角度介紹視覺伺服近年來的研究進展.
本文內容安排如下:第1節(jié)介紹了視覺信息與運動映射關系,包括交互矩陣、單應性矩陣、基本矩陣.交互矩陣描述相機運動與特征變化之間的關系,單應性矩陣描述兩視點之間的位姿關系,基本矩陣描述兩視點之間的極線約束.第2節(jié)分別針對不同的誤差表征方式,討論了不同視覺伺服方法的控制律設計.第3節(jié)對視覺伺服的關鍵問題進行了討論,包括相機選擇、特征選擇、誤差表征、深度估計、位姿解耦、系統(tǒng)穩(wěn)定性、系統(tǒng)標定等.第4節(jié)簡要介紹了視覺伺服的部分典型應用,給出了未來發(fā)展的幾個方向.最后,對全文進行了總結.
視覺信息與運動映射關系的獲取,主要包括交互矩陣、單應性矩陣、基本矩陣等方式.
交互矩陣(Interaction matrix)描述相機運動與圖像特征變化之間的關系,又稱為圖像雅可比矩陣(Image Jacobian matrix).早在1992年,Chaumette等[16]推導了點、線和圓特征的交互矩陣.空間圓的交互矩陣較復雜,此處從略.
對于笛卡爾空間的特征點,其3D空間位置在攝像機坐標系中表示為(X,Y,Z),其在相機焦距歸一化成像平面上的成像點在攝像機坐標系中表示為(x,y,1),則點特征的交互矩陣為[16]:
其中,Lp是點特征的交互矩陣.
將直線表示為兩個空間平面的交線:
其中,a1、b1、c1、d1、a2、b2、c2、d2為兩個平面的平面方程參數(shù).d1和d2不同時為零.
直線特征的交互矩陣見式(3).其中,ρ和θ為3D空間直線在相機焦距歸一化成像平面上的成像直線的極坐標方程參數(shù).時i=1,d1=0時i=2.Lθ和Lρ分別是θ和ρ的交互矩陣.
由式(1)和式(3)可知,點、直線特征的交互矩陣是分別基于在相機焦距歸一化成像平面上的成像點坐標和直線參數(shù)的.因此,需要對相機進行標定,獲得相機的內參數(shù).然后,根據(jù)圖像坐標和相機內參數(shù),計算出在相機焦距歸一化成像平面上的成像點坐標.從式(1)可以發(fā)現(xiàn),點特征交互矩陣Lp與深度Z相關.在相機內參數(shù)已知的情況下,x和y可以由圖像坐標和相機內參數(shù)計算獲得.如果點在相機坐標系中的深度Z已知,那么Lp就可以確定.因此,如何估計深度Z成為獲取點特征的交互矩陣的關鍵.從式(3)可以發(fā)現(xiàn),求取直線特征的交互矩陣時,需要已知含有該直線的平面在相機坐標系中的平面方程.由于含有直線的平面在相機坐標系中的平面方程難以獲得,制約了直線特征的交互矩陣在機器人視覺伺服中的應用.
對于虛擬現(xiàn)實而言,可以在相機坐標系中預先設定一個含有直線的平面,即含有直線的平面在相機坐標系中的平面方程是已知的.因此,直線特征的交互矩陣能夠在虛擬現(xiàn)實中得到較好的應用.例如,2006年Comport等[17]以當前圖像特征作為期望值,以當前相機位姿下場景投影到圖像的特征作為當前值,通過視覺伺服控制攝像機的運動,使得圖像特征的偏差最小化,從而實現(xiàn)虛擬現(xiàn)實中相機的位姿估計.Comport等采用了點到直線的距離作為特征,其中的點是在圖像上的給定點,其圖像坐標保持不變.
為了克服含有直線的平面在相機坐標系中的平面方程的制約,文獻[18]利用直線上相鄰點的極坐標推導了直線特征的交互矩陣.從成像平面坐標系原點到直線作垂線,得到垂線與直線的交點即垂點.利用直線上垂點及其兩側小鄰域內對稱的兩點,推導出了直線特征的交互矩陣,見式(4).其中,Z0是垂足在相機坐標系中的深度,Z1和Z2是垂足的兩個鄰點在相機坐標系中的深度,ρ和θ是直線在相機焦距歸一化成像平面上的成像直線的極坐標方程參數(shù),ρ1是成像平面坐標系原點到垂足的一個鄰點的距離,Lθvx和Lθvy是Z1、Z2、ρ和θ的函數(shù),Lρ和Lθ分別是ρ和θ的交互矩陣.
對于垂直于攝像機光軸的直線,Z1=Z2,得到Lθvx=0,Lθvy=0.此時,式(4)的Lθ改寫為:
式(5)交互矩陣與深度無關,而且與平移無關.由式(3)、式(4)和式(5)可以發(fā)現(xiàn),相機的旋轉運動與θ變化之間的關系與深度無關,即旋轉運動與θ的交互矩陣Lθw與深度無關,見式(6).因此,利用相機焦距歸一化成像平面上直線參數(shù)ρ和θ計算出式(6)的旋轉交互矩陣Lθw,可以用于姿態(tài)控制.
此外,Chaumette等[19?20]假設特征點均處于同一個平面內,基于點特征的交互矩陣以及平面方程,對各階矩的交互矩陣進行了推導,并推導出了橢圓、直線的矩的交互矩陣.Chaumette等采用基于二階矩的方向和兩個不變量矩,實現(xiàn)了對姿態(tài)的視覺伺服控制[19].2012年Lin等[21]定義了4個最低矩不變量,實現(xiàn)了基于模型的圖像跟蹤.基于矩的交互矩陣的視覺伺服,不需要特征提取與匹配,魯棒性強[22].
單應性矩陣描述了兩個視點之間的幾何關系,也是攝像機坐標系中在焦距歸一化成像平面上特征點的位置矢量之間的關系.在相機坐標系中,兩個視點下的特征點在焦距歸一化成像平面上的坐標之間存在如下關系[3,23]:
其中,m=[x y1]T是特征點在當前視點下在焦距歸一化成像平面上的位置矢量,m?=[x?y?1]T是特征點在期望視點下在焦距歸一化成像平面上的位置矢量,Z是特征點在當前視點下的深度,Z?是特征點在期望視點下的深度,H是3×3的單應性矩陣.
利用兩個視點下所采集的圖像中的4組及以上匹配特征點,可以構成一系列式(7)所示的方程,利用最小二乘法求解獲得單應性矩陣.單應性矩陣中只含外參數(shù),可以表示為:
其中,n?是期望視點的相機坐標系原點到平面Π的單位法向量,d?是期望視點的相機坐標系原點到平面Π的距離.R是當前視點到期望視點的相機坐標系之間的旋轉矩陣,t是當前視點到期望視點的相機坐標系之間的平移向量.Π是含有特征點的平面.
將H除以第3行第3列的元素,得到He.對He進行奇異值分解,求解出R和e與t相差一個比例因子.R用于姿態(tài)控制,te用于位置控制,構成基于位置的視覺伺服控制系統(tǒng).
由兩個視點之間的極線幾何約束,得到特征點圖像坐標的關系[23]:
基本矩陣F為3×3矩陣,包含了內外參數(shù),形成兩幅圖像之間的極線幾何約束.利用8組及以上的匹配特征點得到的式(9)所示方程,采用最小二乘法估計出基本矩陣F.得到基本矩陣后,結合內參數(shù)矩陣,計算出本質矩陣E.
其中,A是相機的內參數(shù)矩陣.
本質矩陣只含外參數(shù),是在焦距歸一化成像平面上的幾何約束.由本質矩陣E,計算出R和te,分別用于姿態(tài)控制和位置控制,構成基于位置的視覺伺服控制系統(tǒng).
本節(jié)按照視覺信息與運動映射關系的獲取方式,對視覺伺服控制律的設計進行介紹.
2.1.1 基于點交互矩陣的傳統(tǒng)方法
傳統(tǒng)的基于點交互矩陣的視覺伺服,選擇n個特征點在相機的焦距歸一化成像平面上的坐標作為圖像特征,利用圖像特征偏差和交互矩陣控制相機的運動.當特征點數(shù)量n≥4時,其控制律見式(11),可使偏差按照指數(shù)規(guī)律下降[9,24].
其中,是相機的線速度,是相機的角速度,λ>0是系數(shù),是特征點的圖像坐標偏差,是n個特征點交互矩陣Lpn的偽逆矩陣.
傳統(tǒng)的基于點交互矩陣的視覺伺服,屬于基于圖像的視覺伺服.計算交互矩陣Lpn時,需要用到特征點在相機坐標系的深度,涉及到特征點的深度獲取.該深度信息可以根據(jù)相機的運動進行在線估計,但難以獲得準確值.計算Lpn時,可以采用在線估計的深度,也可以采用期望視點下的深度.文獻[9]分別采用在線估計深度計算的Lpn、期望視點下的深度計算的L?pn、以及二者的均值 (Lpn+L?pn)/2,進行了視覺伺服實驗,三種情況下控制系統(tǒng)均收斂.其中,采用Lpn的視覺伺服收斂較快.
傳統(tǒng)的基于點交互矩陣的視覺伺服,在旋轉量較大時存在相機后退問題(Camera retreat),即相機沿法線方向離開目標然后返回,屬于無效運動[25].針對相機后退問題,Iwatsuki等[26]推導了柱面坐標系下的點交互矩陣,基于柱面坐標的視覺伺服可消除純旋轉時的相機后退現(xiàn)象.此外,在rank(Lpn)<6時,式(11)控制律會造成相機速度過大,從而導致目標丟失.
2000年,Kelly等[27]將點特征的交互矩陣與機械臂的雅可比矩陣相結合,構成機器人的圖像雅可比矩陣.利用圖像雅可比矩陣的轉置,將圖像空間的特征偏差轉換為關節(jié)空間的力矩.在兩連桿機器人上進行了控制實驗,取得了較好的效果.
2.1.2 基于點交互矩陣的分離式視覺伺服
2001年,Corke和Hutchinson[25]提出了一種分離式視覺伺服方法.將與Z方向相關的2個自由度的控制分離出來,其他的4個自由度利用基于交互矩陣的方法進行控制.由式(1),得:
其中,是圖像特征的變化率,Lpxy是與X、Y方向運動相關的交互矩陣,Lpz是與Z方向運動相關的交互矩陣.(vx,vy,vz)和(ωx,ωy,ωz)分別為相機的線速度和角速度.一個點的交互矩陣Lpxy和Lpz見式(13).
由式(12),得:
其中,L+pxy是Lpxy的偽逆矩陣.
利用圖像空間特征點連線與水平方向的夾角作為繞Z軸旋轉的特征,用于確定ωz.利用特征點構成的多邊形面積作為沿Z軸平移的特征,用于確定vz.獲得vz和ωz后,根據(jù)式(14)確定X、Y方向的運動線速度和角速度.該方法可以消除傳統(tǒng)方法的相機后退問題[25].
2016年,Xu等[28]將旋轉和平移控制律分開設計.利用式(11)計算出相機的角速度ω,然后利用式(15)計算線速度v.
2.1.3 基于多種特征交互矩陣的分離式視覺伺服
Tahri等[19]和Chaumette[20]選擇6個組合矩特征分別控制相機的6個自由度,實現(xiàn)了解耦的視覺伺服.以對象的重心表征沿X、Y軸平移,以對象的圖像面積作為表征深度Z的特征,采用橢圓長軸方向表征繞Z軸的旋轉,以基于二階矩的兩個不變量矩的組合分別控制繞X、Y軸的旋轉.該方法的優(yōu)點是針對對象的圖像計算矩,不需要點匹配,魯棒性較強.缺點是旋轉控制并不能完全解耦.在對象表面平行于成像平面時,繞X、Y軸的旋轉是解耦的,但對象表面不平行于成像平面時,旋轉控制仍然存在耦合問題.
2008年,徐德等[29]針對矩形對象,選擇其圖像重心表征沿X、Y軸平移,以對象的圖像面積作為表征深度Z的特征,以矩形兩長邊中心線的方向角表征繞Z軸的旋轉,分別以長邊和短邊的變化表征繞X、Y軸的旋轉.利用上述6個特征分別控制相機的6個自由度,能夠實現(xiàn)解耦的視覺伺服.2012年,Anh等[30]采用SURF特征搜索并分割對象,將對象的區(qū)域標注為四邊形ROI(Region of interest),采用上述6個特征分別控制機械臂末端相機的6個自由度,實現(xiàn)了解耦的視覺伺服,能夠控制機械臂快速對對象進行趨近和對準.這種方法的優(yōu)點是特征與運動之間的關系比較簡單、直觀,缺點是限制條件比較苛刻,對象在期望位姿下的成像必需為矩形且矩形的邊需要平行于成像平面的x、y軸,應用受到極大的制約.此外,這種方法的解耦并不完善,導致運動過程中存在較大的波動.
2017年,Xu等[31]提出了一種采用多種特征的分離式視覺伺服方法.對點、線、面特征的靈敏性進行了分析,點特征對沿相機坐標系X、Y軸的平移靈敏性高,面特征對沿相機坐標系Z軸的運動非常靈敏,直線特征對旋轉非常靈敏.因此,采用式(6)所示的直線交互矩陣控制旋轉運動,設計了旋轉運動控制律.采用點特征和面特征的交互矩陣控制平移運動,并對旋轉運動導致的平移在平移控制律中進行了補償.旋轉和平移控制律分開設計,選擇的靈敏特征有利于保證交互矩陣的秩為3,消除了交互矩陣的奇異問題.此外,旋轉運動對平移運動的補償,有利于將對象保持在相機的視野中,避免視覺伺服失敗問題.
2.2.1 基于單應性矩陣的傳統(tǒng)方法
利用單應性矩陣分解獲得姿態(tài)矩陣R和帶比例因子的平移矢量e后,將R轉換為轉軸和轉角θ表示的姿態(tài).基于單應性矩陣的傳統(tǒng)方法為基于位置的視覺伺服[9],視覺伺服的目標是使得相機從當前視點運動到期望視點.選擇兩個視點之間的位移矢量和軸角θ作為特征.在當前相機坐標系下,位置誤差為,姿態(tài)誤差為θ.相機運動與特征之間的交互矩陣為:
其中,
其中,I3是3×3的單位陣,是的反斜對稱矩陣.
可見,在相機坐標系下,基于單應性矩陣的傳統(tǒng)視覺伺服方法為解耦控制.相機在笛卡爾空間的運動軌跡為直線.但隨著相機姿態(tài)的變化,對象上的有些特征點可能出視野,會導致視覺伺服失敗.此外,單應性矩陣的誤差以及分解為R和te時產生的誤差,會導致系統(tǒng)存在穩(wěn)態(tài)誤差.
2.2.2 基于單應性矩陣的解耦控制
2007年Benhimane等[32]提出了一種直接利用單應性矩陣的解耦視覺伺服方法.該方法不需要對單應性矩陣進行分解,在圖像空間實現(xiàn)視覺伺服.利用單應性矩陣構造了分別描述位移和姿態(tài)誤差的特征,見式(20).基于這些特征設計的控制律見式(21),可實現(xiàn)控制系統(tǒng)的局部穩(wěn)定.2014年Plinval等[33]利用上述方法,實現(xiàn)了無人直升機對地面目標的視覺跟蹤.2015年Jia等[34]利用上述方法,結合迭代學習控制實現(xiàn)了工業(yè)機器人軌跡跟蹤.
當相機到達期望視點的位姿時,R=I3,te=0,此時H=I3.由式(20)可知,此時位移誤差ev=0,姿態(tài)誤差ew=0.這說明在穩(wěn)態(tài)時,采用式(20)描述的誤差與實際相符.
將式(22)中的H代入式(20),得到:
在R=I3,時,解耦后應該沒有旋轉.但式(23)表明,利用H?HT表征姿態(tài)誤差時,會導致相機繞X、Y軸的旋轉.因此,該方法實際上并沒有實現(xiàn)位置與姿態(tài)的真正解耦,在視覺伺服過程中存在姿態(tài)與位置的耦合問題,會導致姿態(tài)控制上有超調.
為解決上述問題,2012年Silveira等[35]對H進行了重新定義,令H=A?1GA,G=ARA?1.于是,H與R等價.將式(20)的第1式位置誤差修改為e,此處的是極點的圖像坐標.
2.2.3 2.5D視覺伺服
1999年Malis等[2]提出了一種基于單應性矩陣的混合視覺伺服方法,在3D笛卡爾空間進行姿態(tài)控制,在2D圖像空間進行位置控制.定義了特征點在焦距歸一化成像平面上的擴展坐標,在當前視點下的擴展坐標為,在期望視點下的擴展坐標為.擴展坐標用于在圖像空間的位置控制.由單應性矩陣H分解出姿態(tài)矩陣R,轉換為用于姿態(tài)控制[36].系統(tǒng)的誤差定義為.相機運動速度與誤差之間的交互矩陣為
其中,Lev是相機線速度與擴展坐標之間的交互矩陣,Lew是相機角速度與擴展坐標之間的交互矩陣.
設計的控制律為:
顯然,混合視覺伺服需要獲得兩個視點之間的姿態(tài)矩陣R.2000年,Malis等[3]介紹了估計兩個視點之間位姿的方法,包括8點法估計基本矩陣、虛擬平面法估計單應性矩陣等.獲得基本矩陣或者單應性矩陣后,經過分解獲得姿態(tài)矩陣R.針對多特征點問題,Malis等[37]于2003年給出了輪廓上多特征點的視覺伺服方法,位置控制部分仍然采用3×3的交互矩陣Lev和Lew,交互矩陣的每個元素采用單點特征交互矩陣相應元素的均值.為解決特征選擇與匹配問題,2005年Malis等[38]將視覺跟蹤和視覺伺服技術相結合,提出了基于模板的視覺伺服.將ESM(Efficient second-order minimization)算法用于視覺跟蹤,在幀間偏移量較大的情況下,可以實現(xiàn)基于模板的跟蹤以及對單應性矩陣的實時估計.
2005年 Chen等[39?40]針對 Eye-in-hand和Eye-to-hand視覺系統(tǒng),采用上述2.5D視覺伺服方法設計了控制系統(tǒng).Chen等分別給出了開環(huán)系統(tǒng)和閉環(huán)系統(tǒng),開環(huán)系統(tǒng)是攝像機與目標相對運動的特性,閉環(huán)系統(tǒng)是增加控制律后的系統(tǒng).利用基于Lyapunov穩(wěn)定性的自適應控制策略補償對象模型未知和深度未知帶來的影響,實現(xiàn)了機器人末端對笛卡爾空間期望軌跡的有效跟蹤.
2009年,Hu等[41]在相機的內參數(shù)未知情況下,利用消失點計算出單應性矩陣.由于視點到消失點的距離為∞,由式(8)可知,此時計算出的單應性矩陣就是攝像機兩個視點之間的相對姿態(tài)矩陣.將姿態(tài)表示為四元數(shù)[41?42],設計了高增益魯棒控制器用于姿態(tài)控制.設計了用于位置控制的自適應控制器,針對未知的深度信息和攝像機內參數(shù)進行了補償.
Dixon等[43?44]將單應性矩陣H用于移動機器人控制,只考慮移動機器人在平面內的2自由度平移和1自由度旋轉.估計H后,分解獲得θ和位置偏差.設計控制律時,先計算角速度,然后基于角速度計算線速度.Lopez-Nicolas等[45]定義了移動機器人的3種路徑,分別為旋轉、直線、對數(shù)螺旋曲線路徑.直接利用單應性矩陣的元素,針對3種路徑設計多階段式的控制算法.
基于單應性矩陣的2.5D視覺伺服,單應性矩陣的估計誤差以及分解出R時產生的誤差,會導致系統(tǒng)存在穩(wěn)態(tài)誤差.為此,2011年Zhang等[46]不采用單應性矩陣,而是在考慮移動機器人的2自由度平移和1自由度旋轉的約束情況下,直接估計旋轉角和平移量.然后,旋轉采用基于位置的控制,平移采用基于圖像的控制,形成2.5D混合視覺伺服.
基于基本矩陣的視覺伺服,利用極線幾何約束形成方程(9),在圖像空間估計兩個視點之間的基本矩陣F,然后結合內參數(shù)矩陣計算本質矩陣E.也可以在焦距歸一化成像空間,利用估計本質矩陣E.對本質矩陣E分解獲得旋轉矩陣R和平移向量te,用于對姿態(tài)和位置的控制.
1999年Basri等[47]利用估計本質矩陣E.利用E t=0求解出,然后利用求解帶有比例因子,在的基礎上,利用3個視點構成的直線交比不變性確定出t.由于不可逆,所以采用其第3列,采用E的前兩列叉乘作為第3列,保留和E的前兩列,構成新的等式.兩邊乘以的逆,獲得旋轉矩陣R.利用獲得的R和t分別控制姿態(tài)和平移,將相機從當前視點運動到期望視點.2009年Sebastian等[48]將式(9)作為約束,引入基于圖像雅可比矩陣的視覺伺服,提高了視覺伺服的魯棒性.
基于極線幾何的視覺方法,在移動機器人的控制中比較常見[49?53].例如,文獻[49]和[50]采用基于極線幾何的方法,設計了對準、趨近策略,第1步對準目標,第2步接近目標,實現(xiàn)了移動機器人對目標的趨近.2013年,Montijano等[52]利用極線幾何約束,實現(xiàn)了多移動機器人的一致性控制.2014年,Mitic等[53]提出了一種基于演示和極線約束的神經網絡學習方法,用于非完整約束移動機器人的視覺控制.
在視覺伺服的收斂過程中,在當前圖像與期望圖像比較接近時,極線約束退化.此時,難以準確估計兩個視點之間的位姿[10].
2002年Andref f等[54]提出了基于線特征的視覺伺服,實現(xiàn)了姿態(tài)與位置控制的解耦.直線的方向在3D笛卡爾空間進行估計,不同方向直線的交匯點作為特征點用于位置控制.當不同方向的直線形成正交三面體(Orthogonal trihedron)時,控制律與深度無關,控制系統(tǒng)漸近穩(wěn)定.其他情況下,需要采用激光器測距獲得交匯點的深度信息.交匯點的深度獲取問題,限制了該方法的應用.
2008年,Wang等[55]提出了分別采用點、線特征的自適應視覺伺服方法.基于相機透視成像模型和機器人模型,分別推導了點、線特征的圖像雅可比矩陣,并分別利用其轉置將特征偏差轉化為關節(jié)力矩.該方法將深度Z作為公共項從點、線交互矩陣中提出,剩余的交互矩陣不含有深度Z,稱為深度無關的交互矩陣.利用該方法在3自由度機械臂上進行的實驗中,機械臂末端位置的變化范圍很小,X、Y、Z方向的變化范圍均為mm級.實際上,如果不對深度進行估計,則該方法相當于采用了固定深度Z=1.在深度變化較大的情況下,視覺伺服過程中產生的機器人末端軌跡會存在較大波動.2013年Liu等[56]分別推導了距離、角度、面積、質心的圖像雅可比矩陣,但僅利用質心坐標的交互矩陣進行了3自由度機器人的視覺伺服實驗.利用質心的交互矩陣轉置,將特征偏差轉化為關節(jié)力矩,控制機器人的運動.同樣的,深度相當于固定值Z=1.
將多種控制器相結合,有利于發(fā)揮不同視覺伺服方法的優(yōu)勢.例如,2010年Lopez-Nicolas等[57]的前兩列叉乘作為分別基于兩個視點之間的單應性矩陣和極線幾何設計了兩個控制器,利用開關控制律將這兩個控制器結合在一起,可避免基于單應性矩陣或極線幾何的單一控制器的不足.
部分研究人員將對象的CAD模型作為先驗知識用于視覺伺服[58?62].例如,Marchand等[59]提出了一種基于對象的2D-3D模型的視覺跟蹤方法,首先在2D空間對對象進行跟蹤,然后在3D空間對對象進行跟蹤.其中,2D空間的跟蹤基于仿射變換,3D空間的跟蹤基于CAD模型匹配[60].2005年Yesin等[61]針對微裝配,設計了基于CAD模型的跟蹤方法.2010年Tamadazte等[62]設計了一種基于CAD模型的跟蹤方法,采用點到直線的交互矩陣,實現(xiàn)了微裝配的視覺控制.
2011年Dame等[63]提出了一種基于互信息(Mutual information)的視覺伺服方法,以整幅圖像作為參考,將參考圖像的熵加當前圖像的熵減去兩者的聯(lián)合熵定義為互信息特征,推導了互信息特征的交互矩陣.該方法的優(yōu)點是不需要匹配或者跟蹤圖像特征,對于光照變化魯棒,而且在同一個任務中可以有不同的圖像模式.該方法具有較高的精度,但笛卡爾空間的運動路徑不夠合理,收斂速度較慢.
常用的相機類型包括透視投影相機和全景相機等.透視投影相機可以采用小孔模型描述,應用比較廣泛.在鏡頭畸變較小可以忽略或者經過畸變校正后,透視投影相機的成像具有下列特點:直線的圖像仍然是直線,不同視點下具有極線幾何約束.上述特點為點、線特征提取,特別是直線特征提取,帶來較大的便利.針對透視投影相機采集的圖像,提取出特征點后,可以計算交互矩陣、單應性矩陣、基本矩陣等,進而用于視覺伺服.事實上,前面討論的交互矩陣、單應性矩陣、基本矩陣等,都是基于透視投影相機模型的.可見,透視投影相機適合于對對象的視覺跟蹤,即適合于視覺伺服.全景相機可以采用球面模型描述,在移動機器人中應用較多.全景相機由二次曲面反射鏡和透視投影相機構成,二次曲面反射鏡將360度方向的場景反射到透視投影相機,成像后的圖像因尺度壓縮不同而具有很大畸變.全景相機能夠直接給出對象的方位,在移動機器人的路徑跟蹤和對象跟蹤中具有優(yōu)勢[64?67].例如,2008年Hadj-Abdelkader等[66]針對中心折返式全景相機,推導出直線特征的交互矩陣,分別實現(xiàn)了6自由度機械臂和非完整約束移動機器人的視覺伺服.2010年Becerra等[67]基于1D的三視張量,實現(xiàn)了移動機器人的全向視覺控制.
視覺系統(tǒng)的常用特征包括點、直線、圓、面積、矩[67?70]、熵[71]等特征.一般地,點特征的抗干擾能力較差,直線和圓特征的抗干擾能力較強,面積和矩特征的抗干擾能力最強.在視覺伺服中,上述特征均有應用[72?84].例如,2005年Mahony等[74]利用平行線Plcker坐標構成圖像特征,實現(xiàn)了4旋翼無人機基于圖像的視覺伺服.2008年Mahony等[75]采用質心和光流特征,實現(xiàn)了基于動態(tài)圖像的視覺伺服.2010年Lopez-Nicolas等[77]采用三視點張量構成交互矩陣,2017年Chen等[78]采用三視點張量估計方向和帶比例因子的位移,實現(xiàn)了移動機器人的視覺伺服.1998年Lane等[80]基于光流進行運動估計和目標識別,但光流法可有效跟蹤的自由度較少[81].2012年Lin等[21]定義了4個低階矩不變量,實現(xiàn)了基于模型的視覺跟蹤.2013年Zhao等[82]利用改進的圖像矩,實現(xiàn)了6自由度機器人的基于圖像的視覺伺服.2011年Fomena等[84]基于球面投影設計了一種位置與姿態(tài)分離的視覺伺服方法.其中,利用3個點的球面投影的笛卡爾空間距離,構成3個旋轉不變量,用于位置控制;利用兩個點的圖像確定轉軸和轉角,用于姿態(tài)控制.
雖然點特征的抗干擾能力較差,但點特征既可用于基于交互矩陣的視覺伺服,又可用于基于單應性矩陣和基于基本矩陣的視覺伺服.點特征用于基于交互矩陣的視覺伺服時,由多個點特征計算點交互矩陣,在圖像空間實現(xiàn)視覺伺服.點特征用于基于單應性矩陣的視覺伺服時,利用4個及以上的點特征計算單應性矩陣H.點特征用于基于基本矩陣的視覺伺服時,利用8個及以上的點特征計算基本矩陣F.H或F分解出姿態(tài)矩陣R和平移向量te后,在笛卡爾空間實現(xiàn)視覺伺服.直線、圓、面積、矩等特征僅用于基于交互矩陣的視覺伺服,分別計算出其交互矩陣后,在圖像空間實現(xiàn)視覺伺服.
選擇的特征不同,對應的誤差表征方式也不同.對于點特征,其誤差表征方式包括圖像特征偏差、笛卡爾空間偏差、式(20)所示的.值得注意的是,式(20)所示的是作為笛卡爾空間誤差對待的,但實際上它們既不屬于笛卡爾空間,也不屬于圖像空間.對于直線特征,其誤差表征方式為直線在焦距歸一化成像平面上的極坐標參數(shù)ρ、θ的偏差.其中,θ的偏差較常用.對于圓特征,表征誤差的方式為圖像空間橢圓的二元二次方程的系數(shù)偏差,共5個參數(shù)[16].對于面積和矩等特征,表征誤差的方式為圖像空間的面積偏差和矩的偏差.在確定了特征以及誤差表征方式后,就確定了是在圖像空間還是在笛卡爾空間設計控制律.
部分研究人員采用對象的整體特征,以避免特征提取與匹配[35,85?87].例如,2011年Collewet等[85]利用所有像素點的亮度作為特征,采用基于交互矩陣的視覺伺服,實現(xiàn)了對目標的定位與跟蹤.2012年Silveira等[35]提出了一種直接視覺伺服方法,利用對象的像素強度進行匹配優(yōu)化,估計當前視點與期望視點之間的投影參數(shù),如含有姿態(tài)的矩陣G=ARA?1和極點等.該方法可避免特征點提取與匹配,提高魯棒性.
由式(1)可知,點交互矩陣與深度有關,基于點交互矩陣的視覺伺服需要估計深度.在相機的運動已知的情況下,可以根據(jù)相機運動和特征點的變化估計深度,見式(28).此外,在當前視點與期望視點的深度相差不是很大時,可以采用期望視點的深度,見第2.1.1節(jié).
2008年Luca等[88]提出了一種基于狀態(tài)觀測器的深度估計方法.定義狀態(tài)為,輸出為,其中,(u,v)是特征點的圖像坐標,(u0,v0)是光軸中心點即主點的圖像坐標.Luca等建立了狀態(tài)方程,設計了狀態(tài)觀測器.在相機運動為非純旋轉的情況下,利用觀測器可以得到深度Z.但在相機進行純旋轉運動時,不能對深度進行觀測.2010年Cheah等[89]設計了一種基于自適應雅可比矩陣的視覺控制方法,將深度作為機器人關節(jié)角的函數(shù),根據(jù)機器人的關節(jié)角對深度信息進行估計.該方法將深度與機器人的關節(jié)角關聯(lián),具有較大的局限性.
在基于單應性矩陣的2.5D視覺伺服中,ρ1=Z/d?,ρ2=Z/Z?.ρ2可以利用式 (7)估計,如果期望視點下的Z?和d?已知,則可以計算出ρ1.在基于基本矩陣的視覺伺服中,利用兩個視點的極線幾何估計出的位置矢量te帶比例因子,給控制帶來不便.為解決上述問題,部分研究人員采用三視幾何方法[47,50].例如,Basri等[47]利用3個視點構成的直線交比不變性確定出t.Becerra等[50]以增加中間輔助視點的方式,將視覺伺服分為對準和趨近目標兩步,第1步調整姿態(tài)和位置從而對準目標,第2步保持姿態(tài)并調整位置以便趨近目標.該方法對相機的標定誤差不靈敏.
部分研究人員采用其他輔助傳感器獲得深度.例如,2009年Xie等[90]采用激光結構光測距獲得特征的深度信息,將位置控制與姿態(tài)控制分離,設計了開關式視覺伺服方法.該方法包括3個階段,分別為旋轉階段、平移階段和精確對準階段.其中,在平移階段,采用矩形的4個角點和激光光斑作為特征,旋轉量設定為0,采用測距獲得的深度計算平移圖像雅可比矩陣,利用基于圖像的視覺伺服將圖像特征移動到期望特征附近.
深度估計的準確性對視覺伺服的性能具有重要影響.在視覺伺服中如何有效估計深度,仍然是亟待解決的問題.
位置控制與姿態(tài)控制的耦合作用給視覺伺服系統(tǒng)的性能帶來不利影響,位姿解耦的目的是消除位置控制與姿態(tài)控制之間的耦合.但實際上,位置控制與姿態(tài)控制之間的耦合作用是難以消除的.例如,第2.2.1節(jié)的基于位置的視覺伺服方法,雖然位置控制和姿態(tài)控制在控制律上是解耦的,但在運行過程中,姿態(tài)控制會對相機的位置控制產生影響,姿態(tài)與位置的耦合作用并不能夠消除.在姿態(tài)調整量較大的情況下,對象可能出相機的視野,導致視覺伺服失敗.類似地,第2.2.2節(jié)的解耦控制和第2.2.3節(jié)的2.5D視覺伺服,也存在上述問題.Anh等[30]的分離控制方法,分別選擇表征位置、姿態(tài)的6個特征,針對每一個自由度分別設計控制器.這種選擇不同特征的分離控制方法,同樣存在耦合影響問題.
另一種思路是在設計控制律時考慮耦合影響.對于安裝在6自由度工業(yè)機器人末端的相機,相機的平移對表征姿態(tài)的特征不會產生影響,但相機的旋轉會對表征位置的特征產生影響.因此,在設計工業(yè)機器人的視覺伺服控制律時,可以先設計旋轉控制律,再設計平移控制律,并對旋轉運動導致的平移在平移控制律中進行補償,從而降低旋轉對平移的影響[28,31].對于安裝在移動機器人上的相機,由于受非完整性約束(Nonholonomic constraints),相機在垂直于移動機器人前進的側向上不能直接平移,只能結合旋轉運動才能產生側向移動,平移與旋轉的耦合更加緊密.因此,在設計移動機器人的視覺伺服控制律時,往往先設計旋轉控制律,再結合旋轉角速度設計平移控制律[51].文獻[49]和[50]將移動機器人的視覺伺服分為兩個階段,第1階段為對準,通過旋轉運動使得移動機器人正對著被跟蹤對象;第2階段為趨近,通過向前平移運動使得移動機器人接近被跟蹤對象.在設計控制律時,結合運動機構的特性,考慮姿態(tài)控制與位置控制的耦合作用,對于改善視覺伺服系統(tǒng)的性能具有重要作用.但也有研究人員給定移動機器人的前進速度,然后只設計移動機器人的旋轉控制律.例如,2011年Cherubini等[91]設定非完整約束移動機器人以恒速運動,分別采用基于姿態(tài)和基于圖像的視覺伺服方法,計算出移動機器人的角速度,實現(xiàn)對路徑的趨近與跟蹤.
理論上,基于圖像的視覺伺服系統(tǒng),能夠實現(xiàn)局部穩(wěn)定;基于位置的視覺伺服系統(tǒng),能夠實現(xiàn)全局漸近穩(wěn)定[92].對于基于位置的視覺伺服系統(tǒng),只要被跟蹤對象處于相機視野內,且獲得的相機當前位姿正確,則通過合理選擇控制參數(shù)能夠保證系統(tǒng)的穩(wěn)定性[93].對于基于圖像的視覺伺服系統(tǒng),在采用點特征時,存在多解問題和交互矩陣奇異問題.由PnP(Perspective-n-point)問題可知,對于1組特征點的圖像坐標,相機可能有多個對應視點,即存在多解.如果不對笛卡爾空間的特征點進行約束,即使有無窮多個特征點,也會存在多解問題[94].多解問題對于控制非常不利,會導致出現(xiàn)較大的波動.如果4個可區(qū)分的特征點共面且其中任意3個特征點不共線,則PnP問題具有唯一解.因此,對于基于點交互矩陣的視覺伺服,需要選擇至少4個共面特征點,且需要滿足4個共面特征點中任意3個特征點不共線.在交互矩陣的秩小于6時,可以增加補償項,避免出現(xiàn)相機速度過高現(xiàn)象.
無論基于圖像的視覺伺服還是基于位置的視覺伺服,都存在目標丟失問題.一旦被跟蹤對象從相機的視野中丟失,則導致視覺伺服失敗.為解決目標丟失問題,研究人員提出了一系列策略[95?106].最簡單的方法是對旋轉量進行限制,例如2007年Metni等[95]為了保證對象不出相機的視野,將每一次的旋轉角度限定到很小的范圍內.另一種策略是采用開關式方法避免目標丟失[96?97].例如,2004年Chesi等[96]設計了一種開關式方法,使得圖像特征在視覺伺服過程中保持在相機的視野內.2005年Deng等[97]提出了一種混合運動控制策略,利用開關控制切換基于位置的視覺伺服和基于圖像的視覺伺服,以避免圖像奇異與局部極小.將對象在相機視野內作為約束,對相機路徑進行規(guī)劃或者優(yōu)化,是避免目標丟失的一類有效方法[98?103].例如,2003年Mezouar等[98]對基于圖像的視覺伺服的相機3D軌跡進行優(yōu)化,在優(yōu)化中引入對象處于相機視野內以及機械臂的關節(jié)限位等約束,以避免目標丟失和關節(jié)限位導致的視覺伺服失敗.2003年Kragic等[99]提出對視覺線索投票的方法,以提高視覺伺服的魯棒性.2014年Ibarguren等[100]在獲得圖像特征后經粒子濾波估計位姿,采用基于位置的視覺伺服,提高系統(tǒng)的魯棒性.2004年Chesi等[101]以目標為中心設定圓弧,控制相機在圓弧上運動,保證目標處于相機的視野中.2005年Cowan等[102]認為可視特征集及其圖像是微分流形,而且是全局微分同胚的,可采用微分同胚在全局范圍內保持圖像特征在相機視野內.2006年Schramm等[103]利用兩個視點的多個匹配點特征的圖像坐標,計算出G=A?1RA和.對G進行特征值分解獲得轉角θ和矢量,對θ插值得到,進而獲得中間插值的姿態(tài)Ri.對插值獲得,即獲得中間插值的位置.利用插值進行路徑規(guī)劃,可以細分姿態(tài)變化,保證對象的特征處于相機視野內.上述運動規(guī)劃方法以及限制旋轉角的方法,存在的不足之處是明顯降低了視覺伺服的收斂速度.采用學習或者自適應策略,也是解決目標丟失的有效途徑[104?106].例如,2010年Wang等[104]針對移動機器人,提出了一種基于圖像的視覺伺服與Q學習相結合的方法,通過Q學習確定機器人的行為,使得視覺特征保持在相機的視野內.2011年Gans等[105]采用欠定任務函數(shù)調節(jié)圖像特征的均值與方差,通過調整任務函數(shù)以保持特征點處于相機的視野內.2012年,Fang等[106]針對移動機器人提出了一種自適應主動視覺伺服方法.在移動機器人運動時,攝像機旋轉使得被觀測點位于圖像中心.該方法采用單應性矩陣估計移動機器人與目標之間的位姿.在攝像機的內參數(shù)經過預先標定的情況下,推導出了攝像機旋轉速度與圖像特征偏差、移動機器人角速度之間的關系.該方法能夠保證移動機器人運動過程中目標始終處于相機的視野內.
此外,由式(1)可知,平移產生的特征點圖像特征變化較小,旋轉產生的特征點圖像特征變化較大,特別是繞X、Y軸的旋轉引起的特征點圖像特征變化最大.一般地,平移不會導致目標丟失,旋轉后進行平移補償可以使得目標保持在相機視野內.
如果采用的特征處在相機的焦距歸一化成像平面上,例如前述特征m,則需要對相機的內參數(shù)進行標定.相機的內參數(shù)經過預先標定后,利用特征點的圖像坐標和相機內參數(shù),可以計算出特征點在焦距歸一化成像平面上位置矢量m.如果采用圖像平面的特征,則相機的內參數(shù)需要包含在交互矩陣內,同樣需要對相機的內參數(shù)進行標定.例如,文獻[88]采用點的圖像坐標作為特征,在交互矩陣中包含了放大系數(shù)k和主點圖像坐標(u0,v0).除了交互矩陣之外,在獲取式(7)所示的單應性矩陣或者式(10)所示的基本矩陣時,均需要相機的內參數(shù).可見,無論是基于交互矩陣的視覺伺服,還是基于單應性矩陣、基本矩陣的視覺伺服,都需要對相機的內參數(shù)進行標定.相機的內參數(shù)一般采用預先標定的方式.基于圖像的視覺伺服,對相機內參數(shù)的誤差不靈敏,只需要對相機內參數(shù)粗略標定即可.基于位置的視覺伺服,例如第2.2節(jié)和第2.3節(jié)中的視覺伺服方法,分別需要從單應性矩陣H或者本質矩陣E中分解出旋轉變換矩陣R和位移矢量需要獲得準確的H或者E,從而需要準確的相機內參數(shù).
前述視覺伺服的控制律,大部分是針對相機坐標系給出的.裝載相機的運動機構的坐標系,往往與相機的坐標系不同,這就需要標定兩者之間的關系,即進行外參數(shù)的標定.通常,為了提高使用的方便性,在安裝相機時使得相機坐標系與運動機構坐標系的坐標軸平行,以避免外參數(shù)的標定.
為了克服相機參數(shù)標定帶來的不便,大量研究人員致力于研究無標定或者在線標定視覺伺服方法[107?117]. 例如,Piepmeier 等[109?110]提出了一種無標定視覺伺服方法,利用Broyden法[111]或牛頓法在線估計圖像雅可比矩陣,實現(xiàn)了Eye-in-hand視覺系統(tǒng)的視覺伺服.2003年Shen等[112]針對無標定的Eye-to-hand視覺系統(tǒng),在線估計視覺系統(tǒng)的旋轉變換矩陣.2006年,Liu等[113]提出了無標定視覺伺服方法,采用結合Slotine-Li方法的自適應算法,在線最小化特征點在投影平面的誤差,實現(xiàn)了機器人對平面上點特征的跟蹤.2017年,Zhang等[114]提出了一種無標定視覺伺服方法,用于移動機器人的控制.該方法分為兩個階段,第1階段采用自適應速度控制器,將角度誤差和側向位置誤差調整到零附近;第2階段采用比例控制器調整縱向位置誤差.2004年Malis[116]提出了一種不依賴于相機內參數(shù)的視覺伺服方法,采用3個空間點圖像坐標組成的矩陣的逆與圖像點坐標構成針對攝像機內參數(shù)的不變性變量,利用不變性變量實現(xiàn)了視覺伺服.2011年Kosmopoulos[117]將小工作空間內的雅可比矩陣看作是常數(shù),通過離線標定獲得.由于上述方法做了許多假設,所以其在實際應用中受到限制.
視覺伺服具有廣泛的應用前景,近年來在工業(yè)、農業(yè)、交通、航空航天、醫(yī)療等眾多領域均有視覺伺服應用的報道.視覺伺服在工業(yè)領域的應用極其廣泛[118?120].例如,1998年Horaud等[118]將基于交互矩陣的視覺伺服用于機器人的趨近抓取.2000年Xiao等[119]針對Eye-to-hand視覺系統(tǒng),采用基于交互矩陣的視覺伺服控制目標的線速度,實現(xiàn)了工業(yè)機器人力位混合控制.2007年Lippiello等[120]采用混合視覺系統(tǒng),在由多臺工業(yè)機器人構成的制造單元中實現(xiàn)了基于位置的視覺伺服.
除了在工業(yè)領域的應用之外,視覺伺服在微裝配領域的應用也很廣泛,常用于操作手或微零件的趨近和對準控制等[121?126].例如,2000年Ralis等[123]采用由粗到精的視覺伺服策略,在不考慮Z方向平移的情況下,利用基于交互矩陣的視覺伺服,實現(xiàn)了微裝配系統(tǒng)的精確定位.2004年Ferreira等[124]提出了一種基于視覺伺服和虛擬現(xiàn)實的自動微裝配系統(tǒng),采用基于推動的微操作策略,利用基于位置的視覺伺服實現(xiàn)硅片的軌跡跟蹤,將硅片運動到期望位置和姿態(tài);采用基于視覺的力傳感方法,實現(xiàn)微夾鉗的微夾持力控制.2008年Wang等[125]采用基于圖像矩的視覺伺服,實現(xiàn)了微軸孔的裝配.2008年Wang等[126]采用基于位置的視覺伺服控制,實現(xiàn)了微零件的自動裝配.
視覺伺服也常用于生物醫(yī)學領域的微操作,用于注射針對細胞或胚胎的對準[127?131].例如,2002年Sun等[128]將視覺伺服用于生物醫(yī)學領域,利用自主微機器人系統(tǒng)實現(xiàn)了生物細胞注射.2009年Zhang等[129]采用基于位置的視覺伺服控制,實現(xiàn)了注射針對細胞的趨近與注射.2009年Sakaki等[130]采用基于圖像的視覺伺服,利用5自由度機械臂實現(xiàn)了對細胞的定位和注射.2017年,Zhuang等[131]將視覺伺服用于斑馬魚幼體心臟微注射系統(tǒng).
視覺伺服在醫(yī)療機器人領域的應用也比較常見,常用于對組織的定位與跟蹤[132?134].例如,1997年Wei等[132]將視覺伺服用于腹腔鏡膽囊切除術,根據(jù)圖像坐標確定機器人的運動方向,實現(xiàn)了運動方向解耦.2003年Krupa等[133]基于交比不變性估計激光指向儀器與人體組織之間的距離.基于運動標定獲得的圖像雅可比矩陣,對2個旋轉自由度和沿Z方向的平移自由度進行估計.結合圖像特征的坐標和深度信息,實現(xiàn)儀器對指向的人體組織的定位.使用過程中,該指向儀器根據(jù)圖像特征誤差,利用視覺伺服算法實現(xiàn)在圖像平面內的跟蹤與對準.2002年Abolmaesumi等[134]將超聲探頭加裝在機器人上,以超聲圖像中的探針為特征,利用圖像雅可比矩陣建立探針圖像特征變化與機器人運動之間的關系,采用基于圖像的視覺伺服,實現(xiàn)了對探針跟蹤頸動脈的有效控制.
基于圖像的視覺伺服常用于無人機控制中,用于目標跟蹤以及自主降落等[135?145].例如,2006年Mejias等[140]基于Kalman濾波在圖像空間跟蹤目標,實現(xiàn)自主直升機在城區(qū)的視覺伺服.2008年Guenard等[141]以4點構成的靶標質心為特征,采用基于圖像的視覺伺服,實現(xiàn)了4旋翼無人機相對于靶標的懸??刂?2009年Bourquardez等[142]針對4旋翼無人機,采用基于圖像的視覺伺服,實現(xiàn)了無人機的平移運動控制.2017年,Xie等[143]提出了一種輸入飽和的基于圖像視覺伺服方法,采用內環(huán)控制無人機的高度,外環(huán)控制無人機的側向速度和偏航速度.2012年Mahony等[144]撰寫了關于多旋翼無人機控制的教程,認為未來無人機基于視覺的感知與控制包括兩種方法,分別為SLAM方法和基于圖像雅可比矩陣的視覺伺服方法.基于位置的視覺伺服在無人機控制中也有應用.例如,2014年Plinval等[33]利用基于單應性矩陣的解耦控制方法,實現(xiàn)了無人直升機對地面目標的視覺跟蹤.
此外,2002年Marchand等[146]將視覺伺服應用于虛擬現(xiàn)實.2003年Gracias等[147]將視覺伺服用于水下機器人,基于單應性估計機器人的位姿,創(chuàng)建基于馬賽克(Mosaic-based)的海底地圖;利用創(chuàng)建的海底地圖進行導航,采用基于圖像雅可比矩陣的視覺伺服實現(xiàn)對規(guī)劃路徑的跟蹤.2014年Mehta等[148]將視覺伺服用于柑橘收獲機器人,采用視覺伺服控制機器人的作業(yè),其姿態(tài)采用基于位置的控制,位置采用基于圖像的控制.2015年Mehta等[149]將視覺伺服用于導彈制導,通過單應性矩陣計算出目標在導彈坐標系中的位置,以及坐標系之間的姿態(tài)矩陣.2015年Cai等[150]提出了基于模板匹配的視覺伺服,用于空間系留機器人對非合作目標的跟蹤.2017年,Wang等[151]針對具有內窺鏡視覺反饋的軟體機器人,基于分段常曲率假設設計了一種自適應視覺伺服方法.基于圖像特征對機器人操作器實際長度和目標位置進行在線估計,消除軟體機器人不確定性的影響.
傳統(tǒng)的視覺伺服并未考慮路徑合理性與約束問題.例如,基于圖像的視覺伺服,雖然在圖像空間相機的軌跡是合理的,但在3D空間相機的軌跡不盡合理,在偏移較大時會導致伺服失敗.為此,研究人員對相機的運動軌跡進行路徑規(guī)劃[98,152?160].例如,2003年Mezouar等[98]針對基于圖像的視覺伺服,在生成的期望軌跡上引入約束,包括對象處于相機視野內以及機械臂的關節(jié)限位等,進而對相機運動軌跡進行優(yōu)化,以避免視覺伺服失敗.2005年Pomares等[152]提出基于運動流的視覺伺服,用于軌跡跟蹤時在圖像空間和笛卡爾空間產生正確的行為.2007年Chesi等[153]考慮工業(yè)機器人視覺伺服中的約束問題,包括可視性、工作空間(含避障等)、關節(jié)限位等,建立了包含跨圖像區(qū)域、軌跡長度和曲率的目標函數(shù),通過優(yōu)化獲得視覺伺服的全局路徑[154].2009年Gracia等[155]在視覺伺服中考慮濾波、視覺系統(tǒng)時延等因素.2009年Fontanelli等[156]通過建立擴展視覺地圖,存儲一系列圖像、搜索相位、拓撲與空間信息的轉換關系、連通性、可行路徑等信息,采用視覺伺服實現(xiàn)了移動機器人在大場景中的自主導航.為提高視覺伺服的魯棒性,2013年Kazemi等[157]提出了一種隨機全動態(tài)路徑規(guī)劃方法.該方法考慮相機動態(tài)、圖像臨界集和物理約束,生成連續(xù)可微的相機軌跡.通過迭代擴展搜索樹并跟蹤機器人空間中的軌跡,搜索相機的狀態(tài)空間尋找可行軌跡.相機軌跡投影到圖像空間生成期望的圖像軌跡,用于基于圖像的視覺伺服.2010年Tahri等[158]采用ESM優(yōu)化圖像雅可比矩陣的偽逆,減小估計誤差,提高視覺伺服系統(tǒng)的性能.2016年,Gao等[160]提出了一種多層次模型預測的基于圖像的視覺伺服方法,用于水下機器人的控制.外環(huán)利用非線性模型預測控制器生成期望速度,在可視性和速度約束下對預測的圖像軌跡進行優(yōu)化.在動態(tài)速度跟蹤內環(huán),設計了基于神經網絡的模型參考自適應控制器,用于在具有不確定性的情況下保證速度跟蹤誤差的收斂性.考慮笛卡爾空間相機路徑的合理性與運動機構約束問題,利用優(yōu)化方法對相機路徑進行規(guī)劃,是視覺伺服未來的重要發(fā)展方向之一.
學習能力對提高視覺伺服系統(tǒng)性能具有重要幫助,因此,大量研究人員致力于對視覺伺服系統(tǒng)賦予學習能力[161?165].例如,2008年Zhao等[161]提出了一種基于外觀特征的機器人視覺伺服方法,利用小波神經網絡實現(xiàn)圖像雅可比矩陣功能.2013年Miljkovic等[162]將基于神經網絡的增強學習引入工業(yè)機器人的視覺伺服,建立了表示學習樣本的數(shù)據(jù)庫,用于加速神經網絡的收斂速度并實時學習機器人的行為.為保證特征的可視性,視覺伺服分為兩步,第1步中的機器人對準行為采用神經網絡增強學習控制器實現(xiàn),第2步中的趨近行為采用開關控制在傳統(tǒng)的基于圖像的視覺伺服和神經網絡增強學習之間切換實現(xiàn).2015年Sadeghzadeh等[163]將自學習引入視覺伺服,利用模糊神經網絡和Q學習實現(xiàn)了機械臂的視覺伺服.2018年,Shi等[164]提出了高度與速度解耦的視覺伺服控制方法,利用模糊Q學習實現(xiàn)對無人機控制增益的調節(jié).2015年Zhao等[165]利用兩個神經網絡,解耦計算繞X、Y軸旋轉的圖像矩,可避免機械臂視覺伺服中的奇異問題.此外,示教編程是指示教者在相機前演示期望的動作,由機器人跟蹤并重現(xiàn)這些動作.示教編程是機器人模仿人的過程,屬于模仿學習.2007年Jiang等[166]認為機器人的模仿過程是在圖像平面的具有未知時變圖像雅可比矩陣的離散跟蹤控制問題.采用一系列神經網絡逼近演示軌跡采樣點處的未知圖像雅可比矩陣,局部網絡的時變權重通過重復跟蹤即間接迭代學習控制(Indirect iterative learning control)進行識別.如何結合機器學習的最新研究成果,提高視覺伺服系統(tǒng)的學習能力,大幅度改善視覺伺服系統(tǒng)的適應能力,將是視覺伺服未來的重要發(fā)展方向之一.
在視覺伺服的實際應用中,往往存在大量的先驗知識,將這些先驗知識結合到視覺伺服中,有利于更好地完成跟蹤、趨近等任務[167?169].例如,2007年Mansard等[167]將一個任務分解為多個子任務,然后采用基于交互矩陣的視覺伺服分別進行控制,降低了完成任務的難度.2014年Larouche等[168]利用EKF(Extended Kalman filter)估計目標的運動狀態(tài),利用視覺伺服和運動預測控制,實現(xiàn)了機械臂對非合作目標的捕獲.2015年Tsai等[169]提出了一種混合開關反應式視覺伺服,用于5自由度機械臂的拾取和擺放任務.先驗知識的加入,可以有效避免視覺伺服失敗,有利于改進運動靈活性.例如,由于移動機器人受到非限定性約束,沿垂直于驅動輪的水平方向不能直接平移.在需要沿垂直于驅動輪的水平方向平移時,需要結合旋轉運動.采用類似于車輛變換車道的方式,在旋轉運動后進行適當?shù)姆聪蛐D,可以在旋轉后使得對象在相機視野內.如果在旋轉后對象移出相機的視野,那么適當?shù)姆聪蛐D能夠使得對象重新回到相機的視野內,降低了對旋轉運動量的限制.因此,如何充分利用先驗知識,提高運動的靈活性,提高系統(tǒng)應用的方便性,是視覺伺服未來的重要發(fā)展方向之一.
網絡化有利于對計算能力的大幅度提升,將復雜的計算放在云端,可以極大地簡化本地控制系統(tǒng)[170].例如,2013年Wu等[170]提出基于云的網絡化視覺伺服,采用網絡化的3D計算,提高了分布計算能力.因此,基于網絡化的視覺伺服也是未來發(fā)展趨勢之一.
為了更好地體現(xiàn)不同的視覺伺服方法的特點,本文針對單目視覺系統(tǒng),介紹了視覺伺服的運動映射關系,結合誤差表征介紹了視覺伺服的控制律設計.對影響視覺伺服的關鍵因素,例如相機選擇、特征選擇、誤差表征、深度估計、位姿解耦、目標保持、相機標定等,分別進行了分析和論述.最后,給出了視覺伺服在微裝配、醫(yī)療機器人和無人機等不同領域的典型應用,并指出了視覺伺服未來的主要發(fā)展方向.