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

Folders and files

NameName
Last commit message
Last commit date
Oct 28, 2024
Oct 28, 2024
Apr 5, 2024
Jul 10, 2024
Jul 12, 2023
Jul 24, 2023
Dec 18, 2023
Dec 18, 2023
Oct 28, 2024
Mar 13, 2024
Dec 18, 2023
Dec 20, 2023

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!

Documentation

The main documentation effort is found in the docfolder. Simply execute the following commands in your shell to get browsable HTML documentation, including some tutorials:

$ cd ros_bt_py/doc
$ make html
$ cd build
$ python -m http.server & xdg-open http://localhost:8000/html

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']"
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