UUV模拟器:一个基于Gazebo的水下干预和多机器人仿真包

UUV Simulator: A Gazebo-based Package for Underwater Intervention and Multi-Robot Simulation

UUV模拟器:一个基于Gazebo的水下干预和多机器人仿真包

期刊信息:OCEANS 2016 MTS/IEEE MONTEREY

其他信息:

Musa Morena Marcusso Manhaes,
Sebastian A. Scherer, Martin Voss and Luiz Ricardo Douat
Corporate Sector for Research and Advance Engineering Robert Bosch GmbH Renningen, Germany Email: musa.marcusso@de.bosch.com

Musa Morena Marcusso Manhaes,
Sebastian A. Scherer, Martin Voss和Luiz Ricardo Douat
德国雷宁根罗伯特博世有限公司研究与先进工程
部门电子邮件:musa.marcusso@de.bosch.com

Thomas Rauschenbach
Advanced System Technology (AST)
Fraunhofer-Institute of Optronics, System Technologies and Image Exploitation
Ilmenau, Germany

Thomas Rauschenbach
先进系统技术(AST) fraunhofer -光电、系统技术和图像开发研究所
德国Ilmenau

摘要

Abstract—This paper describes the Unmanned Underwater Vehicle (UUV) Simulator, an extension of the open-source robotics simulator Gazebo to underwater scenarios, that can simulate multiple underwater robots and intervention tasks using robotic manipulators. This is achieved mainly through a set of newly implemented plugins that model underwater hydrostatic and hydrodynamic effects, thrusters, sensors, and external disturbances. In contrast to existing solutions, it reuses and extends a general-purpose robotics simulation platform to underwater environments.

摘要:本文介绍了无人水下航行器(UUV)模拟器,它是开源机器人模拟器Gazebo在水下场景的扩展,可以模拟多个水下机器人和使用机器人操纵器的干预任务。这主要是通过一组新实现的插件来实现的,这些插件可以模拟水下流体静力和流体动力效应、推进器、传感器和外部干扰。与现有的解决方案相比,它重用并扩展了一个通用的水下环境机器人仿真平台。

I. INTRODUCTION

The development of applications and algorithms for unmanned underwater vehicles (UUVs), such as autonomous underwater vehicles (AUVs) and remotely operated vehicles (ROVs), requires the availability of a suitable simulation platform for rapid prototyping and simulation in reproducible virtual environments. This is desirable in all robotics fields, but is especially relevant for underwater applications. Underwater vehicles usually rely on expensive hardware and their target domain can be difficult to access depending on the application. Whereas several good open-source simulation environments exist for aerial as well for ground based robots, the scenario for underwater robots is less appealing. This is mostly due to the difficulty to realistically model not only hydrodynamic forces acting on the robot itself, but also the complex environments in which the operations take place.
无人水下航行器(uuv)的应用和算法的发展,如自主水下航行器(auv)和远程操作航行器(rov),需要一个合适的仿真平台,在可复制的虚拟环境中进行快速原型设计和仿真。这在所有机器人领域都是可取的,但对水下应用尤其重要。水下航行器通常依赖于昂贵的硬件,而且根据不同的应用,它们的目标域可能很难进入。尽管有几个好的开源仿真环境既可以用于空中机器人,也可以用于地面机器人,但水下机器人的场景却不那么吸引人。这主要是由于难以真实地模拟不仅作用于机器人本身的水动力,而且操作发生的复杂环境。

The EU-funded project SWARMs (Smart and Networking Underwater Robots in Cooperation Meshes) has as its main goal the development of a standard framework that allows to coordinate the cooperative behavior of underwater vehicles for monitoring, inspection and intervention missions [1]. In pre-defined use cases, heterogeneous groups of underwater vehicles will be applied for tasks such as berm building, plume tracking and inspection and maintenance of offshore wind turbines [1]. The need for a simulation environment that allows development of new missions strategies and high-levelalgorithms for cooperative behavior was identified as one of the challenges to be overcome in order to develop this new system. During the requirements analysis for a simulation platform, the following basic requirements were defined:
欧盟资助的项目SWARMs (合作网格中的智能和联网水下机器人)的主要目标是开发一个标准框架,以协调水下航行器的合作行为,进行监测、检查和干预任务[1]。在预先定义的用例中,异质水下航行器组将被应用于诸如护堤建设、羽流跟踪以及海上风力涡轮机的检查和维护等任务[1]。为了开发这个新系统,需要一个模拟环境来开发新的任务策略和高级合作行为算法,这是需要克服的挑战之一。在对仿真平台进行需求分析时,定义了以下基本需求:

• physical fidelity for the simulation of rigid-body dynamics and collisions,
• interface for Robot Operating System (ROS) applications (the standard middleware to be used by the vehicles and systems involved in this project),
• low complexity for the setup of new world scenarios and robot models,
• extendibility for integration of additional modules, • adequate documentation,
• regularity of updates and maintenance,
• capability of multi-robot simulation,
• open-source application with permissive license (e.g. MIT, Berkeley Software Distribution BSD, Apache).
•机器人操作系统(ROS)应用程序的接口(该项目中涉及的车辆和系统使用的标准中间件),
•设置新世界场景和机器人模型的低复杂性,
•集成额外模块的可扩展性,
•充足的文档,
•定期更新和维护,
•多机器人模拟的能力,
•带有许可的开源应用程序(例如; MIT, Berkeley Software Distribution BSD, Apache)。

