Configuration
Tuning Webpage
YAGSL maintains a somewhat complete configuration tool to aid you in creating configuration files from scratch here.
IF you are using an Absolute Encoder which is attached to your SparkMAX then the angle
conversion factor is 360
.
From this webpage you should be able to download all files and place them into your deploy
directory to use for new SwerveParser(new File(Filesystem.getDeployDirectory(),"swerve")
.createSwerveDrive(Units.feetToMeters(4.5));
.
We also maintain a repository for known working configurations here!
Make sure you know what module is what!
If not your modules could end up like this!.
This happens when you input module locations incorrectly due to where the gyroscope is oriented on the robot or you have the device configurations in the wrong module locations in the configuration files. If this happens to you, you HAVE misconfigured your modules.
Example configuration challenge
This may help you in your endeavors!
Orient your swerve modules correctly!
To correctly get the absoluteEncoderOffset
your swerve modules must be facing this way while reading the values.
Configuration Directory
JSON Files
JSON stands for "JavaScript Object Notation" it is a popular format for configuration, and string data representation. Learn more here
What does the swerve directory need to look like?
The swerve directory for generating a swerve drive must look like this. Assuming you have defined your swerve modules as "modules": [ "frontleft.json", "frontright.json", "backleft.json", "backright.json"]
in swervedrive.json
.
The modules
folder, controllerproperties.json
, physicalproperties.json
, pidfproperties.json
, and swervedrive.json
files are necessary to build the swerve drive. Each one has specific fields which correspond to an attribute of the swerve drive, some physical and some abstract.
Migrating Old Configuration Files
Delete
wheelDiamter
,gearRatio
,encoderPulsePerRotation
fromphysicalproperties.json
Add
optimalVoltage
tophysicalproperties.json
Delete
maxSpeed
andoptimalVoltage
fromswervedrive.json
IF a swerve module doesn't have the same drive motor or steering motor as the rest of the swerve drive you MUST specify a
conversionFactor
for BOTH the drive and steering motor in the modules configuration JSON file. IF one of the motors is the same as the rest of the swerve drive and you want to use thatconversionFactor
, set theconversionFactor
in the module JSON configuration to 0.You MUST specify the maximum speed when creating a
SwerveDrive
throughnew SwerveParser(directory).createSwerveDrive(maximumSpeed);
IF you do not want to set
conversionFactor
inswervedrive.json
. You can pass it into the constructor as a parameter like this
Last updated