[About][Docs & Demos][Releases][Installation][PyTrees-Ros Ecosystem]
PyTrees is a python implementation of behaviour trees designed to facilitate the rapid development of medium sized decision making engines for use in fields like robotics. Brief feature list:
- Sequence, Selector, Parallel composites
- Blackboards for data sharing
- Python generators for smarter ticking over the tree graph
- Python decorators for enabling meta behaviours
- Render trees to dot graphs or visualise with ascii graphs on stdout
Core API documentation (also includes some explanation concerning the demo scripts):
If you're really looking for something more edifying than hello world examples, walk through the ros tutorials which incrementally step through the process of building a scenario handling layer for a robot.
There are also runtime visualisation tools - refer to the py_trees_ros_viewer/README as an example implementation of the underlying py_trees_js library.
0.y.x
- first open source releases1.0.x
- first stable release1.1.x
- improvements1.2.x
- improvements2.0.x
- blackboards v2 with namespaces, access permissions and key tracking2.1.x
- Chooser deprecated, api housekeeping
Devel | 2.1.x | 2.0.x | 1.2.x | 0.7.x | 0.6.x | |
---|---|---|---|---|---|---|
Sources | ||||||
Compatibility | ||||||
CI | ||||||
Documentation |
From ppa on Ubuntu/Bionic:
$ sudo apt install python3-py-trees
From pypi:
$ pip3 install py_trees
In a Python Virtual Environment:
$ git clone https://github.com/splintered-reality/py_trees
$ cd py_trees
$ source ./venv.bash
Build your own python3 deb:
$ git clone https://github.com/splintered-reality/py_trees
$ cd py_trees
$ source ./venv.bash
$ make deb
From the ROS2 ecosystem:
$ sudo apt install ros-<rosdistro>-py-trees
See the py_trees_ros
README for the latest information on pytrees packages in the ROS ecosystem and their status.