• Diff for "gmapping"
Differences between revisions 67 and 68
Revision 67 as of 2009-09-29 00:31:53
Size: 5547
Editor: KenConley
Comment:
Revision 68 as of 2009-09-29 01:51:22
Size: 5477
Editor: KenConley
Comment:
Deletions are marked like this. Additions are marked like this.
Line 23: Line 23:
 * `tf` (<<MsgLink(tf/tfMessage)>>) : Transforms necessary to relate frames for laser, base, and odometry (see below)
 * `scan` (<<MsgLink(sensor_msgs/LaserScan)>>) : Laser scans to create the map from
`tf` (<<MsgLink(tf/tfMessage)>>)
Transforms necessary to relate frames for laser, base, and odometry (see below)

`scan` (<<MsgLink(sensor_msgs/LaserScan)>>)
Laser scans to create the map from
Line 26: Line 30:
 * `map_metadata` (<<MsgLink(nav_msgs/MapMetaData)>>) : Get the map data from this topic, which is latched, and updated periodically.
 * `map` (<<MsgLink(nav_msgs/OccupancyGrid)>>) : Get the map data from this topic, which is latched, and updated periodically
===== Services provided =====
 *
`dynamic_map` (<<SrvLink(nav_msgs/GetMap)>>) : Call this service to get the map data

`map_metadata` (<<MsgLink(nav_msgs/MapMetaData)>>)
 
Get the map data from this topic, which is latched, and updated periodically.

`map` (<<MsgLink(nav_msgs/OccupancyGrid)>>)
 
Get the map data from this topic, which is latched, and updated periodically

===== Services =====
`dynamic_map` (<<SrvLink(nav_msgs/GetMap)>>)
 
Call this service to get the map data
Line 31: Line 42:
 * `~inverted_laser` (default: false) : Is the laser right side up (scans are ordered CCW), or upside down (scans are ordered CW)?
 * `~throttle_scans` (default: 1) : Process 1 out of every this many scans (set it to a higher number to skip more scans)
 * `~base_frame` (default: "base_link") : The frame attached to the mobile base.
 * `~map_frame` (default: "map") : The frame attached to the map.
 * `~odom_frame` (default: "odom") : The frame attached to the odometry system.
 * `~map_update_interval` (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.
 * `~maxUrange` (default: 80.0) : The maximum usable range of the laser. A beam is cropped to this value.
 * `~sigma` (default: 0.05) : The sigma used by the greedy endpoint matching
 * `~kernelSize` (default: 1) : The kernel in which to look for a correspondence
 * `~lstep` (default: 0.05) : The optimization step in translation
 * `~astep` (default: 0.05) : The optimization step in rotation
 * `~iterations` (default: 5) : The number of iterations of the scanmatcher
 * `~lsigma` (default: 0.075) : The sigma of a beam used for likelihood computation
Line 45: Line 43:
 * `~ogain` (default: 3.0) : Obstacle gain (?)
 * `~lskip` (default: 0) : Number of beams to skip in each scan.
 * `~srr` (default: 0.1) : Odometry error in translation as a function of translation (rho/rho)
 * `~srt` (default: 0.2) : Odometry error in translation as a function of rotation (rho/theta)
 * `~str` (default: 0.1) : Odometry error in rotation as a function of translation (theta/rho)
 * `~stt` (default: 0.2) : Odometry error in rotation as a function of rotation (theta/theta)
 * `~linearUpdate (default: 1.0) : Process a scan each time the robot translates this far
 * `~angularUpdate` (default: 0.5) : Process a scan each time the robot rotates this far
 * `~resampleThreshold` (default: 0.5) : The neff based resampling threshold (?)
 * `~particles` (default: 30) : Number of particles in the filter
 *
`~xmin` (default: -100.0) : Initial map size
 * `~ymin` (default: -100.0) : Initial map size
 * `~xmax` (default: 100.0) : Initial map size
 * `~ymax` (default: 100.0) : Initial map size
 *
`~delta` (default: 0.05) : Processing parameters (resolution of the map)
 * `~llsamplera
nge` (default: 0.01) : Translational sampling range for the likelihood                                                                               * `~llsamplestep` (default: 0.01) : Translational sampling range for the likelihood
 * `~lasamplerange` (default: 0.005) : Angular sampling range for the likelihood
 * `~lasamplestep` (default: 0.005) : Angular sampling step for the likelihood
`~inverted_laser` (default: false)
  Is the laser right side up (scans are ordered CCW), or upside down (scans are ordered CW)?
`~throttle_scans` (default: 1)
  Process 1 out of every this many scans (set it to a higher number to skip more scans)
`~base_frame` (default: "base_link")
  The frame attached to the mobile base.
`~map_frame` (default: "map")
  The frame attached to the map.
`~odom_frame` (default: "odom")
  The frame attached to the odometry system.
`~map_update_interval` (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.
`~maxUrange` (default: 80.0)
  The maximum usable range of the laser. A beam is cropped to this value.
`~sigma` (default: 0.05)
  The sigma used by the greedy endpoint matching
`~kernelSize` (default: 1)
  The kernel in which to look for a correspondence
`~lstep` (default: 0.05)
  The optimization step in translation
`~astep` (default: 0.05)
  The optimization step in rotation
`~iterations` (default: 5)
  The number of iterations of the scanmatcher
`~lsigma` (default: 0.075)
  The sigma of a beam used for likelihood computation

`~ogain` (default: 3.0)
 
Obstacle gain (?)
`~lskip` (default: 0)
 
Number of beams to skip in each scan.
`~srr` (default: 0.1)
 
Odometry error in translation as a function of translation (rho/rho)
`~srt` (default: 0.2)
 
Odometry error in translation as a function of rotation (rho/theta)
`~str` (default: 0.1)
 
Odometry error in rotation as a function of translation (theta/rho)
`~stt` (default: 0.2)
 
Odometry error in rotation as a function of rotation (theta/theta)
`~linearUpdate (default: 1.0)
 
Process a scan each time the robot translates this far
`~angularUpdate` (default: 0.5)
 
Process a scan each time the robot rotates this far
`~resampleThreshold` (default: 0.5)
  The neff based resampling threshold (?)
`~particles` (default
: 30)
  Num
ber of particles in the filter
`~xmin` (default: -100.0)
 
Initial map size
`~ymin` (default: -100.0)
 
Initial map size
`~xmax` (default: 100.0)
 
Initial map size
`~ymax` (default: 100.0)
  Initial map size
`~delta` (default
: 0.05)
  Processing parameters (resolution of the map)
`~llsamplerange` (default: 0.01)
  Translational sampling range for the likelihood
`~llsamplestep` (default: 0.01)
  Translational sampling range for the likelihood
`~lasamplerange` (default: 0.00
5)
  Angular sampling range for the likelihood
`~lasamplestep` (default
: 0.005)
  A
ngular sampling step for the likelihood
Line 68: Line 112:
 * <the frame attached to incoming scans> &rarr; `base_link` : usually a fixed value, broadcast periodically by mechanism_control, or a tf/transform_sender
 * `base_link` &rarr; `odom` : usually provided by the odometry system (e.g., the driver for the mobile base)

<the frame attached to incoming scans> &rarr; `base_link`
 
usually a fixed value, broadcast periodically by mechanism_control, or a tf/transform_sender

`base_link` &rarr; `odom`
 
usually provided by the odometry system (e.g., the driver for the mobile base)
Line 71: Line 119:
 * `map` &rarr; `odom`
`map` &rarr; `odom`

  Documentation Status

slam_gmapping: gmapping

Package Summary

Documented

This package contains GMapping, from OpenSlam, and a ROS wrapper. The gmapping package provides laser-based SLAM (Simultaneous Localization and Mapping), as a ROS node called slam_gmapping. Using slam_gmapping, you can create a 2-D occupancy grid map (like a building floorplan) from laser and pose data collected by a mobile robot. This package uses r39 from GMapping SVN repsitory at openslam.org, with minor patches applied to support newer versions of GCC and OSX.

slam_gmapping: gmapping

Package Summary

Documented

This package contains GMapping, from OpenSlam, and a ROS wrapper. The gmapping package provides laser-based SLAM (Simultaneous Localization and Mapping), as a ROS node called slam_gmapping. Using slam_gmapping, you can create a 2-D occupancy grid map (like a building floorplan) from laser and pose data collected by a mobile robot. This package uses r39 from GMapping SVN repsitory at openslam.org, with minor patches applied to support newer versions of GCC and OSX.

slam_gmapping: gmapping

Package Summary

Documented

This package contains GMapping, from OpenSlam, and a ROS wrapper. The gmapping package provides laser-based SLAM (Simultaneous Localization and Mapping), as a ROS node called slam_gmapping. Using slam_gmapping, you can create a 2-D occupancy grid map (like a building floorplan) from laser and pose data collected by a mobile robot. This package uses r39 from GMapping SVN repsitory at openslam.org, with minor patches applied to support newer versions of GCC and OSX.

slam_gmapping: gmapping | openslam_gmapping

Package Summary

Released Continuous integration Documented

This package contains a ROS wrapper for OpenSlam's Gmapping. The gmapping package provides laser-based SLAM (Simultaneous Localization and Mapping), as a ROS node called slam_gmapping. Using slam_gmapping, you can create a 2-D occupancy grid map (like a building floorplan) from laser and pose data collected by a mobile robot.

slam_gmapping: gmapping | openslam_gmapping

Package Summary

Released Continuous integration Documented

This package contains a ROS wrapper for OpenSlam's Gmapping. The gmapping package provides laser-based SLAM (Simultaneous Localization and Mapping), as a ROS node called slam_gmapping. Using slam_gmapping, you can create a 2-D occupancy grid map (like a building floorplan) from laser and pose data collected by a mobile robot.

slam_gmapping: gmapping | openslam_gmapping

Package Summary

Released Continuous integration Documented

This package contains a ROS wrapper for OpenSlam's Gmapping. The gmapping package provides laser-based SLAM (Simultaneous Localization and Mapping), as a ROS node called slam_gmapping. Using slam_gmapping, you can create a 2-D occupancy grid map (like a building floorplan) from laser and pose data collected by a mobile robot.

slam_gmapping: gmapping | openslam_gmapping

Package Summary

Released Continuous integration Documented

This package contains a ROS wrapper for OpenSlam's Gmapping. The gmapping package provides laser-based SLAM (Simultaneous Localization and Mapping), as a ROS node called slam_gmapping. Using slam_gmapping, you can create a 2-D occupancy grid map (like a building floorplan) from laser and pose data collected by a mobile robot.

Cannot load information on name: gmapping, distro: lunar, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.

External Documentation

This is mostly a third party package; the underlying GMapping library is externally documented. Look there for details on many of the parameters listed below.

Hardware Requirements

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

Example

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

rosrun gmapping slam_gmapping scan:=base_scan

Nodes

slam_gmapping

The slam_gmapping 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.

ROS API

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 used

~inverted_laser (default: false)

  • Is the laser right side up (scans are ordered CCW), or upside down (scans are ordered CW)?

~throttle_scans (default: 1)

  • Process 1 out of every this many scans (set it to a higher number to skip more scans)

~base_frame (default: "base_link")

  • The frame attached to the mobile base.

~map_frame (default: "map")

  • The frame attached to the map.

~odom_frame (default: "odom")

  • The frame attached to the odometry system.

~map_update_interval (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.

~maxUrange (default: 80.0)

  • The maximum usable range of the laser. A beam is cropped to this value.

~sigma (default: 0.05)

  • The sigma used by the greedy endpoint matching

~kernelSize (default: 1)

  • The kernel in which to look for a correspondence

~lstep (default: 0.05)

  • The optimization step in translation

~astep (default: 0.05)

  • The optimization step in rotation

~iterations (default: 5)

  • The number of iterations of the scanmatcher

~lsigma (default: 0.075)

  • The sigma of a beam used for likelihood computation

~ogain (default: 3.0)

  • Obstacle gain (?)

~lskip (default: 0)

  • Number of beams to skip in each scan.

~srr (default: 0.1)

  • Odometry error in translation as a function of translation (rho/rho)

~srt (default: 0.2)

  • Odometry error in translation as a function of rotation (rho/theta)

~str (default: 0.1)

  • Odometry error in rotation as a function of translation (theta/rho)

~stt (default: 0.2)

  • Odometry error in rotation as a function of rotation (theta/theta)

`~linearUpdate (default: 1.0)

  • Process a scan each time the robot translates this far

~angularUpdate (default: 0.5)

  • Process a scan each time the robot rotates this far

~resampleThreshold (default: 0.5)

  • The neff based resampling threshold (?)

~particles (default: 30)

  • Number of particles in the filter

~xmin (default: -100.0)

  • Initial map size

~ymin (default: -100.0)

  • Initial map size

~xmax (default: 100.0)

  • Initial map size

~ymax (default: 100.0)

  • Initial map size

~delta (default: 0.05)

  • Processing parameters (resolution of the map)

~llsamplerange (default: 0.01)

  • Translational sampling range for the likelihood

~llsamplestep (default: 0.01)

  • Translational sampling range for the likelihood

~lasamplerange (default: 0.005)

  • Angular sampling range for the likelihood

~lasamplestep (default: 0.005)

  • Angular sampling step for the likelihood

tf API

Required transforms

<the frame attached to incoming scans> → base_link

  • usually a fixed value, broadcast periodically by mechanism_control, or a tf/transform_sender

base_linkodom

  • usually provided by the odometry system (e.g., the driver for the mobile base)

Provided transforms

mapodom

Wiki: gmapping (last edited 2015-12-09 04:40:26 by Sebastian Schweigert)