rh_robot_interface (hydro)

Maintainer: Gerardo Aragon-Camarasa

1. Overview

This package interfaces the CloPeMa robot head with the CloPeMa stack. Specifically, this is used to create SMACH nodes for calibrating the robot head and this will serve as the main development package for future demonstrations in UG using the dual-arm robot.

2. Nodes

2.1 RHmain_vergence

Node that displays a simple GUI and serves as the control node for verging the cameras.

2.1.1 Subscribed Topics

Main topic message where captured images are transmitted.

Topic that publishes when the cameras are verged or not.

2.1.2 Published Topics

Main topic that contains position and velocity information in order to move the PTU units.

2.1.3 Services Called

Gets the current state of the PTU units in radians.

2.1.4 Parameters

  • /PTU/stepsPerPixelX (double)
  • /PTU/stepsPerPixelY (double)

Steps per pixel ratio in X and Y axes, respectively, as described in Actuator calibration MATLAB functions.

  • /PTU/pan_left_res (double)
  • /PTU/tilt_left_res (double)
  • /PTU/pan_right_res (double)
  • /PTU/tilt_right_res (double)

Resolution of the pan and tilt units.

  • /CAM/capturemode (float)

This controls the capturing mode of the cameras. "0" indicates full resolution mode (16 MP) whereas "1", preview mode (VGA resolution). If it is not set, "RHcam_left" node sets it to the mode given in the message "/RH/cmd/acquire".

  • /PTU/pan_left_home (double)
  • /PTU/tilt_left_home (double)
  • /PTU/pan_right_home (double)
  • /PTU/tilt_right_home (double)

User-defined home position of the PTUs. By default, these are set as zeros, indicating the factory home position of the PTUs.

2.1.5 tf joints

  • left_to_pan
  • left_to_tilt
  • right_to_pan
  • right_to_tilt

Link names as defined in the XACRO script of the robot head located at the rh_ptu (hydro) package.

2.2 calibration_rh_complete.py

SMACH node that implements camera and hand-eye calibration using one robot arm. The objective of this node is to automate the robot head calibration. This node reads pre-defined robot positions from "../rh_robot_interface/src/pose_list.py". "pose_list.py" can be populated by using RHsavetfpoints.

At the moment, there exists three critical states that need to be defined in "pose_list.py":

  1. Picking up the calibration target from the table.
  2. Lifting the calibration target from the table.
  3. Changing pose of the calibration target.
  4. Returning the calibration target to the table.

These states are already defined in "pose_list.py". This node can be run using simulation nodes as described in Point cloud and 3D reconstruction.

2.2.2 Services Called

Services used are defined in SMACH python bindings.

Finds corners of the calibration target and stores them in memory

Calibrates each camera of the stereo rig and saves calibration parameters.

Captures images, processes them and controls PTUs for hand-eye calibration. Its functionality is the same as in RHcalibration while performing hand-eye calibration.