Ezio Malis, Manuel Vargas. Deeper understanding of the homography decomposition for vision-
based control. [Research Report] RR-6303, INRIA. 2007, pp.90.
Introduction
1. 提出Homography decomposition的解析解法,給出了解的解析表達,并描述了兩個可能解之間的關系。
2. 基于Homography decomposition,提出position-based visual servoing的控制方案。在該方案中,end-effector漸進收斂到目標位置,并在收斂過程中找到可能解中的正確解。
Analytical method of homography decomposition
為了分解H,可以考慮如下對稱矩陣S:
它也可以寫成:
于是不妨拆分一下S:
得到x,y之后,經過一些 很多變換,就得到了R,t以及n的解析表達式啦,具體表達論文里給出了summary。瞅一眼,大概是這個畫風:【逃。。。
從表達式中的+/-可以發現解并不惟一。事實上,我們得到了8組可能解。但現實的結界使得一些解是不存在的。【平面π一定在照相機前方】,這為我們消除了4組解。【觀察到平面π同一些點的兩個照相機一定是在平面同一側的】(visibility constraint),又消除了2組解。
Homography Decomposition也有很多看起來友好一點的數值方法,但解析表達式的優勢之一在于,由它就可以推出可能解之間的互推公式,大概長這樣:
Position-based visual servoing based on analytical decomposition
利用analytical decomposition就可以做很多事情啦。
Position-based visual servoing 大概是指一個裝有視覺傳感器(camera)的機器人,它定位的方法是將看到的像素點轉換成三維坐標。
要解決的問題是:
? ? ? ? -首先,相機到達一個reference position,并記錄該位置拍下的照片。
? ? ? ? -現在裝有相機的servo在另一個地方。已知信息有「servo在目前位置獲取的照片」和「在reference position記錄的照片」。
? ? ? ? -目標是在不利用額外信息(a?priori)的條件下將servo移動到reference position(即相機獲取的圖像與存儲的reference處圖像一致)。
系統所能直接控制的(input)是robot的速度。新一時刻的位置可由「上一時刻的位置」和「robot的速度」計算得到。(130)
由目前位置的圖像和reference位置的圖像,利用最小二乘估計,可得矩陣H。
利用解析分解(未應用visibility constraint)得到四個解:
用visibility constraint得到兩個可能解,不妨假設是Rtna,Rtnb(包含從reference位置到相機此時位置的旋轉平移信息以及圖像平面的normal)。
Mean-based Control Law
接下來,定義一個error function (e)。(根據e調整input)
想法是:
? ? ????1.式中Rtna和Rtnb權重應該相同,因為不知道哪個是真實解。
????????2.當相機到reference位置時,reference和current位于同一處,所以此時Homography分解出來的R和t應該為零,e應該為零。
? ? ? ? 3.找到e后,定義一個收斂的control law,當系統按此方法控制輸入時,error function收斂到零。
由此,作者提出了Mean-based Control Law -- 取兩個可能解的均值作為error function:
并引入中間步(相機與reference位置的鏡頭角度(orientation)相同,但相差一個translation error),當error function為零時,robot到達中間狀態而非最終狀態。
注意到我們已經得到了Rtna與Rtnb之間的轉換公式,于是可以將兩個可能解的均值用Rtna表示。
control law定義為:
v為robot的速度(input),lambda可以用來調節收斂速率。
還可以定義error function的更新公式:
其中L為:
由此,迭代形成(closed loop control):根據current位置計算error function —>(135)得到輸入速度 —> 由速度與之前位置得到新位置?—>(136)計算新的error function?—> 決定新輸入。
作者還證明了,在這種control law下,et一定會收斂到0(注意這里并不是ta=tb=0,而是ta+tb=0),并且收斂過程中ta的模長不增。er也一定收斂到0,即Ra=Rb。//請自動腦補角標otz。。
注意到以上討論是假設visibility constraint篩選出的可能解是Rtna,Rtnb。但若可能解是在Rtna和Rtnb-的情況中,et的收斂并未被全部證明,作者只給出了在ta模長小于1時收斂性成立的證明。(但根據模擬結果,似乎不符合條件的情況(即ta模長大于1時)也是穩定的。)
在這個control law的作用下,error function為零時R=0,而translation error并未被消除。于是我們可以得到正確的相機方向(orientation),還可得到ta和tb(滿足ta+tb = 0,并且兩者只是在在na方向上有偏差)To be more specific:
Switching Control Law
在得到這個平衡的過程中,真實解的na是始終不變的,而錯誤解中nb一開始與na“同側”(因為最初Rtnb解通過了visibility constraint)。而在收斂過程中,nb會逐漸轉動,直到它成為反向的na。這意味著自某一時刻起,nb便不再符合visibility constraint。由此可在兩個可能解中找到真實解。
所以當我們檢測到nb是錯誤解時,便可直接用Rtna作為控制輸入的e以更快速地達到穩定狀態。但如果直接從可能解均值轉變為正確值會使e產生突變(abrupt changes),注意到(137)L的表達式中存在偏導,這樣的不光滑的變化會導致控制過程出錯。我們需要采用一種平緩的過度?—— a switching control strategy。
在定義error function的時候不直接用兩者的均值,而是用加權后的式子,即:
其中權重的選取需要在還未檢測到t-vertical之前值都為1,而在檢測到后權重分布改變迅速且光滑。指數似乎是一個好的選擇。于是由exponentially decreasing time-function定義權重就會是這樣的:
看一下效果:
在作者的參數下,通過14步迭代找到了正確解O.o
【簡書能不能插LaTeX啊哭泣。。