由于手眼标定不佳(手眼配置错误),触碰测试不安全。

问题

The hand-eye calibration results are bad, and it is unsafe to perform the touch test.

手眼变换

手眼残差

投影验证

触碰测试

不安全

If hand-eye calibration was run with the wrong configuration (Eye-to-Hand vs. Eye-in-Hand) for your physical setup, run it with the correct configuration (see Potential Solution below).

手眼标定结果不佳的示例

The Hand-Eye Transformation Matrix does not look correct because several of its values differ more than expected from the physical measurements. The differences are not extremely large, but they are beyond what is reasonable for this setup.

手眼变换矩阵

0.626

0.780

0.008

116.163

-0.672

0.545

-0.502

1183.242

-0.396

0.309

0.865

-286.632

0.000

0.000

0.000

1.000

For this setup, the value -286.632 is expected to be approximately 130 mm, and the value 1183.24 is expected to be roughly 90 mm (the expected values depend on your camera-to-calibration-object geometry). At this stage we ignore the sign (+/-), because it depends on the coordinate-system definitions; we focus only on the distances.

../../_images/eye_in_hand_approximate_hand_eye_matrix.png

标定的残差也明显大于预期,大约高出一个数量级。

残差

N(位姿)

平均旋转角度(°)

最大旋转角度(°)

平均平移残差(mm)

最大平移残差(mm)

14

7.847

22.552

26.112

74.373

For smaller robots, we expect the residuals to be in the sub-millimeter range, while for larger robots, the residuals can be in the millimeter range. As for the rotational component of the residuals, we expect them to be in the sub-degree range.

全部的残差数据
残差

位姿

旋转角度(°)

平移量(mm)

1

0.690

6.318

2

9.634

18.759

3

12.329

18.773

4

6.403

17.827

5

6.900

44.173

6

0.662

3.098

7

7.149

17.514

8

8.731

28.463

9

22.552

55.483

10

12.946

24.909

11

0.666

9.978

12

9.530

17.392

13

7.362

74.373

14

4.309

28.505

Verification by Projection technically succeeds, but the resulting error is still too large to be acceptable. Treat projection verification critically, because the projection error can seem acceptable even if the hand-eye calibration is incorrect.

../../_images/projection_verification_poor.png

这些结果强烈表明手眼标定不正确,如果尝试进行触碰测试将会失败。

潜在原因

手眼标定使用了错误的手眼配置( Eye-in-Hand 或 Eye-to-Hand ),这意味着求解器获得了关于物理设置的错误信息。

As a result, you can see high residuals, poor projection accuracy, and a hand-eye transformation matrix whose distances differ from real geometry. In severe cases, the resulting transform can make touch test validation unsafe due to risk of collision.

潜在解决方案

  1. 请确保使用与您的实际设置相匹配的正确手眼配置进行手眼标定:

    • Eye-to-Hand:相机固定在环境中,机器人移动标定对象(即*标定物体在机械臂上*或*固定安装/静态的相机*)。

    • Eye-in-Hand:相机安装在机器人上,标定板固定在环境中(即*标定对象在机械臂外*或*手臂安装/移动的相机*)。

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

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

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

../../_images/touching-test-result-aruco.jpg
重现问题(手眼配置错误)

良好的数据集

使用下图所示的数据集成功进行了手眼标定。

../../_images/hand-eye-calibration-small-movements-dataset.png

The calibration resulted in the following results:

手眼变换矩阵

0.999

-0.004

0.043

-55.936

0.003

0.999

0.013

-91.919

-0.043

-0.013

0.998

128.086

0

0

0

1

残差

N(位姿)

平均旋转角度(°)

最大旋转角度(°)

平均平移残差(mm)

最大平移残差(mm)

14

0.022

0.034

0.180

0.338

全部的残差数据
残差

位姿

旋转角度(°)

平移量(mm)

1

0.017

0.163

2

0.008

0.135

3

0.028

0.172

4

0.009

0.053

5

0.031

0.236

6

0.006

0.060

7

0.009

0.154

8

0.015

0.102

9

0.031

0.147

10

0.009

0.145

11

0.030

0.249

12

0.023

0.152

13

0.034

0.255

14

0.031

0.169

The Hand-Eye calibration was verified with a touch test.

../../_images/touch_test_correct.png

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

错误数据集

为了模拟该问题,我们使用错误的手眼配置( Eye-to-Hand 而 Eye-in-Hand )进行了手眼标定。标定结果如下。

手眼变换矩阵

0.626

0.780

0.008

116.163

-0.672

0.545

-0.502

1183.242

-0.396

0.309

0.865

-286.632

0.000

0.000

0.000

1.000

残差

N(位姿)

平均旋转角度(°)

最大旋转角度(°)

平均平移残差(mm)

最大平移残差(mm)

14

7.847

22.552

26.112

74.373

全部的残差数据
残差

位姿

旋转角度(°)

平移量(mm)

1

0.690

6.318

2

9.634

18.759

3

12.329

18.773

4

6.403

17.827

5

6.900

44.173

6

0.662

3.098

7

7.149

17.514

8

8.731

28.463

9

22.552

55.483

10

12.946

24.909

11

0.666

9.978

12

9.530

17.392

13

7.362

74.373

14

4.309

28.505

Verification by Projection technically succeeded, but the resulting error was still too large to be acceptable. Treat projection verification critically, because the projection error can seem acceptable even if the hand-eye calibration is incorrect.

../../_images/projection_verification_poor.png

这些结果强烈表明手眼标定不正确,如果尝试进行触碰测试将会失败,因此出于安全原因跳过了该测试。

比较

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

手眼变换矩阵中的转换值

数据集

X (mm)

Y (mm)

Z (mm)

-55.936

-91.919

128.086

差(手眼配置错误)

116.163

1183.242

-286.632

Δ(好 - 差)

-172.099

-1275.161

414.718

残差

数据集

N

平均旋转角度(°)

最大旋转角度(°)

平均平移残差(mm)

最大平移残差(mm)

14

0.022

0.034

0.180

0.338

差(手眼配置错误)

14

7.847

22.552

26.112

74.373