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

call MoveBaseAction from within a recovery_behavior

asked 2014-07-22 05:09:31 -0600

Luke_ROS gravatar image

I tried to call the move_base as a SimpleActionClient from within a recovery_behavior. The recovery_behavior starts as expected and the SimpleActionServer is connected (checked with client.isServerConnected()). I then cancel all existing goals with client.cancelAllGoals(). But after sending the new goal via client.sendGoal(goal), I only get the state PENDING from the SimpleActionServer and the goal is not getting executed.

So I was wondering if it is even possible to call a new goal from within a recovery_behavior or if the error is somewhere in my code.

Thanks for any help. If needed, I can of course provide some code snippets.

System: Hydro on Ubuntu 12.04

edit retag flag offensive close merge delete

Comments

Is this recovery behavior in the same node as the move_base action server?

BennyRe gravatar image BennyRe  ( 2014-07-22 05:16:20 -0600 )edit

No. I implemented it in another node. Would that make a difference?

Luke_ROS gravatar image Luke_ROS  ( 2014-07-22 06:09:00 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2014-07-22 05:58:06 -0600

dornhege gravatar image

Recovery Behaviors as they are usually implemented take full control of the robot and of move_base. Basically move_base turns to the recovery behavior and waits until it is complete. It is not interleaved or continuously called or watched from move_base. Essentially you've created a dead-lock where you wait for move_base and move_base waits for you to complete.

edit flag offensive delete link more

Comments

I was afraid of sth like that. Is there a possiblity to trick that? (like calling an external node calling the move_base from there)

Luke_ROS gravatar image Luke_ROS  ( 2014-07-22 06:11:44 -0600 )edit

It doesn't change anything if you're still waiting for that external node that waits for move_base.

dornhege gravatar image dornhege  ( 2014-07-22 06:23:57 -0600 )edit

Yeah... It seems like I have to exit recovery_behavior first before steering the robot to the new pose... Thanks for your help!

Luke_ROS gravatar image Luke_ROS  ( 2014-07-22 07:15:07 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2014-07-22 05:09:31 -0600

Seen: 218 times

Last updated: Jul 22 '14