手眼标定(eye in hand)-步骤
第一步:明确四个坐标系base坐标系:base法兰坐标系:falan相机坐标系:cam标定板/物坐标系: cal第二步:坐标系间的转换关系A1,A2:已知即为falan坐标系到base坐标系的转换关系,由机器人系统得知(已知)B1,B2:相机坐标系到标定板坐标系的转换关系(相机外参),由相机标定求出;(相当于已知)X:相机坐标系到标定falan坐标系的转换关系,机械手运动过程中保持不变(未知,待求
目录
第一步:明确四个坐标系
base坐标系:base
法兰坐标系: falan
相机坐标系: cam
标定板/物坐标系: cal
第二步:坐标系间的转换关系
A1,A2:已知即为falan坐标系到base坐标系的转换关系,由机器人系统得知(已知)
B1,B2:相机坐标系到标定板坐标系的转换关系(相机外参),由相机标定求出;(相当于已知)
X:相机坐标系到标定falan坐标系的转换关系,机械手运动过程中保持不变(未知,待求)
baseHcal:标定板坐标到base坐标的变换,标定过程中标定板和机械臂base不动,这个变换矩阵不变。
第三步:B1,B2:calHcam求法
相机标定方法有:传统相机标定法、主动视觉相机标定法、相机自标定法。
标定方法 | 优点 | 缺点 | 常用方法 |
传统相机标定法 | 可使用于任意的相机模型、 精度高 | 需要标定物、算法复杂 | Tsai两步法、张氏标定法 |
主动视觉相机标定法 | 不需要标定物、算法简单、鲁棒性高 | 成本高、设备昂贵 | 主动系统控制相机做特定运动 |
相机自标定法 | 灵活性强、可在线标定 | 精度低、鲁棒性差 | 分层逐步标定、基于Kruppa方程 |
- Tsai两步法:是先线性求得相机参数,之后考虑畸变因素,得到初始的参数值,通过非线性优化得到最终的相机参数。Tsai两步法速度较快,但仅考虑径向畸变,当相机畸变严重时,该方法不适用。
- 张氏标定法:使用二维方格组成的标定板进行标定,采集标定板不同位姿图片,提取图片中角点像素坐标,通过单应矩阵计算出相机的内外参数初始值,利用非线性最小二乘法估计畸变系数,最后使用极大似然估计法优化参数。该方法操作简单,而且精度较高,可以满足大部分场合。
- 基于主动视觉的相机标定法:是通过主动系统控制相机做特定运动,利用控制平台控制相机发生特定的移动拍摄多组图像,依据图像信息和已知位移变化来求解相机内外参数。这种标定方法需要配备精准的控制平台,因此成本较高。
- 分层逐步标定法:是先对图像的序列做射影重建,在重建的基础上进行放射标定和欧式标定,通过非线性优化算法求得相机内外参数。由于初始参数是模糊值,优化算法收敛性不确定。
- 基于Kruppa的自标定法:是通过二次曲线建立关于相机内参矩阵的约束方程,至少使用3对图像来标定相机。图像序列长度会影响标定算法的稳定性,无法保证射影空间中的无穷远平面。
综上考虑使用张氏相机标定方法
可以通过opencv中的方法实现如下:
cv2.calibrateCamera
第四步:AX=XB求解方法
在手眼标定问题中,AX=XB公式的求解方法很关键,手眼即机器人末端和相机,两者有两种组合形式:眼在手(eye in hand)和 眼在外(eye to hand)。
- 眼在手:即相机固定在机器人末端,最终要求相机和机器人末端的转换关系;
- 眼在外:即相机固定在机器人外,求解的是相机和机器人底座之间的转换关系。
有作者将手眼标定问题分为两类方程:AX=XB和AX=ZB,还有求解方法有:先求解旋转再求解平移或者平移旋转同时求解
先求解旋转再平移
(1)1989-“A new tech- nique for fully autonomous and efficient 3-D robotics hand/eye calibrakion”
i. 一般用“两步法”求解基本方程,即先从基本方程上式求解出Rcg,再代入下式求解出Tcg。在TSAI文献中引入旋转轴-旋转角系统来描述旋转运动来进行求解该方程组。
ii. 为了解决这个问题,如Tsai和Lenz ,仅使用HTM的旋转部分重写了上面的方程,并使用最小均方方法求解了该方程。
(2)1994-Simultaneous robot/world and tool/flange calibration by solving homogeneous transformation equations of the form ax=yb. DOI 10.1109/70.313105
i. 尝试求解形式为AX = ZB的齐次矩阵方程。他们使用四元数来推导X和Z的显式线性解。(线性解法,并使用线性最小二乘法找到平移分量)
ii. 因此,本文提出的方法可以应用于机器人/世界和眼手校准。该结果对于可能被公式化为AX = YB形式的齐次变换方程的其他问题也可能有用。即使推导需要四元数代数的知识,结果也不需要。用户只需很少或根本不了解高级数学概念,即可轻松实现线性最小二乘法。该方法的缺点在于,由于系统的几何参数是在两阶段过程中估计的,因此来自第一阶段的估计误差会传播到第二阶段。此外,需要完整的机器人姿态测量
(3)2013-Solving the robot-world/hand-eye calibration problem using the kronecker product.
i. 使用Kronecker乘积和奇异值分解获得封闭形式的解决方案
ii. 对比了2010年Li等人提出的Kronecker方法和1998年提出的四元数方法
(4)2001-An iterative approach to the hand-eye and base-world calibration problem.(迭代)
i. 总结先前技术的优缺点,提出自己的方法,使用四元数知识进行迭代
同时求解旋转平移
(1)1995-Hand-eye calibration. (在旋转由四元数表示时使用Levenberg-Marquardt方法求解。)
i. 给出了手眼标定的两种形式MY = MY’B,前者是经典的手眼标定形式,以及后者的优势
ii. 开发了一种通用的数学框架来解决使用公式之一来解决的手眼标定问题,提出了两种方法–封闭式和非线性方法(我们用单位四元数表示旋转。 我们提出两种方法,(i)使用单位四元数求解旋转的闭式解,然后求解平移,以及(ii)同时求解旋转和平移的非线性技术。)
iii. 两种方法:
• 先求旋转再求平移量(先用朗格朗日乘子、单位四元数最小化、封闭式方法求解旋转量,再用线性方法求解平移量就简单了);
• 同时求解旋转和平移量(不能再用封闭式方法求解了,the Levenberg-Marquardt method and the trust-region method)
iv. 非线性更好的估计了平移向量;新形式提供了比经典个更好的变换参数**(考虑到后来新形式没有得到广泛应用,应该是其相对于经典公式并没有多大优势)**
(2)1998-Simultaneous robot-world and hand-eye calibration. Robotics and Automation, IEEE Transactions on 14(4), 617–622 (使用四元数估计旋转分量)
i. 1)一种封闭形式的方法,该方法使用四元数代数和与此表示形式相关的正二次误差函数;2)一种基于非线性约束最小化的方法,该方法同时求解旋转和平移。
ii. 本文描述了矩阵方程AX = ZB的系统的闭式解和非线性解。 这些解决方案可解决与矩阵X和Z关联的两次旋转和两次平移。
iii. 对比了线性方法、封闭形式、非线性方法的优劣,介绍了自己的封闭方法和非线性方法
iv. 封闭形式方法使用与四元数关联的代数性质,将平方误差函数和转换为正半定二次形,其最小化使用两个拉格朗日乘数。 非线性方法使用标准最小化技术同时求解所有未知数。 有趣的是,闭合形式的方法类似于但不等同于最佳估计从三维(3-D)到3-D点或线对应的刚性运动的问题。 本文介绍的方法同时求解闭合形式的两个旋转,而过去开发的方法求解闭合形式的一旋转。
v. 封闭形式错在一定的缺点:
1)未知数是按顺序估计的,首先是旋转,然后是平移。 来自第一阶段的错误会传播到第二阶段。2)众所周知,在存在噪声的情况下,线性分辨率方法的性能会下降。3)与非线性最小化不同,线性和闭式解不允许同时描述解的质量和与解相关的置信度。
(3)2006-Optimal hand-eye calibration. DOI 10.1109
i. 非线性估计技术估计旋转平移分量
ii. 文章将手眼校准问题分为两类:AX=XB和AX=ZB两类方程(对先前技术进行了总结)
iii. 首先,这项工作区分了手眼校准问题的两种常见解决方案。提出了一种关于SE(3)的新颖的基于物理的度量,以便在这些模型公式中进行最佳估计。
iv. 该度量标准及其经过实验验证的误差模型,是以“最大似然法”的形式进行最佳估计的起点–平移和旋转误差要根据机械手的特定精度进行加权。此外,权重由算法自动调整。
(4)2010-Simultaneous robot-world and hand-eye calibration using dual-quaternions and kronecker product
i. 使用双四元数和Kronecker积找到------(Rx,Rz,x,z)同时求得
(5)2013-Hand–eye calibration with epipolar constraints
i. 结合了机器人世界手眼校准公式的变化,并使用重投影误差以及对极约束,除了X和Z HTM之外,还同时定义了相机的固有参数和失真参数
参考博客:
https://blog.csdn.net/weixin_43981560/article/details/104591993
等。。。
如有侵权请联系删除。。。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)