ros2_ros_bt_py
                                
                                 ros2_ros_bt_py copied to clipboard
                                
                                    ros2_ros_bt_py copied to clipboard
                            
                            
                            
                        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...
Welcome to ros_bt_py!
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