py_trees package from py_trees repo

py_trees

Package Summary

Tags No category tags.
Version 1.1.0
License BSD
Build type AMENT_PYTHON
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/splintered-reality/py_trees.git
VCS Type git
VCS Version release/1.1.x
Last Updated 2019-03-24
Dev Status DEVELOPED
Released RELEASED

Package Description

Pythonic implementation of behaviour trees.

Additional Links

Maintainers

  • Daniel Stonier

Authors

  • Daniel Stonier
  • Michal Staniaszek
  • Naveed Usmani

Py Trees

[About][Status][Installation][Demos & Tutorials][PyTrees-Ros Ecosystem]


About

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 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

Status

Devel 1.1.x 0.6.x 0.5.x
Sources devel 1.1.x 0.6.x 0.5.x
Compatibility Python 3.6 Python 3.6 Python 2.7 Python 2.7
Continuous Integration devel-Status 1.1.x-Status melodic-Status kinetic-Status
Documentation devel-Docs 1.1.x-Docs 0.6.x-Docs 0.5.x-Docs

Installation

From ppa on Ubuntu/Bionic:

$ sudo apt install python3-py-trees

From pypi:

$ pip install py_trees

In a Python Virtual Environment:

$ git clone https://github.com/splintered-reality/py_trees
$ cd py_trees
$ source ./virtualenv.bash

Build your own python3 deb:

$ git clone https://github.com/splintered-reality/py_trees
$ cd py_trees
$ source ./virtualenv.bash
$ make deb

From the ROS2 ecosystem:

$ sudo apt install ros-<crystal>-py-trees

Demos and Tutorials

devel 1.1.x 0.6.x

PyTrees-ROS Ecosystem

ROS2 Crystal ROS1 Melodic Kinetic
py_trees 1.1.x
Build Status
py_trees 0.6.x
Build Status
Docs Status
0.5.x
Build Status
Docs Status
py_trees_ros_interfaces 1.1.x
Build Status
py_trees_msgs 0.3.x
Build Status
Docs Status
0.3.x
Build Status
Docs Status
py_trees_ros pre-1.0.x py_trees_ros 0.5.x
Build Status
Docs Status
0.5.x
Build Status
Docs Status
py_trees_ros_tutorials 1.0.x - -
- rqt_py_trees 0.3.x
Build Status
0.3.x
Build Status
CHANGELOG

Release Notes

1.1.0 (2019-03-19)

Breaking API

  • [display] print_ascii_tree -> ascii_tree, #178.
  • [display] generate_pydot_graph -> dot_graph, #178.
  • [trees] tick_tock(sleep_ms, ..) -> tick_tock(period_ms, ...), #182.

New Features

  • [trees] add missing add_visitor method
  • [trees] flexible setup() for children via kwargs
  • [trees] convenience method for ascii tree debugging
  • [display] highlight the tip in ascii tree snapshots

Bugfixes

  • [trees] threaded timers for setup (avoids multiprocessing problems)
  • [behaviour|composites] bugfix tip behaviour, add tests
  • [display] correct first indent when non-zero in ascii_tree
  • [display] apply same formatting to root as children in ascii_tree

1.0.7 (2019-xx-yy)

  • [display] optional arguments for generate_pydot_graph

1.0.6 (2019-03-06)

  • [decorators] fix missing root feedback message in ascii graphs

1.0.5 (2019-02-28)

  • [decorators] fix timeout bug that doesn\'t respect a child\'s last tick

1.0.4 (2019-02-26)

  • [display] drop spline curves, it\'s buggy with graphviz 2.38

1.0.3 (2019-02-13)

  • [visitors] winds of change visitor and logging demo

1.0.2 (2019-02-13)

  • [console] fallbacks for unicode chars when (UTF-8) encoding cannot support them

1.0.1 (2018-02-12)

  • [trees] don\'t use multiprocess on setup if not using timeouts

1.0.0 (2019-01-18)

Breaking API

  • [behaviour] setup() no longer returns a boolean, catch exceptions instead, #143.
  • [behaviour] setup() no longer takes timeouts, responsibility moved to BehaviourTree, #148.
  • [decorators] new-style decorators found in py_trees.decorators
  • [decorators] new-style decorators stop their running child on completion (SUCCESS||FAILURE)
  • [decorators] old-style decorators in py_trees.meta deprecated

New Features

  • [blackboard] added a method for clearing the entire blackboard (useful for tests)
  • [composites] raise TypeError when children\'s setup methods don\'t return a bool (common mistake)
  • [composites] new parallel policies, SuccessOnAll, SuccessOnSelected
  • [decorators] oneshot policies for activating on completion or successful completion only
  • [meta] behaviours from functions can now automagically generate names

