AMCL fake failure
Dear all,
I am working with the turtlebot simulator. I can run AMCL and navigation without any problem. The purpose of my experiments is to simulate a temporary sensor failure. In particular, given a goal during the navigation I interrupt the data coming from the narrow_scan topic directed toward the AMCL. At that point, I receive the following message: "Could not get robot pose, cancelling reconfiguration" from AMCL.
The robot keeps going for some seconds, probably because it is still able to exploit the local map. Up to here, it is all as expected.
When I turn on again the narrow_scan. the pose estimate of the robot is very coarse (particles spread all over the environment)
I was thinking to act on the initialpose topic using it as a sort of memory buffer: in particular I wanted to keep the amclpose (last value gathered from the Monte Carlo localization) and put it in the initial pose, but it doesn't work.
I'd like to know if this idea is valid or there are smarter ways to adopt.
Thanks
Asked by maurizio on 2012-08-01 01:43:19 UTC
Comments
Can you elaborate on what you're trying to accomplish? What you're describing is exactly how AMCL is supposed to work; it's very robust to minor failures.
Asked by Mac on 2012-08-13 12:17:18 UTC
I would like just to give, after this fake failure,a good estimate about the pose of the robot (in the end, the robot has to be in the neighborhood of the pose where the failure happened).As far as I understand,this is not taken into account by the filter and the new initial estimate is very coarse
Asked by maurizio on 2012-08-14 09:41:09 UTC
I'm still confused. You want to localize the robot, but you also want to make it hard to localize the robot? If you're in simulation, you can presumably query Gazebo to figure out where the (simulated) robot really is. If you just want to know where the robot is, don't cut the sensor feed...
Asked by Mac on 2012-08-15 09:54:51 UTC
I want to generate a temporary failure (that then implies some effort by the framework I am working on). After this temporal failure, even in real cases, the localization should start with an estimate close to the position in which such a failure happened. Currently, the particles are very spread
Asked by maurizio on 2012-08-15 12:27:20 UTC
Ok, got it. Why should it be re-initializing at that point? If the goal is to know where the robot is, the particle filter is doing exactly what you want.
Asked by Mac on 2012-08-15 13:17:55 UTC