论文笔记 | Deeper understanding of the homography decomposition for vision-based control

作者&投稿:湛房 (若有异议请与网页底部的电邮联系)
1. 提出Homography decomposition的解析解法,给出了解的解析表达,并描述了两个可能解之间的关系。
2. 基于Homography decomposition,提出position-based visual servoing的控制方案。在该方案中,end-effector渐进收敛到目标位置,并在收敛过程中找到可能解中的正确解。

为了分解 H ,可以考虑如下对称矩阵 S :

它也可以写成:

于是不妨拆分一下 S :

得到 x , y 之后,经过 一些 很多变换,就得到了 R , t 以及 n 的解析表达式啦,具体表达论文里给出了summary。瞅一眼,大概是这个画风:【逃。。。

从表达式中的+/-可以发现解并不惟一。事实上,我们得到了8组可能解。但现实的结界使得一些解是不存在的。【平面π一定在照相机前方】,这为我们消除了4组解。【观察到平面π同一些点的两个照相机一定是在平面同一侧的】( visibility constraint ),又消除了2组解。

Homography 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)。

接下来,定义一个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:

在得到这个平衡的过程中,真实解的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啊哭泣。。

~