Rosanswers logo

Hi all, Based on amcl wiki, odometry data is used in amcl algorithm as follow:

initialpose (geometry_msgs/PoseWithCovarianceStamped) Mean and covariance with which to (re-)initialize the particle filter.

It is used for "initialize the particle filter". When does amcl initialize the particle filter? Upon program startup only?Could anyone guide me the location of the source code ? It is used for "re-initialize the particle filter" When does amcl re-initialize the particle filter? Could anyone guide me the location of the source code ?

Based on above descriptions, can I assume that odometry data is not required for amcl algorithm processing? If I set the initial pose to some known position in the map, do I still need odometry data for amcl algorithm processing?

Originally posted by MIN LATT on ROS Answers with karma: 51 on 2017-06-14

Post score: 1


1 Answer 1


Rosanswers logo

You have some misunderstandings.

At startup AMCL loads an initial pose that defaults to (0, 0, 0) from the param server, as detailed here. That is when AMCL initializes the particle filter.

The odometry is not used as you have stated. The initialpose is not a nav_msgs/Odometry, but a geometry_msgs/PoseWithCovarianceStamped. The AMCL will subscribes to that topic and reinitialize the particle filter if a pose is published on that topic.

You are wrong assuming odometry is not required. AMCL is very dependent on it, but it uses the odometry from your TF tree, not from a topic, as shown here.

The source code can be found here.

Originally posted by Procópio with karma: 4402 on 2017-06-15

This answer was ACCEPTED on the original site

Post score: 3

Original comments

Comment by MIN LATT on 2017-06-15:
Thanks a lot, Procópio. Basically if nobody publishes geometry_msgs/PoseWithCovarianceStamped, AMCL uses (0,0,0) as initial pose. Am I right?

Comment by Procópio on 2017-06-15:
yes, that's right! but note that geometry_msgs/PoseWithCovarianceStamped is just the type, you may have several topics with the same type but different names, AMCL only subscribes to the one named /initialpose

Comment by anonymous38087 on 2019-03-28:
@Procópio Hello, sir. Is it possible to use the laser_scan_matcher as an odometry estimatortor?

Comment by Procópio on 2019-04-03:
@Bryant, yes you can.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.