[ros-users] Navigation Stack: the robot rotates most of the time after receiving a goal

Brian Gerkey gerkey at willowgarage.com
Mon Sep 20 18:14:32 UTC 2010

On Mon, Sep 20, 2010 at 10:37 AM, Eitan Marder-Eppstein
<eitan at willowgarage.com> wrote:
> On Mon, Sep 20, 2010 at 6:14 AM, clarkwu <wu.xiaojun at gmail.com> wrote:
>> (2) Observed from rviz window, there is an accumulative deviation between
>> the laser scan points and the map. Please also refer to the youtube link:
>> http://www.youtube.com/watch?v=roAMPNqg0k4

>> For point (2), we have no idea about it. Is the AMCL supposed to correct
>> the
>> robot position?
> AMCL will attempt to correct for the robot's position. However, if memory
> serves me, the default configuration for AMCL assumes that you have pretty
> good odometry. It might help you to play around with some of the parameters
> that control how much to trust the estimate from odometry which might let
> AMCL use the laser more heavily to snap things back into place. Relevant
> parameters are documented here: http://www.ros.org/wiki/amcl#Parameters. Do
> you experience much drift when you drive the robot 10 meters forward in the
> odometric frame and look at accumulated laser scans?

Echoing Eitan's suggestion, you should now try the first test that I
prescribed: drive the robot around without amcl, and look at the laser
scans in the odom frame, in rviz.  Be sure to increase the decay time
of the laser display.  If your odometry is reasonable, then you should
see a crude map constructed from the accumulated scans.  You want to
be sure that you're getting the best possible performance from
odometry before you spend time correcting for odometry errors.

Once you're getting good data from odometry, some amcl parameters to
look at first:

~update_min_d, ~update_min_a: reduce these values to update the filter
with laser data more often; it's more computationally expensive, but
can help if odometry drifts very fast.

~odom_alpha[1-4]: increase these values to add increase variance in
the motion model.  In particular, increase odom_alpha3 to increase
translational variance in the X direction (you should see an elongated
particle cloud in hallways).

~laser_max_beams: increase this value to make the filter look at more
of each scan.  This can help for shorter-range laser (such as yours).

Another thing that comes to mind: your map looks like it was drawn by
hand, or possibly taken from an architectural floorplan.  While such
maps can be used for localization, they often have errors, and it's
easy to get the resolution wrong.


More information about the ros-users mailing list