Skip to content

3D walking by predictive control of the floating-base pendulum model

License

Notifications You must be signed in to change notification settings

foolyc/fip-walking

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

3D walking by NMPC of the floating-base pendulum

Source code for https://hal.archives-ouvertes.fr/hal-01481052

Abstract

We present a real-time rough-terrain dynamic walking pattern generator. Our method automatically finds step durations, which is a critical issue over rough terrains where they depend on terrain topology. To achieve this level of generality, we introduce the Floating-base Inverted Pendulum (FIP) model where the center of mass can translate freely and the zero-tilting moment point is allowed to leave the contact surface. We show that this model is equivalent to the linear-inverted pendulum mode with variable center of mass height, aside from the fact that its equations of motion remain linear. Our design then follows three steps: (i) we characterize the FIP contact-stability condition; (ii) we compute feedforward controls by solving a nonlinear optimization over receding-horizon FIP trajectories. Despite running at 30 Hz in a model-predictive fashion, simulations show that the latter is too slow to stabilize dynamic motions. To remedy this, we (iii) linearize FIP feedback control computations into a quadratic program, resulting in a constrained linear-quadratic regulator that runs at 300 Hz. We finally demonstrate our solution in simulations with a model of the HRP-4 humanoid robot, including noise and delays over both state estimation and foot force control.

Authors: Stéphane Caron and Abderrahmane Kheddar

Installation

The following instructions were verified on various machines running Ubuntu 14.04 and 16.04.

  • Install OpenRAVE: here are instructions for Ubuntu 14.04 as well as for Ubuntu 16.04

  • Install Python and related dependencies: sudo apt-get install cython python python-dev python-pip python-scipy python-shapely

  • Install Python packages: sudo pip install pycddlib quadprog pyclipper

  • Install CasADi. Pre-compiled binaries are available, but I recommend you build it from source. When installing IPOPT, make sure to install the MA27 linear solver (ThirdParty/HSL folder).

  • Install TOPP:

git clone https://github.com/quangounet/TOPP.git
cd TOPP && mkdir build && cd build
cmake ..
sudo make install

Finally, clone this repository and its submodule via:

git clone --recursive https://github.com/stephane-caron/fip-walking.git

If you already have pymanoid installed on your system, make sure that its version matches that of the submodule.

Usage

Run the main script via:

  • ./walk.py -e for the elliptic staircase scenario
  • ./walk.py -r for a regular staircase

Questions?

Feel free to post your questions or comments in the issue tracker.

About

3D walking by predictive control of the floating-base pendulum model

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%