Robotics is interdisciplinarity: whether you're into mechanics, electronics, machine learning, control theory, numerical optimization, raptor hunting, etc., you can contribute! The following notes connect the dots between bits of knowledge I found useful for locomotion in particular. I hope they help. Shoot me an e-mail if you find anything inaccurate or imprecise (yes, accuracy and precision are not the same thing).

Wondering where to start? The notes below are sorted from locomotion-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 check out the How do biped robots walk? overview.



Contact dynamics





Pinocchio is a C++/Python robotics software that implements rigid body dynamics algorithms (recursive Newton-Euler, articulated-body, ...) and their analytical derivatives. In recent years it has become a de facto standard used in optimal control (Crocoddyl, OCS2), motion planning (HPP) and physics simulators (Jiminy). I started using it full-time with whole-body inverse kinematics in Pink.


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.

See also