UUV Simulator
UUV Simulator
Abstract—This paper describes the Unmanned Underwater the challenges to be overcome in order to develop this new
Vehicle (UUV) Simulator, an extension of the open-source robotics system. During the requirements analysis for a simulation
simulator Gazebo to underwater scenarios, that can simulate platform, the following basic requirements were defined:
multiple underwater robots and intervention tasks using robotic
manipulators. This is achieved mainly through a set of newly • physical fidelity for the simulation of rigid-body dynam-
implemented plugins that model underwater hydrostatic and ics and collisions,
hydrodynamic effects, thrusters, sensors, and external distur-
• interface for Robot Operating System (ROS) applications
bances. In contrast to existing solutions, it reuses and extends
a general-purpose robotics simulation platform to underwater (the standard middleware to be used by the vehicles and
environments. systems involved in this project),
• low complexity for the setup of new world scenarios and
I. I NTRODUCTION robot models,
• extendibility for integration of additional modules,
The development of applications and algorithms for un-
• adequate documentation,
manned underwater vehicles (UUVs), such as autonomous
• regularity of updates and maintenance,
underwater vehicles (AUVs) and remotely operated vehicles
• capability of multi-robot simulation,
(ROVs), requires the availability of a suitable simulation
• open-source application with permissive license (e.g.
platform for rapid prototyping and simulation in reproducible
MIT, Berkeley Software Distribution BSD, Apache).
virtual environments. This is desirable in all robotics fields, but
is especially relevant for underwater applications. Underwater The focus in the search for a robotics simulation tool was set
vehicles usually rely on expensive hardware and their target for an open-source implementation with a permissive license
domain can be difficult to access depending on the application. to facilitate the dissemination of the algorithms produced
Whereas several good open-source simulation environments within the scope of this project and the easier cooperation
exist for aerial as well for ground based robots, the scenario for between partners. The first option analyzed was the ROS-
underwater robots is less appealing. This is mostly due to the based simulator developed for in the scope of the TRIDENT
difficulty to realistically model not only hydrodynamic forces project, UWSim [2]. It offers a wide range of sensor models,
acting on the robot itself, but also the complex environments provides realistic renderings of underwater environments due
in which the operations take place. its graphics engine OpenSceneGraph1 and has been used in
The EU-funded project SWARMs (Smart and Networking several academic publications, e.g. [3]. The physics engine is
Underwater Robots in Cooperation Meshes) has as its main used only for handling contact forces and the implementation
goal the development of a standard framework that allows of the vehicle dynamics, including the simulation of thruster
to coordinate the cooperative behavior of underwater vehicles forces, is located in one monolithic ROS node, but it could be
for monitoring, inspection and intervention missions [1]. In modified to adhere to a more modular structure or interfaced
pre-defined use cases, heterogeneous groups of underwater with an external platform such as Matlab, if necessary. Setting
vehicles will be applied for tasks such as berm building, up a new simulation, however, requires the configuration of
plume tracking and inspection and maintenance of offshore the scenario, vehicles, and other objects in a single XML
wind turbines [1]. The need for a simulation environment that description file, which can make this task laborious.
allows development of new missions strategies and high-level
algorithms for cooperative behavior was identified as one of 1 http://www.openscenegraph.org/
Authorized licensed use limited to: Universitaetsbibl Rostock. Downloaded on February 20,2023 at 17:10:44 UTC from IEEE Xplore. Restrictions apply.
In order to exploit existing physics engines in a more
efficient way, freefloating-gazebo was presented as an example
of a bridge between Gazebo [4] and UWSim for the simulation
of underwater vehicles [5]. Gazebo is a general-purpose open-
source robotics simulation platform maintained and developed
by the Open-Source Robotics Foundation (OSRF). It provides
interfaces to four different physics engines for the simulation
of rigid-body dynamics and a graphical user interface to vi-
sualize the scenario. The freefloating-gazebo package includes
plugins for Gazebo to allow the generation of hydrodynamic
and hydrostatic forces and apply these to the underwater
vehicle links while transmitting the pose of simulated objects
to UWSim via ROS to exploit the underwater effects of the
graphics engine. This application, however, does not include
the computation of added-mass forces because of stability
concerns [5]. It also allows the modular construction of a
scenario on the Gazebo implementation (also in run-time),
but it still requires the monolithic XML description for the
complete simulation so that the UWSim visualization can be
initialized. Fig. 1. UUV Simulator - Software structure
A similar implementation involves the extension of Gazebo
to the Robot Construction Kit (ROCK)2 , known as Rock- the simulation environment via ROS, Section V shows two
Gazebo [6]. In this case, the ROCK visualization tool was example scenarios built using the UUV Simulator package,
extended with OpenSceneGraph for rendering the underwater and in Section VI the modules planned for future releases and
environment while the physics simulation is run in Gazebo. At conclusion are discussed.
this moment, it does not yet support the simulation of multiple
underwater vehicles. II. S OFTWARE DESCRIPTION
Since none of the systems surveyed fully fulfill the require- One of the requirements for this simulation environment in
ments mentioned above and the effort to adapt them to our pur- the scope of the SWARMs project is to make it compatible
poses would be similar to developing our own solution, it was with ROS so that the applications developed for the vehicles
decided to develop a new underwater robotics environment, can be tested seamlessly with it. However, in order to develop a
described in the further sections in more detail, with focus simulator that can be used in the future with other middlewares
on flexible and modular setup of new scenarios and vehicles. since it is to be released as an open-source application to the
As it is also not desired to further deteriorate the already marine robotics community, the modules in the underwater
fragmented underwater simulation landscape, the extension of simulation package can be divided in two groups. The models
the already popular Gazebo simulator was evaluated as the for vehicles, sensors and environmental loads are implemented
best option. It provides a robust framework for simulation and as plugins extending the functionalities of Gazebo through its
visualization of robotics mechanisms, can be extended for new API. These modules are unaware of ROS and can therefore be
dynamics, sensors and world models through modular plugins extended to allow using different middlewares. Applications
and has a regularly updated and well-defined roadmap for new and services that command and communicate with entities
releases. Robot and world models can be added to a running in the simulation were developed with ROS and can be
simulation dynamically either programmatically or through the connected to the simulation environment by using its ROS
graphical user interface. Additionally, contributions from the bridges, i.e. inherited Gazebo plugins that publish and receive
Gazebo user community allow it to be regularly improved with simulation data through ROS topics. An overview of the
new features. Even though Gazebo itself provides very few modules included in this package within the scope in that each
underwater-specific modules, the development of this package one was developed is depicted in Fig. 1.
for Gazebo can count on a platform that is continuously under The simulation currently includes typical underwater sensor
improvement. Additionally, the integration with ROS, also de- models (e.g. Doppler velocity log and subsea pressure sensor),
veloped by OSRF, is already guaranteed through Gazebo/ROS actuator dynamic models (e.g. thruster and fins), hydrostatic
packages. and hydrodynamic forces and a constant flow velocity added
The paper is structured as follows: Section II describes to the world simulation. Additionally, the vehicles can be
the package and its internal organization, Section III includes initialized with a robotic manipulator arm for the simulation
the description of the Gazebo simulation modules, Section of underwater intervention tasks. Further details about this
IV shows an overview of applications used to interact with package are described in the next sections.
Vehicle system functions are implemented using ROS and
2 http://rock-robotics.org/stable/ currently provide simple dynamic positioning controllers,
Authorized licensed use limited to: Universitaetsbibl Rostock. Downloaded on February 20,2023 at 17:10:44 UTC from IEEE Xplore. Restrictions apply.
Fig. 2. Thruster plugin model
Authorized licensed use limited to: Universitaetsbibl Rostock. Downloaded on February 20,2023 at 17:10:44 UTC from IEEE Xplore. Restrictions apply.
Fig. 4. View of a wind turbine foundation in mint condition (left) and one
with biofouling (right) (models provided by ACCIONA [11])
hicle. Fig. 5. A wind park scenario simulated in Gazebo (wind turbine models
provided by ACCIONA [11]))
A fin plugin has a similar modular structure to the thrusters.
The dynamics block has the angle of attack of the fin as a state
variable, which is then used by a model to compute lift and
which are more suitable for robots traveling on the ground
drag forces acting on the fin. Two models for lift and drag are
or through air. A number of sensor modules were created or
currently implemented: the quadratic model described in [9]
adapted from existing implementations for this work, their
and the default Gazebo lift and drag model plugin6 .
parameters being configurable by the user. Some of these
B. Underwater scenarios and environmental loads sensor plugins are described below.
The dynamics model for underwater vehicles (see Section Although an inertial measurement unit (IMU) is already
III-D) takes into account the relative velocity νr of the vehicle available in Gazebo, it neglects important aspects as the
with respect to its surrounding fluid. As explained in [10], this drifting bias. For that reason, the IMU used is the model
dynamics model is suited for underwater vehicles operating implemented for rotors simulator7 described in [12]. Its model
outside of the wave zone, which leads to the assumption that includes zero-mean Gaussian noise and sensor biases that
the hydrodynamic coefficients remain constant. follow a random walk with a zero-mean white Gaussian noise
The relative velocity used further on equations of motion as their rate.
of the vehicle is νr = ν − νcB , being νcB the current veloc- A magnetometer is also available to measure the heading
ity in the vehicle’s body frame, which is transformed from of the vehicle. This task is performed by the compass plugin,
νcI = (uc , vc , wc , 0, 0, 0)T in the North-East-Down (NED) a module based on the magnetometer provided in the Hector
frame. The constant flow velocity can be assigned to a frame Quadrotor simulation package8 [13].
with user-defined orientation and its plugin will broadcast the Furthermore, the Doppler velocity log (DVL)’s four sonar
flow velocity vector. sensors are modeled as Gazebo’s already existing ray sensor to
In addition to physical aspects, setting up a visually realistic provide a visualization to the user. The output measured linear
underwater scenario is also an important task in this implemen- velocity vm is given by the sum of the true linear velocity v
tation. It affects tasks involving, for example, visual servoing of the sensor frame and a zero-mean Gaussian noise nv .
and realistically reproducing the visual feedback received by Multi-beam echo sounders are also essential to simulate
a ROV operator. Examples of underwater environments with the generation of bathymetric maps or obstacle avoidance. In
wind turbine foundations can be seen in Fig. 4. the easiest case they can be simulated similarly to 2D laser
As stated in Section I, Gazebo does not easily allow the range finders already available in Gazebo. Fig. 6 shows the
construction of underwater environments per default. UUV resulting topographic measurements generated by range sensor
Simulator includes a world model named ocean box that configured with the specifications of a commercial 2D multi-
consists of a water surface plane with texturized waves (see beam echo sounder.
Fig. 5), a sand seabed and light attenuation provided by Finally, one of the drawbacks of Gazebo is the lack of tools
Gazebo’s fog module, which can be configured for color and to realistically represent underwater environments. A special
density. These features will be expanded in the future to camera module has been designed to further improve the light
improve visual effects. attenuation with an image post-processing step. This process
C. Underwater sensors imposes an exponential attenuation [14] of the pixel intensity
The deployment of underwater vehicles requires a slightly on the image acquired by the camera as follows:
different set of sensors than the modules provided by Gazebo,
7 https://github.com/ethz-asl/rotors simulator/wiki
6 http://gazebosim.org/tutorials?tut=aerodynamics&cat=physics 8 https://github.com/tu-darmstadt-ros-pkg/hector quadrotor
Authorized licensed use limited to: Universitaetsbibl Rostock. Downloaded on February 20,2023 at 17:10:44 UTC from IEEE Xplore. Restrictions apply.
Fig. 7. Comparison between the original image acquired during the simulation
with Gazebo’s from a wind turbine foundation with the default camera plugin
(left) and the result with exponential attenuation with the addition of fog
effects (right).
Authorized licensed use limited to: Universitaetsbibl Rostock. Downloaded on February 20,2023 at 17:10:44 UTC from IEEE Xplore. Restrictions apply.
(a) Visualization of the simulation environment in Gazebo in a offshore (b) Visualization in RViz, camera output for each vehicle on the left panel,
wind park scenario. point cloud output from the simulated multibeam sonar depicted with a
colormap on the main panel on the right.
Fig. 8. Simulation of inspection of a wind turbine foundation using two ROVs.
for the same vehicle by only adding an extra unit to the robot
description.
The manipulators are initialized with ROS controllers for
each joint and can be operated by using a joystick to com-
mand the reference velocity for the end-effector. A Jacobian-
transpose Cartesian controller allows control of the end-
effector’s pose. Each manipulator and its respective ROS nodes
(e.g. controllers, kinematics solvers services) are initialized
within a unique ROS namespace, allowing multiple manip-
ulator units (on one or multiple vehicles) to be initialized
simultaneously.
Authorized licensed use limited to: Universitaetsbibl Rostock. Downloaded on February 20,2023 at 17:10:44 UTC from IEEE Xplore. Restrictions apply.
Fig. 11. Rendering waves in an offshore wind park scenario.
Fig. 10. RexROV and Desistek SAGA mini-ROV in a subsea factory scenario.
The window on the left side shows the Gazebo environment and on the right
the output of the vehicles’ cameras (Desistek SAGA on the top, RexROV on Regarding future work within this project, one of the most
the bottom). Desistek SAGA 3D model provided by Desistek10 .
noticeable features missing in this underwater robotics simu-
lator for the Gazebo environment is the lack of characteristic
velocity. The manipulator arm is provided with individual visual effects as floating particles and proper light damping as
joint effort controllers, a kinematics service and a Cartesian a function of water depth, along with the generation of waves
controller. Fig. 8a shows the dynamic simulation in the Gazebo on the sea surface. The implementation of such effects with
environment in the wind turbine scenario. One ROV equiped the support of Gazebo’s graphics engine, OGRE, are currently
with a forward multibeam sonar measures the structure, while under development since it plays an important role in the
the other vehicle is in place to execute any maintenance task simulation of visual servoing applications and on the control
necessary. In Fig. 8b, the output of the simulated sonar can be teleoperated vehicles with visual feedback. A sample of the
seen in the form of a point cloud with a color map along with current stage of integration of waves in Gazebo can be seen
the current frames from the cameras installed on both vehicles. in Fig. 11.
As can be seen, both vehicles are setup with different sensor The implementation of an umbilical plugin is also a desired
and actuator configurations, which can be later chosen through feature to improve the simulation of ROVs. Although the
user-defined arguments by the initialization of the vehicle umbilical forces can be simulated, the simulation of contact
instance. The instances of world and UUVs are independently forces on the tether will require the geometrical representation
uploaded in Gazebo in run-time, making the construction of a of cables in Gazebo, an implementation still not existent in this
new scenario very straightforward. platform.
In another example of simulation of multiple robots shown Furthermore, as seen in the examples, the vehicles are used
in Fig. 10, a RexROV and a Desistek SAGA mini-ROV are for the simulation of missions on offshore wind parks, often in
uploaded in a subsea factory scenario. The mini-ROV is used the wave zone, which requires the simulation of environmental
to monitor the work-class ROV while the manipulator is being loads originated from waves and turbulence around the wind
deployed. turbines, another desired feature for future releases.
Finally, configuration tools to allow users not familiar with
VI. C ONCLUSION AND FUTURE WORK Gazebo/ROS development to use this tool are also included
In this paper a package for simulation of unmanned under- in the roadmap. They will allow creation of new vehicles and
water vehicles was presented. It extends the general-purpose scenarios through a graphical user interface, preventing errors
robotics simulator Gazebo for application in underwater en- originated when editing the configuration files manually.
vironments and provides an interface for operation of the
simulated vehicles through ROS. Vehicle, actuator and sen- ACKNOWLEDGMENT
sor models are implemented with the Gazebo API and can This software has been developed as part of the work un-
be extended to other robotics middlewares, if desired. This dertaken for the EU-funded research project SWARMs (Smart
package allows the setup of new simulation scenarios in run- and Networking Underwater Robots in Cooperation Meshes),
time by allowing world and robot models to be initialized ECSEL project number 662107. Thanks to DFKI Robotics
dynamically, diminishing the effort to test, build and develop Innovation Center, Bremen, for providing the 3D meshes of
new applications and mission strategies. Methods to vali- the Schilling Robotics Orion 7P Manipulator.
date the dynamic simulation implemented are currently being
studied. This application is open-source and is available at
R EFERENCES
https://github.com/uuvsimulator/uuv simulator.
[1] (2015) SWARMs project website. [Online]. Available:
10 http://www.desistek.com.tr/ http://www.swarms.eu/
Authorized licensed use limited to: Universitaetsbibl Rostock. Downloaded on February 20,2023 at 17:10:44 UTC from IEEE Xplore. Restrictions apply.
[2] M. Prats, J. Pérez, J. J. Fernandéz, and P. J. Sanz, “An open source
tool for simulation and supervision of underwater intervention missions,”
in 2012 IEEE/RSJ International Conference on Intelligent Robots and
Systems. Institute of Electrical & Electronics Engineers (IEEE), Oct
2012.
[3] P. Kormushev and D. G. Caldwell, “Towards improved AUV control
through learning of periodic signals,” in 2013 OCEANS - San Diego,
Sept 2013, pp. 1–4.
[4] N. Koenig and A. Howard, “Design and use paradigms for gazebo,
an open-source multi-robot simulator,” in 2004 IEEE/RSJ International
Conference on Intelligent Robots and Systems (IROS) (IEEE Cat.
No.04CH37566). Institute of Electrical & Electronics Engineers (IEEE),
2004.
[5] O. Kermorgant, “A dynamic simulator for underwater vehicle-
manipulators,” in Simulation, Modeling, and Programming for Au-
tonomous Robots. Springer Science + Business Media, 2014, pp.
25–36.
[6] T. Watanabe, G. Neves, R. Cerqueira, T. Trocoli, M. Reis, S. Joyeux,
and J. C. Albiez, “The Rock-Gazebo integration and real-time AUV
simulation,” in 12th Latin American Robotics Symposium and 2015
Third Brazilian Symposium on Robotics, 2015.
[7] D. R. Yoerger, J. G. Cooke, and J.-J. E. Slotine, “The influence of
thruster dynamics on underwater vehicle behavior and their incorpora-
tion into control system design,” IEEE Journal of Oceanic Engineering,
vol. 15, no. 3, pp. 167–178, jul 1990.
[8] W. M. Bessa, M. S. Dutra, and E. Kreuzer, “Thruster dynamics com-
pensation for the positioning of underwater robotic vehicles through a
fuzzy sliding mode based approach,” in ABCM Symposium Series in
Mechatronics, vol. 2, 2006, pp. 605–612.
[9] Ø. Engelhardtsen, “3D AUV Collision Avoidance,” Master’s Thesis,
Norwegian University of Science and Technology, Department of Engi-
neering Cybernetics, 2007.
[10] T. I. Fossen, Handbook of Marine Craft Hydrodynamics and Motion
Control. Wiley, 2011.
[11] (2016, May) ACCIONA homepage. [Online]. Available:
http://www.acciona.com/
[12] F. Furrer, M. Burri, M. Achtelik, and R. Siegwart, “RotorS—a mod-
ular gazebo MAV simulator framework,” in Studies in Computational
Intelligence. Springer Science + Business Media, 2016, pp. 595–625.
[13] J. Meyer, A. Sendobry, S. Kohlbrecher, U. Klingauf, and O. von Stryk,
“Comprehensive simulation of quadrotor UAVs using ROS and gazebo,”
in Simulation, Modeling, and Programming for Autonomous Robots.
Springer Science + Business Media, 2012, pp. 400–411.
[14] Y. Y. Schechner and N. Karpel, “Clear underwater vision,” in Computer
Vision and Pattern Recognition, 2004. CVPR 2004. Proceedings of the
2004 IEEE Computer Society Conference on, vol. 1, June 2004, pp.
I–536–I–543 Vol.1.
[15] Nomenclature for Treating the Motion of a Submerged Body Through
a Fluid: Report of the American Towing Tank Conference. Society of
Naval Architects and Marine Engineers, 1950.
[16] F. Dukan, “ROV Motion Control Systems,” Ph.D. dissertation, Nor-
wegian University of Science and Technology, Department of Marine
Technology, 2014.
Authorized licensed use limited to: Universitaetsbibl Rostock. Downloaded on February 20,2023 at 17:10:44 UTC from IEEE Xplore. Restrictions apply.