Giter Club home page Giter Club logo

ybachmann / ros2_ros_bt_py Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fzi-forschungszentrum-informatik/ros2_ros_bt_py

1.0 0.0 0.0 3.05 MB

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: BSD 3-Clause "New" or "Revised" License

Python 97.53% Makefile 1.24% HTML 0.15% CMake 1.07%

ros2_ros_bt_py's Introduction

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

ros2_ros_bt_py's People

Contributors

oberacda avatar fmauch avatar mdeitersen avatar nspielbau avatar t-schnell avatar

Stargazers

Germanstreetstyle avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.