Package Summary
Tags | No category tags. |
Version | 0.1.1 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | A framework for orchestration |
Checkout URI | https://github.com/osrf/nexus.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-12 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yadunund
Authors
nexus_transporter
This package provides a pure virtual interface Transporter
to be implemented to integrate a transportation system into Nexus.
Libraries that implement the Transporter
class can be loaded through pluginlib
at runtime by the TransporterNode
.
Two reference implementations of Transporter
are provided.
Mock transporter
The mock transporter simulates a simple conveyor belt and has the following parameters:
-
x_increment
The distance in meters between stations. -
destinations
An ordered list of named stations. -
speed
Speed in m/s of the conveyor belt.
The plugin will then simulate a conveyor with a list of destinations
, equally spaced by x_increment
, moving at a fixed speed
.
RMF transporter
The RMF transporter provides an interface to a running RMF instance. The plugin will create a composed task with a series of pickup / dropoffs based on the requested itinerary and assess its feasibility by checking,
- that the requested destinations are present in the navigation graphs of the Open-RMF building map, only then will it
- start an Open-RMF dry-run bidding process with the created task, to determine which AMR should be assigned to the task, without starting the task
Once the itinerary has been accepted and the transporter starts the transportation task, the composed task will be directly dispatched to the assigned AMR.
The plugin implements the Transporter::handle_signal
interface to signal AMRs when they can resume their itinerary, by publishing the corresponding dispensing or ingesting results.
Specifically, when an AMR reaches its last destination and it is marked as a dropoff
, the transportation request will be marked as complete and Open-RMF will begin publishing an IngestorRequest
and wait for a matching IngestorResult
.
As soon as the transporter’s handle_signal
function receives the dropoff
signal, the matching IngestorResult
message will be published and the AMR will be released and complete its task.
Mock dispenser
A mock_dispenser_interface
parameter is provided (and defaults to true
). The parameter creates a mock dispenser interface that will always publish a successful dispenser result for each dispenser request that is sent for a Nexus itinerary.
The purpose of this dispenser is to allow testing full RMF delivery tasks while the logic for a workcell to dispense arbitrary items on an AMR is not available yet.
Future work
- Implement workcells with multiple input / output stations and use them for transportation requests.
Changelog for package nexus_transporter
0.1.1 (2023-11-20)
0.1.0 (2023-11-06)
- Provides the
nexus_transporter_node
which interfaces with transportation systems to move material across a flowline. - Provides the
Transporter
API for users to integrate transportation systems.
Package Dependencies
System Dependencies
Name |
---|
yaml-cpp |
Dependant Packages
Name | Deps |
---|---|
nexus_demos |
Launch files
Messages
Services
Plugins
Recent questions tagged nexus_transporter at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.1.1 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | A framework for orchestration |
Checkout URI | https://github.com/osrf/nexus.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-12 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yadunund
Authors
nexus_transporter
This package provides a pure virtual interface Transporter
to be implemented to integrate a transportation system into Nexus.
Libraries that implement the Transporter
class can be loaded through pluginlib
at runtime by the TransporterNode
.
Two reference implementations of Transporter
are provided.
Mock transporter
The mock transporter simulates a simple conveyor belt and has the following parameters:
-
x_increment
The distance in meters between stations. -
destinations
An ordered list of named stations. -
speed
Speed in m/s of the conveyor belt.
The plugin will then simulate a conveyor with a list of destinations
, equally spaced by x_increment
, moving at a fixed speed
.
RMF transporter
The RMF transporter provides an interface to a running RMF instance. The plugin will create a composed task with a series of pickup / dropoffs based on the requested itinerary and assess its feasibility by checking,
- that the requested destinations are present in the navigation graphs of the Open-RMF building map, only then will it
- start an Open-RMF dry-run bidding process with the created task, to determine which AMR should be assigned to the task, without starting the task
Once the itinerary has been accepted and the transporter starts the transportation task, the composed task will be directly dispatched to the assigned AMR.
The plugin implements the Transporter::handle_signal
interface to signal AMRs when they can resume their itinerary, by publishing the corresponding dispensing or ingesting results.
Specifically, when an AMR reaches its last destination and it is marked as a dropoff
, the transportation request will be marked as complete and Open-RMF will begin publishing an IngestorRequest
and wait for a matching IngestorResult
.
As soon as the transporter’s handle_signal
function receives the dropoff
signal, the matching IngestorResult
message will be published and the AMR will be released and complete its task.
Mock dispenser
A mock_dispenser_interface
parameter is provided (and defaults to true
). The parameter creates a mock dispenser interface that will always publish a successful dispenser result for each dispenser request that is sent for a Nexus itinerary.
The purpose of this dispenser is to allow testing full RMF delivery tasks while the logic for a workcell to dispense arbitrary items on an AMR is not available yet.
Future work
- Implement workcells with multiple input / output stations and use them for transportation requests.
Changelog for package nexus_transporter
0.1.1 (2023-11-20)
0.1.0 (2023-11-06)
- Provides the
nexus_transporter_node
which interfaces with transportation systems to move material across a flowline. - Provides the
Transporter
API for users to integrate transportation systems.
Package Dependencies
System Dependencies
Name |
---|
yaml-cpp |
Dependant Packages
Name | Deps |
---|---|
nexus_demos |
Launch files
Messages
Services
Plugins
Recent questions tagged nexus_transporter at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.1.1 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | A framework for orchestration |
Checkout URI | https://github.com/osrf/nexus.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-12 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yadunund
Authors
nexus_transporter
This package provides a pure virtual interface Transporter
to be implemented to integrate a transportation system into Nexus.
Libraries that implement the Transporter
class can be loaded through pluginlib
at runtime by the TransporterNode
.
Two reference implementations of Transporter
are provided.
Mock transporter
The mock transporter simulates a simple conveyor belt and has the following parameters:
-
x_increment
The distance in meters between stations. -
destinations
An ordered list of named stations. -
speed
Speed in m/s of the conveyor belt.
The plugin will then simulate a conveyor with a list of destinations
, equally spaced by x_increment
, moving at a fixed speed
.
RMF transporter
The RMF transporter provides an interface to a running RMF instance. The plugin will create a composed task with a series of pickup / dropoffs based on the requested itinerary and assess its feasibility by checking,
- that the requested destinations are present in the navigation graphs of the Open-RMF building map, only then will it
- start an Open-RMF dry-run bidding process with the created task, to determine which AMR should be assigned to the task, without starting the task
Once the itinerary has been accepted and the transporter starts the transportation task, the composed task will be directly dispatched to the assigned AMR.
The plugin implements the Transporter::handle_signal
interface to signal AMRs when they can resume their itinerary, by publishing the corresponding dispensing or ingesting results.
Specifically, when an AMR reaches its last destination and it is marked as a dropoff
, the transportation request will be marked as complete and Open-RMF will begin publishing an IngestorRequest
and wait for a matching IngestorResult
.
As soon as the transporter’s handle_signal
function receives the dropoff
signal, the matching IngestorResult
message will be published and the AMR will be released and complete its task.
Mock dispenser
A mock_dispenser_interface
parameter is provided (and defaults to true
). The parameter creates a mock dispenser interface that will always publish a successful dispenser result for each dispenser request that is sent for a Nexus itinerary.
The purpose of this dispenser is to allow testing full RMF delivery tasks while the logic for a workcell to dispense arbitrary items on an AMR is not available yet.
Future work
- Implement workcells with multiple input / output stations and use them for transportation requests.
Changelog for package nexus_transporter
0.1.1 (2023-11-20)
0.1.0 (2023-11-06)
- Provides the
nexus_transporter_node
which interfaces with transportation systems to move material across a flowline. - Provides the
Transporter
API for users to integrate transportation systems.
Package Dependencies
System Dependencies
Name |
---|
yaml-cpp |
Dependant Packages
Name | Deps |
---|---|
nexus_demos |
Launch files
Messages
Services
Plugins
Recent questions tagged nexus_transporter at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.1.1 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | A framework for orchestration |
Checkout URI | https://github.com/osrf/nexus.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-12 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yadunund
Authors
nexus_transporter
This package provides a pure virtual interface Transporter
to be implemented to integrate a transportation system into Nexus.
Libraries that implement the Transporter
class can be loaded through pluginlib
at runtime by the TransporterNode
.
Two reference implementations of Transporter
are provided.
Mock transporter
The mock transporter simulates a simple conveyor belt and has the following parameters:
-
x_increment
The distance in meters between stations. -
destinations
An ordered list of named stations. -
speed
Speed in m/s of the conveyor belt.
The plugin will then simulate a conveyor with a list of destinations
, equally spaced by x_increment
, moving at a fixed speed
.
RMF transporter
The RMF transporter provides an interface to a running RMF instance. The plugin will create a composed task with a series of pickup / dropoffs based on the requested itinerary and assess its feasibility by checking,
- that the requested destinations are present in the navigation graphs of the Open-RMF building map, only then will it
- start an Open-RMF dry-run bidding process with the created task, to determine which AMR should be assigned to the task, without starting the task
Once the itinerary has been accepted and the transporter starts the transportation task, the composed task will be directly dispatched to the assigned AMR.
The plugin implements the Transporter::handle_signal
interface to signal AMRs when they can resume their itinerary, by publishing the corresponding dispensing or ingesting results.
Specifically, when an AMR reaches its last destination and it is marked as a dropoff
, the transportation request will be marked as complete and Open-RMF will begin publishing an IngestorRequest
and wait for a matching IngestorResult
.
As soon as the transporter’s handle_signal
function receives the dropoff
signal, the matching IngestorResult
message will be published and the AMR will be released and complete its task.
Mock dispenser
A mock_dispenser_interface
parameter is provided (and defaults to true
). The parameter creates a mock dispenser interface that will always publish a successful dispenser result for each dispenser request that is sent for a Nexus itinerary.
The purpose of this dispenser is to allow testing full RMF delivery tasks while the logic for a workcell to dispense arbitrary items on an AMR is not available yet.
Future work
- Implement workcells with multiple input / output stations and use them for transportation requests.
Changelog for package nexus_transporter
0.1.1 (2023-11-20)
0.1.0 (2023-11-06)
- Provides the
nexus_transporter_node
which interfaces with transportation systems to move material across a flowline. - Provides the
Transporter
API for users to integrate transportation systems.
Package Dependencies
System Dependencies
Name |
---|
yaml-cpp |
Dependant Packages
Name | Deps |
---|---|
nexus_demos |
Launch files
Messages
Services
Plugins
Recent questions tagged nexus_transporter at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.1.1 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | A framework for orchestration |
Checkout URI | https://github.com/osrf/nexus.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-12 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yadunund
Authors
nexus_transporter
This package provides a pure virtual interface Transporter
to be implemented to integrate a transportation system into Nexus.
Libraries that implement the Transporter
class can be loaded through pluginlib
at runtime by the TransporterNode
.
Two reference implementations of Transporter
are provided.
Mock transporter
The mock transporter simulates a simple conveyor belt and has the following parameters:
-
x_increment
The distance in meters between stations. -
destinations
An ordered list of named stations. -
speed
Speed in m/s of the conveyor belt.
The plugin will then simulate a conveyor with a list of destinations
, equally spaced by x_increment
, moving at a fixed speed
.
RMF transporter
The RMF transporter provides an interface to a running RMF instance. The plugin will create a composed task with a series of pickup / dropoffs based on the requested itinerary and assess its feasibility by checking,
- that the requested destinations are present in the navigation graphs of the Open-RMF building map, only then will it
- start an Open-RMF dry-run bidding process with the created task, to determine which AMR should be assigned to the task, without starting the task
Once the itinerary has been accepted and the transporter starts the transportation task, the composed task will be directly dispatched to the assigned AMR.
The plugin implements the Transporter::handle_signal
interface to signal AMRs when they can resume their itinerary, by publishing the corresponding dispensing or ingesting results.
Specifically, when an AMR reaches its last destination and it is marked as a dropoff
, the transportation request will be marked as complete and Open-RMF will begin publishing an IngestorRequest
and wait for a matching IngestorResult
.
As soon as the transporter’s handle_signal
function receives the dropoff
signal, the matching IngestorResult
message will be published and the AMR will be released and complete its task.
Mock dispenser
A mock_dispenser_interface
parameter is provided (and defaults to true
). The parameter creates a mock dispenser interface that will always publish a successful dispenser result for each dispenser request that is sent for a Nexus itinerary.
The purpose of this dispenser is to allow testing full RMF delivery tasks while the logic for a workcell to dispense arbitrary items on an AMR is not available yet.
Future work
- Implement workcells with multiple input / output stations and use them for transportation requests.
Changelog for package nexus_transporter
0.1.1 (2023-11-20)
0.1.0 (2023-11-06)
- Provides the
nexus_transporter_node
which interfaces with transportation systems to move material across a flowline. - Provides the
Transporter
API for users to integrate transportation systems.
Package Dependencies
System Dependencies
Name |
---|
yaml-cpp |
Dependant Packages
Name | Deps |
---|---|
nexus_demos |
Launch files
Messages
Services
Plugins
Recent questions tagged nexus_transporter at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.1.1 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | A framework for orchestration |
Checkout URI | https://github.com/osrf/nexus.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-12 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yadunund
Authors
nexus_transporter
This package provides a pure virtual interface Transporter
to be implemented to integrate a transportation system into Nexus.
Libraries that implement the Transporter
class can be loaded through pluginlib
at runtime by the TransporterNode
.
Two reference implementations of Transporter
are provided.
Mock transporter
The mock transporter simulates a simple conveyor belt and has the following parameters:
-
x_increment
The distance in meters between stations. -
destinations
An ordered list of named stations. -
speed
Speed in m/s of the conveyor belt.
The plugin will then simulate a conveyor with a list of destinations
, equally spaced by x_increment
, moving at a fixed speed
.
RMF transporter
The RMF transporter provides an interface to a running RMF instance. The plugin will create a composed task with a series of pickup / dropoffs based on the requested itinerary and assess its feasibility by checking,
- that the requested destinations are present in the navigation graphs of the Open-RMF building map, only then will it
- start an Open-RMF dry-run bidding process with the created task, to determine which AMR should be assigned to the task, without starting the task
Once the itinerary has been accepted and the transporter starts the transportation task, the composed task will be directly dispatched to the assigned AMR.
The plugin implements the Transporter::handle_signal
interface to signal AMRs when they can resume their itinerary, by publishing the corresponding dispensing or ingesting results.
Specifically, when an AMR reaches its last destination and it is marked as a dropoff
, the transportation request will be marked as complete and Open-RMF will begin publishing an IngestorRequest
and wait for a matching IngestorResult
.
As soon as the transporter’s handle_signal
function receives the dropoff
signal, the matching IngestorResult
message will be published and the AMR will be released and complete its task.
Mock dispenser
A mock_dispenser_interface
parameter is provided (and defaults to true
). The parameter creates a mock dispenser interface that will always publish a successful dispenser result for each dispenser request that is sent for a Nexus itinerary.
The purpose of this dispenser is to allow testing full RMF delivery tasks while the logic for a workcell to dispense arbitrary items on an AMR is not available yet.
Future work
- Implement workcells with multiple input / output stations and use them for transportation requests.
Changelog for package nexus_transporter
0.1.1 (2023-11-20)
0.1.0 (2023-11-06)
- Provides the
nexus_transporter_node
which interfaces with transportation systems to move material across a flowline. - Provides the
Transporter
API for users to integrate transportation systems.
Package Dependencies
System Dependencies
Name |
---|
yaml-cpp |
Dependant Packages
Name | Deps |
---|---|
nexus_demos |
Launch files
Messages
Services
Plugins
Recent questions tagged nexus_transporter at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.1.1 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | A framework for orchestration |
Checkout URI | https://github.com/osrf/nexus.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-12 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yadunund
Authors
nexus_transporter
This package provides a pure virtual interface Transporter
to be implemented to integrate a transportation system into Nexus.
Libraries that implement the Transporter
class can be loaded through pluginlib
at runtime by the TransporterNode
.
Two reference implementations of Transporter
are provided.
Mock transporter
The mock transporter simulates a simple conveyor belt and has the following parameters:
-
x_increment
The distance in meters between stations. -
destinations
An ordered list of named stations. -
speed
Speed in m/s of the conveyor belt.
The plugin will then simulate a conveyor with a list of destinations
, equally spaced by x_increment
, moving at a fixed speed
.
RMF transporter
The RMF transporter provides an interface to a running RMF instance. The plugin will create a composed task with a series of pickup / dropoffs based on the requested itinerary and assess its feasibility by checking,
- that the requested destinations are present in the navigation graphs of the Open-RMF building map, only then will it
- start an Open-RMF dry-run bidding process with the created task, to determine which AMR should be assigned to the task, without starting the task
Once the itinerary has been accepted and the transporter starts the transportation task, the composed task will be directly dispatched to the assigned AMR.
The plugin implements the Transporter::handle_signal
interface to signal AMRs when they can resume their itinerary, by publishing the corresponding dispensing or ingesting results.
Specifically, when an AMR reaches its last destination and it is marked as a dropoff
, the transportation request will be marked as complete and Open-RMF will begin publishing an IngestorRequest
and wait for a matching IngestorResult
.
As soon as the transporter’s handle_signal
function receives the dropoff
signal, the matching IngestorResult
message will be published and the AMR will be released and complete its task.
Mock dispenser
A mock_dispenser_interface
parameter is provided (and defaults to true
). The parameter creates a mock dispenser interface that will always publish a successful dispenser result for each dispenser request that is sent for a Nexus itinerary.
The purpose of this dispenser is to allow testing full RMF delivery tasks while the logic for a workcell to dispense arbitrary items on an AMR is not available yet.
Future work
- Implement workcells with multiple input / output stations and use them for transportation requests.
Changelog for package nexus_transporter
0.1.1 (2023-11-20)
0.1.0 (2023-11-06)
- Provides the
nexus_transporter_node
which interfaces with transportation systems to move material across a flowline. - Provides the
Transporter
API for users to integrate transportation systems.
Package Dependencies
System Dependencies
Name |
---|
yaml-cpp |
Dependant Packages
Name | Deps |
---|---|
nexus_demos |
Launch files
Messages
Services
Plugins
Recent questions tagged nexus_transporter at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.1.1 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | A framework for orchestration |
Checkout URI | https://github.com/osrf/nexus.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-12 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yadunund
Authors
nexus_transporter
This package provides a pure virtual interface Transporter
to be implemented to integrate a transportation system into Nexus.
Libraries that implement the Transporter
class can be loaded through pluginlib
at runtime by the TransporterNode
.
Two reference implementations of Transporter
are provided.
Mock transporter
The mock transporter simulates a simple conveyor belt and has the following parameters:
-
x_increment
The distance in meters between stations. -
destinations
An ordered list of named stations. -
speed
Speed in m/s of the conveyor belt.
The plugin will then simulate a conveyor with a list of destinations
, equally spaced by x_increment
, moving at a fixed speed
.
RMF transporter
The RMF transporter provides an interface to a running RMF instance. The plugin will create a composed task with a series of pickup / dropoffs based on the requested itinerary and assess its feasibility by checking,
- that the requested destinations are present in the navigation graphs of the Open-RMF building map, only then will it
- start an Open-RMF dry-run bidding process with the created task, to determine which AMR should be assigned to the task, without starting the task
Once the itinerary has been accepted and the transporter starts the transportation task, the composed task will be directly dispatched to the assigned AMR.
The plugin implements the Transporter::handle_signal
interface to signal AMRs when they can resume their itinerary, by publishing the corresponding dispensing or ingesting results.
Specifically, when an AMR reaches its last destination and it is marked as a dropoff
, the transportation request will be marked as complete and Open-RMF will begin publishing an IngestorRequest
and wait for a matching IngestorResult
.
As soon as the transporter’s handle_signal
function receives the dropoff
signal, the matching IngestorResult
message will be published and the AMR will be released and complete its task.
Mock dispenser
A mock_dispenser_interface
parameter is provided (and defaults to true
). The parameter creates a mock dispenser interface that will always publish a successful dispenser result for each dispenser request that is sent for a Nexus itinerary.
The purpose of this dispenser is to allow testing full RMF delivery tasks while the logic for a workcell to dispense arbitrary items on an AMR is not available yet.
Future work
- Implement workcells with multiple input / output stations and use them for transportation requests.
Changelog for package nexus_transporter
0.1.1 (2023-11-20)
0.1.0 (2023-11-06)
- Provides the
nexus_transporter_node
which interfaces with transportation systems to move material across a flowline. - Provides the
Transporter
API for users to integrate transportation systems.
Package Dependencies
System Dependencies
Name |
---|
yaml-cpp |
Dependant Packages
Name | Deps |
---|---|
nexus_demos |
Launch files
Messages
Services
Plugins
Recent questions tagged nexus_transporter at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.1.1 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | A framework for orchestration |
Checkout URI | https://github.com/osrf/nexus.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-12 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Yadunund
Authors
nexus_transporter
This package provides a pure virtual interface Transporter
to be implemented to integrate a transportation system into Nexus.
Libraries that implement the Transporter
class can be loaded through pluginlib
at runtime by the TransporterNode
.
Two reference implementations of Transporter
are provided.
Mock transporter
The mock transporter simulates a simple conveyor belt and has the following parameters:
-
x_increment
The distance in meters between stations. -
destinations
An ordered list of named stations. -
speed
Speed in m/s of the conveyor belt.
The plugin will then simulate a conveyor with a list of destinations
, equally spaced by x_increment
, moving at a fixed speed
.
RMF transporter
The RMF transporter provides an interface to a running RMF instance. The plugin will create a composed task with a series of pickup / dropoffs based on the requested itinerary and assess its feasibility by checking,
- that the requested destinations are present in the navigation graphs of the Open-RMF building map, only then will it
- start an Open-RMF dry-run bidding process with the created task, to determine which AMR should be assigned to the task, without starting the task
Once the itinerary has been accepted and the transporter starts the transportation task, the composed task will be directly dispatched to the assigned AMR.
The plugin implements the Transporter::handle_signal
interface to signal AMRs when they can resume their itinerary, by publishing the corresponding dispensing or ingesting results.
Specifically, when an AMR reaches its last destination and it is marked as a dropoff
, the transportation request will be marked as complete and Open-RMF will begin publishing an IngestorRequest
and wait for a matching IngestorResult
.
As soon as the transporter’s handle_signal
function receives the dropoff
signal, the matching IngestorResult
message will be published and the AMR will be released and complete its task.
Mock dispenser
A mock_dispenser_interface
parameter is provided (and defaults to true
). The parameter creates a mock dispenser interface that will always publish a successful dispenser result for each dispenser request that is sent for a Nexus itinerary.
The purpose of this dispenser is to allow testing full RMF delivery tasks while the logic for a workcell to dispense arbitrary items on an AMR is not available yet.
Future work
- Implement workcells with multiple input / output stations and use them for transportation requests.
Changelog for package nexus_transporter
0.1.1 (2023-11-20)
0.1.0 (2023-11-06)
- Provides the
nexus_transporter_node
which interfaces with transportation systems to move material across a flowline. - Provides the
Transporter
API for users to integrate transportation systems.
Package Dependencies
System Dependencies
Name |
---|
yaml-cpp |
Dependant Packages
Name | Deps |
---|---|
nexus_demos |