Stephen Chiu wrote:
> I have tried two ways in getting the amcl to converge into the right
> position, or at least, near the right position. One way was to supply a
> large init_pose_var and a pf_max_samples to 60,000. However, it never
> did converge to the right spot. The second thing that I tried was to set
> the init_pose_var to [1 1 10] and kept the same number of
> pf_max_samples, it converged relatively close to the right spot, but
> once I started moving the robot around (using playerjoy), it started
> teleporting away from the correct position (according to playernav).
What happens to the load on your machine? If you see your machine is
approximately 0.0% idle (e.g., in top), then amcl can easily fall behind
the incoming data. At this point, if the robot keeps moving it will
indeed get lost. Evolving 60K particles might be too computationally
expensive, depending on your machine specs. In my experience, if you
start with a good pose estimate (e.g., drag and drop to about the right
pose in playernav), amcl works well with 100-2000 particles:
pf_max_samples 2000
pf_min_samples 100
I've been meaning for a long time to add support for the wavefront
driver to stop the robot when amcl falls behind (this situation can be
inferred from the amcl data message). I'd happily accept a patch that
does this...
brian.
--
Brian P. Gerkey gerkey@...
Stanford AI Lab http://ai.stanford.edu/~gerkey
|