Code Monkey home page Code Monkey logo

constrained_icp's Introduction

Point Cloud Registration

Register and merge multiple noisy point clouds from kinectv2 via a constrained icp model. C++ and Python version available.

C++ Version

  • Open3D (>= 0.5)
  • Eigen 3
  • Ceres solver
  • PCL 1.8 (not used yet)

Use CMake to build.

Python Version

python3 py/main.py

Constrained ICP

Constrained ICP (CICP) is a modified point-to-plane ICP which fix the rotation axis and translation plane.

In the current implementation, the point cloud can only rotate around z-axis and translate on the x-y plane.

These constraints make ICP much more robust to the plane-dominated scenes like below.

Use original ICP:

Use constrained ICP:

The final merged point clouds:

Suggestions

  • It's still hard for ICP(even constrained ICP) to determine the best translation for the pure plane scene. So make sure your scene consists of at least two independent planes when you scan.

  • Merging after scanning is not the only way to build the model. Maybe we can try some RGBD-SLAM methods like KinectFusion and InfiniTAM to locate and build the scene model simultaneously.

constrained_icp's People

Contributors

mrlooi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

constrained_icp's Issues

AttributeError: module 'open3d.open3d_pybind.geometry' has no attribute 'radius_outlier_removal'

Traceback (most recent call last):
File "main.py", line 172, in
main()
File "main.py", line 27, in main
pcds = remove_clouds_outliers(pcds, 30, voxel_size, 1) # removing outliers before downsample give good result.
File "main.py", line 154, in remove_clouds_outliers
cl, ind = o3d.geometry.radius_outlier_removal(pcds[i], num_points, radius)
AttributeError: module 'open3d.open3d_pybind.geometry' has no attribute 'radius_outlier_removal'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.