• Stars
    star
    134
  • Rank 270,967 (Top 6 %)
  • Language
    C++
  • Created about 6 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

[ICRA2014] Fast Plane Extraction Using Agglomerative Hierarchical Clustering (AHC)

Fast Plane Extraction Using Agglomerative Hierarchical Clustering (AHC)

Legal Remarks

Copyright 2014 Mitsubishi Electric Research Laboratories All Rights Reserved.

Permission to use, copy and modify this software and its documentation without fee for educational, research and non-profit purposes, is hereby granted, provided that the above copyright notice, this paragraph, and the following three paragraphs appear in all copies.

To request permission to incorporate this software into commercial products contact: Director; Mitsubishi Electric Research Laboratories (MERL); 201 Broadway; Cambridge, MA 02139.

IN NO EVENT SHALL MERL BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF MERL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

MERL SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND MERL HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

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:

  • include

    Our C++ implementation of the algorithm with dependencies on OpenCV and shared_ptr (from C++11 or Boost).

  • cpp

    Two example C++ console applications using our algorithm to extract planes from Kinect-like point cloud (depends on PCL), with a CMake script to help generating project files.

  • matlab

    A matlab interface (fitAHCPlane.m) through MEX for using our algorithm in matlab. We also provide a wrapper class Kinect.m and kinect_ahc.m to do real-time plane extraction in matlab, partially depends on a 3rd-party toolbox Kinect_Matlab.

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.

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
  1. Run makefile.m

  2. Select the directories for OpenCV_Include, OpenCV_Lib, and Boost_Include respectively

  3. If everything compiles smoothly:

cd ..
  1. Load a single frame we've prepared for you in matlab by:
load frame
  1. Run our algorithm on the point cloud:
frame.mbs=fitAHCPlane(frame.xyz);
viewSeg(frame.mbs,640,480)
  1. Enjoy!

  2. If you want to play with the kinect_ahc.m with a Kinect, install Kinect_Matlab first.

Contact

Chen Feng

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

More Repositories

1

DeepMapping

[CVPR2019 Oral] Self-supervised Point Cloud Map Estimation
Python
193
star
2

SSCBench

SSCBench: A Large-Scale 3D Semantic Scene Completion Benchmark for Autonomous Driving
Python
166
star
3

DeepMapping2

[CVPR2023] DeepMapping2: Self-Supervised Large-Scale LiDAR Map Optimization
Python
156
star
4

DiscoNet

[NeurIPS2021] Learning Distilled Collaboration Graph for Multi-Agent Perception
136
star
5

Occ4cast

Occ4cast: LiDAR-based 4D Occupancy Completion and Forecasting
Python
112
star
6

V2X-Sim

[RA-L2022] V2X-Sim Dataset and Benchmark
111
star
7

FLAT

[ICCV2021 Oral] Fooling LiDAR by Attacking GPS Trajectory
Python
67
star
8

SPARE3D

[CVPR2020] A Dataset for SPAtial REasoning on Three-View Line Drawings
Python
52
star
9

MARS

[CVPR2024] Multiagent Multitraversal Multimodal Self-Driving: Open MARS Dataset
Python
36
star
10

NYU-VPR

[IROS2021] NYU-VPR: Long-Term Visual Place Recognition Benchmark with View Direction and Data Anonymization Influences
Python
31
star
11

EgoPAT3D

[CVPR 2022] Egocentric Action Target Prediction in 3D
Jupyter Notebook
29
star
12

LLM4VPR

Can multimodal LLM help visual place recognition?
Python
28
star
13

insta360_ros_driver

A ROS driver for Insta360 cameras, enabling real-time image capture, processing, and publishing in ROS environments.
Python
27
star
14

DeepExplorer

[RSS2023] Metric-Free Exploration for Topological Mapping by Task and Motion Imitation in Feature Space
Python
26
star
15

Self-Supervised-SPARE3D

[CVPR 2022] Self-supervised Spatial Reasoning on Multi-View Line Drawings
Python
24
star
16

RealCity3D

Jupyter Notebook
22
star
17

DeepSoRo

[RA-L/ICRA2020] Real-time Soft Body 3D Proprioception via Deep Vision-based Sensing
Python
22
star
18

FusionSense

Integrates the vision, touch, and common-sense information of foundational models, customized to the agent's perceptual needs.
Python
19
star
19

SNAC

[ICLR2023] Learning Simultaneous Navigation and Construction in Grid Worlds
Python
18
star
20

SeeDo

Human Demo Videos to Robot Action Plans
Python
16
star
21

TF-VPR

Self-supervised place recognition by exploring temporal and feature neighborhoods
Python
15
star
22

DeepParticleRobot

[ICRA'22] A Deep Reinforcement Learning Environment for Particle Robot Navigation and Object Manipulation
Python
13
star
23

pyAprilTag

python wrapper of AprilTag implemented in cv2cg, used for Robot Perception course
C++
10
star
24

NYC-Indoor-VPR

Python
9
star
25

BAGSFit

Primitive Fitting Using Deep Boundary Aware Geometric Segmentation
9
star
26

vis_nav_player

[ROB-GY 6203] Example Visual Navigation Player Code for Course Project
Python
5
star
27

NYC-Event-VPR

Python
5
star
28

Mobile3DPrinting

https://ai4ce.github.io/Mobile3DPrinting/
4
star
29

PointCloudSimulator

Code for simulating 2D point clouds
Python
3
star
30

M3DP-Sim

C++
2
star
31

pyP2Mesh

python wrapper for finding a point's closest point on a triangle mesh
Python
2
star
32

VIP_SelfDrive

Makefile
2
star
33

EgoPAT3Dv2

Python
2
star
34

LUWA

Jupyter Notebook
1
star
35

ai4ce_robot_ROS2_drivers

This repo contains all the ROS2 driver packages modified at AI4CE lab for working with various robots
1
star