All Projects → MIT-SPARK → Teaser Plusplus

MIT-SPARK / Teaser Plusplus

Licence: mit
A fast and robust point cloud registration library

Projects that are alternatives of or similar to Teaser Plusplus

Awesome Robotics Libraries
😎 A curated list of robotics libraries and software
Stars: ✭ 1,159 (+90.94%)
Mutual labels:  robotics, slam, optimization
Kimera
Index repo for Kimera code
Stars: ✭ 802 (+32.13%)
Mutual labels:  robotics, slam, 3d-reconstruction
Flame
FLaME: Fast Lightweight Mesh Estimation
Stars: ✭ 164 (-72.98%)
Mutual labels:  robotics, slam, 3d-reconstruction
Gradslam
gradslam is an open source differentiable dense SLAM library for PyTorch
Stars: ✭ 833 (+37.23%)
Mutual labels:  robotics, slam, 3d-reconstruction
Minisam
A general and flexible factor graph non-linear least square optimization framework
Stars: ✭ 246 (-59.47%)
Mutual labels:  robotics, slam, optimization
ROS Basic SLAM
BUILDING AN AUTOMATIC VEHICLE BASED ON STEREO CAMERA
Stars: ✭ 16 (-97.36%)
Mutual labels:  robotics, slam
StrayVisualizer
Visualize Data From Stray Scanner https://keke.dev/blog/2021/03/10/Stray-Scanner.html
Stars: ✭ 30 (-95.06%)
Mutual labels:  slam, 3d-reconstruction
Visual Slam Roadmap
Roadmap to becoming a Visual-SLAM developer in 2021
Stars: ✭ 277 (-54.37%)
Mutual labels:  robotics, slam
Orb slam 2 ros
A ROS implementation of ORB_SLAM2
Stars: ✭ 294 (-51.57%)
Mutual labels:  robotics, slam
bht-ams-playerstage
Player/Stage SLAM
Stars: ✭ 35 (-94.23%)
Mutual labels:  robotics, slam
Openvslam
OpenVSLAM: A Versatile Visual SLAM Framework
Stars: ✭ 2,945 (+385.17%)
Mutual labels:  robotics, slam
Semantic slam
Real time semantic slam in ROS with a hand held RGB-D camera
Stars: ✭ 317 (-47.78%)
Mutual labels:  slam, 3d-reconstruction
RAWSim-O
A simulation framework for Robotic Mobile Fulfillment Systems
Stars: ✭ 82 (-86.49%)
Mutual labels:  robotics, optimization
bio ik
MoveIt kinematics_base plugin based on particle optimization & GA
Stars: ✭ 104 (-82.87%)
Mutual labels:  robotics, optimization
Camlasercalibratool
Extrinsic Calibration of a Camera and 2d Laser
Stars: ✭ 277 (-54.37%)
Mutual labels:  robotics, slam
ndt localizer
This robot lcoalisation package for lidar-map based localisation using multi-sensor state estimation.
Stars: ✭ 32 (-94.73%)
Mutual labels:  robotics, slam
Se2lam
(ICRA 2019) Visual-Odometric On-SE(2) Localization and Mapping
Stars: ✭ 285 (-53.05%)
Mutual labels:  robotics, slam
Ifopt
An Eigen-based, light-weight C++ Interface to Nonlinear Programming Solvers (Ipopt, Snopt)
Stars: ✭ 372 (-38.71%)
Mutual labels:  robotics, optimization
Kimera Semantics
Real-Time 3D Semantic Reconstruction from 2D data
Stars: ✭ 368 (-39.37%)
Mutual labels:  robotics, 3d-reconstruction
Icra2020 Paper List
ICRA2020 paperlist by paopaorobot
Stars: ✭ 432 (-28.83%)
Mutual labels:  robotics, slam

TEASER++: fast & certifiable 3D registration

License: MIT Documentation Status

TEASER++ 3DSmooth

TEASER++ is a fast and certifiably-robust point cloud registration library written in C++, with Python and MATLAB bindings.

About

Left: correspondences generated by 3DSmoothNet (green and red lines represent the inlier and outlier correspondences according to the ground truth respectively). Right: alignment estimated by TEASER++ (green dots represent inliers found by TEASER++).

TEASER++ can solve the rigid body transformation problem between two point clouds in 3D. It performs well even if the input correspondences have an extremely large number of outliers. For a short conceptual introduction, check out our video. For more information, please refer to our papers:

If you find this library helpful or use it in your projects, please cite:

