|
Fang-Robotics-MCB
Fang Robotics Team Codebase
|
#include <dual_cascade_motor.hpp>


Public Types | |
| using | ControlledMotor = IOutputMotor< Output > |
| using | ControlTelemetry = telemetry::ITelemetry< Control > |
| using | IntermediateTelemetry = telemetry::ITelemetry< Intermediate > |
| using | Pid = trap::algorithms::DualCascadePid< Control, Intermediate, Output, Time, MainError, IntermediateError > |
| using | Config = Pid::Config |
Public Member Functions | |
| DualCascadeMotor (const Config &config, std::unique_ptr< ControlledMotor > motor, std::unique_ptr< ControlTelemetry > controlTelemetry, std::unique_ptr< IntermediateTelemetry > intermediateTelemetry) | |
| void | initialize () override |
| void | update () override |
| void | update (const Time &delta) |
| void | setTarget (const Control &control) |
Template parameters: Output - the output motor it accepts Control - the type used for controlling and intermediate calculations of Pid Intermediate - the type used in between controlling and outputting (2nd pid)
| using fang::motor::DualCascadeMotor< Output, Control, Intermediate, Time, MainError, IntermediateError >::Config = Pid::Config |
| using fang::motor::DualCascadeMotor< Output, Control, Intermediate, Time, MainError, IntermediateError >::ControlledMotor = IOutputMotor<Output> |
| using fang::motor::DualCascadeMotor< Output, Control, Intermediate, Time, MainError, IntermediateError >::ControlTelemetry = telemetry::ITelemetry<Control> |
| using fang::motor::DualCascadeMotor< Output, Control, Intermediate, Time, MainError, IntermediateError >::IntermediateTelemetry = telemetry::ITelemetry<Intermediate> |
| using fang::motor::DualCascadeMotor< Output, Control, Intermediate, Time, MainError, IntermediateError >::Pid = trap::algorithms::DualCascadePid < Control, Intermediate, Output, Time, MainError, IntermediateError > |
|
inline |
|
inlineoverride |
|
inline |
|
inlineoverride |
|
inline |
Back door function used for testing until we DI chrono based classes, too.