手眼标定的残差

为了评估手眼标定的结果,我们需要一种检查残差的方法。我们将会解释手眼标定残差的含义以及如何计算它们。

对于数据集中的每个 标定对象 的点云,Zivid 软件都会提取一定数量的特征点。我们将此特征点集合称为特征点集。

../../../_images/hand-eye-calibration-board-to-feature-points.png

可以通过手眼标定的结果来计算坐标变换。该坐标变换可以将特征点集从相机坐标系转换到机器人基坐标系。假设机器人系统的每个元素(即相机、机器人和手眼标定算法)都是完美的,则任意一个转换集中的特征点与数据集里其它转换集中对应的点的坐标是相同的。视觉效果来看就是3D空间中的所有特征点集都是重叠的。 但是实际情况并非如此,而是总会有一些残差。所以实际视觉效果是不同集合的相同特征点不会完全重叠,如下图所示,这是一个手眼标定实验的特征点集的示意图。

../../../_images/hand-eye-calibration-residuals-visualized.png

我们接下来将介绍如何使用Zivid软件计算残差。

可以在数据集中的特征点集中找到一组代表其它所有特征点集的算术平均值的参考特征点。这意味着参考集的每个特征点都具有坐标,从而使与其他集的中对应的特征点的欧几里得距离之和最小化。这由放大视图中的黑色放大球体表示。 然后Zivid 软件会估计每个特征点集的位姿,包括参考集的。最后将计算出平移和旋转残差,即参考特征点集与所有其他特征点集之间的相对位置和方向。平移残差由表征两个特征点集的参考系之间的欧几里德距离计算得出。旋转残差由两个参考系之间的 angle-axis representation 的角度计算得出。

小技巧

手眼标定方法已于Zivid SDK 2.4更新以提高其精度。最新的标定方法使得平移残差降低了约50%,这是以略微增加旋转残差为代价实现的。这是因为现在所有点都更接近其他特征点集中的对应点。

../../../_images/hand-eye-calibration-residuals-visualized-improvement.png ../../../_images/hand-eye-calibration-residuals-visualized-improvement-histograms.png

继续阅读 如何使用手眼标定的结果