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

来自Photoneo 知识库
跳转至: 导航搜索
(创建页面,内容为“480px|thumb|Robot-Camera Calibration Tool, version: 0.8 beta '''Robot-Camera Calibration Tool''' is used to find the tr…”)
 
 
(未显示同一用户的11个中间版本)
第1行: 第1行:
[[File:RobotCameraCalibrationTool_0.8b.png|480px|thumb|Robot-Camera Calibration Tool, version: 0.8 beta]]
+
[[File:RobotCameraCalibrationTool_0.8b.png|480px|thumb|Robot-Camera Calibration Tool,版本:0.8 beta]]
  
'''Robot-Camera Calibration Tool''' is used to find the transformation between the camera (PhoXi 3D Scanner) and robot coordinate spaces. Computed matrix transforms points from camera coordinate system to robot coordinate system.
+
'''机器人 - 相机校准工具'''用于找出相机(PhoXi 3D扫描仪)和机器人坐标空间之间的转换。计算矩阵将相机坐标系中的点转换为机器人坐标系。
  
You need a licensed USB Dongle to run the application.
+
您需要授权的USB Dongle才能运行该应用程序。
  
== Calibration process ==
+
==校准过程==
  
===Preparation===
+
===准备===
# Mount robot and camera so as their mutual position is fixed.
+
# 安装机器人和相机,使它们的相互位置固定。
# Get calibration ball. This might be a table tennis ball or a bearing ball. (When using bearing ball make sure it is not too shiny so the scanner can locate it with high accuracy.)
+
# 取得校准球。这可能是一个乒乓球或一个轴承球。(使用轴承球时,确保它不会太亮,以便扫描仪可以高精度定位它。)
# Put the calibration ball into the robot's gripper at the gripping point.
+
# 将校准球放入在抓取点的机器人抓手中。
# Start PhoXi Control Application.
+
# 启动PhoXi控制应用程序。
# Plug in your licensed USB Dongle.
+
# 插入您的授权USB Dongle。
# Start Robot-Camera Calibration Tool, select desired 3D PhoXi Scanner and hit <code>Connect</code> button.
+
# 启动机器人 - 相机校准工具,选择想要的3D PhoXi扫描仪,然后按 <code>Connect</code> 按钮。
# Set the radius of calibration ball in the application. This value is used for locating the calibration ball in captured 3D scans.
+
# 在应用程序中设置校准球的半径。该值用于在获取的3D扫描中定位校准球。
  
===Collecting calibration points===
+
===收集校准点===
# Move the gripper with the ball in front of the camera.
+
# 将夹持着球的夹持器移动到相机前方。
#* Choose a representative location, e.g. when calibrating for bin-picking application, the locations should cover the whole area where desired objects will be picked.
+
#* 选择一个有代表性的位置,例如当为箱柜拾取应用进行校准时,这些位置应覆盖拾取所需物体的整个区域。
#* Avoid many robot positions too close to each other (closer than the size of ball diameter). Choose locations that regularly covers the area.
+
#* 避免许多机器人位置靠彼此太近(比球的直径尺寸更近)。选择匀称地覆盖该区域的位置。
# Type the position of calibration ball in robot coordinate system into the application.
+
# 将校准球在机器人坐标系中的位置输入到应用程序中。
#* Tip: If you use a program to position the robot, it is useful to save all planned positions into a file and load it into calibrations table. Values in a row should be separated by white space, each row on the new line.
+
#* 提示:如果您使用程序来定位机器人,可以将所有规划的位置保存到文件,并将其加载到校准表中。列中的值应该用空格分隔,每列放在新行中。
# Type the rotation of gripper into the application [mandatory when rotating the gripper].
+
# 将夹具的旋转输入到应用程序中[旋转夹具时必须]
#* This step is not necessary when the gripper rotation doesn't change, but in general it improves the calibration accuracy. When the ball is not exactly at the gripping point, the actual position of calibration ball slightly differs from the position reported by the robot. This '''misplacement error''' can be eliminated knowing the gripper rotation.
+
#* 当夹具旋转不变时,此步骤不是必需的,但通常它能提高校准精度。当球没有准确在夹点时,校准球的实际位置与机器人报告的位置稍有不同。知道夹持器的旋转可以消除这个'''错位错误'''
#* Pick the right rotation formalism from the rotation combo box. This format is used for all points at the time of matrix computation.
+
#* 从旋转组合框中选择正确的旋转格式。这种格式用于所有点的矩阵计算。
# Use <code>Capture</code> button to trigger new scan and locate the calibration ball.
+
# 使用 <code>Capture</code> 按钮触发新的扫描并定位校准球。
# Repeat until sufficient number of calibration points are collected. The minimum is 4 points.
+
# 重复直到收集到足够数量的校准点。最少4点。
  
