CTRE Phoenix 6 C++ 24.3.0
ctre::phoenix6::configs::FeedbackConfigs Class Reference

Configs that affect the feedback of this motor controller. More...

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

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

Public Member Functions

FeedbackConfigsWithFeedbackRotorOffset (double newFeedbackRotorOffset)
 Modifies this configuration's FeedbackRotorOffset parameter and returns itself for method-chaining and easier to use config API. More...
 
FeedbackConfigsWithSensorToMechanismRatio (double newSensorToMechanismRatio)
 Modifies this configuration's SensorToMechanismRatio parameter and returns itself for method-chaining and easier to use config API. More...
 
FeedbackConfigsWithRotorToSensorRatio (double newRotorToSensorRatio)
 Modifies this configuration's RotorToSensorRatio parameter and returns itself for method-chaining and easier to use config API. More...
 
FeedbackConfigsWithFeedbackSensorSource (signals::FeedbackSensorSourceValue newFeedbackSensorSource)
 Modifies this configuration's FeedbackSensorSource parameter and returns itself for method-chaining and easier to use config API. More...
 
FeedbackConfigsWithFeedbackRemoteSensorID (int newFeedbackRemoteSensorID)
 Modifies this configuration's FeedbackRemoteSensorID parameter and returns itself for method-chaining and easier to use config API. More...
 
FeedbackConfigsWithRemoteCANcoder (const hardware::core::CoreCANcoder &device)
 Helper method to configure this feedback group to use RemoteCANcoder by passing in the CANcoder object. More...
 
FeedbackConfigsWithFusedCANcoder (const hardware::core::CoreCANcoder &device)
 Helper method to configure this feedback group to use FusedCANcoder by passing in the CANcoder object. More...
 
FeedbackConfigsWithSyncCANcoder (const hardware::core::CoreCANcoder &device)
 Helper method to configure this feedback group to use SyncCANcoder by passing in the CANcoder object. More...
 
std::string ToString () const override
 
std::string Serialize () const override
 
ctre::phoenix::StatusCode Deserialize (const std::string &to_deserialize) override
 
virtual std::string ToString () const =0
 
virtual ctre::phoenix::StatusCode Deserialize (const std::string &string)=0
 
virtual std::string Serialize () const =0
 

Public Attributes

double FeedbackRotorOffset = 0.0
 This offset is applied to the absolute integrated rotor sensor. More...
 
double SensorToMechanismRatio = 1.0
 This is the ratio of sensor rotations to the mechanism's output. More...
 
double RotorToSensorRatio = 1.0
 Talon FX is capable of fusing a remote CANcoder with its rotor sensor to produce a high-bandwidth sensor source. More...
 
signals::FeedbackSensorSourceValue FeedbackSensorSource = signals::FeedbackSensorSourceValue::RotorSensor
 Choose what sensor source is reported via API and used by closed-loop and limit features. More...
 
int FeedbackRemoteSensorID = 0
 Device ID of which remote device to use. More...
 

Detailed Description

Configs that affect the feedback of this motor controller.

Includes feedback sensor source, any offsets for the feedback sensor, and various ratios to describe the relationship between the sensor and the mechanism for closed looping.

Member Function Documentation

◆ Deserialize()

ctre::phoenix::StatusCode ctre::phoenix6::configs::FeedbackConfigs::Deserialize ( const std::string &  to_deserialize)
inlineoverridevirtual

◆ Serialize()

std::string ctre::phoenix6::configs::FeedbackConfigs::Serialize ( ) const
inlineoverridevirtual

◆ ToString()

std::string ctre::phoenix6::configs::FeedbackConfigs::ToString ( ) const
inlineoverridevirtual

◆ WithFeedbackRemoteSensorID()

FeedbackConfigs & ctre::phoenix6::configs::FeedbackConfigs::WithFeedbackRemoteSensorID ( int  newFeedbackRemoteSensorID)
inline

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

Device ID of which remote device to use. This is not used if the Sensor Source is the internal rotor sensor.

  • Minimum Value: 0
  • Maximum Value: 62
  • Default Value: 0
  • Units:
Parameters
newFeedbackRemoteSensorIDParameter to modify
Returns
Itself

◆ WithFeedbackRotorOffset()

FeedbackConfigs & ctre::phoenix6::configs::FeedbackConfigs::WithFeedbackRotorOffset ( double  newFeedbackRotorOffset)
inline

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

This offset is applied to the absolute integrated rotor sensor. This can be used to zero the rotor in applications that are within one rotor rotation.

  • Minimum Value: -1
  • Maximum Value: 1
  • Default Value: 0.0
  • Units: rotations
