由于手眼标定不佳(手眼配置错误),触碰测试不安全。
问题
手眼标定结果很差,进行触碰测试是不安全的。
手眼变换 |
手眼残差 |
投影验证 |
触碰测试 |
|---|---|---|---|
差 |
差 |
差 |
不安全 |
手眼标定结果不佳的示例
手眼变换矩阵看起来不正确,因为它的几个值与实际测量值之间的偏差超出了预期。这些偏差虽然不算特别大,但对于这种设置来说已经超出了合理范围。
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 |
数值 -286.632 应约为 130 mm,而 1183.24 则大致为 90 mm。此阶段我们忽略正负号(+/-),因为它取决于坐标系的定义;我们仅关注距离大小。
标定的残差也明显大于预期,大约高出一个数量级。
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 |
投影验证在技术上是成功的,但产生的误差仍然过大,无法接受。我们应该对投影验证持非常谨慎的态度,因为即使手眼标定不正确,投影误差也可能看起来可以接受。
这些结果强烈表明手眼标定不正确,如果尝试进行触碰测试将会失败。
潜在原因
手眼标定使用了错误的手眼配置( Eye-in-Hand 或 Eye-to-Hand ),这意味着求解器获得了关于物理设置的错误信息。
因此,您可能会看到较高的残差、较差的投影精度,以及手眼变换矩阵中距离与真实几何形状存在差异。在严重的情况下,由此产生的变换可能会因碰撞风险而使触碰测试验证变得不安全。
潜在解决方案
请确保使用与您的实际设置相匹配的正确手眼配置进行手眼标定:
Eye-to-Hand:相机固定在环境中,机器人移动标定对象(即*标定物体在机械臂上*或*固定安装/静态的相机*)。
Eye-in-Hand:相机安装在机器人上,标定板固定在环境中(即*标定对象在机械臂外*或*手臂安装/移动的相机*)。
使用同一数据集重复进行手眼标定。
验证手眼标定结果(变换矩阵、残差、投影)。
运行触碰测试(如果手眼标定结果良好)。
重现问题(手眼配置错误)
良好的数据集
使用下图所示的数据集成功进行了手眼标定。
标定结果如下。
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 |
通过触碰测试验证了手眼标定。
触碰测试成功,证实了手眼标定的正确性和准确性。
错误数据集
为了模拟该问题,我们使用错误的手眼配置( 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 |
投影验证在技术上成功了,但误差仍然过大,无法接受。对于投影验证,我们应该非常谨慎,因为即使手眼标定不正确,投影误差也可能看起来可以接受。
这些结果强烈表明手眼标定不正确,如果尝试进行触碰测试将会失败,因此出于安全原因跳过了该测试。
比较
下表比较了手眼变换矩阵(平移值)和手眼标定残差之间的结果。
数据集 |
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 |