Does ros have a state observer?
I'd like to monitor the odometry
feedback and the command
messages to identify whether a robot is stuck. Something along the lines of this - If the odometry
does not update over a certain command
messages then the robot should figure out that it's stuck and override the command
given to it.
What's the recommended way to do this?
Isn't this what the navigation stack does (ie: when it triggers the recovery behaviours)?
I don't know, I haven't poked around too much. But I'm looking for something more generic that can be extended to other systems - If the payload of an arm is impeding the arm from achieving the desired velocities and accelerations etc. So I'm looking for a more generic state observer, if it exists.
According to http://answers.ros.org/question/37537... , the recovery behaviors are triggered if An oscillation was discovered, no global plan was received for some amount of time, or the local planner failed to find a valid velocity command for some amount of time
It doesn't necessarily seem to depend on the odometry of the robot, at least directly..