srmainwaring / asv_wave_sim

This package contains plugins that support the simulation of waves and surface vessels in Gazebo.
GNU General Public License v3.0
127 stars 36 forks source link

Performance issues using FFT waves #152

Closed mvanlobensels closed 10 months ago

mvanlobensels commented 10 months ago

Hi,

First of all thank you for your work.

I am noticing performance issues when using the FFT waves. The Gazebo starts to jitter a lot. When using the sinusoidal waves, the simulation is butter smooth. My assumption is that the FFT waves are more expensive to compute? Is there anything that can be done to increase the performance?

Edit: When I forget to set the environment values correctly, the WavesVisual plugin is not loaded. As a result, the waves are not rendered but the wave dynamics still seem to be working in this case. The jittering is also gone and the performance is smooth. So might this be a rendering issue?

mvanlobensels commented 10 months ago

Changing both tile_size and cell_count in WavesVisual fixed it

srmainwaring commented 10 months ago

Hi @mvanlobensels - yes, the simulation is demanding because I'm calculating the FFT on the CPU 2x each frame because of the way Gazebo separates the server and client logic. Furthermore in Garden there was a bug where the visuals plugins would be loaded twice costing an extra calc (this may have been fixed). Reducing the resolution will help but at the cost of wave definition: 256 -> 128 cell count may make the difference.