pymanoid
Humanoid robotics controller prototyping environment based on OpenRAVE. Includes:
- Whole-body inverse kinematics (IK) based on the weight-prioritized multi-task framework
- Contact-stability areas and volumes: multi-contact ZMP support areas, CoM acceleration cones, etc.
- Linear and Nonlinear Model Predictive Control (MPC) for locomotion
- Jacobians and Hessians for center of mass (CoM) and angular momentum
- Interfaces to polyhedral geometry and numerical optimization (LP, QP and NLP) solvers
Use cases
- Walking pattern generation over uneven terrains based on capturability of the variable-height inverted pendulum model
- Nonlinear model predictive control using a direct transcription of centroidal dynamics
- Linearized model predictive control using a conservative linearization of CoM acceleration cones
- Multi-contact ZMP support areas for locomotion in multi-contact scenarios (including hand contacts)
- Humanoid stair climbing demonstrated on the HRP-4 robot
Getting started
- Installation instructions
- Documentation (PDF)
- FAQ
- Examples
- Tutorial: Prototyping a walking pattern generator
Installation
The following instructions were verified on Ubuntu 14.04:
- Install OpenRAVE: here are instructions for Ubuntu 14.04 as well as for Ubuntu 16.04
- Install Python dependencies:
sudo apt-get install cython libglpk-dev python python-dev python-pip python-scipy python-simplejson
- Install the LP solver:
CVXOPT_BUILD_GLPK=1 pip install cvxopt --user
- Install the QP solver:
pip install quadprog --user
- For polyhedral computations (optional):
pip install pycddlib --user
Finally, clone this repository and run the setup script:
git clone --recursive https://github.com/stephane-caron/pymanoid.git
cd pymanoid
python setup.py build
python setup.py install --user
Optional
For nonlinear numerical optimization, you will need to install CasADi, preferably from source with the MA27 linear solver.