Ezio Malis, Manuel Vargas. Deeper understanding of the homography decomposition for vision-
based control. [Research Report] RR-6303, INRIA. 2007, pp.90.
Link: https://hal.inria.fr/inria-00174036v3/document
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啊哭泣。。