Uuv_simulator: P: ¿modelado de la superficie del agua?

Creado en 15 sept. 2017  ·  17Comentarios  ·  Fuente: uuvsimulator/uuv_simulator

Pregunta, ¿hay algo en el simulador de uuv que modele la superficie del agua, como las olas? (Y si no es así, ¿cómo se obtiene la bonita animación de la superficie en el video del parque eólico?)

question

Comentario más útil

Hola, tengo un interés similar en modelar la flotabilidad para embarcaciones de superficie en Gazebo y este parece ser el lugar donde se está discutiendo. He progresado un poco con el enfoque mencionado anteriormente y me complacerá compartirlo si hay algún interés.

Tengo un ejemplo de trabajo que admite objetos definidos mediante primitivas de gazebo o mallas que pueden estar compuestas por uno o más enlaces. El campo de ondas se modela usando una malla plana y hay complementos separados para las imágenes y la física que se mantienen sincronizados usando el tiempo de simulación mundial. Existe una dependencia de la biblioteca CGAL ya que uso su paquete de malla de superficie.

El primer ejemplo muestra una serie de cajas conectadas por juntas universales con flotabilidad solamente (sin fuerzas de amortiguación o de arrastre).

buoyancy example 1

El segundo ejemplo muestra varios objetos en olas sujetos a flotabilidad y algunas fuerzas de arrastre. Los barcos se almacenan en un almacén 3D en línea y he usado Blender para diezmar la malla utilizada para las colisiones para reducir el recuento de vértices utilizado en el cálculo de flotabilidad.

buoyancy example

Todos 17 comentarios

Hola, actualmente no existe una simulación física de la superficie del agua ni de las olas. Esta sería una gran característica para agregar, pero actualmente no tenemos la capacidad para trabajar en eso. Si hay alguien dispuesto a dedicarle tiempo, háganoslo saber.

Las ondas que puede haber visto en videos o capturas de pantalla son efectos visuales puros e implementados usando estos sombreadores en las propiedades del material.

Ah, gracias por la respuesta. Estoy trabajando para implementar https://www.gamasutra.com/view/news/237528/Water_interaction_model_for_boats_in_video_games.php como un complemento mundial (gazebo). Un problema al que me voy a enfrentar (todavía no estoy tan lejos ...) es cómo representar las ondas en movimiento. Ahora mismo estoy usando un mapa de altura, que me da ondas que no se mueven. Eso está bien para muchas simulaciones (aunque es extraño), pero no para todo. Dada la separación servidor / cliente, estoy tratando de averiguar qué hacer. Parece que necesito ejecutar esencialmente el mismo algoritmo que produce las ondas en ambos lados. Una vez para la física y una vez para el renderizado.

Sí, eso se puede hacer. Una forma sería tener un sombreador que implemente un modelo JONSWAP o Pierson-Moskowitz y genere las ondas para la visualización y un complemento Gazebo que haga algo similar para los modelos.
El problema que veo es que estos dos módulos están separados en Gazebo (si ejecuta la simulación con el sombreador @sebastianscherer dijo y pausa, las ondas seguirán funcionando). Aparte de los sombreadores, no conozco otras formas de mostrar algo como ondas en el entorno.
En cuanto a la interacción con los modelos, un método muy simple que encontré fue este implementado en el simulador de Kelpie:

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

Parece muy fácil de implementar, pero no sé qué tan bueno es. Nunca lo probé.
El mayor problema que veo es sincronizar el complemento físico y visual.
Si tiene alguna idea sobre cómo implementar esto, háganoslo saber. Estaría muy interesado en algo así.

Por cierto, para iniciar un escenario vacío con las olas, tienes que correr

roslaunch uuv_descriptions ocean_waves.launch

Gracias por los comentarios. Tengo implementada la física descrita en mi publicación inicial, pero aún no está ajustada. Hasta ahora parece bastante convincente para un primer corte. Creo que necesito avanzar un poco más en aguas tranquilas antes de que tenga mucho sentido mirar las olas.

Lo que tengo es un complemento mundial que hace referencia al modelo de superficie del agua y modelos de barco. P.ej:

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

Se asume que el modelo de agua es un HeightMap (quiero cambiar a una malla) y que los modelos de barco son mallas triangulares con un solo enlace (por ahora) que representa el casco. Luego calcula la flotabilidad, la fricción viscosa, la presión de arrastre y las fuerzas de impacto en todos los triángulos sumergidos de la malla y los aplica a cada triángulo.

¿Tiene sentido intentar integrar este complemento en uuv-simulator? En esta etapa estoy tratando de evitar ros y parece que uuv-simulator puede ejecutarse sin ros, pero no he encontrado mucha información sobre eso. (No tengo experiencia en ros, y muy poca con mirador). También he estado usando la rama predeterminada de gazebo (es decir, v9), ¿uuv-simulator se compila con v8? Sé que hay una buena cantidad de métodos en física que han cambiado de nombre entre v8 y v9 con el movimiento hacia el encendido.

¿Cuál es la diferencia entre uuv_simulator / uuv_world_plugins / uuv_world_plugins / y uuv_simulator / uuv_gazebo_plugins / uuv_gazebo_plugins /?

Subí una simulación de 2 minutos de dejar caer una caja en una superficie de agua ondulada: https://youtu.be/X3bFU9bbL4A Esta es una primera prueba de concepto ...

