Download

amcl

ROS AMCL

Description

amcl is a probabilistic localization system for a robot moving in 2D. It implements the adaptive (or KLD-sampling Monte Carlo localization approach: as described by Dieter Fox), which uses a particle filter to track the pose of a robot on a known map.

Documentation: http://wiki.ros.org/amcl

Examples

...

Input List

There are 6 parameters.

Port Name

Message type

Callback

global_localization

Empty [std_srvs-ROS1/ServiceServer][std_srvs-ROS1/ServiceServer]

initialpose

PoseWithCovarianceStamped [geometry_msgs-ROS1/Subscriber][geometry_msgs-ROS1/Subscriber]

map

OccupancyGrid [nav_msgs-ROS1/Subscriber][nav_msgs-ROS1/Subscriber]

request_nomotion_update

Empty [std_srvs-ROS1/ServiceServer][std_srvs-ROS1/ServiceServer]

scan

LaserScan [sensor_msgs-ROS1/Subscriber][sensor_msgs-ROS1/Subscriber]

set_map

SetMap [nav_msgs-ROS1/ServiceServer][nav_msgs-ROS1/ServiceServer]

Output List

There are 5 parameters.

Port Name

Message type

amcl_pose

PoseWithCovarianceStamped [geometry_msgs-ROS1/Publisher][geometry_msgs-ROS1/Publisher]

depends

Dependency [movai_msgs-MovAI/Depends][movai_msgs-MovAI/Depends]

particlecloud

PoseArray [geometry_msgs-ROS1/Publisher][geometry_msgs-ROS1/Publisher]

static_map

GetMap [nav_msgs-ROS1/ServiceClient][nav_msgs-ROS1/ServiceClient]

tf

tfMessage [tf-ROS1/Publisher]

Parameter List

There are 42 parameters.

Parameter

Description

base_frame_id

[string] The frame to use for the robot base.

first_map_only

[bool] When set to true, amcl will only use the first map to which it subscribes , rather than updating each time a new one is received. New in navigation 1.4.2

global_frame_id

[string] The name of the coordinate frame published by the localization system

gui_publish_rate

[double] Maximum rate (Hz) at which scans and paths are published for visualization. Set -1.0 to disable.

initial_cov_aa

[double] Initial pose covariance (yaw*yaw), used to initialize a filter with a Gaussian distribution.

initial_cov_xx

[double] Initial pose covariance (x*x), used to initialize a a filter with a Gaussian distribution.

initial_cov_yy

[double] Initial pose covariance (y*y) used to initialize a filter with a Gaussian distribution.

initial_pose_a

[double] Initial pose mean (yaw), used to initialize a filter a with a Gaussian distribution.

initial_pose_x

[double] Initial pose mean (x), used to initialize a filter with a Gaussian distribution.

initial_pose_y

[double] Initial pose mean (y), used to initialize a filter with a Gaussian distribution.

kld_err

[double] Maximum error between the True distribution and the estimated distribution.

kld_z

[double] Upper standard normal quantile for 1 - p where p is the probability that the error on the estimated distrubition will be less than kld_err.

laser_lambda_short

[double] Exponential decay parameter for the z_short part of model.

laser_likelihood_max_dist

[double] Maximum distance for which to perform obstacle inflation on the map to be used in the likelihood_field model.

laser_max_beams

[int] Quantity of evenly-spaced beams in each scan to be used when updating the filter.

laser_max_range

[double] Maximum scan range to be considered.
-1.0 specifies that the laser's reported maximum range is used.

laser_min_range

[double] Minimum scan range to be considered;.
-1.0 specifies that the laser's reported minimum range is used.

laser_model_type

[string] Specifies which model to use, which is either beam, likelihood_field, or likelihood_field_prob (the same as likelihood_field, but incorporates the beamskip feature, if it is enabled).

laser_sigma_hit

[double] Standard deviation for the Gaussian model used in a z_hit part of the model.

laser_z_hit

[double] Mixture weight for the z_hit part of the model.

laser_z_max

[double] Mixture weight for the z_max part of the model.

laser_z_rand

[double] Mixture weight for the z_rand part of the model.

laser_z_short

[double] Mixture weight for the z_short part of the model.

max_particles

[int] Maximum allowed number of particles.

min_particles

[int] Minimum allowed number of particles.

odom_alpha1

[double] Specifies the expected noise in the odometry's rotation estimate from the rotational component of the robot's motion.

odom_alpha2

[double] Specifies the expected noise in odometry's rotation estimate from translational component of the robot's motion.

odom_alpha3

[double] Specifies the expected noise in the odometry's translation estimate from the translational component of the robot's motion.

odom_alpha4

[double] Specifies the expected noise in the odometry's translation estimate from the rotational component of the robot's motion.

odom_alpha5

[double] Translation-related noise parameter, which is only used if a model is "omni".

odom_frame_id

[string] The frame to use for odometry.

odom_model_type

[string] Which model to use – either "diff", "omni", "diff-corrected" or "omni-corrected".

recovery_alpha_fast

[double] Exponential decay rate for the fast average weight filter, which is used while deciding when to recover by adding random poses. A good value might be 0.1.

recovery_alpha_slow

[double] Exponential decay rate for the slow average weight filter, used in deciding when to recover by adding random poses. A good value might be 0.001.

resample_interval

[int] Number of filter updates required before resampling.

save_pose_rate

[double] Maximum rate (Hz) at which to store the last estimated pose and covariance to the parameter server, in the variables ~initialpose**and ~initialcov**. This saved pose will be used for subsequent runs to initialize the filter. Use -1.0 to disable.

selective_resampling

[bool] When set to True, will reduce the resampling rate when not needed and help avoid particle deprivation. The resampling will only happen if the effective number of particles (N_eff = 1/(sum(k_i^2))) is lower than half the current number of particles. Reference: Grisetti, Giorgio, Cyrill Stachniss, and Wolfram Burgard. Improved techniques for grid mapping with rao-blackwellized particle filters. IEEE transactions on Robotics 23.1 (2007)

tf_broadcast

[bool] Set this to False to prevent amcl from publishing the transform between the global frame and the odometry frame.

transform_tolerance

[double] Time with which to post-date the transform that is published. This indicates that this transform is valid in the future.

update_min_a

[double] Rotational movement required before performing a filter update.

update_min_d

[double] Translational movement required before performing a filter update.

use_map_topic

[bool] When set to True, amcl subscribes to the map topic rather than making a service call to receive its map. New in navigation 1.4.2

More Info