Gazebo | Ignition | Community
Ask Your Question

DRCSIM: Simulating the hands is killing performance

asked 2013-02-16 14:42:53 -0500

cga gravatar image

updated 2013-02-16 14:46:01 -0500

I did a timing test on the Atlas robot without hands, with the sandia hands, and with the irobot hands. I set the update rate to zero, the time step to 1ms. and the number of solver iterations (iter) to whatever led to a realtimefactor of about 1.0. I used the following commands to launch the simulations, and waited more than 10s until the controller started operating.

roslaunch atlas_utils atlas.launch
roslaunch atlas_utils atlas_sandia_hands.launch
roslaunch atlas_utils atlas_irobot_hands.launch

This is DRCSIM-2.0 updated as of Sat Feb 16 15:32:53 EST 2013. Aside from the adjustments mentioned above, this is "out of the box" software.

On my Xeon-based machine (dual Intel(R) Xeon(R) CPU E5-2687W 0 @ 3.10GHz) with Quadra 6000 and Tesla K20 GPUs (this machine is a slightly newer version of the cloud machine we plan to use): No hands was able to hit 125 iterations per time step. With the Sandia hands I was able to get about 65 iterations per time step (about 1/2 the no hands performance). With the iRobot hands I was able to get only 15 iterations per time step (about 1/8 the no hands performance). I have no idea why the iRobot hand simulation is so much more expensive.

This is not good. Check out to see how joint constraint violations go up as iters goes down. In those plots iters goes down to only 70 because we couldn't get walking working at all below that. Recently we discovered a secret hack that I won't tell you for competitive reasons that allows us to walk with iters equal 40, the current default. I will give a PhD to anyone who can make the robot walk with iters=15 (CMU may not endorse this offer).

This is purely a computational cost issue, and is orthogonal to the numerical conditioning issue I brought up in another post on

I am cross posting this in and

It would be nice not to have to rely on secret hacks.

Padawan Chris

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2013-04-24 21:39:57 -0500

hsu gravatar image

here's to walking with 15 iterations and 5 iterations. You are right about the fingers though, even cfm damping can't save it from flailing wildly at 5 iterations :)

edit flag offensive delete link more


My guy working on picking up the hose tells me that iters=50 isn't enough.

cga gravatar imagecga ( 2013-04-25 08:07:20 -0500 )edit

Your honorary CMU PhD will be in the mail soon.

cga gravatar imagecga ( 2013-04-25 08:08:59 -0500 )edit

And now, for your next trick, control the walk from a ROS process on another machine.

cga gravatar imagecga ( 2013-04-25 08:31:42 -0500 )edit

can you send half of it to Ben S.@BDI? :) re. grasping the hose, we realize that as well, and have outfitted the hose with an "ergonomic" grip. Upcoming changes being tested in vrc3_hose_update branch in hg. Here's a preview of the grip ( - blue hexagonal extrusion.

hsu gravatar imagehsu ( 2013-04-25 10:31:40 -0500 )edit

what's at stake for the next trick? ;)

hsu gravatar imagehsu ( 2013-04-25 11:33:41 -0500 )edit

The title of Jedi Master

cga gravatar imagecga ( 2013-04-25 16:50:13 -0500 )edit

That might work with the new synchronized msgs though? John will need a lightsaber!

ThomasK gravatar imageThomasK ( 2013-04-25 19:20:34 -0500 )edit

But this is without any other models in the world. Can you do the same with graphic-intense models and other items in the world?

astaranowicz gravatar imageastaranowicz ( 2013-04-26 12:04:33 -0500 )edit

Question Tools

1 follower


Asked: 2013-02-16 14:42:53 -0500

Seen: 916 times

Last updated: Apr 24 '13