splintered-reality/py_trees
Python implementation of behaviour trees.
What it solves
PyTrees simplifies the creation of medium-sized decision-making engines, particularly for robotics, by providing a structured way to organize complex behaviors into manageable trees.
How it works
It implements behavior trees, allowing developers to build logic using a variety of components:
- Core Components: Uses Behaviours, Decorators, Sequences, Selectors, and Parallels to define logic flow.
- Data Management: Employs Blackboards for sharing data across different parts of the tree.
- Declarative Definitions: Supports an XML parser and a ports API for defining behaviors through configuration rather than just code.
- Visualization: Can render trees as ASCII/Unicode in the terminal or serialize them into dot graphs for visual analysis.
Who it’s for
It is designed for developers building decision-making layers for robots or other systems requiring structured, hierarchical control logic.
Highlights
- Comprehensive library of built-in behaviors, decorators, and idioms.
- Support for typed input/output ports.
- Ability to define behavior trees via XML.
- Integration options for ROS 2 via companion libraries.
Related
- Project
- Project
- Project
- Project
- Project