Uuv_simulator: P: modelagem da superfície da água?

Criado em 15 set. 2017  ·  17Comentários  ·  Fonte: uuvsimulator/uuv_simulator

Pergunta, há algo no simulador do uuv que modela a superfície da água, como ondas? (E se não, como obter a bela animação da superfície no vídeo do parque eólico?)

question

Comentários muito úteis

Olá, tenho um interesse semelhante em modelar a flutuabilidade para embarcações de superfície no Gazebo e este parece ser o lugar onde está sendo discutido. Fiz alguns progressos usando a abordagem mencionada acima e ficaria feliz em compartilhar se houver algum interesse.

Eu tenho um exemplo de trabalho que oferece suporte a objetos definidos usando primitivas de gazebo ou malhas que podem ser compostas de um ou mais links. O campo de onda é modelado usando uma malha plana e existem plugins separados para os visuais e a física que são mantidos sincronizados usando o tempo de simulação mundial. Há uma dependência da biblioteca CGAL quando uso seu pacote de malha de superfície.

O primeiro exemplo mostra uma série de caixas conectadas por juntas universais apenas com flutuabilidade (sem amortecimento ou forças de arrasto).

buoyancy example 1

O segundo exemplo mostra vários objetos em ondas sujeitas a flutuabilidade e algumas forças de arrasto. Os barcos são armazenados em um armazém 3D online e eu usei o Blender para dizimar a malha usada para colisões para reduzir a contagem de vértices usada no cálculo de flutuabilidade.

buoyancy example

Todos 17 comentários

Olá, atualmente não há simulação física da superfície da água ou das ondas. Seria um ótimo recurso a ser adicionado, mas atualmente não temos capacidade para trabalhar nisso. Se houver alguém disposto a dedicar algum tempo a isso, entre em contato conosco.

As ondas que você pode ter visto em vídeos ou capturas de tela são puros efeitos visuais e implementados usando esses sombreadores nas propriedades do material.

Ah, obrigado pela resposta. Estou trabalhando na implementação de https://www.gamasutra.com/view/news/237528/Water_interaction_model_for_boats_in_video_games.php como um plugin mundial (gazebo). Um problema que vou enfrentar (ainda não estou tão longe ...) é como representar as ondas em movimento. No momento, estou usando um mapa de altura, o que me dá ondas imóveis. Isso é bom para muitas simulações (mesmo que seja estranho), mas não tudo. Dada a separação servidor / cliente, estou tentando descobrir o que fazer. Parece que preciso executar essencialmente o mesmo algoritmo que produz as ondas em ambos os lados. Uma vez para a física e outra para a renderização.

Sim, isso pode ser feito. Uma maneira seria ter um shader que implementa um modelo JONSWAP ou Pierson-Moskowitz e gera as ondas para a visualização e um plugin Gazebo que faz uma coisa semelhante para os modelos.
O problema que vejo é que esses dois módulos são separados no Gazebo (se você executar a simulação com o sombreador @sebastianscherer disse e pausar, as ondas ainda correrão). Além dos shaders, não conheço nenhuma outra maneira de mostrar algo como ondas no ambiente.
Em relação à interação com os modelos, um método muito simples que encontrei foi implementado no simulador Kelpie:

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

Parece muito fácil de implementar, mas não sei o quão bom é. Eu nunca experimentei.
O maior problema que vejo é a sincronização do plug-in visual e físico.
Se você tiver alguma ideia sobre como implementar isso, diga-nos. Eu estaria muito interessado em algo assim.

Aliás, para começar um cenário vazio com as ondas, é preciso correr

roslaunch uuv_descriptions ocean_waves.launch

Obrigado pelos comentários. Eu tenho a física descrita no meu post inicial implementada, mas ainda não ajustada. Até agora, parece bastante convincente para um primeiro corte. Acho que preciso fazer mais progressos em águas calmas antes que faça muito sentido olhar para as ondas.

O que eu tenho é um plugin mundial que faz referência ao modelo de superfície da água e aos modelos de barco. Por exemplo:

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

Ele assume que o modelo de água é um HeightMap (quero mudar para uma malha) e que os modelos de barco são malhas triangulares com um único link (por enquanto) representando o casco. Em seguida, ele calcula a flutuabilidade, o atrito viscoso, o arrasto de pressão e as forças de impacto em todos os triângulos submersos da malha e os aplica a cada triângulo.

Faz sentido tentar integrar este plugin ao simulador do uuv? Neste estágio estou tentando evitar ros e parece que o uuv-simulator pode rodar sem ros, mas eu não encontrei muita informação sobre isso. (Não tenho experiência ros, e muito pouco com gazebo). Também tenho usado o branch padrão do gazebo (ou seja, v9), o uuv-simulator compila com o v8? Eu sei que há um bom número de métodos na física que mudaram de nome entre v8 e v9 com o movimento em direção ao material de ignição.

Qual é a diferença entre uuv_simulator / uuv_world_plugins / uuv_world_plugins / e uuv_simulator / uuv_gazebo_plugins / uuv_gazebo_plugins /?

Eu carreguei uma simulação de 2 minutos de queda de uma caixa em uma superfície de água ondulada: https://youtu.be/X3bFU9bbL4A Esta é a primeira prova de conceito ...

Esse vídeo já parece bem legal!

Tentamos separar todos os plug-ins para que haja uma parte não-ROS e um plug-in ROS que é derivado do plug-in Gazebo puro. Até agora, não usamos os plug-ins Gazebo por conta própria e pode ser trabalhoso colocá-los em execução sem roslaunch etc.

Eu acho que faria sentido integrar isso ao uuv_simulator e eu estaria disposto a ajudar na integração quando você tiver um protótipo funcional.

Ainda estamos usando o Gazebo versão 7. Não tenho certeza de quando faremos a mudança para o Gazebo 8 ou 9, pois ele tem que se encaixar no cronograma do projeto SWARMs .

Só mais uma coisa. Se você quiser mudar as ondas do mundo com o qual você se lança

roslaunch uuv_descriptions ocean_waves.launch

você pode definir diferentes parâmetros neste arquivo de materiais aqui

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

A amplitude é definida muito baixa, por exemplo, mas você pode colocar outras amplitudes e frequências para vê-lo funcionando.

Obrigado pelo feedback, No momento estou tentando obter um modelo 3D simples de barco. Não tendo experiência com essas coisas vai demorar um pouco ...

Você pode usar este se quiser

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

é estático (usado apenas como uma espécie de marcador), mas você pode modificá-lo em um modelo de robô. E também tem o modelo do Kingfisher que você pode obter aqui https://github.com/kf/kingfisher. Este último usa os usv_gazebo_plugins deste repositório https://github.com/bsb808/usv_gazebo_plugins.

Olá, tenho um interesse semelhante em modelar a flutuabilidade para embarcações de superfície no Gazebo e este parece ser o lugar onde está sendo discutido. Fiz alguns progressos usando a abordagem mencionada acima e ficaria feliz em compartilhar se houver algum interesse.

Eu tenho um exemplo de trabalho que oferece suporte a objetos definidos usando primitivas de gazebo ou malhas que podem ser compostas de um ou mais links. O campo de onda é modelado usando uma malha plana e existem plugins separados para os visuais e a física que são mantidos sincronizados usando o tempo de simulação mundial. Há uma dependência da biblioteca CGAL quando uso seu pacote de malha de superfície.

O primeiro exemplo mostra uma série de caixas conectadas por juntas universais apenas com flutuabilidade (sem amortecimento ou forças de arrasto).

buoyancy example 1

O segundo exemplo mostra vários objetos em ondas sujeitas a flutuabilidade e algumas forças de arrasto. Os barcos são armazenados em um armazém 3D online e eu usei o Blender para dizimar a malha usada para colisões para reduzir a contagem de vértices usada no cálculo de flutuabilidade.

buoyancy example

Olá, eu também tentei fazer uma simulação da superfície da água, você pode conferir o vídeo

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

E o repositório

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

Oi,
Eu estava procurando um simulador compatível com ROS para simular um oceano ondulado.
Estudei o artigo do Kelpie, mas não consegui encontrar seu pacote no GitHub. Você sabe onde posso encontrar isso?

@srmainwaring seu modelo está incrível! Atualmente estou trabalhando na construção de um modelo de um barco balançando na superfície do oceano também. Eu sou muito novo no Gazebo e tenho experiência limitada em escrever plug-ins. Você gostaria de compartilhar o código / plugin que está usando para simular os objetos oscilantes? Qualquer ajuda será muito apreciada!

@samchamberlin você pode encontrar o projeto aqui: https://github.com/srmainwaring/asv_wave_sim.

@srmainwaring Ei, Rhys, sou novo no ROS e no Gazebo, e estou me orientando sobre como simular um navio baixando algo nas profundezas do oceano. Para minha sorte, parece que você fez um pacote muito útil para eu usar. Muito obrigado antecipadamente! Não tenho certeza de como os pacotes Gazebo funcionam, mas você acha que seria possível combinar de alguma forma a funcionalidade de onda do seu pacote com a modelagem subaquática do pacote UUV?

@JuliusHendrix sim, acho que seria possível, mas envolveria alterar a forma como a flutuabilidade é calculada para o UUV se você quiser que o submersível responda às ondas quando na superfície, já que o método usado para calcular as forças de flutuabilidade é diferente nos dois pacotes . Se você tiver alguma dúvida sobre o pacote de simulação de ondas, ficarei feliz em respondê-las na seção de problemas de seu repositório. Para perguntas sobre os pacotes UUV, é melhor encaminhá-las aos autores.

A equipe VRX da OSRF (https://bitbucket.org/osrf/vrx/src/default/) também fez uso dos visuais de onda do simulador UUV e incorporou minha sugestão para sincronizar os visuais na simulação com a física. Eles usam um cálculo de flutuabilidade de base de volume como o simulador UUV, em vez da abordagem baseada em força de superfície usada na mina. Para começar, pode ser mais fácil tentar combinar as abordagens em VRX e UUV e passar para um modelo de flutuabilidade mais complexo posteriormente, se necessário?

@srmainwaring Obrigado, vou dar uma olhada nisso!

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

bst picture bst  ·  33Comentários

atomoclast picture atomoclast  ·  23Comentários

Timple picture Timple  ·  7Comentários

musamarcusso picture musamarcusso  ·  12Comentários

Timple picture Timple  ·  24Comentários