Robotics is an interdisciplinarity activity: whether you've practiced some signal processing, machine learning, control theory, numerical optimization, raptor hunting, etc., it helps! The following notes connect dots between the bits of knowledge I find most useful for locomotion in particular. I'd be most happy if they are a good fit for younger roboticists. Shoot me an e-mail if you find anything inaccurate or imprecise (yup, accuracy and precision are not the same thing).
All posts below assume you already know what a controller is. I imagine you've ended up here by searching for a particular topic, yet if you're rather exploring out of curiosity that's great too :-) In that case, I'd advise you start from the How do biped robots walk? overview and dig from there into any topic you find interesting.
- Constrained equations of motion
- Equations of motion
- Forward dynamics
- Newton-Euler equations
- Point de non-basculement
- Principle of virtual work
- Recursive Newton-Euler algorithm
- Screw axes
- Screw theory
- Zero-tilting moment point
- Capture point
- Floating base estimation
- How do biped robots walk?
- Linear inverted pendulum model
- Prototyping a walking pattern generator
Experiments on angular momentum and torque.
How to integrate the equations of motion.
The Principle of Least Action
A special lecture by Richard Feynman.
An Introduction to Lagrange Multipliers
How Lagrange multipliers arise from optimization constraints.
Conversion from least squares to quadratic programming
How to go from least squares to QP, which is slightly more general.
Quadratic programming in Python
The most common class of convex problems used in optimal control.
OpenRAVE is a C++/Python robotics software for forward kinematics and inverse dynamics of robot models. It provides other features not listed here such as symbolic inverse kinematics for serial manipulators. I used it in my PhD and developed the pymanoid library to add whole-body inverse kinematics and model predictive control to it for prototyping humanoid walking controllers.