二、平面标定(Homography变换)

1、定义

单应性(homography)变换用来描述物体在两个平面之间的转换关系,是对应齐次坐标下的线性变换,可以通过矩阵表示:

X=HX X' = H·X

2、计算推导

带入数据(x,y)为图片上的点位置:

[xyw]=[h1h2h3h4h5h6h7h8h9][xy1] \left[ \begin{matrix} x'\\ y'\\ w \end{matrix} \right]= \left[ \begin{matrix} h1 & h2 & h3\\ h4 & h5 & h6\\ h7 & h8 & h9 \end{matrix} \right] \left[ \begin{matrix} x\\ y\\ 1 \end{matrix} \right]

因为是齐次坐标系,方程左右同时除h9

[x1y1w]=[xh9yh9zh9]=[h1h2h3h4h5h6h7h81][xy1] \left[ \begin{matrix} x1'\\ y1'\\ w' \end{matrix} \right]= \left[ \begin{matrix} \frac{x'}{h9}\\ \frac{y'}{h9}\\ \frac{z'}{h9} \end{matrix} \right]= \left[ \begin{matrix} h1' & h2' & h3'\\ h4' & h5' & h6'\\ h7' & h8' & 1 \end{matrix} \right] \left[ \begin{matrix} x\\ y\\ 1 \end{matrix} \right]

将矩阵展开得到:

