Download

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 NameMessage typeCallback
global_localizationEmpty [std_srvs-ROS1/ServiceServer]
initialposePoseWithCovarianceStamped [geometry_msgs-ROS1/Subscriber]
mapOccupancyGrid [nav_msgs-ROS1/Subscriber]
request_nomotion_updateEmpty [std_srvs-ROS1/ServiceServer]
scanLaserScan [sensor_msgs-ROS1/Subscriber]
set_mapSetMap [nav_msgs-ROS1/ServiceServer]

Output List

There are 5 parameters.

Port NameMessage type
amcl_posePoseWithCovarianceStamped [geometry_msgs-ROS1/Publisher]
dependsDependency [movai_msgs-MovAI/Depends]
particlecloudPoseArray [geometry_msgs-ROS1/Publisher]
static_mapGetMap [nav_msgs-ROS1/ServiceClient]
tftfMessage [tf-ROS1/Publisher]

Parameter List

There are 42 parameters.

ParameterDescription
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