Skip to content
robEllenberg edited this page Nov 8, 2012 · 5 revisions

OpenHubo is a collection of models of KAIST / Rainbow humanoid robots. As of release (0.6.0), the collection includes:

  • Hubo2 (Torso-base)
  • Hubo2 (Right-foot-base)
  • Hubo+ (Torso-base)
  • Hubo+ (Right-foot-base)
These models have inertia and mass properties to accurate to within about 1 kg of the physical robot. Masses such as cabling and small electronics are not well represented in CAD, while mechanical components are accurately sized and massed. The result should be accurate enough for simulation though Open Dynamics Engine (ODE) and similar engines.

To set up and use this model, you will need:

  • git
  • Ubuntu 10.04 or 12.04 (others may work, but sometimes have weird issues with available packages and such)
  • Openrave 0.6.6 (or at least 0.6.x) or later installed setup instructions
Note: For the best performance, a customized version of openrave for openHubo is maintained on Rob's github account. This repository is forked from Rosen Diankov's main repository, and contains small changes that improve performance in Linux with OpenHubo, but have not been tested across all platforms. While these tweaks may eventually join the main codebase, the immediate solution is to build a custom version. To get it, clone from here:
 git clone git://github.com/robEllenberg/openrave.git

Follow the openrave instructions on compiling from sources to build and install.

Table of Contents

Setup Instructions

Clone the repository to a convenient location:

 git clone --recursive git://github.com/daslrobotics/openHubo.git 

OpenHubo comes bundled with several useful plugins:

  • OpenMR, a servo controller for physics simulations
  • simForceSensor, a force sensor plugin that acts as a 6-DOF F/T sensor for force control and sensing.
  • CoMPS, a collection of plugins to do RRT-based trajectory planning, manipulation, and general-purpose inverse kinematics calculations.
All of these plugins can be downloaded and installed automatically using the included setup script:
 source setup-plugins.sh

This downloads the above plugins as git submodules, and builds/installs the plugins to a local folder. Once the plugins are built, you can verify that openrave can use them by listing available plugins:

 openrave --listplugins

Limitations of current version

Keep in mind when using this model that there are a few major limitations that are being addressed:

Joint Damping with ODE physics

Interaction physics between bodies is not quite realistic due to the limitations of ODE. There seems to be no damping applied to joints between bodies. This can be seen by running the Physics test:

 python testRagDoll.py

Unfortunately, the limbs bounce around unrealistically long due to the aforementioned lack of damping.

Contact Friction

Realistic contact friction is not enabled in ODE/OpenRAVE by default, so an "Ice-Skating" effect is apparent if a robot is resting on the ground. A fix was patched in to OpenRAVE 0.8.0 recently that allows you to enable a "friction pyramid" model that approximates coulomb friction. In your environment XML file, add a section like this to specify the ode physics engine properties:

 <physicsengine type="ode">
  <odeproperties>
   <friction>.5</friction>
   <gravity>0 0 -9.8</gravity>
   <selfcollision>1</selfcollision>
   <erp>.5</erp>
   <cfm>.000001</cfm>
   <dcontactapprox>1</dcontactapprox>
  </odeproperties>
 </physicsengine>

The dcontactapprox flag specifies whether to enable this realistic approximate model.

Grasping and manipulation Planning

Update: Releases after 0.4.1 have individually articulated fingers. Note that the fully articulated behavior is not quite realistic to the Hubo2/Hubo+ hands. The physical hands are shape-adaptive, and have only 1 independent degree of freedom for each finger. This behavior could be simulated using torque limits on the joints, however.

Clone this wiki locally