Package edu.wpi.first.wpilibj2.command
Class ProfiledPIDSubsystem
- java.lang.Object
-
- edu.wpi.first.wpilibj2.command.SubsystemBase
-
- edu.wpi.first.wpilibj2.command.ProfiledPIDSubsystem
-
public abstract class ProfiledPIDSubsystem extends SubsystemBase
A subsystem that uses aProfiledPIDControllerto control an output. The controller is run synchronously from the subsystem's periodic() method.
-
-
Field Summary
Fields Modifier and Type Field Description protected ProfiledPIDControllerm_controllerprotected booleanm_enabled
-
Constructor Summary
Constructors Constructor Description ProfiledPIDSubsystem(ProfiledPIDController controller)Creates a new ProfiledPIDSubsystem.ProfiledPIDSubsystem(ProfiledPIDController controller, double initialPosition)Creates a new ProfiledPIDSubsystem.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voiddisable()Disables the PID control.voidenable()Enables the PID control.ProfiledPIDControllergetController()protected abstract doublegetMeasurement()Returns the measurement of the process variable used by the ProfiledPIDController.booleanisEnabled()Returns whether the controller is enabled.voidperiodic()This method is called periodically by theCommandScheduler.voidsetGoal(double goal)Sets the goal state for the subsystem.voidsetGoal(TrapezoidProfile.State goal)Sets the goal state for the subsystem.protected abstract voiduseOutput(double output, TrapezoidProfile.State setpoint)Uses the output from the ProfiledPIDController.-
Methods inherited from class edu.wpi.first.wpilibj2.command.SubsystemBase
addChild, getName, getSubsystem, initSendable, setName, setSubsystem
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface edu.wpi.first.wpilibj2.command.Subsystem
getCurrentCommand, getDefaultCommand, register, setDefaultCommand
-
-
-
-
Field Detail
-
m_controller
protected final ProfiledPIDController m_controller
-
m_enabled
protected boolean m_enabled
-
-
Constructor Detail
-
ProfiledPIDSubsystem
public ProfiledPIDSubsystem(ProfiledPIDController controller, double initialPosition)
Creates a new ProfiledPIDSubsystem.- Parameters:
controller- the ProfiledPIDController to useinitialPosition- the initial goal position of the controller
-
ProfiledPIDSubsystem
public ProfiledPIDSubsystem(ProfiledPIDController controller)
Creates a new ProfiledPIDSubsystem. Initial goal position is zero.- Parameters:
controller- the ProfiledPIDController to use
-
-
Method Detail
-
periodic
public void periodic()
Description copied from interface:SubsystemThis method is called periodically by theCommandScheduler. Useful for updating subsystem-specific state that you don't want to offload to aCommand. Teams should try to be consistent within their own codebases about which responsibilities will be handled by Commands, and which will be handled here.
-
getController
public ProfiledPIDController getController()
-
setGoal
public void setGoal(TrapezoidProfile.State goal)
Sets the goal state for the subsystem.- Parameters:
goal- The goal state for the subsystem's motion profile.
-
setGoal
public void setGoal(double goal)
Sets the goal state for the subsystem. Goal velocity assumed to be zero.- Parameters:
goal- The goal position for the subsystem's motion profile.
-
useOutput
protected abstract void useOutput(double output, TrapezoidProfile.State setpoint)Uses the output from the ProfiledPIDController.- Parameters:
output- the output of the ProfiledPIDControllersetpoint- the setpoint state of the ProfiledPIDController, for feedforward
-
getMeasurement
protected abstract double getMeasurement()
Returns the measurement of the process variable used by the ProfiledPIDController.- Returns:
- the measurement of the process variable
-
enable
public void enable()
Enables the PID control. Resets the controller.
-
disable
public void disable()
Disables the PID control. Sets output to zero.
-
isEnabled
public boolean isEnabled()
Returns whether the controller is enabled.- Returns:
- Whether the controller is enabled.
-
-