• No results found

Finally, OpenRDK13 is still another robotic middleware characterized by a centralized blackboard-type communication system.

4.3 Related tools: robotic simulators

This section presents, simulators and associated software tools. It will be shown that none of these tools aims to provided a complete set of libraries, fully integrated, as in the case of FARSA.

4.3.1 Webots

In this and in the following subsections we will describe a series of simulators, i.e.

software tools that enable to simulate robotic agents, environments, and robots/en-vironmental interactions. Webots14 [68] is probably the most influential and popular simulator that has been developed. It was initially created by Olivier Michel at the Swiss Federal Institute of Technology (EPFL) in Lausanne, Switzerland, and then com-mercialized by a spin-off company led by the software creator. The simulator runs on Microsoft Windows, Linux and Mac OS X and is available in different versions, which vary with respect to the price and the features available. The tool has been used by more than 1200 universities and research centres worldwide.

Webots contains a rich library of robots that can be simulated: Aibos, Bioloids, Boe-Bot, e-puck, HOAP-2, iRobot Create, Katana, Khepera, Koala, Kondo KHRs, Nao, Pioneer, Shrimp III, Surveyor SVR-1 and others. It also contains an extensive set of objects that can be used to build a simulated world (e.g. boxes, doors, walls, lights and so on).

Finally it contains an extensive set of examples and tutorials. The simulator is based on ODE15, a well known open source library that enable to simulate the dynamics of rigid bodies.

To run an experiment the user should program at least two software components that implement the architecture of the environment and the robot controller (each robot is

13http://openrdk.sourceforge.net/

14https://www.cyberbotics.com/

15http://www.ode.org/

4.3. RELATED TOOLS: ROBOTIC SIMULATORS

provided with an independent controller). Eventually the user can implement a su-pervisor software component that can be used to modify the environment during the experiment.

The functionalities of Webots can be extended by realizing software plugins, i.e. soft-ware components that are compiled independently and loaded at runtime. Plugins can be used for example to create additional display windows (that can be used, for ex-ample, to visualize the state of the robot’s sensors) or to create additional types of simulated sensors and actuators.

A shortcoming of Webots is that it can only operate with the graphical interface on. This prevents the possibility to speed up the simulation by avoiding the usage of the graphic, a feature that is particular important for speeding up time-consuming experiments, e.g.

experiments that require long training phases.

4.3.2 ARGoS

ARGoS16 [92] is a 3D physic simulation tool targeted particularly at swarm robotics research. It is an open source tool that was developed during the Swarmanoid17 European project. It was then used in the following others European projects: AS-CENS18, H2SWARM19, E-SWARM20and Swarmix21.

The simulator is written in C++ and has a highly modular architecture. Every compon-ent can be implemcompon-ented as a separate plugin and loaded at runtime, so that all the relevant aspects of a simulation can be overridden. This potentially enables to extend the tool in any possible direction. A special kind of plugin, called loop function, can be used to implement custom-made simulation-specific extensions.

The most distinctive feature of ARGoS is the possibility to partition the simulated space

16http://www.argos-sim.info/

17http://www.swarmanoid.org/

18http://ascens-ist.eu/

19http://www.esf.org/coordinating-research/eurocores/running-programmes/

eurobiosas/collaborative-research-projects-crps/h2swarm.html

20http://www.e-swarm.org/

21http://www.swarmix.org/

4.3. RELATED TOOLS: ROBOTIC SIMULATORS

into spaces and to assign a different physics engine to each of them. The sub-spaces must be non overlapping and it is possible to use different kinds of engines (e.g. kinematic, 2D, 3D, etc.). This allows to optimize the simulation speed by tuning the accuracy of the simulation in an appropriate manner. The simulator is also based on a multi-thread architecture that supports the utilization of computer cluster and/or multi-core CPUs.

The main drawback of ARGoS is that it does not work under Microsoft Windows.

Moreover the usage of the tool requires a significant programming effort due also to the lack of an integrated graphical user interface.

4.3.3 USARSim

USARSim [19] is another open-source simulator that was initially developed by the National Science Foundation (NSF) as a research tool for Urban Search And Rescue (USAR) scenarios. The simulator was later extended toward a more general use. It is the official simulator of the RoboCup Rescue Virtual Robot Competition22, in which teams of robots are placed in a simulated USAR scenario and are evaluated for how many people they manage to find and the portion of the environment they explore.

USARSim is based on Unreal Engine23, a physics and graphic engine developed by Epic Games24. Despite being targeted mainly towards the realization of computer games, Unreal Engine can also be used to simulate robotic platforms. In fact it can be extended by using a proprietary programming language called Unrealscript and an interface called Gamebots25. The robots’ controllers can be programmed using any programming language thanks to the possibility to use TCP sockets.

The simulator supports a wide range of robotics platforms (humanoids, wheeled, vehicles, etc.) and can be extended to support additional robotic platforms, sensors, and actuat-ors. Extensions can be implemented through the Unrealscript programming language.

22http://www.robocuprescue.org/virtualsim.html

23https://www.unrealengine.com/

24http://epicgames.com/

25http://sourceforge.net/projects/gamebots/

4.3. RELATED TOOLS: ROBOTIC SIMULATORS

The implementation of the environment can be realized through the use of a graphical tools distributed together with the Unreal engine.

USARSim is an open source project but is based on a proprietary engine (i.e. the Un-real engine). This limits the inspection and the customization of the tool and imposes the use of the Unrealscript proprietary language for the implementation of certain com-ponents.

4.3.4 Gazebo

Gazebo26 is a general purpose open-source simulator [56] that has been developed from 2002 at the University of Sourthern California. From 2009 it become the refer-ence simulator for the ROS community. From 2012 it became a project of The Open Source Robotics Foundation. In 2013 the simulator was used to run the Virtual Ro-botics Challenge, one of the DARPA RoRo-botics Challenge. A new major version of the simulator is released every 6 months.

Gazebo has a client-server structure: the server performs the actual simulation and has no graphical user interface, while the client connects to the server and has a graphic interface (GUI) that can be used to display the world and the robot. The 3D render-ing of the scene is performed by usrender-ing OGRE27, a high quality open-source graphics rendering engine. It supports different physical engines (currently ODE, Bullet28, Sim-body29and DART30). The characteristics of the world and of the robot are described in SDF files31 by using a XML format. Plugins programmed by the user can be used to implement the robots’ controllers and/or to extend the simulator.

Gazebo is often used in combination with ROS, YARP and Player to enable the pos-sibility to test the robots’ controller both in simulation and in hardware.

26http://gazebosim.org/

27http://www.ogre3d.org/

28http://bulletphysics.org/wordpress/

29https://simtk.org/home/simbody/

30http://dartsim.github.io/

31http://sdformat.org/