公式①:
{x1=h1x+h2y+h3y1=h4x+h5y+h6w=h7x+h8y+h9 \begin{cases} x1' = h1'x+h2'y+h3' \\ y1' = h4'x+h5'y+h6' \\ w' = h7'x+h8'y+h9' \end{cases}
将下面的矩阵用已知的观测值代替:

[x1y1w]==>(xR,yR) \left[ \begin{matrix} x1'\\ y1'\\ w' \end{matrix} \right] ==>(x^R, y^R)

根据齐次坐标的齐次性质:

公式②:
x1w=xR,y1w=yR \frac{x1'}{w'}=x^R,\frac{y1'}{w'}=y^R

结合公式①②:

公式③:
{xR=h1x+h2y+h3h7+h8+1yR=h4x+h5y+h6h7+h8+1 \begin{cases} x^R = \frac{h1'x+h2'y+h3'}{h7'+h8'+1}\\ y^R = \frac{h4'x+h5'y+h6'}{h7'+h8'+1} \end{cases}
在公式③中

(x,y)(xR,yR) (x, y),(x^R, y^R)
为观测到的已知参数,未知参数有h1’h8’共8个,一对点能够产生两个方程,则求解公式③至少需要四组点对,才能求出h1’h8’。一般的数据会多于4组点对,用最小二乘法或ransac来获取最优参数。

求解过后,h1’~h8’为已知,

H=[h1h2h3h4h5h6h7h81] H'= \left[ \begin{matrix} h1' & h2' & h3'\\ h4' & h5' & h6'\\ h7' & h8' & 1 \end{matrix} \right]
可用于单应性变换的计算。

3、应用

1、简单平面的转换

图片A中的点P为(x,y),求对应在另外一个视角的图片B点P’(x’,y’)?

[x2y2z2]=H[xy1] \left[ \begin{matrix} x2\\ y2\\ z2 \end{matrix} \right]= H' \left[ \begin{matrix} x\\ y\\ 1 \end{matrix} \right]

P(x,y)=(x2z2,y2z2) P'(x',y') = (\frac{x2}{z2},\frac{y2}{z2})

--------------------------------------------------------2020更新 华丽的分割线--------------------------------------------------------

2、在四轴中求取2D点到3D点的转换关系

2.1 相机在手上

求取

rHc {^r}H{_c}

2.1.1 转换方程

rPo=rTttHCCPo {^rP_o = ^rT_t \cdot ^tH_C \cdot ^CP_o}

参数解释:

rPo^rP_o(4×1):object在Robot坐标系下的表示

rTt^rT_t(4×4):Tool到Robot的转换矩阵,即机械手示教器上读回的数值

tHC^tH_C(3×3):图像平面h1到Tool平面转换矩阵

CPo^CP_o(2×1齐次变化>3×1):图像中的点

2.1.2 直接法

tTrriPo=tHCCiPo ^tT_r \cdot ^{ri}P_o = ^tH_C \cdot ^{Ci}P_o

参数解释:tTr^tT_r保持不变,tHC^tH_C为所求的参数,CiPo^{Ci}P_oriPo^{ri}P_o一一对应。

适用条件:u轴不变的情况,末端执行器与机械手只存在x、y的偏移量。

(提示:机械手位姿数目==图像数目+1)

该方法得到的H矩阵是图像点与△Pos (△Pos = PiPoriginP_i - P_{origin}) 之间的关系,所以在后期的使用中,需要先确定一个PoriginP_{origin},再利用图像与Homo关系得到△Pos,再叠加上PoriginP_{origin},得到新的一个rPi^rP_i

操作过程:

平面标定(Homography变换)
###### 2.1.3 旋转法

tiTrrPo=tHCCiPo ^{ti}T_r \cdot ^rP_o = ^tH_C \cdot ^{Ci}P_o

rPotHCCiPotiTr 参数解释:^rP_o为旋转法所求量,保持不变,^tH_C为所求的参数,^{Ci}P_o与^{ti}T_r一一对应。

操作过程(保持标定板不能动):

平面标定(Homography变换)
平面标定(Homography变换)
旋转前后分别记下tool的坐标为

rP1  rP2 ^rP_1\; ^rP_2

则可以求得object在robot下的坐标:

rPo=(rP1+rP2)/2 ^rP_o = (^rP_1+^rP_2)/2

标定过程:在标定板与相机视野内的前提下移动机械手(xy平面,z,u,v,w保持不变)并拍摄图片,存储每个位置与每张图片,采集9组数据,将采集的数据连入PlaneCalibration工具,计算标定结果。

产生的数据为:旋转法对应的两张图片与两个机械手位姿,九点标定对应的九张图片与九个机械手位姿数据。将图像整合在一个文件夹里,机械手位姿整合在一份文件里,按顺序保存,注意数据的对应关系。

标定过程只用到了标定板上的某个点作为object,当选定了某个点A,你的旋转法就需要保持点A在图像中位置不变。用标定板的作用是为了在视野中更好地识别点A,当你的目标够明显,也可以不适用标定板(一般不采用)。

使用如上方法,根据图像中object的点,能得到它在Robot坐标系(xy平面,z,u,v,w保持不变)的位置,就可以将坐标发给机械手执行,该方法不用求取相机的内外参数,不考虑图像的畸变,可以用于对精度要求不高的项目。

2.2 相机不在手上

求取相机坐标系与机械手的底座坐标系的变换关系

rHc {^r}H{_c}

2.2.1 转换方程

rTttPo=rPo=rHccPo ^rT_t\cdot ^tP_o = ^rP_o = ^rH_c \cdot ^cP_o

参数解释:

rTt^rT_t(4×4):Tool到Robot的转换矩阵,即机械手示教器上读回的数值

rPo{^r}P{_o}(3×1):object在robot下的位置

rHc{^r}H{_c}(3×3):图像平面h1到Tool平面转换矩阵

cPt{^c}P{_t}(2×1齐次变化>3×1):tool在图像中的点

2.2.2 直接法

rPo=rHccPo ^rP_o = ^rH_c \cdot ^cP_o

标定过程:

平面标定(Homography变换)
###### 2.2.3 圆弧法

rPo=rHccPo ^rP_o = ^rH_c \cdot ^cP_o

圆弧法需要将标定板绑在机械手上,该方法也是为了找到rPo^rP_ocPo^cP_o两个数据集间的转换关系。每个Poc都需要由3张相同xy(robot base)坐标下相机拍得的图像,用拟合圆心的方法得到。object定义为拟合得到的圆心,即机械手最末端。

(3张图像拟合的圆心是在本软件中使用的默认图像张数,所以该方法所需要的机械手位姿点数与图像张数必须相等,且是3的倍数。)

因为只是标定两个平面之间的关系,rPo^rP_o的xy与rTt^rT_t的xy数据相同。

平面标定(Homography变换)

rPocPo 用圆弧法需要将标定板绑在机械手上,该方法也是为了找到^rP_o与^cP_o两个数据集间的转换关系

操作步骤:

平面标定(Homography变换)

相关文章:

  • 2022-02-23
  • 2022-01-01
  • 2021-11-27
  • 2021-05-14
  • 2022-12-23
  • 2022-02-07
  • 2022-12-23
  • 2021-08-20
猜你喜欢
  • 2021-06-10
  • 2022-01-08
  • 2022-12-23
  • 2021-06-17
  • 2021-10-05
  • 2022-12-23
  • 2021-05-13
相关资源
相似解决方案