¡Ese video ya se ve bastante bien!

Intentamos separar todos los complementos para que haya una parte que no sea ROS y un complemento ROS que se deriva del complemento puro de Gazebo. Hasta ahora no usamos los complementos de Gazebo por sí solos y podría llevar algo de trabajo hacerlos funcionar sin roslaunch, etc.

Creo que tendría sentido integrar esto en uuv_simulator y estaría dispuesto a ayudar con la integración cuando tenga un prototipo funcional.

Todavía estamos usando Gazebo versión 7. No estoy seguro de cuándo haremos el cambio a Gazebo 8 o 9, ya que tiene que encajar en el cronograma del proyecto SWARMs .

Solo una cosa más. Si quieres cambiar las olas del mundo con el que lanzas

roslaunch uuv_descriptions ocean_waves.launch

puede establecer diferentes parámetros en este archivo de materiales aquí

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

La amplitud está configurada muy baja, por ejemplo, pero puede poner otras amplitudes y frecuencias para ver cómo funciona.

Gracias por los comentarios, ahora mismo estoy tratando de crear un modelo de barco en 3D simple. Sin tener experiencia con esas cosas, tomará algo de tiempo ...

Puedes usar este si quieres

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

es estático (solo se usa como una especie de marcador), pero puede modificarlo en un modelo de robot. Y también está el modelo de Kingfisher que puedes conseguir aquí https://github.com/kf/kingfisher. Este último usa usv_gazebo_plugins de este repositorio https://github.com/bsb808/usv_gazebo_plugins.

Hola, tengo un interés similar en modelar la flotabilidad para embarcaciones de superficie en Gazebo y este parece ser el lugar donde se está discutiendo. He progresado un poco con el enfoque mencionado anteriormente y me complacerá compartirlo si hay algún interés.

Tengo un ejemplo de trabajo que admite objetos definidos mediante primitivas de gazebo o mallas que pueden estar compuestas por uno o más enlaces. El campo de ondas se modela usando una malla plana y hay complementos separados para las imágenes y la física que se mantienen sincronizados usando el tiempo de simulación mundial. Existe una dependencia de la biblioteca CGAL ya que uso su paquete de malla de superficie.

El primer ejemplo muestra una serie de cajas conectadas por juntas universales con flotabilidad solamente (sin fuerzas de amortiguación o de arrastre).

buoyancy example 1

El segundo ejemplo muestra varios objetos en olas sujetos a flotabilidad y algunas fuerzas de arrastre. Los barcos se almacenan en un almacén 3D en línea y he usado Blender para diezmar la malla utilizada para las colisiones para reducir el recuento de vértices utilizado en el cálculo de flotabilidad.

buoyancy example

Hola, también intenté hacer una simulación de la superficie del agua.Puedes ver el video.

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

Y el repositorio

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

Hola,
Estaba buscando un simulador compatible con ROS para simular un océano ondulado.
Estudié el papel de Kelpie pero no pude encontrar su paquete en GitHub. ¿Sabes dónde puedo encontrar eso?

@srmainwaring ¡ tu modelo se ve increíble! Actualmente también estoy trabajando en la construcción de un modelo de un barco que se balancea en la superficie del océano. Soy bastante nuevo en Gazebo y tengo una experiencia limitada en la escritura de complementos. ¿Estarías dispuesto a compartir el código / complemento que estás usando para simular los objetos oscilantes? ¡Cualquier ayuda será muy apreciada!

@samchamberlin puedes encontrar el proyecto aquí: https://github.com/srmainwaring/asv_wave_sim.

@srmainwaring Hola Rhys, soy nuevo en ROS y Gazebo, y me estoy orientando sobre cómo simular un barco que baja algo en las profundidades del océano. Por suerte para mí, parece que ha creado un paquete muy útil para que lo use. ¡Muchas gracias por adelantado! No estoy muy seguro de cómo funcionan los paquetes Gazebo, pero ¿cree que sería posible combinar de alguna manera la funcionalidad de onda de su paquete con el modelado submarino del paquete UUV?

@JuliusHendrix sí, creo que sería posible, pero implicaría cambiar la forma en que se calcula la flotabilidad para el UUV si desea que el sumergible responda a las olas cuando está en la superficie, ya que el método utilizado para calcular las fuerzas de flotabilidad es diferente en los dos paquetes . Si tiene alguna pregunta sobre el paquete de simulación de ondas, estaré encantado de responderla en la sección de problemas de su repositorio. Si tiene preguntas sobre los paquetes UUV, será mejor que las envíe a los autores.

El equipo OSRF VRX (https://bitbucket.org/osrf/vrx/src/default/) también ha hecho uso de las imágenes de onda del simulador UUV e incorporó mi sugerencia para sincronizar las imágenes en la simulación con la física. Usan un cálculo de flotabilidad base de volumen como el simulador UUV, en lugar del enfoque basado en la fuerza de superficie utilizado en el mío. Para empezar, ¿podría ser más fácil intentar combinar los enfoques en VRX y UUV y pasar a un modelo de flotabilidad más complejo más adelante si lo necesita?

@srmainwaring ¡ Gracias, lo investigaré!

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

dbcesar picture dbcesar  ·  5Comentarios

atomoclast picture atomoclast  ·  23Comentarios

Timple picture Timple  ·  24Comentarios

bst picture bst  ·  33Comentarios

HashirZahir picture HashirZahir  ·  10Comentarios