Home | Tutorials | Wiki | Issues
Ask Your Question
1

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

asked 2013-08-02 15:19:01 -0600

John Nagle gravatar image

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

OpenHRP3/RTC:

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/ROS:

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.)

edit retag flag offensive close merge delete

Comments

SL Remy gravatar imageSL Remy ( 2013-09-17 07:32:47 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
3

answered 2013-09-15 19:40:00 -0600

nkoenig gravatar image

Thanks for the feedback. I can't comment on OpenHRP3 and RTC.

I can say the OpenDE (ODE) did not come out of the game community. It was created by Russell Smith during and following his PhD work. The game community adopted ODE because it was (and still is) a great physics engine. Bullet and Havok(which is a game engine) use the same techniques as ODE. Maybe the implementation of the underlying algorithms are more or less efficient in each engine, but the overall limitations of a rigid-body maximal-coordinate system physics solver apply to each engine.

As you mentioned, we are hard at work integrating minimal-coordinate system physics engines. One is coming from Simbody (Stanford) and the other DART(Georgia Tech). These two engines will provide Gazebo users with a more accurate solver for robots with many links and joints. This comes at a cost of being less efficient with many single link objects. In short, every physics engine has pros and cons. Users of Gazebo will be able to choose the engine that is most appropriate for their use case.

We have spent a lot of time making the documentation stable, accurate, and up-to-date. Granted, you'll have to know what version of Gazebo you are running. Take a look at:

  1. Gazebo API

  2. Tutorials

  3. Message API

  4. SDF

  5. User Guide

If you can't find what you're looking for in those resources, please make use of this community website.

Any specific bugs and/or feature requests should go to our bitbucket repository.

Thanks again. I hope this helped answer your question.

edit flag offensive delete link more
Login/Signup to Answer

Question Tools

1 follower

Stats

Asked: 2013-08-02 15:19:01 -0600

Seen: 1,504 times

Last updated: Sep 15 '13