0.8.x (2018-10-18)

Breaking API

  • Lower level namespace types no longer exist (PR117), e.g. py_trees.Status{.sourceCode} -> py_trees.common.Status{.sourceCode}
  • Python2 support dropped

New Features

  • [idioms] \'Pick Up Where You Left Off\'
  • [idioms] \'OneShot\'

0.8.0 (2018-10-18)

  • [infra] shortcuts to types in __init__.py removed (PR117)
  • [bugfix] python3 rosdeps
  • [idioms] pick_up_where_you_left_off added

0.7.5 (2018-10-10)

  • [idioms] oneshot added
  • [bugfix] properly set/reset parents when replacing/removing children in composites

0.7.0 (2018-09-27)

  • [announce] python3 only support from this point forward
  • [announce] now compatible for ros2 projects

0.6.5 (2018-09-19)

  • [bugfix] pick up missing feedback messages in inverters
  • [bugfix] eliminate costly/spammy blackboard variable check feedback message

0.6.4 (2018-09-19)

  • [bugfix] replace awkward newlines with spaces in ascii trees

0.6.3 (2018-09-04)

  • [bugfix] don\'t send the parellel\'s status to running children, invalidate them instead

0.6.2 (2018-08-31)

  • [bugfix] oneshot now reacts to priority interrupts correctly

0.6.1 (2018-08-20)

  • [bugfix] oneshot no longer permanently modifies the original class

0.6.0 (2018-05-15)

  • [infra] python 2/3 compatibility

0.5.10 (2017-06-17)

  • [meta] add children monkeypatching for composite imposters
  • [blackboard] check for nested variables in WaitForBlackboard

0.5.9 (2017-03-25)

  • [docs] bugfix image links and rewrite the motivation

0.5.8 (2017-03-19)

  • [infra] setup.py tests_require, not test_require

0.5.7 (2017-03-01)

  • [infra] update maintainer email

0.5.5 (2017-03-01)

  • [docs] many minor doc updates
  • [meta] bugfix so that imposter now ticks over composite children
  • [trees] method for getting the tip of the tree
  • [programs] py-trees-render program added

0.5.4 (2017-02-22)

  • [infra] handle pypi/catkin conflicts with install_requires

0.5.2 (2017-02-22)

  • [docs] disable colour when building
  • [docs] sidebar headings
  • [docs] dont require project installation

0.5.1 (2017-02-21)

  • [infra] pypi package enabled

0.5.0 (2017-02-21)

  • [ros] components moved to py_trees_ros
  • [timeout] bugfix to ensure timeout decorator initialises properly
  • [docs] rolled over with napolean style
  • [docs] sphinx documentation updated
  • [imposter] make sure tip() drills down into composites
  • [demos] re-organised into modules

0.4.0 (2017-01-13)

  • [trees] add pre/post handlers after setup, just in case setup fails
  • [introspection] do parent lookups so you can crawl back up a tree
  • [blackboard] permit init of subscriber2blackboard behaviours
  • [blackboard] watchers
  • [timers] better feedback messages
  • [imposter] ensure stop() directly calls the composited behaviour

0.3.0 (2016-08-25)

  • failure_is_running decorator (meta).

0.2.0 (2016-06-01)

  • do terminate properly amongst relevant classes
  • blackboxes
  • chooser variant of selectors
  • bugfix the decorators
  • blackboard updates on change only
  • improved dot graph creation
  • many bugfixes to composites
  • subscriber behaviours
  • timer behaviours

0.1.2 (2015-11-16)

  • one shot sequences
  • abort() renamed more appropriately to stop()

0.1.1 (2015-10-10)

  • lots of bugfixing stabilising py_trees for the spain field test
  • complement decorator for behaviours
  • dot tree views
  • ascii tree and tick views
  • use generators and visitors to more efficiently walk/introspect trees
  • a first implementation of behaviour trees in python

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged py_trees at answers.ros.org

py_trees package from py_trees repo

py_trees

Package Summary

Tags No category tags.
Version 0.6.8
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/splintered-reality/py_trees.git
VCS Type git
VCS Version release/0.6.x
Last Updated 2019-03-22
Dev Status DEVELOPED
Released RELEASED

Package Description

Pythonic implementation of behaviour trees.

Additional Links

Maintainers

  • Daniel Stonier
  • Naveed Usmani

Authors

  • Daniel Stonier
  • Michal Staniaszek
  • Naveed Usmani

