The sections below describe the API of this package for 3D EKF-based SLAM. This method takes input measurements to landmarks in the form of range-bearing observations.

Further documentation

The ROS node mrpt_ekf_slam_3d is a wrapper for the C++ class mrpt::slam::CRangeBearingKFSLAM , part of MRPT. Thus, check out the documentation of that class for further details.

For the convention on coordinate frames see ROS REP 105: "Coordinate Frames for Mobile Platforms".


In order to use mrpt_ekf_slam_3d package it is necessary to install the last MRPT build and themrpt_navigation(see also the tutorial) .


The following video represents the EKF 3D SLAM in Rviz and MRPT GUI:

The example of usage EKF 3D SLAM in online regime:

roslaunch mrpt_ekf_slam_3d ekf_slam_3d.launch

The example of usage EKF 3D SLAM from .rawlog file:

roslaunch mrpt_ekf_slam_3d ekf_slam_3d_rawlog.launch



The mrpt_ekf_slam_3d node takes in mrpt_msgs/ObservationRangeBearing messages and builds a map with landmarks and robot pose. The map can be retrieved via a ROS topic.

Subscribed Topics

tf (tf/tfMessage)
  • Transforms necessary to relate frames for laser, base, and odometry (see below)
landmark (mrpt_msgs/ObservationRangeBearing)
  • Landmarks to create the map

Published Topics

state_viz (visualization_msgs/MarkerArray)
  • Visualization of the current state of the EKF
data_association_viz (visualization_msgs/MarkerArray)
  • Visualization of the currently observed landmarks by robot


~global_frame_id (string, default: "map")
  • the frame attached to the map
~base_frame_id (string, default: "base_link")
  • The frame attached to the mobile base
~odom_frame_id (string, default: "odom")
  • The frame attached to the odometry system
~sensor_source (string, default: "scan")
  • The name of topics with 2d laser scans or beacons (the name of topic should contaion word "scan" or "beacon")
~ini_filename (string, default: None)
  • The path to the ini file with MRPT settings for SLAM (see tutorial folder)
~rawlog_filename (string, default: None)
  • The path to rawlog file(if the rawlog file is not exists the SLAM starts in online regime)
~rawlog_play_delay (float, default: 0.1)
  • Delay for replay SLAM from rawlog file.
~ellipse_scale (float, default: 1)
  • The parameter for rescaling covariance ellipses visualization.

Required tf Transforms

<the frame attached to incoming scans>base_link base_linkodom
  • The robot odometry, provided by the odometry system (e.g., the driver for the mobile base)

Provided tf Transforms

  • The current estimate of the robot's pose within the map frame

Wiki: mrpt_ekf_slam_3d (last edited 2016-08-22 08:50:59 by VladislavTananaev)