3D手眼标定

为什么叫3D手眼标定? 因为工业视觉上,有个常用标定算法叫“九点标定”,那个算法比较简单,求解的“平面上的映射关系”。本文的3D手眼标定既可以用于2D,也可以用于3D。
一般来说,手眼标定之前,已经做好了相机标定,我这里将手眼标定和单目标定放在一起做。因为手眼标定需要知道相机相邻两帧的位姿,我这里直接用OpenCV单目标定API: calibrateCamera可直接输出相机位姿;也就是做手眼标定的同时,也将单目标定做了。你可能会说:手眼标定一般采集20组数据就够了,而单目标定需要将近一百张棋盘;其实,如果用高精度定制的标定板,20张棋盘也足够了(无论是Halcon、Matlab标定工具箱、还是OpenCV标定,经过我实践,精度都可以到达0.0x个像素级别;其中,Halcon精度是最高的,它用的不是张正友棋盘法,是TSAI两步法。TSAI这个人比较叼,在下文的手眼矩阵求解过程中,还会见到他)。
有关于提前做了相机标定,再做手眼标定也是可以的。这情况下,也可以借助棋盘求解相机位姿,其实就是构建PNP问题。好了,先看以下三幅图,了解下手眼矩阵 AX=XB (眼在手上)的推导:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

到此,应该知道,手眼标定的核心问题就是求解矩阵:AX=XB,其中A是从示教器上读取的位姿并作compose,B与相机运动位姿有关。如下图,是一张从机械手臂示教器上读取的数据,(x y z A B C) 表示机械手臂末端到基坐标系的位姿;其中 x y z表示位移, A B C表示姿态,这里用的是欧拉角(旋转次序ZYZ,ZYZ是什么鬼次序,不同品牌机械手臂可能姿态形式不同,不过最终都要依据相应公式转为旋转矩阵。

在这里插入图片描述

好了,我们已经知道公式,现在开始可以撸代码了,这里适用OpenCV、Eigen等库进行。

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值