I’m planning to run a large-scale multi-robot simulation using ROS2. The setup involves simulating 100 and more robots in a shared environment, using:
Simulation tools like Gazebo or Ignition
Visualization through RViz2
Open RMF for fleet coordination, traffic scheduling, and path planning
I’m looking for suggestions regarding a suitable GPU that can smoothly handle the simulation load without performance issues.
Specifically, I’d like to ask:
Which NVIDIA GPU models are recommended for this scale of simulation?
Would GPUs like RTX 3060 / 3070 / 3080 / 4090 or Quadro series be sufficient?
Is CUDA support helpful for improving performance in Gazebo/Ignition + RViz2?
What minimum VRAM (GPU memory) is advisable (e.g., 8GB vs 16GB+)?
Will the suggested GPU models work well across all ROS2 distributions and Ubuntu versions, including future upgrades?
My aim is to choose a future-ready GPU that supports high-scale multi-robot simulation involving Open RMF logic and visual rendering, with consistent performance.
Any guidance or shared experiences would be greatly appreciated.
And also how many robot Gazebo and Rviz realistically handle in simulation?
Gazebo cannot utilize GPU for anything else than rendering (scene in GUI + sensors). If your robots won’t have any visual sensors, then your system doesn’t need a GPU at all.
Thank you for the clarification, that really helps!
In my case, I’m working on a large-scale simulation involving 100 or more robots, where I’ll be using Open RMF for fleet coordination and RViz2 for visualization.
Some robots will include camera sensors, so there will be rendering load involved.
My main concern is ensuring the simulation runs as smoothly as possible even at that scale.
Given this, would a dedicated GPU like RTX 3080 or higher still be recommended to help with rendering and visualization performance?
If my experience from 3 years ago is still valid, Gazebo doesn’t parallelize rendering of sensors. I.e. each sensor is rendered individually, then the next one etc. There were discussions about parallelizing rendering, but then the resource usage of the GPU could get quite high.
So the best you can do is buying a GPU with high clock frequencies, which should speed up the rendering. Regarding VRAM, it should be sufficient if the rendered scene fits once in it. So the amount of VRAM would only depend on the complexity of the scene, number and size of textures etc.
However, 100+ robots with rendering sensors would be pretty slow simulation. Don’t expect real time factor above 1-5 %. In SubT challenge, we simulated a team of 9 robots, each with ~10 rendering sensors @ 10 Hz, and the real time factor was about 0.3 % on a 3090 GPU.
If the 100+ robots don’t interact with each other, then you could probably split the simulation into multiple segments, each running its own Gazebo, and then you could scale the performance much better.