The focus in the search for a robotics simulation tool was set for an open-source implementation with a permissive license to facilitate the dissemination of the algorithms produced within the scope of this project and the easier cooperation between partners. The first option analyzed was the ROSbased simulator developed for in the scope of the TRIDENT project, UWSim [2]. It offers a wide range of sensor models, provides realistic renderings of underwater environments due its graphics engine OpenSceneGraph1and has been used in several academic publications, e.g. [3]. The physics engine is used only for handling contact forces and the implementation of the vehicle dynamics, including the simulation of thruster forces, is located in one monolithic ROS node, but it could be modified to adhere to a more modular structure or interfaced with an external platform such as Matlab, if necessary. Setting up a new simulation, however, requires the configuration of the scenario, vehicles, and other objects in a single XML description file, which can make this task laborious.
搜索机器人仿真工具的重点是为开源实现设置一个宽松的许可证,以促进本项目范围内产生的算法的传播,并简化合作伙伴之间的合作。分析的第一个选项是在TRIDENT项目范围内开发的基于ros的模拟器UWSim[2]。它提供了广泛的传感器模型,由于其图形引擎openscenegraph1,它提供了水下环境的逼真渲染,并已在一些学术出版物中使用,例如[3]。物理引擎仅用于处理接触力和飞行器动力学的实现,包括推进器力的模拟,位于一个单片ROS节点中,但如果需要,它可以被修改以坚持更模块化的结构或与外部平台(如Matlab)接口。但是,设置一个新的模拟需要在一个XML描述文件中配置场景、车辆和其他对象,这会使这项任务变得费力。

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 opensource 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 visualize 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.
为了更有效地利用现有的物理引擎,我们提出了自由浮动的Gazebo作为Gazebo[4]和UWSim之间的桥梁的例子,用于水下航行器的模拟[5]。Gazebo是一个通用的开源机器人仿真平台,由开源机器人基金会(OSRF)维护和开发。它为四种不同的物理引擎提供接口,用于模拟刚体动力学,并提供图形用户界面来可视化场景。自由漂浮的Gazebo包包括Gazebo插件,允许生成流体动力和流体静力,并将这些应用于水下航行器链接,同时通过ROS将模拟物体的姿态传输到UWSim,以利用图形引擎的水下效果。然而,由于稳定性问题,该应用不包括附加质量力的计算[5]。它还允许在Gazebo实现上对场景进行模块化构建(也是在运行时),但是它仍然需要完整模拟的整体XML描述,以便可以初始化UWSim可视化。

A similar implementation involves the extension of Gazebo to the Robot Construction Kit (ROCK)2, known as RockGazebo [6]. In this case, the ROCK visualization tool was extended with OpenSceneGraph for rendering the underwater environment while the physics simulation is run in Gazebo. At this moment, it does not yet support the simulation of multiple underwater vehicles.
类似的实现包括将Gazebo扩展到机器人构建工具包(ROCK)2,即RockGazebo[6]。在这种情况下,ROCK可视化工具被扩展为OpenSceneGraph,用于渲染水下环境,同时在Gazebo中运行物理模拟。目前,它还不支持多个水下航行器的模拟。

Since none of the systems surveyed fully fulfill the requirements mentioned above and the effort to adapt them to our purposes would be similar to developing our own solution, it was decided to develop a new underwater robotics environment, described in the further sections in more detail, with focus on flexible and modular setup of new scenarios and vehicles. As it is also not desired to further deteriorate the already fragmented underwater simulation landscape, the extension of the already popular Gazebo simulator was evaluated as the best option. It provides a robust framework for simulation and visualization of robotics mechanisms, can be extended for new dynamics, sensors and world models through modular plugins and has a regularly updated and well-defined roadmap for new releases. Robot and world models can be added to a running simulation dynamically either programmatically or through the graphical user interface. Additionally, contributions from the Gazebo user community allow it to be regularly improved with new features. Even though Gazebo itself provides very few underwater-specific modules, the development of this package for Gazebo can count on a platform that is continuously under improvement. Additionally, the integration with ROS, also developed by OSRF, is already guaranteed through Gazebo/ROS packages.
由于所调查的系统都没有完全满足上述要求,并且使其适应我们的目的的努力将类似于开发我们自己的解决方案,因此决定开发一个新的水下机器人环境,在后面的章节中更详细地描述,重点是灵活和模块化的新场景和车辆设置。由于也不希望进一步恶化已经支离破碎的水下模拟景观,因此已经流行的Gazebo模拟器的扩展被评估为最佳选择。它为机器人机制的仿真和可视化提供了一个强大的框架,可以通过模块化插件扩展到新的动态、传感器和世界模型,并为新版本提供了定期更新和定义良好的路线图。机器人和世界模型可以通过编程或通过图形用户界面动态地添加到正在运行的仿真中。此外,来自Gazebo用户社区的贡献使其能够定期改进新功能。尽管Gazebo本身提供的水下特定模块非常少,但Gazebo的这个包的开发可以依靠一个不断改进的平台。此外,与ROS的集成(同样由OSRF开发)已经通过Gazebo/ROS包得到了保证。

The paper is structured as follows: Section II describes the package and its internal organization, Section III includes the description of the Gazebo simulation modules, Section IV shows an overview of applications used to interact with the simulation environment via ROS, Section V shows two example scenarios built using the UUV Simulator package, and in Section VI the modules planned for future releases and conclusion are discussed.
本文的结构如下:第二节描述软件包及其内部组织,第三节包括对Gazebo仿真模块的描述,第四节概述了用于通过ROS与仿真环境交互的应用程序,第五节展示了使用UUV模拟器包构建的两个示例场景,在第六节中讨论了计划用于未来版本和结论的模块。

II. SOFTWARE DESCRIPTION (软件描述)

