CTRE Phoenix C++ 5.33.0
ctre::phoenix::sensors::WPI_Pigeon2 Class Reference

Pigeon 2 Class. More...

#include <ctre/phoenix/sensors/WPI_Pigeon2.h>

Inheritance diagram for ctre::phoenix::sensors::WPI_Pigeon2:
ctre::phoenix::sensors::Pigeon2 ctre::phoenix::sensors::BasePigeon ctre::phoenix::CANBusAddressable

Public Member Functions

 WPI_Pigeon2 (int deviceNumber, std::string const &canbus="")
 Construtor for WPI_Pigeon2. More...
 
 ~WPI_Pigeon2 ()
 
 WPI_Pigeon2 ()=delete
 
 WPI_Pigeon2 (WPI_Pigeon2 const &)=delete
 
WPI_Pigeon2operator= (WPI_Pigeon2 const &)=delete
 
void InitSendable (wpi::SendableBuilder &builder) override
 
void Reset ()
 Resets the Pigeon 2 to a heading of zero. More...
 
double GetAngle () const
 Returns the heading of the robot in degrees. More...
 
double GetRate () const
 Returns the rate of rotation of the Pigeon 2. More...
 
frc::Rotation2d GetRotation2d () const
 Returns the heading of the robot as a frc::Rotation2d. More...
 
- Public Member Functions inherited from ctre::phoenix::sensors::Pigeon2
 Pigeon2 (int deviceNumber, std::string const &canbus="")
 Create a Pigeon object that communicates with Pigeon on CAN Bus. More...
 
ErrorCode GetFaults (Pigeon2_Faults &toFill)
 Gets the fault status. More...
 
ErrorCode GetStickyFaults (Pigeon2_StickyFaults &toFill)
 Gets the sticky fault status. More...
 
ErrorCode ConfigMountPose (AxisDirection forward, AxisDirection up, int timeoutMs=50)
 Configure the Mount Pose using the primary axis. More...
 
ErrorCode ConfigMountPose (double yaw, double pitch, double roll, int timeoutMs=0)
 Configure the mounting pose of the Pigeon2. More...
 
ErrorCode ConfigMountPoseYaw (double yaw, int timeoutMs=0)
 Configure the mounting pose Yaw of the Pigeon2. More...
 
ErrorCode ConfigMountPosePitch (double pitch, int timeoutMs=0)
 Configure the mounting pose Pitch of the Pigeon2. More...
 
ErrorCode ConfigMountPoseRoll (double roll, int timeoutMs=0)
 Configure the mounting pose Roll of the Pigeon2. More...
 
ErrorCode ConfigXAxisGyroError (double err, int timeoutMs=0)
 Configures the X Axis Gyroscope Error for 1 rotation. More...
 
ErrorCode ConfigYAxisGyroError (double err, int timeoutMs=0)
 Configures the Y Axis Gyroscope Error for 1 rotation. More...
 
ErrorCode ConfigZAxisGyroError (double err, int timeoutMs=0)
 Configures the Z Axis Gyroscope Error for 1 rotation. More...
 
ErrorCode ConfigEnableCompass (bool enable, int timeoutMs=0)
 Enables the magnetometer fusion for Pigeon2. More...
 
ErrorCode ConfigDisableTemperatureCompensation (bool disable, int timeoutMs=0)
 Disables temperature compensation from Pigeon2. More...
 
ErrorCode ConfigDisableNoMotionCalibration (bool disable, int timeoutMs=0)
 Disables the no-motion calibration from Pigeon2. More...
 
ErrorCode ZeroGyroBiasNow (int timeoutMs=0)
 Performs an offset calibration on gyro bias. More...
 
ErrorCode GetGravityVector (double gravVector[3]) const
 Get the Gravity Vector. More...
 
ErrorCode ConfigAllSettings (Pigeon2Configuration &settings, int timeoutMs=50)
 Configures all persistent settings. More...
 
void GetAllConfigs (Pigeon2Configuration &allConfigs, int timeoutMs=50)
 Gets all persistant settings. More...
 
- Public Member Functions inherited from ctre::phoenix::sensors::BasePigeon
 BasePigeon (int deviceNumber, std::string const &version, std::string const &canbus="")
 Create a Pigeon object that communicates with Pigeon on CAN Bus. More...
 
 ~BasePigeon ()
 
