Skip to content

[Feature request]: Handle failure to plan given unforseen constraints at a local planning level #37

Description

@arjo129

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    Blocked

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions