Awesome
pymanoid
Humanoid robotics controller prototyping environment based on OpenRAVE.
⚠️ This project is archived. Feel free to look at the code, but don't expect support to install and run it.
Most of the project's functionality has been ported to follow-up libraries that are maintained and easier to install.
Follow-up software
<a href="https://github.com/stephane-caron/pink"> <img src="https://user-images.githubusercontent.com/1189580/172797197-9aa46561-cfaa-4046-bd60-f681d85b055d.png" align="right" height=100> </a>- pink: inverse kinematics in Python based on Pinocchio
- pypoman: polyhedral projection functions used to compute contact inequality constraints
- qpmpc: linear model predictive control in Python
- qpsolvers: interfaces to quadratic programming solvers in Python
- vhip_light: variable-height inverted pendulum balancing in Python
Features
Contact stability
- Wrench friction cones for general multi-contact motions
- Multi-contact ZMP support areas for locomotion
- CoM acceleration cones for locomotion (conservative)
- Robust CoM static-equilibrium polytope for posture generation (conservative)
Model predictive control
- Linear model predictive control (LMPC) for locomotion
- Nonlinear model predictive control (NMPC) for locomotion
Inverse kinematics
- Whole-body IK based on the weight-prioritized multi-task formulation
- Jacobians and Hessians for center of mass (CoM) and angular momentum tasks
Geometry and optimization toolbox
- Interfaces to polyhedral geometry: double description, polytope projection
- Interfaces for numerical optimization solvers: LP, QP and NLP
Use cases
<img src="doc/src/images/logo.png" width="350" align="right" />- 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
Citing pymanoid
I developed pymanoid during my PhD studies and share it in the hope it can be useful to others. If it helped you in your research, please cite it e.g. as follows:
@phdthesis{caron2016thesis,
title = {Computational Foundation for Planner-in-the-Loop Multi-Contact Whole-Body Control of Humanoid Robots},
author = {Caron, St{\'e}phane},
year = {2016},
month = jan,
school = {The University of Tokyo},
url = {https://scaron.info/papers/thesis.pdf},
doi = {10.15083/00074003},
}
Installation
It is not recommended to try to install this library as it is not maintained and relies on deprecated software. Yet, If you are digging into the archives, you can find instructions for Ubuntu 14.04 in the wiki.