-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
move_base cancelGoal doesn't work while executing recovery behavior #34
Comments
Definitely a bug. The API will have to change to support this though. Currently the runBehavior call does its whole thing in one thread in the one function call, so there's no way to interrupt it. I could give that function a return value ( boolean) which says whether it is done or not. Then the recovery behavior will need to have its loop opened up so it returns false after each cycle until it's done. |
Is there some way to hack it by setting a global boolean variable for the behavior to check periodically, returning if it's set? |
Well, we could always hack it, but I would love to avoid that. Options I'm seeing so far:
So after typing all that out, my favorite is the last one. |
My naive opinion: your last option looks good. |
Sorry, I'm not familiar with RecoveryBehavior API, so I cannot have an informed opinion. When do you plan to attack this issue? |
Hello from 2017, Is there any solution implemented or available to fix this issue? |
@Tutorgaming Hello from 2018! Did you ever find a way to work around this? |
It seems that I disabled the original RecoveryBehavior and try to recover the robot outside the move_base. Everything works fine . in the recovery behavior need to somehow connected to the move_base server |
Not sure if this is bug... I posted as ros answer and someone suggested to open an issue. Looks like move_base action client's cancelGoal doesn't work while executing recovery behavior. That is, if I call cancelGoal or cancelAllGoals, the subsequent call to waitForResult doesn't return until all recovery fails. If I disable recovery behavior meanwhile with dynamic_reconfigure. doesn't returns until recovery fails (more than 2 minutes!). I suppose move_base gets somehow blocked when running recovery behavior and don't even attend reconfigure requests.
I'm using hydro-devel code, but I experienced the same with groovy package installation.
The text was updated successfully, but these errors were encountered: