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

Revision history [back]

Is it normal that I have to give the 2d pose estimate in rviz and it is not automatically done by amcl?

When? At the very beginning, AMCL needs to initialize its filter. This is done with a initialPose message given by the user, e.g. with RVIZ. If you don't provide an initialization, if I remember correctly, the particle set is initialized at pose-zero, I mean, the origin of your map or odom frame (which should coincide/have-the-same-pose at the beginning).

Because if I move the laser, the points move but the robot model remains stationary in the map?

This is not a problem with the lasers, AMCL asks to TF "if the robot has moved" to "update the filter". If you don't provide a transform (usually from base_frame to odom) AMCL will not update anything.

As every filter, AMCL has two main steps, Prediction (called UpdateAction inside the AMCL code, i.e. the motion model) and Measure incorporation (UpdateSensor inside AMCL, one of the two sensor models, i.e. Likelihood Field Model or the Beam Model). The first one is done using TF, so your system needs to provide that motion estimate. Then, the predicted estimate (according to the motion model) will be corrected/improved using the sensor readings, i.e. the laser scan and the known map.

So, to answer to your question: if the points move but the robot model remains stationary in the map you have some problems with TF, or you are not providing a motion estimate :-)

bye!