int SetYaw (double angleDeg, int timeoutMs=0)
 Sets the Yaw register to the specified value. More...
 
int AddYaw (double angleDeg, int timeoutMs=0)
 Atomically add to the Yaw register. More...
 
int SetYawToCompass (int timeoutMs=0)
 Sets the Yaw register to match the current compass value. More...
 
int SetAccumZAngle (double angleDeg, int timeoutMs=0)
 Sets the AccumZAngle. More...
 
ErrorCode GetLastError () const
 Call GetLastError() generated by this object. More...
 
ErrorCode Get6dQuaternion (double wxyz[4]) const
 Get 6d Quaternion data. More...
 
ErrorCode GetYawPitchRoll (double ypr[3]) const
 Get Yaw, Pitch, and Roll data. More...
 
double GetYaw () const
 Get the yaw from the Pigeon. More...
 
double GetPitch () const
 Get the pitch from the Pigeon. More...
 
double GetRoll () const
 Get the roll from the Pigeon. More...
 
int GetAccumGyro (double xyz_deg[3]) const
 Get AccumGyro data. More...
 
double GetAbsoluteCompassHeading () const
 Get the absolute compass heading. More...
 
double GetCompassHeading () const
 Get the continuous compass heading. More...
 
double GetCompassFieldStrength () const
 Gets the compass' measured magnetic field strength. More...
 
double GetTemp () const
 Gets the temperature of the pigeon. More...
 
uint32_t GetUpTime () const
 Gets the current Pigeon uptime. More...
 
int GetRawMagnetometer (int16_t rm_xyz[3]) const
 Get Raw Magnetometer data. More...
 
int GetBiasedMagnetometer (int16_t bm_xyz[3]) const
 Get Biased Magnetometer data. More...
 
int GetBiasedAccelerometer (int16_t ba_xyz[3]) const
 Get Biased Accelerometer data. More...
 
int GetRawGyro (double xyz_dps[3]) const
 Get Raw Gyro data. More...
 
uint32_t GetResetCount () const
 
uint32_t GetResetFlags () const
 
uint32_t GetFirmVers () const
 
bool HasResetOccurred () const
 
ErrorCode ConfigSetCustomParam (int newValue, int paramIndex, int timeoutMs=0)
 Sets the value of a custom parameter. More...
 
int ConfigGetCustomParam (int paramIndex, int timeoutMs=0)
 Gets the value of a custom parameter. More...
 
ErrorCode ConfigSetParameter (ParamEnum param, double value, uint8_t subValue, int ordinal, int timeoutMs=0)
 Sets a parameter. More...
 
double ConfigGetParameter (ctre::phoenix::ParamEnum param, int ordinal, int timeoutMs=0)
 Gets a parameter. More...
 
ErrorCode ConfigGetParameter (ParamEnum param, int32_t valueToSend, int32_t &valueReceived, uint8_t &subValue, int32_t ordinal, int32_t timeoutMs)
 Gets a parameter by passing an int by reference. More...
 
ErrorCode SetStatusFramePeriod (PigeonIMU_StatusFrame statusFrame, uint8_t periodMs, int timeoutMs=0)
 Sets the period of the given status frame. More...
 
int GetStatusFramePeriod (PigeonIMU_StatusFrame frame, int timeoutMs=0)
 Gets the period of the given status frame. More...
 
ErrorCode SetControlFramePeriod (PigeonIMU_ControlFrame frame, int periodMs)
 Sets the period of the given control frame. More...
 
int GetFirmwareVersion ()
 Gets the firmware version of the device. More...
 
ErrorCode ClearStickyFaults (int timeoutMs=0)
 Clears the Sticky Faults. More...
 
void * GetLowLevelHandle () const
 
virtual ctre::phoenix::ErrorCode ConfigAllSettings (const BasePigeonConfiguration &allConfigs, int timeoutMs=50)
 Configures all persistent settings. More...
 
virtual void GetAllConfigs (BasePigeonConfiguration &allConfigs, int timeoutMs=50)
 Gets all persistant settings. More...
 
virtual ErrorCode ConfigFactoryDefault (int timeoutMs=50)
 Configures all persistent settings to defaults. More...
 
virtual BasePigeonSimCollectionGetSimCollection ()
 
- Public Member Functions inherited from ctre::phoenix::CANBusAddressable
 CANBusAddressable (int deviceNumber)
 Constructor for a CANBusAddressable device. More...
 
int GetDeviceNumber ()
 

Additional Inherited Members

- Static Public Member Functions inherited from ctre::phoenix::sensors::BasePigeon
static void DestroyAllBasePigeons ()
 Destructs all pigeon objects. More...
 
- Protected Member Functions inherited from ctre::phoenix::sensors::BasePigeon
 BasePigeon (ctre::phoenix::motorcontrol::can::TalonSRX &talonSrx)
 

Detailed Description

Pigeon 2 Class.

Class supports communicating over CANbus.

Deprecated:
This device's Phoenix 5 API is deprecated for removal in the 2025 season. Users should update to Phoenix 6 firmware and migrate to the Phoenix 6 API. A migration guide is available at https://v6.docs.ctr-electronics.com/en/stable/docs/migration/migration-guide/index.html.

If the Phoenix 5 API must be used for this device, the device must have 22.X firmware. This firmware is available in Tuner X after selecting Phoenix 5 in the firmware year dropdown.

Constructor & Destructor Documentation

◆ WPI_Pigeon2() [1/3]

ctre::phoenix::sensors::WPI_Pigeon2::WPI_Pigeon2 ( int  deviceNumber,
std::string const &  canbus = "" 
)

Construtor for WPI_Pigeon2.

Parameters
deviceNumberCAN Device ID of the Pigeon 2.
canbusName of the CANbus; can be a CANivore device name or serial number. Pass in nothing or "rio" to use the roboRIO.

◆ ~WPI_Pigeon2()

ctre::phoenix::sensors::WPI_Pigeon2::~WPI_Pigeon2 ( )

◆ WPI_Pigeon2() [2/3]

ctre::phoenix::sensors::WPI_Pigeon2::WPI_Pigeon2 ( )
delete

◆ WPI_Pigeon2() [3/3]

ctre::phoenix::sensors::WPI_Pigeon2::WPI_Pigeon2 ( WPI_Pigeon2 const &  )
delete

Member Function Documentation

◆ GetAngle()

double ctre::phoenix::sensors::WPI_Pigeon2::GetAngle ( ) const

Returns the heading of the robot in degrees.

The angle increases as the Pigeon 2 turns clockwise when looked at from the top. This follows the NED axis convention.

The angle is continuous; that is, it will continue from 360 to 361 degrees. This allows for algorithms that wouldn't want to see a discontinuity in the gyro output as it sweeps past from 360 to 0 on the second time around.

Returns
The current heading of the robot in degrees

◆ GetRate()

double ctre::phoenix::sensors::WPI_Pigeon2::GetRate ( ) const

Returns the rate of rotation of the Pigeon 2.

The rate is positive as the Pigeon 2 turns clockwise when looked at from the top.

Returns
The current rate in degrees per second

◆ GetRotation2d()

frc::Rotation2d ctre::phoenix::sensors::WPI_Pigeon2::GetRotation2d ( ) const

Returns the heading of the robot as a frc::Rotation2d.

The angle increases as the Pigeon 2 turns counterclockwise when looked at from the top. This follows the NWU axis convention.

The angle is continuous; that is, it will continue from 360 to 361 degrees. This allows for algorithms that wouldn't want to see a discontinuity in the gyro output as it sweeps past from 360 to 0 on the second time around.

Returns
The current heading of the robot as a frc::Rotation2d

◆ InitSendable()

void ctre::phoenix::sensors::WPI_Pigeon2::InitSendable ( wpi::SendableBuilder &  builder)
override

◆ operator=()

WPI_Pigeon2 & ctre::phoenix::sensors::WPI_Pigeon2::operator= ( WPI_Pigeon2 const &  )
delete

◆ Reset()

void ctre::phoenix::sensors::WPI_Pigeon2::Reset ( )

Resets the Pigeon 2 to a heading of zero.

This can be used if there is significant drift in the gyro, and it needs to be recalibrated after it has been running.


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