you can pass the initial position as arguments when launching your node, as initial_pose_x
and initial_pose_y
.
EDIT: if you want AMCL to "guess" on its own the initial position, you can set the parameters update_min_d
and update_min_a
to negative values. By doing so, the filter will update at the frequency of your /scan
topic, without the need to move. (bear in mind that this will greatly increase your cpu usage).
However, there is no guarantee the filter will converge to the correct solution instead of converging to a local minima. Taking you comment about the 4 rooms, if they all look very alike, there is no way AMCL can know in which one you are.
EDIT2: it is wise to also use the /global_localization service, as told by @augusto-luis-ballardini , as it will spread your filter particles throughout the map, instead of concentrating them in the initial position loaded by AMCL.
If I remember correctly, you can ask for a global localization using a service call, but I don't know if this is exactly what you want
What I want it to be able to fire the system up and for the robot to be able to place itself within the map with out my using riviz to set the "Initial Pose"
ok, what about putting inside your launch file a publisher for the global localization service? look here http://answers.ros.org/question/11271...