New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add State Space Documentation #639
Conversation
/azp run |
Pull request contains merge conflicts. |
source/docs/software/advanced-control/state-space/state-space-drivetrain-controllers.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-drivetrain-controllers.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-drivetrain-controllers.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-drivetrain-controllers.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-drivetrain-controllers.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-drivetrain-controllers.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-drivetrain-controllers.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-drivetrain-controllers.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-pose_state-estimators.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-pose_state-estimators.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-pose_state-estimators.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-pose_state-estimators.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-pose_state-estimators.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-pose_state-estimators.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-pose_state-estimators.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-pose_state-estimators.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-intro.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-drivetrain-controllers.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-drivetrain-controllers.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-drivetrain-controllers.rst
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We're going to need either a lot of glossary links or a whole section devoted to teaching terminology.
source/docs/software/advanced-control/state-space/state-space-drivetrain-controllers.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-flywheel-walkthrough.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-flywheel-walkthrough.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-flywheel-walkthrough.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-flywheel-walkthrough.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-flywheel-walkthrough.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-flywheel-walkthrough.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-flywheel-walkthrough.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-flywheel-walkthrough.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-flywheel-walkthrough.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-observers.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-flywheel-walkthrough.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-flywheel-walkthrough.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-flywheel-walkthrough.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-control/state-space/state-space-flywheel-walkthrough.rst
Outdated
Show resolved
Hide resolved
bdabe7d
to
4011931
Compare
I'd like to see more usage tutorials. Aka: If you want to solve X, this is how you do it with state-space |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Math (LaTeX) formatting isn't done in tooltip content. Therefore some tooltips have "(\mathbf{y})", etc.
Some more reviews coming in a few days, after I read the rest of the docs.
source/docs/software/advanced-controls/state-space/state-space-intro.rst
Outdated
Show resolved
Hide resolved
62991fc
to
7d45f31
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few minor nitpicks and requests for clarification.
source/docs/software/advanced-controls/state-space/state-space-intro.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-controls/state-space/state-space-intro.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-controls/state-space/state-space-intro.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-controls/state-space/state-space-intro.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-controls/state-space/state-space-intro.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-controls/state-space/state-space-flywheel-walkthrough.rst
Outdated
Show resolved
Hide resolved
|
||
Kalman filters are used to filter our velocity measurements using our state-space model. As our flywheel model is linear, we can use a Kalman filter to estimate the flywheel's velocity. WPILib's Kalman filter takes a ``LinearSystem`` (which we found above), along with standard deviations of model and sensor measurements. We can adjust how "smooth" our state estimate is by adjusting these weights. Larger state standard deviations will cause the filter to "distrust" our state estimate and favor new measurements more highly, while larger measurement standard deviations will do the opposite. In the case of a flywheel we start with a state standard deviation of 3 rad/s and a measurement standard deviation of 0.01 rad/s. These values are up to the user to choose -- these weights produced a filter that was tolerant to some noise but whose state estimate quickly reacted to external disturbances for *a* flywheel -- and should be tuned to create a filter that behaves well for your specific flywheel. Graphing states, measurements, inputs, references, and outputs over time is a great visual way to tune Kalman filters. | ||
|
||
.. image:: images/filter_comparison.png |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can barely read the key on this graph. It's also (again) a very different style to the rest of the document and (most) of the other graphs.
The lines are also thin and hard to tell apart. It could be beneficial to have the x-axis range from [1600, 3000] to see more detail where the "action" happens.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The spinup part is actually the most important part, as it shows that the kalman filter can laglessly filter data. I'm not sure I have the program that generated that graph anymore
source/docs/software/advanced-controls/state-space/state-space-flywheel-walkthrough.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-controls/state-space/state-space-flywheel-walkthrough.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-controls/state-space/state-space-pose_state-estimators.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-controls/state-space/state-space-intro.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-controls/state-space/state-space-intro.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-controls/state-space/state-space-intro.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-controls/state-space/state-space-intro.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-controls/state-space/state-space-intro.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-controls/state-space/state-space-intro.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-controls/state-space/state-space-intro.rst
Show resolved
Hide resolved
source/docs/software/advanced-controls/state-space/state-space-intro.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-controls/state-space/state-space-flywheel-walkthrough.rst
Show resolved
Hide resolved
source/docs/software/advanced-controls/state-space/state-space-flywheel-walkthrough.rst
Show resolved
Hide resolved
source/docs/software/advanced-controls/state-space/state-space-intro.rst
Outdated
Show resolved
Hide resolved
…-intro.rst Co-authored-by: Dalton Smith <daltzsmith@gmail.com>
…-intro.rst Co-authored-by: Prateek Machiraju <prateek.machiraju@gmail.com>
…-intro.rst Co-authored-by: Dalton Smith <daltzsmith@gmail.com>
source/docs/software/advanced-controls/state-space/state-space-intro.rst
Outdated
Show resolved
Hide resolved
…-intro.rst Co-authored-by: Tyler Veness <calcmogul@gmail.com>
source/docs/software/advanced-controls/state-space/state-space-observers.rst
Outdated
Show resolved
Hide resolved
source/docs/software/advanced-controls/state-space/state-space-observers.rst
Show resolved
Hide resolved
* Recreate original graph in matplotlib * Use 4 subplots to show the differing behaviours of the four filters Also, add a minimum y-value so the behaviour of the filter is clear. * Move stdev information onto newline in axis title
…-observers.rst Co-authored-by: Tyler Veness <calcmogul@gmail.com>
This PR is associated with wpilibsuite/allwpilib#2494
WIP: State-space documentation, to go with the state-space-v2 PR to allwpilib. Things still to do: