rmf_demos_fleet_adapter package from rmf_demos repormf_demos rmf_demos_assets rmf_demos_bridges rmf_demos_fleet_adapter rmf_demos_gz rmf_demos_maps rmf_demos_tasks |
|
Package Summary
Tags | No category tags. |
Version | 2.5.0 |
License | Apache License 2.0 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_demos.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2024-12-16 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Xi Yu Oh
- Yadunund
Authors
rmf_demos_fleet_adapter
This is an implementation of the python based fleet adapter template on selected RMF demo worlds: Hotel, Office, Airport Terminal and Clinic.
This fleet adapter integration relies on a fleet manager and a fleet adapter:
- The fleet manager comprises of specific endpoints that help relay commands to the fleet’s robots. It communicates with the robots over internal ROS 2 messages, while interfacing with the adapter via an API chosen by the user. For this demo fleet adapter implementation, we are using REST API with FastAPI framework.
- The fleet adapter receives commands from RMF and interfaces with the fleet manager to receive robot state information, as well as send task and navigation commands to the robots
Getting Started
Make sure the required dependencies are installed:
pip3 install fastapi uvicorn
# **Ensure the py libs version are 'fastapi>=0.79.0', 'uvicorn>=0.18.2'.
You can interact with the endpoints with FastAPI’s automatic documentation. First launch a demo world, then visit the base URL with /docs
appended at the end. Do take note that the port number for each demo fleet is specified in rmf_demos/rmf_demos/config/
.
Example
Launch the Office world:
source ~/rmf_ws/install/setup.bash
ros2 launch rmf_demos_gz_classic office.launch.xml
Then, visit http://127.0.0.1:22011/docs in your browser to interact with the endpoints.
Request/Response Schemas
Depending on the endpoint, the content may vary (i.e. some items may be removed), but a general structure is followed:
Request Body
{
"map_name": "string",
"task": "string",
"destination": {},
"data": {},
"speed_limit": 0.0
}
Response Body
{
"data": {},
"success": true,
"msg": ""
}1
API Endpoints
Note: The base URL in this section contains the port number 22011
dedicated to the tinyRobot fleet. The port number varies across different fleets.
1. Get Robot Status
The status
endpoint allows the fleet adapter to access robot state information such as its current position and battery level. This endpoint does not require a Request Body.
There are two ways to request the fleet robot status:
a. Get status of all robots in the fleet
Request URL: http://127.0.0.1:22011/open-rmf/rmf_demos_fm/status/
Response Body:
{
"data": {
"all_robots": [
{
"robot_name": "tinyRobot1",
"map_name": "L1",
"position": {
"x": 10.0,
"y": 20.0,
"yaw": 1.0
},
"battery": 100,
"last_completed_request": 2,
"destination_arrival": {
"cmd_id": 3,
"duration": 14.3
}
},
{
"robot_name": "tinyRobot2",
"map_name": "L1",
"position": {
"x": 5.0,
"y": 25.0,
"yaw": 1.4
},
"battery": 100,
"last_completed_request": 3,
"destination_arrival": null,
"replan": true
}
]
},
"success": true,
"msg": ""
}
b. Get status of specified robot in the fleet
Append a robot_name
query parameter to the end of the URL.
Request URL: http://127.0.0.1:22011/open-rmf/rmf_demos_fm/status/?robot_name=tinyRobot1
Response Body:
{
"data": {
"robot_name": "tinyRobot1",
"map_name": "L1",
"position": {
"x": 10.0,
"y": 20.0,
"yaw": 1.0
},
"battery": 100,
"last_completed_request": 2,
"destination_arrival": {
"cmd_id": 3,
"duration": 14.3
}
},
"success": true,
"msg": ""
}
2. Send Navigation Request
The navigate
endpoint allows the fleet adapter to send navigation waypoints to a specified robot. This endpoint requires a Request Body and a robot_name
query parameter.
Request URL: http://127.0.0.1:22011/open-rmf/rmf_demos_fm/navigate/?robot_name=tinyRobot1
Request Body:
{
"map_name": "L1",
"destination": {
"x": 7.0,
"y": 3.5,
"yaw": 0.5
},
"speed_limit": 0.0
}
Response Body:
{
"success": true,
"msg": ""
}
3. Stop Robot
The stop
endpoint allows the fleet adapter to command a specified robot to stop. This endpoint only requires a robot_name
query parameter.
Request URL: http://127.0.0.1:22011/open-rmf/rmf_demos_fm/stop/?robot_name=tinyRobot1
Response Body:
{
"success": true,
"msg": ""
}
4. Send Task Request
The start_activity
endpoint allows the fleet adapter to send task requests to a specified robot. This endpoint requires a Request Body and a robot_name
query parameter.
Request URL: http://127.0.0.1:22011/open-rmf/rmf_demos_fm/start_activity/?robot_name=tinyRobot1
Request Body:
{
"map_name": "L1",
"task": "clean_lobby"
}
The fleet manager will respond by indicating what path the robot will follow while performing the activity.
Response Body:
{
"success": true,
"msg": "",
"data": {
"path": {
"map_name": "L1",
"path": [ ... ]
}
}
}
Changelog for package rmf_demos_fleet_adapter
2.5.0 (2024-11-27)
- Add proto-reservation node as core part of RMF (#212)
- Remove nav graph for fleet manager and update Office world (#263)
- Fix existing style issues (#252)
- Fixes undefined variable in [FleetManager]{.title-ref} (#251)
- Add attach cart action (#225)
- Contributors: Arjo Chakravarty, Luca Della Vedova, Xiyu
2.4.0 (2024-06-12)
2.3.0 (2024-06-12)
- Port to harmonic (#206)
- Add task reassignment trigger in update loop (#228)
- Add a script for opening and closing lanes (#216)
- Corrected the way open_lanes and close_lanes functions are called (#220)
- Add all exec deps for rmf_demos_fleet_adapter (#211)
- Remove easy_fleet param from launch (#194)
- Update CI to rolling on main (#208)
- Contributors: Luca Della Vedova, Michael X. Grey, Xiyu, Yadunund, suchetanrs
2.2.3 (2023-12-20)
2.2.2 (2023-08-28)
- EasyFullControl integration with rmf_demos (#158)
- Contributors: Aaron Chong, Grey, Xiyu, Yadunund
2.2.1 (2023-08-10)
2.2.0 (2023-06-08)
2.1.0 (2023-06-06)
- Switch to rst changelogs (#182)
- Version updates from latest release synced to main (#167)
- Contributors: Esteban Martinena Guerrero, Yadunund
2.0.2 (2022-10-10)
2.0.1 (2022-09-29)
1.4.0 (2022-02-14)
- Provide an example adapter for a delivery robot with indoor-outdoor capabilities (#121)
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
launch_xml | |
rclpy | |
rmf_fleet_adapter_python | |
rmf_fleet_msgs | |
rmf_task_msgs | |
ament_copyright | |
ament_flake8 | |
ament_pep257 |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmf_demos |
Launch files
- launch/fleet_adapter.launch.xml
-
- use_sim_time [default: true]
- config_file
- nav_graph_file
- server_uri [default: ]
- output [default: screen]
Messages
Services
Plugins
Recent questions tagged rmf_demos_fleet_adapter at Robotics Stack Exchange
rmf_demos_fleet_adapter package from rmf_demos repormf_demos rmf_demos_assets rmf_demos_bridges rmf_demos_fleet_adapter rmf_demos_gz rmf_demos_maps rmf_demos_tasks |
|
Package Summary
Tags | No category tags. |
Version | 2.3.0 |
License | Apache License 2.0 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_demos.git |
VCS Type | git |
VCS Version | jazzy |
Last Updated | 2024-06-11 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Xi Yu Oh
- Yadunund
Authors
rmf_demos_fleet_adapter
This is an implementation of the python based fleet adapter template on selected RMF demo worlds: Hotel, Office, Airport Terminal and Clinic.
This fleet adapter integration relies on a fleet manager and a fleet adapter:
- The fleet manager comprises of specific endpoints that help relay commands to the fleet’s robots. It communicates with the robots over internal ROS 2 messages, while interfacing with the adapter via an API chosen by the user. For this demo fleet adapter implementation, we are using REST API with FastAPI framework.
- The fleet adapter receives commands from RMF and interfaces with the fleet manager to receive robot state information, as well as send task and navigation commands to the robots
Getting Started
Make sure the required dependencies are installed:
pip3 install fastapi uvicorn
# **Ensure the py libs version are 'fastapi>=0.79.0', 'uvicorn>=0.18.2'.
You can interact with the endpoints with FastAPI’s automatic documentation. First launch a demo world, then visit the base URL with /docs
appended at the end. Do take note that the port number for each demo fleet is specified in rmf_demos/rmf_demos/config/
.
Example
Launch the Office world:
source ~/rmf_ws/install/setup.bash
ros2 launch rmf_demos_gz_classic office.launch.xml
Then, visit http://127.0.0.1:22011/docs in your browser to interact with the endpoints.
Request/Response Schemas
Depending on the endpoint, the content may vary (i.e. some items may be removed), but a general structure is followed:
Request Body
{
"map_name": "string",
"task": "string",
"destination": {},
"data": {},
"speed_limit": 0.0
}
Response Body
{
"data": {},
"success": true,
"msg": ""
}1
API Endpoints
Note: The base URL in this section contains the port number 22011
dedicated to the tinyRobot fleet. The port number varies across different fleets.
1. Get Robot Status
The status
endpoint allows the fleet adapter to access robot state information such as its current position and battery level. This endpoint does not require a Request Body.
There are two ways to request the fleet robot status:
a. Get status of all robots in the fleet
Request URL: http://127.0.0.1:22011/open-rmf/rmf_demos_fm/status/
Response Body:
{
"data": {
"all_robots": [
{
"robot_name": "tinyRobot1",
"map_name": "L1",
"position": {
"x": 10.0,
"y": 20.0,
"yaw": 1.0
},
"battery": 100,
"last_completed_request": 2,
"destination_arrival": {
"cmd_id": 3,
"duration": 14.3
}
},
{
"robot_name": "tinyRobot2",
"map_name": "L1",
"position": {
"x": 5.0,
"y": 25.0,
"yaw": 1.4
},
"battery": 100,
"last_completed_request": 3,
"destination_arrival": null,
"replan": true
}
]
},
"success": true,
"msg": ""
}
b. Get status of specified robot in the fleet
Append a robot_name
query parameter to the end of the URL.
Request URL: http://127.0.0.1:22011/open-rmf/rmf_demos_fm/status/?robot_name=tinyRobot1
Response Body:
{
"data": {
"robot_name": "tinyRobot1",
"map_name": "L1",
"position": {
"x": 10.0,
"y": 20.0,
"yaw": 1.0
},
"battery": 100,
"last_completed_request": 2,
"destination_arrival": {
"cmd_id": 3,
"duration": 14.3
}
},
"success": true,
"msg": ""
}
2. Send Navigation Request
The navigate
endpoint allows the fleet adapter to send navigation waypoints to a specified robot. This endpoint requires a Request Body and a robot_name
query parameter.
Request URL: http://127.0.0.1:22011/open-rmf/rmf_demos_fm/navigate/?robot_name=tinyRobot1
Request Body:
{
"map_name": "L1",
"destination": {
"x": 7.0,
"y": 3.5,
"yaw": 0.5
},
"speed_limit": 0.0
}
Response Body:
{
"success": true,
"msg": ""
}
3. Stop Robot
The stop
endpoint allows the fleet adapter to command a specified robot to stop. This endpoint only requires a robot_name
query parameter.
Request URL: http://127.0.0.1:22011/open-rmf/rmf_demos_fm/stop/?robot_name=tinyRobot1
Response Body:
{
"success": true,
"msg": ""
}
4. Send Task Request
The start_activity
endpoint allows the fleet adapter to send task requests to a specified robot. This endpoint requires a Request Body and a robot_name
query parameter.
Request URL: http://127.0.0.1:22011/open-rmf/rmf_demos_fm/start_activity/?robot_name=tinyRobot1
Request Body:
{
"map_name": "L1",
"task": "clean_lobby"
}
The fleet manager will respond by indicating what path the robot will follow while performing the activity.
Response Body:
{
"success": true,
"msg": "",
"data": {
"path": {
"map_name": "L1",
"path": [ ... ]
}
}
}
Changelog for package rmf_demos_fleet_adapter
2.3.0 (2024-06-12)
- Port to harmonic (#206)
- Add task reassignment trigger in update loop (#228)
- Add a script for opening and closing lanes (#216)
- Corrected the way open_lanes and close_lanes functions are called (#220)
- Add all exec deps for rmf_demos_fleet_adapter (#211)
- Remove easy_fleet param from launch (#194)
- Update CI to rolling on main (#208)
- Contributors: Luca Della Vedova, Michael X. Grey, Xiyu, Yadunund, suchetanrs
2.2.3 (2023-12-20)
2.2.2 (2023-08-28)
- EasyFullControl integration with rmf_demos (#158)
- Contributors: Aaron Chong, Grey, Xiyu, Yadunund
2.2.1 (2023-08-10)
2.2.0 (2023-06-08)
2.1.0 (2023-06-06)
- Switch to rst changelogs (#182)
- Version updates from latest release synced to main (#167)
- Contributors: Esteban Martinena Guerrero, Yadunund
2.0.2 (2022-10-10)
2.0.1 (2022-09-29)
1.4.0 (2022-02-14)
- Provide an example adapter for a delivery robot with indoor-outdoor capabilities (#121)
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
launch_xml | |
rclpy | |
rmf_fleet_adapter_python | |
rmf_fleet_msgs | |
rmf_task_msgs | |
ament_copyright | |
ament_flake8 | |
ament_pep257 |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmf_demos |
Launch files
- launch/fleet_adapter.launch.xml
-
- use_sim_time [default: true]
- config_file
- nav_graph_file
- server_uri [default: ]
- output [default: screen]
Messages
Services
Plugins
Recent questions tagged rmf_demos_fleet_adapter at Robotics Stack Exchange
rmf_demos_fleet_adapter package from rmf_demos repormf_demos rmf_demos_assets rmf_demos_bridges rmf_demos_fleet_adapter rmf_demos_gz rmf_demos_maps rmf_demos_tasks |
|
Package Summary
Tags | No category tags. |
Version | 2.5.0 |
License | Apache License 2.0 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_demos.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2024-12-16 |
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
- Xi Yu Oh
- Yadunund
Authors
rmf_demos_fleet_adapter
This is an implementation of the python based fleet adapter template on selected RMF demo worlds: Hotel, Office, Airport Terminal and Clinic.
This fleet adapter integration relies on a fleet manager and a fleet adapter:
- The fleet manager comprises of specific endpoints that help relay commands to the fleet’s robots. It communicates with the robots over internal ROS 2 messages, while interfacing with the adapter via an API chosen by the user. For this demo fleet adapter implementation, we are using REST API with FastAPI framework.
- The fleet adapter receives commands from RMF and interfaces with the fleet manager to receive robot state information, as well as send task and navigation commands to the robots
Getting Started
Make sure the required dependencies are installed:
pip3 install fastapi uvicorn
# **Ensure the py libs version are 'fastapi>=0.79.0', 'uvicorn>=0.18.2'.
You can interact with the endpoints with FastAPI’s automatic documentation. First launch a demo world, then visit the base URL with /docs
appended at the end. Do take note that the port number for each demo fleet is specified in rmf_demos/rmf_demos/config/
.
Example
Launch the Office world:
source ~/rmf_ws/install/setup.bash
ros2 launch rmf_demos_gz_classic office.launch.xml
Then, visit http://127.0.0.1:22011/docs in your browser to interact with the endpoints.
Request/Response Schemas
Depending on the endpoint, the content may vary (i.e. some items may be removed), but a general structure is followed:
Request Body
{
"map_name": "string",
"task": "string",
"destination": {},
"data": {},
"speed_limit": 0.0
}
Response Body
{
"data": {},
"success": true,
"msg": ""
}1
API Endpoints
Note: The base URL in this section contains the port number 22011
dedicated to the tinyRobot fleet. The port number varies across different fleets.
1. Get Robot Status
The status
endpoint allows the fleet adapter to access robot state information such as its current position and battery level. This endpoint does not require a Request Body.
There are two ways to request the fleet robot status:
a. Get status of all robots in the fleet
Request URL: http://127.0.0.1:22011/open-rmf/rmf_demos_fm/status/
Response Body:
{
"data": {
"all_robots": [
{
"robot_name": "tinyRobot1",
"map_name": "L1",
"position": {
"x": 10.0,
"y": 20.0,
"yaw": 1.0
},
"battery": 100,
"last_completed_request": 2,
"destination_arrival": {
"cmd_id": 3,
"duration": 14.3
}
},
{
"robot_name": "tinyRobot2",
"map_name": "L1",
"position": {
"x": 5.0,
"y": 25.0,
"yaw": 1.4
},
"battery": 100,
"last_completed_request": 3,
"destination_arrival": null,
"replan": true
}
]
},
"success": true,
"msg": ""
}
b. Get status of specified robot in the fleet
Append a robot_name
query parameter to the end of the URL.
Request URL: http://127.0.0.1:22011/open-rmf/rmf_demos_fm/status/?robot_name=tinyRobot1
Response Body:
{
"data": {
"robot_name": "tinyRobot1",
"map_name": "L1",
"position": {
"x": 10.0,
"y": 20.0,
"yaw": 1.0
},
"battery": 100,
"last_completed_request": 2,
"destination_arrival": {
"cmd_id": 3,
"duration": 14.3
}
},
"success": true,
"msg": ""
}
2. Send Navigation Request
The navigate
endpoint allows the fleet adapter to send navigation waypoints to a specified robot. This endpoint requires a Request Body and a robot_name
query parameter.
Request URL: http://127.0.0.1:22011/open-rmf/rmf_demos_fm/navigate/?robot_name=tinyRobot1
Request Body:
{
"map_name": "L1",
"destination": {
"x": 7.0,
"y": 3.5,
"yaw": 0.5
},
"speed_limit": 0.0
}
Response Body:
{
"success": true,
"msg": ""
}
3. Stop Robot
The stop
endpoint allows the fleet adapter to command a specified robot to stop. This endpoint only requires a robot_name
query parameter.
Request URL: http://127.0.0.1:22011/open-rmf/rmf_demos_fm/stop/?robot_name=tinyRobot1
Response Body:
{
"success": true,
"msg": ""
}
4. Send Task Request
The start_activity
endpoint allows the fleet adapter to send task requests to a specified robot. This endpoint requires a Request Body and a robot_name
query parameter.
Request URL: http://127.0.0.1:22011/open-rmf/rmf_demos_fm/start_activity/?robot_name=tinyRobot1
Request Body:
{
"map_name": "L1",
"task": "clean_lobby"
}
The fleet manager will respond by indicating what path the robot will follow while performing the activity.
Response Body:
{
"success": true,
"msg": "",
"data": {
"path": {
"map_name": "L1",
"path": [ ... ]
}
}
}
Changelog for package rmf_demos_fleet_adapter
2.5.0 (2024-11-27)
- Add proto-reservation node as core part of RMF (#212)
- Remove nav graph for fleet manager and update Office world (#263)
- Fix existing style issues (#252)
- Fixes undefined variable in [FleetManager]{.title-ref} (#251)
- Add attach cart action (#225)
- Contributors: Arjo Chakravarty, Luca Della Vedova, Xiyu
2.4.0 (2024-06-12)
2.3.0 (2024-06-12)
- Port to harmonic (#206)
- Add task reassignment trigger in update loop (#228)
- Add a script for opening and closing lanes (#216)
- Corrected the way open_lanes and close_lanes functions are called (#220)
- Add all exec deps for rmf_demos_fleet_adapter (#211)
- Remove easy_fleet param from launch (#194)
- Update CI to rolling on main (#208)
- Contributors: Luca Della Vedova, Michael X. Grey, Xiyu, Yadunund, suchetanrs
2.2.3 (2023-12-20)
2.2.2 (2023-08-28)
- EasyFullControl integration with rmf_demos (#158)
- Contributors: Aaron Chong, Grey, Xiyu, Yadunund
2.2.1 (2023-08-10)
2.2.0 (2023-06-08)
2.1.0 (2023-06-06)
- Switch to rst changelogs (#182)
- Version updates from latest release synced to main (#167)
- Contributors: Esteban Martinena Guerrero, Yadunund
2.0.2 (2022-10-10)
2.0.1 (2022-09-29)
1.4.0 (2022-02-14)
- Provide an example adapter for a delivery robot with indoor-outdoor capabilities (#121)
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
launch_xml | |
rclpy | |
rmf_fleet_adapter_python | |
rmf_fleet_msgs | |
rmf_task_msgs | |
ament_copyright | |
ament_flake8 | |
ament_pep257 |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmf_demos |
Launch files
- launch/fleet_adapter.launch.xml
-
- use_sim_time [default: true]
- config_file
- nav_graph_file
- server_uri [default: ]
- output [default: screen]
Messages
Services
Plugins
Recent questions tagged rmf_demos_fleet_adapter at Robotics Stack Exchange
rmf_demos_fleet_adapter package from rmf_demos repormf_demos rmf_demos_assets rmf_demos_bridges rmf_demos_fleet_adapter rmf_demos_gz rmf_demos_maps rmf_demos_tasks |
|
Package Summary
Tags | No category tags. |
Version | 2.5.0 |
License | Apache License 2.0 |
Build type | AMENT_PYTHON |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/open-rmf/rmf_demos.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2024-12-16 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Xi Yu Oh
- Yadunund
Authors
rmf_demos_fleet_adapter
This is an implementation of the python based fleet adapter template on selected RMF demo worlds: Hotel, Office, Airport Terminal and Clinic.
This fleet adapter integration relies on a fleet manager and a fleet adapter:
- The fleet manager comprises of specific endpoints that help relay commands to the fleet’s robots. It communicates with the robots over internal ROS 2 messages, while interfacing with the adapter via an API chosen by the user. For this demo fleet adapter implementation, we are using REST API with FastAPI framework.
- The fleet adapter receives commands from RMF and interfaces with the fleet manager to receive robot state information, as well as send task and navigation commands to the robots
Getting Started
Make sure the required dependencies are installed:
pip3 install fastapi uvicorn
# **Ensure the py libs version are 'fastapi>=0.79.0', 'uvicorn>=0.18.2'.
You can interact with the endpoints with FastAPI’s automatic documentation. First launch a demo world, then visit the base URL with /docs
appended at the end. Do take note that the port number for each demo fleet is specified in rmf_demos/rmf_demos/config/
.
Example
Launch the Office world:
source ~/rmf_ws/install/setup.bash
ros2 launch rmf_demos_gz_classic office.launch.xml
Then, visit http://127.0.0.1:22011/docs in your browser to interact with the endpoints.
Request/Response Schemas
Depending on the endpoint, the content may vary (i.e. some items may be removed), but a general structure is followed:
Request Body
{
"map_name": "string",
"task": "string",
"destination": {},
"data": {},
"speed_limit": 0.0
}
Response Body
{
"data": {},
"success": true,
"msg": ""
}1
API Endpoints
Note: The base URL in this section contains the port number 22011
dedicated to the tinyRobot fleet. The port number varies across different fleets.
1. Get Robot Status
The status
endpoint allows the fleet adapter to access robot state information such as its current position and battery level. This endpoint does not require a Request Body.
There are two ways to request the fleet robot status:
a. Get status of all robots in the fleet
Request URL: http://127.0.0.1:22011/open-rmf/rmf_demos_fm/status/
Response Body:
{
"data": {
"all_robots": [
{
"robot_name": "tinyRobot1",
"map_name": "L1",
"position": {
"x": 10.0,
"y": 20.0,
"yaw": 1.0
},
"battery": 100,
"last_completed_request": 2,
"destination_arrival": {
"cmd_id": 3,
"duration": 14.3
}
},
{
"robot_name": "tinyRobot2",
"map_name": "L1",
"position": {
"x": 5.0,
"y": 25.0,
"yaw": 1.4
},
"battery": 100,
"last_completed_request": 3,
"destination_arrival": null,
"replan": true
}
]
},
"success": true,
"msg": ""
}
b. Get status of specified robot in the fleet
Append a robot_name
query parameter to the end of the URL.
Request URL: http://127.0.0.1:22011/open-rmf/rmf_demos_fm/status/?robot_name=tinyRobot1
Response Body:
{
"data": {
"robot_name": "tinyRobot1",
"map_name": "L1",
"position": {
"x": 10.0,
"y": 20.0,
"yaw": 1.0
},
"battery": 100,
"last_completed_request": 2,
"destination_arrival": {
"cmd_id": 3,
"duration": 14.3
}
},
"success": true,
"msg": ""
}
2. Send Navigation Request
The navigate
endpoint allows the fleet adapter to send navigation waypoints to a specified robot. This endpoint requires a Request Body and a robot_name
query parameter.
Request URL: http://127.0.0.1:22011/open-rmf/rmf_demos_fm/navigate/?robot_name=tinyRobot1
Request Body:
{
"map_name": "L1",
"destination": {
"x": 7.0,
"y": 3.5,
"yaw": 0.5
},
"speed_limit": 0.0
}
Response Body:
{
"success": true,
"msg": ""
}
3. Stop Robot
The stop
endpoint allows the fleet adapter to command a specified robot to stop. This endpoint only requires a robot_name
query parameter.
Request URL: http://127.0.0.1:22011/open-rmf/rmf_demos_fm/stop/?robot_name=tinyRobot1
Response Body:
{
"success": true,
"msg": ""
}
4. Send Task Request
The start_activity
endpoint allows the fleet adapter to send task requests to a specified robot. This endpoint requires a Request Body and a robot_name
query parameter.
Request URL: http://127.0.0.1:22011/open-rmf/rmf_demos_fm/start_activity/?robot_name=tinyRobot1
Request Body:
{
"map_name": "L1",
"task": "clean_lobby"
}
The fleet manager will respond by indicating what path the robot will follow while performing the activity.
Response Body:
{
"success": true,
"msg": "",
"data": {
"path": {
"map_name": "L1",
"path": [ ... ]
}
}
}
Changelog for package rmf_demos_fleet_adapter
2.5.0 (2024-11-27)
- Add proto-reservation node as core part of RMF (#212)
- Remove nav graph for fleet manager and update Office world (#263)
- Fix existing style issues (#252)
- Fixes undefined variable in [FleetManager]{.title-ref} (#251)
- Add attach cart action (#225)
- Contributors: Arjo Chakravarty, Luca Della Vedova, Xiyu
2.4.0 (2024-06-12)
2.3.0 (2024-06-12)
- Port to harmonic (#206)
- Add task reassignment trigger in update loop (#228)
- Add a script for opening and closing lanes (#216)
- Corrected the way open_lanes and close_lanes functions are called (#220)
- Add all exec deps for rmf_demos_fleet_adapter (#211)
- Remove easy_fleet param from launch (#194)
- Update CI to rolling on main (#208)
- Contributors: Luca Della Vedova, Michael X. Grey, Xiyu, Yadunund, suchetanrs
2.2.3 (2023-12-20)
2.2.2 (2023-08-28)
- EasyFullControl integration with rmf_demos (#158)
- Contributors: Aaron Chong, Grey, Xiyu, Yadunund
2.2.1 (2023-08-10)
2.2.0 (2023-06-08)
2.1.0 (2023-06-06)
- Switch to rst changelogs (#182)
- Version updates from latest release synced to main (#167)
- Contributors: Esteban Martinena Guerrero, Yadunund
2.0.2 (2022-10-10)
2.0.1 (2022-09-29)
1.4.0 (2022-02-14)
- Provide an example adapter for a delivery robot with indoor-outdoor capabilities (#121)
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
launch_xml | |
rclpy | |
rmf_fleet_adapter_python | |
rmf_fleet_msgs | |
rmf_task_msgs | |
ament_copyright | |
ament_flake8 | |
ament_pep257 |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmf_demos |
Launch files
- launch/fleet_adapter.launch.xml
-
- use_sim_time [default: true]
- config_file
- nav_graph_file
- server_uri [default: ]
- output [default: screen]