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

Revision history [back]

are you setting your initialpose with amcl?

are you setting your initialpose with amcl?

EDIT: about your comment

The point of global localization is to align the sensor measurement to a prebuilt map. It seems amcl is really just keep the map roughly in place, but is incapable of a large adjust.

AMCL generates hypothesis of where the robot could be and how well the measurements of that hypothesis match the current measurement. When you call /global_localization it spreads the hypothesis all over the map and, as the robot moves, it reevaluate its hypothesis and prunes the unlikely ones, eventually converging to a reduced set of particles concentrated on the actual position.

But it is not magical, depending on the map you have and the measurements you are using, it may converge to a local minima and then it is hard to escape from there.

Localizing in a featureless map is really hard for AMCL, imagine your map is a square, and the robot is facing a corner. In which corner of the square are you? The /initialpose gives a hint to your filter and it will more often than not, converge to the true position.

are you setting your initialpose with amcl?

EDIT: about your comment

The point of global localization is to align the sensor measurement to a prebuilt map. It seems amcl is really just keep the map roughly in place, but is incapable of a large adjust.

AMCL generates hypothesis of where the robot could be and how well the measurements of that hypothesis match the current measurement. When you call /global_localizationrosservice call move_base/global_localization it spreads the hypothesis all over the map and, as the robot moves, it reevaluate its hypothesis and prunes the unlikely ones, eventually converging to a reduced set of particles concentrated on the actual position.

But it is not magical, depending on the map you have and the measurements you are using, it may converge to a local minima and then it is hard to escape from there.

Localizing in a featureless map is really hard for AMCL, imagine your map is a square, and the robot is facing a corner. In which corner of the square are you? The /initialpose /initialpose gives a hint to your filter and it will more often than not, converge to the true position.