slam_coreslam: coreslam
Package Summary
This package contains CoreSLAM, from OpenSlam, and a ROS wrapper.
- Author: Bruno Steuxa and Oussama El Hamzaoui; ROS Wrapper by Michael Ferguson
- License: MIT
- Repository: albany-ros-pkg
- Source: svn http://albany-ros-pkg.googlecode.com/svn/trunk/slam_coreslam/coreslam
Contents
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)
- 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.
- 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)
- The frame attached to the mobile base.
- The frame attached to the map.
- The frame attached to the odometry system.
- 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.
- Resolution of the map.
- Standard deviation in x and y directions for Monte Carlo sampling (in meters).
- Standard deviation for rotation in Monte Carlo sampling (in radians).
- Width of a hole (in meters). See CoreSLAM paper for details.
Required tf Transforms
<the frame attached to incoming scans> → base_link- usually a fixed value, broadcast periodically by a robot_state_publisher, or a tf static_transform_publisher.
- usually provided by the odometry system (e.g., the driver for the mobile base)
Provided tf Transforms
map → odom- the current estimate of the robot's pose within the map frame