Py Trees

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.

Sources, Builds & Docs

Devel Melodic Kinetic
devel-Sources 0.6.x-Sources 0.5.x-Sources
devel-Status melodic-Status kinetic-Status
devel-Docs 0.6.x-Docs 0.5.x-Docs

Getting Started

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:

CHANGELOG

Changelog

Forthcoming

  • [docs] fix some warnings

0.6.7 (2019-02-13)

  • [decorators] default option for collapsing decorators (resolves py_trees_ros bug)

0.6.6 (2019-02-13)

[decorators] new-style decorators can be found in py_trees.decorators [decorators] new-style decorators now stop their running child on completion (SUCCESS||FAILURE) [meta] behaviours from functions can now automagically generate names

0.6.5 (2018-09-19)

  • Inverters bugfix - pick up missing feedback messages
  • Eliminate costly blackboard variable check feedback message

0.6.4 (2018-09-19)

  • Ascii tree bugfix - replace awkward newlines with spaces

0.6.3 (2018-09-04)

  • Parallels bugfix - don\'t send own status to running children, invalidate them instead

0.6.2 (2018-08-31)

  • Oneshot bugfix - react to priority interrupts correctly

0.6.1 (2018-08-20)

  • Oneshot bugfix - no longer permanently modifies the original class

0.6.0 (2018-05-15)

  • Python 2/3 compatibility

0.5.10 (2017-06-17)

  • [meta] add children monkeypatching for composite imposters
  • [blackboard] check for nested variables in WaitForBlackboard

0.5.9 (2017-03-25)

  • [docs] bugfix image links and rewrite the motivation

0.5.8 (2017-03-19)

  • [infra] setup.py tests_require, not test_require

0.5.7 (2017-03-01)

  • [infra] update maintainer email

0.5.5 (2017-03-01)

  • [docs] many minor doc updates
  • [meta] bugfix so that imposter now ticks over composite children
  • [trees] method for getting the tip of the tree
  • [programs] py-trees-render program added

0.5.4 (2017-02-22)

  • [infra] handle pypi/catkin conflicts with install_requires

0.5.2 (2017-02-22)

  • [docs] disable colour when building
  • [docs] sidebar headings
  • [docs] dont require project installation

0.5.1 (2017-02-21)

  • [infra] pypi package enabled

0.5.0 (2017-02-21)

  • [ros] components moved to py_trees_ros
  • [timeout] bugfix to ensure timeout decorator initialises properly
  • [docs] rolled over with napolean style
  • [docs] sphinx documentation updated
  • [imposter] make sure tip() drills down into composites
  • [demos] re-organised into modules

0.4.0 (2017-01-13)

  • [trees] add pre/post handlers after setup, just in case setup fails
  • [introspection] do parent lookups so you can crawl back up a tree
  • [blackboard] permit init of subscriber2blackboard behaviours
  • [blackboard] watchers
  • [timers] better feedback messages
  • [imposter] ensure stop() directly calls the composited behaviour

0.3.0 (2016-08-25)

  • failure_is_running decorator (meta).

0.2.0 (2016-06-01)

  • do terminate properly amongst relevant classes
  • blackboxes
  • chooser variant of selectors
  • bugfix the decorators
  • blackboard updates on change only
  • improved dot graph creation
  • many bugfixes to composites
  • subscriber behaviours
  • timer behaviours

0.1.2 (2015-11-16)

  • one shot sequences
  • abort() renamed more appropriately to stop()

0.1.1 (2015-10-10)

  • lots of bugfixing stabilising py_trees for the spain field test
  • complement decorator for behaviours
  • dot tree views
  • ascii tree and tick views
  • use generators and visitors to more efficiently walk/introspect trees
  • a first implementation of behaviour trees in python

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged py_trees at answers.ros.org

py_trees package from py_trees repo

py_trees

Package Summary

Tags No category tags.
Version 0.5.12
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/splintered-reality/py_trees.git
VCS Type git
VCS Version release/0.5.x
Last Updated 2019-03-22
Dev Status DEVELOPED
Released RELEASED

Package Description

Pythonic implementation of behaviour trees.

Additional Links

Maintainers

  • Daniel Stonier
  • Naveed Usmani

Authors

  • Daniel Stonier
  • Michal Staniaszek
  • Naveed Usmani

Py Trees

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.

Sources, Builds & Docs

Devel Kinetic Indigo
devel-Sources 0.5.x-Sources 0.4.x-Sources
devel-Status kinetic-Status
devel-Docs 0.5.x-Docs

Getting Started

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):

source ./virtualenv.bash

or in a catkin environment alongside other ROS py-trees packages:

CHANGELOG

Changelog

Forthcoming

  • [docs] fix some warnings

0.5.12 (2019-02-13)

  • [decorators] default option for collapsing decorators (resolves py_trees_ros bug)

0.5.11 (2019-02-13)

[decorators] new-style decorators can be found in py_trees.decorators [decorators] new-style decorators now stop their running child on completion (SUCCESS||FAILURE) [meta] behaviours from functions can now automagically generate names

0.5.10 (2017-06-17)

  • [meta] add children monkeypatching for composite imposters
  • [blackboard] check for nested variables in WaitForBlackboard

0.5.9 (2017-03-25)

  • [docs] bugfix image links and rewrite the motivation

0.5.8 (2017-03-19)

  • [infra] setup.py tests_require, not test_require

0.5.7 (2017-03-01)

  • [infra] update maintainer email

0.5.5 (2017-03-01)

  • [docs] many minor doc updates
  • [meta] bugfix so that imposter now ticks over composite children
  • [trees] method for getting the tip of the tree
  • [programs] py-trees-render program added

0.5.4 (2017-02-22)

  • [infra] handle pypi/catkin conflicts with install_requires

0.5.2 (2017-02-22)

  • [docs] disable colour when building
  • [docs] sidebar headings
  • [docs] dont require project installation

0.5.1 (2017-02-21)

  • [infra] pypi package enabled

0.5.0 (2017-02-21)

  • [ros] components moved to py_trees_ros
  • [timeout] bugfix to ensure timeout decorator initialises properly
  • [docs] rolled over with napolean style
  • [docs] sphinx documentation updated
  • [imposter] make sure tip() drills down into composites
  • [demos] re-organised into modules

0.4.0 (2017-01-13)

  • [trees] add pre/post handlers after setup, just in case setup fails
  • [introspection] do parent lookups so you can crawl back up a tree
  • [blackboard] permit init of subscriber2blackboard behaviours
  • [blackboard] watchers
  • [timers] better feedback messages
  • [imposter] ensure stop() directly calls the composited behaviour

0.3.0 (2016-08-25)

  • failure_is_running decorator (meta).

0.2.0 (2016-06-01)

  • do terminate properly amongst relevant classes
  • blackboxes
  • chooser variant of selectors
  • bugfix the decorators
  • blackboard updates on change only
  • improved dot graph creation
  • many bugfixes to composites
  • subscriber behaviours
  • timer behaviours

0.1.2 (2015-11-16)

  • one shot sequences
  • abort() renamed more appropriately to stop()

0.1.1 (2015-10-10)

  • lots of bugfixing stabilising py_trees for the spain field test
  • complement decorator for behaviours
  • dot tree views
  • ascii tree and tick views
  • use generators and visitors to more efficiently walk/introspect trees
  • a first implementation of behaviour trees in python

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged py_trees at answers.ros.org

py_trees package from py_trees repo

py_trees py_trees_suite

Package Summary

Tags No category tags.
Version 0.3.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/splintered-reality/py_trees.git
VCS Type git
VCS Version 0.3-indigo
Last Updated 2016-08-25
Dev Status DEVELOPED
Released UNRELEASED

Package Description

Behaviour trees in python.

Additional Links

Maintainers

  • Daniel Stonier
  • Michal Staniaszek
  • Naveed Usmani

Authors

  • Daniel Stonier
  • Michal Staniaszek
  • Naveed Usmani
README
No README found. See repository README.
CHANGELOG

Changelog

0.3.0 (2016-08-25)

  • failure_is_running decorator (meta).

0.2.0 (2016-06-01)

  • do terminate properly amongst relevant classes
  • blackboxes
  • chooser variant of selectors
  • bugfix the decorators
  • blackboard updates on change only
  • improved dot graph creation
  • many bugfixes to composites
  • subscriber behaviours
  • timer behaviours

0.1.2 (2015-11-16)

  • one shot sequences
  • abort() renamed more appropriately to stop()

0.1.1 (2015-10-10)

  • lots of bugfixing stabilising py_trees for the spain field test
  • complement decorator for behaviours
  • dot tree views
  • ascii tree and tick views
  • use generators and visitors to more efficiently walk/introspect trees
  • a first implementation of behaviour trees in python

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

  • launch/demo_tree.launch
    • Runs the simple demo tree as a ROSBehaviour tree, this lets you test it usefully with: - rqt_py_trees - rostopic echo /demo_tree/tick/ascii_tree

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged py_trees at answers.ros.org