diff --git a/README.md b/README.md new file mode 100644 index 0000000..e1d39a8 --- /dev/null +++ b/README.md @@ -0,0 +1,20 @@ +# 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. \ No newline at end of file