Valkyrie 2026
Loading...
Searching...
No Matches
valor::PIDF< INPUT, OUTPUT > Struct Template Reference

Container to hold PID and feed forward values for the motor controller. More...

#include <valkyrie/controllers/PIDF.h>

Public Types

using TagTraits = units::traits::unit_traits<INPUT>
using BaseUnits = typename TagTraits::base_unit_type
using TimeRatio = typename BaseUnits::second_ratio
using TimeCorrectionUnit
using Position = units::compound_unit<INPUT, TimeCorrectionUnit>
using Velocity = units::compound_unit<units::inverse<units::second>, Position>
using Acceleration = units::compound_unit<units::inverse<units::second>, Velocity>
using Jerk = units::compound_unit<units::inverse<units::second>, Acceleration>
using Velocity_t = units::unit_t<Velocity>
using Acceleration_t = units::unit_t<Acceleration>
using Jerk_t = units::unit_t<Jerk>
using ProportionalGain = units::compound_unit<OUTPUT, units::inverse<INPUT>>
using IntegralGain = units::compound_unit<ProportionalGain, units::inverse<units::second>>
using DerivativeGain = units::compound_unit<ProportionalGain, units::second>
using ProportionalGain_t = units::unit_t<ProportionalGain>
using IntegralGain_t = units::unit_t<IntegralGain>
using DerivativeGain_t = units::unit_t<DerivativeGain>
using Input_t = units::unit_t<INPUT>
using Output_t = units::unit_t<OUTPUT>
using kV_t = units::unit_t<units::compound_unit<OUTPUT, units::inverse<Velocity>>>
using kA_t = units::unit_t<units::compound_unit<OUTPUT, units::inverse<Acceleration>>>
using DimensionlessPIDF_t = PIDF<units::dimensionless::dimensionless, units::dimensionless::dimensionless>

Public Member Functions

 operator DimensionlessPIDF_t () const

Public Attributes

ProportionalGain_t P {0}
IntegralGain_t I {0}
DerivativeGain_t D {0}
Velocity_t maxVelocity {0}
Acceleration_t maxAcceleration {0}
Jerk_t maxJerk {0}
Input_t error {0}
Input_t errorThreshold {0}
Output_t kS {0}
Output_t kG {0}
std::optional< kV_t > kV = std::nullopt
std::optional< kA_t > kA = std::nullopt
units::turn_t GTarget = 0_deg
GravityFFType GType = GravityFFType::LINEAR

Detailed Description

template<typename INPUT = units::dimensionless::dimensionless, typename OUTPUT = units::dimensionless::dimensionless>
requires units::traits::is_unit_v<INPUT> && units::traits::is_unit_v<OUTPUT>
struct valor::PIDF< INPUT, OUTPUT >

Container to hold PID and feed forward values for the motor controller.

Member Typedef Documentation

◆ TimeCorrectionUnit

template<typename INPUT = units::dimensionless::dimensionless, typename OUTPUT = units::dimensionless::dimensionless>
using valor::PIDF< INPUT, OUTPUT >::TimeCorrectionUnit
Initial value:
units::unit<std::ratio<1>,
units::base_unit<std::ratio<0>, std::ratio<0>, std::ratio<-TimeRatio::num, TimeRatio::den>, std::ratio<0>>>

The documentation for this struct was generated from the following file:
  • src/main/include/valkyrie/controllers/PIDF.h