Apache License 2.0

技术解读

以下内容由 GitRead 中文社区 编辑团队基于项目 README 与官方资料整理, 结合中文开发者的常见使用场景补充技术选型建议。具体以项目官方文档为准。

深度分析:disaster-robotics-proalertas/usv_sim_lsa 项目

项目背景与痛点

无人水面艇 (Unmanned Surface Vehicle, USV) 在灾害响应与海洋科学研究领域日益广泛,但恶劣天气条件如强风和水流会对 USV 的操控和稳定性造成很大挑战。如何在模拟环境中对 USV 进行高精度测试和优化,成为了研究与应用的核心问题。因此,搭建一个能够真实模拟水流与风力影响的 USV 模拟环境变得迫切需要。

该项目正是基于此背景开发的,它在 Gazebo 中实现了 USV 的仿真,模拟了复杂的水流和风力环境。此举不仅加快了设计迭代的速度,还降低了实地测试的成本与风险。

核心技术揭秘

该项目采用了 Gazebo 作为模拟环境,并结合了 ROS (Robot Operating System) 以及一系列仿真插件来模拟真实的水流和风力条件。以下是其核心技术剖析:

技术架构与实现

整个系统架构如下:

graph TD A[用户命令] --> B[USV 接口] B --> C{"控制模式?"} C -->|"手动控制"| D[手动指令处理] C -->|"自动导航"| E[路径规划算法] D --> F[速度与方向设定] E --> F F --> G[Gazebo 仿真] G --> H[水流与风力环境] H --> I[当前状态反馈] I --> J[状态处理] J --> F
控制模式选择

用户可通过接口选择 USV 的控制模式,包括手动控制和自动导航。手动模式允许操作员通过指令直接控制速度和方向;自动导航则依赖于路径规划算法计算合适的行进路线,实现自主导航。

模型与环境

USV 的模型被放置在 Gazebo 的仿真环境中,该环境利用多种插件模拟出真实的水流和风力条件。水流和风力是实时变化的,这要求整个系统能够根据外部环境做出及时调整。另外,系统还会根据实时状态反馈进行闭环控制,确保导航的准确性和稳定性。

功能亮点与差异

此项目在实现 USV 仿真与控制上有几大亮点和独特设计:

  1. 详尽模拟:不仅模拟了 USV 的机械结构与运动学特性,还加入了动态的水流和风力条件。
  2. 自动导航:基于先进的路径规划算法,准确规划与实时调整行驶路径,增强自主导航能力。
  3. 闭环控制:系统实时收集并处理状态反馈,能够对动态变化的环境做出快速响应。

应用场景与落地建议

此项目适用于需要对 USV 进行虚拟测试与优化的场景,例如海洋工程、灾害应急救援与科学研究等领域。在应用过程中需要特别关注以下几点:

  1. 确保 Gazebo 和相关插件版本兼容。
  2. 校准水流和风力模拟参数以确保实验结果的准确性。
  3. 在复杂多变的环境条件下进行充分模拟,以验证系统的鲁棒性和可靠性。

综合评价

优点

  1. 仿真实现较为全面,能提供接近真实的测试环境。
  2. 自动导航能力卓越,适用于复杂环境下的应用需求。
  3. 闭环控制系统使得 USV 能够动态调整以应对环境变化。

缺点

  1. 对于 Gazebo 的熟练使用及调试要求较高,有一定上手门槛。
  2. 虽然环境模拟细致,但对于某些特殊极端条件可能还需更多优化。

综上所述,disaster-robotics-proalertas/usv_sim_lsa 项目为无人水面艇在复杂环境中的仿真与优化提供了一个强大而灵活的工具,值得尝试与进一步探索。

关于

GitHub 原始描述(英文)

Unmanned Surface Vehicle simulation on Gazebo with water current and winds

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

语言占比

C++
CMake
Dockerfile
GLSL
Python
Ruby
Shell

README

Simulated enviroment for Unmanned Surface Vehicles (usv_sim_lsa) – v0.3

Read the Docs DOI License

The primary motivation for this simulator is to provide a testbed where designers can test Unmanned Surface Vehicle (USV) navigation and control methods in a scenario closer to what might be found in a disaster scenario, where winds, current and waves can play a big impact in the USV mission performance.

This simulator uses a combination of multiple physics packages to build a test environment for USVs. We’ll use it, at first, to develop and test control and trajectory strategies for USVs. but it can be easily adapted to other applications (e.g. for drones or underwater vehicles). It contains multiple robot models such as propeled boats (rudder boat, differential boat, airboat) and a sailboat. The boats are affected by waves, wind and water currents. To do that, we curently use UWsim for water surface modeling, we also load HEC-RAS output files with water speed of river and channel simulations. We simulate wind current with OpenFoam simulator. All those features alow to disturb the movement of boats in a realistic way.

Please refer to the main documentation for installation and testing.

Boat Models

