-
 
No version for distro humble. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro jazzy. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.
No version for distro noetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 1.3.2
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 galactic
Last Updated 2021-12-01
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

Web based RMF Demo Panel

Additional Links

No additional links.

Maintainers

  • youliang
  • Marco A. Gutiérrez

Authors

No additional authors.

RMF Demos Panel

Here we describe additional details of rmf_demos_panel. This package uses a simple web server to expose the essential RMF topics/services to users as web endpoints. Currently, this lite implementation is useful for task submission and observing status of on-going tasks and robots in RMF.

For a full-proof web application of RMF, please refer to rmf-web.

Note: not to be confused with the simple-api-server in rmf_demos and “prod version” of api-server in rmf-web

RMF Dependencies

  • rmf_task_ros2
  • rmf_fleet_msgs
  • rmf_demos_dashboard_resources

Setup rmf_demos_panel

python3 -m pip install flask-socketio
colcon build --packages-select rmf_demos_panel

Run

Test Run with office world

  1. Start Office World
ros2 launch rmf_demos_gz office.launch.xml

Simple CURL Test

# Submit Task (POST)
curl -X POST http://localhost:8083/submit_task \
-d '{"task_type":"Loop", "start_time":0, "description": {"start_name": "coe", "finish_name": "pantry", "num_loops":1}}' \
-H "Content-Type: application/json" 

# Get Task List (GET)
curl http://localhost:8083/task_list

rmf-panel-js

A front end dashboard, rmf-panel-js is also provided. This will will be the client for the rmf_demos’s api server.

Launch the a web dashboard: https://open-rmf.github.io/rmf-panel-js/


API Endpoints

Endpoints Type Parameters Description
/submit_task POST task description json This supports submission of task. This response with an assigned task_id is the task is accepted
/cancel_task POST task_id string Cancel an existing task in rmf.
/task_list GET NA Get list of task status in RMF (include active and terminated tasks)
/robot_list GET NA Get list of Robot states in RMF
/task_status SocketIO NA Constant broadcast of task list
/robot_states SocketIO NA Constant broadcast of robot list

Run Sample Tasks

Submit a list of tasks* On the right side column of the panel, users are able to select a file which consists of a list of
tasks. Example. for office world, load rmf_demos_tasks/rmf_demos_tasks/office_tasks.json. Once the tasks are populated in the box, hit submit!

More details on the format for the .json file is presented below.

For loop requests:

{"task_type":"Loop", "start_time":0, "priority":0, "description": {"num_loops":5, "start_name":"coe", "finish_name":"lounge"}}

For delivery requests:

{"task_type":"Delivery", "start_time":0, "priority":0, "description": {"option": "coke"}}

Internally, the option coke is mapped to a set of parameters required for a delivery request. This mapping can be seen in the rmf_demos_dashboard_resources/office/dashboard_config.json file.

For clean requests:

{"task_type":"Clean", "start_time":0, "priority":0, "description":{"cleaning_zone":"zone_2"}}

Submit a task* User can also submit a single task request via the request form on the top-left side of the page.

The latest robot states and task summaries will be reflected at the bottom portion of the GUI.


Note

  • Edit the dashboard_config.json to configure the input of the Demo World GUI Task Submission. The dashboard config file is located here: rmf_demos_dashboard_resources/$WORLD/dashboard_config.json.
  • server ip is configurable via RMF_DEMOS_API_SERVER_IP in the dashboard.launch.xml
  • The simple_api_server outputs and stores a summarized log: web_server.log.
  • cancel task will not be working. A fully functional cancel will be introduced in a future PR.
  • Rosdep will automatically install system version of python3-flask and python3-flask-cors. Yet we will download flask-socketio (5.x) separately via pip since the ubutuntu packaged version is too old.
CHANGELOG

Changelog for package rmf_demos_panel

1.3.0 (2021-09-08)

  • Add API endpoint to get the building map: #75

1.2.0 (2021-07-21)

  • update all namings with rmf_demos as prefix #1
  • Add priority selection in dispatch scripts and react ui #5
  • Cleaning task demo in Airport terminal #8
  • Update build.yaml #16
  • Minor refactoring of api-server #25

1.X.X (2021-01-14)

  • RMF web-based dashboard: #176

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

Name Deps
rmf_demos

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rmf_demos_panel at Robotics Stack Exchange

No version for distro melodic. Known supported distros are highlighted in the buttons above.