-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
The tolerance of navfn_planner and bt_navigator issues when a robot is stuck #1683
Comments
Well, it was in tolerance so I'll say I think that's expected behavior. There's no way to tell if its valid because you're in tolerance of 2m (which could be totally reasonable depending on the application, like security). I think you just need to update your config file to reflect wanting a smaller tolerance. I will say that 2 seems high. If you submitted a PR reducing it to 1m or 0.5m, I'd merge it. Do you think this issue has caused your problem? #1652 It says more or less that the abort is used as a preemption trigger and therefore aborts aren't working well. I think from what you describe I would think that it would continously be trying to replan, not fail to replan or not trigger recoveries. Since the controller server also reports an abort (I believe? maybe we should check that they both do it the same way / handled the same way by their BT nodes) when it fails to control, I believe that that aspect should be working. If you get in a bad control situation, you still see the controller fail, abort, and trigger recoveries. |
Yes, thanks for pointing out there is a similar issue. I just tried what @maxlein has mentioned in #1652:
And then the bt_navigator goes well. Updated: |
@QQting I haven't had time to look into this. Can you look into why the controller server when it fails it will trigger recoveries and why you've found that the planner won't? Maybe they behave differently in the BT plugin nodes or in the nav2_controller/nav2_planner servers. |
@QQting is that ticket causing your problems as well? If so, I'd like to close this and converge the conversations over there. |
@SteveMacenski My ticket consists of two issues:
|
I'd accept a PR to reduce it to something like 0.5m, but I don't think its good behavior to have it default to 0. The configuration file can be used to change this value.
That would be great. Lets continue the discussion over there. |
Hi @SteveMacenski ,
|
Why would there be an exception? Its aborting the goal and the goal handle of the client will return a result of being aborted. On point 2: the On point 3, I see the same terminate_current -> abort codes. These all look identical to me |
Bug report
Required Info:
current master branch
ecc42fb
CycloneDDS
Steps to reproduce issue
I've tested my robot in a 2x2 meter square area with current master branch. I intentionally make my robot stuck in a corner and the robot has no way to escape. Then I send a goal asking my robot to navigate to another corner. There is no valid path can be generated from the robot's position to the goal because my robot is stuck. However, the navigation system just tells me the robot reaches the goal even my robot is (1.5 meter) far from the goal.
It took me a while to figure out until I found the tolerance of navfn_planner is set to 2.0 meters according to this discussion. After I change the value back to 0.0, it looks reasonable because the planner_server failed to create a plan. But there is another issue: planner_server aborts its handle and no replanning or recovery happens.
Expected behavior
What I expected is the stuck robot should NOT be able to create a valid path and then going to replanning or recovery by following navigate_w_replanning_and_recovery.xml.
Actual behavior
When the tolerance of navfn_planner is set to 2.0:
Navigation succeed but actually the robot is still stuck at the same place.
When the tolerance of navfn_planner is set to 0.0:
ComputePathToPoseAction keeps ticking on_wait_for_result() even the planner server has aborted its handle. In this situation, new goal can't preempt the current goal until I restart navigation stack.
The text was updated successfully, but these errors were encountered: