Fast headless robot simulator
It seems that Gazebo (wiki.ros.org/simulatorgazebo/Tutorials/RunningSimulatorHeadless) Stage (ros.informatik.uni-freiburg.de/roswiki/stage.html) and STDR (wiki.ros.org/stdrsimulator) can run in headless mode.
I'm looking to sample, as fast as possible, the outcome of some policy for a mobile robot.
This is a reinforcement learning project and it would be prohibitive to have a episode run for say 30 secs.
The presence of noise is preferable but physical realism is not required. Ideally, I would want to deploy my experiment over Amazon EC2. At the abstract level, I'd want to simulator to take an initial state and policy and return the trajectory that the system followed. I would almost use it as a "local planner".
Ideally, I could simulate multiple episodes in parallel across different processes. I can see this as a being a problem due to the client/server architecture.
What would you recommend among Gazebo, Stage or STDR ?
Would OpenRAVE be a better fit ?
Asked by pierrelux on 2014-04-17 11:00:56 UTC
Answers
If you only require simplified 2d motion capabilities for your scenario, Stage or STDR would be the best choice due to much lower runtime requirements. Gazebo provides higher fidelity (full 3d simulation) and with CloudSim, a cloud interface for it is already available (not sure how mature that is for arbitrary applications, though). There are also other potential options like MORSE or VREP that might be interesting for your use case. A little more info on what you want to simulate (sensors, motion modalities, noise etc.) would help (you can edit your original post to add info).
Asked by Stefan Kohlbrecher on 2014-04-17 11:27:11 UTC
Comments
Thanks for the suggestions. In terms of sensors, I'd be pretty basic: laser, odometry, no camera.
Asked by pierrelux on 2014-04-17 12:31:09 UTC
It may be worth looking into which simulators support running faster than real-time. This allows you do to things like simulating a 30-second run in a fraction of that time, assuming you have a fast enough CPU.
In ROS, this means setting the use_sim_time
parameter to true, and then having the simulator publish the /clock
topic. I believe Gazebo does this, and you may either be able to it in STDR, or you may be able to publish your own /clock topic and have STDR use it seamlessly. I don't have enough experience with the other simulators to know if they support something similar.
Asked by ahendrix on 2014-04-17 13:50:30 UTC
Comments