Home | Tutorials | Wiki | Issues
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Which is less awful? Gazebo/ROS or OpenHRP3/RTC builder?

I'm trying out both Gazebo/ROS and OpenHRP3/RTC for some legged locomotion theory work unrelated to the DRC.


OpenHRP3 by itself has a solid physics simulator. I've been trying hard cases for foot-ground contact. Friction seems to work reasonably and force sensors at the ankle return values that look realistic. So you can do real legged locomotion work in there. That makes sense; that's the program used for most humanoid robots in Japan.

The GUI program for OpenHRP3 is very brittle. Do anything wrong, and some part of it crashes, or Java crashes, or Eclipse crashes, or the CORBA ORB locks up. In one case, the entire Ubuntu GUI locked up. It's very easy to cause a null pointer de-reference from the GUI. Then it's necessary to delete the history of the CORBA ORB and reboot before running the program again. This is actually documented. Sometimes the entire Eclipse workspace has to be deleted to stop repeated crashing.

RTC Builder also has a GUI, with lots of tabs full of forms to fill in. I'm stuck there; I can't get the "Data Ports" form to accept input, and have a support request in. There's a lot of persistent state in this thing; once it gets screwed up, there may be no way back without deleting the workspace.

The documentation is in Japanese (OK) and out of sync with the code (not OK).


Gazebo has an inadequate physics engine, ODE, borrowed from gaming. Users have complained about unrealistic force measurements. This is well known, and Bullet, which is better, is being installed as a stopgap until the new physics engine from Mike Sherman (who gets this stuff right) is installed in 2014. There's an amusingly casual attitude towards crap physics in the Gazebo world. The documentation actually suggests guessing at inertia tensor values, resulting in values wrong by orders of magnitude. The software really should compute inertia tensors from the geometry by default. (It's not that hard. Mirtich figured this out 15 years ago, and I have code for it.) This is part of why motion in DRC simulation videos looks so unreal. One of the teams admits they got through the first round of the DRC by exploiting bugs in the physics engine.

Gazebo/ROS integration isn't really working yet. It's supposed to work in version 1.9, which was supposed to ship in "mid-summer 2013", which was last month.

The Gazebo GUI seems to work OK, but doesn't do much. The whole system is very command-line oriented and retro. There are multiple versions of the documentation, in English (OK), out of sync with each other and the code (not OK).

(I used to write simulation engines. I sold the technology to Havok a decade ago and got out of the business. So I know it doesn't have to be this bad.)