AMCL fake failure [closed]

asked 2012-08-01 01:43:19 -0500

maurizio gravatar image

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 initial_pose topic using it as a sort of memory buffer: in particular I wanted to keep the amcl_pose (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.


edit retag flag offensive reopen merge delete

Closed for the following reason question is not relevant or outdated by tfoote
close date 2015-04-05 15:08:20.240695


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.

Mac gravatar image Mac  ( 2012-08-13 12:17:18 -0500 )edit

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

maurizio gravatar image maurizio  ( 2012-08-14 09:41:09 -0500 )edit

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...

Mac gravatar image Mac  ( 2012-08-15 09:54:51 -0500 )edit

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

maurizio gravatar image maurizio  ( 2012-08-15 12:27:20 -0500 )edit

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.

Mac gravatar image Mac  ( 2012-08-15 13:17:55 -0500 )edit