Python library for humanoid robotics based on OpenRAVE:
- 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 Model Predictive Control (MPC) and state machines for locomotion
- Jacobians and Hessians for center of mass (CoM) and angular momentum
- Types and algorithms to manipulate polytopes and polyhedral cones
- Interface to linear programming (LP) and quadratic programming (QP) solvers
- 3D bipedal walking over uneven terrains based on a capturability analysis of the 3D 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 humanoid robot
- Installation instructions
- Documentation: html or pdf
- FAQ
- Examples
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
For nonlinear numeric optimization, you will need to install CasADi, preferably from source with the MA27 linear solver.