Package Summary

A ROS Node providing support for PMD Camcube 3.0 integration with ROS.

Supported Hardware

The package provides an integration of PMD Camcube 3.0 drivers with ROS. The copyrighted libraries from PMD Vision will be required to access the hardware.

Setup

File Setup

  1. libpmdaccess2.so file provided in PMDSDK2 should copied to a directory where the operating system can find it (e.g. /usr/local/lib)
  2. The include directory and plugins directory from PMDSDK2 should be in a directory where the operating system can find it (e.g. /usr/include/) or the path to these directories should be exported to the environment variable : $PMDDIR

Usb Device rules

Please see the included file usb-rule-setup.txt for instructions to set a new usb-dev rule for pmd-camcube

Installation

Download the stack in a location identifiable by ROS, i.e the path to the stack should be reachable through $ROS_PACKAGE_PATH. Then,

 $ rosmake PMD_CAMCUBE_3

Usage

Running the driver

 $ rosrun PMD_CAMCUBE_3 pmd_camcube_3_node

Visualization in rviz

 $ rosrun rviz rviz

Set the fixed_frame as /tf_pmd_camcube

  • Add a Pointcloud2 topic to visualize the depthclouds. Three different set of points are published with following topic names:
  • /depth_non_filtered : raw data from the pmd camera
  • /depth_filtered : after applying statistical outlier detection from pcl
  • /depth_outliers : the outliers found after applying the filter for statistical noise detection from pcl

The filtered point clouds will be shown only when a filter option (AmplitudeFilter/StatisticalNoiseFilter) is turned on. The outliers will be published only for StatisticalNoiseFilter. The StatisticalNoiseFilter will make induce some delay between frames, due to extra computaion time required for removing outliers.

Using filters

To use the filter and change camera parameters, use dynamic_reconfigure from ros. To use it do

 $ rosrun dynamic_reconfigure reconfigure_gui 

Select /pmd_camcube_3 to view the options available for modifications.

Following camera parameters and filtering methods can be accessed using the dynamic reconfigure

  1. Integration_Time : Modifies the integration time of the sensor
  2. Modulation_Frequency : Modifies the modulation frequency of the sensor
  3. At_Least : If this option is turned on then the best possible modulation frequency will be set to the sensor. The value will be chosen such that it is at least the value indicated by field Modulation_Frequency

  4. At_Most : If this option is turned on then the best possible modulation frequency will be set to the sensor. The value will be chosen such that it is at most the value indicated by field Modulation_Frequency

  5. Statistical_Noise_Filter_On : This will start the statistical noise filter algorithm from pcl (Point Cloud Library)oise_Filtering_NoOfNeighbours

  6. Noise_Filtering_NoOfNeighbours : Indicates the No. of neighbors to be considered for statistical noise filtering

  7. Std_Dev_Mul_Threshold : Standard Deviation Multiplier Threshold for applying statistical noise reduction
  8. Amplitude_Filter_On : Indicates if the amplitude filteration to be used or not
  9. Amplitude_Threshold : Image pixels with lesser aplitude values will be filtered out. Amplitude_Filter_On status should be true to apply this filter.

Video

A demo of visualizing point-cloud data in rviz obtained from pmd-camcube 3.0 is shown below:

Wiki: pmd_camcube_3_ros_pkg (last edited 2011-10-25 16:21:11 by PinakiBanerjee)