由于手眼标定不佳(手眼配置错误),触碰测试不安全。
问题
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.
标定的残差也明显大于预期,大约高出一个数量级。
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.
这些结果强烈表明手眼标定不正确,如果尝试进行触碰测试将会失败。
潜在原因
手眼标定使用了错误的手眼配置( 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.
潜在解决方案
请确保使用与您的实际设置相匹配的正确手眼配置进行手眼标定:
Eye-to-Hand:相机固定在环境中,机器人移动标定对象(即*标定物体在机械臂上*或*固定安装/静态的相机*)。
Eye-in-Hand:相机安装在机器人上,标定板固定在环境中(即*标定对象在机械臂外*或*手臂安装/移动的相机*)。
使用同一数据集重复进行手眼标定。
验证手眼标定结果(变换矩阵、残差、投影)。
运行触碰测试(如果手眼标定结果良好)。
重现问题(手眼配置错误)
良好的数据集
使用下图所示的数据集成功进行了手眼标定。
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.
触碰测试成功,证实了手眼标定的正确性和准确性。
错误数据集
为了模拟该问题,我们使用错误的手眼配置( 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.
这些结果强烈表明手眼标定不正确,如果尝试进行触碰测试将会失败,因此出于安全原因跳过了该测试。
比较
下表比较了手眼变换矩阵(平移值)和手眼标定残差之间的结果。
数据集 |
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 |