![]() |
rmf_fleet_adapter_python package from rmf_ros2 repormf_fleet_adapter rmf_fleet_adapter_python rmf_task_ros2 rmf_traffic_ros2 rmf_websocket |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.1.8 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_ros2.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2024-06-14 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- methylDragon
- Marco A. Gutiérrez
- Yadunund
Authors
rmf_fleet_adapter_python
Python bindings for rmf_fleet_adapter
Introduction
The rmf_fleet_adapter
package defines C++ classes that can interact with rmf_core
. Specifically an Adapter
and a MockAdapter
class. This package provides bindings for both and most of their dependencies.
The main difference between rmf_fleet_adapter
and rmf_mock_adapter
is the fact that rmf_fleet_adapter
objects can interact with the ROS2 graph.
The MockAdapter
and Adapter
both do this. But the difference is that MockAdapter
can be instantiated with no issues, whereas Adapter
will block to wait for a scheduler node from rmf_core
to make its presence known.
Installation
- Place the
pybind_ament
andrmf_fleet_adapter_python
packages in your ROS2 workspace, and runcolcon build
as per normal.
Running Examples
Integration test script for rmf loop and delivery task:
ros2 run rmf_fleet_adapter_python test_adapter.py
You may then probe the effects on the ROS2 graph by subscribing to the following topics with ros2 topic echo <TOPIC_NAME>
:
-
: `/dispenser_requests`, `/dispenser_results`, `ingestor_requests`, `ingestor_results`, `/task_summaries`
Traffic Light Example
This will showcase an example of having 2 “traffic light” robots using RMF.
# First Terminal
ros2 run rmf_fleet_adapter_python schedule_blockade_nodes
# Second Terminal
ros2 run rmf_fleet_adapter_python traffic_light
For more details, please read this README.
Notes
- The py api bindings are mainly experimental. Use with caution.
- Current CI and docs gen are using rolling release of RMF
- More bindings, tests, and examples are welcome!
Using the Bindings
Ensure that you have built this package and sourced its environment. Then it is as simple as importing the module containing the Python bindings!
import rmf_adapter as adpt
# You may then check the available bindings
print(dir(adpt))
Description
Fleet adapters allow for interactions between
rmf_core
and robot fleets.High level pathing or task assignments can be issued to robots from
rmf_core
, and a fleet adapter will take those assignments and handle it in an implementation specific manner to direct individual robots to execute certain actions while monitoring and updatingrmf_core
on their high-level states viarmf_core
robot update handles.For more information it is helpful to look at the docs for rmf_core
Usage
The bound APIs are almost identical to the rmf_core
ones as well, so if the written documentation for these packages, and the Python usage examples in the scripts or tests are insufficient, you can also look into the relevant C++ implementations as a last resort.
Alternatively, you may also explore any interfaces with:
# To list any available members or methods
dir(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
# To see function signatures
help(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
Binding Details
This package contains Python bindings to C++ code that is found in rmf_core
and its associated packages. It was implemented using Pybind11.
Do note that as a result of that, if one needs to inspect the source, there are no Python implementations of any of the bound code, and it would be advisable to look directly into the appropriate rmf_fleet_adapter package, that contains the C++ code.. Additionally, C++ objects will get instantiated (generally) as references that can be used or called using the appropriate bound methods on the Python side.
Some of these bindings allow you to override virtual methods that would normally be called in the C++ side with Python code that you write in your Python scripts!
Features
There are enough functionalities bound to implement your own fleet adapters to communicate with the rest of the rmf_core
systems in the ROS2 graph. Allowing you to:
-
Adapter/MockAdapter
: Communicate with rmf_core by adding fleets or requesting deliveries -
RobotCommandHandle
: Specify custom robot command handles that can take commands from thermf_core
packages and implement or execute the following robot behaviors:- Docking
File truncated at 100 lines see the full file
Changelog for package rmf_fleet_adapter_python
2.1.8 (2023-12-19)
2.1.7 (2023-08-10)
- Adding initiator and request time to booking (#284)
- Contributors: Aaron Chong
2.1.6 (2023-06-02)
- Switch to rst changelogs (#276)
- Contributors: Yadunund
2.1.5 (2023-05-20)
2.1.4 (2023-04-27)
2.1.3 (2023-04-26)
2.1.2 (2022-10-10)
2.1.0 (2022-10-03)
- Make async behaviors more robust: (#228)
- Allow fleet adapters to change schedule participant profiles: (#229)
- Allow robots to be decommissioned from the task dispatch system: (#233)
- Allow manual toggling of stubborn negotiation: (#196)
- Allow users to specify a custom update listener: (#198)
- Fix various segfaults related to pybind: (#205)
- Allow [ResponsiveWait]{.title-ref} to be enabled and disabled: (#209)
- Allow robot status to be overridden by the user: (#191)
- Add API to report status for `perform_action`: (#190)
- Changes for humble compatibility: (#215)
2.0.0 (2022-03-18)
No changes yet
1.5.0 (2022-02-14)
1.3.0 (2021-06-07)
- Modifications to support refactor of rmf_task (#51)
- Fix symlink-install compilation (#32)
- Updated package.xml (#26)
- Fix/rmf task ros2 cleanup (#21)
- Feature/python binding planner (#11)
- Adding reference_internal tag to function bindings that return raw pointers (#6)
- Feature/add unstable participant api (#11)
- Feature/add simple docs (#9)
- Support apis for task dispatcher (#10)
- differentiate functions to prevent overloading (#8)
- support ez traffic light (#7)
- Update/release 1.1 (#6)
- Implement binding for Duration optional
- Make integration test even stricter
- Add reference capture for posterity
- Add clarifying printouts and fix multi-timer bug
- Integrate compute_plan_starts into integration test
- Implement type tests
- Bind optional constructors and delivery msg interfaces
- Bind compute_plan_starts
- Add update_position overload
- Implement Python Bindings for rmf_fleet_adapter (#1)
- Contributors: Aaron Chong, Charayaphan Nakorn Boon Han, Geoffrey Biggs, Grey, Marco A. Gutiérrez, Yadu, methylDragon, youliang
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmf_demos_fleet_adapter | |
rmf_dev |
Launch files
Messages
Services
Plugins
Recent questions tagged rmf_fleet_adapter_python at Robotics Stack Exchange
![]() |
rmf_fleet_adapter_python package from rmf_ros2 repormf_charging_schedule rmf_fleet_adapter rmf_fleet_adapter_python rmf_task_ros2 rmf_traffic_ros2 rmf_websocket |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.7.2 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_ros2.git |
VCS Type | git |
VCS Version | jazzy |
Last Updated | 2025-06-23 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- methylDragon
- Marco A. Gutiérrez
- Yadunund
Authors
rmf_fleet_adapter_python
Python bindings for rmf_fleet_adapter
Introduction
The rmf_fleet_adapter
package defines C++ classes that can interact with rmf_core
. Specifically an Adapter
and a MockAdapter
class. This package provides bindings for both and most of their dependencies.
The main difference between rmf_fleet_adapter
and rmf_mock_adapter
is the fact that rmf_fleet_adapter
objects can interact with the ROS2 graph.
The MockAdapter
and Adapter
both do this. But the difference is that MockAdapter
can be instantiated with no issues, whereas Adapter
will block to wait for a scheduler node from rmf_core
to make its presence known.
Installation
- Place the
pybind_ament
andrmf_fleet_adapter_python
packages in your ROS2 workspace, and runcolcon build
as per normal.
Running Examples
Integration test script for rmf loop and delivery task:
ros2 run rmf_fleet_adapter_python test_adapter.py
You may then probe the effects on the ROS2 graph by subscribing to the following topics with ros2 topic echo <TOPIC_NAME>
:
-
: `/dispenser_requests`, `/dispenser_results`, `ingestor_requests`, `ingestor_results`, `/task_summaries`
Traffic Light Example
This will showcase an example of having 2 “traffic light” robots using RMF.
# First Terminal
ros2 run rmf_fleet_adapter_python schedule_blockade_nodes
# Second Terminal
ros2 run rmf_fleet_adapter_python traffic_light
For more details, please read this README.
Notes
- The py api bindings are mainly experimental. Use with caution.
- Current CI and docs gen are using rolling release of RMF
- More bindings, tests, and examples are welcome!
Using the Bindings
Ensure that you have built this package and sourced its environment. Then it is as simple as importing the module containing the Python bindings!
import rmf_adapter as adpt
# You may then check the available bindings
print(dir(adpt))
Description
Fleet adapters allow for interactions between
rmf_core
and robot fleets.High level pathing or task assignments can be issued to robots from
rmf_core
, and a fleet adapter will take those assignments and handle it in an implementation specific manner to direct individual robots to execute certain actions while monitoring and updatingrmf_core
on their high-level states viarmf_core
robot update handles.For more information it is helpful to look at the docs for rmf_core
Usage
The bound APIs are almost identical to the rmf_core
ones as well, so if the written documentation for these packages, and the Python usage examples in the scripts or tests are insufficient, you can also look into the relevant C++ implementations as a last resort.
Alternatively, you may also explore any interfaces with:
# To list any available members or methods
dir(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
# To see function signatures
help(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
Binding Details
This package contains Python bindings to C++ code that is found in rmf_core
and its associated packages. It was implemented using Pybind11.
Do note that as a result of that, if one needs to inspect the source, there are no Python implementations of any of the bound code, and it would be advisable to look directly into the appropriate rmf_fleet_adapter package, that contains the C++ code.. Additionally, C++ objects will get instantiated (generally) as references that can be used or called using the appropriate bound methods on the Python side.
Some of these bindings allow you to override virtual methods that would normally be called in the C++ side with Python code that you write in your Python scripts!
Features
There are enough functionalities bound to implement your own fleet adapters to communicate with the rest of the rmf_core
systems in the ROS2 graph. Allowing you to:
-
Adapter/MockAdapter
: Communicate with rmf_core by adding fleets or requesting deliveries -
RobotCommandHandle
: Specify custom robot command handles that can take commands from thermf_core
packages and implement or execute the following robot behaviors:- Docking
File truncated at 100 lines see the full file
Changelog for package rmf_fleet_adapter_python
2.7.2 (2024-06-18)
2.7.1 (2024-06-11)
2.7.0 (2024-06-01)
- Add fleet-level reassign dispatched tasks API (#348)
- Disable automatic retreat (#330)
- Stabilize commissioning feature (#338)
- Add all_known_lifts in Graph binding (#336)
- Add Speed Limit Requests (#335)
- Contributors: cwrx777, Grey, Pranay Shirodkar, Xiyu, Yadunund
2.6.0 (2024-03-13)
- add in_lift readonly property in <Graph::Waypoint> binding. (#326)
- Contributors: cwrx777
2.5.0 (2023-12-22)
2.4.0 (2023-12-15)
2.3.2 (2023-08-28)
- EasyFullControl API (#235)
- Contributors: Grey, Luca Della Vedova, Xiyu, Yadunund
2.3.1 (2023-08-10)
- Adding initiator and request time to booking (#267)
- Contributors: Aaron Chong
2.3.0 (2023-06-08)
2.2.0 (2023-06-06)
- Switch to rst changelogs (#276)
- Contributors: Yadunund
2.1.5 (2023-05-20)
2.1.4 (2023-04-27)
2.1.3 (2023-04-26)
2.1.2 (2022-10-10)
2.1.0 (2022-10-03)
- Make async behaviors more robust: (#228)
- Allow fleet adapters to change schedule participant profiles: (#229)
- Allow robots to be decommissioned from the task dispatch system: (#233)
- Allow manual toggling of stubborn negotiation: (#196)
- Allow users to specify a custom update listener: (#198)
- Fix various segfaults related to pybind: (#205)
- Allow [ResponsiveWait]{.title-ref} to be enabled and disabled: (#209)
- Allow robot status to be overridden by the user: (#191)
- Add API to report status for `perform_action`: (#190)
- Changes for humble compatibility: (#215)
2.0.0 (2022-03-18)
No changes yet
1.5.0 (2022-02-14)
1.3.0 (2021-06-07)
- Modifications to support refactor of rmf_task (#51)
- Fix symlink-install compilation (#32)
- Updated package.xml (#26)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmf_demos_fleet_adapter | |
rmf_dev |
Launch files
Messages
Services
Plugins
Recent questions tagged rmf_fleet_adapter_python at Robotics Stack Exchange
![]() |
rmf_fleet_adapter_python package from rmf_ros2 repormf_charging_schedule rmf_fleet_adapter rmf_fleet_adapter_python rmf_reservation_node rmf_task_ros2 rmf_traffic_ros2 rmf_websocket |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.10.1 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_ros2.git |
VCS Type | git |
VCS Version | kilted |
Last Updated | 2025-05-13 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- methylDragon
- Marco A. Gutiérrez
- Yadunund
Authors
rmf_fleet_adapter_python
Python bindings for rmf_fleet_adapter
Introduction
The rmf_fleet_adapter
package defines C++ classes that can interact with rmf_core
. Specifically an Adapter
and a MockAdapter
class. This package provides bindings for both and most of their dependencies.
The main difference between rmf_fleet_adapter
and rmf_mock_adapter
is the fact that rmf_fleet_adapter
objects can interact with the ROS2 graph.
The MockAdapter
and Adapter
both do this. But the difference is that MockAdapter
can be instantiated with no issues, whereas Adapter
will block to wait for a scheduler node from rmf_core
to make its presence known.
Installation
- Place the
pybind_ament
andrmf_fleet_adapter_python
packages in your ROS2 workspace, and runcolcon build
as per normal.
Running Examples
Integration test script for rmf loop and delivery task:
ros2 run rmf_fleet_adapter_python test_adapter.py
You may then probe the effects on the ROS2 graph by subscribing to the following topics with ros2 topic echo <TOPIC_NAME>
:
-
: `/dispenser_requests`, `/dispenser_results`, `ingestor_requests`, `ingestor_results`, `/task_summaries`
Traffic Light Example
This will showcase an example of having 2 “traffic light” robots using RMF.
# First Terminal
ros2 run rmf_fleet_adapter_python schedule_blockade_nodes
# Second Terminal
ros2 run rmf_fleet_adapter_python traffic_light
For more details, please read this README.
Notes
- The py api bindings are mainly experimental. Use with caution.
- Current CI and docs gen are using rolling release of RMF
- More bindings, tests, and examples are welcome!
Using the Bindings
Ensure that you have built this package and sourced its environment. Then it is as simple as importing the module containing the Python bindings!
import rmf_adapter as adpt
# You may then check the available bindings
print(dir(adpt))
Description
Fleet adapters allow for interactions between
rmf_core
and robot fleets.High level pathing or task assignments can be issued to robots from
rmf_core
, and a fleet adapter will take those assignments and handle it in an implementation specific manner to direct individual robots to execute certain actions while monitoring and updatingrmf_core
on their high-level states viarmf_core
robot update handles.For more information it is helpful to look at the docs for rmf_core
Usage
The bound APIs are almost identical to the rmf_core
ones as well, so if the written documentation for these packages, and the Python usage examples in the scripts or tests are insufficient, you can also look into the relevant C++ implementations as a last resort.
Alternatively, you may also explore any interfaces with:
# To list any available members or methods
dir(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
# To see function signatures
help(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
Binding Details
This package contains Python bindings to C++ code that is found in rmf_core
and its associated packages. It was implemented using Pybind11.
Do note that as a result of that, if one needs to inspect the source, there are no Python implementations of any of the bound code, and it would be advisable to look directly into the appropriate rmf_fleet_adapter package, that contains the C++ code.. Additionally, C++ objects will get instantiated (generally) as references that can be used or called using the appropriate bound methods on the Python side.
Some of these bindings allow you to override virtual methods that would normally be called in the C++ side with Python code that you write in your Python scripts!
Features
There are enough functionalities bound to implement your own fleet adapters to communicate with the rest of the rmf_core
systems in the ROS2 graph. Allowing you to:
-
Adapter/MockAdapter
: Communicate with rmf_core by adding fleets or requesting deliveries -
RobotCommandHandle
: Specify custom robot command handles that can take commands from thermf_core
packages and implement or execute the following robot behaviors:- Docking
File truncated at 100 lines see the full file
Changelog for package rmf_fleet_adapter_python
2.10.1 (2025-05-13)
2.10.0 (2025-05-09)
- Add a timer to log the size of planner caches (#427)
- Do not update assignments if bid notice is for a dry run (#401)
- Contributors: Grey, yadunund
2.9.0 (2024-11-27)
- Allow automatic action cancellation to be toggled (#392)
- Adds a simple parking spot management system. (#325)
- Allow robot-specific finishing request and specify parking spots (#379)
- Provide an API that says the robot's lift destination (#376)
- Quiet cancel API (#357)
- Contributors: Arjo Chakravarty, Grey, Xiyu
2.8.0 (2024-06-12)
2.7.1 (2024-06-11)
2.7.0 (2024-06-01)
- Add fleet-level reassign dispatched tasks API (#348)
- Disable automatic retreat (#330)
- Stabilize commissioning feature (#338)
- Add all_known_lifts in Graph binding (#336)
- Add Speed Limit Requests (#335)
- Contributors: cwrx777, Grey, Pranay Shirodkar, Xiyu, Yadunund
2.6.0 (2024-03-13)
- add in_lift readonly property in <Graph::Waypoint> binding. (#326)
- Contributors: cwrx777
2.5.0 (2023-12-22)
2.4.0 (2023-12-15)
2.3.2 (2023-08-28)
- EasyFullControl API (#235)
- Contributors: Grey, Luca Della Vedova, Xiyu, Yadunund
2.3.1 (2023-08-10)
- Adding initiator and request time to booking (#267)
- Contributors: Aaron Chong
2.3.0 (2023-06-08)
2.2.0 (2023-06-06)
- Switch to rst changelogs (#276)
- Contributors: Yadunund
2.1.5 (2023-05-20)
2.1.4 (2023-04-27)
2.1.3 (2023-04-26)
2.1.2 (2022-10-10)
2.1.0 (2022-10-03)
- Make async behaviors more robust: (#228)
- Allow fleet adapters to change schedule participant profiles: (#229)
- Allow robots to be decommissioned from the task dispatch system: (#233)
- Allow manual toggling of stubborn negotiation: (#196)
- Allow users to specify a custom update listener: (#198)
- Fix various segfaults related to pybind: (#205)
- Allow [ResponsiveWait]{.title-ref} to be enabled and disabled: (#209)
- Allow robot status to be overridden by the user: (#191)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmf_demos_fleet_adapter | |
rmf_dev |
Launch files
Messages
Services
Plugins
Recent questions tagged rmf_fleet_adapter_python at Robotics Stack Exchange
![]() |
rmf_fleet_adapter_python package from rmf_ros2 repormf_charging_schedule rmf_fleet_adapter rmf_fleet_adapter_python rmf_reservation_node rmf_task_ros2 rmf_traffic_ros2 rmf_websocket |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.11.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_ros2.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-18 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- methylDragon
- Marco A. Gutiérrez
- Yadunund
Authors
rmf_fleet_adapter_python
Python bindings for rmf_fleet_adapter
Introduction
The rmf_fleet_adapter
package defines C++ classes that can interact with rmf_core
. Specifically an Adapter
and a MockAdapter
class. This package provides bindings for both and most of their dependencies.
The main difference between rmf_fleet_adapter
and rmf_mock_adapter
is the fact that rmf_fleet_adapter
objects can interact with the ROS2 graph.
The MockAdapter
and Adapter
both do this. But the difference is that MockAdapter
can be instantiated with no issues, whereas Adapter
will block to wait for a scheduler node from rmf_core
to make its presence known.
Installation
- Place the
pybind_ament
andrmf_fleet_adapter_python
packages in your ROS2 workspace, and runcolcon build
as per normal.
Running Examples
Integration test script for rmf loop and delivery task:
ros2 run rmf_fleet_adapter_python test_adapter.py
You may then probe the effects on the ROS2 graph by subscribing to the following topics with ros2 topic echo <TOPIC_NAME>
:
-
: `/dispenser_requests`, `/dispenser_results`, `ingestor_requests`, `ingestor_results`, `/task_summaries`
Traffic Light Example
This will showcase an example of having 2 “traffic light” robots using RMF.
# First Terminal
ros2 run rmf_fleet_adapter_python schedule_blockade_nodes
# Second Terminal
ros2 run rmf_fleet_adapter_python traffic_light
For more details, please read this README.
Notes
- The py api bindings are mainly experimental. Use with caution.
- Current CI and docs gen are using rolling release of RMF
- More bindings, tests, and examples are welcome!
Using the Bindings
Ensure that you have built this package and sourced its environment. Then it is as simple as importing the module containing the Python bindings!
import rmf_adapter as adpt
# You may then check the available bindings
print(dir(adpt))
Description
Fleet adapters allow for interactions between
rmf_core
and robot fleets.High level pathing or task assignments can be issued to robots from
rmf_core
, and a fleet adapter will take those assignments and handle it in an implementation specific manner to direct individual robots to execute certain actions while monitoring and updatingrmf_core
on their high-level states viarmf_core
robot update handles.For more information it is helpful to look at the docs for rmf_core
Usage
The bound APIs are almost identical to the rmf_core
ones as well, so if the written documentation for these packages, and the Python usage examples in the scripts or tests are insufficient, you can also look into the relevant C++ implementations as a last resort.
Alternatively, you may also explore any interfaces with:
# To list any available members or methods
dir(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
# To see function signatures
help(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
Binding Details
This package contains Python bindings to C++ code that is found in rmf_core
and its associated packages. It was implemented using Pybind11.
Do note that as a result of that, if one needs to inspect the source, there are no Python implementations of any of the bound code, and it would be advisable to look directly into the appropriate rmf_fleet_adapter package, that contains the C++ code.. Additionally, C++ objects will get instantiated (generally) as references that can be used or called using the appropriate bound methods on the Python side.
Some of these bindings allow you to override virtual methods that would normally be called in the C++ side with Python code that you write in your Python scripts!
Features
There are enough functionalities bound to implement your own fleet adapters to communicate with the rest of the rmf_core
systems in the ROS2 graph. Allowing you to:
-
Adapter/MockAdapter
: Communicate with rmf_core by adding fleets or requesting deliveries -
RobotCommandHandle
: Specify custom robot command handles that can take commands from thermf_core
packages and implement or execute the following robot behaviors:- Docking
File truncated at 100 lines see the full file
Changelog for package rmf_fleet_adapter_python
2.11.0 (2025-06-09)
2.10.1 (2025-05-13)
2.10.0 (2025-05-09)
- Add a timer to log the size of planner caches (#427)
- Do not update assignments if bid notice is for a dry run (#401)
- Contributors: Grey, yadunund
2.9.0 (2024-11-27)
- Allow automatic action cancellation to be toggled (#392)
- Adds a simple parking spot management system. (#325)
- Allow robot-specific finishing request and specify parking spots (#379)
- Provide an API that says the robot's lift destination (#376)
- Quiet cancel API (#357)
- Contributors: Arjo Chakravarty, Grey, Xiyu
2.8.0 (2024-06-12)
2.7.1 (2024-06-11)
2.7.0 (2024-06-01)
- Add fleet-level reassign dispatched tasks API (#348)
- Disable automatic retreat (#330)
- Stabilize commissioning feature (#338)
- Add all_known_lifts in Graph binding (#336)
- Add Speed Limit Requests (#335)
- Contributors: cwrx777, Grey, Pranay Shirodkar, Xiyu, Yadunund
2.6.0 (2024-03-13)
- add in_lift readonly property in <Graph::Waypoint> binding. (#326)
- Contributors: cwrx777
2.5.0 (2023-12-22)
2.4.0 (2023-12-15)
2.3.2 (2023-08-28)
- EasyFullControl API (#235)
- Contributors: Grey, Luca Della Vedova, Xiyu, Yadunund
2.3.1 (2023-08-10)
- Adding initiator and request time to booking (#267)
- Contributors: Aaron Chong
2.3.0 (2023-06-08)
2.2.0 (2023-06-06)
- Switch to rst changelogs (#276)
- Contributors: Yadunund
2.1.5 (2023-05-20)
2.1.4 (2023-04-27)
2.1.3 (2023-04-26)
2.1.2 (2022-10-10)
2.1.0 (2022-10-03)
- Make async behaviors more robust: (#228)
- Allow fleet adapters to change schedule participant profiles: (#229)
- Allow robots to be decommissioned from the task dispatch system: (#233)
- Allow manual toggling of stubborn negotiation: (#196)
- Allow users to specify a custom update listener: (#198)
- Fix various segfaults related to pybind: (#205)
- Allow [ResponsiveWait]{.title-ref} to be enabled and disabled: (#209)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmf_demos_fleet_adapter | |
rmf_dev |
Launch files
Messages
Services
Plugins
Recent questions tagged rmf_fleet_adapter_python at Robotics Stack Exchange
![]() |
rmf_fleet_adapter_python package from rmf_ros2 repormf_fleet_adapter rmf_fleet_adapter_python rmf_task_ros2 rmf_traffic_ros2 rmf_websocket |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.1.8 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_ros2.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2024-06-14 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- methylDragon
- Marco A. Gutiérrez
- Yadunund
Authors
rmf_fleet_adapter_python
Python bindings for rmf_fleet_adapter
Introduction
The rmf_fleet_adapter
package defines C++ classes that can interact with rmf_core
. Specifically an Adapter
and a MockAdapter
class. This package provides bindings for both and most of their dependencies.
The main difference between rmf_fleet_adapter
and rmf_mock_adapter
is the fact that rmf_fleet_adapter
objects can interact with the ROS2 graph.
The MockAdapter
and Adapter
both do this. But the difference is that MockAdapter
can be instantiated with no issues, whereas Adapter
will block to wait for a scheduler node from rmf_core
to make its presence known.
Installation
- Place the
pybind_ament
andrmf_fleet_adapter_python
packages in your ROS2 workspace, and runcolcon build
as per normal.
Running Examples
Integration test script for rmf loop and delivery task:
ros2 run rmf_fleet_adapter_python test_adapter.py
You may then probe the effects on the ROS2 graph by subscribing to the following topics with ros2 topic echo <TOPIC_NAME>
:
-
: `/dispenser_requests`, `/dispenser_results`, `ingestor_requests`, `ingestor_results`, `/task_summaries`
Traffic Light Example
This will showcase an example of having 2 “traffic light” robots using RMF.
# First Terminal
ros2 run rmf_fleet_adapter_python schedule_blockade_nodes
# Second Terminal
ros2 run rmf_fleet_adapter_python traffic_light
For more details, please read this README.
Notes
- The py api bindings are mainly experimental. Use with caution.
- Current CI and docs gen are using rolling release of RMF
- More bindings, tests, and examples are welcome!
Using the Bindings
Ensure that you have built this package and sourced its environment. Then it is as simple as importing the module containing the Python bindings!
import rmf_adapter as adpt
# You may then check the available bindings
print(dir(adpt))
Description
Fleet adapters allow for interactions between
rmf_core
and robot fleets.High level pathing or task assignments can be issued to robots from
rmf_core
, and a fleet adapter will take those assignments and handle it in an implementation specific manner to direct individual robots to execute certain actions while monitoring and updatingrmf_core
on their high-level states viarmf_core
robot update handles.For more information it is helpful to look at the docs for rmf_core
Usage
The bound APIs are almost identical to the rmf_core
ones as well, so if the written documentation for these packages, and the Python usage examples in the scripts or tests are insufficient, you can also look into the relevant C++ implementations as a last resort.
Alternatively, you may also explore any interfaces with:
# To list any available members or methods
dir(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
# To see function signatures
help(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
Binding Details
This package contains Python bindings to C++ code that is found in rmf_core
and its associated packages. It was implemented using Pybind11.
Do note that as a result of that, if one needs to inspect the source, there are no Python implementations of any of the bound code, and it would be advisable to look directly into the appropriate rmf_fleet_adapter package, that contains the C++ code.. Additionally, C++ objects will get instantiated (generally) as references that can be used or called using the appropriate bound methods on the Python side.
Some of these bindings allow you to override virtual methods that would normally be called in the C++ side with Python code that you write in your Python scripts!
Features
There are enough functionalities bound to implement your own fleet adapters to communicate with the rest of the rmf_core
systems in the ROS2 graph. Allowing you to:
-
Adapter/MockAdapter
: Communicate with rmf_core by adding fleets or requesting deliveries -
RobotCommandHandle
: Specify custom robot command handles that can take commands from thermf_core
packages and implement or execute the following robot behaviors:- Docking
File truncated at 100 lines see the full file
Changelog for package rmf_fleet_adapter_python
2.1.8 (2023-12-19)
2.1.7 (2023-08-10)
- Adding initiator and request time to booking (#284)
- Contributors: Aaron Chong
2.1.6 (2023-06-02)
- Switch to rst changelogs (#276)
- Contributors: Yadunund
2.1.5 (2023-05-20)
2.1.4 (2023-04-27)
2.1.3 (2023-04-26)
2.1.2 (2022-10-10)
2.1.0 (2022-10-03)
- Make async behaviors more robust: (#228)
- Allow fleet adapters to change schedule participant profiles: (#229)
- Allow robots to be decommissioned from the task dispatch system: (#233)
- Allow manual toggling of stubborn negotiation: (#196)
- Allow users to specify a custom update listener: (#198)
- Fix various segfaults related to pybind: (#205)
- Allow [ResponsiveWait]{.title-ref} to be enabled and disabled: (#209)
- Allow robot status to be overridden by the user: (#191)
- Add API to report status for `perform_action`: (#190)
- Changes for humble compatibility: (#215)
2.0.0 (2022-03-18)
No changes yet
1.5.0 (2022-02-14)
1.3.0 (2021-06-07)
- Modifications to support refactor of rmf_task (#51)
- Fix symlink-install compilation (#32)
- Updated package.xml (#26)
- Fix/rmf task ros2 cleanup (#21)
- Feature/python binding planner (#11)
- Adding reference_internal tag to function bindings that return raw pointers (#6)
- Feature/add unstable participant api (#11)
- Feature/add simple docs (#9)
- Support apis for task dispatcher (#10)
- differentiate functions to prevent overloading (#8)
- support ez traffic light (#7)
- Update/release 1.1 (#6)
- Implement binding for Duration optional
- Make integration test even stricter
- Add reference capture for posterity
- Add clarifying printouts and fix multi-timer bug
- Integrate compute_plan_starts into integration test
- Implement type tests
- Bind optional constructors and delivery msg interfaces
- Bind compute_plan_starts
- Add update_position overload
- Implement Python Bindings for rmf_fleet_adapter (#1)
- Contributors: Aaron Chong, Charayaphan Nakorn Boon Han, Geoffrey Biggs, Grey, Marco A. Gutiérrez, Yadu, methylDragon, youliang
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmf_demos_fleet_adapter | |
rmf_dev |
Launch files
Messages
Services
Plugins
Recent questions tagged rmf_fleet_adapter_python at Robotics Stack Exchange
![]() |
rmf_fleet_adapter_python package from rmf_ros2 repormf_fleet_adapter rmf_fleet_adapter_python rmf_task_ros2 rmf_traffic_ros2 rmf_websocket |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.1.8 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_ros2.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2024-06-14 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- methylDragon
- Marco A. Gutiérrez
- Yadunund
Authors
rmf_fleet_adapter_python
Python bindings for rmf_fleet_adapter
Introduction
The rmf_fleet_adapter
package defines C++ classes that can interact with rmf_core
. Specifically an Adapter
and a MockAdapter
class. This package provides bindings for both and most of their dependencies.
The main difference between rmf_fleet_adapter
and rmf_mock_adapter
is the fact that rmf_fleet_adapter
objects can interact with the ROS2 graph.
The MockAdapter
and Adapter
both do this. But the difference is that MockAdapter
can be instantiated with no issues, whereas Adapter
will block to wait for a scheduler node from rmf_core
to make its presence known.
Installation
- Place the
pybind_ament
andrmf_fleet_adapter_python
packages in your ROS2 workspace, and runcolcon build
as per normal.
Running Examples
Integration test script for rmf loop and delivery task:
ros2 run rmf_fleet_adapter_python test_adapter.py
You may then probe the effects on the ROS2 graph by subscribing to the following topics with ros2 topic echo <TOPIC_NAME>
:
-
: `/dispenser_requests`, `/dispenser_results`, `ingestor_requests`, `ingestor_results`, `/task_summaries`
Traffic Light Example
This will showcase an example of having 2 “traffic light” robots using RMF.
# First Terminal
ros2 run rmf_fleet_adapter_python schedule_blockade_nodes
# Second Terminal
ros2 run rmf_fleet_adapter_python traffic_light
For more details, please read this README.
Notes
- The py api bindings are mainly experimental. Use with caution.
- Current CI and docs gen are using rolling release of RMF
- More bindings, tests, and examples are welcome!
Using the Bindings
Ensure that you have built this package and sourced its environment. Then it is as simple as importing the module containing the Python bindings!
import rmf_adapter as adpt
# You may then check the available bindings
print(dir(adpt))
Description
Fleet adapters allow for interactions between
rmf_core
and robot fleets.High level pathing or task assignments can be issued to robots from
rmf_core
, and a fleet adapter will take those assignments and handle it in an implementation specific manner to direct individual robots to execute certain actions while monitoring and updatingrmf_core
on their high-level states viarmf_core
robot update handles.For more information it is helpful to look at the docs for rmf_core
Usage
The bound APIs are almost identical to the rmf_core
ones as well, so if the written documentation for these packages, and the Python usage examples in the scripts or tests are insufficient, you can also look into the relevant C++ implementations as a last resort.
Alternatively, you may also explore any interfaces with:
# To list any available members or methods
dir(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
# To see function signatures
help(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
Binding Details
This package contains Python bindings to C++ code that is found in rmf_core
and its associated packages. It was implemented using Pybind11.
Do note that as a result of that, if one needs to inspect the source, there are no Python implementations of any of the bound code, and it would be advisable to look directly into the appropriate rmf_fleet_adapter package, that contains the C++ code.. Additionally, C++ objects will get instantiated (generally) as references that can be used or called using the appropriate bound methods on the Python side.
Some of these bindings allow you to override virtual methods that would normally be called in the C++ side with Python code that you write in your Python scripts!
Features
There are enough functionalities bound to implement your own fleet adapters to communicate with the rest of the rmf_core
systems in the ROS2 graph. Allowing you to:
-
Adapter/MockAdapter
: Communicate with rmf_core by adding fleets or requesting deliveries -
RobotCommandHandle
: Specify custom robot command handles that can take commands from thermf_core
packages and implement or execute the following robot behaviors:- Docking
File truncated at 100 lines see the full file
Changelog for package rmf_fleet_adapter_python
2.1.8 (2023-12-19)
2.1.7 (2023-08-10)
- Adding initiator and request time to booking (#284)
- Contributors: Aaron Chong
2.1.6 (2023-06-02)
- Switch to rst changelogs (#276)
- Contributors: Yadunund
2.1.5 (2023-05-20)
2.1.4 (2023-04-27)
2.1.3 (2023-04-26)
2.1.2 (2022-10-10)
2.1.0 (2022-10-03)
- Make async behaviors more robust: (#228)
- Allow fleet adapters to change schedule participant profiles: (#229)
- Allow robots to be decommissioned from the task dispatch system: (#233)
- Allow manual toggling of stubborn negotiation: (#196)
- Allow users to specify a custom update listener: (#198)
- Fix various segfaults related to pybind: (#205)
- Allow [ResponsiveWait]{.title-ref} to be enabled and disabled: (#209)
- Allow robot status to be overridden by the user: (#191)
- Add API to report status for `perform_action`: (#190)
- Changes for humble compatibility: (#215)
2.0.0 (2022-03-18)
No changes yet
1.5.0 (2022-02-14)
1.3.0 (2021-06-07)
- Modifications to support refactor of rmf_task (#51)
- Fix symlink-install compilation (#32)
- Updated package.xml (#26)
- Fix/rmf task ros2 cleanup (#21)
- Feature/python binding planner (#11)
- Adding reference_internal tag to function bindings that return raw pointers (#6)
- Feature/add unstable participant api (#11)
- Feature/add simple docs (#9)
- Support apis for task dispatcher (#10)
- differentiate functions to prevent overloading (#8)
- support ez traffic light (#7)
- Update/release 1.1 (#6)
- Implement binding for Duration optional
- Make integration test even stricter
- Add reference capture for posterity
- Add clarifying printouts and fix multi-timer bug
- Integrate compute_plan_starts into integration test
- Implement type tests
- Bind optional constructors and delivery msg interfaces
- Bind compute_plan_starts
- Add update_position overload
- Implement Python Bindings for rmf_fleet_adapter (#1)
- Contributors: Aaron Chong, Charayaphan Nakorn Boon Han, Geoffrey Biggs, Grey, Marco A. Gutiérrez, Yadu, methylDragon, youliang
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmf_demos_fleet_adapter | |
rmf_dev |
Launch files
Messages
Services
Plugins
Recent questions tagged rmf_fleet_adapter_python at Robotics Stack Exchange
![]() |
rmf_fleet_adapter_python package from rmf_ros2 repormf_fleet_adapter rmf_fleet_adapter_python rmf_task_ros2 rmf_traffic_ros2 rmf_websocket |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.1.8 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_ros2.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2024-06-14 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- methylDragon
- Marco A. Gutiérrez
- Yadunund
Authors
rmf_fleet_adapter_python
Python bindings for rmf_fleet_adapter
Introduction
The rmf_fleet_adapter
package defines C++ classes that can interact with rmf_core
. Specifically an Adapter
and a MockAdapter
class. This package provides bindings for both and most of their dependencies.
The main difference between rmf_fleet_adapter
and rmf_mock_adapter
is the fact that rmf_fleet_adapter
objects can interact with the ROS2 graph.
The MockAdapter
and Adapter
both do this. But the difference is that MockAdapter
can be instantiated with no issues, whereas Adapter
will block to wait for a scheduler node from rmf_core
to make its presence known.
Installation
- Place the
pybind_ament
andrmf_fleet_adapter_python
packages in your ROS2 workspace, and runcolcon build
as per normal.
Running Examples
Integration test script for rmf loop and delivery task:
ros2 run rmf_fleet_adapter_python test_adapter.py
You may then probe the effects on the ROS2 graph by subscribing to the following topics with ros2 topic echo <TOPIC_NAME>
:
-
: `/dispenser_requests`, `/dispenser_results`, `ingestor_requests`, `ingestor_results`, `/task_summaries`
Traffic Light Example
This will showcase an example of having 2 “traffic light” robots using RMF.
# First Terminal
ros2 run rmf_fleet_adapter_python schedule_blockade_nodes
# Second Terminal
ros2 run rmf_fleet_adapter_python traffic_light
For more details, please read this README.
Notes
- The py api bindings are mainly experimental. Use with caution.
- Current CI and docs gen are using rolling release of RMF
- More bindings, tests, and examples are welcome!
Using the Bindings
Ensure that you have built this package and sourced its environment. Then it is as simple as importing the module containing the Python bindings!
import rmf_adapter as adpt
# You may then check the available bindings
print(dir(adpt))
Description
Fleet adapters allow for interactions between
rmf_core
and robot fleets.High level pathing or task assignments can be issued to robots from
rmf_core
, and a fleet adapter will take those assignments and handle it in an implementation specific manner to direct individual robots to execute certain actions while monitoring and updatingrmf_core
on their high-level states viarmf_core
robot update handles.For more information it is helpful to look at the docs for rmf_core
Usage
The bound APIs are almost identical to the rmf_core
ones as well, so if the written documentation for these packages, and the Python usage examples in the scripts or tests are insufficient, you can also look into the relevant C++ implementations as a last resort.
Alternatively, you may also explore any interfaces with:
# To list any available members or methods
dir(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
# To see function signatures
help(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
Binding Details
This package contains Python bindings to C++ code that is found in rmf_core
and its associated packages. It was implemented using Pybind11.
Do note that as a result of that, if one needs to inspect the source, there are no Python implementations of any of the bound code, and it would be advisable to look directly into the appropriate rmf_fleet_adapter package, that contains the C++ code.. Additionally, C++ objects will get instantiated (generally) as references that can be used or called using the appropriate bound methods on the Python side.
Some of these bindings allow you to override virtual methods that would normally be called in the C++ side with Python code that you write in your Python scripts!
Features
There are enough functionalities bound to implement your own fleet adapters to communicate with the rest of the rmf_core
systems in the ROS2 graph. Allowing you to:
-
Adapter/MockAdapter
: Communicate with rmf_core by adding fleets or requesting deliveries -
RobotCommandHandle
: Specify custom robot command handles that can take commands from thermf_core
packages and implement or execute the following robot behaviors:- Docking
File truncated at 100 lines see the full file
Changelog for package rmf_fleet_adapter_python
2.1.8 (2023-12-19)
2.1.7 (2023-08-10)
- Adding initiator and request time to booking (#284)
- Contributors: Aaron Chong
2.1.6 (2023-06-02)
- Switch to rst changelogs (#276)
- Contributors: Yadunund
2.1.5 (2023-05-20)
2.1.4 (2023-04-27)
2.1.3 (2023-04-26)
2.1.2 (2022-10-10)
2.1.0 (2022-10-03)
- Make async behaviors more robust: (#228)
- Allow fleet adapters to change schedule participant profiles: (#229)
- Allow robots to be decommissioned from the task dispatch system: (#233)
- Allow manual toggling of stubborn negotiation: (#196)
- Allow users to specify a custom update listener: (#198)
- Fix various segfaults related to pybind: (#205)
- Allow [ResponsiveWait]{.title-ref} to be enabled and disabled: (#209)
- Allow robot status to be overridden by the user: (#191)
- Add API to report status for `perform_action`: (#190)
- Changes for humble compatibility: (#215)
2.0.0 (2022-03-18)
No changes yet
1.5.0 (2022-02-14)
1.3.0 (2021-06-07)
- Modifications to support refactor of rmf_task (#51)
- Fix symlink-install compilation (#32)
- Updated package.xml (#26)
- Fix/rmf task ros2 cleanup (#21)
- Feature/python binding planner (#11)
- Adding reference_internal tag to function bindings that return raw pointers (#6)
- Feature/add unstable participant api (#11)
- Feature/add simple docs (#9)
- Support apis for task dispatcher (#10)
- differentiate functions to prevent overloading (#8)
- support ez traffic light (#7)
- Update/release 1.1 (#6)
- Implement binding for Duration optional
- Make integration test even stricter
- Add reference capture for posterity
- Add clarifying printouts and fix multi-timer bug
- Integrate compute_plan_starts into integration test
- Implement type tests
- Bind optional constructors and delivery msg interfaces
- Bind compute_plan_starts
- Add update_position overload
- Implement Python Bindings for rmf_fleet_adapter (#1)
- Contributors: Aaron Chong, Charayaphan Nakorn Boon Han, Geoffrey Biggs, Grey, Marco A. Gutiérrez, Yadu, methylDragon, youliang
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmf_demos_fleet_adapter | |
rmf_dev |
Launch files
Messages
Services
Plugins
Recent questions tagged rmf_fleet_adapter_python at Robotics Stack Exchange
![]() |
rmf_fleet_adapter_python package from rmf_ros2 repormf_fleet_adapter rmf_fleet_adapter_python rmf_task_ros2 rmf_traffic_ros2 rmf_websocket |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.1.8 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_ros2.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2024-06-14 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- methylDragon
- Marco A. Gutiérrez
- Yadunund
Authors
rmf_fleet_adapter_python
Python bindings for rmf_fleet_adapter
Introduction
The rmf_fleet_adapter
package defines C++ classes that can interact with rmf_core
. Specifically an Adapter
and a MockAdapter
class. This package provides bindings for both and most of their dependencies.
The main difference between rmf_fleet_adapter
and rmf_mock_adapter
is the fact that rmf_fleet_adapter
objects can interact with the ROS2 graph.
The MockAdapter
and Adapter
both do this. But the difference is that MockAdapter
can be instantiated with no issues, whereas Adapter
will block to wait for a scheduler node from rmf_core
to make its presence known.
Installation
- Place the
pybind_ament
andrmf_fleet_adapter_python
packages in your ROS2 workspace, and runcolcon build
as per normal.
Running Examples
Integration test script for rmf loop and delivery task:
ros2 run rmf_fleet_adapter_python test_adapter.py
You may then probe the effects on the ROS2 graph by subscribing to the following topics with ros2 topic echo <TOPIC_NAME>
:
-
: `/dispenser_requests`, `/dispenser_results`, `ingestor_requests`, `ingestor_results`, `/task_summaries`
Traffic Light Example
This will showcase an example of having 2 “traffic light” robots using RMF.
# First Terminal
ros2 run rmf_fleet_adapter_python schedule_blockade_nodes
# Second Terminal
ros2 run rmf_fleet_adapter_python traffic_light
For more details, please read this README.
Notes
- The py api bindings are mainly experimental. Use with caution.
- Current CI and docs gen are using rolling release of RMF
- More bindings, tests, and examples are welcome!
Using the Bindings
Ensure that you have built this package and sourced its environment. Then it is as simple as importing the module containing the Python bindings!
import rmf_adapter as adpt
# You may then check the available bindings
print(dir(adpt))
Description
Fleet adapters allow for interactions between
rmf_core
and robot fleets.High level pathing or task assignments can be issued to robots from
rmf_core
, and a fleet adapter will take those assignments and handle it in an implementation specific manner to direct individual robots to execute certain actions while monitoring and updatingrmf_core
on their high-level states viarmf_core
robot update handles.For more information it is helpful to look at the docs for rmf_core
Usage
The bound APIs are almost identical to the rmf_core
ones as well, so if the written documentation for these packages, and the Python usage examples in the scripts or tests are insufficient, you can also look into the relevant C++ implementations as a last resort.
Alternatively, you may also explore any interfaces with:
# To list any available members or methods
dir(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
# To see function signatures
help(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
Binding Details
This package contains Python bindings to C++ code that is found in rmf_core
and its associated packages. It was implemented using Pybind11.
Do note that as a result of that, if one needs to inspect the source, there are no Python implementations of any of the bound code, and it would be advisable to look directly into the appropriate rmf_fleet_adapter package, that contains the C++ code.. Additionally, C++ objects will get instantiated (generally) as references that can be used or called using the appropriate bound methods on the Python side.
Some of these bindings allow you to override virtual methods that would normally be called in the C++ side with Python code that you write in your Python scripts!
Features
There are enough functionalities bound to implement your own fleet adapters to communicate with the rest of the rmf_core
systems in the ROS2 graph. Allowing you to:
-
Adapter/MockAdapter
: Communicate with rmf_core by adding fleets or requesting deliveries -
RobotCommandHandle
: Specify custom robot command handles that can take commands from thermf_core
packages and implement or execute the following robot behaviors:- Docking
File truncated at 100 lines see the full file
Changelog for package rmf_fleet_adapter_python
2.1.8 (2023-12-19)
2.1.7 (2023-08-10)
- Adding initiator and request time to booking (#284)
- Contributors: Aaron Chong
2.1.6 (2023-06-02)
- Switch to rst changelogs (#276)
- Contributors: Yadunund
2.1.5 (2023-05-20)
2.1.4 (2023-04-27)
2.1.3 (2023-04-26)
2.1.2 (2022-10-10)
2.1.0 (2022-10-03)
- Make async behaviors more robust: (#228)
- Allow fleet adapters to change schedule participant profiles: (#229)
- Allow robots to be decommissioned from the task dispatch system: (#233)
- Allow manual toggling of stubborn negotiation: (#196)
- Allow users to specify a custom update listener: (#198)
- Fix various segfaults related to pybind: (#205)
- Allow [ResponsiveWait]{.title-ref} to be enabled and disabled: (#209)
- Allow robot status to be overridden by the user: (#191)
- Add API to report status for `perform_action`: (#190)
- Changes for humble compatibility: (#215)
2.0.0 (2022-03-18)
No changes yet
1.5.0 (2022-02-14)
1.3.0 (2021-06-07)
- Modifications to support refactor of rmf_task (#51)
- Fix symlink-install compilation (#32)
- Updated package.xml (#26)
- Fix/rmf task ros2 cleanup (#21)
- Feature/python binding planner (#11)
- Adding reference_internal tag to function bindings that return raw pointers (#6)
- Feature/add unstable participant api (#11)
- Feature/add simple docs (#9)
- Support apis for task dispatcher (#10)
- differentiate functions to prevent overloading (#8)
- support ez traffic light (#7)
- Update/release 1.1 (#6)
- Implement binding for Duration optional
- Make integration test even stricter
- Add reference capture for posterity
- Add clarifying printouts and fix multi-timer bug
- Integrate compute_plan_starts into integration test
- Implement type tests
- Bind optional constructors and delivery msg interfaces
- Bind compute_plan_starts
- Add update_position overload
- Implement Python Bindings for rmf_fleet_adapter (#1)
- Contributors: Aaron Chong, Charayaphan Nakorn Boon Han, Geoffrey Biggs, Grey, Marco A. Gutiérrez, Yadu, methylDragon, youliang
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmf_demos_fleet_adapter | |
rmf_dev |
Launch files
Messages
Services
Plugins
Recent questions tagged rmf_fleet_adapter_python at Robotics Stack Exchange
![]() |
rmf_fleet_adapter_python package from rmf_ros2 repormf_fleet_adapter rmf_fleet_adapter_python rmf_task_ros2 rmf_traffic_ros2 rmf_websocket |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.1.8 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_ros2.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2024-06-14 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- methylDragon
- Marco A. Gutiérrez
- Yadunund
Authors
rmf_fleet_adapter_python
Python bindings for rmf_fleet_adapter
Introduction
The rmf_fleet_adapter
package defines C++ classes that can interact with rmf_core
. Specifically an Adapter
and a MockAdapter
class. This package provides bindings for both and most of their dependencies.
The main difference between rmf_fleet_adapter
and rmf_mock_adapter
is the fact that rmf_fleet_adapter
objects can interact with the ROS2 graph.
The MockAdapter
and Adapter
both do this. But the difference is that MockAdapter
can be instantiated with no issues, whereas Adapter
will block to wait for a scheduler node from rmf_core
to make its presence known.
Installation
- Place the
pybind_ament
andrmf_fleet_adapter_python
packages in your ROS2 workspace, and runcolcon build
as per normal.
Running Examples
Integration test script for rmf loop and delivery task:
ros2 run rmf_fleet_adapter_python test_adapter.py
You may then probe the effects on the ROS2 graph by subscribing to the following topics with ros2 topic echo <TOPIC_NAME>
:
-
: `/dispenser_requests`, `/dispenser_results`, `ingestor_requests`, `ingestor_results`, `/task_summaries`
Traffic Light Example
This will showcase an example of having 2 “traffic light” robots using RMF.
# First Terminal
ros2 run rmf_fleet_adapter_python schedule_blockade_nodes
# Second Terminal
ros2 run rmf_fleet_adapter_python traffic_light
For more details, please read this README.
Notes
- The py api bindings are mainly experimental. Use with caution.
- Current CI and docs gen are using rolling release of RMF
- More bindings, tests, and examples are welcome!
Using the Bindings
Ensure that you have built this package and sourced its environment. Then it is as simple as importing the module containing the Python bindings!
import rmf_adapter as adpt
# You may then check the available bindings
print(dir(adpt))
Description
Fleet adapters allow for interactions between
rmf_core
and robot fleets.High level pathing or task assignments can be issued to robots from
rmf_core
, and a fleet adapter will take those assignments and handle it in an implementation specific manner to direct individual robots to execute certain actions while monitoring and updatingrmf_core
on their high-level states viarmf_core
robot update handles.For more information it is helpful to look at the docs for rmf_core
Usage
The bound APIs are almost identical to the rmf_core
ones as well, so if the written documentation for these packages, and the Python usage examples in the scripts or tests are insufficient, you can also look into the relevant C++ implementations as a last resort.
Alternatively, you may also explore any interfaces with:
# To list any available members or methods
dir(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
# To see function signatures
help(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
Binding Details
This package contains Python bindings to C++ code that is found in rmf_core
and its associated packages. It was implemented using Pybind11.
Do note that as a result of that, if one needs to inspect the source, there are no Python implementations of any of the bound code, and it would be advisable to look directly into the appropriate rmf_fleet_adapter package, that contains the C++ code.. Additionally, C++ objects will get instantiated (generally) as references that can be used or called using the appropriate bound methods on the Python side.
Some of these bindings allow you to override virtual methods that would normally be called in the C++ side with Python code that you write in your Python scripts!
Features
There are enough functionalities bound to implement your own fleet adapters to communicate with the rest of the rmf_core
systems in the ROS2 graph. Allowing you to:
-
Adapter/MockAdapter
: Communicate with rmf_core by adding fleets or requesting deliveries -
RobotCommandHandle
: Specify custom robot command handles that can take commands from thermf_core
packages and implement or execute the following robot behaviors:- Docking
File truncated at 100 lines see the full file
Changelog for package rmf_fleet_adapter_python
2.1.8 (2023-12-19)
2.1.7 (2023-08-10)
- Adding initiator and request time to booking (#284)
- Contributors: Aaron Chong
2.1.6 (2023-06-02)
- Switch to rst changelogs (#276)
- Contributors: Yadunund
2.1.5 (2023-05-20)
2.1.4 (2023-04-27)
2.1.3 (2023-04-26)
2.1.2 (2022-10-10)
2.1.0 (2022-10-03)
- Make async behaviors more robust: (#228)
- Allow fleet adapters to change schedule participant profiles: (#229)
- Allow robots to be decommissioned from the task dispatch system: (#233)
- Allow manual toggling of stubborn negotiation: (#196)
- Allow users to specify a custom update listener: (#198)
- Fix various segfaults related to pybind: (#205)
- Allow [ResponsiveWait]{.title-ref} to be enabled and disabled: (#209)
- Allow robot status to be overridden by the user: (#191)
- Add API to report status for `perform_action`: (#190)
- Changes for humble compatibility: (#215)
2.0.0 (2022-03-18)
No changes yet
1.5.0 (2022-02-14)
1.3.0 (2021-06-07)
- Modifications to support refactor of rmf_task (#51)
- Fix symlink-install compilation (#32)
- Updated package.xml (#26)
- Fix/rmf task ros2 cleanup (#21)
- Feature/python binding planner (#11)
- Adding reference_internal tag to function bindings that return raw pointers (#6)
- Feature/add unstable participant api (#11)
- Feature/add simple docs (#9)
- Support apis for task dispatcher (#10)
- differentiate functions to prevent overloading (#8)
- support ez traffic light (#7)
- Update/release 1.1 (#6)
- Implement binding for Duration optional
- Make integration test even stricter
- Add reference capture for posterity
- Add clarifying printouts and fix multi-timer bug
- Integrate compute_plan_starts into integration test
- Implement type tests
- Bind optional constructors and delivery msg interfaces
- Bind compute_plan_starts
- Add update_position overload
- Implement Python Bindings for rmf_fleet_adapter (#1)
- Contributors: Aaron Chong, Charayaphan Nakorn Boon Han, Geoffrey Biggs, Grey, Marco A. Gutiérrez, Yadu, methylDragon, youliang
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmf_demos_fleet_adapter | |
rmf_dev |
Launch files
Messages
Services
Plugins
Recent questions tagged rmf_fleet_adapter_python at Robotics Stack Exchange
![]() |
rmf_fleet_adapter_python package from rmf_ros2 repormf_fleet_adapter rmf_fleet_adapter_python rmf_task_ros2 rmf_traffic_ros2 |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 1.4.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_ros2.git |
VCS Type | git |
VCS Version | galactic |
Last Updated | 2021-09-02 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- methylDragon
- Marco A. Gutiérrez
Authors
rmf_fleet_adapter_python
Python bindings for rmf_fleet_adapter
Introduction
The rmf_fleet_adapter
package defines C++ classes that can interact with rmf_core
. Specifically an Adapter
and a MockAdapter
class. This package provides bindings for both and most of their dependencies.
The main difference between rmf_fleet_adapter
and rmf_mock_adapter
is the fact that rmf_fleet_adapter
objects can interact with the ROS2 graph.
The MockAdapter
and Adapter
both do this. But the difference is that MockAdapter
can be instantiated with no issues, whereas Adapter
will block to wait for a scheduler node from rmf_core
to make its presence known.
Installation
- Place the
pybind_ament
andrmf_fleet_adapter_python
packages in your ROS2 workspace, and runcolcon build
as per normal.
Running Examples
Integration test script for rmf loop and delivery task:
ros2 run rmf_fleet_adapter_python test_adapter.py
You may then probe the effects on the ROS2 graph by subscribing to the following topics with ros2 topic echo <TOPIC_NAME>
:
-
: `/dispenser_requests`, `/dispenser_results`, `ingestor_requests`, `ingestor_results`, `/task_summaries`
Traffic Light Example
This will showcase an example of having 2 “traffic light” robots using RMF.
# First Terminal
ros2 run rmf_fleet_adapter_python schedule_blockade_nodes
# Second Terminal
ros2 run rmf_fleet_adapter_python traffic_light
For more details, please read this README.
Notes
- The py api bindings are mainly experimental. Use with caution.
- Current CI and docs gen are using rolling release of RMF
- More bindings, tests, and examples are welcome!
Using the Bindings
Ensure that you have built this package and sourced its environment. Then it is as simple as importing the module containing the Python bindings!
import rmf_adapter as adpt
# You may then check the available bindings
print(dir(adpt))
Description
Fleet adapters allow for interactions between
rmf_core
and robot fleets.High level pathing or task assignments can be issued to robots from
rmf_core
, and a fleet adapter will take those assignments and handle it in an implementation specific manner to direct individual robots to execute certain actions while monitoring and updatingrmf_core
on their high-level states viarmf_core
robot update handles.For more information it is helpful to look at the docs for rmf_core
Usage
The bound APIs are almost identical to the rmf_core
ones as well, so if the written documentation for these packages, and the Python usage examples in the scripts or tests are insufficient, you can also look into the relevant C++ implementations as a last resort.
Alternatively, you may also explore any interfaces with:
# To list any available members or methods
dir(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
# To see function signatures
help(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
Binding Details
This package contains Python bindings to C++ code that is found in rmf_core
and its associated packages. It was implemented using Pybind11.
Do note that as a result of that, if one needs to inspect the source, there are no Python implementations of any of the bound code, and it would be advisable to look directly into the appropriate rmf_fleet_adapter package, that contains the C++ code.. Additionally, C++ objects will get instantiated (generally) as references that can be used or called using the appropriate bound methods on the Python side.
Some of these bindings allow you to override virtual methods that would normally be called in the C++ side with Python code that you write in your Python scripts!
Features
There are enough functionalities bound to implement your own fleet adapters to communicate with the rest of the rmf_core
systems in the ROS2 graph. Allowing you to:
-
Adapter/MockAdapter
: Communicate with rmf_core by adding fleets or requesting deliveries -
RobotCommandHandle
: Specify custom robot command handles that can take commands from thermf_core
packages and implement or execute the following robot behaviors:- Docking
File truncated at 100 lines see the full file
Changelog for package rmf_fleet_adapter_python
1.3.0 (2021-06-07)
- Modifications to support refactor of rmf_task (
#51 <https://github.com/open-rmf/rmf_ros2/issues/51>
_) - Fix symlink-install compilation (
#32 <https://github.com/open-rmf/rmf_ros2/issues/32>
_) - Updated package.xml (
#26 <https://github.com/open-rmf/rmf_ros2/issues/26>
_) - Fix/rmf task ros2 cleanup (
#21 <https://github.com/open-rmf/rmf_ros2/issues/21>
_) - Feature/python binding planner (
#11 <https://github.com/open-rmf/rmf_ros2/issues/11>
_) - Adding reference_internal tag to function bindings that return raw pointers (
#6 <https://github.com/open-rmf/rmf_ros2/issues/6>
_) - Feature/add unstable participant api (
#11 <https://github.com/open-rmf/rmf_ros2/issues/11>
_) - Feature/add simple docs (
#9 <https://github.com/open-rmf/rmf_ros2/issues/9>
_) - Support apis for task dispatcher (
#10 <https://github.com/open-rmf/rmf_ros2/issues/10>
_) - differentiate functions to prevent overloading (
#8 <https://github.com/open-rmf/rmf_ros2/issues/8>
_) - support ez traffic light (
#7 <https://github.com/open-rmf/rmf_ros2/issues/7>
_) - Update/release 1.1 (
#6 <https://github.com/open-rmf/rmf_ros2/issues/6>
_) - Implement binding for Duration optional
- Make integration test even stricter
- Add reference capture for posterity
- Add clarifying printouts and fix multi-timer bug
- Integrate compute_plan_starts into integration test
- Implement type tests
- Bind optional constructors and delivery msg interfaces
- Bind compute_plan_starts
- Add update_position overload
- Implement Python Bindings for rmf_fleet_adapter (
#1 <https://github.com/open-rmf/rmf_ros2/issues/1>
_) - Contributors: Aaron Chong, Charayaphan Nakorn Boon Han, Geoffrey Biggs, Grey, Marco A. Gutiérrez, Yadu, methylDragon, youliang
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rmf_fleet_adapter_python at Robotics Stack Exchange
![]() |
rmf_fleet_adapter_python package from rmf_ros2 repormf_fleet_adapter rmf_fleet_adapter_python rmf_task_ros2 rmf_traffic_ros2 |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 1.4.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_ros2.git |
VCS Type | git |
VCS Version | foxy |
Last Updated | 2021-09-02 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- methylDragon
- Marco A. Gutiérrez
Authors
rmf_fleet_adapter_python
Python bindings for rmf_fleet_adapter
Introduction
The rmf_fleet_adapter
package defines C++ classes that can interact with rmf_core
. Specifically an Adapter
and a MockAdapter
class. This package provides bindings for both and most of their dependencies.
The main difference between rmf_fleet_adapter
and rmf_mock_adapter
is the fact that rmf_fleet_adapter
objects can interact with the ROS2 graph.
The MockAdapter
and Adapter
both do this. But the difference is that MockAdapter
can be instantiated with no issues, whereas Adapter
will block to wait for a scheduler node from rmf_core
to make its presence known.
Installation
- Place the
pybind_ament
andrmf_fleet_adapter_python
packages in your ROS2 workspace, and runcolcon build
as per normal.
Running Examples
Integration test script for rmf loop and delivery task:
ros2 run rmf_fleet_adapter_python test_adapter.py
You may then probe the effects on the ROS2 graph by subscribing to the following topics with ros2 topic echo <TOPIC_NAME>
:
-
: `/dispenser_requests`, `/dispenser_results`, `ingestor_requests`, `ingestor_results`, `/task_summaries`
Traffic Light Example
This will showcase an example of having 2 “traffic light” robots using RMF.
# First Terminal
ros2 run rmf_fleet_adapter_python schedule_blockade_nodes
# Second Terminal
ros2 run rmf_fleet_adapter_python traffic_light
For more details, please read this README.
Notes
- The py api bindings are mainly experimental. Use with caution.
- Current CI and docs gen are using rolling release of RMF
- More bindings, tests, and examples are welcome!
Using the Bindings
Ensure that you have built this package and sourced its environment. Then it is as simple as importing the module containing the Python bindings!
import rmf_adapter as adpt
# You may then check the available bindings
print(dir(adpt))
Description
Fleet adapters allow for interactions between
rmf_core
and robot fleets.High level pathing or task assignments can be issued to robots from
rmf_core
, and a fleet adapter will take those assignments and handle it in an implementation specific manner to direct individual robots to execute certain actions while monitoring and updatingrmf_core
on their high-level states viarmf_core
robot update handles.For more information it is helpful to look at the docs for rmf_core
Usage
The bound APIs are almost identical to the rmf_core
ones as well, so if the written documentation for these packages, and the Python usage examples in the scripts or tests are insufficient, you can also look into the relevant C++ implementations as a last resort.
Alternatively, you may also explore any interfaces with:
# To list any available members or methods
dir(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
# To see function signatures
help(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
Binding Details
This package contains Python bindings to C++ code that is found in rmf_core
and its associated packages. It was implemented using Pybind11.
Do note that as a result of that, if one needs to inspect the source, there are no Python implementations of any of the bound code, and it would be advisable to look directly into the appropriate rmf_fleet_adapter package, that contains the C++ code.. Additionally, C++ objects will get instantiated (generally) as references that can be used or called using the appropriate bound methods on the Python side.
Some of these bindings allow you to override virtual methods that would normally be called in the C++ side with Python code that you write in your Python scripts!
Features
There are enough functionalities bound to implement your own fleet adapters to communicate with the rest of the rmf_core
systems in the ROS2 graph. Allowing you to:
-
Adapter/MockAdapter
: Communicate with rmf_core by adding fleets or requesting deliveries -
RobotCommandHandle
: Specify custom robot command handles that can take commands from thermf_core
packages and implement or execute the following robot behaviors:- Docking
File truncated at 100 lines see the full file
Changelog for package rmf_fleet_adapter_python
1.3.0 (2021-06-07)
- Modifications to support refactor of rmf_task (
#51 <https://github.com/open-rmf/rmf_ros2/issues/51>
_) - Fix symlink-install compilation (
#32 <https://github.com/open-rmf/rmf_ros2/issues/32>
_) - Updated package.xml (
#26 <https://github.com/open-rmf/rmf_ros2/issues/26>
_) - Fix/rmf task ros2 cleanup (
#21 <https://github.com/open-rmf/rmf_ros2/issues/21>
_) - Feature/python binding planner (
#11 <https://github.com/open-rmf/rmf_ros2/issues/11>
_) - Adding reference_internal tag to function bindings that return raw pointers (
#6 <https://github.com/open-rmf/rmf_ros2/issues/6>
_) - Feature/add unstable participant api (
#11 <https://github.com/open-rmf/rmf_ros2/issues/11>
_) - Feature/add simple docs (
#9 <https://github.com/open-rmf/rmf_ros2/issues/9>
_) - Support apis for task dispatcher (
#10 <https://github.com/open-rmf/rmf_ros2/issues/10>
_) - differentiate functions to prevent overloading (
#8 <https://github.com/open-rmf/rmf_ros2/issues/8>
_) - support ez traffic light (
#7 <https://github.com/open-rmf/rmf_ros2/issues/7>
_) - Update/release 1.1 (
#6 <https://github.com/open-rmf/rmf_ros2/issues/6>
_) - Implement binding for Duration optional
- Make integration test even stricter
- Add reference capture for posterity
- Add clarifying printouts and fix multi-timer bug
- Integrate compute_plan_starts into integration test
- Implement type tests
- Bind optional constructors and delivery msg interfaces
- Bind compute_plan_starts
- Add update_position overload
- Implement Python Bindings for rmf_fleet_adapter (
#1 <https://github.com/open-rmf/rmf_ros2/issues/1>
_) - Contributors: Aaron Chong, Charayaphan Nakorn Boon Han, Geoffrey Biggs, Grey, Marco A. Gutiérrez, Yadu, methylDragon, youliang
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged rmf_fleet_adapter_python at Robotics Stack Exchange
![]() |
rmf_fleet_adapter_python package from rmf_ros2 repormf_charging_schedule rmf_fleet_adapter rmf_fleet_adapter_python rmf_task_ros2 rmf_traffic_ros2 rmf_websocket |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.2.7 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_ros2.git |
VCS Type | git |
VCS Version | iron |
Last Updated | 2024-11-14 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- methylDragon
- Marco A. Gutiérrez
- Yadunund
Authors
rmf_fleet_adapter_python
Python bindings for rmf_fleet_adapter
Introduction
The rmf_fleet_adapter
package defines C++ classes that can interact with rmf_core
. Specifically an Adapter
and a MockAdapter
class. This package provides bindings for both and most of their dependencies.
The main difference between rmf_fleet_adapter
and rmf_mock_adapter
is the fact that rmf_fleet_adapter
objects can interact with the ROS2 graph.
The MockAdapter
and Adapter
both do this. But the difference is that MockAdapter
can be instantiated with no issues, whereas Adapter
will block to wait for a scheduler node from rmf_core
to make its presence known.
Installation
- Place the
pybind_ament
andrmf_fleet_adapter_python
packages in your ROS2 workspace, and runcolcon build
as per normal.
Running Examples
Integration test script for rmf loop and delivery task:
ros2 run rmf_fleet_adapter_python test_adapter.py
You may then probe the effects on the ROS2 graph by subscribing to the following topics with ros2 topic echo <TOPIC_NAME>
:
-
: `/dispenser_requests`, `/dispenser_results`, `ingestor_requests`, `ingestor_results`, `/task_summaries`
Traffic Light Example
This will showcase an example of having 2 “traffic light” robots using RMF.
# First Terminal
ros2 run rmf_fleet_adapter_python schedule_blockade_nodes
# Second Terminal
ros2 run rmf_fleet_adapter_python traffic_light
For more details, please read this README.
Notes
- The py api bindings are mainly experimental. Use with caution.
- Current CI and docs gen are using rolling release of RMF
- More bindings, tests, and examples are welcome!
Using the Bindings
Ensure that you have built this package and sourced its environment. Then it is as simple as importing the module containing the Python bindings!
import rmf_adapter as adpt
# You may then check the available bindings
print(dir(adpt))
Description
Fleet adapters allow for interactions between
rmf_core
and robot fleets.High level pathing or task assignments can be issued to robots from
rmf_core
, and a fleet adapter will take those assignments and handle it in an implementation specific manner to direct individual robots to execute certain actions while monitoring and updatingrmf_core
on their high-level states viarmf_core
robot update handles.For more information it is helpful to look at the docs for rmf_core
Usage
The bound APIs are almost identical to the rmf_core
ones as well, so if the written documentation for these packages, and the Python usage examples in the scripts or tests are insufficient, you can also look into the relevant C++ implementations as a last resort.
Alternatively, you may also explore any interfaces with:
# To list any available members or methods
dir(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
# To see function signatures
help(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
Binding Details
This package contains Python bindings to C++ code that is found in rmf_core
and its associated packages. It was implemented using Pybind11.
Do note that as a result of that, if one needs to inspect the source, there are no Python implementations of any of the bound code, and it would be advisable to look directly into the appropriate rmf_fleet_adapter package, that contains the C++ code.. Additionally, C++ objects will get instantiated (generally) as references that can be used or called using the appropriate bound methods on the Python side.
Some of these bindings allow you to override virtual methods that would normally be called in the C++ side with Python code that you write in your Python scripts!
Features
There are enough functionalities bound to implement your own fleet adapters to communicate with the rest of the rmf_core
systems in the ROS2 graph. Allowing you to:
-
Adapter/MockAdapter
: Communicate with rmf_core by adding fleets or requesting deliveries -
RobotCommandHandle
: Specify custom robot command handles that can take commands from thermf_core
packages and implement or execute the following robot behaviors:- Docking
File truncated at 100 lines see the full file
Changelog for package rmf_fleet_adapter_python
2.2.7 (2024-11-15)
2.2.6 (2024-07-12)
2.2.5 (2023-12-22)
2.2.4 (2023-12-15)
2.2.3 (2023-09-20)
- EasyFullControl API (#302)
- Contributors: Luca Della Vedova, Michael X. Grey, Xiyu, Yadunund
2.2.2 (2023-09-11)
2.2.1 (2023-08-10)
- Adding initiator and request time to booking (#285)
- Contributors: Aaron Chong, Yadunund
2.2.0 (2023-06-06)
- Switch to rst changelogs (#276)
- Contributors: Yadunund
2.1.5 (2023-05-20)
2.1.4 (2023-04-27)
2.1.3 (2023-04-26)
2.1.2 (2022-10-10)
2.1.0 (2022-10-03)
- Make async behaviors more robust: (#228)
- Allow fleet adapters to change schedule participant profiles: (#229)
- Allow robots to be decommissioned from the task dispatch system: (#233)
- Allow manual toggling of stubborn negotiation: (#196)
- Allow users to specify a custom update listener: (#198)
- Fix various segfaults related to pybind: (#205)
- Allow [ResponsiveWait]{.title-ref} to be enabled and disabled: (#209)
- Allow robot status to be overridden by the user: (#191)
- Add API to report status for `perform_action`: (#190)
- Changes for humble compatibility: (#215)
2.0.0 (2022-03-18)
No changes yet
1.5.0 (2022-02-14)
1.3.0 (2021-06-07)
- Modifications to support refactor of rmf_task (#51)
- Fix symlink-install compilation (#32)
- Updated package.xml (#26)
- Fix/rmf task ros2 cleanup (#21)
- Feature/python binding planner (#11)
- Adding reference_internal tag to function bindings that return raw pointers (#6)
- Feature/add unstable participant api (#11)
- Feature/add simple docs (#9)
- Support apis for task dispatcher (#10)
- differentiate functions to prevent overloading (#8)
- support ez traffic light (#7)
- Update/release 1.1 (#6)
- Implement binding for Duration optional
- Make integration test even stricter
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmf_demos_fleet_adapter | |
rmf_dev |
Launch files
Messages
Services
Plugins
Recent questions tagged rmf_fleet_adapter_python at Robotics Stack Exchange
![]() |
rmf_fleet_adapter_python package from rmf_ros2 repormf_fleet_adapter rmf_fleet_adapter_python rmf_task_ros2 rmf_traffic_ros2 rmf_websocket |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.1.8 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_ros2.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2024-06-14 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- methylDragon
- Marco A. Gutiérrez
- Yadunund
Authors
rmf_fleet_adapter_python
Python bindings for rmf_fleet_adapter
Introduction
The rmf_fleet_adapter
package defines C++ classes that can interact with rmf_core
. Specifically an Adapter
and a MockAdapter
class. This package provides bindings for both and most of their dependencies.
The main difference between rmf_fleet_adapter
and rmf_mock_adapter
is the fact that rmf_fleet_adapter
objects can interact with the ROS2 graph.
The MockAdapter
and Adapter
both do this. But the difference is that MockAdapter
can be instantiated with no issues, whereas Adapter
will block to wait for a scheduler node from rmf_core
to make its presence known.
Installation
- Place the
pybind_ament
andrmf_fleet_adapter_python
packages in your ROS2 workspace, and runcolcon build
as per normal.
Running Examples
Integration test script for rmf loop and delivery task:
ros2 run rmf_fleet_adapter_python test_adapter.py
You may then probe the effects on the ROS2 graph by subscribing to the following topics with ros2 topic echo <TOPIC_NAME>
:
-
: `/dispenser_requests`, `/dispenser_results`, `ingestor_requests`, `ingestor_results`, `/task_summaries`
Traffic Light Example
This will showcase an example of having 2 “traffic light” robots using RMF.
# First Terminal
ros2 run rmf_fleet_adapter_python schedule_blockade_nodes
# Second Terminal
ros2 run rmf_fleet_adapter_python traffic_light
For more details, please read this README.
Notes
- The py api bindings are mainly experimental. Use with caution.
- Current CI and docs gen are using rolling release of RMF
- More bindings, tests, and examples are welcome!
Using the Bindings
Ensure that you have built this package and sourced its environment. Then it is as simple as importing the module containing the Python bindings!
import rmf_adapter as adpt
# You may then check the available bindings
print(dir(adpt))
Description
Fleet adapters allow for interactions between
rmf_core
and robot fleets.High level pathing or task assignments can be issued to robots from
rmf_core
, and a fleet adapter will take those assignments and handle it in an implementation specific manner to direct individual robots to execute certain actions while monitoring and updatingrmf_core
on their high-level states viarmf_core
robot update handles.For more information it is helpful to look at the docs for rmf_core
Usage
The bound APIs are almost identical to the rmf_core
ones as well, so if the written documentation for these packages, and the Python usage examples in the scripts or tests are insufficient, you can also look into the relevant C++ implementations as a last resort.
Alternatively, you may also explore any interfaces with:
# To list any available members or methods
dir(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
# To see function signatures
help(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
Binding Details
This package contains Python bindings to C++ code that is found in rmf_core
and its associated packages. It was implemented using Pybind11.
Do note that as a result of that, if one needs to inspect the source, there are no Python implementations of any of the bound code, and it would be advisable to look directly into the appropriate rmf_fleet_adapter package, that contains the C++ code.. Additionally, C++ objects will get instantiated (generally) as references that can be used or called using the appropriate bound methods on the Python side.
Some of these bindings allow you to override virtual methods that would normally be called in the C++ side with Python code that you write in your Python scripts!
Features
There are enough functionalities bound to implement your own fleet adapters to communicate with the rest of the rmf_core
systems in the ROS2 graph. Allowing you to:
-
Adapter/MockAdapter
: Communicate with rmf_core by adding fleets or requesting deliveries -
RobotCommandHandle
: Specify custom robot command handles that can take commands from thermf_core
packages and implement or execute the following robot behaviors:- Docking
File truncated at 100 lines see the full file
Changelog for package rmf_fleet_adapter_python
2.1.8 (2023-12-19)
2.1.7 (2023-08-10)
- Adding initiator and request time to booking (#284)
- Contributors: Aaron Chong
2.1.6 (2023-06-02)
- Switch to rst changelogs (#276)
- Contributors: Yadunund
2.1.5 (2023-05-20)
2.1.4 (2023-04-27)
2.1.3 (2023-04-26)
2.1.2 (2022-10-10)
2.1.0 (2022-10-03)
- Make async behaviors more robust: (#228)
- Allow fleet adapters to change schedule participant profiles: (#229)
- Allow robots to be decommissioned from the task dispatch system: (#233)
- Allow manual toggling of stubborn negotiation: (#196)
- Allow users to specify a custom update listener: (#198)
- Fix various segfaults related to pybind: (#205)
- Allow [ResponsiveWait]{.title-ref} to be enabled and disabled: (#209)
- Allow robot status to be overridden by the user: (#191)
- Add API to report status for `perform_action`: (#190)
- Changes for humble compatibility: (#215)
2.0.0 (2022-03-18)
No changes yet
1.5.0 (2022-02-14)
1.3.0 (2021-06-07)
- Modifications to support refactor of rmf_task (#51)
- Fix symlink-install compilation (#32)
- Updated package.xml (#26)
- Fix/rmf task ros2 cleanup (#21)
- Feature/python binding planner (#11)
- Adding reference_internal tag to function bindings that return raw pointers (#6)
- Feature/add unstable participant api (#11)
- Feature/add simple docs (#9)
- Support apis for task dispatcher (#10)
- differentiate functions to prevent overloading (#8)
- support ez traffic light (#7)
- Update/release 1.1 (#6)
- Implement binding for Duration optional
- Make integration test even stricter
- Add reference capture for posterity
- Add clarifying printouts and fix multi-timer bug
- Integrate compute_plan_starts into integration test
- Implement type tests
- Bind optional constructors and delivery msg interfaces
- Bind compute_plan_starts
- Add update_position overload
- Implement Python Bindings for rmf_fleet_adapter (#1)
- Contributors: Aaron Chong, Charayaphan Nakorn Boon Han, Geoffrey Biggs, Grey, Marco A. Gutiérrez, Yadu, methylDragon, youliang
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmf_demos_fleet_adapter | |
rmf_dev |
Launch files
Messages
Services
Plugins
Recent questions tagged rmf_fleet_adapter_python at Robotics Stack Exchange
![]() |
rmf_fleet_adapter_python package from rmf_ros2 repormf_fleet_adapter rmf_fleet_adapter_python rmf_task_ros2 rmf_traffic_ros2 rmf_websocket |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.1.8 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_ros2.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2024-06-14 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- methylDragon
- Marco A. Gutiérrez
- Yadunund
Authors
rmf_fleet_adapter_python
Python bindings for rmf_fleet_adapter
Introduction
The rmf_fleet_adapter
package defines C++ classes that can interact with rmf_core
. Specifically an Adapter
and a MockAdapter
class. This package provides bindings for both and most of their dependencies.
The main difference between rmf_fleet_adapter
and rmf_mock_adapter
is the fact that rmf_fleet_adapter
objects can interact with the ROS2 graph.
The MockAdapter
and Adapter
both do this. But the difference is that MockAdapter
can be instantiated with no issues, whereas Adapter
will block to wait for a scheduler node from rmf_core
to make its presence known.
Installation
- Place the
pybind_ament
andrmf_fleet_adapter_python
packages in your ROS2 workspace, and runcolcon build
as per normal.
Running Examples
Integration test script for rmf loop and delivery task:
ros2 run rmf_fleet_adapter_python test_adapter.py
You may then probe the effects on the ROS2 graph by subscribing to the following topics with ros2 topic echo <TOPIC_NAME>
:
-
: `/dispenser_requests`, `/dispenser_results`, `ingestor_requests`, `ingestor_results`, `/task_summaries`
Traffic Light Example
This will showcase an example of having 2 “traffic light” robots using RMF.
# First Terminal
ros2 run rmf_fleet_adapter_python schedule_blockade_nodes
# Second Terminal
ros2 run rmf_fleet_adapter_python traffic_light
For more details, please read this README.
Notes
- The py api bindings are mainly experimental. Use with caution.
- Current CI and docs gen are using rolling release of RMF
- More bindings, tests, and examples are welcome!
Using the Bindings
Ensure that you have built this package and sourced its environment. Then it is as simple as importing the module containing the Python bindings!
import rmf_adapter as adpt
# You may then check the available bindings
print(dir(adpt))
Description
Fleet adapters allow for interactions between
rmf_core
and robot fleets.High level pathing or task assignments can be issued to robots from
rmf_core
, and a fleet adapter will take those assignments and handle it in an implementation specific manner to direct individual robots to execute certain actions while monitoring and updatingrmf_core
on their high-level states viarmf_core
robot update handles.For more information it is helpful to look at the docs for rmf_core
Usage
The bound APIs are almost identical to the rmf_core
ones as well, so if the written documentation for these packages, and the Python usage examples in the scripts or tests are insufficient, you can also look into the relevant C++ implementations as a last resort.
Alternatively, you may also explore any interfaces with:
# To list any available members or methods
dir(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
# To see function signatures
help(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
Binding Details
This package contains Python bindings to C++ code that is found in rmf_core
and its associated packages. It was implemented using Pybind11.
Do note that as a result of that, if one needs to inspect the source, there are no Python implementations of any of the bound code, and it would be advisable to look directly into the appropriate rmf_fleet_adapter package, that contains the C++ code.. Additionally, C++ objects will get instantiated (generally) as references that can be used or called using the appropriate bound methods on the Python side.
Some of these bindings allow you to override virtual methods that would normally be called in the C++ side with Python code that you write in your Python scripts!
Features
There are enough functionalities bound to implement your own fleet adapters to communicate with the rest of the rmf_core
systems in the ROS2 graph. Allowing you to:
-
Adapter/MockAdapter
: Communicate with rmf_core by adding fleets or requesting deliveries -
RobotCommandHandle
: Specify custom robot command handles that can take commands from thermf_core
packages and implement or execute the following robot behaviors:- Docking
File truncated at 100 lines see the full file
Changelog for package rmf_fleet_adapter_python
2.1.8 (2023-12-19)
2.1.7 (2023-08-10)
- Adding initiator and request time to booking (#284)
- Contributors: Aaron Chong
2.1.6 (2023-06-02)
- Switch to rst changelogs (#276)
- Contributors: Yadunund
2.1.5 (2023-05-20)
2.1.4 (2023-04-27)
2.1.3 (2023-04-26)
2.1.2 (2022-10-10)
2.1.0 (2022-10-03)
- Make async behaviors more robust: (#228)
- Allow fleet adapters to change schedule participant profiles: (#229)
- Allow robots to be decommissioned from the task dispatch system: (#233)
- Allow manual toggling of stubborn negotiation: (#196)
- Allow users to specify a custom update listener: (#198)
- Fix various segfaults related to pybind: (#205)
- Allow [ResponsiveWait]{.title-ref} to be enabled and disabled: (#209)
- Allow robot status to be overridden by the user: (#191)
- Add API to report status for `perform_action`: (#190)
- Changes for humble compatibility: (#215)
2.0.0 (2022-03-18)
No changes yet
1.5.0 (2022-02-14)
1.3.0 (2021-06-07)
- Modifications to support refactor of rmf_task (#51)
- Fix symlink-install compilation (#32)
- Updated package.xml (#26)
- Fix/rmf task ros2 cleanup (#21)
- Feature/python binding planner (#11)
- Adding reference_internal tag to function bindings that return raw pointers (#6)
- Feature/add unstable participant api (#11)
- Feature/add simple docs (#9)
- Support apis for task dispatcher (#10)
- differentiate functions to prevent overloading (#8)
- support ez traffic light (#7)
- Update/release 1.1 (#6)
- Implement binding for Duration optional
- Make integration test even stricter
- Add reference capture for posterity
- Add clarifying printouts and fix multi-timer bug
- Integrate compute_plan_starts into integration test
- Implement type tests
- Bind optional constructors and delivery msg interfaces
- Bind compute_plan_starts
- Add update_position overload
- Implement Python Bindings for rmf_fleet_adapter (#1)
- Contributors: Aaron Chong, Charayaphan Nakorn Boon Han, Geoffrey Biggs, Grey, Marco A. Gutiérrez, Yadu, methylDragon, youliang
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmf_demos_fleet_adapter | |
rmf_dev |
Launch files
Messages
Services
Plugins
Recent questions tagged rmf_fleet_adapter_python at Robotics Stack Exchange
![]() |
rmf_fleet_adapter_python package from rmf_ros2 repormf_fleet_adapter rmf_fleet_adapter_python rmf_task_ros2 rmf_traffic_ros2 rmf_websocket |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.1.8 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_ros2.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2024-06-14 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- methylDragon
- Marco A. Gutiérrez
- Yadunund
Authors
rmf_fleet_adapter_python
Python bindings for rmf_fleet_adapter
Introduction
The rmf_fleet_adapter
package defines C++ classes that can interact with rmf_core
. Specifically an Adapter
and a MockAdapter
class. This package provides bindings for both and most of their dependencies.
The main difference between rmf_fleet_adapter
and rmf_mock_adapter
is the fact that rmf_fleet_adapter
objects can interact with the ROS2 graph.
The MockAdapter
and Adapter
both do this. But the difference is that MockAdapter
can be instantiated with no issues, whereas Adapter
will block to wait for a scheduler node from rmf_core
to make its presence known.
Installation
- Place the
pybind_ament
andrmf_fleet_adapter_python
packages in your ROS2 workspace, and runcolcon build
as per normal.
Running Examples
Integration test script for rmf loop and delivery task:
ros2 run rmf_fleet_adapter_python test_adapter.py
You may then probe the effects on the ROS2 graph by subscribing to the following topics with ros2 topic echo <TOPIC_NAME>
:
-
: `/dispenser_requests`, `/dispenser_results`, `ingestor_requests`, `ingestor_results`, `/task_summaries`
Traffic Light Example
This will showcase an example of having 2 “traffic light” robots using RMF.
# First Terminal
ros2 run rmf_fleet_adapter_python schedule_blockade_nodes
# Second Terminal
ros2 run rmf_fleet_adapter_python traffic_light
For more details, please read this README.
Notes
- The py api bindings are mainly experimental. Use with caution.
- Current CI and docs gen are using rolling release of RMF
- More bindings, tests, and examples are welcome!
Using the Bindings
Ensure that you have built this package and sourced its environment. Then it is as simple as importing the module containing the Python bindings!
import rmf_adapter as adpt
# You may then check the available bindings
print(dir(adpt))
Description
Fleet adapters allow for interactions between
rmf_core
and robot fleets.High level pathing or task assignments can be issued to robots from
rmf_core
, and a fleet adapter will take those assignments and handle it in an implementation specific manner to direct individual robots to execute certain actions while monitoring and updatingrmf_core
on their high-level states viarmf_core
robot update handles.For more information it is helpful to look at the docs for rmf_core
Usage
The bound APIs are almost identical to the rmf_core
ones as well, so if the written documentation for these packages, and the Python usage examples in the scripts or tests are insufficient, you can also look into the relevant C++ implementations as a last resort.
Alternatively, you may also explore any interfaces with:
# To list any available members or methods
dir(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
# To see function signatures
help(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
Binding Details
This package contains Python bindings to C++ code that is found in rmf_core
and its associated packages. It was implemented using Pybind11.
Do note that as a result of that, if one needs to inspect the source, there are no Python implementations of any of the bound code, and it would be advisable to look directly into the appropriate rmf_fleet_adapter package, that contains the C++ code.. Additionally, C++ objects will get instantiated (generally) as references that can be used or called using the appropriate bound methods on the Python side.
Some of these bindings allow you to override virtual methods that would normally be called in the C++ side with Python code that you write in your Python scripts!
Features
There are enough functionalities bound to implement your own fleet adapters to communicate with the rest of the rmf_core
systems in the ROS2 graph. Allowing you to:
-
Adapter/MockAdapter
: Communicate with rmf_core by adding fleets or requesting deliveries -
RobotCommandHandle
: Specify custom robot command handles that can take commands from thermf_core
packages and implement or execute the following robot behaviors:- Docking
File truncated at 100 lines see the full file
Changelog for package rmf_fleet_adapter_python
2.1.8 (2023-12-19)
2.1.7 (2023-08-10)
- Adding initiator and request time to booking (#284)
- Contributors: Aaron Chong
2.1.6 (2023-06-02)
- Switch to rst changelogs (#276)
- Contributors: Yadunund
2.1.5 (2023-05-20)
2.1.4 (2023-04-27)
2.1.3 (2023-04-26)
2.1.2 (2022-10-10)
2.1.0 (2022-10-03)
- Make async behaviors more robust: (#228)
- Allow fleet adapters to change schedule participant profiles: (#229)
- Allow robots to be decommissioned from the task dispatch system: (#233)
- Allow manual toggling of stubborn negotiation: (#196)
- Allow users to specify a custom update listener: (#198)
- Fix various segfaults related to pybind: (#205)
- Allow [ResponsiveWait]{.title-ref} to be enabled and disabled: (#209)
- Allow robot status to be overridden by the user: (#191)
- Add API to report status for `perform_action`: (#190)
- Changes for humble compatibility: (#215)
2.0.0 (2022-03-18)
No changes yet
1.5.0 (2022-02-14)
1.3.0 (2021-06-07)
- Modifications to support refactor of rmf_task (#51)
- Fix symlink-install compilation (#32)
- Updated package.xml (#26)
- Fix/rmf task ros2 cleanup (#21)
- Feature/python binding planner (#11)
- Adding reference_internal tag to function bindings that return raw pointers (#6)
- Feature/add unstable participant api (#11)
- Feature/add simple docs (#9)
- Support apis for task dispatcher (#10)
- differentiate functions to prevent overloading (#8)
- support ez traffic light (#7)
- Update/release 1.1 (#6)
- Implement binding for Duration optional
- Make integration test even stricter
- Add reference capture for posterity
- Add clarifying printouts and fix multi-timer bug
- Integrate compute_plan_starts into integration test
- Implement type tests
- Bind optional constructors and delivery msg interfaces
- Bind compute_plan_starts
- Add update_position overload
- Implement Python Bindings for rmf_fleet_adapter (#1)
- Contributors: Aaron Chong, Charayaphan Nakorn Boon Han, Geoffrey Biggs, Grey, Marco A. Gutiérrez, Yadu, methylDragon, youliang
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmf_demos_fleet_adapter | |
rmf_dev |
Launch files
Messages
Services
Plugins
Recent questions tagged rmf_fleet_adapter_python at Robotics Stack Exchange
![]() |
rmf_fleet_adapter_python package from rmf_ros2 repormf_fleet_adapter rmf_fleet_adapter_python rmf_task_ros2 rmf_traffic_ros2 rmf_websocket |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.1.8 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_ros2.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2024-06-14 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- methylDragon
- Marco A. Gutiérrez
- Yadunund
Authors
rmf_fleet_adapter_python
Python bindings for rmf_fleet_adapter
Introduction
The rmf_fleet_adapter
package defines C++ classes that can interact with rmf_core
. Specifically an Adapter
and a MockAdapter
class. This package provides bindings for both and most of their dependencies.
The main difference between rmf_fleet_adapter
and rmf_mock_adapter
is the fact that rmf_fleet_adapter
objects can interact with the ROS2 graph.
The MockAdapter
and Adapter
both do this. But the difference is that MockAdapter
can be instantiated with no issues, whereas Adapter
will block to wait for a scheduler node from rmf_core
to make its presence known.
Installation
- Place the
pybind_ament
andrmf_fleet_adapter_python
packages in your ROS2 workspace, and runcolcon build
as per normal.
Running Examples
Integration test script for rmf loop and delivery task:
ros2 run rmf_fleet_adapter_python test_adapter.py
You may then probe the effects on the ROS2 graph by subscribing to the following topics with ros2 topic echo <TOPIC_NAME>
:
-
: `/dispenser_requests`, `/dispenser_results`, `ingestor_requests`, `ingestor_results`, `/task_summaries`
Traffic Light Example
This will showcase an example of having 2 “traffic light” robots using RMF.
# First Terminal
ros2 run rmf_fleet_adapter_python schedule_blockade_nodes
# Second Terminal
ros2 run rmf_fleet_adapter_python traffic_light
For more details, please read this README.
Notes
- The py api bindings are mainly experimental. Use with caution.
- Current CI and docs gen are using rolling release of RMF
- More bindings, tests, and examples are welcome!
Using the Bindings
Ensure that you have built this package and sourced its environment. Then it is as simple as importing the module containing the Python bindings!
import rmf_adapter as adpt
# You may then check the available bindings
print(dir(adpt))
Description
Fleet adapters allow for interactions between
rmf_core
and robot fleets.High level pathing or task assignments can be issued to robots from
rmf_core
, and a fleet adapter will take those assignments and handle it in an implementation specific manner to direct individual robots to execute certain actions while monitoring and updatingrmf_core
on their high-level states viarmf_core
robot update handles.For more information it is helpful to look at the docs for rmf_core
Usage
The bound APIs are almost identical to the rmf_core
ones as well, so if the written documentation for these packages, and the Python usage examples in the scripts or tests are insufficient, you can also look into the relevant C++ implementations as a last resort.
Alternatively, you may also explore any interfaces with:
# To list any available members or methods
dir(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
# To see function signatures
help(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
Binding Details
This package contains Python bindings to C++ code that is found in rmf_core
and its associated packages. It was implemented using Pybind11.
Do note that as a result of that, if one needs to inspect the source, there are no Python implementations of any of the bound code, and it would be advisable to look directly into the appropriate rmf_fleet_adapter package, that contains the C++ code.. Additionally, C++ objects will get instantiated (generally) as references that can be used or called using the appropriate bound methods on the Python side.
Some of these bindings allow you to override virtual methods that would normally be called in the C++ side with Python code that you write in your Python scripts!
Features
There are enough functionalities bound to implement your own fleet adapters to communicate with the rest of the rmf_core
systems in the ROS2 graph. Allowing you to:
-
Adapter/MockAdapter
: Communicate with rmf_core by adding fleets or requesting deliveries -
RobotCommandHandle
: Specify custom robot command handles that can take commands from thermf_core
packages and implement or execute the following robot behaviors:- Docking
File truncated at 100 lines see the full file
Changelog for package rmf_fleet_adapter_python
2.1.8 (2023-12-19)
2.1.7 (2023-08-10)
- Adding initiator and request time to booking (#284)
- Contributors: Aaron Chong
2.1.6 (2023-06-02)
- Switch to rst changelogs (#276)
- Contributors: Yadunund
2.1.5 (2023-05-20)
2.1.4 (2023-04-27)
2.1.3 (2023-04-26)
2.1.2 (2022-10-10)
2.1.0 (2022-10-03)
- Make async behaviors more robust: (#228)
- Allow fleet adapters to change schedule participant profiles: (#229)
- Allow robots to be decommissioned from the task dispatch system: (#233)
- Allow manual toggling of stubborn negotiation: (#196)
- Allow users to specify a custom update listener: (#198)
- Fix various segfaults related to pybind: (#205)
- Allow [ResponsiveWait]{.title-ref} to be enabled and disabled: (#209)
- Allow robot status to be overridden by the user: (#191)
- Add API to report status for `perform_action`: (#190)
- Changes for humble compatibility: (#215)
2.0.0 (2022-03-18)
No changes yet
1.5.0 (2022-02-14)
1.3.0 (2021-06-07)
- Modifications to support refactor of rmf_task (#51)
- Fix symlink-install compilation (#32)
- Updated package.xml (#26)
- Fix/rmf task ros2 cleanup (#21)
- Feature/python binding planner (#11)
- Adding reference_internal tag to function bindings that return raw pointers (#6)
- Feature/add unstable participant api (#11)
- Feature/add simple docs (#9)
- Support apis for task dispatcher (#10)
- differentiate functions to prevent overloading (#8)
- support ez traffic light (#7)
- Update/release 1.1 (#6)
- Implement binding for Duration optional
- Make integration test even stricter
- Add reference capture for posterity
- Add clarifying printouts and fix multi-timer bug
- Integrate compute_plan_starts into integration test
- Implement type tests
- Bind optional constructors and delivery msg interfaces
- Bind compute_plan_starts
- Add update_position overload
- Implement Python Bindings for rmf_fleet_adapter (#1)
- Contributors: Aaron Chong, Charayaphan Nakorn Boon Han, Geoffrey Biggs, Grey, Marco A. Gutiérrez, Yadu, methylDragon, youliang
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmf_demos_fleet_adapter | |
rmf_dev |
Launch files
Messages
Services
Plugins
Recent questions tagged rmf_fleet_adapter_python at Robotics Stack Exchange
![]() |
rmf_fleet_adapter_python package from rmf_ros2 repormf_fleet_adapter rmf_fleet_adapter_python rmf_task_ros2 rmf_traffic_ros2 rmf_websocket |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.1.8 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_ros2.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2024-06-14 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- methylDragon
- Marco A. Gutiérrez
- Yadunund
Authors
rmf_fleet_adapter_python
Python bindings for rmf_fleet_adapter
Introduction
The rmf_fleet_adapter
package defines C++ classes that can interact with rmf_core
. Specifically an Adapter
and a MockAdapter
class. This package provides bindings for both and most of their dependencies.
The main difference between rmf_fleet_adapter
and rmf_mock_adapter
is the fact that rmf_fleet_adapter
objects can interact with the ROS2 graph.
The MockAdapter
and Adapter
both do this. But the difference is that MockAdapter
can be instantiated with no issues, whereas Adapter
will block to wait for a scheduler node from rmf_core
to make its presence known.
Installation
- Place the
pybind_ament
andrmf_fleet_adapter_python
packages in your ROS2 workspace, and runcolcon build
as per normal.
Running Examples
Integration test script for rmf loop and delivery task:
ros2 run rmf_fleet_adapter_python test_adapter.py
You may then probe the effects on the ROS2 graph by subscribing to the following topics with ros2 topic echo <TOPIC_NAME>
:
-
: `/dispenser_requests`, `/dispenser_results`, `ingestor_requests`, `ingestor_results`, `/task_summaries`
Traffic Light Example
This will showcase an example of having 2 “traffic light” robots using RMF.
# First Terminal
ros2 run rmf_fleet_adapter_python schedule_blockade_nodes
# Second Terminal
ros2 run rmf_fleet_adapter_python traffic_light
For more details, please read this README.
Notes
- The py api bindings are mainly experimental. Use with caution.
- Current CI and docs gen are using rolling release of RMF
- More bindings, tests, and examples are welcome!
Using the Bindings
Ensure that you have built this package and sourced its environment. Then it is as simple as importing the module containing the Python bindings!
import rmf_adapter as adpt
# You may then check the available bindings
print(dir(adpt))
Description
Fleet adapters allow for interactions between
rmf_core
and robot fleets.High level pathing or task assignments can be issued to robots from
rmf_core
, and a fleet adapter will take those assignments and handle it in an implementation specific manner to direct individual robots to execute certain actions while monitoring and updatingrmf_core
on their high-level states viarmf_core
robot update handles.For more information it is helpful to look at the docs for rmf_core
Usage
The bound APIs are almost identical to the rmf_core
ones as well, so if the written documentation for these packages, and the Python usage examples in the scripts or tests are insufficient, you can also look into the relevant C++ implementations as a last resort.
Alternatively, you may also explore any interfaces with:
# To list any available members or methods
dir(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
# To see function signatures
help(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
Binding Details
This package contains Python bindings to C++ code that is found in rmf_core
and its associated packages. It was implemented using Pybind11.
Do note that as a result of that, if one needs to inspect the source, there are no Python implementations of any of the bound code, and it would be advisable to look directly into the appropriate rmf_fleet_adapter package, that contains the C++ code.. Additionally, C++ objects will get instantiated (generally) as references that can be used or called using the appropriate bound methods on the Python side.
Some of these bindings allow you to override virtual methods that would normally be called in the C++ side with Python code that you write in your Python scripts!
Features
There are enough functionalities bound to implement your own fleet adapters to communicate with the rest of the rmf_core
systems in the ROS2 graph. Allowing you to:
-
Adapter/MockAdapter
: Communicate with rmf_core by adding fleets or requesting deliveries -
RobotCommandHandle
: Specify custom robot command handles that can take commands from thermf_core
packages and implement or execute the following robot behaviors:- Docking
File truncated at 100 lines see the full file
Changelog for package rmf_fleet_adapter_python
2.1.8 (2023-12-19)
2.1.7 (2023-08-10)
- Adding initiator and request time to booking (#284)
- Contributors: Aaron Chong
2.1.6 (2023-06-02)
- Switch to rst changelogs (#276)
- Contributors: Yadunund
2.1.5 (2023-05-20)
2.1.4 (2023-04-27)
2.1.3 (2023-04-26)
2.1.2 (2022-10-10)
2.1.0 (2022-10-03)
- Make async behaviors more robust: (#228)
- Allow fleet adapters to change schedule participant profiles: (#229)
- Allow robots to be decommissioned from the task dispatch system: (#233)
- Allow manual toggling of stubborn negotiation: (#196)
- Allow users to specify a custom update listener: (#198)
- Fix various segfaults related to pybind: (#205)
- Allow [ResponsiveWait]{.title-ref} to be enabled and disabled: (#209)
- Allow robot status to be overridden by the user: (#191)
- Add API to report status for `perform_action`: (#190)
- Changes for humble compatibility: (#215)
2.0.0 (2022-03-18)
No changes yet
1.5.0 (2022-02-14)
1.3.0 (2021-06-07)
- Modifications to support refactor of rmf_task (#51)
- Fix symlink-install compilation (#32)
- Updated package.xml (#26)
- Fix/rmf task ros2 cleanup (#21)
- Feature/python binding planner (#11)
- Adding reference_internal tag to function bindings that return raw pointers (#6)
- Feature/add unstable participant api (#11)
- Feature/add simple docs (#9)
- Support apis for task dispatcher (#10)
- differentiate functions to prevent overloading (#8)
- support ez traffic light (#7)
- Update/release 1.1 (#6)
- Implement binding for Duration optional
- Make integration test even stricter
- Add reference capture for posterity
- Add clarifying printouts and fix multi-timer bug
- Integrate compute_plan_starts into integration test
- Implement type tests
- Bind optional constructors and delivery msg interfaces
- Bind compute_plan_starts
- Add update_position overload
- Implement Python Bindings for rmf_fleet_adapter (#1)
- Contributors: Aaron Chong, Charayaphan Nakorn Boon Han, Geoffrey Biggs, Grey, Marco A. Gutiérrez, Yadu, methylDragon, youliang
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmf_demos_fleet_adapter | |
rmf_dev |
Launch files
Messages
Services
Plugins
Recent questions tagged rmf_fleet_adapter_python at Robotics Stack Exchange
![]() |
rmf_fleet_adapter_python package from rmf_ros2 repormf_fleet_adapter rmf_fleet_adapter_python rmf_task_ros2 rmf_traffic_ros2 rmf_websocket |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.1.8 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_ros2.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2024-06-14 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- methylDragon
- Marco A. Gutiérrez
- Yadunund
Authors
rmf_fleet_adapter_python
Python bindings for rmf_fleet_adapter
Introduction
The rmf_fleet_adapter
package defines C++ classes that can interact with rmf_core
. Specifically an Adapter
and a MockAdapter
class. This package provides bindings for both and most of their dependencies.
The main difference between rmf_fleet_adapter
and rmf_mock_adapter
is the fact that rmf_fleet_adapter
objects can interact with the ROS2 graph.
The MockAdapter
and Adapter
both do this. But the difference is that MockAdapter
can be instantiated with no issues, whereas Adapter
will block to wait for a scheduler node from rmf_core
to make its presence known.
Installation
- Place the
pybind_ament
andrmf_fleet_adapter_python
packages in your ROS2 workspace, and runcolcon build
as per normal.
Running Examples
Integration test script for rmf loop and delivery task:
ros2 run rmf_fleet_adapter_python test_adapter.py
You may then probe the effects on the ROS2 graph by subscribing to the following topics with ros2 topic echo <TOPIC_NAME>
:
-
: `/dispenser_requests`, `/dispenser_results`, `ingestor_requests`, `ingestor_results`, `/task_summaries`
Traffic Light Example
This will showcase an example of having 2 “traffic light” robots using RMF.
# First Terminal
ros2 run rmf_fleet_adapter_python schedule_blockade_nodes
# Second Terminal
ros2 run rmf_fleet_adapter_python traffic_light
For more details, please read this README.
Notes
- The py api bindings are mainly experimental. Use with caution.
- Current CI and docs gen are using rolling release of RMF
- More bindings, tests, and examples are welcome!
Using the Bindings
Ensure that you have built this package and sourced its environment. Then it is as simple as importing the module containing the Python bindings!
import rmf_adapter as adpt
# You may then check the available bindings
print(dir(adpt))
Description
Fleet adapters allow for interactions between
rmf_core
and robot fleets.High level pathing or task assignments can be issued to robots from
rmf_core
, and a fleet adapter will take those assignments and handle it in an implementation specific manner to direct individual robots to execute certain actions while monitoring and updatingrmf_core
on their high-level states viarmf_core
robot update handles.For more information it is helpful to look at the docs for rmf_core
Usage
The bound APIs are almost identical to the rmf_core
ones as well, so if the written documentation for these packages, and the Python usage examples in the scripts or tests are insufficient, you can also look into the relevant C++ implementations as a last resort.
Alternatively, you may also explore any interfaces with:
# To list any available members or methods
dir(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
# To see function signatures
help(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
Binding Details
This package contains Python bindings to C++ code that is found in rmf_core
and its associated packages. It was implemented using Pybind11.
Do note that as a result of that, if one needs to inspect the source, there are no Python implementations of any of the bound code, and it would be advisable to look directly into the appropriate rmf_fleet_adapter package, that contains the C++ code.. Additionally, C++ objects will get instantiated (generally) as references that can be used or called using the appropriate bound methods on the Python side.
Some of these bindings allow you to override virtual methods that would normally be called in the C++ side with Python code that you write in your Python scripts!
Features
There are enough functionalities bound to implement your own fleet adapters to communicate with the rest of the rmf_core
systems in the ROS2 graph. Allowing you to:
-
Adapter/MockAdapter
: Communicate with rmf_core by adding fleets or requesting deliveries -
RobotCommandHandle
: Specify custom robot command handles that can take commands from thermf_core
packages and implement or execute the following robot behaviors:- Docking
File truncated at 100 lines see the full file
Changelog for package rmf_fleet_adapter_python
2.1.8 (2023-12-19)
2.1.7 (2023-08-10)
- Adding initiator and request time to booking (#284)
- Contributors: Aaron Chong
2.1.6 (2023-06-02)
- Switch to rst changelogs (#276)
- Contributors: Yadunund
2.1.5 (2023-05-20)
2.1.4 (2023-04-27)
2.1.3 (2023-04-26)
2.1.2 (2022-10-10)
2.1.0 (2022-10-03)
- Make async behaviors more robust: (#228)
- Allow fleet adapters to change schedule participant profiles: (#229)
- Allow robots to be decommissioned from the task dispatch system: (#233)
- Allow manual toggling of stubborn negotiation: (#196)
- Allow users to specify a custom update listener: (#198)
- Fix various segfaults related to pybind: (#205)
- Allow [ResponsiveWait]{.title-ref} to be enabled and disabled: (#209)
- Allow robot status to be overridden by the user: (#191)
- Add API to report status for `perform_action`: (#190)
- Changes for humble compatibility: (#215)
2.0.0 (2022-03-18)
No changes yet
1.5.0 (2022-02-14)
1.3.0 (2021-06-07)
- Modifications to support refactor of rmf_task (#51)
- Fix symlink-install compilation (#32)
- Updated package.xml (#26)
- Fix/rmf task ros2 cleanup (#21)
- Feature/python binding planner (#11)
- Adding reference_internal tag to function bindings that return raw pointers (#6)
- Feature/add unstable participant api (#11)
- Feature/add simple docs (#9)
- Support apis for task dispatcher (#10)
- differentiate functions to prevent overloading (#8)
- support ez traffic light (#7)
- Update/release 1.1 (#6)
- Implement binding for Duration optional
- Make integration test even stricter
- Add reference capture for posterity
- Add clarifying printouts and fix multi-timer bug
- Integrate compute_plan_starts into integration test
- Implement type tests
- Bind optional constructors and delivery msg interfaces
- Bind compute_plan_starts
- Add update_position overload
- Implement Python Bindings for rmf_fleet_adapter (#1)
- Contributors: Aaron Chong, Charayaphan Nakorn Boon Han, Geoffrey Biggs, Grey, Marco A. Gutiérrez, Yadu, methylDragon, youliang
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmf_demos_fleet_adapter | |
rmf_dev |
Launch files
Messages
Services
Plugins
Recent questions tagged rmf_fleet_adapter_python at Robotics Stack Exchange
![]() |
rmf_fleet_adapter_python package from rmf_ros2 repormf_fleet_adapter rmf_fleet_adapter_python rmf_task_ros2 rmf_traffic_ros2 rmf_websocket |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.1.8 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_ros2.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2024-06-14 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- methylDragon
- Marco A. Gutiérrez
- Yadunund
Authors
rmf_fleet_adapter_python
Python bindings for rmf_fleet_adapter
Introduction
The rmf_fleet_adapter
package defines C++ classes that can interact with rmf_core
. Specifically an Adapter
and a MockAdapter
class. This package provides bindings for both and most of their dependencies.
The main difference between rmf_fleet_adapter
and rmf_mock_adapter
is the fact that rmf_fleet_adapter
objects can interact with the ROS2 graph.
The MockAdapter
and Adapter
both do this. But the difference is that MockAdapter
can be instantiated with no issues, whereas Adapter
will block to wait for a scheduler node from rmf_core
to make its presence known.
Installation
- Place the
pybind_ament
andrmf_fleet_adapter_python
packages in your ROS2 workspace, and runcolcon build
as per normal.
Running Examples
Integration test script for rmf loop and delivery task:
ros2 run rmf_fleet_adapter_python test_adapter.py
You may then probe the effects on the ROS2 graph by subscribing to the following topics with ros2 topic echo <TOPIC_NAME>
:
-
: `/dispenser_requests`, `/dispenser_results`, `ingestor_requests`, `ingestor_results`, `/task_summaries`
Traffic Light Example
This will showcase an example of having 2 “traffic light” robots using RMF.
# First Terminal
ros2 run rmf_fleet_adapter_python schedule_blockade_nodes
# Second Terminal
ros2 run rmf_fleet_adapter_python traffic_light
For more details, please read this README.
Notes
- The py api bindings are mainly experimental. Use with caution.
- Current CI and docs gen are using rolling release of RMF
- More bindings, tests, and examples are welcome!
Using the Bindings
Ensure that you have built this package and sourced its environment. Then it is as simple as importing the module containing the Python bindings!
import rmf_adapter as adpt
# You may then check the available bindings
print(dir(adpt))
Description
Fleet adapters allow for interactions between
rmf_core
and robot fleets.High level pathing or task assignments can be issued to robots from
rmf_core
, and a fleet adapter will take those assignments and handle it in an implementation specific manner to direct individual robots to execute certain actions while monitoring and updatingrmf_core
on their high-level states viarmf_core
robot update handles.For more information it is helpful to look at the docs for rmf_core
Usage
The bound APIs are almost identical to the rmf_core
ones as well, so if the written documentation for these packages, and the Python usage examples in the scripts or tests are insufficient, you can also look into the relevant C++ implementations as a last resort.
Alternatively, you may also explore any interfaces with:
# To list any available members or methods
dir(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
# To see function signatures
help(adpt.<WHATEVER_CLASS_YOU_WANT_TO_INSPECT>)
Binding Details
This package contains Python bindings to C++ code that is found in rmf_core
and its associated packages. It was implemented using Pybind11.
Do note that as a result of that, if one needs to inspect the source, there are no Python implementations of any of the bound code, and it would be advisable to look directly into the appropriate rmf_fleet_adapter package, that contains the C++ code.. Additionally, C++ objects will get instantiated (generally) as references that can be used or called using the appropriate bound methods on the Python side.
Some of these bindings allow you to override virtual methods that would normally be called in the C++ side with Python code that you write in your Python scripts!
Features
There are enough functionalities bound to implement your own fleet adapters to communicate with the rest of the rmf_core
systems in the ROS2 graph. Allowing you to:
-
Adapter/MockAdapter
: Communicate with rmf_core by adding fleets or requesting deliveries -
RobotCommandHandle
: Specify custom robot command handles that can take commands from thermf_core
packages and implement or execute the following robot behaviors:- Docking
File truncated at 100 lines see the full file
Changelog for package rmf_fleet_adapter_python
2.1.8 (2023-12-19)
2.1.7 (2023-08-10)
- Adding initiator and request time to booking (#284)
- Contributors: Aaron Chong
2.1.6 (2023-06-02)
- Switch to rst changelogs (#276)
- Contributors: Yadunund
2.1.5 (2023-05-20)
2.1.4 (2023-04-27)
2.1.3 (2023-04-26)
2.1.2 (2022-10-10)
2.1.0 (2022-10-03)
- Make async behaviors more robust: (#228)
- Allow fleet adapters to change schedule participant profiles: (#229)
- Allow robots to be decommissioned from the task dispatch system: (#233)
- Allow manual toggling of stubborn negotiation: (#196)
- Allow users to specify a custom update listener: (#198)
- Fix various segfaults related to pybind: (#205)
- Allow [ResponsiveWait]{.title-ref} to be enabled and disabled: (#209)
- Allow robot status to be overridden by the user: (#191)
- Add API to report status for `perform_action`: (#190)
- Changes for humble compatibility: (#215)
2.0.0 (2022-03-18)
No changes yet
1.5.0 (2022-02-14)
1.3.0 (2021-06-07)
- Modifications to support refactor of rmf_task (#51)
- Fix symlink-install compilation (#32)
- Updated package.xml (#26)
- Fix/rmf task ros2 cleanup (#21)
- Feature/python binding planner (#11)
- Adding reference_internal tag to function bindings that return raw pointers (#6)
- Feature/add unstable participant api (#11)
- Feature/add simple docs (#9)
- Support apis for task dispatcher (#10)
- differentiate functions to prevent overloading (#8)
- support ez traffic light (#7)
- Update/release 1.1 (#6)
- Implement binding for Duration optional
- Make integration test even stricter
- Add reference capture for posterity
- Add clarifying printouts and fix multi-timer bug
- Integrate compute_plan_starts into integration test
- Implement type tests
- Bind optional constructors and delivery msg interfaces
- Bind compute_plan_starts
- Add update_position overload
- Implement Python Bindings for rmf_fleet_adapter (#1)
- Contributors: Aaron Chong, Charayaphan Nakorn Boon Han, Geoffrey Biggs, Grey, Marco A. Gutiérrez, Yadu, methylDragon, youliang
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmf_demos_fleet_adapter | |
rmf_dev |