The tuw_marker_slam package provides a framework for feature based SLAM implementations in ROS. Meanwhile a variant of EKF-SLAM is implemented.
- Maintainer status: developed
- Maintainer: Markus Bader <markus.bader AT tuwien.ac DOT at>
- Author: Markus Macsek
- License: BSD
- Source: git https://github.com/tuw-robotics/tuw_marker_filter.git (branch: kinetic)
tuw_marker_slam_nodeThis C++ ROS node implements the SLAM framework. It listens for commands executed by the vehicle for the prediction step and receives the detected markers for the update step. At the end of each SLAM cycle it publishes the currently explored marker map and the vehicles estimated pose in it. Furthermore a transformation from the established map to odom is provided.
Mobile Robotics: EKF-SLAM using Visual Markers for Vehicle Pose Estimation
Macsek, M., "Masters Thesis at Vienna University of Technology", 2016 (PDF)
rosrun tuw_marker_slam tuw_marker_slam_node
Start SLAM framework in EKF-SLAM mode with a predefined measurement noise model:
roslaunch tuw_marker_slam slam.launch
Start SLAM framework in EKF-SLAM mode with a predefined measurement noise model using the simulation environment Stage (https://github.com/tuw-robotics/stage_ros):
roslaunch tuw_marker_slam slam_demo_stage.launch
Start SLAM framework in EKF-SLAM mode with a predefined measurement noise model using the simulation environment Gazebo (https://github.com/tuw-robotics/tuw_gazebo) and the tuw_aruco marker detection
roslaunch tuw_marker_slam slam_demo_gazebo.launch
Subscribed Topicscmd (geometry_msgs/Twist)
- Velocity and angular rate commands of the vehicle will be retrieved via this latched topic.
- Pose measurements of detected markers will be retrieved via this latched topic.
Published Topicsxt (geometry_msgs/PoseWithCovarianceStamped)
- Receive the vehicles pose in the currently explored marker map via this latched topic.
- Receive the currently explored marker map via this latched topic.
Parametersmode (int, default: 0)
- Indicates the used SLAM technique: 0 - EKF-SLAM
- Indicates whether the measurements are taken in the XZ-plane (e.g. Gazebo) or in the XY-plane (e.g. Stage)
- Name of frame inserted into header of published map and vehicle pose respectively but also used as source frame in the provided transformation from map to odom.
- Name of destination frame used in the provided transformation from map to odom.
- Name of vehicles frame.
- Parameters of the used measurement noise model in EKF SLAM.
Required tf Transformsbase → odom
- Transform from the estimated pose to odom
- Transform incoming measurements into the base frame
Provided tf Transformsmap → odom
- Transform from the estimated map to odom