pyrcf.components.controller_manager.controller_manager_base

Classes

ControllerManagerBase

Base class for writing controller (agent) managers.

Module Contents

class pyrcf.components.controller_manager.controller_manager_base.ControllerManagerBase(agents: List[pyrcf.components.agents.agent_base.AgentBase], command_accumulation_policy: pyrcf.components.controller_manager.command_accumulators.cmd_accumulation_policies.CommandAccumulatorBase)

Bases: abc.ABC

Base class for writing controller (agent) managers.

agents
_accumulator
add_agent(agent: pyrcf.components.agents.agent_base.AgentBase)

Add an agent to be managed by this controller manager.

Parameters:

agent (AgentBase) – The agent to be added to the end of the list.

Returns:

The self object with the new agent added.

This is for using this method in a builder strategy.

Return type:

ControllerManagerBase

set_cmd_accumulation_policy(policy: pyrcf.components.controller_manager.command_accumulators.cmd_accumulation_policies.CommandAccumulatorBase)

Set/change the command accumulation policy for this mananger.

Parameters:

policy (CommandAccumulatorBase) – The new policy to be used.

Returns:

The self object with the policy updated.

This is for using this method in a builder strategy.

Return type:

ControllerManagerBase

abstract update(robot_state: pyrcf.core.types.RobotState, global_plan: pyrcf.core.types.GlobalMotionPlan, t: float, dt: float) pyrcf.core.types.RobotCmd

Run one update step of all the ‘agents’ managed by this manager.

Parameters:
  • robot_state (RobotState) – Current robot state. This is equivalent to ‘observation’ in standard learning-based agents.

  • global_plan (GlobalMotionPlan) – The reference global plan to follow.

  • t (float, optional) – the current time signature of the control loop. Defaults to None (controllers may or may not need this).

  • dt (float, optional) – the time since the last control loop. Defaults to None (controllers may or may not need this).

Returns:

The output control command (action) to be sent to the robot based on the

accumulation policy used by this manager.

Return type:

RobotCmd

Raises:

NotImplementedError – Raised if this method is not implemented by the child class.

shutdown()

Cleanly shutdown all agents managed by this controller manager.