Configuring a Project
To use the toolsuite, we first need to configure the settings for your specific mechanism.
Configure Project Parameters
In order to run on your robot, the tool must know some parameters about how your robot is set up.
First, you need to use the Analysis Type field to select the appropriate project config.
General Mechanism is for non-drivetrain mechanisms (e.g. Simple Motor, Arm, Elevator),
Drivetrain is for Drivetrain mechanisms, and
Romi is for the Romi robots. This allows you to fill out the parameters specific to the type of system you are using.
The rest of the Generator widget is focused on the proper settings based off of the analysis type:
Motor Controller Selection
The Motor / Motor Controller Selection allows you to add ports for each motor controller that will be used. The + and - buttons let you add and remove ports respectively.
If you are plugging in your encoders into motor controllers make sure that the motor controller type and port(s) are the first ones you specify.
Each motor port contains the following parts:
Motor Port is where you add the port number for a specific controller
Inverted should be checked if the motorcontroller should be inverted
Motor Controller is the type of motor controller that will be used.
The Encoder Selection allows you to configure the encoders that will be used. The types of encoder you can use will vary with the first motor controller type specified (see note above).
General Types (consistent across all motor controller selections):
roboRIOcorresponds to any encoders that are plugged into the roboRIO,
CANCodercorresponds to the CTRE CANCoder.
Built-incorresponds to any quadrature encoder plugged into the encoder port,
Tachometercorresponds to the CTRE Tachometer plugged into the encoder port.
Built-incorresponds to the integrated encoder on the TalonFX motor.
Built-inrefers to an encoder plugged into the Venom’s encoder port.
Here are the following settings that can be configured (although the settings that are visible will vary by the previously selected encoder type):
Ports (either A and B or CANCoder Port
Encoder Inverted should be checked if a positive motor power doesn’t correspond to a positive increase in encoder values
Samples Per Average is how many samples will be averaged per velocity measurement. A value greater than one can help reduce encoder noise and 5-10 is recommended for encoders with high CPR. Only mess with this setting if a previous run of SysId resulted in extremely noisy data.
Reduce Encoding should be checked if using high resolution encoders (e.g. CTRE Mag Encoders or REV Through Bore Encoder) that are plugged into the roboRIO. This uses the
1xdecoding to reduce velocity noise. If this is checked, you will have to update your team’s robot code to also use
1xdecoding on the encoders.
Time Measurement Window is the period of time in milliseconds that the velocity measurement will be taken across. This setting can reduce measurement lag at the cost of possibly introducing more noise. Only modify this if data lag is impeding accurate control and data collection.
Counts Per Revolution is the encoder counts per revolution for your encoder which is generally specified on a datasheet. Common values include:
CTRE Magnetic Encoder: 4096
Falcon 500 Integrated: 2048
REV Throughbore: 8192
NEO (and NEO 550) Integrated Encoders (REV already handles this value): 1
Gearing is the gearing between the encoder and output shaft. For example, an magnetic encoder on a kit chassis would have a gearing of one as it is on a 1:1 ratio with the output shaft. However, if is was an integrated encoder in a motor that was in the gearbox, the gearing would be 10.71 (per Andymark) since there is now gearing between the encoder and the output shaft.
Gyro Parameters (Drivetrain Only)
Gyro lets you select the type of supported gyro. Gyro Parameter lets you configure additional settings needed to configure the previously specified gyro.
Loading and Saving Configurations
Once your robot configuration is set, you may save it to a location/name of your choice with the Save button:
Accordingly, you can also load an existing config file with the Load Config button:
Once your project has been configured, it’s time to deploy the robot project to run the identification routine.
Team/IP is where you set your team number or IP. You can then deploy the code with the Deploy label.