Hand-Eye Calibration

This tutorial shows how to calibrate the rc_visard to the robot, in order to determine the it’s position relative to the robot base frame, using roboception’s URCap. The hand eye calibration procedure is described in detail in rc-visard Hand Eye Calibration documentation.


The calibration has to be performed every time the rc_visard is moved relative to the robot base.

Before we start

This tutorials assumes that the tutorials Getting started and Tuning of image parameters have been completed.

Externally mounted sensor - mounting the calibration grid

The calibration grid for Universal Robots is delivered with 4 holes in the lower-lefthand corner and can be mounted directly to the flange of the robot with four M6 screws. The mounting point is not located in the center of the grid in order to reduce the chance of collisions with joint five during calibration movements. The grid should be mounted firmly with the positioning hole pointing towards the middle of the calibration grid in direction of the shorter side.


Fig. 58 Flange positioning hole pointing towards the middle of the calibration grid of the shorter side..


Fig. 59 Calibration grid mounted on robot.

Sensor mounted on the robot - mounting the sensor

When using the sensor mounted on the robot, it has to be firmly mounted on the flange. Before starting the calibration the weight of the TCP has to be updated in ‘TCP configuration’ and the calibration grid has to be placed in a way that it is not moving during the calibration.

Calibration program

The rc_visard hand-eye calibration procedure is implemented as a program node. During the procedure the robot will move linear in tool-space with tool speed 0.5 m/s and tool acceleration 0.5 m/s2 between poses taught by the user. The poses will automatically be sent to the rc_visard, and the calculated camera pose in the robot base frame will be shown in the ‘Calibration result’ node.


The calibration result is not automatically stored on the rc_visard. It is the user’s responsibility to check the error associated with the calibration under ‘Calibration result’ and store it, provided the error is acceptable.

By default, for the duration of the calibration program with external camera, the TCP will be set to the middle of the flange, and the payload will be set to the payload of properly mounted Roboception calibration grid. If the calibration grid is not mounted directly on the flange, or if it is not the only mounted element, TCP and payload have to be set accordingly in the installation node, and the checkbox ‘Use Roboception TCP and payload’ in the main screen of calibration program has to be un-checked. For the calibration with robot mounted sensor, user has to specify the payload in robot installation node prior to the calibration procedure.

In order to start a new calibration procedure:

  1. Create an empty program.
  2. Add ‘RC calibration’ program node.
  3. Choose the sensor you want to calibrate and other calibration parameters (see Calibration parameters.)
  4. Move the robot, so that the grid is shown on the live view corresponding to the grid image on the right (see Set pose.) and click ‘Store pose’ button. Redo this procedure for four poses.
  5. Run the program.
  6. When the popup informing about the success of the procedure is shown, go to ‘Calibration result’ node, check the calibration result and click ‘Store calibration’ button if the calibration should be stored persistently. (see Calibration result.)

Fig. 60 Calibration parameters.


Fig. 61 Set pose.


Fig. 62 Calibration result.