Parameters
newFeedbackRotorOffsetParameter to modify
Returns
Itself

◆ WithFeedbackSensorSource()

FeedbackConfigs & ctre::phoenix6::configs::FeedbackConfigs::WithFeedbackSensorSource ( signals::FeedbackSensorSourceValue  newFeedbackSensorSource)
inline

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

Choose what sensor source is reported via API and used by closed-loop and limit features. The default is RotorSensor, which uses the internal rotor sensor in the Talon FX.

Choose RemoteCANcoder to use another CANcoder on the same CAN bus (this also requires setting FeedbackRemoteSensorID). Talon FX will update its position and velocity whenever CANcoder publishes its information on CAN bus.

Choose FusedCANcoder (requires Phoenix Pro) and Talon FX will fuse another CANcoder's information with the internal rotor, which provides the best possible position and velocity for accuracy and bandwidth (this also requires setting FeedbackRemoteSensorID). FusedCANcoder was developed for applications such as swerve-azimuth.

Choose SyncCANcoder (requires Phoenix Pro) and Talon FX will synchronize its internal rotor position against another CANcoder, then continue to use the rotor sensor for closed loop control (this also requires setting FeedbackRemoteSensorID). The TalonFX will report if its internal position differs significantly from the reported CANcoder position. SyncCANcoder was developed for mechanisms where there is a risk of the CANcoder failing in such a way that it reports a position that does not match the mechanism, such as the sensor mounting assembly breaking off.

Choose RemotePigeon2_Yaw, RemotePigeon2_Pitch, and RemotePigeon2_Roll to use another Pigeon2 on the same CAN bus (this also requires setting FeedbackRemoteSensorID). Talon FX will update its position to match the selected value whenever Pigeon2 publishes its information on CAN bus. Note that the Talon FX position will be in rotations and not degrees.

Note: When the feedback source is changed to FusedCANcoder, the Talon FX needs a period of time to fuse before sensor-based (soft-limit, closed loop, etc.) features are used. This period of time is determined by the update frequency of the CANcoder's Position signal.

Parameters
newFeedbackSensorSourceParameter to modify
Returns
Itself

◆ WithFusedCANcoder()

FeedbackConfigs & ctre::phoenix6::configs::FeedbackConfigs::WithFusedCANcoder ( const hardware::core::CoreCANcoder device)

Helper method to configure this feedback group to use FusedCANcoder by passing in the CANcoder object.

When using FusedCANcoder (requires Phoenix Pro), the Talon FX will fuse another CANcoder's information with the internal rotor, which provides the best possible position and velocity for accuracy and bandwidth. FusedCANcoder was developed for applications such as swerve-azimuth.

Parameters
deviceCANcoder reference to use for FusedCANcoder
Returns
Itself

◆ WithRemoteCANcoder()

FeedbackConfigs & ctre::phoenix6::configs::FeedbackConfigs::WithRemoteCANcoder ( const hardware::core::CoreCANcoder device)

Helper method to configure this feedback group to use RemoteCANcoder by passing in the CANcoder object.

When using RemoteCANcoder, the Talon FX will use another CANcoder on the same CAN bus. Talon FX will update its position and velocity whenever CANcoder publishes its information on CAN bus.

Parameters
deviceCANcoder reference to use for RemoteCANcoder
Returns
Itself

◆ WithRotorToSensorRatio()

FeedbackConfigs & ctre::phoenix6::configs::FeedbackConfigs::WithRotorToSensorRatio ( double  newRotorToSensorRatio)
inline

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

Talon FX is capable of fusing a remote CANcoder with its rotor sensor to produce a high-bandwidth sensor source. This feature requires specifying the ratio between the remote sensor and the motor rotor. Note if this is set to zero, device will reset back to one.

  • Minimum Value: -1000
  • Maximum Value: 1000
  • Default Value: 1.0
  • Units: scalar
Parameters
newRotorToSensorRatioParameter to modify
Returns
Itself

◆ WithSensorToMechanismRatio()

FeedbackConfigs & ctre::phoenix6::configs::FeedbackConfigs::WithSensorToMechanismRatio ( double  newSensorToMechanismRatio)
inline

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

This is the ratio of sensor rotations to the mechanism's output. This is equivalent to the mechanism's gear ratio if the sensor is located on the input of a gearbox. If sensor is on the output of a gearbox, then this is typically set to 1. Note if this is set to zero, device will reset back to one.

  • Minimum Value: -1000
  • Maximum Value: 1000
  • Default Value: 1.0
  • Units: scalar
