No version for distro bouncy. 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 melodic. 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 kinetic. Known supported distros are highlighted in the buttons above.

flexbe_app package from flexbe_app repo


Package Summary

Tags No category tags.
Version 2.1.0
License BSD
Build type CATKIN

Repository Summary

Checkout URI
VCS Type git
VCS Version master
Last Updated 2018-12-01

Package Description

flexbe_app provides a user interface (editor + runtime control) for the FlexBE behavior engine.

Additional Links


  • Philipp Schillinger


  • Philipp Schillinger

FlexBE App

User interface (editor + runtime control) for the FlexBE behavior engine.


Clone the following repos into your ROS workspace:

git clone  # if not already present
git clone

Build you workspace:

catkin_make # or catkin build

During the build process, the required nwjs binaries are automatically downloaded and extracted. To download the binaries manually instead, run the script bin/nwjs_install.


In order to create and prepare a new repository for behavior development, run the following script in your ROS workspace and pass it the name of your project or identifier:

rosrun flexbe_widget create_repo [your_project_name]

This will initialize a new local git repository with the correct workspace structure which you can then push to a desired remote location. Make sure that you build the workspace afterwards.


If desired, run the following command to create a shortcut in the application menu:

rosrun flexbe_app shortcut create
rosrun flexbe_app shortcut remove  # if you want to remove it

Use the shortcut or the following command to run the FlexBE App alone, i.e., for only developing behaviors, but not executing them:

rosrun flexbe_app run_app --offline

Omitting the --offline arg will let the App try to connect to ROS. You can manually connect/disconnect the App in the Configuration view.

Use the following launch file to run FlexBE's operator control station, i.e., everything FlexBE requires on the operator machine for controlling behavior execution:

roslaunch flexbe_app flexbe_ocs.launch
roslaunch flexbe_onboard behavior_onboard.launch  # counterpart expected to run on the robot

Use the following launch file to run both of the above for local behavior execution:

roslaunch flexbe_app flexbe_full.launch

Backwards Compatibility

The FlexBE App in this repository replaces the previous flexbe_chrome_app. Please refer to the following announcement for an overview of the most important changes: Future of the FlexBE Chrome App

If you have been using FlexBE already with the old Chrome app, you can convert the content of your repository according to the structure defined below. Besides adding the export statement to your state packages, you can automate this conversion by running the FlexBE App. If no behavior package is detected, it will suggest you to initialize one.

Deprecated Chrome App branch: deprecated/chrome_app

Please checkout the above branch on all repos if available for a best-effort support of the deprecated Chrome app. However, please consider to update as soon as possible according to the instructions below to ensure that the system will remain working in the future and to receive all updates.

Please note that the way how state and behavior packages are detected has changed and breaks direct compatibility. Follow the instructions below to make the required changes. Behavior packages can also be converted automatically by the new FlexBE App.

State packages

A package is a state package for FlexBE if its package.xml declares the export of flexbe_states:

    <flexbe_states />

It is then expected to provide Python class definitions as described in Developing Basic States. Example: flexbe_states. Adding the above export statement is the only change to previous versions.

Behavior packages

A behavior package contains the code and manifest files generated by the FlexBE App. Usually, you do not need to modify it manually. Again, a behavior package is identified by an export statement in its package.xml:

    <flexbe_behaviors />

If no package in the ROS_PACKAGE_PATH contains such an export statement, the FlexBE App will suggest to initialize one of the existing packages as behavior package. Doing so will add the export statement and create the correct structure. If the chosen package already contains behavior manifests, the referenced behaviors can be automatically imported. The old behavior packages and manifests (all manifests outside the manifest folder, e.g., those inside the behaviors folder) can be removed afterwards.

In order to create a completely new behavior package, create an empty ROS package and then use the FlexBE App to initialize it.

A behavior package is expected to provide a manifest folder which contains the manifests for all provided behaviors. The behaviors are located in a Python module named like the package and contained in the src folder.


Changelog for package flexbe_app

2.1.0 (2018-12-01)

  • Initial ROS release
  • Contributors: Philipp Schillinger

