This 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 and Chooser 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
Detailed api reference and demo instructions can be found in the sphinx documentation for the package. There is also the py_trees_ros package which includes additional modules and documentation for using py_trees with ROS.
Devel | Kinetic | Indigo |
---|---|---|
Installation
From ppa on Ubuntu/Xenial
sudo apt install python-py-trees
From pypi:
pip install py_trees
Or in a sandboxed ROS Kinetic environment (coming soon):
sudo apt install ros-kinetic-py-trees
Development
You can develop in either a virtualenv (python style):
# python 2
source ./virtualenv.bash
# python 3
source ./virtualenv3.bash
or in a catkin environment alongside other ROS py-trees packages: