Repository navigation
Conversation
SCool62
left a comment
There was a problem hiding this comment.
Thanks a ton for doing this very useful. Overall description of sysid is good, but i think there should be more specific information about how to run the analysis tool on a dataset.
| SysId is a WPILib tool that characterizes a mechanism by applying controlled voltages and measuring its response. It uses this data to determine feedforward constants: | ||
| - kS: Represents voltage needed to overcome static friction | ||
| - kV: Represents voltage needed to maintain velocity | ||
| - kA: Represents voltage needed to accelerate |
| this)); | ||
| ``` | ||
|
|
||
| Config sets the test parameters and logs the current state. Mechanism tells SysId how to apply voltage through our IO layer. |
There was a problem hiding this comment.
You should mention what every parameter does in the config and mechanism (especially the ones we have set to null)
| autoChooser.addOption("Hood Sysid", shooter.runHoodSysid()); | ||
| ``` | ||
|
|
||
| Analyze the Data by running the SysId routine to collect data. Then, load the log into the WPILib SysId tool and select the corresponding tests and values. Extract kS, kV, and kA values. |
There was a problem hiding this comment.
Mention that this tool is installed within wpilib (in home dir/wpilib/2026/sysid or smth)
|
|
||
| Analyze the Data by running the SysId routine to collect data. Then, load the log into the WPILib SysId tool and select the corresponding tests and values. Extract kS, kV, and kA values. | ||
| Add the constants to the mechanism's feedforward controller. | ||
| Check the diagnostic plots before using the results. Poor data can produce inaccurate constants. |
There was a problem hiding this comment.
I'd mention that the r^2 for both forward and backward should be >0.9 for velocity and >0.5 for acceleration. Maybe include a screenshot for where to find these?
| autoChooser.addOption("Hood Sysid", shooter.runHoodSysid()); | ||
| ``` | ||
|
|
||
| Analyze the Data by running the SysId routine to collect data. Then, load the log into the WPILib SysId tool and select the corresponding tests and values. Extract kS, kV, and kA values. |
There was a problem hiding this comment.
I'd mention that they can optionally play around with window size, velocity threshold and test duration to optimize the velocity and acceleration r^2 (aka how well the regression fits the data)
| Analyze the Data by running the SysId routine to collect data. Then, load the log into the WPILib SysId tool and select the corresponding tests and values. Extract kS, kV, and kA values. | ||
| Add the constants to the mechanism's feedforward controller. | ||
| Check the diagnostic plots before using the results. Poor data can produce inaccurate constants. | ||
|
|
There was a problem hiding this comment.
Maybe add a limitations section which mentions that limited range of motion mechanisms (like arms) may not collect enough data to work properly. It also only works with voltage control modes (not TorqueCurrentFOC)
| autoChooser.addOption("Hood Sysid", shooter.runHoodSysid()); | ||
| ``` | ||
|
|
||
| Analyze the Data by running the SysId routine to collect data. Then, load the log into the WPILib SysId tool and select the corresponding tests and values. Extract kS, kV, and kA values. |
There was a problem hiding this comment.
lol 3rd comment on this line but i think ideally u should go into more depth on how the data analysis process works (drag what to where, select this etc.)
No description provided.