Before proceeding, is there an existing issue or discussion for this?
Description
With our Nav 2 native integration, there will be times where our robot may be unable to progress given the newly introduced constraints by the spatio-temporal layer. In such scenarios, we need to have a way to replan. Currently, there is an interface defined by the executor to declare that progress is impossible for the executor to execute via the plan/error topic. However we have no way of reporting planning failure at a local-planner level. With the safe-zone message there are a number of reasons why this would happen: Firstly, the local neighborhood within a safe-zone may become congested beyond a point of replanning.
Implementation Considerations
There are several ways to implement re-planning strategies. Currently the plan executor node interfaces with the odom although the specification recommends using progress (this is a separate issue ticket itself and a discussion worth having). What we really need is a progress error type that can say "local planner failed to find a solution". It is currently recommended by the spec here to post on the error topic but we have not implemented anything along these lines.
Alternatives
The alternative would be to monitor how far from a schedule a particular robot is and trigger a replan. This could potentially work as its less work for system integrators, but at the same time it comes with the tradeoff that the replanning behaviour could be seen as chaotic and we would have an added "timeout" parameter that is difficult to tune.
Additional information
We will need #27 / #36 for this to work well otherwise the mapf planner will recommend the same route repeatedly.
Before proceeding, is there an existing issue or discussion for this?
Description
With our Nav 2 native integration, there will be times where our robot may be unable to progress given the newly introduced constraints by the spatio-temporal layer. In such scenarios, we need to have a way to replan. Currently, there is an interface defined by the executor to declare that progress is impossible for the executor to execute via the
plan/errortopic. However we have no way of reporting planning failure at a local-planner level. With the safe-zone message there are a number of reasons why this would happen: Firstly, the local neighborhood within a safe-zone may become congested beyond a point of replanning.Implementation Considerations
There are several ways to implement re-planning strategies. Currently the plan executor node interfaces with the
odomalthough the specification recommends usingprogress(this is a separate issue ticket itself and a discussion worth having). What we really need is a progress error type that can say "local planner failed to find a solution". It is currently recommended by the spec here to post on the error topic but we have not implemented anything along these lines.Alternatives
The alternative would be to monitor how far from a schedule a particular robot is and trigger a replan. This could potentially work as its less work for system integrators, but at the same time it comes with the tradeoff that the replanning behaviour could be seen as chaotic and we would have an added "timeout" parameter that is difficult to tune.
Additional information
We will need #27 / #36 for this to work well otherwise the mapf planner will recommend the same route repeatedly.