Uuv_simulator: Q : modélisation de la surface de l'eau ?

Créé le 15 sept. 2017  ·  17Commentaires  ·  Source: uuvsimulator/uuv_simulator

Question, y a-t-il quelque chose dans le simulateur uuv qui modélise la surface de l'eau, comme des vagues ? (Et sinon, comment obtenir la belle animation de surface dans la vidéo du parc éolien ?)

question

Commentaire le plus utile

Salut, j'ai un intérêt similaire pour la modélisation de la flottabilité des navires de surface dans Gazebo et cela semble être l'endroit où cela est discuté. J'ai fait quelques progrès en utilisant l'approche mentionnée ci-dessus et je serais heureux de partager s'il y a un intérêt.

J'ai un exemple de travail qui prend en charge les objets définis à l'aide de primitives de gazebo ou de maillages pouvant être composés d'un ou plusieurs liens. Le champ d'ondes est modélisé à l'aide d'un maillage planaire et il existe des plugins séparés pour les visuels et la physique qui sont maintenus synchronisés à l'aide du temps de simulation du monde. Il existe une dépendance vis-à-vis de la bibliothèque CGAL car j'utilise son package de maillage de surface.

Le premier exemple montre une série de boîtes reliées par des joints universels à flottabilité uniquement (pas de forces d'amortissement ou de traînée).

buoyancy example 1

Le deuxième exemple montre un certain nombre d'objets dans les vagues soumis à la flottabilité et à certaines forces de traînée. Les bateaux proviennent d'un entrepôt 3D en ligne et j'ai utilisé Blender pour décimer le maillage utilisé pour les collisions afin de réduire le nombre de sommets utilisé dans le calcul de la flottabilité.

buoyancy example

Tous les 17 commentaires

Bonjour, il n'y a actuellement aucune simulation physique de la surface de l'eau ou des vagues. Ce serait une excellente fonctionnalité à ajouter, mais nous n'avons actuellement pas la capacité de travailler là-dessus. S'il y a quelqu'un prêt à y consacrer du temps, merci de nous le faire savoir.

Les vagues que vous avez peut-être vues sur des vidéos ou des captures d'écran sont de purs effets visuels et implémentées à l'aide de ces shaders dans les propriétés du matériau.

Ah, merci pour la réponse. Je travaille sur la mise en œuvre de https://www.gamasutra.com/view/news/237528/Water_interaction_model_for_boats_in_video_games.php en tant que plugin mondial (gazebo). Un problème auquel je vais faire face (je ne suis pas encore très loin...) est de savoir comment représenter les ondes en mouvement. En ce moment, j'utilise une carte de hauteur, ce qui me donne des vagues immobiles. C'est bien pour beaucoup de simulations (même si c'est bizarre), mais pas pour tout. Compte tenu de la séparation serveur/client, j'essaie de savoir quoi faire. Il semble que je doive essentiellement exécuter le même algorithme qui produit les vagues des deux côtés. Une fois pour la physique et une fois pour le rendu.

Oui, cela peut être fait. Une façon serait d'avoir un shader qui implémente un modèle JONSWAP ou Pierson-Moskowitz et génère les vagues pour la visualisation et un plugin Gazebo qui fait la même chose pour les modèles.
Le problème que je vois est que ces deux modules sont séparés dans Gazebo (si vous lancez la simulation avec le shader dit @sebastianscherer et
En ce qui concerne l'interaction avec les modèles, une méthode très simple que j'ai trouvée était celle-ci implémentée dans le simulateur Kelpie :

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

Cela semble très facile à mettre en œuvre, mais je ne sais pas à quel point c'est bon. Je ne l'ai jamais essayé.
Le plus gros problème que je vois est la synchronisation du plugin visuel et physique.
Si vous avez des idées sur la façon de mettre en œuvre cela, faites-le nous savoir. Je serais très intéressé par quelque chose comme ça.

D'ailleurs, pour démarrer un scénario vide avec les vagues, il faut courir

roslaunch uuv_descriptions ocean_waves.launch

Merci pour les commentaires. J'ai implémenté la physique décrite dans mon message initial, mais pas encore réglée. Jusqu'à présent, cela semble assez convaincant pour une toute première coupe. Je pense que je dois encore progresser en eau plate avant que ça n'ait trop de sens de regarder les vagues.

Ce que j'ai, c'est un plugin mondial qui fait référence au modèle de surface de l'eau et aux modèles de bateaux. Par exemple:

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

Cela suppose que le modèle d'eau est un HeightMap (je veux passer à un maillage) et que les modèles de bateaux sont des maillages triangulaires avec un seul lien (pour l'instant) représentant la coque. Il calcule ensuite la flottabilité, le frottement visqueux, la traînée de pression et les forces de claquement sur tous les triangles immergés du maillage et les applique à chaque triangle.

Est-il judicieux d'essayer d'intégrer ce plugin dans uuv-simulator ? À ce stade, j'essaie d'éviter ros et il semble que uuv-simulator puisse fonctionner sans ros, mais je n'ai pas trouvé beaucoup d'informations à ce sujet. (Je n'ai aucune expérience de ros, et très peu avec gazebo). J'ai également utilisé la branche par défaut de gazebo (c'est-à-dire v9), uuv-simulator compile-t-il avec v8? Je sais qu'il y a un bon nombre de méthodes en physique qui ont changé de nom entre v8 et v9 avec l'évolution vers l'allumage.

Quelle est la différence entre uuv_simulator/uuv_world_plugins/uuv_world_plugins/ et uuv_simulator/uuv_gazebo_plugins/uuv_gazebo_plugins/ ?

J'ai téléchargé une simulation de 2 minutes de chute d'une boîte dans une surface d'eau ondulée : https://youtu.be/X3bFU9bbL4A C'est une toute première preuve de concept...

Cette vidéo a déjà l'air sympa !

Nous avons essayé de séparer tous les plugins afin qu'il y ait une partie non-ROS et un plugin ROS qui est dérivé du plugin Gazebo pur. Jusqu'à présent, nous n'avons pas utilisé les plugins Gazebo seuls et cela pourrait prendre un peu de travail pour les faire fonctionner sans roslaunch, etc.

Je pense qu'il serait logique d'intégrer cela dans uuv_simulator et je serais prêt à aider à l'intégration lorsque vous avez un prototype fonctionnel.

Nous utilisons toujours la version 7 de Gazebo. Je ne sais pas quand nous passerons à Gazebo 8 ou 9, car cela doit s'inscrire dans le calendrier du projet SWARMs .

Encore une chose. Si vous voulez changer les vagues du monde avec lequel vous lancez

roslaunch uuv_descriptions ocean_waves.launch

vous pouvez définir différents paramètres dans ce fichier de matériaux ici

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

L'amplitude est réglée très bas, par exemple, mais vous pouvez mettre d'autres amplitudes et fréquences pour le voir fonctionner.

Merci pour les commentaires, En ce moment, j'essaie de créer un modèle de bateau 3D simple. Ne pas avoir d'expérience avec ce genre de choses, ça va prendre du temps...

Vous pouvez utiliser celui-ci si vous le souhaitez

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

il est statique (uniquement utilisé comme une sorte de marqueur), mais vous pouvez le modifier en modèle de robot. Et il y a aussi le modèle pour le Kingfisher que vous pouvez obtenir ici https://github.com/kf/kingfisher. Ce dernier utilise les usv_gazebo_plugins de ce référentiel https://github.com/bsb808/usv_gazebo_plugins.

Salut, j'ai un intérêt similaire pour la modélisation de la flottabilité des navires de surface dans Gazebo et cela semble être l'endroit où cela est discuté. J'ai fait quelques progrès en utilisant l'approche mentionnée ci-dessus et je serais heureux de partager s'il y a un intérêt.

J'ai un exemple de travail qui prend en charge les objets définis à l'aide de primitives de gazebo ou de maillages pouvant être composés d'un ou plusieurs liens. Le champ d'ondes est modélisé à l'aide d'un maillage planaire et il existe des plugins séparés pour les visuels et la physique qui sont maintenus synchronisés à l'aide du temps de simulation du monde. Il existe une dépendance vis-à-vis de la bibliothèque CGAL car j'utilise son package de maillage de surface.

Le premier exemple montre une série de boîtes reliées par des joints universels à flottabilité uniquement (pas de forces d'amortissement ou de traînée).

buoyancy example 1

Le deuxième exemple montre un certain nombre d'objets dans les vagues soumis à la flottabilité et à certaines forces de traînée. Les bateaux proviennent d'un entrepôt 3D en ligne et j'ai utilisé Blender pour décimer le maillage utilisé pour les collisions afin de réduire le nombre de sommets utilisé dans le calcul de la flottabilité.

buoyancy example

Bonjour j'ai aussi essayé de faire une simulation de surface d'eau vous pouvez regarder la vidéo

https://www.youtube.com/watch?v=NHfNfg2vhMc

Et le dépôt

https://github.com/PanosMallioris/Autonomous-Marine-Exploration-Water-Simulation-ROS-GAZEBO

Salut,
Je cherchais un simulateur compatible avec ROS pour simuler un océan onduleux.
J'ai étudié le papier de Kelpie mais je n'ai pas pu trouver leur package dans GitHub. Savez-vous où puis-je trouver ça ?

@srmainwaring, ton modèle a l'air incroyable ! Je travaille actuellement à la construction d'un modèle de bateau qui bascule à la surface de l'océan également. Je suis assez nouveau sur Gazebo et j'ai une expérience limitée dans l'écriture de plugins. Seriez-vous prêt à partager le code/plugin que vous utilisez pour simuler les objets à bascule ? Toute aide serait très appréciée!

@samchamberlin vous pouvez trouver le projet ici : https://github.com/srmainwaring/asv_wave_sim.

@srmainwaring Hé Rhys, je suis nouveau sur ROS et Gazebo, et je m'oriente sur la façon de simuler un navire abaissant quelque chose profondément dans l'océan. Heureusement pour moi, il semble que vous ayez créé un package très utile pour moi. Merci beaucoup d'avance! Je ne sais pas trop comment fonctionnent les packages Gazebo, mais pensez-vous qu'il serait possible de combiner d'une manière ou d'une autre la fonctionnalité d'onde de votre package avec la modélisation sous-marine du package UUV ?

@JuliusHendrix oui, je pense que ce serait possible, mais cela impliquerait de changer la façon dont la flottabilité est calculée pour l'UUV si vous voulez que le submersible réponde aux vagues en surface car la méthode utilisée pour calculer les forces de flottabilité est différente dans les deux packages . Si vous avez des questions sur le package de simulation de vagues, je serai heureux d'y répondre dans la section problèmes de son référentiel. Pour les questions sur les packages UUV, vous feriez mieux de les adresser aux auteurs.

L'équipe OSRF VRX (https://bitbucket.org/osrf/vrx/src/default/) a également utilisé les visuels d'ondes du simulateur UUV et a intégré ma suggestion pour synchroniser les visuels dans la simulation avec la physique. Ils utilisent un calcul de flottabilité basé sur le volume comme le simulateur UUV, plutôt que l'approche basée sur la force de surface utilisée dans le mien. Pour commencer, il serait peut-être plus facile d'essayer de combiner les approches VRX et UUV et de passer ultérieurement à un modèle de flottabilité plus complexe si vous en avez besoin ?

@srmainwaring Merci, je vais me

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

Timple picture Timple  ·  7Commentaires

dbcesar picture dbcesar  ·  5Commentaires

HashirZahir picture HashirZahir  ·  10Commentaires

musamarcusso picture musamarcusso  ·  12Commentaires

ccs-ros picture ccs-ros  ·  10Commentaires