===Computation===
+
===计算===
# Hit <code>Compute</code> button.
+
# 点击 <code>Compute</code> 按钮。
# The output console shows the process of computation.
+
# 输出控制台显示计算过程。
#* Note: If rotation formalism was used, the output shows also computed misplacement vector that indicates the difference between the actual ball placement and the placement reported by robot.
+
#* 注意:如果使用了旋转格式,输出还会显示计算的错位矢量,它表示实际放球位置与机器人报告的位置之间的差异。
# Computed transformation matrix is displayed in the table. Save it to a file for later use.
+
# 计算出的变换矩阵会显示在表中。将其保存成文件供后续使用。
  
===Save transformation to the scanner===
+
===将转换保存到扫描仪===
# Open PhoXi Control App and connect to the scanner.
+
# 打开PhoXi控制应用程序并连接到扫描仪。
# In the options pane on the left, fill in the CustomTransformation matrices
+
# 在左侧的选项窗格中,填写CustomTransformation矩阵
#* Rotation Matrix is composed of first 3 columns and 3 rows of computed transformation matrix
+
#* 旋转矩阵由计算出的变换矩阵的前3行和3列组成
#* Translation Vector is the fourth column of transformation matrix
+
#* 平移矢量是变换矩阵的第四行
# Set the option CoordinateSpace to the CustomSpace
+
# 将选项CoordinateSpace设置为CustomSpace
# Mark checkbox to permanently save settings and click <code>Set</code> button
+
# 标记复选框为永久保存设置,然后点击 <code>Set</code> 按钮
# Point clouds are now returned in Robot Coordinate space
+
# 点云现在会以机器人坐标空间返回
  
==Testing the result==
+
==测试结果==
  
To see the result of applying the transformation on camera point, hit <code>Test</code> button. This will trigger new scan, locate calibration ball and transforms its position into robot coordinates. The output is shown in output console. This process will not consider the gripper rotation, because in real case scenario the misplacement vector changes with every picked object.
+
要查看在相机的点应用转换的结果,请按 <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.
+
在这种情境,我们将校准球放入夹具内,收集校准点并运行校准矩阵计算。我们没有移动校准球。为了验证转换精度,我们将通过相同的机器人位置并将它们与 <code>Test</code> 按钮计算的值进行比较。
  
# 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]'''.
+
# 机器人空间中的第一个测试位置是 '''[0, -600, 100]''' ,夹具的旋转表示为旋转矢量 '''[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)
+
# 我们计算的错位矢量是:'''[-0.0422, -8.0056, 4.4710]''' (在计算转换矩阵后,此信息会显示在输出控制台中)
# We put the robot in first testing position and hit <code>Test</code> button:
+
# 我们把机器人放在第一个测试位置,然后按下 <code>Test</code> 按钮:
#* Calculated ball position in robot space was '''[-0.435708, -592.207, 95.3183]'''.
+
#* 计算出球在机器人空间的位置是 '''[-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)
+
#* 我们添加错位矢量到计算的位置,得到的点是 '''[-0.47791, -600.213, 99.7893]''' (错位矢量应该根据夹具旋转添加,在这个例子中,我们简单地将X ,Y,Z值加总)
#* The transformation accuracy is thus less than 0.6 mm.
+
#* 转换精度因此小于0.6毫米。

2018年4月10日 (二) 03: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毫米。