AMCL Observation Model

asked 2012-03-28 08:50:22 -0500

heber gravatar image

updated 2016-05-22 18:55:33 -0500

130s gravatar image

Hi! I'm studding some localisation algorithms and now I'm focused in Particle Filters.

I'm using AMCL as a case study. To understand the algorithm and the meaning of the parameters, I had reviewed AMCL source code and read the book Probabilistic Robotics, by Thrun, Burgard, and Fox.

Analyzing the function: double AMCLLaser::LikelihoodFieldModel(AMCLLaserData data, pf_sample_set_t set)

I have some doubts and I like to hear other opinions. So it is here (amcl_laser.cpp):

      //       p *= pz;
      // here we have an ad-hoc weighting scheme for combining beam probs
      // works well, though...
      p += pz *pz *pz;

In the book should be p * = pz but in the code p += pz*pz*pz; Someone understand this option?

And in this line we have:

sample->weight *= p;

And I think that should be (pag 98 of the book):

sample->weight = p;

By the way, can someone suggest another alternative to AMCL?

Chears!!! And thanks in advance!

edit retag flag offensive close merge delete



This was closed due to "question is not relevant or outdated". However, I just hit this same question, and this is I think specific to ROS (/Player) AMCL implementation (ie. this isn't a generic AMCL issue), so I've reopened it.

130s gravatar image 130s  ( 2016-05-22 18:46:29 -0500 )edit

I am also working on a project where i use AMCL, and am very curious about the changes in the algorithm. My theory is that the algorithm in the book assumes a completely correct and static map, where in the likelihood field, dynamic objects might result in a single beam scoring very low.

FOXTER gravatar image FOXTER  ( 2016-05-24 14:28:48 -0500 )edit

When multiplying the probabilities this might "punish" an otherwise good scoring pose/scan. When adding the probabilities together a single "bad" beam doesn't punish the entire sample.

FOXTER gravatar image FOXTER  ( 2016-05-24 14:30:16 -0500 )edit

Related pull request in navigation package.

130s gravatar image 130s  ( 2016-09-28 18:27:50 -0500 )edit