WPILibC++ 2025.3.1
Loading...
Searching...
No Matches
frc2::PIDCommand Class Reference

A command that controls an output with a PIDController. More...

#include <frc2/command/PIDCommand.h>

Inheritance diagram for frc2::PIDCommand:
frc2::CommandHelper< Command, PIDCommand >

Public Member Functions

 PIDCommand (frc::PIDController controller, std::function< double()> measurementSource, std::function< double()> setpointSource, std::function< void(double)> useOutput, Requirements requirements={})
 Creates a new PIDCommand, which controls the given output with a PIDController.
 
 PIDCommand (frc::PIDController controller, std::function< double()> measurementSource, double setpoint, std::function< void(double)> useOutput, Requirements requirements={})
 Creates a new PIDCommand, which controls the given output with a PIDController with a constant setpoint.
 
 PIDCommand (PIDCommand &&other)=default
 
 PIDCommand (const PIDCommand &other)=default
 
void Initialize () override
 
void Execute () override
 
void End (bool interrupted) override
 
frc::PIDControllerGetController ()
 Returns the PIDController used by the command.
 
- Public Member Functions inherited from frc2::CommandHelper< Command, PIDCommand >
 CommandHelper ()=default
 
CommandPtr ToPtr () &&override
 

Protected Attributes

frc::PIDController m_controller
 PID controller.
 
std::function< double()> m_measurement
 Measurement getter.
 
std::function< double()> m_setpoint
 Setpoint getter.
 
std::function< void(double)> m_useOutput
 PID controller output consumer.
 

Detailed Description

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.

This class is provided by the NewCommands VendorDep

See also
PIDController

Constructor & Destructor Documentation

◆ PIDCommand() [1/4]

frc2::PIDCommand::PIDCommand ( frc::PIDController controller,
std::function< double()> measurementSource,
std::function< double()> setpointSource,
std::function< void(double)> useOutput,
Requirements requirements = {} )

Creates a new PIDCommand, which controls the given output with a PIDController.

Parameters
controllerthe controller that controls the output.
measurementSourcethe measurement of the process variable
setpointSourcethe controller's reference (aka setpoint)
useOutputthe controller's output
requirementsthe subsystems required by this command
Deprecated
Use a PIDController instead

◆ PIDCommand() [2/4]

frc2::PIDCommand::PIDCommand ( frc::PIDController controller,
std::function< double()> measurementSource,
double setpoint,
std::function< void(double)> useOutput,
Requirements requirements = {} )

Creates a new PIDCommand, which controls the given output with a PIDController with a constant setpoint.

Parameters
controllerthe controller that controls the output.
measurementSourcethe measurement of the process variable
setpointthe controller's setpoint (aka setpoint)
useOutputthe controller's output
requirementsthe subsystems required by this command
Deprecated
Use a PIDController instead

◆ PIDCommand() [3/4]

frc2::PIDCommand::PIDCommand ( PIDCommand && other)
default

◆ PIDCommand() [4/4]

frc2::PIDCommand::PIDCommand ( const PIDCommand & other)
default

Member Function Documentation

◆ End()

void frc2::PIDCommand::End ( bool interrupted)
override

◆ Execute()

void frc2::PIDCommand::Execute ( )
override

◆ GetController()

frc::PIDController & frc2::PIDCommand::GetController ( )

Returns the PIDController used by the command.

Returns
The PIDController

◆ Initialize()

void frc2::PIDCommand::Initialize ( )
override

Member Data Documentation

◆ m_controller

frc::PIDController frc2::PIDCommand::m_controller
protected

PID controller.

◆ m_measurement

std::function<double()> frc2::PIDCommand::m_measurement
protected

Measurement getter.

◆ m_setpoint

std::function<double()> frc2::PIDCommand::m_setpoint
protected

Setpoint getter.

◆ m_useOutput

std::function<void(double)> frc2::PIDCommand::m_useOutput
protected

PID controller output consumer.


The documentation for this class was generated from the following file: