pyrcf.components.controller_manager.simple_controller_manager

Classes

SimpleControllerManager

A simple controller manager that naively performs sequential updates of all agents it

Module Contents

class pyrcf.components.controller_manager.simple_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.ControllerManagerBase

A 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:

RobotCmd

Raises:

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