Parameters
newSensorToMechanismRatioParameter to modify
Returns
Itself

◆ WithSyncCANcoder()

FeedbackConfigs & ctre::phoenix6::configs::FeedbackConfigs::WithSyncCANcoder ( const hardware::core::CoreCANcoder device)

Helper method to configure this feedback group to use SyncCANcoder by passing in the CANcoder object.

When using SyncCANcoder (requires Phoenix Pro), the Talon FX will synchronize its internal rotor position against another CANcoder, then continue to use the rotor sensor for closed loop control. The TalonFX will report if its internal position differs significantly from the reported CANcoder position. SyncCANcoder was developed for mechanisms where there is a risk of the CANcoder failing in such a way that it reports a position that does not match the mechanism, such as the sensor mounting assembly breaking off.

Parameters
deviceCANcoder reference to use for SyncCANcoder
Returns
Itself

Member Data Documentation

◆ FeedbackRemoteSensorID

int ctre::phoenix6::configs::FeedbackConfigs::FeedbackRemoteSensorID = 0

Device ID of which remote device to use.

This is not used if the Sensor Source is the internal rotor sensor.

  • Minimum Value: 0
  • Maximum Value: 62
  • Default Value: 0
  • Units:

◆ FeedbackRotorOffset

double ctre::phoenix6::configs::FeedbackConfigs::FeedbackRotorOffset = 0.0

This offset is applied to the absolute integrated rotor sensor.

This can be used to zero the rotor in applications that are within one rotor rotation.

  • Minimum Value: -1
  • Maximum Value: 1
  • Default Value: 0.0
  • Units: rotations

◆ FeedbackSensorSource

signals::FeedbackSensorSourceValue ctre::phoenix6::configs::FeedbackConfigs::FeedbackSensorSource = signals::FeedbackSensorSourceValue::RotorSensor

Choose what sensor source is reported via API and used by closed-loop and limit features.

The default is RotorSensor, which uses the internal rotor sensor in the Talon FX.

Choose RemoteCANcoder to use another CANcoder on the same CAN bus (this also requires setting FeedbackRemoteSensorID). Talon FX will update its position and velocity whenever CANcoder publishes its information on CAN bus.

Choose FusedCANcoder (requires Phoenix Pro) and Talon FX will fuse another CANcoder's information with the internal rotor, which provides the best possible position and velocity for accuracy and bandwidth (this also requires setting FeedbackRemoteSensorID). FusedCANcoder was developed for applications such as swerve-azimuth.

Choose SyncCANcoder (requires Phoenix Pro) and Talon FX will synchronize its internal rotor position against another CANcoder, then continue to use the rotor sensor for closed loop control (this also requires setting FeedbackRemoteSensorID). The TalonFX will report if its internal position differs significantly from the reported CANcoder position. SyncCANcoder was developed for mechanisms where there is a risk of the CANcoder failing in such a way that it reports a position that does not match the mechanism, such as the sensor mounting assembly breaking off.

Choose RemotePigeon2_Yaw, RemotePigeon2_Pitch, and RemotePigeon2_Roll to use another Pigeon2 on the same CAN bus (this also requires setting FeedbackRemoteSensorID). Talon FX will update its position to match the selected value whenever Pigeon2 publishes its information on CAN bus. Note that the Talon FX position will be in rotations and not degrees.

Note: When the feedback source is changed to FusedCANcoder, the Talon FX needs a period of time to fuse before sensor-based (soft-limit, closed loop, etc.) features are used. This period of time is determined by the update frequency of the CANcoder's Position signal.

◆ RotorToSensorRatio

double ctre::phoenix6::configs::FeedbackConfigs::RotorToSensorRatio = 1.0

Talon FX is capable of fusing a remote CANcoder with its rotor sensor to produce a high-bandwidth sensor source.

This feature requires specifying the ratio between the remote sensor and the motor rotor. Note if this is set to zero, device will reset back to one.

  • Minimum Value: -1000
  • Maximum Value: 1000
  • Default Value: 1.0
  • Units: scalar

◆ SensorToMechanismRatio

double ctre::phoenix6::configs::FeedbackConfigs::SensorToMechanismRatio = 1.0

This is the ratio of sensor rotations to the mechanism's output.

This is equivalent to the mechanism's gear ratio if the sensor is located on the input of a gearbox. If sensor is on the output of a gearbox, then this is typically set to 1. Note if this is set to zero, device will reset back to one.

  • Minimum Value: -1000
  • Maximum Value: 1000
  • Default Value: 1.0
  • Units: scalar

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