AMCL Observation Model

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

heber gravatar image

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

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

Comments

2

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 -0600 )edit
1

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 -0600 )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 -0600 )edit

Related pull request in navigation package.

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