Hi,
I am using navigation stack and wondering what is the expected behavior of global planner upon the local planner fails to control robot according to thewaypoints.
According to a test that I ran ([link](https://github.com/gergia/multiple_turtlebots_stage_amcl/blob/replanning/README.md)), it seems that it enters the global planner over and over again (without taking into account any info from sensors).
That is not what I would expect - I expected it to return *impossible to find a plan* the second time it enters the planner.
Is it really so, or did I make a mistake in the setup?
EDIT:
I found suitable parameters to control number of time global planner is called - those are *planner\_patience* and *max\_planning\_retries* (the latter one is exactly what I was looking for, as found [here](https://github.com/ros-planning/navigation/issues/496) ).
**However**, even with this parameters set to smaller values (2 seconds or 4 attempts), makePlan is still invoked multiple times. It seems as if that happens in separate threads, because I get the info that *max\_planning\_retries* is exceeded, but makePlan is being called over and over again.
I have no idea how to detect which function or which node calls it multiple times. Does somebody know better? EDIT2: Additionally, it is clear that infinite loop of calling makePlan starts once the *max\_planning\_retries* is exceeded and afterwards it does not check that condition. EDIT3: disabling recovery behaviors all together keeps number of calls to makePlan lower (although, still higher than *max\_planning\_retries*)
**However**, even with this parameters set to smaller values (2 seconds or 4 attempts), makePlan is still invoked multiple times. It seems as if that happens in separate threads, because I get the info that *max\_planning\_retries* is exceeded, but makePlan is being called over and over again.
I have no idea how to detect which function or which node calls it multiple times. Does somebody know better? EDIT2: Additionally, it is clear that infinite loop of calling makePlan starts once the *max\_planning\_retries* is exceeded and afterwards it does not check that condition. EDIT3: disabling recovery behaviors all together keeps number of calls to makePlan lower (although, still higher than *max\_planning\_retries*)