4 #include "../ComponentData/RobotData.h"
5 #include "../Config/Configurable.h"
6 #include "../Log/Loggable.h"
8 #include "../Utils/PID.h"
9 #include "../Utils/ProfiledPID.h"
10 #include "../Utils/TrapezoidProfile.h"
11 #include "../ComponentData/DrivetrainData.h"
29 virtual void onEnable();
30 virtual void onDisable();
32 virtual void enabledPeriodic();
33 virtual void disabledPeriodic();
35 virtual void Configure();
38 const static int POSITION = 0;
39 const static int VELOCITY = 1;
41 TrapezoidProfile *m_profiles[2];
42 ProfiledPID* m_profiled[2];
43 double m_timeToMax[2];
48 double m_errorThreshold;
58 void ConfigurePIDObject(
PID *pid, std::string objName,
bool feedForward);
59 void ConfigureForwardCurrentLimit();
60 void ConfigureReverseCurrentLimit();
61 double ComputeOutput(data::drivetrain::ForwardOrTurn axis);
62 double ComputeSide(data::drivetrain::Side side,
double forward,
double turn);