由于手眼标定不佳(标定板移动或移位),无法安全执行触摸测试。

问题

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

手眼变换

手眼残差

投影验证

触碰测试

不安全

If the calibration board moved or shifted during acquisition, secure it and repeat the hand-eye calibration (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.994

0.040

0.099

-84.190

-0.042

0.999

0.021

-84.129

-0.098

-0.025

0.995

147.697

0

0

0

1

For this setup, the value 147.697 is expected to be approximately 130 mm, and the value -84.129 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)

13

2.449

5.590

4.626

10.946

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

5.590

10.946

2

4.864

6.151

3

5.294

5.707

4

1.682

7.975

5

1.537

4.446

6

1.570

6.958

7

1.738

2.492

8

0.950

2.917

9

1.973

5.113

10

1.546

0.831

11

1.851

0.773

12

1.701

3.509

13

1.544

2.329

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:

在采集数据集的过程中,相机或标定板发生了移动。

在数据集采集过程中,标定板(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. 确保相机和标定板安装牢固,在数据采集过程中不会移动。

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

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

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

../../_images/touching-test-result-aruco.jpg
重现问题(故意移动标定板)

良好的数据集

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

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

标定结果如下:

手眼变换矩阵

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

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

Bad Dataset (calibration board moved on purpose)

为了模拟这个问题,在采集数据集期间,故意在两次采集之间移动了标定板(见下图)。

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

标定结果如下。

手眼变换矩阵

0.994

0.040

0.099

-84.190

-0.042

0.999

0.021

-84.129

-0.098

-0.025

0.995

147.697

0

0

0

1

残差

N(位姿)

平均旋转角度残差(°)

最大旋转角度残差(°)

平均平移残差(mm)

最大平移残差(mm)

13

2.449

5.590

4.626

10.946

全部的残差数据
残差

位姿

旋转角度(°)

平移量(mm)

1

5.590

10.946

2

4.864

6.151

3

5.294

5.707

4

1.682

7.975

5

1.537

4.446

6

1.570

6.958

7

1.738

2.492

8

0.950

2.917

9

1.973

5.113

10

1.546

0.831

11

1.851

0.773

12

1.701

3.509

13

1.544

2.329

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

差(棋盘被移动过)

-84.190

-84.129

147.697

Δ(好 - 差)

28.254

-7.790

-19.611

残差

数据集

N

平均旋转角度残差(°)

最大旋转角度残差(°)

平均平移残差(mm)

最大平移残差(mm)

好(标定板稳定固定)

14

0.022

0.034

0.180

0.338

差(棋盘被移动过)

13

2.449

5.590

4.626

10.946