2.0.11 (2018-12-01)

  • Merge remote-tracking branch 'origin/develop'
  • Add shortcut support for sourcing
  • Fix #8: Correct typo in synthesis feedback
  • Fix #15: Correctly handle duplicate state class definitions
  • Merge remote-tracking branch 'origin/develop'
  • Merge remote-tracking branch 'origin/master' into develop
  • Hide detailed install output
  • Increment nwjs version
  • Merge branch 'feature/add_tests' into develop
  • Update manifest
  • Create .travis.yml
  • Set test_report to executable
  • Add test routine
  • Merge remote-tracking branch 'origin/feature/install_support' into develop
  • Fix #25: Use python path instead of package path
  • Update manifest
  • Prevent behavior modifications when loading from install space
  • Move package python path out of package parser
  • Fixes issue #24 using first proposed solution.
  • implementing ROS.getPackagePythonPath similarly to IO.PackageParser's getPythonPath
  • Use package path for manual section update
  • Merge branch 'tu-darmstadt-ros-pkg-master' into feature/install_support
  • Adjust catkin install paths for rospack use
  • Merge branch 'master' of into tu-darmstadt-ros-pkg-master Conflicts: CMakeLists.txt bin/run_app src/io/io_behaviorloader.js src/io/io_packageparser.js
  • Parse installed packages (see #19)
  • Merge pull request #18 from meyerj/feature/install-rules Add cmake install rules and use rospack to find nw executable
  • fix state path to correct generated import statements
  • make locating behavior files work in install and devel setups
  • make behaviors work in install space
  • Add cmake install rules and use rospack to find nw executable
  • Fix #14: Update state definition only for python files but any event type
  • Merge pull request #13 from FlexBE/feature/state_update Update states when source code changes (see #10)
  • Update manifest
  • Update states when source code changes (see #10)
  • Contributors: Dorian Scholz, Dustin Gooding, Johannes Meyer, Philipp Schillinger

2.0.10 (2018-11-24)

  • Merge remote-tracking branch 'origin/develop'
  • Contributors: Philipp Schillinger

2.0.6 (2018-03-04)

  • Merge remote-tracking branch 'origin/develop'
  • Make behavior name processing more robust (fix team-vigir/flexbe_behavior_engine#51)
  • Update manifest
  • Fix #12: Improved responsiveness of connecting transitions
  • Fix #9: Correctly reset transitions to outcomes and add removal
  • Remove requirement of keyring access
  • Merge remote-tracking branch 'origin/feature/autoinstall' into develop
  • Merge remote-tracking branch 'origin/master' into feature/autoinstall
  • Install nwjs on running catkin build
  • Removed nwjs files and added install to first execution
  • Contributors: Philipp Schillinger

2.0.5 (2017-10-01)

  • Several minor additions and fixes
  • Update manifest
  • Can select to use default values for behavior input keys (see team-vigir/flexbe_behavior_engine#38)
  • Fix #7: Whitespace before first state parameter now optional
  • Fix #6: Compare float value not int for parameter value bounds
  • Enable utf-8 encoding in generated behaviors
  • Fix #5: Negative values for numeric parameters
  • Added support for state and behavior packages in editor
  • Contributors: Philipp Schillinger

2.0.2 (2017-04-23)

  • Update manifest
  • Add button to view state source code
  • Fix: use correct attribute to determine drag indicator width
  • Fix: stop that states jump to zero if move icon is only clicked
  • Fix: creating a new behavior fails when onboard engine is running (see #4)
  • Fix: creating a new behavior fails without error log (see #4)
  • Fixed missing yaml import in ROS action client
  • Support opening multiple windows
  • Only update drawing on outcome request if available (fixes #2)
  • Contributors: Philipp Schillinger

2.0.1 (2017-02-25)

  • Update manifest
  • Fix to avoid placement of new states under container path label
  • Fixed function reference for visual update of autonomy level change
  • Removed deprecated roslib import
  • Contributors: Philipp Schillinger

2.0.0 (2017-01-16)

  • Update
  • Made required files executable
  • Initial commit of software
  • Update
  • Initial commit
  • Contributors: Philipp Schillinger

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files


No message files found.


No service files found


No plugins found.

Recent questions tagged flexbe_app at

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