Creating your first configuration
DevilBotz 2876 Swerve Bring-Up Checklist
Compliments of the DevilBotz 2876!
Updated: 2024-02-03
Printable version
Resources
REV Robotics Hardware Client - https://docs.revrobotics.com/rev-hardware-client/
for configuring Spark Max Motor Controllers and other Rev devices
Phoenix Tuner X - https://v6.docs.ctr-electronics.com/en/stable/docs/tuner/index.html
for configuring CanCoders and other CTR devices
Swerve Orientation Diagram
Note: When viewed from the top, make sure the sides of the wheel with the bevel gear are pointing to the left
Step 1: Module Types
Model, Version, Etc | |
Motor | |
Controller | |
Absolute Encoder | |
IMU |
Step 2: Build Specific Details
Measure the module center relative to the robot center
Module | X "Front" (Inches) | Y "Left" (Inches) |
---|---|---|
Front Left (FL) | + | + |
Front Right (FR) | + | - |
Back Left (BL) | - | + |
Back Right (BR) | - | - |
Measure the wheel diameter in meters
Note: Most encoders now normalize the reported values to
-1
to1
, so the Encoder Resolution when computing the conversion factors should generally be “1
”. Only known exception is the TalonSRX.
Find the drive/angle gear ratio from the swerve module manufacturer specs
Calculate the
Drive Motor Conversion Factor (meters/rotation) = (PI * WHEEL DIAMETER IN METERS) / (GEAR RATIO * ENCODER RESOLUTION)
Angle Motor Conversion Factor (degrees/rotation) = 360 / (GEAR RATIO * ENCODER RESOLUTION)
Note: For Absolute Encoders attached directly to the dataport on the SparkMAX, the Conversion Factor is 360
Motor | Wheel Diameter (meters) | Gear Ratio | Encoder Resolution (CPR) | Conversion Factor |
---|---|---|---|---|
Drive | 1 | |||
Angle | N/A | 1 |
Step 3: Electrical Characteristics
Set/Verify the CAN IDs for each module
Note: Update the FW for each module and reset any stored settings to factory defaults
Module | Motor CAN IDs | Motor CAN IDs | Encoder CAN/Channel ID |
---|---|---|---|
Drive | Angle | Absolute Encoder | |
Front Left (FL) | |||
Front Right (FR) | |||
Back Left (BL) | |||
Back Right (BR) |
Check Inversion
Rotate the drive wheel CCW (moving “forward”)
The built-in encoder value should increase. If not, invert the drive motor.
Rotate the angle wheel CCW (when viewed from the top)
The built-in encoder value should increase. If not, invert the angle motor.
The absolute encoder value should increase. If not, invert the absolute encoder.
Rotate the entire robot CCW. The gyro angle (yaw) should increase. If not, invert the IMU
Note: If you are using the hardware utilities for accessing the motors controllers and/or absolute encoders, the RoboRio must not be active on the CAN bus. The most reliable way to disable the RoboRio, without affecting the CAN BUS termination, is to temporarily disconnect it from power by pulling the 10A fuse on the Power Distribution Panel (PDP) feeding the RoboRio and then power cycle the robot.
Module | Inverted? | |||
---|---|---|---|---|
Drive | Angle | Absolute Encoder | IMU | |
Front Left (FL) | ||||
Front Right (FR) | ||||
Back Left (BL) | ||||
Back Right (BR) |
Step 4: Absolute Encoder Offsets
Turn Robot On (Disabled so the wheels can be turned manually)
Manually Turn All 4 wheels so that they are all pointing forward and forward rotation results in increasing drive encoder values (see the black arrows in Orientation Diagram).
Measure the absolute encoder value for each module
Module | Angle Absolute Offset (degrees) | |
---|---|---|
Front Left (FL) | ||
Front Right (FR) | ||
Back Left (BL) | ||
Back Right (BR) |
Step 5: Input data into the configuration webpage
Open the webpage and import your data into the config files. https://broncbotz3481.github.io/YAGSL-Example/
urlhttps://github.com/thenetworkgrinch/YAGSL-gitbook/blob/main/bringing-up-swerve/broken-reference/README.mdLast updated