手眼标定结果不理想(相机超出工作距离)
问题
手眼标定结果勉强合格,触碰测试结果不理想(通常表现为各轴均存在临界误差)。该标定结果看起来像是以下某种组合之一:
手眼变换 |
手眼残差 |
投影验证 |
触碰测试 |
|---|---|---|---|
合理的 |
尚可 |
欠佳 |
尚可 |
合理的 |
好 |
好 |
尚可 |
临界状态的手眼标定结果示例。
手眼变换矩阵看起来合理,与粗略的手动测量结果一致(见下表和图像)。
0.999 |
-0.006 |
0.043 |
-59.008 |
0.005 |
1.000 |
0.026 |
-88.747 |
-0.044 |
-0.025 |
0.999 |
129.722 |
0 |
0 |
0 |
1 |
标定的残差在可接受的范围内,表明优化已成功收敛。
N(位姿) |
平均旋转角度(°) |
最大旋转角度(°) |
平均平移残差(mm) |
最大平移残差(mm) |
|---|---|---|---|---|
14 |
0.099 |
0.259 |
0.344 |
0.823 |
对于小型机器人,我们预计残差在亚毫米范围内;而对于大型机器人,残差则在毫米范围内。至于残差的旋转分量,我们预计其在亚度范围内。
全部的残差数据
位姿 |
旋转角度(°) |
平移量(mm) |
|---|---|---|
1 |
0.080 |
0.229 |
2 |
0.109 |
0.157 |
3 |
0.043 |
0.142 |
4 |
0.095 |
0.148 |
5 |
0.122 |
0.553 |
6 |
0.118 |
0.383 |
7 |
0.028 |
0.610 |
8 |
0.069 |
0.423 |
9 |
0.125 |
0.277 |
10 |
0.146 |
0.823 |
11 |
0.260 |
0.229 |
12 |
0.046 |
0.083 |
13 |
0.057 |
0.628 |
14 |
0.091 |
0.130 |
通过投影验证成功。
触碰测试结果不理想。例如,触碰测试工具的尖端未能准确触及ArUco标记的中心(x轴和y轴方向均有误差),并且会按压ArUco标记(z轴方向有误差)。
潜在原因
数据集是在标定物体位于 相机的推荐工作距离 之外捕获的。
Zivid 相机已经经过标定,可在有效工作距离内提供最佳尺寸精度。超出工作距离后,点云图像可能仍然良好,但尺寸精度会随着距离的增加而逐渐下降。当尺寸精度过差时,手眼标定的结果可能不理想,触碰测试也可能失败。
潜在解决方案
在相机推荐的工作距离内重新采集手眼标定数据集。如果可能,尽量在最佳工作距离内进行操作,以获得最佳结果。请参阅 适用于您的相机型号的工作距离 。
使用新数据集重复进行手眼标定。
验证手眼标定结果(变换矩阵、残差、投影)。
重新运行触碰测试(如果手眼标定结果良好)。
重现问题(手眼标定超出工作距离)
本节中介绍的所有手眼标定均使用 Zivid 2+ MR60 相机进行,其工作距离如下:
建议工作距离:300 毫米 - 1100 毫米
最佳工作距离:350 毫米 - 900 毫米
良好数据集(在工作范围内)
在采集手眼标定数据集时,标定物体位于距离相机 z 轴约 900 毫米处。这在推荐的工作距离 300-1100 毫米范围内,并且处于 Zivid 2+ MR60 相机最佳工作距离 350-900 毫米的边界。
0.999 |
-0.004 |
0.043 |
-56.943 |
0.003 |
1.000 |
0.027 |
-90.317 |
-0.043 |
-0.027 |
0.999 |
128.422 |
0 |
0 |
0 |
1 |
N(位姿) |
平均旋转角度(°) |
最大旋转角度(°) |
平均平移残差(mm) |
最大平移残差(mm) |
|---|---|---|---|---|
14 |
0.056 |
0.115 |
0.270 |
0.383 |
全部的残差数据
位姿 |
旋转角度(°) |
平移量(mm) |
|---|---|---|
1 |
0.070 |
0.184 |
2 |
0.051 |
0.295 |
3 |
0.076 |
0.321 |
4 |
0.049 |
0.383 |
5 |
0.055 |
0.128 |
6 |
0.030 |
0.328 |
7 |
0.052 |
0.211 |
8 |
0.020 |
0.337 |
9 |
0.018 |
0.256 |
10 |
0.088 |
0.345 |
11 |
0.022 |
0.368 |
12 |
0.111 |
0.093 |
13 |
0.027 |
0.264 |
14 |
0.115 |
0.344 |
投影验证在技术上是成功的,但产生的误差仍然过大,无法接受。我们应该对投影验证持非常谨慎的态度,因为即使手眼标定不正确,投影误差也可能看起来可以接受。
然后通过触碰测试验证手眼标定。
触碰测试成功,证实了手眼标定的正确性和准确性。
错误数据集(超出工作范围)
在采集手眼标定数据集时,标定物体位于距离相机 z 轴约 1300 毫米处。这超过了 Zivid 2+ MR60 相机推荐的工作距离 300-1100 毫米。
标定结果如下:
0.999 |
-0.006 |
0.043 |
-59.008 |
0.005 |
1.000 |
0.026 |
-88.747 |
-0.044 |
-0.025 |
0.999 |
129.722 |
0 |
0 |
0 |
1 |
N(位姿) |
平均旋转角度(°) |
最大旋转角度(°) |
平均平移残差(mm) |
最大平移残差(mm) |
|---|---|---|---|---|
14 |
0.099 |
0.259 |
0.344 |
0.823 |
全部的残差数据
位姿 |
旋转角度(°) |
平移量(mm) |
|---|---|---|
1 |
0.080 |
0.229 |
2 |
0.109 |
0.157 |
3 |
0.043 |
0.142 |
4 |
0.095 |
0.148 |
5 |
0.122 |
0.553 |
6 |
0.118 |
0.383 |
7 |
0.028 |
0.610 |
8 |
0.069 |
0.423 |
9 |
0.125 |
0.277 |
10 |
0.146 |
0.823 |
11 |
0.260 |
0.229 |
12 |
0.046 |
0.083 |
13 |
0.057 |
0.628 |
14 |
0.091 |
0.130 |
投影验证成功。
触碰测试结果不理想,因为触碰测试工具的尖端没有对准 ArUco 标记的中心(x 轴和 y 轴误差),反而按压了 ArUco 标记(z 轴误差)。
比较
下表比较了手眼标定矩阵(平移值)和手眼标定残差的结果。
数据集 |
X (mm) |
Y (mm) |
Z (mm) |
|---|---|---|---|
好(在工作距离内) |
-56.943 |
-90.317 |
128.422 |
差(超出工作距离) |
-59.008 |
-88.747 |
129.722 |
Δ(好 - 差) |
2.065 |
-1.570 |
-1.300 |
数据集 |
N |
平均旋转角度(°) |
最大旋转角度(°) |
平均平移残差(mm) |
最大平移残差(mm) |
|---|---|---|---|---|---|
好(在工作距离内) |
14 |
0.056 |
0.115 |
0.270 |
0.383 |
差(超出工作距离) |
14 |
0.099 |
0.259 |
0.344 |
0.823 |