ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

AMCL Probabilistic Likelihood Field

asked 2016-12-30 10:01:23 -0600

musi00 gravatar image

I am interested in trying out the probabilistic Likelihood field observation model in amcl because if its beam_skip feature. However, there is no documentation in the AMCL ROS Wiki about the beam skip parameters. I know about them because I was digging through the amcl source code. The paramters are:

do_beamskip

beam_skip_distance

beam_skip_threshold

beam_skip_error_threshold

It would be great if someone could shed some light on what those parameters mean. I also wanted to understand the difference between the standard likelihood field which I understand by reading Thrun's book and the probabilistic likelihood field that can be used in amcl.

My motivation behind this is to try and improve amcl localization when the map changes significantly due to new obstacles. Ideally I would like amcl to remove all beams that don't match the static map prior to evaluating p(z|m)

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
5

answered 2017-01-04 09:04:29 -0600

musi00 gravatar image

I have read through the AMCL source and this is what I understand from the code: AMCL implements a likelihood field that skips beams whose endpoints do not match the map for a significant number of particles. The skipped beams are not used in computing the probability of the observation given the map p(z|m), which is used as the weight of each particle. Therefore particles that are correct do not get downweighted because of unexpected obstacles. This claimed to help in dynamic environments.

Algorithm Details:

  • Beam skipping is only triggered when the particle filter (pf) has converged, where the pf is considered converged when the distance of all particles to the mean of the particle cloud in both x and y directions is less than a hardcoded value of 0.5m
  • A beam is skipped if a there are enough particles at which the beam does not match the map. The minimum ratio of particles for which a beam must match the map in order not be skipped is specified by the beam_skip_threshold parameter. Default value = 0.3m
  • A beam is considered not to match the map if its distance to the closest occupied cell in the map is >= beam_skip_distance. Default value = 0.5m
  • If too many beams are skipped, max_beams * beam_skip_error_threshold then the particle filter reverts to using all beams. Default beam_skip_error_threshold = 0.9
edit flag offensive delete link more

Question Tools

3 followers

Stats

Asked: 2016-12-30 10:01:23 -0600

Seen: 2,798 times

Last updated: Jan 04 '17