Plane Extraction using Agglomerative Clustering (PEAC)

Published: 16 Oct 2015 | Updated: 24 Mar 2016 | Tags: code

Download source code for PEAC!

Overview

This source code package contains our C++ implementation of the AHC based fast plane extraction for organized point cloud (point cloud that can be indexed as an image). There are three folders in this package:

If you use this package, please cite our ICRA 2014 paper:

Feng, C., Taguchi, Y., and Kamat, V. R. (2014). “Fast Plane Extraction in Organized Point Clouds Using Agglomerative Hierarchical Clustering.” Proceedings of the IEEE International Conference on Robotics and Automation, Hong Kong, China, 6218-6225.

@inproceedings{feng2014fast,
  title={Fast plane extraction in organized point clouds using agglomerative hierarchical clustering},
  author={Feng, Chen and Taguchi, Yasuhiro and Kamat, Vineet R},
  booktitle={Robotics and Automation (ICRA), 2014 IEEE International Conference on},
  pages={6218--6225},
  year={2014},
  organization={IEEE}
}

Version

1.0

Installation

C++ example

  1. Install OpenCV, Boost and PCL (If you install PCL using their all-in-one installer, you directly get Boost installed as well).
  2. Generate project file using CMake under either Windows or Linux.
  3. Compile.
  4. Run the compiled process: plane_fitter (first connect a Kinect to your computer!) or plane_fitter_pcd (first modify plane_fitter_pcd.ini accordingly!).
  5. Enjoy!

Matlab example

  1. In matlab:

    cd WHERE_YOU_EXTRACT_THE_PACKAGE/matlab/mex
    
  2. Run makefile.m
  3. Select the directories for OpenCV_Include, OpenCV_Lib, and Boost_Include respectively
  4. If everything compiles smoothly:

    cd ..
    
  5. Load a single frame we’ve prepared for you in matlab by:

    load frame
    
  6. Run our algorithm on the point cloud:

    frame.mbs=fitAHCPlane(frame.xyz);
    viewSeg(frame.mbs,640,480)
    
  7. Enjoy!
  8. If you want to play with the kinect_ahc.m with a Kinect, install Kinect_Matlab first.

Feel free to email any bugs or suggestions to help us improve the code. Thank you!