Sensor services on other node
Hi,
I am running a simulation with lots of robots which is very slow.
I am using as simple models as I can to ease the rendering, and when I start the simulation without starting any service for the robots, the framerate is good (around 50 FPS).
So I think that the problem comes from the big number of services. I would like to make some of them run on a other computer, is it possible ? I managed to do it for the service I created for the robots (like in Service Tutorial 7), but not for the sensors services (laser and bumper) and the differential drive service.
Thanks,
Adeline
It is easy to move your orchestration services to another computer as you've already done. It is more difficult to move the services which interact directly with entities in the simulation environment because they operate most efficiently when they have a direct reference to the entity in the environment.
How many robots are you simulating? How slow does your framerate get?
One thing I have noticed is that the rendering for the laser impact points is very slow. You can try disabling the rendering for the simulatedLRF entities to see if that helps your framerate once the services start up. You can do this by setting the DisableRendering flag on the laser rangefinder entity.
Another thing you can do is to merge the laser, bumper, and differential drive services into one customized service that includes all of their functionality to reduce the total number of services running.
Of the services you mentioned, it is definitely the laser rangefinder service which is taxing the simulator the most because it must cast rays into the environment to determine laser impact points. You might also try modifying the laser rangefinder service to update less frequently.
-Kyle