机器人 - 相机校准工具

来自Photoneo 知识库
Alan讨论 | 贡献2018年4月10日 (二) 03:26的版本
跳转至: 导航搜索
Robot-Camera Calibration Tool,版本:0.8 beta

机器人 - 相机校准工具用于查找相机(PhoXi 3D扫描仪)和机器人坐标空间之间的转换。计算矩阵将相机坐标系中的点转换为机器人坐标系。

您需要获得许可的USB Dongle才能运行该应用程序。

校准过程

准备

  1. 安装机器人和摄像机,使它们的相互位置固定。
  2. 获取校准球。这可能是一个乒乓球或一个轴承球。 (使用轴承球时,确保它不太亮,以便扫描仪可以高精度定位。)
  3. 将校准球放入抓取点的机器人抓手中。
  4. 启动PhoXi控制应用程序。
  5. 插入您的授权USB Dongle。
  6. 启动机器人 - 相机校准工具,选择所需的3D PhoXi扫描仪,然后按<编码>连接</ code>按钮。
  7. 设置应用程序中校准球的半径。该值用于在捕获的3D扫描中定位校准球。

收集校准点

  1. 将夹持器移动到相机前方。
    • 选择一个有代表性的位置,例如当为拾取箱应用程序进行校准时,这些位置应覆盖拾取所需物体的整个区域。
    • 避免许多机器人位置彼此靠得太近(比球直径的尺寸更近)。选择经常覆盖该地区的地点。
  2. 将机器人坐标系中校准球的位置输入到应用程序中。
    • 提示:如果您使用程序定位机器人,将所有计划位置保存到文件并将其加载到校准表中非常有用。行中的值应该用空格分隔,每行放在新行中。
  3. 将夹具旋转输入应用程序[旋转夹具时必须]。
    • 当夹具旋转不变时,此步骤不是必需的,但通常它会提高校准精度。当球不在夹点时,校准球的实际位置与机器人报告的位置稍有不同。知道夹持器旋转可以消除错位错误
    • 从旋转组合框中选择正确的旋转形式。这种格式用于矩阵计算时的所有点。
  4. 使用 Capture </ code>按钮触发新的扫描并找到校准球。
  5. 重复,直到收集到足够数量的校准点。最低4点。

计算

  1. 点击<code>计算</ code>按钮。
  2. 输出控制台显示计算过程。
    • 注意:如果使用旋转形式,输出还会显示计算的错位矢量,它表示实际放球位置与机器人报告的位置之间的差异。
  3. 表中显示了计算的变换矩阵。将其保存到文件供以后使用。

将转换保存到扫描仪

  1. 打开PhoXi Control App并连接到扫描仪。
  2. 在左侧的选项窗格中,填写CustomTransformation矩阵
    • 旋转矩阵由前3列和3行计算变换矩阵组成
    • 翻译矢量是变换矩阵的第四列
  3. 将选项CoordinateSpace设置为CustomSpace
  4. 标记复选框以永久保存设置,然后单击<code>设置</ code>按钮
  5. 点云现在返回到机器人坐标空间

测试结果

要查看在相机点上应用转换的结果,请按<code>测试</ code>按钮。这将触发新的扫描,定位校准球并将其位置转换为机器人坐标。输出显示在输出控制台中。此过程不会考虑抓手旋转,因为在实际情况下,错位矢量会随着每个拾取的物体而变化。

Validating the transformation accuracy after computation

In this scenario, we put the calibration ball inside the gripper, collected calibration points and ran computation of calibration matrix. We did not moved the calibration ball. To validate the transformation accuracy, we will go through the same robot positions and compare them with values calculated by <code>Test button.

  1. The first testing position in robot space is [0, -600, 100] and the rotation of gripper expressed as rotation vector is [3.14159, 0, 0].
  2. The misplacement vector of our computation was: [-0.0422, -8.0056, 4.4710] (this information is shown in output console after computation the transformation matrix)
  3. We put the robot in first testing position and hit Test button:
    • Calculated ball position in robot space was [-0.435708, -592.207, 95.3183].
    • We add misplacement vector to calculated position, the resulting point is [-0.47791, -600.213, 99.7893] (misplacement vector should be added according to the gripper rotation. In this example, we simply summed the X,Y,Z values)
    • The transformation accuracy is thus less than 0.6 mm.

验证计算后的转换精度

在这种情况下,我们将校准球放入夹具内,收集校准点并运行校准矩阵计算。我们没有移动校准球。为了验证转换精度,我们将通过相同的机器人位置并将它们与Test按钮计算的值进行比较。

  1. 机器人空间中的第一个测试位置是[0,-600,100],夹具的旋转表示为旋转矢量[3.14159,0,0]
  2. 我们计算的错位向量是:[-0.0422,-8.0056,4.4710](在计算转换矩阵后,此信息显示在输出控制台中)
  3. 我们把机器人放在第一个测试位置,然后按下测试</ code>按钮:
    • 机器人空间的计算球位置是[-0.435708,-592.207,95.3183]
    • 我们添加了错位矢量到计算位置,得到的点是['0.47791,-600.213,99.7893](错位矢量应该根据夹具旋转添加,在这个例子中,我们简单地将X ,Y,Z值)
    • 转换精度因此小于0.6毫米。