accml_lib.core.interfaces.solver package

Submodules

accml_lib.core.interfaces.solver.controller module

class accml_lib.core.interfaces.solver.controller.ControllerInterface[source]

Bases: object

abstractmethod async continuous(*, read_commands, set_commands, n_steps=None)[source]
Parameters:
  • read_commands (Sequence[ReadCommand]) – commands to retrieve the observed positions

  • set_commands (Sequence[Command]) – commands to set the actuators. Note that a copy of the command will be made and the value will be adapted

  • n_steps (Optional[int]) – if set to None, run forever, otherwise run maximum number of steps and stop then

Discussion:

Should “read commands” and “set commands” be made available already at init?

Read commands tell the controller how to get to an “observable” state. “set_commands” allow the controller to e.g. probe the used measurement/cmd execution engine if these commands are understood and available.

The commands actually set will be typically produced by the “policy”. An alternate way would be that the policy changes the step to be taken. The commands to be executed are then generated by the controller.

accml_lib.core.interfaces.solver.oracle module

class accml_lib.core.interfaces.solver.oracle.Oracle[source]

Bases: object

Forecast of what should be done

Alternative names: Model (similar to control theory)

This interface only uses ask instead of tell/ask. It combines these to a simple ask

abstractmethod ask(inp)[source]
Return type:

object

Parameters:

inp (object)

accml_lib.core.interfaces.solver.policy module

class accml_lib.core.interfaces.solver.policy.PolicyBase[source]

Bases: object

Present a step based on current step, difference and suggest correction step

abstractmethod step(current_state, diff, step)[source]
Return type:

TypeVar(U)

Parameters:

Module contents