Skip to content

FlexBE/flexbe_webui

FlexBE WebUI

FlexBE WebUI provides a user interface to FlexBE, the Flexible Behavior Engine.

The tool provides a graphical editor for designing Hierarchical Finite State Machines (HFSMs) for execution by the onboard Flexible Behavior Engine. During runtime, the UI enables the operator to supervise the execution of the onboard behavior, provide input where necessary, and take control if needed in what we term "collaborative autonomy".

This UI uses native Python and FastAPI along with a JavaScript-based browser interface to interact with the Flexible Behavior Engine.

For detailed information on FlexBE, see the documentation.

This version supersedes the 4.0.0 version of the flexbe_app interface. The flexbe_webui has the look of the classic flexbe_app with some notable improvements:

  • Ability to select and adjust the endpoints and labels of transitions.
  • Improved handling of concurrent states and embedded states requiring operator feedback.
  • Improved handling of exiting with unsaved changes, or exiting while a behavior is running.
  • Option to save behaviors to your development src folder in your workspace (in addition to the install folder).
  • Native Python publishing and subscribing for easier UI development and debugging.
  • Exported JSON-based configuration text file.
  • Improved tab handling.
  • Improved panning of the canvas for larger state machines using Shift + arrow keys, plus Home and End.

Note: This version 4.1+ of flexbe_webui is designed to work with version 4.1+ of the flexbe_behavior_engine. If using an earlier 3.x.x version of flexbe_behavior_engine, use either the flexbe_app or the "beta-enhanced" branch of flexbe_webui. The FlexBE WebUI is not compatible with flexbe_behavior_engine version 2.x.x.

Quick Start

  1. Install dependencies and build your workspace.
  2. Run OCS:
    • ros2 launch flexbe_webui flexbe_ocs.launch.py
    • this default launch starts the desktop webui_client, which requires a local PySide6/QtWebEngine install; see docs/installation.md
  3. (Optional) Run headless and connect client separately:
    • terminal 1: ros2 launch flexbe_webui flexbe_ocs.launch.py headless:=true
    • terminal 2: ros2 run flexbe_webui webui_client

Documentation

Setup

Operation

Troubleshooting

Publications

Please use the following publications as references when using FlexBE and the FlexBE WebUI:


About

ROS 2 Web-based user interface (editor + runtime control) for the FlexBE behavior engine.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors