Skip to content

Latest commit

 

History

History
60 lines (46 loc) · 2.66 KB

README.md

File metadata and controls

60 lines (46 loc) · 2.66 KB

Leveraging Cone Double Description for Multi-contact Stability of Humanoids with Applications to Statics and Dynamics

Source code for http://www.roboticsproceedings.org/rss11/p28.pdf

Abstract

We build on previous works advocating the use of the Gravito-Inertial Wrench Cone (GIWC) as a general contact stability criterion (a "ZMP for non-coplanar contacts"). We show how to compute this wrench cone from the friction cones of contact forces by using an intermediate representation, the surface contact wrench cone, which is the minimal representation of contact stability for each surface contact. The observation that the GIWC needs to be computed only once per stance leads to particularly efficient algorithms, as we illustrate in two important problems for humanoids : "testing robust static equilibrium" and "time-optimal path parameterization". We show, through theoretical analysis and in physical simulations, that our method is more general and/or outperforms existing ones.

Authors: Stéphane Caron, Quang-Cuong Pham and Yoshihiko Nakamura

Content

  • box/: generate the box climbing motion (Section V)
  • lib/: various (old) versions of the pymanoid library
  • perf/: sample log files and small script to analyse computation times
  • robust/: robust static equilibrium criterion (Section IV)
  • stair/: retime a stair climbing motion (Section V)

Requirements

You will also need the HRP4R.dae Collada model for HRP4 (md5sum dcea527e4fb2e7abae64a27a017102e4 for our version), as well as the hrp4.py helper scripts in the library folders. Unfortunately it is unclear whether we can release these files here due to copyright problems.

SageMath installation

Link the openravepy and TOPP python modules into your SageMath installation. For example, if your sage directory is in ~/Software/sage:

cd ~/Software/sage/local/lib/python2.7/site-packages
ln -sf /usr/local/lib/python2.7/dist-packages/openravepy
ln -sf /usr/local/lib/python2.7/dist-packages/TOPP 

TOPP tunings

You may need to set the integrationtimestep to a smaller value than the one computed by TOPP. In these experiments, we used integrationtimestep=1e-4.