二、平面标定(Homography变换)
1、定义
单应性(homography)变换用来描述物体在两个平面之间的转换关系,是对应齐次坐标下的线性变换,可以通过矩阵表示:
X′=H⋅X
2、计算推导
带入数据(x,y)为图片上的点位置:
⎣⎡x′y′w⎦⎤=⎣⎡h1h4h7h2h5h8h3h6h9⎦⎤⎣⎡xy1⎦⎤
因为是齐次坐标系,方程左右同时除h9
⎣⎡x1′y1′w′⎦⎤=⎣⎢⎡h9x′h9y′h9z′⎦⎥⎤=⎣⎡h1′h4′h7′h2′h5′h8′h3′h6′1⎦⎤⎣⎡xy1⎦⎤
将矩阵展开得到:
公式①:
⎩⎪⎨⎪⎧x1′=h1′x+h2′y+h3′y1′=h4′x+h5′y+h6′w′=h7′x+h8′y+h9′
将下面的矩阵用已知的观测值代替:
⎣⎡x1′y1′w′⎦⎤==>(xR,yR)
根据齐次坐标的齐次性质:
公式②:
w′x1′=xR,w′y1′=yR
结合公式①②:
公式③:
{xR=h7′+h8′+1h1′x+h2′y+h3′yR=h7′+h8′+1h4′x+h5′y+h6′
在公式③中
(x,y),(xR,yR)
为观测到的已知参数,未知参数有h1’h8’共8个,一对点能够产生两个方程,则求解公式③至少需要四组点对,才能求出h1’h8’。一般的数据会多于4组点对,用最小二乘法或ransac来获取最优参数。
求解过后,h1’~h8’为已知,
H′=⎣⎡h1′h4′h7′h2′h5′h8′h3′h6′1⎦⎤
可用于单应性变换的计算。
3、应用
1、简单平面的转换
图片A中的点P为(x,y),求对应在另外一个视角的图片B点P’(x’,y’)?
⎣⎡x2y2z2⎦⎤=H′⎣⎡xy1⎦⎤
P′(x′,y′)=(z2x2,z2y2)
--------------------------------------------------------2020更新 华丽的分割线--------------------------------------------------------
2、在四轴中求取2D点到3D点的转换关系
2.1 相机在手上
求取
rHc
2.1.1 转换方程
rPo=rTt⋅tHC⋅CPo
参数解释:
rPo(4×1):object在Robot坐标系下的表示
rTt(4×4):Tool到Robot的转换矩阵,即机械手示教器上读回的数值
tHC(3×3):图像平面h1到Tool平面转换矩阵
CPo(2×1齐次变化>3×1):图像中的点
2.1.2 直接法
tTr⋅riPo=tHC⋅CiPo
参数解释:tTr保持不变,tHC为所求的参数,CiPo与riPo一一对应。
适用条件:u轴不变的情况,末端执行器与机械手只存在x、y的偏移量。
(提示:机械手位姿数目==图像数目+1)
该方法得到的H矩阵是图像点与△Pos (△Pos = Pi−Porigin) 之间的关系,所以在后期的使用中,需要先确定一个Porigin,再利用图像与Homo关系得到△Pos,再叠加上Porigin,得到新的一个rPi。
操作过程:
###### 2.1.3 旋转法
tiTr⋅rPo=tHC⋅CiPo
参数解释:rPo为旋转法所求量,保持不变,tHC为所求的参数,CiPo与tiTr一一对应。
操作过程(保持标定板不能动):
旋转前后分别记下tool的坐标为
rP1rP2
则可以求得object在robot下的坐标:
rPo=(rP1+rP2)/2
标定过程:在标定板与相机视野内的前提下移动机械手(xy平面,z,u,v,w保持不变)并拍摄图片,存储每个位置与每张图片,采集9组数据,将采集的数据连入PlaneCalibration工具,计算标定结果。
产生的数据为:旋转法对应的两张图片与两个机械手位姿,九点标定对应的九张图片与九个机械手位姿数据。将图像整合在一个文件夹里,机械手位姿整合在一份文件里,按顺序保存,注意数据的对应关系。
标定过程只用到了标定板上的某个点作为object,当选定了某个点A,你的旋转法就需要保持点A在图像中位置不变。用标定板的作用是为了在视野中更好地识别点A,当你的目标够明显,也可以不适用标定板(一般不采用)。
使用如上方法,根据图像中object的点,能得到它在Robot坐标系(xy平面,z,u,v,w保持不变)的位置,就可以将坐标发给机械手执行,该方法不用求取相机的内外参数,不考虑图像的畸变,可以用于对精度要求不高的项目。
2.2 相机不在手上
求取相机坐标系与机械手的底座坐标系的变换关系
rHc
2.2.1 转换方程
rTt⋅tPo=rPo=rHc⋅cPo
参数解释:
rTt(4×4):Tool到Robot的转换矩阵,即机械手示教器上读回的数值
rPo(3×1):object在robot下的位置
rHc(3×3):图像平面h1到Tool平面转换矩阵
cPt(2×1齐次变化>3×1):tool在图像中的点
2.2.2 直接法
rPo=rHc⋅cPo
标定过程:
###### 2.2.3 圆弧法
rPo=rHc⋅cPo
圆弧法需要将标定板绑在机械手上,该方法也是为了找到rPo与cPo两个数据集间的转换关系。每个Poc都需要由3张相同xy(robot base)坐标下相机拍得的图像,用拟合圆心的方法得到。object定义为拟合得到的圆心,即机械手最末端。
(3张图像拟合的圆心是在本软件中使用的默认图像张数,所以该方法所需要的机械手位姿点数与图像张数必须相等,且是3的倍数。)
因为只是标定两个平面之间的关系,rPo的xy与rTt的xy数据相同。
用圆弧法需要将标定板绑在机械手上,该方法也是为了找到rPo与cPo两个数据集间的转换关系
操作步骤: