GAZEBO

From VeRLab Wiki
Jump to: navigation, search

Tutorial inserindo modelos customizados no gazebo

Criar um modelo desejado e exportá-lo em um arquivo .dae

Você consegue fazer isso no blender, selecionando a opção *export* e selecionando o tipo *.DAE*, como mostrado abaixo. Para isso, vá até o canto superior direito e procure File, depois vá em export e clique em um arquivo .dae.

O código completo de exemplo

[mundo.sdf]

Agora, vamos entender como o arquivo .DAE exportado é referenciado no arquivo SDF (Simulation Description Format) e como é configurado alguns parâmetros

Definição do Mundo (<world>)

O código começa com a definição de um mundo chamado **"challenge"**. Esse é o espaço virtual onde a simulação acontece.

Física do Mundo (<physics>)

O bloco de física define como o mundo vai se comportar em termos de **simulação física**.

  • **`max_step_size`** controla a precisão do cálculo de física.
  • **`real_time_factor`** controla a velocidade da simulação (1 significa que a simulação acontece em tempo real).
  • **`real_time_update_rate`** define a taxa de atualização do tempo na simulação.

Plugins

    • Plugins** são peças de código adicional que estendem as funcionalidades da simulação. Aqui, várias funcionalidades de simulação foram adicionadas, como sistemas de física, comandos de usuário, detecção de colisões, e até sistemas como IMU (unidade de medição inercial) e sensores magnéticos.

Luz (<light>)

A simulação tem uma **luz direcional** chamada "sun". A luz é configurada para ter uma direção específica e iluminar o cenário, com diferentes parâmetros como intensidade e como a luz diminui com a distância.

Configuração da Cena (<scene>)

A cena da simulação tem configurações como a cor de fundo e a iluminação ambiente, além de permitir ou não as sombras.

Modelo do Mundo (<model name="mundo_com_textura">)

Aqui, um **modelo 3D** chamado "mundo_com_textura" é adicionado ao cenário.

  <link name="link">
    <!-- Definição de visualização do modelo -->
    <visual name="visual_link">
      <geometry>
        <mesh>
          <uri>model://mundo_com_textura.dae</uri> <!-- Caminho para o arquivo .dae -->
        </mesh>
      </geometry>
    </visual>

O modelo é carregado a partir de um arquivo **.dae** (formato de arquivo de modelo 3D).

Esse modelo é **estático**, ou seja, ele não cai, devido ao comando:

 <static>true</static>

Além disso, o modelo tem uma **superfície de colisão**, o que significa que ele vai interagir com outros objetos ou robôs na simulação, e a colisão tem um coeficiente de **fricção** definido.

    <!-- Definição de colisão (superfície do chão) -->
    <collision name="collision_link">
      <geometry>
        <mesh>
          <uri>model://mundo_com_textura.dae</uri> <!-- Caminho para o arquivo .dae -->
        </mesh>
      </geometry>
      <surface>
        <friction>
          <ode>
            <mu>0.5</mu> <!-- Coeficiente de fricção: ver qual seria mais o padrão -->
            <mu2>0.5</mu2>
          </ode>
        </friction>
      </surface>
    </collision>

OBS: Ainda estou vendo os efeitos da mudança de fricção na simulação.

Material de apoio

Créditos

Camila Chagas Carvalho