Uuv_simulator: 问:水面建模?

创建于 2017-09-15  ·  17评论  ·  资料来源: uuvsimulator/uuv_simulator

问题,uuv模拟器中是否有模拟水面的东西,比如波浪? (如果没有,如何在风电场视频中获得漂亮的表面动画?)

question

最有用的评论

嗨,我对 Gazebo 中水面船只的浮力建模也有类似的兴趣,这似乎是讨论它的地方。 我已经使用上面提到的方法取得了一些进展,如果有任何兴趣,我很乐意分享。

我有一个工作示例,它支持使用由一个或多个链接组成的 Gazebo 基元或网格定义的对象。 波场是使用平面网格建模的,并且有单独的视觉和物理插件,它们使用世界模拟时间保持同步。 当我使用其表面网格包时,对 CGAL 库有依赖性。

第一个示例显示了一系列由仅具有浮力(无阻尼或阻力)的万向节连接的盒子。

buoyancy example 1

第二个例子显示了受浮力和一些阻力影响的波浪中的许多物体。 这些船是来自在线 3D 仓库的库存,我使用 Blender 抽取用于碰撞的网格,以减少浮力计算中使用的顶点数。

buoyancy example

所有17条评论

您好,目前没有水面或波浪的物理模拟。 这将是一个很好的添加功能,但我们目前没有能力进行这项工作。 如果有人愿意花时间在上面,请告诉我们。

您可能在视频或屏幕截图中看到的波浪是纯视觉效果,并在材质属性中使用这些着色器实现。

啊,谢谢回复。 我正在将https://www.gamasutra.com/view/news/237528/Water_interaction_model_for_boats_in_video_games.php作为世界插件(gazebo)实施。 我将要面对的一个问题(我还没有那么远……)是如何表示移动的波浪。 现在我正在使用高度图,它给了我不动的波浪。 对于很多模拟来说这很好(即使它很奇怪),但不是所有的。 鉴于服务器/客户端分离,我试图找出该怎么做。 似乎我需要运行相同的算法来在两侧产生波浪。 一次用于物理,一次用于渲染。

是的,这是可以做到的。 一种方法是使用一个实现 JONSWAP 或 Pierson-Moskowitz 模型并为可视化生成波浪的着色器和一个为模型做类似事情的 Gazebo 插件。
我看到的问题是这两个模块在 Gazebo 中是分开的(如果您使用着色器运行模拟@sebastianscherer说并暂停,波浪仍将运行)。 除了着色器,我不知道其他任何方式来显示环境中的波浪等东西。
关于与模型的交互,我发现一种非常简单的方法是在 Kelpie 模拟器中实现:

https://www.researchgate.net/publication/259741742_Kelpie_A_ROS-Based_Multi-robot_Simulator_for_Water_Surface_and_Aerial_Vehicles

看起来很容易实现,但我不知道它有多好。 我从来没有尝试过。
我看到的最大问题是同步视觉和物理插件。
如果您对如何实现这一点有任何想法,请告诉我们。 我会对类似的东西很感兴趣。

顺便说一句,要使用波浪开始一个空的场景,您必须运行

roslaunch uuv_descriptions ocean_waves.launch

感谢您的评论。 我已经实现了我最初的帖子中描述的物理,但尚未调整。 到目前为止,对于第一次剪辑来说,它看起来非常有说服力。 我想我需要在平坦的水面上取得更多进展,然后才能看到海浪。

我拥有的是一个参考水面模型和船模型的世界插件。 例如:

    <plugin name="floating" filename="libfloating.so">
      <water_model>ocean</water_model>
      <boat_models>
        <boat>box</boat>
      </boat_models>
    </plugin>

它假设水模型是一个 HeightMap(我想更改为网格),并且船模型是三角形网格,其中一个链接(目前)代表船体。 然后计算网格的所有淹没三角形上的浮力、粘性摩擦、压力阻力和撞击力,并将它们应用于每个三角形。

尝试将此插件集成到 uuv-simulator 中是否有意义? 在这个阶段,我试图避免使用 ros,看来 uuv-simulator 可以在没有 ros 的情况下运行,但我还没有找到太多相关信息。 (我没有 ros 经验,很少有凉亭)。 我也一直在使用gazebo默认分支(即v9),uuv-simulator是否可以用v8编译? 我知道物理学中有很多方法已经在 v8 和 v9 之间更改了名称,并朝着点火方向发展。

uuv_simulator/uuv_world_plugins/uuv_world_plugins/ 和 uuv_simulator/uuv_gazebo_plugins/uuv_gazebo_plugins/ 有什么区别?

我上传了一个 2 分钟的模拟,将一个盒子扔进波浪状的水面: https :

那个视频看起来已经很酷了!

我们尝试将所有插件分开,因此有一个非 ROS 部分和一个源自纯 Gazebo 插件的 ROS 插件。 到目前为止,我们还没有单独使用 Gazebo 插件,并且在没有 roslaunch 等的情况下让它们运行可能需要一些工作。

我认为将它集成到 uuv_simulator 是有意义的,当您有一个工作原型时,我愿意协助集成。

我们仍在使用 Gazebo 版本 7。我不确定我们什么时候会切换到 Gazebo 8 或 9,因为它必须符合SWARMs项目的时间表。

还有一件事。 如果你想改变你所发射的世界的波浪

roslaunch uuv_descriptions ocean_waves.launch

您可以在此材料文件中设置不同的参数here

https://github.com/uuvsimulator/uuv_simulator/blob/master/uuv_descriptions/Media/materials/scripts/waves.material#L16

例如,幅度设置得非常低,但您可以设置其他幅度和频率以查看其工作情况。

感谢您的反馈,现在我正在尝试制作一个简单的 3D 船模型。 没有这方面的经验,这需要一些时间......

如果你愿意,你可以使用这个

https://github.com/uuvsimulator/uuv_simulator/tree/master/uuv_descriptions/world_models/aurora_static

它是静态的(仅用作一种标记),但您可以将其修改为机器人模型。 还有 Kingfisher 的模型,你可以在这里获取https://github.com/kf/kingfisher。 最后一个使用来自此存储库https://github.com/bsb808/usv_gazebo_plugins的 usv_gazebo_plugins

嗨,我对 Gazebo 中水面船只的浮力建模也有类似的兴趣,这似乎是讨论它的地方。 我已经使用上面提到的方法取得了一些进展,如果有任何兴趣,我很乐意分享。

我有一个工作示例,它支持使用由一个或多个链接组成的 Gazebo 基元或网格定义的对象。 波场是使用平面网格建模的,并且有单独的视觉和物理插件,它们使用世界模拟时间保持同步。 当我使用其表面网格包时,对 CGAL 库有依赖性。

第一个示例显示了一系列由仅具有浮力(无阻尼或阻力)的万向节连接的盒子。

buoyancy example 1

第二个例子显示了受浮力和一些阻力影响的波浪中的许多物体。 这些船是来自在线 3D 仓库的库存,我使用 Blender 抽取用于碰撞的网格,以减少浮力计算中使用的顶点数。

buoyancy example

你好,
我正在寻找与 ROS 兼容的模拟器来模拟波浪状的海洋。
我研究了 Kelpie 的论文,但在 GitHub 中找不到他们的包。 你知道我在哪里可以找到吗?

@srmainwaring你的模型看起来很棒! 我目前也在努力构建一个在海面上摇摆的船模型。 我是 Gazebo 的新手,编写插件的经验有限。 你愿意分享你用来模拟摇摆物体的代码/插件吗? 任何帮助将不胜感激!

@samchamberlin你可以在这里找到这个项目: https :

@srmainwaring Hey Rhys,我是 ROS 和 Gazebo 的新手,我正在指导自己如何模拟一艘船将某物降低到海洋深处。 幸运的是,您似乎制作了一个非常有用的软件包供我使用。 非常感谢! 我不太确定 Gazebo 包是如何工作的,但是您认为有可能以某种方式将包的波浪功能与 UUV 包的水下建模结合起来吗?

@JuliusHendrix是的,我认为这是可能的,但是如果您希望潜水器在水面时对波浪做出响应,这将涉及更改 UUV 计算浮力的方式,因为这两个包中用于计算浮力的方法不同. 如果您对 wave 模拟包有任何疑问,我很乐意在其存储库的问题部分回答这些问题。 对于有关 UUV 包的问题,​​您最好将这些问题直接发送给作者。

OSRF VRX 团队 (https://bitbucket.org/osrf/vrx/src/default/) 也利用了 UUV 模拟器的波浪视觉效果,并结合了我的建议,将模拟中的视觉效果与物理同步。 他们使用像 UUV 模拟器一样的体积基础浮力计算,而不是我使用的基于表面力的方法。 首先,尝试将 VRX 和 UUV 中的方法结合起来可能会更容易,如果需要,稍后再转向更复杂的浮力模型?

@srmainwaring谢谢,我会调查的!

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

atomoclast picture atomoclast  ·  23评论

hughhugh picture hughhugh  ·  5评论

HashirZahir picture HashirZahir  ·  10评论

Timple picture Timple  ·  7评论

dbcesar picture dbcesar  ·  5评论