slam_coreslam: coreslam

Package Summary

This package contains CoreSLAM, from OpenSlam, and a ROS wrapper.

Hardware Requirements

To use CoreSLAM, you need a mobile robot that provides odometry data and is equipped with a horizontally-mounted, fixed, laser range-finder. The slam_coreslam node will attempt to transform each incoming scan into the odom (odometry) tf frame. See the "Required tf transforms" for more on required transforms.

Example

To make a map from a robot with a laser publishing scans on the base_scan topic:

rosrun coreslam slam_coreslam scan:=base_scan

Nodes

slam_coreslam

The slam_coreslam node takes in sensor_msgs/LaserScan messages and builds a map (nav_msgs/OccupancyGrid). The map can be retrieved via a ROS topic or service.

Subscribed Topics

tf (tf/tfMessage)
  • Transforms necessary to relate frames for laser, base, and odometry (see below)
scan (sensor_msgs/LaserScan)
  • Laser scans to create the map from

Published Topics

map_metadata (nav_msgs/MapMetaData)
  • Get the map data from this topic, which is latched, and updated periodically.
map (nav_msgs/OccupancyGrid)
  • Get the map data from this topic, which is latched, and updated periodically

Services

dynamic_map (nav_msgs/GetMap)
  • Call this service to get the map data

Parameters

~throttle_scans (int, default: 1)
  • Process 1 out of every this many scans (set it to a higher number to skip more scans)
~base_frame (string, default: "base_link")
  • The frame attached to the mobile base.
~map_frame (string, default: "map")
  • The frame attached to the map.
~odom_frame (string, default: "odom")
  • The frame attached to the odometry system.
~map_update_interval (float, default: 5.0)
  • How long (in seconds) between updates to the map. Lowering this number updates the occupancy grid more often, at the expense of greater computational load.
~delta (float, default: 0.05)
  • Resolution of the map.
~sigma_xy (float, default: 0.1)
  • Standard deviation in x and y directions for Monte Carlo sampling (in meters).
~sigma_theta (float, default: 0.35)
  • Standard deviation for rotation in Monte Carlo sampling (in radians).
~hole_width (float, default: 0.6)
  • Width of a hole (in meters). See CoreSLAM paper for details.

Required tf Transforms

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

Provided tf Transforms

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

Wiki: coreslam (last edited 2011-04-23 20:20:39 by FlorentinVonFrankenberg)