robokudo.tree_components.better_parallel

Enhanced parallel behavior tree components.

This module provides enhanced parallel behavior tree components that improve upon the standard py_trees parallel implementation. It supports:

  • Configurable success policies

  • Synchronization options

  • Child status management

  • Improved interrupt handling

The module is primarily used for:

  • Complex parallel task execution

  • Synchronized behavior coordination

  • Robust failure handling

Classes

ParallelPolicy

Configurable policies for parallel behavior execution.

Parallel

Enhanced parallel behavior tree node.

Module Contents

class robokudo.tree_components.better_parallel.ParallelPolicy

Bases: object

Configurable policies for parallel behavior execution.

This class provides policy configurations that determine how parallel behaviors complete based on their children’s status.

class Base(synchronise: bool = False)

Bases: object

Base class for parallel policies.

Warning

Should never be used directly. Use derived policy classes instead.

synchronise: bool = False

Stop ticking successful children until policy met

class SuccessOnAll(synchronise: bool = True)

Bases: Base

Policy requiring all children to succeed.

Returns SUCCESS only when each child returns SUCCESS. With synchronization, successful children are skipped until all succeed or one fails.

class SuccessOnOne

Bases: Base

Policy requiring only one child to succeed.

Returns SUCCESS when at least one child succeeds and others are RUNNING.

class SuccessOnSelected(children: typing_extensions.List[py_trees.behaviour.Behaviour], synchronise: bool = True)

Bases: Base

Policy requiring specific children to succeed.

Returns SUCCESS when all specified children succeed. With synchronization, successful children are skipped until all specified succeed or one fails.

children
class robokudo.tree_components.better_parallel.Parallel

Bases: py_trees.composites.Parallel

Enhanced parallel behavior tree node.

This class extends py_trees.composites.Parallel with:

  • Improved policy handling

  • Better child status management

  • Proper interrupt propagation

Note

Children are ticked in sequence but may run concurrently.

tick() typing_extensions.Iterator[typing_extensions.Union[py_trees.composites.Parallel, typing_extensions.Any]]

Tick all children according to policy.

This method: * Initializes if not running * Ticks each child according to policy * Updates status based on children and policy * Handles interrupts for running children

Yield:

Reference to self or children during traversal