20 lines
No EOL
2.2 KiB
Markdown
20 lines
No EOL
2.2 KiB
Markdown
# Lyapunov
|
|
|
|
Named after Russian mathematician [Aleksandr Mikhailovich Lyapunov](https://en.wikipedia.org/wiki/Aleksandr_Lyapunov), this project aims to provide tools for simulating dynamical systems and encourage a deeper understanding of their control.
|
|
|
|
## History
|
|
|
|
This project rewrites [haydenheroux/controls](https://www.github.com/haydenheroux/controls) in Rust.
|
|
Codifying mathematical concepts in the C++ type system became tedious, and Rust's traits better fit expressing the mathematics of this domain.
|
|
Other pain points motivating the transition to Rust included package management, header files, and collaboration.
|
|
This implementation prioritizes the expressive nature of code and aims to make each completed demo beautiful to read and a joy to write.
|
|
|
|
While the original project focused primarily on systems and concepts present in FIRST Robotics Competition, this project resembles an undergraduate education in robotics engineering.
|
|
Well-studied systems, such as pendulums and cart-pole mechanisms, provide the bulk of examples.
|
|
|
|
## Acknowledgements
|
|
|
|
- [Controls Engineering in the FIRST Robotics Competition](https://github.com/calcmogul/controls-engineering-in-frc) inspired the analysis of dynamical systems and introduced the language of linear differential equations while I participated in high school robotics.
|
|
- [Steve Brunton](https://www.youtube.com/@Eigensteve) provided detailed video explanations and connected control theory concepts to other fields, such as machine learning. Also, [SINDy](https://doi.org/10.1073/pnas.1517384113) was vital for motivating further research into interpretable models and system identification.
|
|
- [Underactuated Robotics: Algorithms for Walking, Running, Swimming, Flying, and Manipulation](https://underactuated.csail.mit.edu/index.html) expanded my love to nonlinear dynamical systems, introduced physics-based approaches to modeling, and provided derivations for many systems.
|
|
- [WPI CS 4032 - Numerical Methods For Linear and Nonlinear Systems](https://www.wpi.edu/academics/calendar-courses/course-descriptions/3776/computer-science#CS-4032) taught by [Sijing Liu](https://sijingliu.github.io/) illuminated the connection between the stability of iterative matrix algorithms and the stability of dynamical systems. |