Package edu.wpi.first.wpilibj2.command
Class PIDCommand
java.lang.Object
edu.wpi.first.wpilibj2.command.CommandBase
edu.wpi.first.wpilibj2.command.PIDCommand
public class PIDCommand extends CommandBase
A command that controls an output with a
PIDController. Runs forever by default - to add
exit conditions and/or other behavior, subclass this class. The controller calculation and output
are performed synchronously in the command's execute() method.-
Field Summary
Fields Modifier and Type Field Description protected PIDControllerm_controllerprotected DoubleSupplierm_measurementprotected DoubleSupplierm_setpointprotected DoubleConsumerm_useOutput -
Constructor Summary
Constructors Constructor Description PIDCommand(PIDController controller, DoubleSupplier measurementSource, double setpoint, DoubleConsumer useOutput, Subsystem... requirements)Creates a new PIDCommand, which controls the given output with a PIDController.PIDCommand(PIDController controller, DoubleSupplier measurementSource, DoubleSupplier setpointSource, DoubleConsumer useOutput, Subsystem... requirements)Creates a new PIDCommand, which controls the given output with a PIDController. -
Method Summary
Modifier and Type Method Description voidend(boolean interrupted)The action to take when the command ends.voidexecute()The main body of a command.PIDControllergetController()Returns the PIDController used by the command.voidinitialize()The initial subroutine of a command.Methods inherited from class edu.wpi.first.wpilibj2.command.CommandBase
addRequirements, getName, getRequirements, getSubsystem, initSendable, setName, setSubsystem, withNameMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface edu.wpi.first.wpilibj2.command.Command
alongWith, andThen, andThen, asProxy, beforeStarting, beforeStarting, cancel, deadlineWith, hasRequirement, isFinished, isScheduled, perpetually, raceWith, runsWhenDisabled, schedule, schedule, withInterrupt, withTimeout
-
Field Details
-
Constructor Details
-
PIDCommand
public PIDCommand(PIDController controller, DoubleSupplier measurementSource, DoubleSupplier setpointSource, DoubleConsumer useOutput, Subsystem... requirements)Creates a new PIDCommand, which controls the given output with a PIDController.- Parameters:
controller- the controller that controls the output.measurementSource- the measurement of the process variablesetpointSource- the controller's setpointuseOutput- the controller's outputrequirements- the subsystems required by this command
-
PIDCommand
public PIDCommand(PIDController controller, DoubleSupplier measurementSource, double setpoint, DoubleConsumer useOutput, Subsystem... requirements)Creates a new PIDCommand, which controls the given output with a PIDController.- Parameters:
controller- the controller that controls the output.measurementSource- the measurement of the process variablesetpoint- the controller's setpointuseOutput- the controller's outputrequirements- the subsystems required by this command
-
-
Method Details
-
initialize
Description copied from interface:CommandThe initial subroutine of a command. Called once when the command is initially scheduled. -
execute
Description copied from interface:CommandThe main body of a command. Called repeatedly while the command is scheduled. -
end
Description copied from interface:CommandThe action to take when the command ends. Called when either the command finishes normally, or when it interrupted/canceled.Do not schedule commands here that share requirements with this command. Use
Command.andThen(Command...)instead.- Parameters:
interrupted- whether the command was interrupted/canceled
-
getController
Returns the PIDController used by the command.- Returns:
- The PIDController
-