手眼标定原理


参考了https://zhuanlan.zhihu.com/p/103749589

手眼标定法是标定摄像头与机械臂的一个经典方法,不过这个思想也适用于其他传感器,比如自动驾驶中激光雷达与摄像头之间的标定,比如东京大学的这篇工作《LiDAR and Camera Calibration using Motion Estimated by Sensor Fusion Odometry》。

手眼标定法的核心公式只有一个,AX=XB,这里的 X 就是指手(机械臂末端)与眼(摄像头)之间的坐标转换关系。下面结合机械臂的两种使用场景,讲一下这个公式的由来。

用Base表示机械臂的底座(可以认为是世界坐标系),用End表示机械臂的末端,用Camera表示摄像头,用Object表示标定板。


一、固定标定板

英文为eye-in-hand。表示为相机随着机械臂运动,但标定板固定情况下,估计相机到机械臂末端end的变换矩阵。如下图所示
在这里插入图片描述
此时Base->End的变换矩阵固定,Object->Base的变换矩阵固定

此时考虑相机在不同两个位置C1和C2处拍摄了标定板图片情况,具有下面的等式约束
在这里插入图片描述
就得到了

AX=XB

即求解得到X

二、固定相机

这种情况是相机固定,但是标定板随着机械臂变化而变化,英文表示为Eye-to-hand
在这里插入图片描述
此时固定的变换矩阵变为Base->end和Base->Camera间的变换矩阵
考虑标定板的不同位置,获得下面等式约束:
在这里插入图片描述

三、求解AX= XB

将变换矩阵变为旋转矩阵+平移向量,此时获得下面式子:
在这里插入图片描述

其中R表示旋转矩阵,t表示平移向量

1、求解旋转矩阵

旋转矩阵分布在Rx的左右两侧,因此使用向量化算子Vec(x)进行求解,其中向量化算子的性质如下表示
在这里插入图片描述
因此AX=XB左右等式同时取向量化算子,即:
Vec(AX)= Vec(XB)
在这里插入图片描述
因此只需vec(Rx)前面系数项的奇异值特征向量,即可获得Rx值,即

做奇异值分解有 K=U_K Σ_K V_K^T ,则线性方程的解即为 V_K 的最后一列(非零最小二乘 解) 。最后一列变为旋转矩阵 后,并不一定是正交旋转阵,需要再次对其进行奇异值分解,得 R_X'=UΣVVT ,最 终取 R_X=UV^T 作为原方程的解。其中 Σ 在一定程度上可以反映标定结果的好坏,良好的标定其 Σ 的对角元素都应该非常接近甚至完全 相等

平移向量求解如下:
在这里插入图片描述

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值