There are 4 boat models preconfigured in package usv_sim:

  • airboat: composed by one thruster above the hull. This model has greater advantaged to navigate on shallow waters.
  • differential boat: two thruster under water surface. This model has the simplest maneuverability.
  • rudder boat: one thruster and one rudder. One of the most common configuration presented in boats.
  • sailboat: one sail and one rudder.

4 boat models

The hull of all models above have been subdivided in 6 parts (see image above), so waves affects buoyancy of model in such way that boats present more realistic movement. If you want greater realism, you can subdivided the hull in more parts. To do that, you have to use geometric tools like Blender to model each part of hull. After that, you should configure links and joints in xacro files (like usv_sim/xacro/boat_subdivided4.xacro). As gazebo simulator combine fixed joints, you should define the joints of hull as of type revolution, but with zero value to upper and lower limits.

Boat hull subdivision

Existing simulation scenarios

On the main folder of usv_sim_lsa, there are some scripts that run testing scenarios on Diluvio’s River in Porto Alegre, Brazil. Each scenario is configured to test the boat control on executing some common maneuveurs (see image below). Besides that, you can run the following scripts:

  • scenario1: boat should navigate through two lines of buoys.
  • scenario2: boat should avoid colision with 3 buoys.
  • scenario3: boat should execute zigzag to cover an area.
  • scenario4: boat should remain within assigned region, despite the environment disturbances.

To execute water simulation to those scenarios, you should run the script named waterCurrentDiluvio.

Scenarios to test boats

Enrironmental disturbance types

The vehicles can be affected by 3 types of enrironmental disturbances: wind currents, water currents and waves. Each kind of disturbance is presented below.

Water current

To allow the water current affect vehicles differently across the space and time, the USV_SIM can load output simulations from the HEC-RAS hydrological simulator. The HEC-RAS is a CFD software (computational fluid dynamics) capable of modelling the water flow through natural rivers and channels. Below it is presented an image, and a video of HEC-RAS simulations used in USV_SIM. HEC-RAS can reproduce turbulence effects presented into rivers and other bodies of water.

HEC-RAS Simulation of Diluvio River, Porto Alegre, RS - Brazil

VIDEO - CLICK ON IMAGE TO PLAY IT

Diluvio River - HEC-RAS Simulation

Wind

The simulator can load wind currents generated by the CFD software OpenFoam, which it can solve continuum mechanics problems, and reproduce vortices and wind turbulence near, for example, bridges or buildings. Below it is presented some simulations that are avaliable in our robotic simulator.

Example of winds near bridges and buildings

OpenFOAM simulation of bridge over Diluvio River, Porto Alegre, RS - Brazil OpenFOAM simulation Porto Alegre, RS - Brazil

OpenFOAM simulation of Porto Alegre, RS - Brazil OpenFOAM simulation of Porto Alegre, RS - Brazil

P.S: The lines on the botton images have been integrated with runge kutta from wind current field.

VIDEO - CLICK ON IMAGE TO PLAY IT

Diluvio River - HEC-RAS Simulation

Waves and buoyance model

The integration with UWSim allows to reproduce waves to different configurations. Below is presented an differential boat travelling through waves. The following figure shows a simulation model with no how buoyance (a), a simplified buoyance model (b), and how it was implemented in usv_sim ©, providing more realism.

OpenFOAM simulation of Porto Alegre, RS - Brazil

Contributing

One can contribute to this project by deteting bugs, future features, and pull requests.

Versioning

  • v0.3 - Adding docker image and improved documentation
  • v0.2 - Version submitted to Sensors
  • v0.0.1 – Initial version submitted to IROS 2018

Reference for citing USV_SIM

  • Paravisi, M.; H. Santos, D.; Jorge, V.; Heck, G.; Gonçalves, L. M.; Amory, A.; Unmanned Surface Vehicle Simulator with Realistic Environmental Disturbances; Journal Sensors, Volume 19, 2019. Available: http://www.mdpi.com/1424-8220/19/5/1068.

Other references

  • Jorge, V.A.M.; Granada, R.; Maidana, R.G.; Jurak, D.A.; Heck, G.; Negreiros, A.P.F.; dos Santos, D.H.; Gonçalves, L.M.G.; Amory, A.M. A Survey on Unmanned Surface Vehicles for Disaster Robotics: Main Challenges and Directions. Sensors 2019, 19, 702. Available: https://www.mdpi.com/1424-8220/19/3/702.
  • Marcelo’s PhD thesis (in Portuguese).

Authors

  • Alexandre Amory (PUCRS University, Porto Alegre, Brazil)
  • Davi Henrique (UFRN University, Natal, Brazil)
  • Luiz Marcos Gonçalves (UFRN University, Natal, Brazil)
  • Marcelo Paravisi (IFRS, Osorio, Brazil; PUCRS University, Porto Alegre, Brazil)
  • Vitor Augusto Machado Jorge (PUCRS University, Porto Alegre, Brazil)

License

USV Simulator is open-sourced under the Apache-2.0 license. See the LICENSE file for details.

Acknowledgments

评论

暂无评论