首页 > 解决方案 > 静态相机手眼标定算法参数错误

问题描述

我尝试使用静态相机和 Matlab 中的以下算法进行手眼校准。https://de.mathworks.com/matlabcentral/fileexchange/48696-camera-to-robotic-arm-calibration

该算法运行良好,没有错误。它还提供了相机矩阵,这是正确的,因为我用另一个相机校准对其进行了校对。

但我的问题是,转换矩阵对我来说看起来不正确。输出图片的可视化也很奇怪。

这是变换矩阵和输出图片之一。

最终相机到手臂基础变换是

 -0.2809   -0.1394   -0.9496    0.5000

 0.9594   -0.0165   -0.2814   -0.5000

 0.0236   -0.9901    0.1384    0.5000

 0         0         0    1.0000

棋盘变换的最终末端执行器是

 0.2479    0.2346   -0.9399   -0.0432

 -0.6196   -0.7075   -0.3400   -1.0000

 -0.7448    0.6666   -0.0300    0.3707

 0         0         0    1.0000

在此处输入图像描述

我的相机在 x,y,z 上距离底座不正好 0.5m,棋盘也没有安装在距离 tcp 1m 处。

我正在使用 UR10。该算法的一个输入是从 base 到 tcp 的变换矩阵,每个姿势对应的图片。

在此处输入图像描述

所以我使用图片中基础的 TCP 坐标来创建我的矩阵。因此,我将每个角度的旋转矩阵相乘——> R= rot(rx)*rot(ry)*rot(rz)。我使用了平移向量 t= (xyz)。然后我的变换矩阵是 T= [R t; 0 0 0 1]。还是我的想法有问题?

也许你们中的一个可以帮助我。如果有任何问题,请随时提问。也许您还知道另一种在 python 或 Matlab 中使用棋盘进行手眼校准的好算法(请不要使用 ROS)。

标签: matlabcameraroboticscalibration

解决方案


推荐阅读