One of the requirements for this simulation environment in the scope of the SWARMs project is to make it compatible with ROS so that the applications developed for the vehicles can be tested seamlessly with it. However, in order to develop a simulator that can be used in the future with other middlewares since it is to be released as an open-source application to the marine robotics community, the modules in the underwater simulation package can be divided in two groups. The models for vehicles, sensors and environmental loads are implemented as plugins extending the functionalities of Gazebo through its API. These modules are unaware of ROS and can therefore be extended to allow using different middlewares. Applications and services that command and communicate with entities in the simulation were developed with ROS and can be connected to the simulation environment by using its ROS bridges, i.e. inherited Gazebo plugins that publish and receive simulation data through ROS topics. An overview of the modules included in this package within the scope in that each one was developed is depicted in Fig. 1.
在SWARMs项目范围内,该模拟环境的要求之一是使其与ROS兼容,以便为航行器开发的应用程序可以与它无缝地进行测试。然而,为了开发一个可以在未来与其他中间件一起使用的模拟器,因为它6i 将作为一个开源应用程序发布给海洋机器人社区,水下模拟包中的模块可以分为两组。车辆、传感器和环境负载的模型是作为插件实现的,通过其API扩展Gazebo的功能。这些模块不知道ROS,因此可以扩展以允许使用不同的中间件。在仿真中与实体进行命令和通信的应用程序和服务是用ROS开发的,可以通过使用其ROS桥连接到仿真环境,即通过ROS主题发布和接收仿真数据的继承的Gazebo插件。图1描述了这个包中包含的模块的概述,其中每个模块都是在范围内开发的。
UUV模拟器-软件结构

Fig. 1. UUV Simulator - Software structure
图1. UUV模拟器-软件结构

The simulation currently includes typical underwater sensor models (e.g. Doppler velocity log and subsea pressure sensor), actuator dynamic models (e.g. thruster and fins), hydrostatic and hydrodynamic forces and a constant flow velocity added to the world simulation. Additionally, the vehicles can be initialized with a robotic manipulator arm for the simulation of underwater intervention tasks. Further details about this package are described in the next sections.
目前的模拟包括典型的水下传感器模型(如多普勒速度日志和海底压力传感器)、执行器动态模型(如推进器和鳍)、流体静力和流体动力以及添加到世界模拟中的恒定流速。此外,航行器可以初始化与机器人操纵臂模拟水下干预任务。关于这个包的更多细节将在下一节中描述。

Vehicle system functions are implemented using ROS and currently provide simple dynamic positioning controllers, thruster allocation services, teleoperation modules (e.g. a joystick interface) and, in the case of robotic arms, Cartesian control and kinematics solver services. This set of modules provides a basic structure to interact with the simulated vehicles and the Gazebo simulation environment.
车辆系统功能使用ROS和目前提供简单的动态定位控制器,推进器分配服务,远程操作模块(例如操纵杆接口),以及在机器人手臂的情况下,笛卡尔控制和运动学求解器服务。这组模块提供了与模拟车辆和Gazebo模拟环境交互的基本结构。

III. GAZEBO SIMULATION PACKAGE (Gazebo模拟包)

The Gazebo simulator gives the user the possibility to extend it with user-defined plugins. By using its API, the plugin has access to the simulation objects and data, can transmit information via topics by using Protocol Buffer3 messages and apply torques and forces to objects in the scenario. The plugins must be initialized with a robot, sensor or world models as described in their respective SDF4 file, an XML format designed for Gazebo. For applications using ROS, the robot descriptions are specified in URDF5, a similar file format.
Gazebo模拟器为用户提供了使用用户定义插件扩展它的可能性。通过使用其API,插件可以访问仿真对象和数据,可以通过使用Protocol Buffer3消息通过主题传输信息,并对场景中的对象施加扭矩和力。插件必须用各自的SDF4文件(为Gazebo设计的XML格式)中描述的机器人、传感器或世界模型初始化。对于使用ROS的应用程序,机器人描述是用URDF5指定的,这是一种类似的文件格式。

The vehicle and sensor robot description must also contain a geometry file. Visual geometries used by the rendering engine are provided in COLLADA format and the collision geometries in STL format. This separation is important to allow simplified collision geometries to be used since very complex meshes might slow down collision computations considerably.
车辆和传感器机器人描述还必须包含一个几何文件。渲染引擎使用的视觉几何图形以COLLADA格式提供,碰撞几何图形以STL格式提供。这种分离对于允许使用简化的碰撞几何非常重要,因为非常复杂的网格可能会大大降低碰撞计算速度。

Gazebo is already capable of rigid-body dynamics simulation due to its integration with four physics engines, one of which must be initialized and configured within the world model description. In underwater environments, hydrodynamic and hydrostatic forces and moments must also be taken into account, along with the appropriate actuator and sensor models. This is achieved using additional plugins implemented as part of the UUV Simulator package, which can divided into the following categories:
Gazebo已经能够进行刚体动力学模拟,因为它集成了四个物理引擎,其中一个必须在世界模型描述中初始化和配置。在水下环境中,还必须考虑流体动力和流体静力和力矩,以及适当的执行器和传感器模型。这是使用作为UUV模拟器包的一部分实现的附加插件来实现的,它可以分为以下几类:
• actuator models (e.g. fins and thrusters)
• underwater sensors
• hydrodynamic and hydrostatic forces and moments
• underwater worlds and environmental loads.
•执行器模型(例如鳍和推进器)
•水下传感器
•流体动力和流体静力和力矩
•水下世界和环境负载。

A. Thruster and fin plugins (推进器和鳍插件)

Thruster dynamics has a highly nonlinear behavior in real systems, which is often a source of poor performance of positioning control of underwater vehicles, especially at low speeds [7]. Several models for the thruster dynamics are available in the literature (e.g. [7], [8]) but none can be considered state-of-the-art.
在实际系统中,推力器动力学具有高度非线性,这往往是水下航行器定位控制性能不佳的原因之一,特别是在低速时[7]。在文献中有几个推进器动力学模型(例如[7],[8]),但没有一个可以被认为是最先进的。

The model usually describes the dynamic behavior of the propeller with the angular velocity as the state variable, which is converted to the thrust force through an empirical steady-state relation between a function of angular velocity and output thrust force.
该模型通常以角速度作为状态变量来描述螺旋桨的动力行为,并通过角速度与输出推力的函数之间的经验稳态关系将其转化为推力。

