tuw_marker_filter: tuw_marker_noise | tuw_marker_server | tuw_marker_slam

Package Summary

The tuw_marker_slam package provides a framework for feature based SLAM implementations in ROS. Meanwhile a variant of EKF-SLAM is implemented.

Overview

tuw_marker_slam_node

This 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)

Usage

rosrun tuw_marker_slam tuw_marker_slam_node

Examples

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

Node

Subscribed Topics

cmd (geometry_msgs/Twist)
  • Velocity and angular rate commands of the vehicle will be retrieved via this latched topic.
marker (marker_msgs/MarkerDetection)
  • Pose measurements of detected markers will be retrieved via this latched topic.

Published Topics

xt (geometry_msgs/PoseWithCovarianceStamped)
  • Receive the vehicles pose in the currently explored marker map via this latched topic.
mt (marker_msgs/MarkerWithCovarianceArray)
  • Receive the currently explored marker map via this latched topic.

Parameters

mode (int, default: 0)
  • Indicates the used SLAM technique: 0 - EKF-SLAM
xzplane (boolean, default: false)
  • Indicates whether the measurements are taken in the XZ-plane (e.g. Gazebo) or in the XY-plane (e.g. Stage)
frame_id_map (string, default: "map")
  • 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.
frame_id_odom (string, default: "odom")
  • Name of destination frame used in the provided transformation from map to odom.
frame_id_base (string, default: "base_link")
  • Name of vehicles frame.
beta_1/18 (double)
  • Parameters of the used measurement noise model in EKF SLAM.

Required tf Transforms

baseodom
  • Transform from the estimated pose to odom
<frame in which measurements are taken>base
  • Transform incoming measurements into the base frame

Provided tf Transforms

mapodom
  • Transform from the estimated map to odom

Wiki: tuw_marker_slam (last edited 2016-11-15 20:13:49 by Markus Bader)