由于手眼标定不佳,触碰测试不安全(数据集仅包含平移变化)。
问题
手眼标定结果很差,进行触碰测试是不安全的。
手眼变换 |
手眼残差 |
投影验证 |
触碰测试 |
|---|---|---|---|
差 |
差 |
差 |
不安全 |
手眼标定结果不佳的示例
手眼变换矩阵看起来不正确,因为它的几个值与物理测量值相差极大,对于这种设置来说不合理。
0.999 |
-0.005 |
0.003 |
6041.859 |
0.005 |
0.999 |
0.024 |
4033.240 |
-0.003 |
-0.024 |
1.000 |
590.926 |
0 |
0 |
0 |
1 |
数值 590.926 应约为 130 mm,而 4033.240 则大致为 90 mm。现阶段我们忽略正负号(+/-),因为它取决于坐标系的定义;我们仅关注距离大小。
标定的残差也明显大于预期,大约高出一个数量级。
N(位姿) |
平均旋转角度(°) |
最大旋转角度(°) |
平均平移残差(mm) |
最大平移残差(mm) |
|---|---|---|---|---|
7 |
0.033 |
0.108 |
2.623 |
5.001 |
对于小型机器人,我们预计残差在亚毫米范围内;而对于大型机器人,残差则在毫米范围内。至于残差的旋转分量,我们预计其在亚度范围内。
全部的残差数据
位姿 |
旋转角度(°) |
平移量(mm) |
|---|---|---|
1 |
0.031 |
1.189 |
2 |
0.020 |
4.366 |
3 |
0.108 |
5.001 |
4 |
0.022 |
1.581 |
5 |
0.028 |
0.765 |
6 |
0.018 |
1.977 |
7 |
0.007 |
3.482 |
投影验证在技术上是成功的,但产生的误差仍然过大,无法接受。我们应该对投影验证持非常谨慎的态度,因为即使手眼标定不正确,投影误差也可能看起来可以接受。
这些结果强烈表明手眼标定不正确,如果尝试进行触碰测试将会失败。
潜在原因
数据集中的机器人位姿之间只进行了平移运动。
这对于手眼标定来说是不够的,因为求解器需要旋转运动才能唯一确定相机相对于机器人的方向。如果没有旋转运动,问题就会变成欠约束问题,导致手眼标定结果不稳定或错误、残差较大、投影验证失败以及触碰测试不安全。
潜在解决方案
确保数据集中包含机器人位姿之间的平移和旋转运动。
注意:请查看 如何获取用于手眼标定的优质数据集 。
重新运行手眼标定(使用正确的数据集)。
验证手眼标定结果(变换矩阵、残差、投影)。
运行触碰测试(如果手眼标定结果良好)。
重现问题(数据集中仅包含平移变化)
良好的数据集
使用下图所示的数据集成功进行了手眼标定。
标定结果如下:
手眼变换矩阵 0.9991385
-0.00262377
0.04141687
-55.73573
0.001416378
0.9995739
0.02915465
-91.3017
-0.04147572
-0.02907087
0.9987165
129.1951
0
0
0
1
N(位姿) |
平均旋转角度(°) |
最大旋转角度(°) |
平均平移残差(mm) |
最大平移残差(mm) |
|---|---|---|---|---|
14 |
0.028 |
0.068 |
0.133 |
0.278 |
全部的残差数据
位姿 |
旋转角度(°) |
平移量(mm) |
|---|---|---|
1 |
0.030 |
0.149 |
2 |
0.039 |
0.278 |
3 |
0.021 |
0.065 |
4 |
0.037 |
0.138 |
5 |
0.013 |
0.272 |
6 |
0.014 |
0.079 |
7 |
0.018 |
0.133 |
8 |
0.013 |
0.075 |
9 |
0.038 |
0.088 |
10 |
0.015 |
0.061 |
11 |
0.026 |
0.179 |
12 |
0.036 |
0.065 |
13 |
0.068 |
0.209 |
14 |
0.023 |
0.066 |
通过触碰测试验证了手眼标定。
触碰测试成功,证实了手眼标定的正确性和准确性。
错误数据集(只有平移而没有旋转变化的数据集)
使用下图所示的数据集进行手眼标定,该数据集仅包含平移彼变化,不包含旋转变化。
标定结果如下:
手眼变换矩阵 0.999
-0.005
0.003
6041.859
0.005
0.999
0.024
4033.240
-0.003
-0.024
1.000
590.926
0
0
0
1
N(位姿) |
平均旋转角度(°) |
最大旋转角度(°) |
平均平移残差(mm) |
最大平移残差(mm) |
|---|---|---|---|---|
7 |
0.033 |
0.108 |
2.623 |
5.001 |
全部的残差数据
位姿 |
旋转角度(°) |
平移量(mm) |
|---|---|---|
1 |
0.031 |
1.189 |
2 |
0.020 |
4.366 |
3 |
0.108 |
5.001 |
4 |
0.022 |
1.581 |
5 |
0.028 |
0.765 |
6 |
0.018 |
1.977 |
7 |
0.007 |
3.482 |
投影验证在技术上成功了,但误差仍然过大,无法接受。对于投影验证,我们应该非常谨慎,因为即使手眼标定不正确,投影误差也可能看起来可以接受。
这些结果强烈表明手眼标定不正确,如果尝试进行触碰测试,将会失败。
比较
下表比较了手眼变换矩阵(平移值)和手眼标定残差之间的结果。
手眼变换矩阵中的转换值 数据集
X (mm)
Y (mm)
Z (mm)
好
-55.73573
-91.3017
129.1951
差(仅有平移变化)
6041.859
4033.240
590.926
Δ(好 - 差)
-6097.595
-4124.542
-461.731
数据集 |
N |
平均旋转角度(°) |
最大旋转角度(°) |
平均平移残差(mm) |
最大平移残差(mm) |
|---|---|---|---|---|---|
好 |
14 |
0.028 |
0.068 |
0.133 |
0.278 |
差(仅有平移变化) |
7 |
0.033 |
0.108 |
2.623 |
5.001 |