如何在 Zivid 标定对象上获取高质量数据

本教程介绍了如何获取手眼标定中的标定对象的高质量点云。这是使手眼标定算法发挥作用并达到所需精度的关键步骤。我们的目标是配置一种相机设置,无论标定对象位于 FOV 中的何处,都能提供高质量的点云。虽然本教程仅为 Zivid calibration board 提供了点云示例,但相同的原理可以应用于 ArUco 标记。

假设您已经指定了要捕获标定对象点云的机器人位姿。在下一篇文章中,您可以了解到如何选择合适的位姿进行手眼标定。

备注

使用 Zivid calibration board 进行标定时,请确保整块板(包括 ArUco 标记)在每个位姿下都是完全可见的。

备注

使用 ArUco 标记进行标定时,请确保每个位姿至少有一个标记完全可见。如果有更多的标记可见,可以预期获得更好的结果,但这不是必须的要求。

我们将讨论两种位姿:"近端"位姿和"远端"位姿。 "近端"位姿是指相机和标定对象之间的成像距离最小的机器人位姿。在eye-in-hand系统中,这是机器人安装的相机最接近标定对象的位姿。在eye-to-hand系统中,则是机器人将标定对象放置在最靠近固定相机的机器人位姿。

Eye-in-hand系统中用于捕获 `Zivid calibration board`_ 的机器人近端位姿

Eye-to-hand系统中用于捕获 `Zivid calibration board`_ 的机器人近端位姿

Eye-in-hand robot pose for a close capture of Zivid calibration board

Eye-to-hand robot pose for a close capture of Zivid calibration board

"远端"位姿是指相机与标定对象之间成像距离最大的机器人位姿。在eye-in-hand系统中,是机器人上安装的相机距离棋盘格最远的机器人位姿。在eye-to-hand系统中,则是机器人将棋盘格放置在最远离固定相机的机器人位姿。

Eye-in-hand系统中用于捕获 `Zivid calibration board`_ 的机器人最远位姿

Eye-to-hand系统中用于捕获 `Zivid calibration board`_ 的机器人近端位姿

Eye-in-hand robot pose for a close capture of Zivid calibration board

Eye-to-hand robot pose for the farthest capture of Zivid calibration board

小技巧

如果您正在使用 Zivid 标定板进行标定,建议尝试使用 标定板预设设置 在最近和最远的位姿进行成像。如果您获得了良好的结果,则可以跳过本教程的其余部分并继续使用这些设置。请注意,这些预设设置不适用于 ArUco 标记。

预期结果如下图所示:

../../../_images/how-to-get-good-quality-calibration-board-final-result.png

小技巧

如果您正在使用 ArUco 标记进行标定,建议尝试使用 ArUco 标记预设 在最近和最远的位姿进行成像。如果您获得了良好的结果,则可以跳过本教程的其余部分并继续使用这些设置。

../../../_images/how-to-get-good-quality-aruco-marker-final-result.png

获取用于手眼标定的优秀点云的分步过程如下。

可能的情况

在下面的教程中,我们将使用 SNR 图来检查黑白像素的信号质量。随着 SNR 值的增加,颜色指示器从红色变为深蓝色。下面,您将找到 SNR 范围以及您在本教程中可能遇到的所有可能情况。

../../../_images/how-to-get-good-quality-calibration-board-horizontal-SNR-scale.png

黑色区域曝光不足,白色区域的质量不佳。

黑色区域的质量不好,而白色区域的质量令人满意。

黑色区域的质量令人满意,白色区域的质量最佳。

黑色区域的质量最佳,白色区域曝光过度。

黑色和白色区域曝光过度。

The black areas are underexposed, and the quality of the white areas is not good.

The quality of the black areas is not good and the white areas have a satisfactory quality.

The quality of the black areas is satisfactory and the white areas have an optimal quality.

The quality of the black areas is optimal and the white areas are overexposed.

The black and white areas are overexposed.

黑色区域曝光不足,白色区域的质量不佳。

黑色区域的质量不好,而白色区域的质量令人满意。

黑色区域的质量令人满意,白色区域的质量最佳。

黑色区域的质量最佳,白色区域曝光过度。

黑色和白色区域曝光过度。

The black areas are underexposed, and the quality of the white areas is not good.

The quality of the black areas is not good and the white areas have a satisfactory quality.

The quality of the black areas is satisfactory and the white areas have an optimal quality.

The quality of the black areas is optimal and the white areas are overexposed.

The black and white areas are overexposed.

基本设置

首先,我们将定义本教程的基本设置。

  1. 将机器人移至”近端”位姿

  2. 启动 Zivid Studio 并连接到相机

  3. Vision Engine 设置为您在应用中使用的引擎;如果使用预设,请检查预设使用的 Vision Engine。

  4. Sampling, Color 设置为 rgb。

  5. Sampling, Pixel 设置为您在应用中使用的采样设置;如果使用预设,请检查预设使用的 Sampling 设置。

  6. Exposure Time 设置为 10000μs(对于 50Hz 电网频率)或 8333μs(对于 60Hz 电网频率)

  7. 使用 焦深计算器 来设置 f-值

    • 最小焦深(毫米):最远工作距离 - 最近工作距离

    • 最近工作距离(mm):相机与标定对象之间的最近距离

    • 最远工作距离(mm):相机与标定对象之间的最远距离

    • 可接受的模糊半径(像素):1

  8. Projector Brightness(投影仪亮度) 设置为最大值

  9. Gain(增益) 设置为 1

  10. Noise Filter(噪声过滤器) 设置为 5

  11. Outlier Filter(离群值过滤器) 设置为 10

  12. Reflection Filter(反射过滤器) 设置为 global

关闭所有其它过滤器并将所有其它设置保留为其默认值。

