Robot locomotion
Robotics is interdisciplinarity: whether you're into mechanics, electronics, machine learning, control theory, numerical optimization, raptor hunting, etc., it helps! The following notes connect dots between bits of knowledge I found useful for locomotion in particular. I hope they are helpful! Shoot me an e-mail if you find anything inaccurate or imprecise (yup, accuracy and precision are not the same thing).
Where to start, you wonder? The notes below are sorted from specific to general. They assume you already know what a controller is. I imagine you've reached this page by searching for a particular topic, but if you're browsing out of curiosity that's also great :-) In that case, I'd advise you stop next at the How do biped robots walk? overview.
Walking
- Capture point
- Floating base estimation
- How do biped robots walk?
- Linear inverted pendulum model
- Open loop and closed loop model predictive control
- Prototyping a walking pattern generator
Models
Contact dynamics
Dynamics
- Constrained equations of motion
- Equations of motion
- Forward dynamics
- Knee torque of a lumped mass model
- Newton-Euler equations
- Point de non-basculement
- Principle of virtual work
- Recursive Newton-Euler algorithm
- Revolute joints
- Screw theory
- Zero-tilting moment point
Kinematics
- Inverse kinematics
- Kinematics jargon
- Kinematics of a symmetric leg
- Position and coordinate systems
- Revolute joints
- Screw axes
- Screw theory
- Spatial vector algebra cheat sheet
See also
Physics
-
Gyroscopic precession
Experiments on angular momentum and torque.
-
Integration Basics
How to integrate the equations of motion.
-
Some comments on the structure of the dynamics of articulated motion
My go-to writeup on the equations of motion.
-
The Principle of Least Action
A special lecture by Richard Feynman.
Optimization
-
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
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.