Understanding Gazebo Performance

asked 2018-11-26 04:12:31 -0500

Eisenhorn gravatar image


I have some fundamental questions regarding the performance regarding gazebo.

For clarification thats my software setup I have used for testing ( actually I have 3):

Setup 1

Software: ROS Melodic: Gazebo 9.x Ubuntu 18.04.1 LTS (Bionic Beaver)

Hardware: Intel(R) Core(TM) i5-8250U @1.6 GHz 4 Cores (8 Logical) 8 GB RAM Intel UHD Graphics 620

Setup 2

Software: ROS Kinetic: Gazebo 7.x gazebo 7.x series (package name gazebo7

Hardware: Intel Xeon W-2135 3,7 GHz, 4,5 GHz Turbo, 6 Kerne, 8,25 MB Cache, Hyper-Threading, (140 W) DDR4-2666 NVIDIA® Quadro® P400, 2 GB, 3 mDP (5820T) 16 GB DDR4-RDIMM-Speicher (2 x 8 GB), 2.666 MHz, ECC

Performance on both systems was no far aparat... Only the ease of loading larger models (1GB+)


1.) What are the Key Perfomance Indicators for Running a simulation? As far as I understand it's the "real time factor" for the actual physical simulation and "fps" for running a GUI client. For what I have noticed fps can really drop (below 1 fps) while the real time factor stays at 1 or even higher.

2.) What are variables that impact simulation performance the most? I have a world file, which loads a bunch of models from collada files into the simulation. So from what I see the number of "vertices" and "faces" are of course impacting complexity and therefore perfomance the most. What I have also noticed when preparing a collada file in Blender, is the number of Objects. Does anybody know if this is anyhow reflected in a collada file? Also its to notice that some models I use have vertices counts of 10^6 - 10^9. I also use this files for the collision calculation, as otherwise I can't get a lidar scan. I don't have to mention that this can get painfully slow.

3.) Whats best practice to simulate worlds containing complex models, as mentioned in Point 2.? Is it possible to run the simulation headless, and get visual snapshots at defined time intervals or conditions?

4.) Usage of CPUs and GPUs I have noticed that only about 3 Cores are used 100% during the simulation (gzcore, gzclient). The GPU also goes only to 100% depending on what current view needs to be rendered. Is it possible to make Gazebo use more cores, especially regarding rendering in order to address the FPS issues mentioned in Point 1.

BR and thanks for any response in advance,


edit retag flag offensive close merge delete