You are here

Application:kf-slam

See also: 2d-slam-demo

This application implements a simple Kalman Filter for solving the SLAM problem for generic 3D range-bearing sensors and a full 6D robot state space. This program is a front-end for the class mrpt::slam::CRangeBearingKFSLAM . All the parameters to the algorithm are passed through a configuration file in the command line. The filter processes actions and observations from a rawlog file and generates a number of files describing the evolution of the filter.

kf-slam can also optionally employ a 2D version of the same range-bearing problem (since mrpt 0.9.4), a more efficient approach for SLAM problems really happening in planar environments. See this configuration file as an example of how to use the kf_implementation parameter.
 

1 Description

The theoretical background of 6D Range-Bearing SLAM is explained in this paper .
 

2 Example

The following results have been obtained from synthetic data, generated with a the application "simul-landmarks". That simulator generates a set of random landmarks in 3D and generates noisy range-bearing measurements from some predefined robot path. The output is a rawlog file, which is processed by the kf-slam application. You can reproduce the example shown in the videos below doing, from a console:

$ cd MRPT/share/mrpt/config_files/kf-slam

$ kf-slam EKF-SLAM_6D_test.ini

 

(Also on YouTube, with worse quality: http://www.youtube.com/watch?v=eOkzd_i_-ps )

Live display of kf-slam for a 6D path.
[jwplayer |file=/videos/kf-slam-6d-demo.flv |image=/videos/kf-slam-6d-demo.jpg |width=895 |height=595]

Another example of a path in 2D only:

An example of the output from the kf-slam application for 6D-SLAM.
[jwplayer |file=/videos/demo_kf-slam1.flv |image=/videos/demo_kf-slam1.jpg |width=640 |height=480]