SysId Integration#
System Identification, or commonly referred to as SysId, is the process of identifying the characteristics of a given system.
This identification usually consists of:
Mechanism testing
In FRC, two tests are performed: Quasistatic and Dynamic.
Data collection
Position
,Velocity
, andMotorOutput
samples are collected while the tests are running.
Data analysis
Collected data is analyzed to calculate constants such as PID gains, slip current (maximum stator current), maximum robot velocity, etc.
Note
This documentation assumes that the user is utilizing a command-based robot program.
Advantages of SignalLogger
over DataLog
#
When collecting data for analysis, it’s important to take into account several factors, such as:
Impact of CAN latency
Signals sent faster than the 20ms main robot loop
Language data collection issues (such as Java garbage collection causing pauses in the log)
When users utilize the Phoenix 6 signal logging API, these issues are eliminated.
This section guides the user through characterizing a motor, converting hoot logs to a WPILib WPILOG
for data analysis, and integrating gains for control. This section can also be used as a characterizing other mechanisms such as a swerve azimuth and drive motors.
Characterization begins with a functioning robot program. Users should have basic code for the mechanism already put together, and all configs in the FeedbackConfigs
group should be applied. Any changes to the gear ratios and sensor source in FeedbackConfigs
may require the user to recharacterize their mechanism.
Get started: