Skip to content
Jonathan Balloch edited this page Nov 23, 2016 · 30 revisions

Welcome to the hlpr_perception wiki!

Installing perception nodes

  1. Follow the Kinect 2 installation tutorial here. Follow all the required steps, do NOT follow the steps to install CUDA! This is an optional step that will have you download the wrong NVIDIA drivers, and will cause you to waste a day trying to figure out why your computer has locked you out. DON'T DO IT!

  2. Install missing packages.

  • sudo apt-get install ros-indigo-visualization-msgs
  1. Update PCL
  • There is an issue with PCL and Boost being compiled under different c++ standards. To rebuild PCL from source:
    • cd ~/software
    • git clone https://github.com/PointCloudLibrary/pcl.git
    • cd pcl && mkdir build && cd build
    • cmake ..
    • make -j2
    • sudo make -j2 install
  1. Clone and link the perception packages to your workspace:

    • cd ~/Software/HLP-R
    • git clone --recursive https://github.com/HLP-R/hlpr_perception.git
    • ln -s ~/software/HLP-R/hlpr_perception/ ~/vector_ws/src/
  2. Build your workspace.

    • cd ~/vector_ws
    • catkin_make
  3. Source your catkin workspace (or close and reopen the terminal if it is in your .bashrc)

    • source ~/vector_ws/devel/setup.bash
  4. Launch the segmentation node.

    • roslaunch hlpr_segmentation pc_seg.launch OR roslaunch hlpr_nonplanar_segmentation nonplanar_seg.launch OR roslaunch hlpr_single_plane_segmentation hello_world.launch
  5. In another window, launch the feature extraction node.

    • roslaunch hlpr_feature_extraction ft_ex.launch OR roslaunch hlpr_nonplanar_feature_extraction nonplanar_ft_ex.launch

Parameters

  • You can set any parameters using the rosparam convention in your launch file. For an example, see launch/hello_world.launch.
  • You can set any of the following parameters:
    • dt: distance threshold for segmentation (float)
    • ct: color threshold for segmentation (float) (currently set a very high (e.g. 100000) threshold to do proximity only segmentation)
    • v: set hue value to select the cluster of interest (float)
    • m: set whether to do merging or not (boolean)
    • t: set hue threshold for merging
    • z: set depth threshold for merging (float)
    • p: set whether to pre process the point cloud or not (boolean)
    • c: set color segmentation options, 0,1,2 correspond to none, rgb, hue
    • src: point cloud source options 0,1,2 correspond to ROS, OPENNI, and KinectV2 respectively (int).
    • rt: name of the ros topic of the incoming point cloud (string)
    • out: output options 0,1,2 corresponding to none, IRCP, ROS (int). IRCP support may not exist, exercise caution.
    • comm: Communication options 0,1,2 corresponding to none, IRCP, ROS (int). IRCP support may not exist, exercise caution.
    • b: set whether to display all bounding boxes or just the selected one (boolean)
    • sh: set saturation hack on/off (boolean)
    • st: set saturation threshold for the hack (float)
    • sv: set saturation value to be mapped to (float)
    • ri: set robot id for ircp (byte)
    • pr: set the freenect2 processor options 0,1,2 correspond to CPU, OPENCL, and OPENGL respectively (int)
    • fn: filter noise, warning slows things down (bool)
    • nv: no vizualization (bool)

Note

hlpr_single_plane_segmentation is a segmentation node that uses RANSAC instead of MultiplaneSegmentation for plane segmentation. It is better at picking up short/small objects on the plane but trades off the efficiency from MultiplaneSegmentation.

Clone this wiki locally