手眼标定的残差

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

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

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

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

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

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

With all feature point sets from the dataset, a set of reference feature points is found that represents the arithmetic mean of all other feature point sets. This means that each feature point of the reference set has coordinates so that the sum of Euclidean distances from its counterpart feature point, from the other sets, is minimized. This is represented by the black enlarged sphere in the zoomed in view. Zivid software then estimates the pose of each feature point set, including the reference set. Finally, translational and rotational residuals are calculated as the relative position and orientation between the reference feature point set and all other feature point sets. The translational residual is given as the Euclidean distance between the reference frames that represent the two feature point sets. The rotational residual is given as the angle of the angle-axis representation between the two reference frames.

小技巧

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

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

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