ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
My setup:
For Gazebo, you want a CPU with a high single core frequency, rather than many cores (ie, choose i7 over a server type CPU with 16 cores at 2.2GHz). Using htop to see resource usage, it seems that Gazebo server has two main threads that consume decent CPU resources, and Gazebo client has one main thread. There are then a few other threads that consume small amounts of CPU. The i7 runs great and Gazebo is always above 0.98 realtime, even in large environments (see below).
For RAM, the only real benefit to adding more is if you are going to simulate huge areas and create large maps using many different sensor streams. When running a 100mx100m Gazebo world, with 30+ tree models, a 3D camera (depth image and point clouds) and 2D laser scanner, 100mx100m Octomap and multi-layer Grid Maps at 0.1m resolution, my RAM usage is about 5GB.
A graphics card makes very little difference for Gazebo since it isn't exactly graphics-intensive. The model above uses about 200MB of graphics memory and the card is only running at about 35% capacity. You could likely even skip the graphics card altogether and use the onboard graphics just fine.
My 120GB SSD size is ok for simulation, but if you want to save large bagfiles of sensor (point cloud or image) data, I'd go for something larger, or pair it with a cheap+large spinning disk HDD. We generate bagfiles from our actual machine that produce about 30GB of sensor data per minute! But I'm sure you won't have this requirement.
We have another office PC that has an i5 CPU and GTX 1060 and it struggles to run Gazebo server and client simultaneously. I'd suggest getting the best CPU you can afford and splitting the rest of the money across the other, less-critical components.