You're viewing an old version of the documentation. Click here to see the latest release.

手眼标定的流程

为了收集执行标定所需的数据,需要人工操作或者自动运行程序来控制机器人执行一系列预设的运动(建议10到20个)。在每次移动结束时,触发相机拍摄一张标定对象的图像,从图像中提取标定对象的位姿,并从机器人控制器获取对应的机器人的位姿。为获得良好的标定质量,相机拍摄标定对象图像时使用的机器人位姿应该:

  • 明显的不同

  • 使用所有机器人关节

从而获取多种不同视角的图像。下图展示了eye-to-hand和eye-in-hand所需的不同的成像位姿, 同时,标定对象应在相机的视野中完全可见。

../../../_images/hand-eye-poses.png ../../../_images/hand-eye-calibration-board-poses.png

接下来的任务是通过求解齐次变换方程来估计标定对象位置和手眼变换位置的旋转和平移分量。

手眼标定流程的步骤:

小技巧

建议对相机进行 预热 ,并在进行手眼标定之前运行 现场标定 。可在预热、现场标定和手眼标定期间使用与您的应用相同的捕获周期。如需进一步降低与温度相关的性能因素的影响,请启用 热稳定功能

  1. 将机器人移动到一个新的位姿

  2. 记录末端执行器的姿势

  3. 对标定对象进行成像(获取其位姿)

  4. 多次重复步骤1-3,例如10-20次

  5. 计算手眼坐标变换关系

查看我们 在 C++ samples 中的交互式手眼标定代码示例。或者使用 用于手眼标定的Zivid CLI工具 来计算手眼转换关系。 用户可通过该命令行界面使用在步骤1-3中收集的数据集来计算转换矩阵和残差。这些结果将保存在用户指定的文件夹中,此CLI工具是 实验性的,最终将被一个图形界面取代。

继续阅读有关手眼标定的 注意事项和建议