To cover the multitude of thruster models to be used in the simulated vehicles, the dynamics model and the steady-state curve are implemented as two generic blocks (see Fig. 2). The dynamics models currently available include zero-order model, first-order model, Yoerger’s model for propeller dynamic [7] and Bessa’s extended model published in [8]. Steady-state curves for thrust force conversion can be modeled as a constant gain [7], constant gain with a dead-zone nonlinearity [8], or via linear interpolation between input and output pairs. The last option allows the user directly use the manufacturer’s data from Bollard pull tests often included in the thruster’s datasheet.
为了涵盖仿真飞行器中使用的众多推进器模型,将动力学模型和稳态曲线实现为两个通用模块(见图2)。目前可用的动力学模型包括零阶模型、一阶模型、Yoerger的螺旋桨动力学模型[7]和Bessa的扩展模型[8]。推力转换的稳态曲线可以建模为恒定增益[7],恒定增益带死区非线性[8],或者通过输入输出对之间的线性插值。最后一个选项允许用户直接使用制造商的Bollard拉力测试数据,这些数据通常包含在推进器的数据表中。

推力器插件模型

Fig. 2. Thruster plugin model
图2所示。推力器插件模型

One instance of the thruster plugin is created in the scope of each thruster link on the vehicle with the force generated on the direction of the x-axis as seen in Fig. 3. Each force τi, i being the thruster index, will be independently applied to the thruster frame.
在飞行器上每个推进器连杆的范围内创建一个推力器插件实例,其力在x轴方向上产生,如图3所示。每个力 τ i , i τ_i, i τi,i为推力器指数,将独立地作用于推力器框架。
在ROV保持站的仿真过程中,单个推力的可视化(红色箭头)与单个推进器框架的详细组成

Fig. 3. Visualization of the individual thrust forces (red arrows) during simulation of station keeping of an ROV with the detailed composition of an individual thruster frame
图3所示。在ROV保持站的仿真过程中,单个推力的可视化(红色箭头)与单个推进器框架的详细组成

This separation of vehicle and actuators allows the thruster allocation matrix to be computed during the simulation without additional input parameters from the user, allowing also the setup of different thruster configurations for the same vehicle model with little effort. Fig. 3 shows the individual thrust forces generated by this plugin installed on a simulated vehicle.
这种车辆和执行器的分离允许在模拟过程中计算推进器分配矩阵,而无需用户输入额外的参数,也允许为相同的车辆模型设置不同的推进器配置,只需很少的努力。
图3显示了安装在模拟车辆上的插件所产生的单个推力。

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 drag forces acting on the fin. Two models for lift and drag are currently implemented: the quadratic model described in [9] and the default Gazebo lift and drag model plugin6 .
鳍插件具有与推进器相似的模块化结构。动力学块将鳍的攻角作为状态变量,然后由模型来计算作用在鳍上的升力和阻力。目前实现了两种升力和阻力模型:[9]中描述的二次模型和默认的Gazebo升力和阻力模型plugin6。

B. Underwater scenarios and environmental loads(水下情景和环境载荷)

The dynamics model for underwater vehicles (see Section III-D) takes into account the relative velocity ν r ν_r νr of the vehicle with respect to its surrounding fluid. As explained in [10], this dynamics model is suited for underwater vehicles operating outside of the wave zone, which leads to the assumption that the hydrodynamic coefficients remain constant.
水下航行器的动力学模型(见第III-D节)考虑了航行器相对于其周围流体的相对速度 ν r ν_r νr 。如文献[10]所述,该动力学模型适用于波区以外的水下航行器,因此假设水动力系数保持不变。

The relative velocity used further on equations of motion of the vehicle is ν r = ν − ν c B ν_r = ν − ν_c^B νr=ννcB, being ν c B ν^B_c νcB the current velocity in the vehicle’s body frame, which is transformed from ν c I = ( u c , v c , w c , 0 , 0 , 0 ) T ν^I_c= (u_c, v_c, w_c, 0, 0, 0)^T νcI=(uc,vc,wc,0,0,0)T in the North-East-Down (NED) frame. The constant flow velocity can be assigned to a frame with user-defined orientation and its plugin will broadcast the flow velocity vector.
在飞行器运动方程中进一步使用的相对速度为 ν r = ν − ν c B ν_r = ν − ν_c^B νr=ννcB,即 ν c B ν^B_c νcB为飞行器本体框架中的当前速度,由 ν c I = ( u c , v c , w c , 0 , 0 , 0 ) T ν^I_c= (u_c, v_c, w_c, 0, 0, 0)^T νcI=(uc,vc,wc,0,0,0)T 在东北向下(NED)框架中变换而来。恒定流速可以分配给用户定义方向的帧,其插件将广播流速矢量。

In addition to physical aspects, setting up a visually realistic underwater scenario is also an important task in this implementation. It affects tasks involving, for example, visual servoing and realistically reproducing the visual feedback received by a ROV operator. Examples of underwater environments with wind turbine foundations can be seen in Fig. 4.
除了物理方面,建立一个视觉逼真的水下场景也是这个实现的重要任务。它影响的任务包括,例如,视觉逼真地再现ROV操作员收到的视觉反馈。图4是风力发电机基础的水下环境示例。
风机基础(左)和风机基础(右)的外观

Fig. 4. View of a wind turbine foundation in mint condition (left) and one with biofouling (right) (models provided by ACCIONA [11])
图4所示。风机基础(左)和风机基础(右)的外观(模型由ACCIONA提供[11])

As stated in Section I, Gazebo does not easily allow the construction of underwater environments per default. UUV Simulator includes a world model named ocean box that consists of a water surface plane with texturized waves (see Fig. 5), a sand seabed and light attenuation provided by Gazebo’s fog module, which can be configured for color and density. These features will be expanded in the future to improve visual effects.
如第一节所述,默认情况下,Gazebo不允许轻易地构建水下环境。UUV模拟器包含一个名为ocean box的世界模型,该模型由具有纹理波的水面平面(见图5),沙海床和由Gazebo雾模块提供的光衰减组成,可以配置颜色和密度。这些功能将在未来得到扩展,以改善视觉效果。
在Gazebo中模拟的风电场场景

