Skip to content

Learning Links

Matt Church edited this page Apr 18, 2024 · 2 revisions

Mechatronics Lab Logo

Links to resources

Searching for information online is often either overwhelming (too many resources, and you don't know what's good) or underwhelming when little to nothing comes up. Hopefully putting links to all the good stuff in this document will make finding knowledge a bit easier.

Contents:

Original version from LiamClarkZA/mechatronics-lab


Trajectory optimization

Stacey has written a series of tutorials on trajectory optimisation using PyOmo, a Python library

Matthew Kelly's website has some great great intro links for trajectory optimization. A good place to start would be his video tutorial

If you want to get a deeper understanding of how nonlinear optimizers actually work, consider reading John T. Bett's Practical Methods for Optimal Control and Estimation Using Nonlinear Programming. From the link: "The book describes describes how sparse optimization methods can be combined with discretization techniques for differential-algebraic equations and used to solve optimal control and estimation problems." It isn't too math-y and builds up most ideas from scratch, but may take a long time to get through

Differential equations

A good resource to start getting a better understanding of differential equations would be 3Blue1Brown's series of videos on differential equations

Robotics / Nonlinear control

Russ Tedrake's underactuated robotics course covers a wide range of tools useful for controlling underactuated systems (ie robots). Look at the contents of the free textbook to get an idea of what's covered. The programming is done in python and there's a free online textbook

Linear algebra

Prof. Gilbert Strang's Linear Algebra course is a good introduction/refresher to linear algebra. It has video lectures and summarized lecture notes

MathTheBeautiful's videos on linear algebra go from high school level all the way to orthogonal/Legendre polynomials, polynomial bases, QR decomposition, Gaussian quadrature, LDU/LDLT decomposition, etc and his videos are fun to watch

Mechanics (Newtonian, Lagrangian)

Prof. Vandiver's introduction to Lagrange with examples lecture "introduces Lagrange, going over generalized coordinate definitions, what it means to be complete, independent and holonomic, and some example problems"

The answers to this question on Quora are also quite good introductions/recaps of the concepts of Newtonian, Lagrangian and Hamiltonian mechanics.

Kalman Filtering

Kalman-and-Bayesian-Filters-in-Python is an amazing resource to learn about Kalman Filtering and Bayesian stats in general. It uses Python and a series of Jupyter Notebooks.

This guide builds the intuition of the Kalman Filter from the ground up, assuming very little knowledge from the reader.

This article by the bzarg blog is better as a second resource, which visualizes everything.

Modelling and simulation using SymPy

This tutorial-style talk teaches you "how to derive, simulate, control, and visualize the motion of a multibody dynamic system with Python tools"

Blender is a de facto standard of 3D modelling software for biomechanics, which is also controlled by Python. Donut Tutorial is one of the best tutorials for the beginners.

3D Slicer can analyse Computed Tomography (CT) data with SlicerMorph plugin.

Computer Vision

Daniel Cremer's Videos will give you a good overview of multi-view camera work.

First Principals of Computer Vision YouTube channel is a good resource for explaining concepts visually and also goes into the math.

CVonline is good for finding links for specific topics

Hartley & Zisserman is an excellent (though math heavy) textbook.

OpenCV documentation is also quite informative with nice diagrams to explain how the code works

Git

Atlassian's tutorials are a fantastic and easy-to-follow set of git guides from beginner to git-ninja

Installing git

Sourcetree is a great free GUI if you'd prefer that to using the command line

gitignore.io is a really nifty tool that will build a sample .gitignore file for you so you don't have to!

git-flow is a library which simplifies the git process and follows the git flow branching methodology. The library isn't essential, but the methodology is highly recommended!