@article{Yang20tro-teaser,
  title={{TEASER: Fast and Certifiable Point Cloud Registration}},
  author={H. Yang and J. Shi and L. Carlone},
  journal={{IEEE} Trans. Robotics},
  pdf={https://arxiv.org/pdf/2001.07715.pdf},
  Year = {2020} 
}

If you are interested in more works from us, please visit our lab page here.

TL;DR

Minimal C++ example

Run the following script to show a minimal C++ example:

sudo apt install cmake libeigen3-dev libboost-all-dev
git clone https://github.com/MIT-SPARK/TEASER-plusplus.git
cd TEASER-plusplus && mkdir build && cd build
cmake .. && make
sudo make install
cd .. && cd examples/teaser_cpp_ply && mkdir build && cd build
cmake .. && make
./teaser_cpp_ply

You should see terminal output like this:

	Read 1889 total vertices 
*** [pmc heuristic: thread 1]   current max clique = 577,  time = 0.00163579 sec
...
*** [pmc: thread 2]   current max clique = 602,  time = 0.44515 sec
-----------------------------------------------------------------------
=====================================
          TEASER++ Results           
=====================================
Expected rotation: 
  0.996927  0.0668736 -0.0406664
 -0.066129   0.997618  0.0194009
 0.0418676 -0.0166518   0.998978
Estimated rotation: 
  0.996658  0.0729647  0.0367288
-0.0740469   0.996832  0.0290182
-0.0344951 -0.0316408   0.998904
Error (deg): 0.0783556

Expected translation: 
 -0.115577
-0.0387705
  0.114875
Estimated translation: 
 -0.116132
-0.0390858
   0.11729
Error (m): 0.00249818

Number of correspondences: 1889
Number of outliers: 1700
Time taken (s): 0.786677

Minimal Python 3 example

Run the following script to show a minimal Python 3 example (needs Anaconda installed):

sudo apt install cmake libeigen3-dev libboost-all-dev
conda create -n teaser_test python=3.6 numpy
conda activate teaser_test
conda install -c open3d-admin open3d=0.9.0.0
git clone https://github.com/MIT-SPARK/TEASER-plusplus.git
cd TEASER-plusplus && mkdir build && cd build
cmake -DTEASERPP_PYTHON_VERSION=3.6 .. && make teaserpp_python
cd python && pip install .
cd ../.. && cd examples/teaser_python_ply 
python teaser_python_ply.py

You should see output similar to this:

==================================================
        TEASER++ Python registration example      
==================================================
*** [pmc heuristic: thread 1]   current max clique = 563,  time = 0.00185895 sec
...
*** [pmc: thread 2]   current max clique = 605,  time = 0.618481 sec
-----------------------------------------------------------------------
=====================================
          TEASER++ Results           
=====================================
Expected rotation: 
[[ 0.99692656  0.06687358 -0.04066644]
 [-0.06612899  0.99761788  0.01940087]
 [ 0.04186755 -0.01665178  0.99897777]]
Estimated rotation: 
[[ 9.96883589e-01  7.88648224e-02 -1.85738207e-03]
 [-7.88858464e-02  9.96487579e-01 -2.80985536e-02]
 [-3.65129272e-04  2.81575081e-02  9.99603432e-01]]
Error (deg): 
0.06284342361637997
Expected translation: 
[-0.11557694 -0.03877054  0.11487489]
Estimated translation: 
[-0.11652176 -0.0373522   0.111885  ]
Error (m): 
0.0034414811018018978
Number of correspondences:  1889
Number of outliers:  1700
Time taken (s):  0.9492652416229248

Reproduce the GIF Above

Run the following script:

sudo apt install cmake libeigen3-dev libboost-all-dev
conda create -n teaser_3dsmooth python=3.6 numpy
conda activate teaser_3dsmooth
conda install -c open3d-admin open3d=0.9.0.0
conda install scikit-learn 
git clone https://github.com/MIT-SPARK/TEASER-plusplus.git
cd TEASER-plusplus && mkdir build && cd build
cmake -DTEASERPP_PYTHON_VERSION=3.6 .. && make teaserpp_python
cd python && pip install .
cd ../.. && cd examples/teaser_python_3dsmooth
python teaser_python_3dsmooth.py

You should be able to see Open3D windows showing registration results:

TEASER++ 3DSmooth

Getting Started

Other Publications

Other publications related to TEASER include:

  • H. Yang and L. Carlone, “A quaternion-based certifiably optimal solution to the Wahba problem with outliers,” in Proceedings of the IEEE International Conference on Computer Vision (ICCV), 2019, pp. 1665–1674. (pdf)
  • H. Yang, P. Antonante, V. Tzoumas, and L. Carlone, “Graduated Non-Convexity for Robust Spatial Perception: From Non-Minimal Solvers to Global Outlier Rejection,” IEEE Robotics and Automation Letters (RA-L), 2020. (pdf)

Acknowledgements

This work was partially funded by ARL DCIST CRA W911NF-17-2-0181, ONR RAIDER N00014-18-1-2828, Lincoln Laboratory “Resilient Perception in Degraded Environments”, and the Google Daydream Research Program.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].