Difference between revisions of "Robot-Camera Calibration Tool"

From 3D scanning Knowledge base - Photoneo wiki
Jump to: navigation, search
m (Save transformation to the scanner)
(Save transformation to the scanner)
Line 39: Line 39:
 
#* Rotation Matrix is composed of first 3 columns and 3 rows of computed transformation matrix
 
#* Rotation Matrix is composed of first 3 columns and 3 rows of computed transformation matrix
 
#* Translation Vector is the fourth column of transformation matrix
 
#* Translation Vector is the fourth column of transformation matrix
# Set the option CoordinateSpace to the CustomSpace
+
# Set the option CoordinateSpace to the RobotSpace (or CustomSpace for older firmware versions)
 
# Mark checkbox to permanently save settings and click <code>Set</code> button
 
# Mark checkbox to permanently save settings and click <code>Set</code> button
 
# Point clouds are now returned in Robot Coordinate space
 
# Point clouds are now returned in Robot Coordinate space

Revision as of 10:08, 25 April 2018

Robot-Camera Calibration Tool, version: 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.

You need a licensed USB Dongle to run the application.

Calibration process

Preparation

  1. Mount robot and camera so as their mutual position is fixed.
  2. 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.)
  3. Put the calibration ball into the robot's gripper at the gripping point.
  4. Start PhoXi Control Application.
  5. Plug in your licensed USB Dongle.
  6. Start Robot-Camera Calibration Tool, select desired 3D PhoXi Scanner and hit Connect button.
  7. Set the radius of calibration ball in the application. This value is used for locating the calibration ball in captured 3D scans.

Collecting calibration points

  1. 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.
  2. 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.
  3. 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.
  4. Use Capture button to trigger new scan and locate the calibration ball.
  5. Repeat until sufficient number of calibration points are collected. The minimum is 4 points.

Computation

  1. Hit Compute button.
  2. 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.
  3. Computed transformation matrix is displayed in the table. Save it to a file for later use.

Save transformation to the scanner

  1. Open PhoXi Control App and connect to the scanner.
  2. In the options pane on the left, fill in the Robot Transformation (or Custom Transformation in older firmware versions) matrices
    • Rotation Matrix is composed of first 3 columns and 3 rows of computed transformation matrix
    • Translation Vector is the fourth column of transformation matrix
  3. Set the option CoordinateSpace to the RobotSpace (or CustomSpace for older firmware versions)
  4. Mark checkbox to permanently save settings and click Set button
  5. Point clouds are now returned in Robot Coordinate space

Testing the result

To see the result of applying the transformation on camera point, hit Test 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.

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 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.