Fig. 5. A wind park scenario simulated in Gazebo (wind turbine models provided by ACCIONA [11]))
图5所示。在Gazebo中模拟的风电场场景(由ACCIONA提供的风力机模型[11])

C. Underwater sensors(水下传感器)

The deployment of underwater vehicles requires a slightly different set of sensors than the modules provided by Gazebo, which are more suitable for robots traveling on the ground or through air. A number of sensor modules were created or adapted from existing implementations for this work, their parameters being configurable by the user. Some of these sensor plugins are described below.
水下航行器的部署需要一套与Gazebo提供的模块略有不同的传感器,后者更适合在地面或空中行走的机器人。许多传感器模块被创建或改编自现有的实现,它们的参数可由用户配置。下面描述了其中一些传感器插件。

Although an inertial measurement unit (IMU) is already available in Gazebo, it neglects important aspects as the drifting bias. For that reason, the IMU used is the model implemented for rotors simulator7 described in [12]. Its model includes zero-mean Gaussian noise and sensor biases that follow a random walk with a zero-mean white Gaussian noise as their rate.
虽然已有惯性测量单元(IMU),但它忽略了漂移偏置等重要方面。因此,所使用的IMU是[12]中描述的转子模拟器7实现的模型。它的模型包括零均值高斯噪声和传感器偏差,它们以零均值高斯白噪声作为其速率跟随随机游走。

A magnetometer is also available to measure the heading of the vehicle. This task is performed by the compass plugin, a module based on the magnetometer provided in the Hector Quadrotor simulation package8[13].
磁力计也可用来测量车辆的航向。该任务由指南针插件执行,该插件是基于Hector四旋翼仿真包[13]中提供的磁力计模块8。

Furthermore, the Doppler velocity log (DVL)’s four sonar sensors are modeled as Gazebo’s already existing ray sensor to provide a visualization to the user. The output measured linear velocity v m v_m vm is given by the sum of the true linear velocity v v v of the sensor frame and a zero-mean Gaussian noise n v n_v nv.
此外,多普勒速度仪(DVL)的四个声纳传感器被建模为Gazebo已经存在的射线传感器,为用户提供可视化。输出测量线速度 v m v_m vm由传感器帧的真实线速度 v v v和零均值高斯噪声 n v n_v nv的和给出。

Multi-beam echo sounders are also essential to simulate the generation of bathymetric maps or obstacle avoidance. In the easiest case they can be simulated similarly to 2D laser range finders already available in Gazebo. Fig. 6 shows the resulting topographic measurements generated by range sensor configured with the specifications of a commercial 2D multibeam echo sounder.
多波束回声测深仪对于模拟生成水深图或避障也是必不可少的。在最简单的情况下,它们可以模拟类似于2D激光测距仪已经在Gazebo中可用。图6显示了由商用2D多波束回声测深仪配置的距离传感器生成的地形测量结果。

由安装在水下航行器上的模拟多波束回声测深仪生成的水深图

Fig. 6. Bathymetric map generated with simulated multibeam echo sounders installed on an AUV (color map represents the height value) measuring the seabed of the wind park scenario.
图6。由安装在水下航行器上的模拟多波束回声测深仪生成的水深图(彩色地图表示高度值),测量风电场场景的海底。

Finally, one of the drawbacks of Gazebo is the lack of tools to realistically represent underwater environments. A special camera module has been designed to further improve the light attenuation with an image post-processing step. This process imposes an exponential attenuation [14] of the pixel intensity on the image acquired by the camera as follows:
最后,Gazebo的一个缺点是缺乏能够真实呈现水下环境的工具。设计了一个特殊的相机模块,通过图像后处理步骤进一步改善光衰减。该过程对相机获取的图像的像素强度进行指数衰减[14],衰减如下:
i c , m = i c e − r a c + ( 1 − e − r a c ) b c , ∀ c ∈ R , G , B , ( 1 ) i_{c,m} = i_ce^{ −ra_c} + (1 − e^{ −ra_c}) b_c, ∀c ∈ {R, G, B} , (1) ic,m=icerac+(1erac)bc,cR,G,B,(1)where ic is the original intensity value for the colour channel c, ic,m is the measured intensity value, ac is a colour-dependent attenuation factor, bc is the background intensity of the channel c and r is the distance to the object projected on the pixel computed from its visual depth d and the direction of the ray for the corresponding pixel. A comparison between the original and processed image is shown in Fig. 7.

i c , m = i c e − r a c + ( 1 − e − r a c ) b c , ∀ c ∈ R , G , B , ( 1 ) i_{c,m} = i_ce^{ −ra_c} + (1 − e^{ −ra_c}) b_c, ∀c ∈ {R, G, B} , (1) ic,m=icerac+(1erac)bc,cR,G,B,(1)其中 i c i_c ic是颜色通道 c c c的原始强度值, i c i_c ic, m m m是测量到的强度值, a c a_c ac是与颜色相关的衰减因子, b c b_c bc是通道 c c c的背景强度, r r r是从物体的视觉深度 d d d计算得到的投影到像素上的物体的距离,以及对应像素的光线方向。原始图像与处理后图像的对比如图7所示。
在使用默认相机插件的风力涡轮机基础上使用Gazebo进行模拟时获得的原始图像(左)与添加了雾效果的指数衰减结果(右)的比较。

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).
图7。在使用默认相机插件的风力涡轮机基础上使用Gazebo进行模拟时获得的原始图像(左)与添加了雾效果的指数衰减结果(右)的比较。

D. Hydrodynamic and hydrostatic forces(流体动力和流体静力)

For pure rigid-body dynamics simulation, Gazebo has to be provided with the robot description (e.g. mass, inertial tensor, collision geometry, joint parameters). Due to their roots in the robotics community, Gazebo and ROS use the more prevalent ENU (East-North-Up) convention, whereas NED (North-EastDown) is widely-used for marine vessels.
对于纯刚体动力学仿真,Gazebo必须提供机器人描述(例如质量,惯性张量,碰撞几何形状,关节参数)。由于它们在机器人社区的根源,Gazebo和ROS使用更流行的ENU (East-North-Up)惯例,而NED (North-EastDown)广泛用于船舶。

