![]() |
2022-Robot
Robot code for 2022 FRC Season by Argos, FRC team #1756
|
Classes | |
class | NetworkTablesHomingStorage |
Saves and loads swerve module homes to networkTables. More... | |
class | SwerveHomeStorageInterface |
Interface capable of saving and loading module home positions from persistent storage. More... | |
struct | SwerveModulePositions |
Representation of the absolute encoder position of each module at home position. More... | |
struct | TranslationSpeeds |
Translation speeds as percent max output. More... | |
Functions | |
units::degree_t | NearestAngle (units::degree_t desiredAngle, units::degree_t referenceAngle) |
Finds closest angle alias of desiredAngle relative to referencedAngle. All inputs are normalized so ranges are unbounded. More... | |
units::degree_t | InvertedAngle (units::degree_t desiredAngle, units::degree_t referenceAngle) |
Finds closest angle alias of a vector 180-degrees offset from desiredAngle relative to referencedAngle. All inputs are normalized so ranges are unbounded. More... | |
units::degree_t | ConstrainAngle (units::degree_t inVal, units::degree_t minVal, units::degree_t maxVal) |
Normalize angle to specified range. More... | |
double | ConstrainAngle (double inVal, double minVal, double maxVal) |
Normalize angle to specified range. More... | |
frc::SwerveModuleState | Optimize (frc::SwerveModuleState desiredState, units::degree_t currentModuleAngle, units::degrees_per_second_t currentModuleAngularRate, units::feet_per_second_t currentModuleDriveVel, units::feet_per_second_t maxVelocity) |
Optimize swerve module to minimize rotations and drive direction changes. More... | |
template<class T , int size, class V > | |
constexpr TranslationSpeeds | CircularInterpolate (const TranslationSpeeds rawSpeeds, const argos_lib::InterpolationMap< T, size, V > interpMap) |
Use argos_lib::InterpolationMap to apply mapping according to joystick vector magnitude. More... | |
|
constexpr |
Use argos_lib::InterpolationMap to apply mapping according to joystick vector magnitude.
T | Type of interpolated input |
size | Number of elements in interpolation map |
V | Type of interpolated output |
rawSpeeds | Joystick inputs as percentages |
interpMap | Interpolation map to apply to magnitudes |
double argos_lib::swerve::ConstrainAngle | ( | double | inVal, |
double | minVal, | ||
double | maxVal | ||
) |
Normalize angle to specified range.
inVal | Angle to constrain (degrees) |
minVal | Normalization lower bound (degrees) |
maxVal | Normalization upper bound (degrees) |
units::degree_t argos_lib::swerve::ConstrainAngle | ( | units::degree_t | inVal, |
units::degree_t | minVal, | ||
units::degree_t | maxVal | ||
) |
Normalize angle to specified range.
inVal | Angle to constrain |
minVal | Normalization lower bound |
maxVal | Normalization upper bound |
units::degree_t argos_lib::swerve::InvertedAngle | ( | units::degree_t | desiredAngle, |
units::degree_t | referenceAngle | ||
) |
Finds closest angle alias of a vector 180-degrees offset from desiredAngle relative to referencedAngle. All inputs are normalized so ranges are unbounded.
desiredAngle | Angle to find 180-degree offset alias for |
referenceAngle | Defines desired alias range |
units::degree_t argos_lib::swerve::NearestAngle | ( | units::degree_t | desiredAngle, |
units::degree_t | referenceAngle | ||
) |
Finds closest angle alias of desiredAngle relative to referencedAngle. All inputs are normalized so ranges are unbounded.
desiredAngle | Angle to find alias for |
referenceAngle | Defines desired alias range |
frc::SwerveModuleState argos_lib::swerve::Optimize | ( | frc::SwerveModuleState | desiredState, |
units::degree_t | currentModuleAngle, | ||
units::degrees_per_second_t | currentModuleAngularRate, | ||
units::feet_per_second_t | currentModuleDriveVel, | ||
units::feet_per_second_t | maxVelocity | ||
) |
Optimize swerve module to minimize rotations and drive direction changes.
desiredState | Requested state. Output must result in same motion |
currentModuleAngle | Module rotation angle in relative or absolute position |
currentModuleAngularRate | Current module rotation speed. To prevent rapid changes in rotation direction. |
currentModuleDriveVel | Current module drive velocity. To prevent rapid changes in drive motor velocity. |
maxVelocity | Max velocity for determining max transition change thresholds |