# `rcognita.controllers`

This module contains controllers (agents).

Remarks:

- All vectors are treated as of type [n,]

- All buffers are treated as of type [L, n] where each row is a vector

- Buffers are updated from bottom to top

Functions

`ctrl_selector`(t, observation, action_manual, …) | Main interface for various controllers.

Classes

`CtrlNominal3WRobot`(m, I[, ctrl_gain, …]) | This is a class of nominal controllers for 3-wheel robots used for benchmarking of other controllers.
`CtrlNominal3WRobotNI`([ctrl_gain, ctrl_bnds, …]) | Nominal parking controller for NI using disassembled subgradients.
`CtrlOptPred`(dim_input, dim_output[, mode, …]) | Class of predictive optimal controllers, primarily model-predictive control and predictive reinforcement learning, that optimize a finite-horizon cost.
`CtrlRLStab`(dim_input, dim_output[, mode, …]) | Class of reinforcement learning agents with stabilizing constraints.