手眼标定结果不理想(相机超出工作距离)

问题

The hand-eye calibration results are marginal, with unsatisfactory touch test results (typically marginal errors in all axes). The calibration results look like one of the following combinations:

手眼变换

手眼残差

投影验证

触碰测试

合理的

尚可

欠佳

尚可

合理的

尚可

If the camera is mounted outside its recommended working distance, re-acquire the dataset within the recommended range and repeat the hand-eye calibration (see Potential Solution below).

临界状态的手眼标定结果示例。

手眼变换矩阵看起来合理,与粗略的手动测量结果一致(见下表和图像)。

手眼变换矩阵

0.999

-0.006

0.043

-59.008

0.005

1.000

0.026

-88.747

-0.044

-0.025

0.999

129.722

0

0

0

1

../../_images/eye_in_hand_approximate_hand_eye_matrix.png

标定的残差在可接受的范围内,表明优化已成功收敛。

残差

N(位姿)

平均旋转角度(°)

最大旋转角度(°)

平均平移残差(mm)

最大平移残差(mm)

14

0.099

0.259

0.344

0.823

对于小型机器人,我们预计残差在亚毫米范围内;而对于大型机器人,残差则在毫米范围内。至于残差的旋转分量,我们预计其在亚度范围内。

全部的残差数据
残差

位姿

旋转角度(°)

平移量(mm)

1

0.080

0.229

2

0.109

0.157

3

0.043

0.142

4

0.095

0.148

5

0.122

0.553

6

0.118

0.383

7

0.028

0.610

8

0.069

0.423

9

0.125

0.277

10

0.146

0.823

11

0.260

0.229

12

0.046

0.083

13

0.057

0.628

14

0.091

0.130

通过投影验证成功。

../../_images/projection_verification_good.png

触碰测试结果不理想。例如,触碰测试工具的尖端未能准确触及ArUco标记的中心(x轴和y轴方向均有误差),并且会按压ArUco标记(z轴方向有误差)。

潜在原因

数据集是在标定物体位于 相机的推荐工作距离 之外捕获的。

Zivid 相机已经经过标定,可在有效工作距离内提供最佳尺寸精度。超出工作距离后,点云图像可能仍然良好,但尺寸精度会随着距离的增加而逐渐下降。当尺寸精度过差时,手眼标定的结果可能不理想,触碰测试也可能失败。

潜在解决方案

  1. 在相机推荐的工作距离内重新采集手眼标定数据集。如果可能,尽量在最佳工作距离内进行操作,以获得最佳结果。请参阅 适用于您的相机型号的工作距离

  2. 使用新数据集重复进行手眼标定。

  3. 验证手眼标定结果(变换矩阵、残差、投影)。

  4. 重新运行触碰测试(如果手眼标定结果良好)。

../../_images/touching-test-result-aruco.jpg
重现问题(手眼标定超出工作距离)

本节中介绍的所有手眼标定均使用 Zivid 2+ MR60 相机进行,其工作距离如下:

  • 建议工作距离:300 毫米 - 1100 毫米

  • 最佳工作距离:350 毫米 - 900 毫米

良好数据集(在工作范围内)

在采集手眼标定数据集时,标定物体位于距离相机 z 轴约 900 毫米处。这在推荐的工作距离 300-1100 毫米范围内,并且处于 Zivid 2+ MR60 相机最佳工作距离 350-900 毫米的边界。

../../_images/hand-eye-calibration-optimal-distance-dataset.png
手眼变换矩阵

0.999

-0.004

0.043

-56.943

0.003

1.000

0.027

-90.317

-0.043

-0.027

0.999

128.422

0

0

0

1

残差

N(位姿)

平均旋转角度(°)

最大旋转角度(°)

平均平移残差(mm)

最大平移残差(mm)

14

0.056

0.115

0.270

0.383

全部的残差数据
残差

位姿

旋转角度(°)

平移量(mm)

1

0.070

0.184

2

0.051

0.295

3

0.076

0.321

4

0.049

0.383

5

0.055

0.128

6

0.030

0.328

7

0.052

0.211

8

0.020

0.337

9

0.018

0.256

10

0.088

0.345

11

0.022

0.368

12

0.111

0.093

13

0.027

0.264

14

0.115

0.344

Verification by Projection technically succeeds, but the resulting error is still too large to be acceptable. Projection verification error can seem acceptable even if the hand-eye calibration is incorrect, so treat a passing result with caution.

../../_images/projection_verification_good.png

然后通过触碰测试验证手眼标定。

触碰测试成功,证实了手眼标定的正确性和准确性。

错误数据集(超出工作范围)

在采集手眼标定数据集时,标定物体位于距离相机 z 轴约 1300 毫米处。这超过了 Zivid 2+ MR60 相机推荐的工作距离 300-1100 毫米。

../../_images/hand-eye-calibration-far-distance-dataset.png

标定结果如下:

手眼变换矩阵

0.999

-0.006

0.043

-59.008

0.005

1.000

0.026

-88.747

-0.044

-0.025

0.999

129.722

0

0

0

1

残差

N(位姿)

平均旋转角度(°)

最大旋转角度(°)

平均平移残差(mm)

最大平移残差(mm)

14

0.099

0.259

0.344

0.823

全部的残差数据
残差

位姿

旋转角度(°)

平移量(mm)

1

0.080

0.229

2

0.109

0.157

3

0.043

0.142

4

0.095

0.148

5

0.122

0.553

6

0.118

0.383

7

0.028

0.610

8

0.069

0.423

9

0.125

0.277

10

0.146

0.823

11

0.260

0.229

12

0.046

0.083

13

0.057

0.628

14

0.091

0.130

投影验证成功。

../../_images/projection_verification_poor.png

触碰测试结果不理想,因为触碰测试工具的尖端没有对准 ArUco 标记的中心(x 轴和 y 轴误差),反而按压了 ArUco 标记(z 轴误差)。

比较

下表比较了手眼标定矩阵(平移值)和手眼标定残差的结果。

手眼变换矩阵中的转换值

数据集

X (mm)

Y (mm)

Z (mm)

好(在工作距离内)

-56.943

-90.317

128.422

差(超出工作距离)

-59.008

-88.747

129.722

Δ(好 - 差)

2.065

-1.570

-1.300

残差

数据集

N

平均旋转角度(°)

最大旋转角度(°)

平均平移残差(mm)

最大平移残差(mm)

好(在工作距离内)

14

0.056

0.115

0.270

0.383

差(超出工作距离)

14

0.099

0.259

0.344

0.823