SysId Data Sharing Thread

Hey! With the inclusion of the new SysId tool in this year’s WPILib, I figured I’d start a thread for data sharing so people could get a sense of what characterization values ought to be for various types of mechanisms.

In an attempt to standardize what teams share, please include:

  • A screenshot of the “combined diagnostics” page:
  • A description of your mechanism (including, crucially, motors and mass).

@brandon_martus Is it possible to add .json to list of supported upload file types for uploading to CD?


Mid season data dump! Data jsons are in this drive folder if anyone wants to download them and mess around. The feedforward gains here are directly from sysid unless otherwise indicated, while the feedback gains are all tuned (although most are close to the value suggested by sysid). Also, if I missed any constants you want, they’re most likely in our constants file for this year – feel free to ask if you can’t find something. I’ll edit this post as we characterize more mechanisms.

Swerve Drive

SDS MK3 swerve modules, 4 Falcon 500s driving, the mass is just the mass of the drivetrain with weights added to simulate a full robot so about 80-100 lbs. Gear ratio 8.16:1.


kS had to be tuned down a bit, so the sysid output was a little higher than this

  • kS (volts): 0.54
  • kV (volt seconds per meter): 2.5856
  • kA (volt seconds squared per meter): 0.31789

Feedback control is onboard the motor, this means it’s in weird units. The input is sensor ticks (2048 is full rotation) per 100 ms velocity error, and the output is out of 1023 full voltage.

  • kP: 0.05

Swerve Turning

SDS MK3 swerve module, 1 Falcon 500. Geared 12.8:1. I may recharacterize this with a lower dynamic step voltage in an attempt to get more timestamps, but it’s good enough and works.


We ended up using the onboard pid and kF for a faster response time. Below are the sysID-calculated gains:

  • kS: 0.60572
  • kV: 0.20717
  • kA: 0.0068542

Gains we actually used (in CTRE units, described above)

  • kF (basically kV in different units): 0.049
  • kP: 0.1
  • kD: 0.02


NEO 550 attached to a 100:1 versaplanetary and a belt, for a total 225:1 reduction (motor turns per full hood rotations). The mass is about 2 lbs.



Falcon 500 attached to 2 6 in Colson wheels on a hex shaft (no flywheels). No reduction, 2.61 pounds.


  • kS: 0.65884
  • kV: 0.11065
  • kA: 0.023167

The feedforward output is scaled back by 0.95 to enable bang-bang feedback control!

Climb Elevator

Falcon 500 geared 37.67:1 over chain to an about 3 lb elevator. When loaded, about a 70 pound robot as characterized (will change).

Feedforward Gains (unloaded)

  • kS: 0.70015
  • kG: -0.010378
  • kV: 30.626
  • kA: 1.1098

Feedforward Gains (loaded)

  • kS: 0.44256
  • kG: -0.505 (this was tuned to be make steady-state stabler than with the provided gain of about 0.4).
  • kV: 32.238
  • kA: 14.427

Feedback Gains


Added. :+1:


Great stuff! You’re missing the gearing for the swerve drive motors, though, and the gains themselves.

Later on I’ll run the stuff in this thread through ReCalc to see how close to theoretical most of it ends up


Added the gearing and gains along with feedback gains! (Not sure if that would be helpful to anyone, but could give a rough ballpark for some of the simpler mechanisms).

1 Like

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.