Package Summary

Tags No category tags.
Version 1.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 galactic
Last Updated 2021-09-08
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.

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 office.launch.xml

Launch the dashboard

firefox localhost:5000

Note that this will download the latest webpack "GUI" hosted on rmf_demos github page. Thus internet is required when you are running the gui_server for the first time.


Development Mode (local npm compilation)

Currently the webpack bundle is located here https://open-rmf.github.io/rmf_demos/VERSION/app.bundle.js. Thus this is useful for personnel who would like to compile a local react webpack bundle (for testing). Else you can skip this portion.

Dependencies:

  • npm (node version > 12, see: node)

Compilation

cd ~/rmf_ws

# change the npm prefix according to the path to "rmf_demos_panel/static/"
npm install --prefix src/demonstrations/rmf_demos/rmf_demos_panel/rmf_demos_panel/static
npm run build --prefix src/demonstrations/rmf_demos/rmf_demos_panel/rmf_demos_panel/static

colcon build --packages-select rmf_demos_panel

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

Simple CURL Test

# Submit Task (POST)
curl -X POST http://localhost:8080/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:8080/task_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.

Create your own GUI

There are 2 web-based server running behind the scene, namely:

  1. gui_server (port 5000): Providing the static gui to the web client. Non RMF dependent
  2. api_server (port 8080): Hosting all endpoints for gui clients to interact with RMF

To create your own custom GUI, you will only require to replace the current gui_server package with your own custom implementation, . The api_server remains the same.


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 WEB_SERVER_IP_ADDRESS in the dashboard.launch.xml
  • The 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.
  • To purely run GUI server (without ros for testing), run :
  export DASHBOARD_CONFIG_PATH=src/rmf/rmf_demos/rmf_demos_dashboard_resources/office/dashboard_config.json
  python src/rmf/rmf_demos/rmf_demos_panel/rmf_demos_panel/gui_server.py
  # Then, access localhost:5000 on browser

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

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Dependant Packages

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 answers.ros.org

Package Summary

Tags No category tags.
Version 1.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 foxy
Last Updated 2021-09-08
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.

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 office.launch.xml

Launch the dashboard

firefox localhost:5000

Note that this will download the latest webpack "GUI" hosted on rmf_demos github page. Thus internet is required when you are running the gui_server for the first time.


Development Mode (local npm compilation)

Currently the webpack bundle is located here https://open-rmf.github.io/rmf_demos/VERSION/app.bundle.js. Thus this is useful for personnel who would like to compile a local react webpack bundle (for testing). Else you can skip this portion.

Dependencies:

  • npm (node version > 12, see: node)

Compilation

cd ~/rmf_ws

# change the npm prefix according to the path to "rmf_demos_panel/static/"
npm install --prefix src/demonstrations/rmf_demos/rmf_demos_panel/rmf_demos_panel/static
npm run build --prefix src/demonstrations/rmf_demos/rmf_demos_panel/rmf_demos_panel/static

colcon build --packages-select rmf_demos_panel

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

Simple CURL Test

# Submit Task (POST)
curl -X POST http://localhost:8080/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:8080/task_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.

Create your own GUI

There are 2 web-based server running behind the scene, namely:

  1. gui_server (port 5000): Providing the static gui to the web client. Non RMF dependent
  2. api_server (port 8080): Hosting all endpoints for gui clients to interact with RMF

To create your own custom GUI, you will only require to replace the current gui_server package with your own custom implementation, . The api_server remains the same.


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 WEB_SERVER_IP_ADDRESS in the dashboard.launch.xml
  • The 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.
  • To purely run GUI server (without ros for testing), run :
  export DASHBOARD_CONFIG_PATH=src/rmf/rmf_demos/rmf_demos_dashboard_resources/office/dashboard_config.json
  python src/rmf/rmf_demos/rmf_demos_panel/rmf_demos_panel/gui_server.py
  # Then, access localhost:5000 on browser

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

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Dependant Packages

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 answers.ros.org

Package Summary

Tags No category tags.
Version 1.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 main
Last Updated 2021-09-08
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.

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 office.launch.xml

Launch the dashboard

firefox localhost:5000

Note that this will download the latest webpack "GUI" hosted on rmf_demos github page. Thus internet is required when you are running the gui_server for the first time.


Development Mode (local npm compilation)

Currently the webpack bundle is located here https://open-rmf.github.io/rmf_demos/VERSION/app.bundle.js. Thus this is useful for personnel who would like to compile a local react webpack bundle (for testing). Else you can skip this portion.

Dependencies:

  • npm (node version > 12, see: node)

Compilation

cd ~/rmf_ws

# change the npm prefix according to the path to "rmf_demos_panel/static/"
npm install --prefix src/demonstrations/rmf_demos/rmf_demos_panel/rmf_demos_panel/static
npm run build --prefix src/demonstrations/rmf_demos/rmf_demos_panel/rmf_demos_panel/static

colcon build --packages-select rmf_demos_panel

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

Simple CURL Test

# Submit Task (POST)
curl -X POST http://localhost:8080/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:8080/task_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.

Create your own GUI

There are 2 web-based server running behind the scene, namely:

  1. gui_server (port 5000): Providing the static gui to the web client. Non RMF dependent
  2. api_server (port 8080): Hosting all endpoints for gui clients to interact with RMF

To create your own custom GUI, you will only require to replace the current gui_server package with your own custom implementation, . The api_server remains the same.


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 WEB_SERVER_IP_ADDRESS in the dashboard.launch.xml
  • The 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.
  • To purely run GUI server (without ros for testing), run :
  export DASHBOARD_CONFIG_PATH=src/rmf/rmf_demos/rmf_demos_dashboard_resources/office/dashboard_config.json
  python src/rmf/rmf_demos/rmf_demos_panel/rmf_demos_panel/gui_server.py
  # Then, access localhost:5000 on browser

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

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Dependant Packages

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 answers.ros.org

No version for distro noetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.
No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.