ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A
Ask Your Question

amcl---Inaccurate positioning

asked 2018-05-11 04:59:45 -0500

wings0728 gravatar image

updated 2018-05-12 01:56:03 -0500

jayess gravatar image

when I use amcl package, the location is inaccurate.


I guess:

  1. the pose from odom-topic has high noise.

  2. Parameter setting is problematic.

amcl Parameter:

  <arg name="scan_topic"     default="scan"/>
  <arg name="initial_pose_x" default="0.0"/>
  <arg name="initial_pose_y" default="0.0"/>
  <arg name="initial_pose_a" default="0.0"/>

  <node pkg="amcl" type="amcl" name="amcl">

    <param name="min_particles"             value="500"/>
    <param name="max_particles"             value="3000"/>
    <param name="kld_err"                   value="0.02"/>
    <param name="update_min_d"              value="0.20"/>
    <param name="update_min_a"              value="0.20"/>
    <param name="resample_interval"         value="1"/>
    <param name="transform_tolerance"       value="0.5"/>
    <param name="recovery_alpha_slow"       value="0.00"/>
    <param name="recovery_alpha_fast"       value="0.00"/>
    <param name="initial_pose_x"            value="$(arg initial_pose_x)"/>
    <param name="initial_pose_y"            value="$(arg initial_pose_y)"/>
    <param name="initial_pose_a"            value="$(arg initial_pose_a)"/>
    <param name="gui_publish_rate"          value="50.0"/>

    <remap from="scan"                      to="$(arg scan_topic)"/>
    <param name="laser_max_range"           value="14"/>
    <param name="laser_max_beams"           value="30"/>
    <param name="laser_z_hit"               value="0.5"/>
    <param name="laser_z_short"             value="0.05"/>
    <param name="laser_z_max"               value="0.05"/>
    <param name="laser_z_rand"              value="0.5"/>
    <param name="laser_sigma_hit"           value="0.2"/>
    <param name="laser_lambda_short"        value="0.1"/>
    <param name="laser_likelihood_max_dist" value="2.0"/>
    <param name="laser_model_type"          value="likelihood_field"/>

    <param name="odom_model_type"           value="diff"/>
    <param name="odom_alpha1"               value="0.2"/>
    <param name="odom_alpha2"               value="0.2"/>
    <param name="odom_alpha3"               value="0.2"/>
    <param name="odom_alpha4"               value="0.2"/>
    <param name="odom_frame_id"             value="odom"/>
    <param name="base_frame_id"             value="base_footprint"/>


image description


image description

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2018-05-11 15:51:06 -0500

updated 2018-05-11 15:52:08 -0500

Three comments after seeing your param settings:

1) As suggested in amcl wiki , set the odom_model_type to:

<param name="odom_model_type" value="diff-corrected"/>

we changed from "diff" to "diff-corrected" and experienced a significant improvement

2) You may also use more beams of the scan, it could improve the localization, obviously paying computational cost.

3) likelihood_field laser model only uses laser_z_hit and laser_z_rand. Setting both to 0.5, means you are weighting somehow equally randomness and map... I think you could trust a little more on your map.



edit flag offensive delete link more


thank for your answer. I want to know ,what means about 'laser_z_hit' and 'laser_z_rand'?

wings0728 gravatar image wings0728  ( 2018-05-13 04:47:14 -0500 )edit

"hit" refers to the situation when a laser beam hits an obstacle. "rand" means the uniform distribution which is used to model the situation in which there might exist some unexplained measurements.

chung gravatar image chung  ( 2018-05-13 17:50:26 -0500 )edit

If you expect a lot of unmodelled obstacles in your environment (meaning obstacles not in the map like people), then you should increase "rand" contribution. Otherwise, if your environment is very static and all obstacles are represented in the map, the you can almost remove the "rand" part.

Andreu gravatar image Andreu  ( 2018-05-14 02:02:24 -0500 )edit

where you guys have read this kind of information? i cant find it in ros wiki or google

june2473 gravatar image june2473  ( 2019-09-26 07:17:01 -0500 )edit

AMCL is the product of several research work mainly carried out by Fox, Thrun, Burgard et al. early in the 2000's. A detailed explanation of the amcl algorithm (and others) can be found at the book: - Thrun, S., Burgard, W., Fox, D. Probabilistic Robotics. The MIT press. 2006.

Andreu gravatar image Andreu  ( 2019-09-26 12:36:42 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



Asked: 2018-05-11 04:59:45 -0500

Seen: 1,262 times

Last updated: May 12 '18