The Clean Mechanism SysId Challenge

So, this year WPILib released SysId, which runs analysis routines on robot mechanisms to determine their equations of motion. Unlike previous versions of the tool, SysId runs the test routine from a precompiled C++ binary that is optimized to run at 200Hz with minimal scheduling jitter. This has greatly improved the quality of the recorded data.

In fact, it turns out that the increase from 50Hz to 200Hz sampling has allowed a large amount of system noise to become visible in the recorded data. Teams often find this surprising, because it’s not always obvious from watching the robots move just how much they are actually vibrating as they do so.

I’ve been refining the fit parameters SysId reports over the course of the season. If you’ve been running an up-to-date version (i.e. the one that came with the most recent WPILib installer), there will be an “acceleration r^2” measurement below the plotting window:

This gives a rough idea of how much noise there was in the measured acceleration during the test routine. Higher values mean better fit, which means less noise (the RMSE value goes the other way around, and the newest version of SysId report an RMSE for the acceleration noise as well).

I’ve seen a lot of data sets so far this year. Most of them look something like the one above. Until today:

Data are courtesy of @DeltaDizzy, who apparently got this from their robot’s shooter.

These data are remarkably clean. It’s almost like a joke - theory and practice, living together!

I figure: why not make this a contest. So, I give you - The Clean Mechanism SysId Challenge:

The rules are as follows:

  • Entries must be measured from a competition robot mechanism.
    • The mechanism must perform some legitimate game function (don’t build something contrived for this purpose alone).
    • You are allowed to clean/lubricate the mechanism prior to characterization.
  • Entries must be accompanied by a picture and mechanical description of the mechanism.
  • Entries must be accompanied by their corresponding SysId data JSON.

In the interest of fairness and competitive structure, there will be four separate divisions:

  1. Direct-drive mechanisms (e.g. shooter wheels)
  2. Single-stage-reduction mechanisms (e.g. turrets, some swerve azimuth motors)
  3. Multiple-reduction mechanisms (e.g. some arms, some elevators)
  4. Drivetrains (must be tested under load)

The winner in each category will be the submission with the highest acceleration r-squared as reported by the latest version of SysId at the time entries close.

Entries open now, and will close after the final week of district events. Prizes TBD.


Got this last week while tuning our shooter flywheel. Didn’t think twice about it until I took a closer look today :sweat_smile:


  • Two 4 inch/0.102 meter rollers (I’ll have to check the brand/model)
  • Two Falcon 500s belted with a 1.00 : 2.50 gearing
  • I’ll get a pic soon!

JSON: Clean SysId Flywheel Data · GitHub


Oh wow that’s pretty nice. When you can, please edit in the specs of the flywheel (what’s on the shaft, what motors it is, etc) and a pic if possible!


Left Flywheel (NEO w/ 6" smooth grip, am 8mm hub, encoder port)

Right Flywheel (same but eh, only 0.65 for some reason). Experienced some comm faults while running these.

1 Like

We’re working on improving this; we’re aware the test routines are a bit flakey now and have a number of improvements that have been either just recently added or are on the horizon.

I’m pleased to announce that the Clean Mechanism Challenge now has…prizes! The winner in each division will receive a $50 TheThriftyBot Gift Card.

(I can’t edit the original post to add this - if a mod could oblige, that’d be appreciated).

1 Like

Here’s a picture of the shooter. This isn’t our final version of it.

1 Like

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