rh_stereo_proc (hydro)

Maintainer: Gerardo Aragon-Camarasa and Susanne Oehler

1. Overview

This package includes the C3D stereo matcher ROS node and the legacy C3D camera calibration ROS node. It is also included the wrappers for the new "fast matcher" which is currently under development. This tutorial describes how to use this package.

2. Nodes

2.1 RHstereomatcher.py

Node that matches a pair of images using the java implementation of C3D. This node computes horizontal and vertical disparity maps and a range map image if the robot head has been calibrated using C3D functions.

NOTE: Adjust the java heap memory according to the hardware, this can be done by looking the variable "C3Dcmd" in RHstereomatcher.py and set flags "-Xss####k" and "-Xmx####m" within a lower and upper RAM values available in the system.

2.1.1 Subscribed Topics

Main topic message where captured images are transmitted.

2.1.2 Published Topics

Topics where the horizontal and vertical disparities, respectively, are transmitted. Disparity images are encoded as CV_32FC1 and with the same size as the incoming images.

Range image topic. This topic is not used in the current version of the clopema_robothead stack as C3D calibration is not longer used for the CloPeMa robot head. An OpenCV implementation has replaced C3D calibration.

2.2 RHstereomatcher_simulation.py

Node that reads a previously matched pair of images using the java implementation of C3D. This node is used only for simulation and test purposes.

2.2.1 Subscribed Topics

Main topic message where captured images are transmitted.

2.2.2 Published Topics

Topics where the horizontal and vertical disparities, respectively, are transmitted. Disparity images are encoded as CV_32FC1 and with the same size as the incoming images.

2.3 RHcalibration.py

Node that calibrates the stereo rig using the java implementation of C3D. For more information, follow the instructions described HERE node is not longer used in the current version of the clopema_robothead stack as an OpenCV implementation has replaced it. For completion purposes, this node is still available.

NOTE: Adjust the java heap memory according to the hardware, this can be done by looking the variable "C3Dcmd" in RHstereomatcher.py and set flags "-Xss####k" and "-Xmx####m" within a lower and upper RAM values available in the system.

2.3.1 Subscribed Topics

Main topic message where captured images are transmitted.

2.4 RHmatcherBMP.py (BETA; Not working properly 10/09/2013)

Node that matches a pair of images using a Vector Pascal port of the C3D matcher. This node computes horizontal and vertical disparity maps. The python script calls the executable file "../clopema_robothead/rh_stereo_proc/VPC/fastMatcherBMP". To run this node, it is required to "roscd clopema_robothead/rh_stereo_proc/src".

2.4.1 Subscribed Topics

Main topic message where captured images are transmitted.

2.4.2 Published Topics

Topics where the horizontal and vertical disparities, respectively, are transmitted. Disparity images are encoded as CV_32FC1 and with the same size as the incoming images.

2.5 RHpoint_cloud

Computes a point cloud if only the cameras have been calibrated using rh_calibration (hydro). The number of triangulated points will equal to the width by height (area of the image) used.

2.5.1 Subscribed Topics

Main topic message where captured images are transmitted.

Contains the camera calibration(if calibrated) and extra data about the camera configuration for the left and right images, respectively.

Topics where the horizontal and vertical disparities, respectively, are transmitted. Disparity images are encoded as CV_32FC1 and with the same size as the incoming images.

2.5.2 Published Topics

Raw point cloud computed from the CloPeMa robot head. Its format is "pcl::PointCloud<pcl::PointXYZRGB>". Triangulated points are with reference to the left camera.

2.6 RHstereo_rectifyUncal

This node rectifies a pair of stereo images using a uncalibrated approach (i.e. by finding the fundamental matrix between features and estimate).

2.6.1 Subscribed Topics

Main topic message where captured images are transmitted.

Topic message where SIFT features, descriptors for the left and right camera are published. SIFT matches between images are only attached to the left camera. Matching is performed on the GPU.

2.6.2 Published Topics

Topic message where rectified messages are published.

3. Launch Files

3.1 RH_stereoRectifyUnCal.launch

This launch file demonstrates the stereo rectification node using test data. It loads rh_feature_extraction (hydro), rh_cameras (hydro) and RH_stereo_proc (hydro).

It is required to set the path of two set of images within the launch file.