# PigeonSwerve
declaration: package: swervelib.imu, class: PigeonSwerve

Package swervelib.imu

# Class PigeonSwerve

java.lang.Object
swervelib.imu.SwerveIMU
swervelib.imu.PigeonSwerve

public class PigeonSwerve extends SwerveIMU
SwerveIMU interface for the Pigeon.

## Field Summary

Fields
Modifier and Type
Field
Description
`(package private) com.ctre.phoenix.sensors.WPI_PigeonIMU`
`imu`
Pigeon v1 IMU device.
`private edu.wpi.first.math.geometry.Rotation3d`
`offset`
Offset for the Pigeon.

## Constructor Summary

Constructors
Constructor
Description
`PigeonSwerve(int canid)`
Generate the SwerveIMU for pigeon.

## Method Summary

Modifier and Type
Method
Description
`void`
`clearStickyFaults()`
Clear sticky faults on IMU.
`void`
`factoryDefault()`
Reset IMU to factory default.
`Optional<edu.wpi.first.math.geometry.Translation3d>`
`getAccel()`
Fetch the acceleration [x, y, z] from the IMU in meters per second squared.
`Object`
`getIMU()`
Get the instantiated IMU object.
`edu.wpi.first.math.geometry.Rotation3d`
`getRawRotation3d()`
Fetch the `Rotation3d` from the IMU without any zeroing.
`edu.wpi.first.math.geometry.Rotation3d`
`getRotation3d()`
Fetch the `Rotation3d` from the IMU.
`void`
`setOffset(edu.wpi.first.math.geometry.Rotation3d offset)`
Set the gyro offset.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### imu

com.ctre.phoenix.sensors.WPI_PigeonIMU imu
Pigeon v1 IMU device.

### offset

private edu.wpi.first.math.geometry.Rotation3d offset
Offset for the Pigeon.

## Constructor Details

### PigeonSwerve

public PigeonSwerve(int canid)
Generate the SwerveIMU for pigeon.

Parameters:
  `canid` - CAN ID for the pigeon, does not support CANBus.

## Method Details

### factoryDefault

public void factoryDefault()
Reset IMU to factory default.

Specified by:
  `factoryDefault` in class `SwerveIMU`

### clearStickyFaults

public void clearStickyFaults()
Clear sticky faults on IMU.

Specified by:
  `clearStickyFaults` in class `SwerveIMU`

### setOffset

public void setOffset(edu.wpi.first.math.geometry.Rotation3d offset)
Set the gyro offset.

Specified by:
  `setOffset` in class `SwerveIMU`
Parameters:
  `offset` - gyro offset as a `Rotation3d`.

### getRawRotation3d

public edu.wpi.first.math.geometry.Rotation3d getRawRotation3d()
Fetch the `Rotation3d` from the IMU without any zeroing. Robot relative.

Specified by:
  `getRawRotation3d` in class `SwerveIMU`
Returns:
  `Rotation3d` from the IMU.

### getRotation3d

public edu.wpi.first.math.geometry.Rotation3d getRotation3d()
Fetch the `Rotation3d` from the IMU. Robot relative.

Specified by:
  `getRotation3d` in class `SwerveIMU`
Returns:
  `Rotation3d` from the IMU.

### getAccel

public Optional<edu.wpi.first.math.geometry.Translation3d> getAccel()
Fetch the acceleration [x, y, z] from the IMU in meters per second squared. If acceleration isn't supported returns empty.

Specified by:
  `getAccel` in class `SwerveIMU`
Returns:
  `Translation3d` of the acceleration as an `Optional`.

### getIMU

public Object getIMU()
Get the instantiated IMU object.

Specified by:
  `getIMU` in class `SwerveIMU`
Returns:
  IMU object.