Abstract-Simulators have played a critical role in robotics research as tools far quick and effident testing of new concepts, slrategies, and algorithms. To date, most simulators have been restricted to 2D worlds, and few have matured to the point where they are both highly capable and easily adaptable. Gazebo is designed to fill this niche by creating a 3D dynamic multi-robot environment capable of recreating the complex worlds that will be encountered by the next generation of mobile robots. Its open source stat~ls, fine grained coonlml, and high fidelity place Gazebo in a unique position to become more than just B stepping stone between the drawing board and real hardware: data visualization, simulation of remote envlronments, and wen reverse engineering of blackbox @ems are all possible applications. Gazebo  The Player and Stage projects have been in development since 2001, during which time they have experienced wide spread usage in both academia and industry. Player is a networked device server, and Stage is a simulator for large populations of mobile robots in complex 2D domains. A naNra1 complement for these two projects is a high fidelity outdoor dynamics simulator; this has taken form in the Gazebo project. The development of Gazebo has been driven by the increasing use of robotic vehicles for outdoor applications. While Stage is quite capable of simulating the interactions between robots in indoor environments, the need for a simulator capable of modeling outdoor environments and providing realistic sensor feedback have become apparent. Gazebo, therefore, is designed to accurately reproduce the dynamic environments a robot may encounter. All simulated objects have mass, velocity, friction, and numerous other attributes that allow them to behave realistically when pushed, pulled, knocked over, or carried. These actions can be used as integral parts of an experiment, such as construction or foraging. The robots themselves are dynamic smcmres composed of rigid bodies connected via joints. Forces, both angula and linear, can be applied to surfaces and joints to generate locomotion and interaction with an environment. The world itself is described by landscapes, extruded buildings, and other user created objects Almost every aspect of the simulation is controllable, from lighting conditions to friction coefficients. Following the principles established by Player and Stage, Gazebo is completely open source and freely available (a major advantage over most commercially available packages). As a result, Gazebo has an active base of contributers who are rapidly evolving the package to meet their everchanging needs. Gazebo offers a rich environment to quickly develop and test multi-robot systems in new and interesting ways. It is an effective, scalable, and simple tool that has also potential for opening the field of robotics research to a wider community; thus, for example, Gazebo is being considered for use in undergraduate teaching. This paper describes the basic architecture of the Gazebo package, and illustrates its use and extensibility through a number of user case-studies. We also give some attention to future directions for this package. Gazebo bas been developed from the ground up to be fully compatible with the Player device server. The hardware simulated in Gazebo is designed to accurately reflect the behavior of its physical counterpart. As a result, a client program sees an identical interface to a real and simulated robot. This feature allows Gazebo to be seamlessly inserted into the development process of a robotic system. Even though it is compatible with Player, Gazebo is not meant as a replacement for the Stage simulator. The complexity of simulating rigid body dynamics coupled with a 3D environment can severely tax even a high performance computer. This has the effect of limiting Gazebo to the domain a few robots, currently on the order of ten. On the other hand, Stage provides a robust and efficient simulator for projects that require large robot populations or do not require the full capabilities of Gazebo. Gazebo is far from being the only choice for a 3D dynamics simulator. It is however one of the few that attempts to create realistic worlds for the robots rather than just human users. As more advanced sensors are developed and incorporated into Gazebo the line between simulation and reality will continue to blur, but accuracy in terms of robot sensors and actuators will remain an overriding goal. A few notable systems include COSIMIR [41, developed at Festo. This is a commercial package primarily designed 2149 for industrial simulation of work flows with robotic systems, but is also applicable to robotic research. COSIMR has advanced modeling and physical simulation capabilities that go well beyond the capabilities of Gazebo. It incorporates many types of grippers, the ability to program movement in non-robotic models such as assembly lines, and has tools for analysis of the simulated systems. Another commercial package is Wehots (51 created by Cyberhotics. Wehots allows for the creation of robots using a library of predefined actuators and sensors. When system testing in the simulator is complete, a user can transfer their code to real robots. The principle purpose of Webots is research and development. Cyberbotics is also developing a Player interface for compatibility with a wider range of devices. Darwin2K 161 and OpenSim 171 represent two open source robot simulators developed along similar lines as Gazebo. Darwin 2K was created by Chris Leger at Camegie Mellon University as a tool for his work on evolutionary robotics. This simulator accurately models motor and gear heads in fine detail while providing stress estimates on structural bodies. Darwin2K has a strong focus on evolutionary synthesis, design, and optimization and still remains a capable general purpose simulator for dynamic systems. OpenSim, under development by David lung, is a generic open source robot simulator similar in design an purpose to Gazebo. This simulator makes use of the same thud party software packages as Gazebo. and has some attractive features for constructing and debugging aniculated joint chains. IV. ARCHITECTURE Gazebo's architecture has progressed through a couple iterations during which we learned how to best create a simple tool for both developers and end users. We realized from the start that a major feature of Gazebo should be the ability to easily create new robots, actuators, sensors, and arbitrary objects. As a result, Gazebo maintains a simple API for addition of these objects, which we term models, and the necessary hooks for interaction with client programs. A layer below this API resides the thnd party libraries that handle both the physics simulation and vlsualization. The particular Libraries used were chosen based on their open source status, active user base, and maturity. This architecture is graphically depicted in Figure 1 . The World represents the set of all models and environmental factors such as gravity and lighting. Each model is composed of at least one body and any number of joints and senson. The lhird party libraries interface with Gazebo at the lowest level. This prevents models from becoming dependent on specific tools that may change in the future. Finally, client commands are received and data retumed through a shared memory interface. A model can have many interfaces for functions involving, for example, control of joints and transmission of camera images. The Open Dynamics Engine [8], created by Russel Smith is a widely used physics engine in the open source community. It is designed to simulate the dynamics and kinematics associated with articulated rigid bodies. This engine includes many features such as numerous joints, collision detection, mass and rotational functions, and many geometries including arbitrary triangle meshes (Figure 6 ). Gazebo utilizes these features by providing a layer of abstraction situated between ODE and Gazebo models. This layer allows easy creation of both normal and abstract objects such as laser rays and ground planes while &tailling all the functionality provided by ODE. With this internal Final Model -abstraction, it is possible to replace the underlying physics engine, should a better alternative become available. A well designed simulator usually provides some form of user interface, and Gazebo requires one that is both sophisticated and fast. The heart of Gazebo lies in its ability to simulate dynamics, and this requires significant work on behalf of the user's computer. A slow and cumbersome user interface would only detract from the simulator's primary purpose. To account for this, OpenGL and GLUT (OpenGL Utility Toolkit) [9] were chosen as the default visualization tools. OpenGL is a standard library for the creation of 2D and 3D interactive applications. It is platform independent, highly scalable, stable, and continually evolving. More importantly, many features in OpenCL have been
Gazebo REF ) is a 3D simulator for multiple robots.
Design and use paradigms for Gazebo, an open-source multi-robot simulator
2004 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) (IEEE Cat. No.04CH37566)
2004 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) (IEEE Cat. No.04CH37566)
Computer Science