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.
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".
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
mrpt_ekf_slam_3dThe 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 Topicstf (tf/tfMessage)
- Transforms necessary to relate frames for laser, base, and odometry (see below)
- Landmarks to create the map
Published Topicsstate_viz (visualization_msgs/MarkerArray)
- Visualization of the current state of the EKF
- Visualization of the currently observed landmarks by robot
Parameters~global_frame_id (string, default: "map")
- the frame attached to the map
- The frame attached to the mobile base
- The frame attached to the odometry system
- The name of topics with 2d laser scans or beacons (the name of topic should contaion word "scan" or "beacon")
- The path to the ini file with MRPT settings for SLAM (see tutorial folder)
- The path to rawlog file(if the rawlog file is not exists the SLAM starts in online regime)
- Delay for replay SLAM from rawlog file.
- The parameter for rescaling covariance ellipses visualization.
Required tf Transforms<the frame attached to incoming scans> → base_link
- The relative pose of the laser sensor w.r.t. the robot. Usually a fixed value, broadcast periodically by a robot_state_publisher, or a tf static_transform_publisher.
- The robot odometry, provided by the odometry system (e.g., the driver for the mobile base)
Provided tf Transformsmap → odom
- The current estimate of the robot's pose within the map frame