refine_plan.models.behaviour_tree
A very lightweight set of classes for BTs.
This is effectively a BT data structure which allows us to write out to a BT.cpp XML file recursively. I don’t want the heavyweight baggage of pytree etc.
Author: Charlie Street Owner: Charlie Street
Classes
Base class for individual BT nodes.  | 
|
Node class for BT action nodes.  | 
|
Node class for BT condition nodes.  | 
|
A class for BT composite nodes (sequence/fallback).  | 
|
Subclass of CompositeNode for sequence nodes.  | 
|
Subclass of CompositeNode for fallback nodes.  | 
|
Class for a complete behaviour tree.  | 
Module Contents
- class refine_plan.models.behaviour_tree.BTNode
 Bases:
objectBase class for individual BT nodes.
- abstractmethod to_BT_XML()
 Outputs a string containing the BT.cpp XML for this node.
- Returns:
 The BT XML for this node as a string
- class refine_plan.models.behaviour_tree.ActionNode(name)
 Bases:
BTNodeNode class for BT action nodes.
- _name
 The name of the action being executed.
- get_name()
 Getter for self._name.
- Returns:
 The action name
- to_BT_XML()
 Generates the BT.cpp XML string for the action node.
- Returns:
 The BT.cpp XML for the action node
- tick_at_state(state)
 Computes node return value if ticked in a given state.
This function ignores any node memory, and should only be used to check correspondence with a Markov policy.
- Parameters:
 state – The state to check
- Returns:
 The return value of this node being ticked (action name)
- class refine_plan.models.behaviour_tree.ConditionNode(name, cond)
 Bases:
BTNodeNode class for BT condition nodes.
- _name
 The name of the condition node
- _cond
 The condition which the node checks
- get_name()
 Getter for self._name.
- Returns:
 The condition node name
- get_cond()
 Getter for self._cond.
- Returns:
 The condition being checked
- to_BT_XML()
 Generates the BT.cpp XML string for the condition node.
- Returns:
 The BT.cpp XML for the condition node
- tick_at_state(state)
 Computes node return value if ticked in a given state.
This function ignores any node memory, and should only be used to check correspondence with a Markov policy.
- Parameters:
 state – The state to check
- Returns:
 The return value of this node being ticked (True or False)
- class refine_plan.models.behaviour_tree.CompositeNode(*children)
 Bases:
BTNodeA class for BT composite nodes (sequence/fallback).
This class currently represents synchronous composite nodes, i.e. composite with memory nodes.
- _children
 The child nodes
- add_child(child)
 Add a new child to the composite node.
- Parameters:
 child – The new child
- Raises:
 invalid_child_exception – Raised if a child is not a BT node
- abstractmethod to_BT_XML()
 Generates the BT.cpp XML string for the composite node.
- Returns:
 The BT.cpp XML string for the composite node
- class refine_plan.models.behaviour_tree.SequenceNode(*children)
 Bases:
CompositeNodeSubclass of CompositeNode for sequence nodes.
- Same as superclass.
 
- to_BT_XML()
 Generates the BT.cpp XML string for the sequence node.
- Returns:
 The BT.cpp XML for the sequence node
- tick_at_state(state)
 Computes node return value if ticked in a given state.
This function ignores any node memory, and should only be used to check correspondence with a Markov policy.
- Parameters:
 state – The state to check
- Returns:
 The return value of this node being ticked
- class refine_plan.models.behaviour_tree.FallbackNode(*children)
 Bases:
CompositeNodeSubclass of CompositeNode for fallback nodes.
- Same as superclass.
 
- to_BT_XML()
 Generates the BT.cpp XML string for the fallback node.
- Returns:
 The BT.cpp XML for the fallback node
- tick_at_state(state)
 Computes node return value if ticked in a given state.
This function ignores any node memory, and should only be used to check correspondence with a Markov policy.
This is because it won’t work if we have two actions in sequence… The convert_policy functionality ensures this will never happen.
- Parameters:
 state – The state to check
- Returns:
 The return value of this node being ticked
- class refine_plan.models.behaviour_tree.BehaviourTree(root_node)
 Bases:
objectClass for a complete behaviour tree.
This class just enforces a root node and adds the outer layers on the BT.cpp XML file.
- _root_node
 A root BTNode
- get_root_node()
 Getter for self._root_node.
- Returns:
 The root node of the BT
- to_BT_XML(out_file=None)
 Produces the BT.cpp XML file for the BT.
- Parameters:
 out_file – Optional. If specified, will write the BT XML string to file
- Returns:
 The BT.cpp XML
- tick_at_state(state)
 Computes node return value if ticked in a given state.
This function ignores any node memory, and should only be used to check correspondence with a Markov policy.
This is because it won’t work if we have two actions in sequence in the fallback. The convert_policy functionality ensures this will never happen.
- Parameters:
 state – The state to check
- Returns:
 The return value of this node being ticked