Robotic Tutorial

How to make a humanoid robot walk

By Nicolas Mansard and Florent Lamiraux


The tutorial is performed inside a virtual machine, under VirtualBox. VirtualBox is a free software, available on most platforms (Linux, Windows, MacOS). The virtual machine runs a Ubuntu 12.04 64bits, with our software installed on it.

  • Install VirtualBox for your computer from here.
  • Download the virtual image. The image about 2Gb: expect from 10 minutes to 1 hour of downloading time, depending on the bandwidth from your network to our lab. Two versions are available ubuntu 12.04 64bits and ubuntu 12.04 32bits. Prefer 64bits in general, but use 32bits on Ubuntu 10.04 and older, Windows XP and 7 and other dilapidated systems.
  • Import the virtual image in VirtualBox, using the procedure described here.
  • Start the virtual machine. The system auto log on the main user (ID student, password student). This user owns sudoer privilege.
  • [optional] A complete tutorial about VirtualBox, along with an explaination of what is virtualization, is available here
  • [optinal] A Md5 checksum for each image is available here: 64bits and 32bits . This file can be used that the .ova file has been properly downloaded. Under Linux, check by first downloading both files .ova and .md5 in the same directory and then typing md5sum -c robotics.md5.


From inside the virtual machine, start Firefox. All the instructions for the tutorial are given in the two tabulations.

The first part of the tutorial (first tabulation) presents inverse kinematics. The practical goal is to make a humanoid robot grab a ball while staying balance. The main concepts inside this first part are SE(3) geometry, robot kinematics tree and Newton's optimization methods. The full text of this first part is also available here.

The second part of the tutorial (second tabulation) presents optimal control and its application to design a walking pattern generator. The practical objectives are to compute the optimal trajectory of the center of mass of the robot, and to track this trajectory with the robot full body. The main concepts are optimal control through direct resolutions. The full text of this second part is also available here. The slides documenting this part are available here.