Skip to content

ThundeRatz/aula-ros-2025

Repository files navigation

🤖 Aula de Introdução ao ROS 2 - Perse Sumô???

Este repositório contém o código fonte para a aula de introdução ao ROS 2, onde o objetivo é programar o Perse para competir em uma partida de sumô.

🎯 Objetivo do Exercício

O objetivo é desenvolver o "cérebro" do Perse para que ele consiga, de forma autônoma:

  1. Localizar um cone (seu oponente) dentro de um ringue de sumô (dohyo).
  2. Mover-se em direção ao cone.
  3. Empurrar o cone para fora do ringue.
  4. Evitar cair para fora do ringue, detectando a linha branca que delimita a arena.

🔧 Instalação

Você pode configurar o ambiente de desenvolvimento de duas maneiras: usando Docker (recomendado) ou em uma instalação nativa do Ubuntu.

🐳 Usando Docker (Recomendado)

O Docker simplifica a configuração do ambiente, garantindo que todas as dependências estejam corretas.

  1. Construa a imagem Docker:
    docker compose build
  2. Inicie o container:
    docker compose up -d
  3. Acesse o terminal do container: O serviço é nomeado perse no arquivo docker compose.yml.
    docker compose exec perse bash
  4. Dentro do container, compile o projeto: O código já estará no diretório /home/ros/perse_ws.
    cd /home/ros/perse_ws
    colcon build

💻 Instalação Nativa (Ubuntu 22.04)

Se preferir instalar em sua própria máquina, você precisará do Ubuntu 22.04 e do ROS 2 Humble.

  1. Instale o ROS 2 Humble: Siga as instruções oficiais para instalação via pacotes Debian.

    🔗 Link Oficial: Instalação do ROS 2 Humble (Ubuntu)

  2. Clone este repositório: Crie um workspace e clone o projeto na pasta src.

    mkdir -p ~/perse_ws/src
    cd ~/perse_ws/src
    git clone https://github.com/ThundeRatz/aula-ros-2025.git .
  3. Instale as dependências do ROS: Use a ferramenta rosdep para instalar todas as dependências listadas nos arquivos package.xml.

    cd ~/perse_ws
    rosdep install -i --from-path src --rosdistro humble -y
  4. Compile o workspace: Use colcon para compilar os pacotes.

    cd ~/perse_ws
    colcon build

🚀 Executando o Projeto

Após a compilação, abra dois terminais. Em ambos, certifique-se de estar no ambiente correto:

  • Se estiver usando Docker, acesse o container com docker compose exec perse bash.
  • Se for instalação nativa, execute source ~/perse_ws/install/setup.bash em cada terminal.
  1. Terminal 1: Inicie a Simulação Este comando inicia o simulador Webots com o robô Perse no dohyo.

    ros2 launch perse_sumo sim_launch.py
  2. Terminal 2: Inicie o Cérebro do Robô Este comando executa o nó de controle que você irá modificar.

    ros2 launch perse_brain brain.launch

Agora você está pronto para modificar o código em src/perse_brain/src/brain.cpp e ver o resultado na simulação!

📂 Estrutura de Arquivos

O workspace está organizado em dois pacotes principais:

.
├── perse_brain/         # Pacote com a lógica de controle do robô
│   ├── CMakeLists.txt
│   ├── package.xml
│   ├── config/
│   │   └── brain_parameters.yaml  # Parâmetros de configuração do cérebro
│   ├── include/
│   │   └── perse_brain/
│   │       └── brain.hpp          # Arquivo de cabeçalho do nó
│   ├── launch/
│   │   └── brain.launch           # Arquivo de lançamento para o cérebro
│   └── src/
│       └── brain.cpp              # Onde a mágica acontece! Código principal do robô
└── perse_sumo/          # Pacote da simulação
    ├── CMakeLists.txt
    ├── package.xml
    ├── launch/
    │   └── sim_launch.py          # Arquivo de lançamento para a simulação
    ├── protos/                    # Modelos 3D para o Webots
    ├── resource/
    │   └── perse.urdf             # Descrição do robô (sensores, links)
    ├── src/
    │   └── PerseDriver.cpp        # Driver que conecta o Webots com o ROS 2
    └── worlds/
        └── world.wbt              # Arquivo do mundo da simulação

📄 Slides

Os slides dessa aulinha foram feitos utilizando o processador de texto Typst

O código fonte dos slides estão localizados na pasta Slides ROS 2025. Para compilar basta executar o comando abaixo

cd "Slides ROS 2025"
typst compile main.typ

Isso vai gerar um arquivo main.pdf

Nota: Os slides utilizam a fonte Barlow. Se você estiver compilando localmente e a fonte não estiver instalada, a renderização pode ficar diferente. Para instalar a fonte no Linux:

mkdir -p ~/.local/share/fonts
cd ~/.local/share/fonts
for variant in Regular Bold Italic BoldItalic Medium SemiBold; do
  wget -q https://github.com/google/fonts/raw/main/ofl/barlow/Barlow-${variant}.ttf
done
fc-cache -f

Typst IDE

Caso queira uma experiência mais parecida com o overleaf, acesse o site oficial typst.app e importe os arquivos como um projeto.

O editor online tem um preview de compilação rápida, é multiplayer e tem várias outras funções de qualidade de vida.

Compilando para apresentação (html)

Os slides dessa aulinha contém alguns gifs. Para poder visualizá-los é necessário compilar os slides para html.

Isso é feito utilizando a ferramenta touying-exporter. Com ela instalada, execute o comando abaixo

cd "Slides ROS 2025"
touying compile main.typ

Isso vai gerar um arquivo main.html que pode ser visualizado num navegador web.

🚀 Acesso Online aos Slides

Os slides são automaticamente compilados e publicados no GitHub Pages sempre que há alterações na pasta Slides ROS 2025 na branch main.

Você pode acessar os slides online em:

O processo de build e deploy é feito automaticamente via GitHub Actions.

About

Código para o exercício prático da aula de ros de 2025

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors