Decorators¶
Decorators are behaviours that manage a single child and provide common modifications to their underlying child behaviour (e.g. inverting the result). i.e. they provide a means for behaviours to wear different ‘hats’ depending on their context without a behaviour tree.
An example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #!/usr/bin/env python import py_trees.decorators import py_trees.display if __name__ == '__main__': root = py_trees.composites.Sequence(name="Life") timeout = py_trees.decorators.Timeout( name="Timeout", child=py_trees.behaviours.Success(name="Have a Beer!") ) failure_is_success = py_trees.decorators.Inverter( name="Inverter", child=py_trees.behaviours.Success(name="Busy?") ) root.add_children([failure_is_success, timeout]) py_trees.display.render_dot_tree(root)Decorators (Hats)
Decorators with very specific functionality:
py_trees.decorators.Condition()
py_trees.decorators.Inverter()
py_trees.decorators.OneShot()
py_trees.decorators.TimeOut()
And the X is Y family: