Skip to content

Implement a layered global occupancy map #27

Description

@arjo129

Before proceeding, is there an existing issue or discussion for this?

Description

Our current prototype for Nav2 integration relies on a one-directional flow of action:

Image

A challenge arises when local planning fails to find a valid path for a robot, often due to unexpected obstacles blocking all progress. To resolve this, the robot must utilize its onboard sensors to dynamically update a centralized map.

Image

Dotted lines represent new message interfaces that need to be specified

With this extended architecture, the Nav2-native robot can update the map server. If an agent can no longer progress within its safe operating envelope, a system-wide replan is triggered. This requires a mechanism to notify the fleet adapter of the blocked path, allowing global multi-agent planning to adapt in real time.

Key Considerations

  • Time-to-Live (TTL): Local observations must incorporate a time-to-live mechanism. This ensures that transient obstacles, such as pedestrians or temporary equipment, do not permanently degrade the routing efficiency of the central fleet manager.
  • Obstacle Representation: We must determine how to efficiently represent and transmit obstacle data (e.g., occupancy grid updates versus costmap layers) to minimize communication latency between Nav2 nodes and the central Open-RMF map server.
  • Map Representation: Different planners may require alternatives to standard 2D occupancy grids.
  • Replan Triggers: We must define the specific conditions that should necessitate a full, system-wide replanning cycle.

Immediate Actions:

  • Propose a standardized set of messages to extend the perception system.
  • Implement a lightweight local observation node that can be easily deployed onto a Nav2-powered Autonomous Mobile Robot (AMR).
  • Implement a layered costmap approach to serving a map.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    In Progress

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions