Before proceeding, is there an existing issue or discussion for this?
Description
As part of our initiative to transition towards a more “horizontal” architecture in open-rmf, @mxgrey has proposed a six-stage roadmap:
https://discourse.openrobotics.org/t/next-generation-open-rmf-roadmap/53820
Implementation Considerations
This ticket specifically addresses the first phase of this development cycle.
A comprehensive specification for the next-generation prototype is detailed in the following posts:
- https://discourse.openrobotics.org/t/taxonomy-of-interfaces-for-the-next-generation/44310
- https://discourse.openrobotics.org/t/traffic-management-interfaces-for-the-next-generation/44414
These posts provide a rigorous specification for next-generation interfaces, sufficient to serve as a baseline for implementing an instance of open-rmf.
Furthermore, several technology demonstrations are available across various repositories:
The objective of this ticket is to establish a concrete action plan for a reference implementation of the open-rmf message specification and Nav2 integration. The next-generation traffic interfaces comprise three primary components:
- Destination Server: Functionally equivalent to RMF’s reservation_node.
- Plan Server: Functionally equivalent to RMF’s rmf_traffic.
- Plan Executor: Previously integrated within rmf_fleet_adapter.
A Minimum Viable Product (MVP) will implement these three layers. For clarity, I have decomposed each component into discrete milestones.
Pass 1
This initial phase prioritizes establishing the core software components; fault tolerance and session_refresh components will be excluded from this scope.
Destination Server
Plan Server
Plan Executor
Visualization
Developer Infrastructure
At the end of Pass 1 we will have a simple playground with swappable algorithms for MAPF and a simple destination server. This will by no means be within parity of the old open-rmf.
Pass 2
The focus of this pass will be on handling failures and edge cases for robots within a free-space
Across All Nodes
Path Server/Path Executor
Visualization
Pass 3
The focus of this pass will be to build out more complex logic
Destination Server
Before proceeding, is there an existing issue or discussion for this?
Description
As part of our initiative to transition towards a more “horizontal” architecture in open-rmf, @mxgrey has proposed a six-stage roadmap:
https://discourse.openrobotics.org/t/next-generation-open-rmf-roadmap/53820
Implementation Considerations
This ticket specifically addresses the first phase of this development cycle.
A comprehensive specification for the next-generation prototype is detailed in the following posts:
These posts provide a rigorous specification for next-generation interfaces, sufficient to serve as a baseline for implementing an instance of open-rmf.
Furthermore, several technology demonstrations are available across various repositories:
Additionally, we maintain a mature visualization tool: https://github.com/open-rmf/rmf_site
The objective of this ticket is to establish a concrete action plan for a reference implementation of the open-rmf message specification and Nav2 integration. The next-generation traffic interfaces comprise three primary components:
A Minimum Viable Product (MVP) will implement these three layers. For clarity, I have decomposed each component into discrete milestones.
Pass 1
This initial phase prioritizes establishing the core software components; fault tolerance and
session_refreshcomponents will be excluded from this scope.Destination Server
rmf_reservation_nodeand update tests accordingly. #9Plan Server
Plan.msgmessage format (See feat: Core MAPF Path Server, Plan Executor, and Visual Tooling #17).Plan Executor
PlanRelease.msgsupport. (See feat: Core MAPF Path Server, Plan Executor, and Visual Tooling #17)SafeZone.msgsupport. (See feat: Core MAPF Path Server, Plan Executor, and Visual Tooling #17)Visualization
Developer Infrastructure
At the end of Pass 1 we will have a simple playground with swappable algorithms for MAPF and a simple destination server. This will by no means be within parity of the old open-rmf.
Pass 2
The focus of this pass will be on handling failures and edge cases for robots within a free-space
Across All Nodes
~session_refreshlogic.Path Server/Path Executor
Visualization
rmf_site.Pass 3
The focus of this pass will be to build out more complex logic
Destination Server