aea.skills.behaviours
This module contains the classes for specific behaviours.
SimpleBehaviour Objects
This class implements a simple behaviour.
__init__
Initialize a simple behaviour.
Arguments:
act: the act callable.kwargs: the keyword arguments to be passed to the parent class.
setup
Set the behaviour up.
act
Do the action.
teardown
Tear the behaviour down.
CompositeBehaviour Objects
This class implements a composite behaviour.
CyclicBehaviour Objects
This behaviour is executed until the agent is stopped.
__init__
Initialize the cyclic behaviour.
number_of_executions
Get the number of executions.
act_wrapper
Wrap the call of the action. This method must be called only by the framework.
is_done
Return True if the behaviour is terminated, False otherwise.
The user should implement it properly to determine the stopping condition.
Returns:
bool indicating status
OneShotBehaviour Objects
This behaviour is executed only once.
__init__
Initialize the cyclic behaviour.
is_done
Return True if the behaviour is terminated, False otherwise.
act_wrapper
Wrap the call of the action. This method must be called only by the framework.
TickerBehaviour Objects
This behaviour is executed periodically with an interval.
__init__
| __init__(tick_interval: float = 1.0, start_at: Optional[datetime.datetime] = None, **kwargs: Any) -> None
Initialize the ticker behaviour.
Arguments:
tick_interval: interval of the behaviour in seconds.start_at: whether to start the behaviour with an offset.kwargs: the keyword arguments.
tick_interval
Get the tick_interval in seconds.
start_at
Get the start time.
last_act_time
Get the last time the act method has been called.
act_wrapper
Wrap the call of the action. This method must be called only by the framework.
is_time_to_act
Check whether it is time to act, according to the tick_interval constraint and the 'start at' constraint.
Returns:
True if it is time to act, false otherwise.
SequenceBehaviour Objects
This behaviour executes sub-behaviour serially.
__init__
Initialize the sequence behaviour.
Arguments:
behaviour_sequence: the sequence of behaviour.kwargs: the keyword arguments
current_behaviour
Get the current behaviour.
If None, the sequence behaviour can be considered done.
Returns:
current behaviour or None
act
Implement the behaviour.
is_done
Return True if the behaviour is terminated, False otherwise.
State Objects
A state of a FSMBehaviour.
A State behaviour is a simple behaviour with a special property 'event' that is opportunely set by the implementer. The event is read by the framework when the behaviour is done in order to pick the transition to trigger.
__init__
Initialize a state of the state machine.
event
Get the event to be triggered at the end of the behaviour.
is_done
Return True if the behaviour is terminated, False otherwise.
reset
Reset initial conditions.
FSMBehaviour Objects
This class implements a finite-state machine behaviour.
__init__
Initialize the finite-state machine behaviour.
is_started
Check if the behaviour is started.
register_state
Register a state.
Arguments:
name: the name of the state.state: the behaviour in that state.initial: whether the state is an initial state.
Raises:
ValueError: if a state with the provided name already exists.
register_final_state
Register a final state.
Arguments:
name: the name of the state.state: the state.
Raises:
ValueError: if a state with the provided name already exists.
unregister_state
Unregister a state.
Arguments:
name: the state name to unregister.
Raises:
ValueError: if the state is not registered.
states
Get all the state names.
initial_state
Get the initial state name.
initial_state
Set the initial state.
final_states
Get the final state names.
get_state
Get a state from its name.
act
Implement the behaviour.
is_done
Return True if the behaviour is terminated, False otherwise.
register_transition
Register a transition.
No sanity check is done.
Arguments:
source: the source state name.destination: the destination state name.event: the event.
Raises:
ValueError: if a transition from source with event is already present.
unregister_transition
Unregister a transition.
Arguments:
source: the source state name.destination: the destination state name.event: the event.
Raises:
ValueError: if a transition from source with event is not present.