GAZEBO
Contents
- 1 Tutorial inserindo modelos customizados no gazebo
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
- [gazebo tutorials](https://gazebosim.org/docs/latest/building_robot/)
Créditos
Camila Chagas Carvalho