The Stage simulator
Stage is a part of the Player Project (Player/stage/gazebo) and is now also a part of ROS (Robot Operating System); there have been significant changes since version 3 to improve its simulation performance. Maybe the most important novelty is the support for multi-threaded execution.
Stage is supported in nearly all Unix-based OSS and in Mac OS X. It is interesting to know that the name ‘Player’ and ‘Stage’ were inspired by the quote, "All the world's a stage," by William Shakespeare in As You Like It.
Stage provides the user with a two-dimensional graphic environment, which has facilities for a perspective camera, making it effectively a 2.5 dimensional simulator. Stage has facilities for modelling the robot and its sensors using simple scripts. Some in-built Stage controllers are the ‘wander’ controller, which enables a wandering kind of behaviour; the ‘lasernoise’ controller, which helps in studying the noise generated in the laser sensor of the robot; and the ‘pioneer_ flocking’ controller, which enables flocking behaviour for a number of pioneer robots.
To implement the ‘pioneer_flocking’ controller, cd to Stage-source/worlds and run the world file with the following command: That will pop up a screen similar to the one in Figure 1. Stage shines at simulating navigation- and sensing-based experiments. It can simulate one robot about 1000 times faster than real-time, and 1000 robots in about real-time. However, the kinematic physics models employed in Stage prevent one from executing experiments that involve pushing and pulling objects, as well as robot self-assembly.
To cope with this issue, the Player Project offers Gazebo, which is a three-dimensional dynamics simulator. In Gazebo,
stage pioneer_flocking.world one can run very complex experiments. However, the improved accuracy of the robot models makes this simulator much slower than Stage.
Stage is also a part of ROS. However, at the time of writing, the latest ROS release Electric Emys does not support Stage controllers through the ROS nodes.
The stable release of Stage can be downloaded from playerstage.sourceforge.net/. Alternatively, if you feel adventurous and want to try the bleeding edge, you can download the development version at https://github.com/rtv/stage.