Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SLAM Constructor Framework for ROS


Published on

iROS 2016 presentation

Published in: Software
  • Login to see the comments

  • Be the first to like this

SLAM Constructor Framework for ROS

  1. 1. The SLAM constructor framework for ROS Arthur Huletski, Dmitriy Kartashov Kirill Krinkin St. Petersburg Academic University St. Petersburg State Electrotechnical University “LETI” Introduction Simultaneous Localization and Mapping (SLAM) methods are essen- tial for mobile robots which are supposed to act in an unknown environment. In spite of various algorithms have already been proposed, an algorithm that robustly solves the problem in the general case and satisfies performance con- straints is still a subject of research. Experiments with tinySLAM [1] and GMapping and analysis of FastSLAM, DP-SLAM and some visual SLAMs such as RatSLAM, LSD-SLAM and ORB-SLAM [2] have shown that all of these SLAM methods have a similar structure. However, to the best of our knowl- edge, there is no publicly available framework that provides a common set of components in order to speed up SLAM research (frameworks and toolkits that simplify development of SLAM parts are not taken into account). Goals creation of a framework that acts as a constructor of SLAM algorithms; implementation of components that can be assembled into a SLAM method. Typical SLAM Scheme sensor1 sensor2 tracking s1 data fMap pose est.1 + pose est.2 sensor fusion s2 data poseest sensorn — any sensor; sn data — sensor data that can be filtered or refined; tracking holds actual pose value and modifies it with s1 data (usually odometry) to estimate robot’s current pose (pose est.1); fMap stores information about an environment or robot’s trajectory in a form that allows to extract an alternative pose estimate by s2 data; sensor fusion combines given estimates to a more accurate one (e.g. with Particle filter, Kalman filter, etc.); “+” operator combines refined pose estimate with sensor data to update fMap with the most recent information. Advantages of a SLAM Framework speeds up an algorithm prototyping by usage of common components; provides ability to combine goods of existent SLAMs in order to create a better one (e.g. a version of a general method that is more robust when it’s used in an indoor environment); ROS integration allows to test an algorithm on well-known datasets; “small” modifications (e.g. ad-hoc details) introduced by an algorithm and not mentioned in its paper became more noticeable. Related Works Manifold Toolkit (MTK) and g2o framework simplify nonlinear error function optimization which is an essential part of a graph-based SLAM. Mobile Robot Programming Toolkit (MRPT) [3] provides a set of libraries applied in common areas of robotics research. It implements several SLAM methods as a set of customizable monolithic classes. References [1] A. Huletski, D. Kartashov, K. Krinkin, “TinySLAM Improvements for Indoor Navigation”, in Proc. of IEEE International Conference on Multisensor Fusion and Integration for Intelligent Systems, 2016. [2] A. Huletski, D. Kartashov, K. Krinkin, “Evaluation of the modern visual SLAM methods”, in Proc. of AINL-ISMW FRUCT, pp. 19-25, 2015. [3] Mobile Robot Programming Toolkit, SLAM Framework Architecture Input / Output ROS AdapterVisual Debugger Physical Sensors Core Filtering Particle Filter Scan Matchers Olson (BF) Hough Monte-Carlo Mapping Grid Map SLAM Algorithms GMapping ORB-SLAMLSD-SLAM tinySLAM FastSLAM Motion Model Interoception-based Visual Odometry ORB Features Kalman Filters Gradient Descent Graph Map Graph Optimization Loop Closure Cell Models GraphSLAM (scan based) Correlation Functions Semi-dense Depth Map The current version of the framework is implemented in C++ and contains a set of components required to implement a SLAM method that uses odometry and 2D laser scans as sensors’ data. Ongoing Work add support for graph-based SLAM methods: base classes and optimization methods (either ad-hoc or g2o-based); implementation of extra scan matching methods (Hough, Olson); add support for other sensors and measurement types (3D scans, monocular/stereo cameras); add extra components and algorithms that are commonly used by SLAM methods (e.g. Kalman Filter, Information Filter); implementation of feature-based SLAM methods (e.g. FastSLAM). Conclusion The framework provides basic components for implementation of SLAM methods based on 2D laser scans. The current C++ implementation is ROS compatible and also provides such SLAM methods as GMapping and tinySLAM. Development is in its initial stage and many features are still required to be implemented.