A new version of SLAM++ was released. Online documentation is available. The new feature is an experimental incremental dogleg solver for fast bundle adjustment, as described in our 3DV 2017 paper.
This is a maintenance release, adding a few features such as robust cost functions, geometry and support for AVX family of instruction sets and a better support for ARM and NEON. Our benchmarks show up to 40% reduction in runtime for bundle adjustment problems (on x86_64 CPUs).
A new release of SLAM++ just went public (download, documentation, online documentation)! Several new features are now integrated in SLAM++ 2.10. Those are showcased on the following examples:
The new SLAM++ is here (download, documentation, online documentation)! It is backwards compatible and has some exciting new features:
While the interface will not change, this version is a release candidate: some of the features planned for 2.0 are not included and we would like to include some more examples to make it easier for you to use. Keep an eye out for updates.
There was also recently a seminar on using SLAM++ held at BUT (video, slides).
Did you like the interactive poster at our booth at ICRA 2015 conference? Here you can download the source codes and windows binaries. This demo did compile on Windows using Visual Studio 2008, it should probably compile also on Linux / OS X but there is no makefile. You could use it for your own presentations, as the presentation is defined in declarative manner which is not entirely difficult to understand. Provided "as is".
SLAM++ is an efficient implementation of incremental nonlinear least squares solvers. It is written in C++ and it is very fast due to the fact that it exploits the block structure the problems and offers very fast solutions to manipulate block matrices within iterative nonlinear solvers. It currently depends on Eigen and on CSparse or CHOLMOD but we are working on making it more stand-alone.
The above figure shows time comparison on standard graph SLAM datasets (our implementation in red). It currently supports 2D and 3D datasets. These are incremental timings (update and solve every new variable), as this is where our implementation brings the advantage.
In case you are wondering what is going on with SLAM++, and whether there will be a new version, you are in the right place. There are going to be new versions, and we are working on them non-stop (about 22 thousand new lines of code was written since the last release). The new version will be available as soon as our new papers are accepted for publication (especially ICRA 2015, HPC 2015). Some of the new features:
The new version will be compatible with the existing code, so in the meanwhile you can just grab the source code and continue with the resources below.
If you just want to try it out, see compiling and running for the first time.
In case you are into 3D reconstruction or 3D SLAM, you can use our GraphViewer utility which we use for debugging and visualisation.
In case you wish to implement your custom problem solver, here is how.
We have tried SLAM++ on Raspberry Pi, here are some notes on that.
Check out the new online documentation. There is also a new page for simple SLAM++ example and for online example.
Do you have a very fast computer? Dare to participate in our speed challenge?
Did you ran into any problems? See our Help and FAQ.
Feeling bored? Check out our new C++ bug atlas, which describes cures for some of the less known compiler error messages!
Did you like the demos at our booth at ICRA 2013 conference? Here you can download TetriX or TetriX running upside down (used at the booth to keep the power cables away from the audience). These demos are only compatible with Android phones and tablets. Since these are not distributed through market, you will need to change settings on your mobile device to "allow installing applications from unknown sources".
The research leading to these results has received funding from the EU 7th FP, grants 316564-IMPART and 247772-SRS, Artemis JU grant 100233-R3-COP, and the IT4Innovations Centre of Excellence, grant n. CZ.1.05/1.1.00/02.0070, supported by Operational Programme Research and Development for Innovations funded by Structural Funds of the European Union and the state budget of the Czech Republic.
If you want to read more about what's going on in our library, you can read our papers. If you are publishing a work based on ours, please cite these. In case you would like to put a link to SLAM++ in your paper, you can use \footnote{\url{http://sf.net/p/slam-plus-plus/}}. Please, do not substitute citations of academic papers with the URL. Also, note that BibTeX changes case of words in publication names so one needs to put the word "SLAM" in curly braces as {SLAM}, otherwise it will typeset as "Slam".
V Ila, L Polok, M Solony and K Istenic, "Fast Incremental Bundle Adjustment with Covariance Recovery", proceedings of the International Conference on 3D Vision (3DV). Qingdao, China, 2017.
V Ila, L Polok, M Šolony and P Svoboda, "SLAM++. A Highly Efficient and Temporally Scalable Incremental SLAM Framework", International Journal of Robotics Research, 2017.
L Polok, V Ila and P. Smrž, "3D Reconstruction Quality Analysis and Its Acceleration on GPU Clusters," in proceedings of European Signal Processing Conference 2016. Budapest, 2016.
L Polok, V Lui, V Ila, T Drummond, R Mahony, "The Effect of Different Parameterisations in Incremental Structure from Motion," proceedings of the Australian Conference on Robotics and Automation, Australia, 2015.
L. Polok and P. Smrz, "Increasing Double Precision Throughput on NVIDIA Maxwell GPUs," proceedings of the 24th High Performance Computing Symposium, Pasadena / Los Angeles, USA, 2016.
S. Pabst, H. Kim, L. Polok, V. Ila, T. Waine, A. Hilton, J. Clifford and P. Smrz, "Jigsaw - Multi-Modal Big Data Management in Digital Film Production," SIGGRAPH (poster), Los Angeles, 2015.
L. Polok, S. Pabst, J. Clifford, "A GPU-Accelerated Bundle Adjustment Solver," GPU Technology Conference, 2015, San Diego, USA, 2015.
M. Solony, E. Imre, V. Ila, L. Polok, H. Kim and P. Zemcik, "Fast and Accurate Refinement Method for 3D Reconstruction from Stereo Spherical Images," proceedings of the 10th International Conference on Computer Vision Theory and Applications. Berlin: Institute of Electrical and Electronics Engineers, Germany, 2015.
V. Ila, L. Polok, M. Solony, P. Zemcik, P. Smrz, "Fast covariance recovery in incremental nonlinear least square solvers," proceedings of IEEE International Conference on Robotics and Automation (ICRA), Seatle, USA, 2015.
L. Polok, V. Ila, P. Smrz, "Fast Sparse Matrix Multiplication on GPU," 23rd High Performance Computing Symposia, Alexandria, USA, 2015
L. Polok, V. Ila, P. Smrz, "Fast Radix Sort for Sparse Linear Algebra on GPU," 22nd High Performance Computing Symposia, Tampa, USA, 2014
L. Polok, V. Ila, M. Solony, P. Smrz and P. Zemcik, "Incremental Block Cholesky Factorization for Nonlinear Least Squares in Robotics," in Proceedings of Robotics: Science and Systems 2013, MIT Press, 2013
L. Polok, M. Solony, V. Ila, P. Smrz and P. Zemcik, "Incremental Cholesky Factorization for Least Squares Problems in Robotics," in Proceedings of The 2013 IFAC Intelligent Autonomous Vehicles Symposium, IFAC, 2013.
L. Polok, M. Solony, V. Ila, P. Zemcik, and P. Smrz, "Efficient implementation for block matrix operations for nonlinear least squares problems in robotic applications," in Proceedings of the IEEE International Conference on Robotics and Automation, IEEE, 2013.
L. Polok, V. Ila and P. Smrz, "Cache Efficient Implementation for Block Matrix Operations," in Proceedings of the 21st High Performance Computing Symposia (HPC'13), SCS, 2013.
Viorela Ila's homepage
Lukas Polok's homepage