In order to support both conventions, vehicles are created with a base link frame at the center of gravity following the ENU conventions as is common in Gazebo and ROS. A second NED link is added at the same origin with a fixed transformation. This allows to easily transform data to either reference frame.
为了支持这两种惯例,车辆在重心处创建了一个基本链接框架,遵循ENU惯例,这在Gazebo和ROS中很常见。第二个NED链接通过固定转换在同一原点添加。这允许轻松地将数据转换为任一参考框架。

Computation of the interaction of a fluid with a submerged body is still not feasible for an off-the-shelf computer for complex geometries like underwater vehicles in real-time. The best known model that is suitable for underwater vehicle simulation is Fossen’s equations of motion [10] in the SNAME notation [15] shown in Equation 2,
对于像水下航行器这样的复杂几何形状,现有的计算机仍然无法实时计算流体与水下物体的相互作用。最著名的适用于水下航行器仿真的模型是Fossen运动方程[10],采用SNAME符号[15],如式2所示。
( M R B + M A ) ν ˙ r + ( C R B ( ν r ) + C A ( ν r ) ) ν r + D ( ν r ) ν r + g 0 + g ( η ) = τ . ( 2 ) (M_{RB} + M_A)\dotν_r + (C_{RB}(ν_r) + C_A(ν_r))ν_r+ D(ν_r)ν_r + g_0 + g(η) = τ . (2) (MRB+MA)ν˙r+(CRB(νr)+CA(νr))νr+D(νr)νr+g0+g(η)=τ.(2)

Here M A M_A MA is the added-mass matrix and CA(νr) its Coriolis and centripetal matrix, D(νr) is the damping matrix, g0 and g(η) are the restoring forces of gravity and buoyancy, respectively, and τ are the control forces and torques. The vehicle pose in the inertial NED-frame is η = (x, y, z, φ, θ, ψ) T .
其中 M A M_A MA为附加质量矩阵, C A ( ν r ) C_A(ν_r) CA(νr)为科里奥利矩阵和向心矩阵, D ( ν r ) D(ν_r) D(νr)为阻尼矩阵, g 0 g0 g0 g ( η ) g(η) g(η)分别为重力和浮力的恢复力, τ τ τ为控制力和力矩。飞行器在惯性NED坐标系中的位姿为 η = ( x , y , z , φ , θ , ψ ) T η = (x, y, z, φ, θ,ψ) ^T η=(x,y,z,φ,θ,ψ)T

In contrast, Gazebo integrates the default rigid body equations of motion with six degrees of freedom:
相反,Gazebo将默认的刚体运动方程与六个自由度相结合:
M R B ν ˙ + C R B ( ν ) ν + g 0 = τ g ( 3 ) M_{RB}\dotν + C_{RB}(ν)ν + g_0 = τ_g (3) MRBν˙+CRB(ν)ν+g0=τg(3)

where τg are external forces and torques that can be computed for example within plugins. Since Gazebo itself relies on one out of four supported open-source physics engines to integrate the equations of motion above, it is difficult to change it to adhere to Eq. 2. If we instead move all necessary terms of Eq. 2 to the right-hand side and compare it with Eq. 3, it follows that we can simulate underwater effects by setting the external forces and torques to:
其中 τ g τg τg是可以计算的外力和扭矩,例如在插件中。由于Gazebo本身依赖于四个支持的开源物理引擎中的一个来整合上述运动方程,因此很难将其更改为遵循公式2。如果我们将公式2的所有必要项移到右侧,并与公式3进行比较,我们可以通过将外力和扭矩设置为来模拟水下效果:
τ g = − M A ν ˙ r − C A ( ν r ) ν r − D ( ν r ) ν r − g ( η ) . ( 4 ) τ_g = −M_A\dotν_r − C_A(ν_r)ν_r − D(ν_r)ν_r − g(η). (4) τg=MAν˙rCA(νr)νrD(νr)νrg(η).(4)

In order to add hydrodynamic and hydrostatic forces, τg is applied at each iteration of the simulation to each submerged link. Note that τg does not include forces and torques from thrusters and fins, since they are applied in independently as described in Section III-A.
为了增加水动力和静水力,在每次迭代时对每个水下连杆施加 τ g τ_g τg。注意 τ g τ_g τg不包括来自推进器和鳍片的力和扭矩,因为它们是独立施加的,如第III-A节所述。

As also mentioned in [5], the inclusion of added-mass as described above can lead to simulation instability depending on the relation between mass m and added-mass matrix coefficients in MA. This is due to the fact that the acceleration is needed in Eq. 4 as input to compute hydrodynamic forces and torques, which are then used by the physics engine to solve the equations of motion to compute the current acceleration, velocity, and pose. Only the previous accelerations can, of course, be used when computing the latest acceleration. But using its previous value to compute the current one can cause the system to become unstable if the added-mass coefficient is larger than the actual body mass, since an acceleration at the previous time step can lead to a slightly bigger reaction due to the added-mass at the current time step and an increasingly bigger value at the subsequent time step. The current solution to avoid unstable simulations is the use of a low-pass filtered version of previous accelerations to compute hydrodynamic forces and torques according to Eq. 4. On further releases, this issue will be studied in more detail to improve the simulation results.
如[5]中所述,上述附加质量的包含可能导致模拟不稳定,这取决于 M A M_A MA中质量 m m m与附加质量矩阵系数之间的关系。这是因为在Eq. 4中需要将加速度作为计算流体动力和扭矩的输入,然后物理引擎使用这些输入来求解运动方程,从而计算当前的加速度、速度和姿态。当然,在计算最新的加速度时,只能使用以前的加速度。但是,如果附加质量系数大于实际身体质量,则使用其先前的值来计算当前的值可能会导致系统变得不稳定,因为在前一个时间步长的加速度可能会导致由于当前时间步长的附加质量而产生略大的反应,并且在随后的时间步长的值越来越大。目前避免不稳定模拟的解决方案是使用先前加速度的低通滤波版本,根据Eq. 4计算水动力和扭矩。在以后的版本中,将更详细地研究这个问题,以改进模拟结果。

