SceneLib is an open-source C++ library for SLAM designed and implemented by Andrew Davison with additional work by Paul Smith. Importantly, SceneLib depends in part on the open source VW34 library for computer vision developed at Oxford's Active Vision Lab under the leadership of David Murray and Ian Reid, who have also had a large role in guiding the development of SceneLib. Additionally, we have received guidance from many others including Nobuyuki Kita. See the file SceneLib/THANKS in the source code for full acknowledgements.
SceneLib 1.0 is released with full source code under the GNU Lesser Public License (LGPL). See full license information here.
SceneLib is a generic SLAM library in principle, with a modular approach to specification of the details of robot and sensor types. However it also has specialised components to permit real-time vision-based SLAM with a single camera (MonoSLAM) and the design is optimised towards this type of application.
Available alongside the SceneLib library (which does not depend on any particular GUI) is source code which compiles to the executable program MonoSLAMGlow. This is an example application of MonoSLAM which can take images in real-time from an IEEE1394 camera or off-line from a disk sequence and perform sparse monocular SLAM. The program has an interactive GUI using the GLOW toolkit and OpenGL. The result is performance equivalent to that published in the papers below.
Note that some of the more advanced techniques we have published such as patch warping are not implemented in this release. The emphasis in this version is on code clarity and most things have been cleaned up significantly to give a codebase which will be easy to work with to add new features.
First go to the Download and Install page for information on requirements, downloads and installation instructions. Further documentation is then available both in the source code and on the Documentation page.
SceneLib is free software and as such of course comes with no warranty or official support! However, please contact me at firstname.lastname@example.org with comments or questions and and I will answer if I have time. Of course I would be happy to receive any fixes or new features to include in future releases.Andrew Davison