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] | |
initialpose | PoseWithCovarianceStamped [geometry_msgs-ROS1/Subscriber] | |
map | OccupancyGrid [nav_msgs-ROS1/Subscriber] | |
request_nomotion_update | Empty [std_srvs-ROS1/ServiceServer] | |
scan | LaserScan [sensor_msgs-ROS1/Subscriber] | |
set_map | SetMap [nav_msgs-ROS1/ServiceServer] |
Output List
There are 5 parameters.
Port Name | Message type |
---|---|
amcl_pose | PoseWithCovarianceStamped [geometry_msgs-ROS1/Publisher] |
depends | Dependency [movai_msgs-MovAI/Depends] |
particlecloud | PoseArray [geometry_msgs-ROS1/Publisher] |
static_map | GetMap [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 |