IV. ROS MODULES (ROS模块)

The ROS-specific modules are subdivided into teleoperation, manipulator control, vehicle control and Gazebo-ROS plugins. These bridged plugins are available to all Gazebo plugins presented and consist on an inheritance to a Gazebo module that will add features that will make it visible to a ROS client node or software. Further modules are described in the following sections.
ROS专用模块细分为远程操作、机械手控制、车辆控制和Gazebo-ROS插件。这些桥接插件可用于所有呈现的Gazebo插件,它们继承于Gazebo模块,该模块将添加使其对ROS客户端节点或软件可见的特性。下面几节将描述更多的模块。

A. Underwater manipulators (水下机械手)

Underwater manipulators can currently only be operated using ROS modules. They are available as units that can be added to the vehicle’s body frame using pre-defined macros.This is done to allow the generation of several configurations for the same vehicle by only adding an extra unit to the robot description.
水下操纵器目前只能使用ROS模块进行操作。它们可以作为单元使用预定义的宏添加到车辆的车身框架中。这样做是为了通过在机器人描述中添加一个额外的单元来允许为同一车辆生成多个配置。

The manipulators are initialized with ROS controllers for each joint and can be operated by using a joystick to command the reference velocity for the end-effector. A Jacobiantranspose Cartesian controller allows control of the endeffector’s pose. Each manipulator and its respective ROS nodes (e.g. controllers, kinematics solvers services) are initialized within a unique ROS namespace, allowing multiple manipulator units (on one or multiple vehicles) to be initialized simultaneously.
机器人的每个关节都用ROS控制器初始化,可以通过操纵杆来控制末端执行器的参考速度。雅可比转置笛卡尔控制器允许控制效应器的姿态。每个机械手及其各自的ROS节点(例如控制器,运动学求解器服务)在一个唯一的ROS命名空间内初始化,允许多个机械手单元(在一个或多个车辆上)同时初始化。

B. Vehicle system services and control systems (车辆系统服务和控制系统)

Even though the first phase of development of this software was focused on simulation, some service and control modules are already available to allow a basic operation of the vehicle models. These modules communicate with the extended versions of the plugins described in Section III to ROS.
尽管该软件开发的第一阶段侧重于仿真,但已经可以使用一些服务和控制模块来实现车辆模型的基本操作。这些模块与第III节中描述的扩展版本的插件进行通信。

A thruster allocator can be initialized to read the relative pose and orientation of a specific vehicle and generate the thruster allocation matrix at run-time. It receives forces and torques to be applied to the vehicle and transmits the command to each thruster unit described in Section III-A.
通过初始化推进器分配器,可以读取特定飞行器的相对姿态和方向,并在运行时生成推进器分配矩阵。它接收施加到飞行器上的力和扭矩,并将指令发送到第III-A节中描述的每个推进器单元。

V. EXAMPLE USE-CASES (示例用例)

As an example application, a vehicle has been integrated in the simulation environment based on the parameters for the Sperre SF 30k ROV published in [16]. The thruster configuration has been altered to include eight thrusters and integrated in a model description named RexROV. Two instances of the ROV have been initialized, one with a simplified model of a Schilling Robotics Orion 7P robotic manipulator. The diagram seen in Fig. 9 shows the independent modules initialized with the vehicle are labeled according to the unit’s link name and their respective operating plugins.
作为一个示例应用,基于[16]中发布的Sperre SF 30k ROV的参数,在仿真环境中集成了一个车辆。推进器的配置已经改变为包括八个推进器,并集成在一个名为RexROV的模型描述中。ROV的两个实例已经初始化,其中一个具有Schilling Robotics Orion 7P机器人操纵器的简化模型。如图9所示,随车辆初始化的独立模块根据单元的链接名称和各自的操作插件进行标记。
RexROV测试车及其组成模块

Fig. 9. RexROV test vehicle with its constituting modules
图9。RexROV测试车及其组成模块

Each vehicle’s velocity reference is given by the input of an joystick and cascaded PID controllers control the vehicle’s velocity. The manipulator arm is provided with individual joint effort controllers, a kinematics service and a Cartesian controller. Fig. 8a shows the dynamic simulation in the Gazebo environment in the wind turbine scenario. One ROV equiped with a forward multibeam sonar measures the structure, while the other vehicle is in place to execute any maintenance task necessary. In Fig. 8b, the output of the simulated sonar can be seen in the form of a point cloud with a color map along with the current frames from the cameras installed on both vehicles. As can be seen, both vehicles are setup with different sensor and actuator configurations, which can be later chosen through user-defined arguments by the initialization of the vehicle instance. The instances of world and UUVs are independently uploaded in Gazebo in run-time, making the construction of a new scenario very straightforward.
每辆车的速度参考由操纵杆的输入给出,级联PID控制器控制车辆的速度。机械臂设有单独的联合努力控制器、运动学服务和笛卡尔控制器。图8a为风力机场景下Gazebo环境下的动态仿真。一个ROV配备了前向多波束声纳来测量结构,而另一个ROV则在适当的位置执行任何必要的维护任务。在图8b中,模拟声纳的输出可以以带有彩色地图的点云的形式看到,以及安装在两辆车上的摄像机的当前帧。可以看到,两辆车都设置了不同的传感器和执行器配置,稍后可以通过车辆实例的初始化通过用户定义的参数进行选择。世界和uuv的实例在运行时独立上传到Gazebo中,使得新场景的构建非常简单。
Gazebo在海上风电场情景中的模拟环境的可视化

(a) Visualization of the simulation environment in Gazebo in a offshore wind park scenario.
(a) Gazebo在海上风电场情景中的模拟环境的可视化。

