Skip to content

This is a Behavior Tree library meant to be an alternative to SMACH, FlexBE and the like. It includes a ReactJS-based web GUI and all the building blocks you need to build moderately advanced mission control Behavior Trees without writing a single line of code!

License

Notifications You must be signed in to change notification settings

fzi-forschungszentrum-informatik/ros2_ros_bt_py

Repository files navigation

Welcome to ros_bt_py!

ROS Industrial CI codecov Documentation

This is a Behavior Tree library meant to be an alternative to BehaviorTree.cpp, SMACH, FlexBE and the like.

It includes a ReactJS-based web GUI and all the building blocks you need to build moderately advanced mission control Behavior Trees without writing a single line of code!

Installation

To actually start using ros_bt_py, you need to install its dependencies first:

$ cd colcon_workspace
$ rosdep install --from-paths src --ignore-src -r -y

Then you can just build the package with your prefered method i.e. colcon build

Note: Do not build the workspace using --symlink-install as this is currently not working with generate_parameter_library. You will get an error when running ModuleNotFoundError: No module named 'ros_bt_py.parameters'.

Running

The command

$ ros2 launch ros_bt_py ros_bt_py.launch.py enable_web_interface:=True

will start a BT server and the rosbridge and webserver needed for the GUI. Afterwards, you can open http://localhost:8085/index.html to use the editor.

Launch Options

Launch Argument Description Default Value
robot_namespace Namespace to launch all ros_bt_py nodes in! /
node_modules List of python packages that contain nodes to be loaded on startup. "['ros_bt_py.nodes','ros_bt_py.ros_nodes']"
tree_storage_paths List of storage paths for trees. "['$HOME/.ros']"
enable_web_interface Start web GUI on startup. False
show_traceback_on_exception Show error traceback when an exception rises. True
diagnostics_frequency_hz Publishing frequency for diagnostics msgs. 1.0
load_default_tree Load the default tree on startup! False
load_default_tree_permissive Load the default tree in permissive mode on startup! False
default_tree_path Path to the default tree to load on startup!
default_tree_tick_frequency_hz Frequency with which to tick the default tree loaded on startup! 10.0
default_tree_control_command Command to execute per default after loading the default tree on startup! 2
web_server_port Port to use for the web interface. 8085
web_server_address IP address to use for the web interface. Default value uses all IP addresses of the host. 0.0.0.0

Stand-alone Web Interface

The web interface can be launched stand alone of the library, using the following command:

$ ros2 launch ros_bt_py_web_gui ros_bt_py_web_gui.launch.py web_server_port:=8085 web_server_address:=0.0.0.0

About

This is a Behavior Tree library meant to be an alternative to SMACH, FlexBE and the like. It includes a ReactJS-based web GUI and all the building blocks you need to build moderately advanced mission control Behavior Trees without writing a single line of code!

Topics

Resources

License

Stars

Watchers

Forks

Languages