|
WPILibC++
2020.3.2
|
A subsystem that uses a PIDController to control an output. More...
#include <PIDSubsystem.h>
Public Member Functions | |
| PIDSubsystem (PIDController controller, double initialPosition=0) | |
| Creates a new PIDSubsystem. More... | |
| void | Periodic () override |
| This method is called periodically by the CommandScheduler. More... | |
| void | SetSetpoint (double setpoint) |
| Sets the setpoint for the subsystem. More... | |
| virtual void | Enable () |
| Enables the PID control. More... | |
| virtual void | Disable () |
| Disables the PID control. More... | |
| bool | IsEnabled () |
| Returns whether the controller is enabled. More... | |
| PIDController & | GetController () |
| Returns the PIDController. More... | |
Public Member Functions inherited from frc2::SubsystemBase | |
| void | InitSendable (frc::SendableBuilder &builder) override |
| Initializes this Sendable object. More... | |
| std::string | GetName () const |
| Gets the name of this Subsystem. More... | |
| void | SetName (const wpi::Twine &name) |
| Sets the name of this Subsystem. More... | |
| std::string | GetSubsystem () const |
| Gets the subsystem name of this Subsystem. More... | |
| void | SetSubsystem (const wpi::Twine &name) |
| Sets the subsystem name of this Subsystem. More... | |
| void | AddChild (std::string name, frc::Sendable *child) |
| Associate a Sendable with this Subsystem. More... | |
Public Member Functions inherited from frc2::Subsystem | |
| template<class T , typename = std::enable_if_t<std::is_base_of_v< Command, std::remove_reference_t<T>>>> | |
| void | SetDefaultCommand (T &&defaultCommand) |
| Sets the default Command of the subsystem. More... | |
| Command * | GetDefaultCommand () const |
| Gets the default command for this subsystem. More... | |
| Command * | GetCurrentCommand () const |
| Returns the command currently running on this subsystem. More... | |
| void | Register () |
| Registers this subsystem with the CommandScheduler, allowing its Periodic() method to be called when the scheduler runs. | |
Public Member Functions inherited from frc::SendableHelper< SubsystemBase > | |
| SendableHelper (const SendableHelper &rhs)=default | |
| SendableHelper (SendableHelper &&rhs) | |
| SendableHelper & | operator= (const SendableHelper &rhs)=default |
| SendableHelper & | operator= (SendableHelper &&rhs) |
| std::string | GetName () const |
| Gets the name of this Sendable object. More... | |
| void | SetName (const wpi::Twine &name) |
| Sets the name of this Sendable object. More... | |
| void | SetName (const wpi::Twine &subsystem, const wpi::Twine &name) |
| Sets both the subsystem name and device name of this Sendable object. More... | |
| std::string | GetSubsystem () const |
| Gets the subsystem name of this Sendable object. More... | |
| void | SetSubsystem (const wpi::Twine &subsystem) |
| Sets the subsystem name of this Sendable object. More... | |
Protected Member Functions | |
| virtual double | GetMeasurement ()=0 |
| Returns the measurement of the process variable used by the PIDController. More... | |
| virtual void | UseOutput (double output, double setpoint)=0 |
| Uses the output from the PIDController. More... | |
Protected Member Functions inherited from frc::SendableHelper< SubsystemBase > | |
| void | SetName (const wpi::Twine &moduleType, int channel) |
| Sets the name of the sensor with a channel number. More... | |
| void | SetName (const wpi::Twine &moduleType, int moduleNumber, int channel) |
| Sets the name of the sensor with a module and channel number. More... | |
| void | AddChild (std::shared_ptr< Sendable > child) |
| Add a child component. More... | |
| void | AddChild (void *child) |
| Add a child component. More... | |
Protected Attributes | |
| PIDController | m_controller |
| bool | m_enabled {false} |
A subsystem that uses a PIDController to control an output.
The controller is run synchronously from the subsystem's periodic() method.
|
explicit |
Creates a new PIDSubsystem.
| controller | the PIDController to use |
| initialPosition | the initial setpoint of the subsystem |
|
virtual |
Disables the PID control.
Sets output to zero.
|
virtual |
Enables the PID control.
Resets the controller.
| PIDController& frc2::PIDSubsystem::GetController | ( | ) |
Returns the PIDController.
|
protectedpure virtual |
Returns the measurement of the process variable used by the PIDController.
| bool frc2::PIDSubsystem::IsEnabled | ( | ) |
Returns whether the controller is enabled.
|
overridevirtual |
This method is called periodically by the CommandScheduler.
Useful for updating subsystem-specific state that you don't want to offload to a Command. Teams should try to be consistent within their own codebases about which responsibilities will be handled by Commands, and which will be handled here.
Reimplemented from frc2::Subsystem.
| void frc2::PIDSubsystem::SetSetpoint | ( | double | setpoint | ) |
Sets the setpoint for the subsystem.
| setpoint | the setpoint for the subsystem |
|
protectedpure virtual |
Uses the output from the PIDController.
| output | the output of the PIDController |
| setpoint | the setpoint of the PIDController (for feedforward) |