- Set your team number.
- Read through and configure
frc.robot.Constants
. Parts of the code that need to be configured for your specific robot setup are marked with comments starting withFIXME
.
Don't configure the
*_MODULE_STEER_OFFSET
constants yet. Those are configured after code is deployed.
- Read through and configure
frc.robot.subsystems.DrivetrainSubsystem
. Parts of the code that need to be configured for your specific robot setup are marked with comments starting withFIXME
. - At this point deploy the code. If it endlessly crashes at startup make sure your CAN IDs are properly set and make sure you are using the proper swerve module configurations for your hardware.
Now that we have code running on the robot, we can set up our module steering offsets. In order to do this we must have our encoder values displayed to the dashboard.
Before setting up module offsets ensure each offset is set to
-Math.toRadians(0.0)
and that code is deployed to the robot. This must be done each time offsets are determined.
- Turn the robot on its side, so it is easy to move each module by hand.
By default, module sensor information is displayed in the
Drivetrain
tab on ShuffleBoard.
- Rotate each module so the bevel gear on the sides of each wheel are pointing to the robot's left.
When aligning the wheels they must be as straight as possible. It is recommended to use a long straight edge such as a piece of 2x1 in order to make the wheels straight.
-
Record the angles of each module using the reading displayed on the dashboard.
-
Set the values of the
*_MODULE_STEER_OFFSET
constants inConstants
to-Math.toRadians(<the angle you recorded>)
-
Re-deploy and try to drive the robot forwards. All wheels should stay parallel to each other.
-
Make sure all the wheels are spinning in the correct direction. If not, add 180 degrees to the offset of each wheel that is spinning in the incorrect direction. (I.e.
-Math.toRadians(<angle> + 180.0))
)
Can IDs 1 Front Left Drive Motor 2 Front Left Steer Motor 3 Back Left Drive Motor 4 Back Left Steer Motor 5 Front Right Drive Motor 6 Front Right Steer Motor 7 Back Right Drive Motor 8 Back Right Steer Motor 9 Front Left Steer Encoder 10 Front Right Steer Encoder 11 Back Left Steer Encoder 12 Back Right Steer Encoder 13 Lower Tower Motor 14 Upper Tower Motor 15 Shooter Left 16 Shooter Right 17 Climber Left 18 Climber Right 19 Intake Motor 20 Pigeon