Inform move_base about blocked plan
I saw that we can signal move_base that the path is blocked in order to recalculate the global plan as quoted in the next sentence.
~planner_frequency (double, default: 0.0)
The rate in Hz at which to run the global planning loop. If the frequency is set to 0.0, the global planner will only run when a new goal is received or the local planner reports that its path is blocked.
My question is: what is the mechanism in the local planner to inform move base that the path is blocked?
Another question that comes to mind is the centralized architecture problem : If everything is controlled by the ROS master what happens if this entity fails? Does the ROS framework have control mechanisms to recover or stop everything if there is nothing that can be done to recover?
It is bad form to ask two questions in one posting, but to respond to your 'ROS Master' question: the master is only used in initial setup of connections. It is an important component, but no data flows through it. So recovery is possible, but not automatic at this time.
Thank you. And if the master fails during the connections establishment?
I think you already know the answer: if the master is used during setup of all connections and it fails at that particular point in time, then setup of connections will not complete. Note that new subscriptions and svc reqs without persistent conx will always need the master, not just at init.