用于手眼标定的 Zivid CLI 工具
本教程演示如何使用命令行界面 (CLI) 工具进行手眼标定。以下提供了分步说明和屏幕截图。
备注
使用 *.yaml 文件格式存储机器人位姿的 ZividExperimentalHandEyeCalibration.exe 命令行工具目前仍处于 实验阶段。我们建议您改用 手眼标定图形界面 。
要求
操作说明
采集数据集
如果您还没有阅读我们关于 手眼标定 的完整教程,我们强烈建议您阅读。获取数据集的最基本步骤是查看 如何获取用于手眼标定的优质数据集 。此外,阅读 手眼标定的注意事项和建议 也很有帮助。
假定数据集包含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。
Here's an example of a robot pose available for download - pos01.yaml.
It is a 4x4 transformation matrix where the rightmost column (first three rows) holds the translation, here in millimeters (for example 302.8, 647.9, 458.3).
If your robot reports the translation in meters, multiply it by 1000 before saving the pose.
To learn how to write/read files in .yaml format, check out the OpenCV YAML file storage class.
The dataset folder should look similar to this:
小心
机器人位姿文件是.yaml文件格式,不像相机设置和配置文件是.yml文件格式。
运行手眼标定CLI工具
同时按下键盘上的Win+R键启动命令提示符,然后键入 cmd 并 按 Enter 键。
导航到您安装Zivid软件的文件夹:
cd C:\Program Files\Zivid\bin
通过输入以下命令即可显示 ZividExperimentalHandEyeCalibration.exe CLI工具的输入和输出:
ZividExperimentalHandEyeCalibration.exe -h
要运行 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齐次变换矩阵)。 最后将输出每个位姿的 手眼标定的残差 。 请参阅下面的输出的示例。
完成手眼标定后,下一步是验证得到的变换矩阵是否正确且符合精度要求。在文章 如何验证手眼标定 中,我们介绍了几种方法进行相关验证。
然后可以使用生成的齐次变换矩阵 (eyeInHandTransform.yaml) 将拾取点坐标或基于相机坐标系的整个点云转换到机器人基坐标系。 要进行该转换,请查看 如何使用手眼标定结果。