手眼标定结果不理想(机器人零点校准/主校准不佳)
问题
手眼标定结果很差,看起来像以下几种组合之一:
手眼变换 |
手眼残差 |
投影验证 |
触碰测试 |
|---|---|---|---|
合理的 |
尚可 |
欠佳 |
差 |
合理的 |
好 |
欠佳 |
差 |
手眼标定结果不佳的示例
手眼变换矩阵看起来合理,与粗略的手动测量结果一致(见下表和图像)。
0.999 |
-0.005 |
0.040 |
-49.956 |
0.003 |
0.999 |
0.037 |
-95.704 |
-0.040 |
-0.037 |
0.998 |
132.236 |
0 |
0 |
0 |
1 |
标定的残差略大于预期。
N(位姿) |
平均旋转角度(°) |
最大旋转角度(°) |
平均平移残差(mm) |
最大平移残差(mm) |
|---|---|---|---|---|
13 |
0.083 |
0.213 |
0.438 |
1.205 |
对于小型机器人,我们预计残差在亚毫米范围内;而对于大型机器人,残差则在毫米范围内。至于残差的旋转分量,我们预计其在亚度范围内。
全部的残差数据
位姿 |
旋转角度(°) |
平移量(mm) |
|---|---|---|
1 |
0.030 |
0.092 |
2 |
0.033 |
0.382 |
3 |
0.045 |
0.201 |
4 |
0.140 |
0.565 |
5 |
0.212 |
1.205 |
6 |
0.032 |
0.273 |
7 |
0.146 |
0.356 |
8 |
0.178 |
0.338 |
9 |
0.57 |
0.491 |
10 |
0.029 |
0.471 |
11 |
0.061 |
0.290 |
12 |
0.043 |
0.234 |
13 |
0.073 |
0.794 |
投影验证在技术上是成功的,但产生的误差仍然过大,无法接受。我们应该对投影验证持非常谨慎的态度,因为即使手眼标定不正确,投影误差也可能看起来可以接受。
触碰测试结果不理想。例如,触碰测试的尖端未能触及ArUco标记。
潜在原因
机器人零点校准(关节零位校准)不正确。
每台工业机器人的关节上都装有编码器。在出现功率损耗、编码器电池故障或拆卸后,机器人会丢失其编码器的绝对位置。因此,需要重新校准控制器,使其精确定位关节零点。
通常情况下,什么时候需要重新校准机器人?
碰撞后
机器人报告 Mastering required , Joint not referenced 或类似信息
机器人移动不准确(TCP漂移)
编码器电池耗尽,导致关节位置丢失
更换接头、电机或齿轮后
更换底座法兰或工具法兰后
潜在解决方案
请确保机器人归零(关节零位校准)正确。当机器人处于零位(所有关节均设置为零)时,机器人连杆和关节上的物理标记应对齐。
使用同一数据集重复进行手眼标定。
验证手眼标定结果(变换矩阵、残差、投影)。
运行触碰测试(如果手眼标定结果良好)。
重现问题(机器人零点校准/主校准不佳)
本节中介绍的所有手眼标定都是使用下图所示的数据集进行的。
良好的数据集(机器人已进行零点校准)
本次手眼标定是在一台已正确归零/主校准的机器人上进行的。标定结果如下:
0.999 |
-0.004 |
0.043 |
-55.558 |
0.003 |
1.000 |
0.013 |
-91.637 |
-0.043 |
-0.013 |
0.999 |
128.629 |
0 |
0 |
0 |
1 |
N(位姿) |
平均旋转角度(°) |
最大旋转角度(°) |
平均平移残差(mm) |
最大平移残差(mm) |
|---|---|---|---|---|
13 |
0.020 |
0.031 |
0.143 |
0.221 |
全部的残差数据
位姿 |
旋转角度(°) |
平移量(mm) |
|---|---|---|
1 |
0.025 |
0.069 |
2 |
0.012 |
0.221 |
3 |
0.017 |
0.140 |
4 |
0.024 |
0.207 |
5 |
0.025 |
0.188 |
6 |
0.007 |
0.123 |
7 |
0.008 |
0.134 |
8 |
0.019 |
0.044 |
9 |
0.027 |
0.116 |
10 |
0.012 |
0.116 |
11 |
0.025 |
0.156 |
12 |
0.027 |
0.179 |
13 |
0.031 |
0.160 |
投影验证成功。
然后通过触碰测试验证了手眼标定。
触碰测试成功,证实了手眼标定的正确性和准确性。
错误数据集(机器人需要进行零点校准)
为了模拟不正确的机器人归零/主校准设置,我们修改了以下关节的角度偏移量:
J2 = J2 + 0.5°
J3 = J3 + 0.5°
J4 = J4 - 0.5°
标定结果如下:
0.999 |
-0.005 |
0.040 |
-49.956 |
0.003 |
0.999 |
0.037 |
-95.704 |
-0.040 |
-0.037 |
0.998 |
132.236 |
0 |
0 |
0 |
1 |
N(位姿) |
平均旋转角度(°) |
最大旋转角度(°) |
平均平移残差(mm) |
最大平移残差(mm) |
|---|---|---|---|---|
13 |
0.083 |
0.213 |
0.438 |
1.205 |
全部的残差数据
位姿 |
旋转角度(°) |
平移量(mm) |
|---|---|---|
1 |
0.030 |
0.092 |
2 |
0.033 |
0.382 |
3 |
0.045 |
0.201 |
4 |
0.140 |
0.565 |
5 |
0.212 |
1.205 |
6 |
0.032 |
0.273 |
7 |
0.146 |
0.356 |
8 |
0.178 |
0.338 |
9 |
0.57 |
0.491 |
10 |
0.029 |
0.471 |
11 |
0.061 |
0.290 |
12 |
0.043 |
0.234 |
13 |
0.073 |
0.794 |
投影验证在技术上成功了,但误差过大,无法接受。对于投影验证,我们应该非常谨慎,因为即使手眼标定不正确,投影误差也可能看起来可以接受。
触碰测试结果不理想,因为触碰测试的尖端没有触碰到 ArUco 标记。
比较
下表比较了手眼标定矩阵(平移值)和手眼标定残差的结果。
数据集 |
X (mm) |
Y (mm) |
Z (mm) |
|---|---|---|---|
良好的零点校准 |
-55.558 |
-91.637 |
128.629 |
错误的零点校准 |
-49.956 |
-95.704 |
132.236 |
Δ(好 - 差) |
-5.602 |
3.933 |
-3.607 |
数据集 |
N |
平均旋转角度(°) |
最大旋转角度(°) |
平均平移残差(mm) |
最大平移残差(mm) |
|---|---|---|---|---|---|
良好的零点校准 |
13 |
0.020 |
0.031 |
0.143 |
0.221 |
错误的零点校准 |
13 |
0.083 |
0.213 |
0.438 |
1.205 |