用于手眼标定的Zivid CLI工具

本教程描述了如何使用命令行界面(CLI)工具进行手眼标定。 以下是包含了屏幕截屏的分步说明。

备注

使用*.yaml文件格式记录机器人位姿的ZividExperimentalHandEyeCalibration.exe CLI工具是 实验性的。 它将被一个GUI代替。

要求

操作说明

采集数据集

如果您还没有阅读关 于 手眼标定 的完整教程 ,我们建议您先观看该教程。要保证能够正确采集数据集,请至少阅读 手眼标定的流程 了解有关所需机器人位姿的信息,并学习 如何在 Zivid 标定对象上获取高质量数据。另外,阅读 注意事项和建议 也会非常有帮助。

假定数据集包含10-20 组数据,其中包含了.zdf格式的 Zivid 标定对象 点云文件和记录了对应的机器人位姿的.yaml格式的文件。命名规则为:

  • 点云: img01.zdf、img02.zdf、img03.zdf 等

  • 机器人位姿: pos01.yaml、pos02.yaml、pos03.yaml 等

小心

机器人位姿的平移部分必须以毫米为单位。

CLI 工具可与 Zivid 棋盘格或 ArUco 标记配合使用。但是,与 SDK 不同,CLI 工具仅与单个 ArUco 标记字典配合使用:DICT_4X4_50。

这是一个可供下载的机器人位姿的示例 - pos01.yaml。如需了解如何写入/读取.yaml格式的文件,请查看 OpenCV YAML file storage class。数据集文件夹应如下内容:

小心

机器人位姿文件是.yaml文件格式,不像相机设置和配置文件是.yml文件格式。

../../../_images/hand-eye-dataset-in-explorer-screenshot.png

运行手眼标定CLI工具

同时按下键盘上的Win+R键启动命令提示符,然后键入 cmd 并 按 Enter 键。

../../../_images/run-cmd-windows.png

导航到您安装Zivid软件的文件夹:

cd C:\Program Files\Zivid\bin>
../../../_images/cmd_zivid_folder.png

通过输入以下命令即可显示 ZividExperimentalHandEyeCalibration.exe CLI工具的输入和输出:

ZividExperimentalHandEyeCalibration.exe -h
../../../_images/hand_eye_cmd_help.png

要运行 ZividExperimentalHandEyeCalibration.exe CLI 工具,您必须指定:

  • 标定的类型(eye-in-hand或eye-to-hand)

  • 数据集(.zdf文件和.yaml机器人位姿)的路径。

指定要保存生成的手眼转换和残差的位置也很方便,请参见下面的示例:

SET dataset=C:\Users\Public\Documents\Directory_where_dataset_is_located
ZividExperimentalHandEyeCalibration.exe --eth -d "%dataset%" --tf "%dataset%\transform.yaml" --rf "%dataset%\residuals.yaml"
  • 标定的类型(eye-in-hand或eye-to-hand)

  • 数据集(.zdf文件和.yaml机器人位姿)的路径。

  • 使用的 ArUco 标记的 ID

指定要保存生成的手眼转换和残差的位置也很方便,请参见下面的示例:

SET dataset=C:\Users\Public\Documents\Directory_where_dataset_is_located
ZividExperimentalHandEyeCalibration.exe --eth -d "%dataset%" --tf "%dataset%\transform.yaml" --rf "%dataset%\residuals.yaml" --ids 1, 2, 3

在运行期间,如果算法能够检测到校准对象,则输出("OK"),如果无法检测到,则输出("FAILED")。 在检测完成之后,它将输出手眼转换的结果(4x4齐次变换矩阵)。 最后将输出每个位姿的 手眼标定的残差 。 请参阅下面的输出的示例。

../../../_images/hand_eye_cmd_results.png

然后可以使用生成的齐次变换矩阵 (eyeInHandTransform.yaml) 将拾取点坐标或基于相机坐标系的整个点云转换到机器人基坐标系。 要进行该转换,请查看 如何使用手眼标定的结果