Pymanoid
Humanoid robotics prototyping environment based on OpenRAVE
Install / Use
/learn @stephane-caron/PymanoidREADME
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.
Related Skills
node-connect
345.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
106.4kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
106.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
345.9kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
