CTRE Phoenix 6 C++ 24.2.0
ctre::phoenix6::configs::SlotConfigs Class Reference

Gains for the specified slot. More...

#include <ctre/phoenix6/configs/Configs.hpp>

Inheritance diagram for ctre::phoenix6::configs::SlotConfigs:
ctre::phoenix6::configs::ParentConfiguration ctre::phoenix6::ISerializable

Public Member Functions

SlotConfigsWithKP (double newKP)
 Modifies this configuration's kP parameter and returns itself for method-chaining and easier to use config API. More...
 
SlotConfigsWithKI (double newKI)
 Modifies this configuration's kI parameter and returns itself for method-chaining and easier to use config API. More...
 
SlotConfigsWithKD (double newKD)
 Modifies this configuration's kD parameter and returns itself for method-chaining and easier to use config API. More...
 
SlotConfigsWithKS (double newKS)
 Modifies this configuration's kS parameter and returns itself for method-chaining and easier to use config API. More...
 
SlotConfigsWithKV (double newKV)
 Modifies this configuration's kV parameter and returns itself for method-chaining and easier to use config API. More...
 
SlotConfigsWithKA (double newKA)
 Modifies this configuration's kA parameter and returns itself for method-chaining and easier to use config API. More...
 
SlotConfigsWithKG (double newKG)
 Modifies this configuration's kG parameter and returns itself for method-chaining and easier to use config API. More...
 
SlotConfigsWithGravityType (signals::GravityTypeValue newGravityType)
 Modifies this configuration's GravityType parameter and returns itself for method-chaining and easier to use config API. More...
 
SlotConfigsWithStaticFeedforwardSign (signals::StaticFeedforwardSignValue newStaticFeedforwardSign)
 Modifies this configuration's StaticFeedforwardSign parameter and returns itself for method-chaining and easier to use config API. More...
 
std::string ToString () const
 
std::string Serialize () const
 
ctre::phoenix::StatusCode Deserialize (const std::string &to_deserialize)
 
virtual std::string ToString () const =0
 
virtual ctre::phoenix::StatusCode Deserialize (const std::string &string)=0
 
virtual std::string Serialize () const =0
 

Static Public Member Functions

static SlotConfigs From (const Slot0Configs &value)
 
static SlotConfigs From (const Slot1Configs &value)
 
static SlotConfigs From (const Slot2Configs &value)
 

Public Attributes

double kP = 0
 Proportional Gain. More...
 
double kI = 0
 Integral Gain. More...
 
double kD = 0
 Derivative Gain. More...
 
double kS = 0
 Static Feedforward Gain. More...
 
double kV = 0
 Velocity Feedforward Gain. More...
 
double kA = 0
 Acceleration Feedforward Gain. More...
 
double kG = 0
 Gravity Feedforward Gain. More...
 
signals::GravityTypeValue GravityType = signals::GravityTypeValue::Elevator_Static
 Gravity Feedforward Type. More...
 
signals::StaticFeedforwardSignValue StaticFeedforwardSign = signals::StaticFeedforwardSignValue::UseVelocitySign
 Static Feedforward Sign during position closed loop. More...
 
int SlotNumber = 0
 Chooses which slot these configs are for. More...
 

Detailed Description

Gains for the specified slot.

If this slot is selected, these gains are used in closed loop control requests.

Member Function Documentation

◆ Deserialize()

ctre::phoenix::StatusCode ctre::phoenix6::configs::SlotConfigs::Deserialize ( const std::string &  to_deserialize)
inlinevirtual

◆ From() [1/3]

static SlotConfigs ctre::phoenix6::configs::SlotConfigs::From ( const Slot0Configs value)
static

◆ From() [2/3]

static SlotConfigs ctre::phoenix6::configs::SlotConfigs::From ( const Slot1Configs value)
static

◆ From() [3/3]

static SlotConfigs ctre::phoenix6::configs::SlotConfigs::From ( const Slot2Configs value)
static

◆ Serialize()

std::string ctre::phoenix6::configs::SlotConfigs::Serialize ( ) const
inlinevirtual

