pyrcf.components.controller_manager
Defines controller managers that can be used to handle multiple controllers in the control loop.
Subpackages
Submodules
Classes
Base class for writing controller (agent) managers. |
|
A simple controller manager that naively performs sequential updates of all agents it |
Package Contents
- class pyrcf.components.controller_manager.ControllerManagerBase(agents: List[pyrcf.components.agents.agent_base.AgentBase], command_accumulation_policy: pyrcf.components.controller_manager.command_accumulators.cmd_accumulation_policies.CommandAccumulatorBase)
Bases:
abc.ABCBase 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:
- 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:
- 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:
- Raises:
NotImplementedError – Raised if this method is not implemented by the child class.
- shutdown()
Cleanly shutdown all agents managed by this controller manager.
- class pyrcf.components.controller_manager.SimpleControllerManager(agents: List[pyrcf.components.agents.agent_base.AgentBase] = None, command_accumulation_policy: pyrcf.components.controller_manager.command_accumulators.cmd_accumulation_policies.CommandAccumulatorBase = SimpleCmdOverride())
Bases:
pyrcf.components.controller_manager.controller_manager_base.ControllerManagerBaseA simple controller manager that naively performs sequential updates of all agents it manages.
- 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:
- Raises:
NotImplementedError – Raised if this method is not implemented by the child class.