“机器人 - 相机校准工具”的版本间的差异

来自Photoneo 知识库
跳转至: 导航搜索
 
(未显示同一用户的5个中间版本)
第1行: 第1行:
 
[[File:RobotCameraCalibrationTool_0.8b.png|480px|thumb|Robot-Camera Calibration Tool,版本:0.8 beta]]
 
[[File:RobotCameraCalibrationTool_0.8b.png|480px|thumb|Robot-Camera Calibration Tool,版本:0.8 beta]]
  
'''机器人 - 相机校准工具'''用于查找相机(PhoXi 3D扫描仪)和机器人坐标空间之间的转换。计算矩阵将相机坐标系中的点转换为机器人坐标系。
+
'''机器人 - 相机校准工具'''用于找出相机(PhoXi 3D扫描仪)和机器人坐标空间之间的转换。计算矩阵将相机坐标系中的点转换为机器人坐标系。
  
您需要获得许可的USB Dongle才能运行该应用程序。
+
您需要授权的USB Dongle才能运行该应用程序。
  
 
==校准过程==
 
==校准过程==
  
 
===准备===
 
===准备===
# 安装机器人和摄像机,使它们的相互位置固定。
+
# 安装机器人和相机,使它们的相互位置固定。
# 获取校准球。这可能是一个乒乓球或一个轴承球。 (使用轴承球时,确保它不太亮,以便扫描仪可以高精度定位。)
+
# 取得校准球。这可能是一个乒乓球或一个轴承球。(使用轴承球时,确保它不会太亮,以便扫描仪可以高精度定位它。)
# 将校准球放入抓取点的机器人抓手中。
+
# 将校准球放入在抓取点的机器人抓手中。
 
# 启动PhoXi控制应用程序。
 
# 启动PhoXi控制应用程序。
 
# 插入您的授权USB Dongle。
 
# 插入您的授权USB Dongle。
# 启动机器人 - 相机校准工具,选择所需的3D PhoXi扫描仪,然后按<编码>连接</ code>按钮。
+
# 启动机器人 - 相机校准工具,选择想要的3D PhoXi扫描仪,然后按 <code>Connect</code> 按钮。
# 设置应用程序中校准球的半径。该值用于在捕获的3D扫描中定位校准球。
+
# 在应用程序中设置校准球的半径。该值用于在获取的3D扫描中定位校准球。
  
 
===收集校准点===
 
===收集校准点===
# 将夹持器移动到相机前方。
+
# 将夹持着球的夹持器移动到相机前方。
#* 选择一个有代表性的位置,例如当为拾取箱应用程序进行校准时,这些位置应覆盖拾取所需物体的整个区域。
+
#* 选择一个有代表性的位置,例如当为箱柜拾取应用进行校准时,这些位置应覆盖拾取所需物体的整个区域。
#* 避免许多机器人位置彼此靠得太近(比球直径的尺寸更近)。选择经常覆盖该地区的地点。
+
#* 避免许多机器人位置靠彼此太近(比球的直径尺寸更近)。选择匀称地覆盖该区域的位置。
# 将机器人坐标系中校准球的位置输入到应用程序中。
+
# 将校准球在机器人坐标系中的位置输入到应用程序中。
#* 提示:如果您使用程序定位机器人,将所有计划位置保存到文件并将其加载到校准表中非常有用。行中的值应该用空格分隔,每行放在新行中。
+
#* 提示:如果您使用程序来定位机器人,可以将所有规划的位置保存到文件,并将其加载到校准表中。列中的值应该用空格分隔,每列放在新行中。
# 将夹具旋转输入应用程序[旋转夹具时必须]。
+
# 将夹具的旋转输入到应用程序中[旋转夹具时必须]。
#* 当夹具旋转不变时,此步骤不是必需的,但通常它会提高校准精度。当球不在夹点时,校准球的实际位置与机器人报告的位置稍有不同。知道夹持器旋转可以消除'''错位错误'''。
+
#* 当夹具旋转不变时,此步骤不是必需的,但通常它能提高校准精度。当球没有准确在夹点时,校准球的实际位置与机器人报告的位置稍有不同。知道夹持器的旋转可以消除这个'''错位错误'''。
#* 从旋转组合框中选择正确的旋转形式。这种格式用于矩阵计算时的所有点。
+
#* 从旋转组合框中选择正确的旋转格式。这种格式用于所有点的矩阵计算。
# 使用<code> Capture </ code>按钮触发新的扫描并找到校准球。
+
# 使用 <code>Capture</code> 按钮触发新的扫描并定位校准球。
# 重复,直到收集到足够数量的校准点。最低4点。
+
# 重复直到收集到足够数量的校准点。最少4点。
  
 
===计算===
 
===计算===
# 点击<code>计算</ code>按钮。
+
# 点击 <code>Compute</code> 按钮。
 
# 输出控制台显示计算过程。
 
# 输出控制台显示计算过程。
#* 注意:如果使用旋转形式,输出还会显示计算的错位矢量,它表示实际放球位置与机器人报告的位置之间的差异。
+
#* 注意:如果使用了旋转格式,输出还会显示计算的错位矢量,它表示实际放球位置与机器人报告的位置之间的差异。
# 表中显示了计算的变换矩阵。将其保存到文件供以后使用。
+
# 计算出的变换矩阵会显示在表中。将其保存成文件供后续使用。
  
 
===将转换保存到扫描仪===
 
===将转换保存到扫描仪===
# 打开PhoXi Control App并连接到扫描仪。
+
# 打开PhoXi控制应用程序并连接到扫描仪。
 
# 在左侧的选项窗格中,填写CustomTransformation矩阵
 
# 在左侧的选项窗格中,填写CustomTransformation矩阵
#* 旋转矩阵由前3列和3行计算变换矩阵组成
+
#* 旋转矩阵由计算出的变换矩阵的前3行和3列组成
#* 翻译矢量是变换矩阵的第四列
+
#* 平移矢量是变换矩阵的第四行
 
# 将选项CoordinateSpace设置为CustomSpace
 
# 将选项CoordinateSpace设置为CustomSpace
# 标记复选框以永久保存设置,然后单击<code>设置</ code>按钮
+
# 标记复选框为永久保存设置,然后点击 <code>Set</code> 按钮
# 点云现在返回到机器人坐标空间
+
# 点云现在会以机器人坐标空间返回
  
 
==测试结果==
 
==测试结果==
  
要查看在相机点上应用转换的结果,请按<code>测试</ code>按钮。这将触发新的扫描,定位校准球并将其位置转换为机器人坐标。输出显示在输出控制台中。此过程不会考虑抓手旋转,因为在实际情况下,错位矢量会随着每个拾取的物体而变化。
+
要查看在相机的点应用转换的结果,请按 <code>Test</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</code> button.
 
 
 
# 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]'''.
 
# 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)
 
# We put the robot in first testing position and hit <code>Test</code> 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.
 
  
 
===验证计算后的转换精度===
 
===验证计算后的转换精度===
  
在这种情况下,我们将校准球放入夹具内,收集校准点并运行校准矩阵计算。我们没有移动校准球。为了验证转换精度,我们将通过相同的机器人位置并将它们与<code>Test</code>按钮计算的值进行比较。
+
在这种情境,我们将校准球放入夹具内,收集校准点并运行校准矩阵计算。我们没有移动校准球。为了验证转换精度,我们将通过相同的机器人位置并将它们与 <code>Test</code> 按钮计算的值进行比较。
  
# 机器人空间中的第一个测试位置是'''[0,-600,100]''',夹具的旋转表示为旋转矢量'''[3.14159,0,0]'''。
+
# 机器人空间中的第一个测试位置是 '''[0, -600, 100]''' ,夹具的旋转表示为旋转矢量 '''[3.14159, 0, 0]'''。
# 我们计算的错位向量是:'''[-0.0422,-8.0056,4.4710]'''(在计算转换矩阵后,此信息显示在输出控制台中)
+
# 我们计算的错位矢量是:'''[-0.0422, -8.0056, 4.4710]''' (在计算转换矩阵后,此信息会显示在输出控制台中)
# 我们把机器人放在第一个测试位置,然后按下<code>测试</ code>按钮:
+
# 我们把机器人放在第一个测试位置,然后按下 <code>Test</code> 按钮:
#* 机器人空间的计算球位置是'''''[-0.435708,-592.207,95.3183]'''。
+
#* 计算出球在机器人空间的位置是 '''[-0.435708, -592.207, 95.3183]'''。
#* 我们添加了错位矢量到计算位置,得到的点是'''['0.47791,-600.213,99.7893]'''(错位矢量应该根据夹具旋转添加,在这个例子中,我们简单地将X ,Y,Z值)
+
#* 我们添加错位矢量到计算的位置,得到的点是 '''[-0.47791, -600.213, 99.7893]''' (错位矢量应该根据夹具旋转添加,在这个例子中,我们简单地将X ,Y,Z值加总)
 
#* 转换精度因此小于0.6毫米。
 
#* 转换精度因此小于0.6毫米。

2018年4月10日 (二) 04:35的最新版本

Robot-Camera Calibration Tool,版本:0.8 beta

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

您需要授权的USB Dongle才能运行该应用程序。

校准过程

准备

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

收集校准点

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

计算

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

将转换保存到扫描仪

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

测试结果

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

验证计算后的转换精度

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

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