◆ ToString()

std::string ctre::phoenix6::configs::SlotConfigs::ToString ( ) const
inlinevirtual

◆ WithGravityType()

SlotConfigs & ctre::phoenix6::configs::SlotConfigs::WithGravityType ( signals::GravityTypeValue  newGravityType)
inline

Modifies this configuration's GravityType parameter and returns itself for method-chaining and easier to use config API.

Parameters
newGravityTypeParameter to modify
Returns
Itself

◆ WithKA()

SlotConfigs & ctre::phoenix6::configs::SlotConfigs::WithKA ( double  newKA)
inline

Modifies this configuration's kA parameter and returns itself for method-chaining and easier to use config API.

Parameters
newKAParameter to modify
Returns
Itself

◆ WithKD()

SlotConfigs & ctre::phoenix6::configs::SlotConfigs::WithKD ( double  newKD)
inline

Modifies this configuration's kD parameter and returns itself for method-chaining and easier to use config API.

Parameters
newKDParameter to modify
Returns
Itself

◆ WithKG()

SlotConfigs & ctre::phoenix6::configs::SlotConfigs::WithKG ( double  newKG)
inline

Modifies this configuration's kG parameter and returns itself for method-chaining and easier to use config API.

Parameters
newKGParameter to modify
Returns
Itself

◆ WithKI()

SlotConfigs & ctre::phoenix6::configs::SlotConfigs::WithKI ( double  newKI)
inline

Modifies this configuration's kI parameter and returns itself for method-chaining and easier to use config API.

Parameters
newKIParameter to modify
Returns
Itself

◆ WithKP()

SlotConfigs & ctre::phoenix6::configs::SlotConfigs::WithKP ( double  newKP)
inline

Modifies this configuration's kP parameter and returns itself for method-chaining and easier to use config API.

Parameters
newKPParameter to modify
Returns
Itself

◆ WithKS()

SlotConfigs & ctre::phoenix6::configs::SlotConfigs::WithKS ( double  newKS)
inline

Modifies this configuration's kS parameter and returns itself for method-chaining and easier to use config API.

Parameters
newKSParameter to modify
Returns
Itself

◆ WithKV()

SlotConfigs & ctre::phoenix6::configs::SlotConfigs::WithKV ( double  newKV)
inline

Modifies this configuration's kV parameter and returns itself for method-chaining and easier to use config API.

Parameters
newKVParameter to modify
Returns
Itself

◆ WithStaticFeedforwardSign()

SlotConfigs & ctre::phoenix6::configs::SlotConfigs::WithStaticFeedforwardSign ( signals::StaticFeedforwardSignValue  newStaticFeedforwardSign)
inline

Modifies this configuration's StaticFeedforwardSign parameter and returns itself for method-chaining and easier to use config API.

Parameters
newStaticFeedforwardSignParameter to modify
Returns
Itself

Member Data Documentation

◆ GravityType

signals::GravityTypeValue ctre::phoenix6::configs::SlotConfigs::GravityType = signals::GravityTypeValue::Elevator_Static

Gravity Feedforward Type.

This determines the type of the gravity feedforward. Choose Elevator_Static for systems where the gravity feedforward is constant, such as an elevator. The gravity feedforward output will always have the same sign. Choose Arm_Cosine for systems where the gravity feedforward is dependent on the angular position of the mechanism, such as an arm. The gravity feedforward output will vary depending on the mechanism angular position. Note that the sensor offset and ratios must be configured so that the sensor reports a position of 0 when the mechanism is horizonal (parallel to the ground), and the reported sensor position is 1:1 with the mechanism.

◆ kA

double ctre::phoenix6::configs::SlotConfigs::kA = 0

Acceleration Feedforward Gain.

The units for this gain is dependent on the control mode. Since this gain is multiplied by the requested acceleration, the units should be defined as units of output per unit of requested input acceleration. For example, when controlling velocity using a duty cycle closed loop, the units for the acceleration feedfoward gain will be duty cycle per requested rps/s, or 1/(rps/s).

Minimum Value: 0 Maximum Value: 3.4e+38 Default Value: 0 Units:

◆ kD

double ctre::phoenix6::configs::SlotConfigs::kD = 0

Derivative Gain.

The units for this gain is dependent on the control mode. Since this gain is multiplied by the derivative of error in the input with respect to time (in units of seconds), the units should be defined as units of output per unit of the differentiated input error. For example, when controlling velocity using a duty cycle closed loop, the derivative of velocity with respect to time is rps/s, which is acceleration. Therefore, the units for the derivative gain will be duty cycle per unit of acceleration error, or 1/(rps/s).

Minimum Value: 0 Maximum Value: 3.4e+38 Default Value: 0 Units:

◆ kG

double ctre::phoenix6::configs::SlotConfigs::kG = 0

Gravity Feedforward Gain.

This is added to the closed loop output. The sign is determined by the type of gravity feedforward. The unit for this constant is dependent on the control mode, typically fractional duty cycle, voltage, or torque current.

Minimum Value: -512 Maximum Value: 511 Default Value: 0 Units:

◆ kI

double ctre::phoenix6::configs::SlotConfigs::kI = 0

Integral Gain.

The units for this gain is dependent on the control mode. Since this gain is multiplied by error in the input integrated over time (in units of seconds), the units should be defined as units of output per unit of integrated input error. For example, when controlling velocity using a duty cycle closed loop, integrating velocity over time results in rps * s = rotations. Therefore, the units for the integral gain will be duty cycle per rotation of accumulated error, or 1/rot.

Minimum Value: 0 Maximum Value: 3.4e+38 Default Value: 0 Units:

◆ kP

double ctre::phoenix6::configs::SlotConfigs::kP = 0

Proportional Gain.

The units for this gain is dependent on the control mode. Since this gain is multiplied by error in the input, the units should be defined as units of output per unit of input error. For example, when controlling velocity using a duty cycle closed loop, the units for the proportional gain will be duty cycle per rps of error, or 1/rps.

Minimum Value: 0 Maximum Value: 3.4e+38 Default Value: 0 Units:

◆ kS

double ctre::phoenix6::configs::SlotConfigs::kS = 0

Static Feedforward Gain.

This is added to the closed loop output. The unit for this constant is dependent on the control mode, typically fractional duty cycle, voltage, or torque current. The sign is typically determined by reference velocity when using position and velocity closed loop modes. However, when using position closed loop with zero velocity reference (no motion profiling), application can instead use the position closed loop error by setting the Static Feedforward Sign configuration parameter. In which case, we recommend the minimal amount of kS, otherwise the motor output may dither when closed loop error is near zero.

Minimum Value: -512 Maximum Value: 511 Default Value: 0 Units:

◆ kV

double ctre::phoenix6::configs::SlotConfigs::kV = 0

Velocity Feedforward Gain.

The units for this gain is dependent on the control mode. Since this gain is multiplied by the requested velocity, the units should be defined as units of output per unit of requested input velocity. For example, when controlling velocity using a duty cycle closed loop, the units for the velocity feedfoward gain will be duty cycle per requested rps, or 1/rps.

Minimum Value: 0 Maximum Value: 3.4e+38 Default Value: 0 Units:

◆ SlotNumber

int ctre::phoenix6::configs::SlotConfigs::SlotNumber = 0

Chooses which slot these configs are for.

◆ StaticFeedforwardSign

signals::StaticFeedforwardSignValue ctre::phoenix6::configs::SlotConfigs::StaticFeedforwardSign = signals::StaticFeedforwardSignValue::UseVelocitySign

Static Feedforward Sign during position closed loop.

This determines the sign of the applied kS during position closed-loop modes. The default behavior uses the velocity feedforward sign. This works well with position closed loop when velocity reference is specified (motion profiling). However, when using position closed loop with zero velocity reference (no motion profiling), the application may want to apply static feedforward based on the closed loop error sign instead. In which case, we recommend the minimal amount of kS, otherwise the motor output may dither when closed loop error is near zero.


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