Gazebo is a multi-robot simulator for outdoor environments. Like Stage (part of the Player project), it is capable of simulating a population of robots, sensors and objects, but does so in a three-dimensional world. It generates both realistic sensor feedback and physically plausible interactions between objects (it includes an accurate simulation of rigid-body physics).
Check out the features page for a full list of Gazebo's functionality
Why use Gazebo?
Gazebo was originally designed to aid in the development process of algorithms for robotic platforms. By realistically simulating robots and environments code designed to operate a physical robot can be executed on an artificial version. This helps to avoid common problems associated with hardware such as short battery life, hardware failures, and unexpected and dangerous behaviors. It is also much faster to spin up a simulation engine than continually run code on robot, especially when the simulation engine can run faster than real-time.
Over the years Gazebo has also been used for regression testing. Scenarios designed to test algorithm functionality have been established and passed through test rigs. These tests can be run continually to maintain code quality and functionality.
Numerous researchers have also used Gazebo to develop and run experiments solely in a simulated environment. Controlled experimental setups can easily be created in which subjects can interact with robots in a realistic manner. Additionally, Gazebo has been used to compare algorithms for such things as navigation and grasping in a controlled environment.
Gazebo is under active development at the Open Source Robotics Foundation. We are continually fixing bugs, and adding new features. If you have feature requests, need help, or have bugs to report please refer to the support page.