Home | Tutorials | Wiki | Issues
Ask Your Question
1

Gazebo 1.2 performance and file structure

asked 2012-11-07 14:08:24 -0500

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

Hello All,

I've just installed gazebo 1.2. All went well, i like the look of the GUI(don't use it though). After some struggling with the new SDF syntax (the converter did not work for me, but i like the syntax), I started very basic world with just the groundplane and the sun model included.

The simulation runs at 0.97X(at best) realtime using 100% on all four cores (intel i7 quadcore clocked at 4.ghz, 6GB ram, Ubuntu 12.04 32bits, Radeon 6870). On version 1.0.2 it ran in excess of 25X realtime using the same solver settings and a more challenging world. Quite dissapointing, is this a common problem? What might be the reason?

Apart from that, what is up with the new file/model structuring system(`database')? I understand a uniform folder and naming structure is useful for sharing etcetera. However I don't feel the need to have this restriction locally. Does every model(file) have to be called model.sdf and include a manifest.xml? E.g when editing (gedit) two models, i cannot tell them apart by their filename which is fairly annoying. Is there a way to circumvent this?

Thanks

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
1

answered 2012-11-07 15:12:54 -0500

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

Hello,

Gazebo 1.2 throttles itself to about 1.0 real-time. You can change this using the updaterate SDF parameter. When the updaterate = 1/dt, which is the default, then Gazebo runs at realtime. Set the update_rate = 0 and Gazebo will run as fast as it can.

The next major release of Gazebo has better sleep behavior, and will not use 100% of your CPU.

The model database format is not necessary, and you don't have to name everything model.sdf. Gazebo does use URIs for everything, as described here. So you can use file://path_to_my_model.sdf.

edit flag offensive delete link more

Comments

Great, that just about solved all my issues! Gazebo now runs multithreaded, nice (at least i did not notice load on all four cores in 1.0.2).

Erik Stoltenborg gravatar imageErik Stoltenborg ( 2012-11-08 02:26:01 -0500 )edit

I'd be great if the sleeping behaviour would be better. I'm by no means good programmer,so forgive me if its stupid,but would using conditions not be better than using while loops in the throttling (in e.g. world::runloop() just changes a condition value on which e.g. world::update waits if needed)?

Erik Stoltenborg gravatar imageErik Stoltenborg ( 2012-11-08 02:36:23 -0500 )edit

Ok i just tested this the URI thing, i can't get it to work. I tried absolute paths, relative paths (even model://file:// like the error suggested). All result in error: Directory doesn't exist, to be exact: Error [parser.cc:557] Directory doesn't exist[/home/bla/bla/table.sdf].

Erik Stoltenborg gravatar imageErik Stoltenborg ( 2012-11-08 04:01:40 -0500 )edit
0

answered 2012-11-12 15:17:52 -0500

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

The 0.97X behavior was fixed by pull request #72, which is released into default in commite da0484d. There after you should get 1.0X when throttling update_rate to 1/dt Hz.

edit flag offensive delete link more
Login/Signup to Answer

Question Tools

Stats

Asked: 2012-11-07 14:08:24 -0500

Seen: 369 times

Last updated: Nov 12 '12