在这里插入图片描述

e wind park scenario.(风场场景)
(b) Visualization in RViz, camera output for each vehicle on the left panel, point cloud output from the simulated multibeam sonar depicted with a colormap on the main panel on the right.
(b) RViz中的可视化,左侧面板为每辆车的相机输出,右侧主面板上以彩色图表示的模拟多波束声纳的点云输出。

Fig. 8. Simulation of inspection of a wind turbine foundation using two ROVs.
图8。利用两台rov对风力发电机基础进行检测的仿真研究。

In another example of simulation of multiple robots shown in Fig. 10, a RexROV and a Desistek SAGA mini-ROV are uploaded in a subsea factory scenario. The mini-ROV is used to monitor the work-class ROV while the manipulator is being deployed.
在图10所示的另一个多机器人模拟示例中,在海底工厂场景中上传了RexROV和Desisstek SAGA迷你rov。当机械手部署时,mini-ROV用于监控工作级ROV。
RexROV和desisstek SAGA迷你rov在海底工厂场景中的应用

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 the bottom). Desistek SAGA 3D model provided by Desistek10 .
图10所示。RexROV和desisstek SAGA迷你rov在海底工厂场景中的应用。左侧的窗口显示Gazebo环境,右侧显示车辆摄像机的输出(顶部是desisstek SAGA,底部是RexROV)。Desistek SAGA 3D模型由Desistek10提供。

VI. CONCLUSION AND FUTURE WORK(结论与未来工作)

In this paper a package for simulation of unmanned underwater vehicles was presented. It extends the general-purpose robotics simulator Gazebo for application in underwater environments and provides an interface for operation of the simulated vehicles through ROS. Vehicle, actuator and sensor models are implemented with the Gazebo API and can be extended to other robotics middlewares, if desired. This package allows the setup of new simulation scenarios in runtime by allowing world and robot models to be initialized dynamically, diminishing the effort to test, build and develop new applications and mission strategies. Methods to validate the dynamic simulation implemented are currently being studied. This application is open-source and is available at https://github.com/uuvsimulator/uuv simulator.
本文提出了一个用于无人潜航器仿真的软件包。它扩展了通用机器人模拟器Gazebo在水下环境中的应用,并通过ROS为模拟车辆的操作提供了接口。车辆、执行器和传感器模型是用Gazebo API实现的,如果需要,可以扩展到其他机器人中间件。通过允许动态初始化世界和机器人模型,该软件包允许在运行时设置新的仿真场景,减少测试,构建和开发新应用程序和任务策略的工作量。目前正在研究验证所实现的动态仿真的方法。这个应用程序是开源的,可以在https://github.com/uuvsimulator/uuv模拟器上获得。

Regarding future work within this project, one of the most noticeable features missing in this underwater robotics simulator for the Gazebo environment is the lack of characteristic visual effects as floating particles and proper light damping as a function of water depth, along with the generation of waves on the sea surface. The implementation of such effects with the support of Gazebo’s graphics engine, OGRE, are currently under development since it plays an important role in the simulation of visual servoing applications and on the control teleoperated vehicles with visual feedback. A sample of the current stage of integration of waves in Gazebo can be seen in Fig. 11.
关于该项目未来的工作,这个水下机器人模拟器在凉台环境中缺失的最明显的特征之一是缺乏典型的视觉效果,如漂浮粒子和适当的光阻尼作为水深的函数,以及海面上波浪的产生。在Gazebo的图形引擎OGRE的支持下,这种效果的实现目前正在开发中,因为它在视觉应用的模拟和具有视觉反馈的遥控车辆的控制中起着重要作用。Gazebo当前阶段的波积分样例如图11所示。
在这里插入图片描述

Fig. 11. Rendering waves in an offshore wind park scenario.
图11。绘制海上风电场场景中的波浪。

The implementation of an umbilical plugin is also a desired feature to improve the simulation of ROVs. Although the umbilical forces can be simulated, the simulation of contact forces on the tether will require the geometrical representation of cables in Gazebo, an implementation still not existent in this platform.
脐带缆插件的实现也是改进rov仿真的理想功能。虽然脐带力可以模拟,但对系索上接触力的模拟将需要Gazebo中电缆的几何表示,在这个平台中仍然不存在实现。

Furthermore, as seen in the examples, the vehicles are used for the simulation of missions on offshore wind parks, often in the wave zone, which requires the simulation of environmental loads originated from waves and turbulence around the wind turbines, another desired feature for future releases.
此外,如示例所示,这些车辆用于模拟海上风电场的任务,通常在波浪区,这需要模拟由风力涡轮机周围的波浪和湍流引起的环境负载,这是未来版本的另一个期望功能。

Finally, configuration tools to allow users not familiar with Gazebo/ROS development to use this tool are also included in the roadmap. They will allow creation of new vehicles and scenarios through a graphical user interface, preventing errors originated when editing the configuration files manually.
最后,路线图中还包括允许不熟悉Gazebo/ROS开发的用户使用该工具的配置工具。它们将允许通过图形用户界面创建新的车辆和场景,防止手动编辑配置文件时产生的错误。

ACKNOWLEDGMENT

This software has been developed as part of the work undertaken for the EU-funded research project SWARMs (Smart and Networking Underwater Robots in Cooperation Meshes), ECSEL project number 662107. Thanks to DFKI Robotics Innovation Center, Bremen, for providing the 3D meshes of the Schilling Robotics Orion 7P Manipulator.
该软件是欧盟资助的研究项目swarm(合作网格中的智能和网络水下机器人)的一部分,ECSEL项目编号662107。感谢DFKI机器人创新中心,不来梅,提供了席林机器人猎户座7P机械手的3D网格。

REFERENCES

[1] (2015) SWARMs project website. [Online]. Available: http://www.swarms.eu/
[2] M. Prats, J. Perez, J. J. Fernand ´ ez, 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.

  • 12
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值