优化”近端”位姿的相机设置

对”近端”的白色区域进行微调(Acquisition 1)

在此阶段,请忽略黑色表面的区域,并专注于获取白色表面的良好数据。捕获并分析标定对象的白色区域。在对白色区域进行微调时,请使用以下图像作为示例。

白色区域的图像质量是最佳的,黑色区域可以忽略(SNR图)。

白色区域的图像质量是最佳的,黑色区域可以忽略(深度图)。

The quality of the white areas is optimal, the black areas can be ignored (SNR map).

The quality of the white areas is optimal, the black areas can be ignored (Depth map).

白色区域的图像质量是最佳的,黑色区域可以忽略(SNR图)。

白色区域的图像质量是最佳的,黑色区域可以忽略(深度图)。

The quality of the white areas is optimal, the black areas can be ignored (SNR map).

The quality of the white areas is optimal, the black areas can be ignored (Depth map).

图像曝光不足(白色像素太暗)
  1. 增加 Exposure Time(曝光时间)

以 10000μs [50Hz] 或 8333μs [60Hz] 的增量增加曝光时间,直到在白色区域上获得良好的数据。

  1. 降低 f-number(f-值)

图像曝光过度(白色像素饱和)
  1. 减少 Exposure Time(曝光时间)

    减少曝光时间可能会导致点云上出现波浪现象,这是由于 环境光 (来自电网)的干扰。如果没有波浪现象,请继续减少曝光时间,直到获得白色区域的良好数据。

    如果达到曝光时间限制,并且数据仍不够好或点云呈波浪状,请执行下一个选项。

  2. 增大 f-number(f-值)

  3. 降低 Projector Brightness(投影仪亮度)

此时,四个采集项之一(”Acquisition 1”)即调整完成。

对”近端”的黑色区域进行微调(Acquisition 2)

关闭"Acquisition 1"并克隆它。当前的"Acquisition 2"需要进行调整,以便在标定对象的黑色区域获得良好的数据。因此,预计白色区域会出现过度曝光的情况。以下图为例,由于白色像素曝光过度,我们没有棋盘格中白色部分的数据:

白色像素曝光过度,黑色像素数据良好(SNR 图)。

白色像素曝光过度,黑色像素数据良好(深度图)。

White pixels overexposed and good data on the black pixels (SNR map).

White pixels overexposed and good data on the black pixels (Depth map).

白色像素曝光过度,黑色像素数据良好(SNR 图)。

白色像素曝光过度,黑色像素数据良好(深度图)。

White pixels overexposed and good data on the black pixels (SNR map).

White pixels overexposed and good data on the black pixels (Depth map).

较暗的表面需要较高的曝光。

图像曝光不足(黑色像素太暗)
  1. 增大 Projector Brightness(投影仪亮度)

  2. 增加 Exposure Time(曝光时间)

    以 10000μs [50Hz] 或 8333μs [60Hz] 为增量增加曝光时间,直到标定对象的黑色区域获得良好数据。如果已达到限制,但数据还不够好,请按照下一个选项操作。

  3. 减少 f-number(f-值)

  4. 增加 Gain(增益)

优化”远端”位姿的相机设置

对”远端”的白色区域进行微调(Acquisition 3)

关闭"Acquisition 2"并克隆"Acquisition 1"。让我们再次忽略黑色区域,只关注白色区域。捕获并分析标定对象的白色区域。

图像曝光不足(白色像素太暗)
  1. 增大 Projector Brightness(投影仪亮度)

  2. 增加 Exposure Time(曝光时间)

    以 10000μs [50Hz] 或 8333μs [60Hz] 为增量增加曝光时间,直到标定对象的黑色区域获得良好数据。如果已达到限制,但数据还不够好,请按照下一个选项操作。

  3. 减少 f-number(f-值)

图像曝光过度(白色像素饱和)
  1. 减少 Exposure Time(曝光时间)

    减少曝光时间可能会导致点云上出现波浪现象,这是由于 环境光 (来自电网)的干扰。如果没有波浪现象,请继续减少曝光时间,直到获得白色区域的良好数据。

    如果达到曝光时间限制,并且数据仍不够好或点云呈波浪状,请执行下一个选项。

  2. 增大 f-number(f-值)

  3. 降低 Projector Brightness(投影仪亮度)

对”远端”的黑色区域进行微调(Acquisition 4)

关闭”Acquisition 3”并克隆”Acquisition 2”。

当前的"Acquisition 4"需要进行调整,以便在标定对象的黑色区域获得良好的数据。因此,预计白色区域会出现过度曝光的情况。

较暗的表面需要较高的曝光。

图像曝光不足(黑色像素太暗)
  1. 增大 Projector Brightness(投影仪亮度)

  2. 增加 Exposure Time(曝光时间)

    以 10000μs [50Hz] 或 8333μs [60Hz] 为增量增加曝光时间,直到标定对象的黑色区域获得良好数据。如果已达到限制,但数据还不够好,请按照下一个选项操作。

  3. 减少 f-number(f-值)

  4. 增加 Gain(增益)

至此,四次采集的设置已配置完毕。现在只是缺少添加最终的过滤器设置。

优化过滤器

现在您的点云应该类似于本教程顶部显示的 点云

备注

在大多数情况下,两次采集(一次针对"近端"位姿进行优化,另一次针对"远端"位姿进行优化)将在标定对象上提供高质量的数据。确定正确成像设置的另一个选项是使用Capture Assistant(捕获助手)。然而,它目前仅提供整个场景的最佳设置,而不是专门针对棋盘格。虽然捕获助手对于此目的仍然有效,但建议使用上述方法,因为它始终会产生良好的结果。

现在让我们看看如何实现 手眼标定的流程