PTENES
TRILHA 4 · INTERMEDIÁRIO / AVANÇADO

🗺️ ROS 2 e navegação

O salto do robô que reage para o robô que sabe onde está. Você aprende o ROS 2, descreve e simula o seu robô no Gazebo, liga o ESP32 ao ROS com micro-ROS, faz mapas com um LiDAR e termina com um robô que mapeia a sala e navega sozinho até um ponto. Tudo pode ser feito primeiro só em simulação, no seu PC.

6
Módulos
36
Tópicos
Intermediário
Nível
ROS 2
Lyrical ou Jazzy
0%
0 de 0 tópicos lidos nesta trilha
simulação no PC robô real 4.1ROS 2 4.2Gazebo 4.4SLAM 4.5Nav2 4.3micro-ROS 4.4LiDAR real 4.6projeto o mesmo código ROS 2 serve nas duas faixas

Como ler: a faixa de cima (âmbar) roda inteira no seu computador, sem nenhuma peça. A de baixo (ciano) é o mesmo trabalho no robô de verdade: o ESP32 entra no ROS pelo micro-ROS e o LiDAR real substitui o simulado. As duas setas chegam ao projeto 4.6. Você pode seguir só a faixa de cima e voltar para a de baixo quando tiver o hardware.

🧭 O que você monta nesta trilha

Um robô diferencial (duas rodas e um rodízio) que existe em dois lugares: como modelo no Gazebo e como o robô das trilhas anteriores, agora com LiDAR. Ele publica odometria e leituras do laser no ROS 2, constrói o mapa do ambiente com slam_toolbox e usa o Nav2 para ir sozinho até o ponto que você clicar no mapa, desviando do que aparecer no caminho.

  • ✓Comandos válidos em Lyrical e Jazzy
  • ✓Robô descrito em URDF/xacro e simulado no Gazebo
  • ✓ESP32 falando ROS 2 pelo micro-ROS
  • ✓Mapa salvo e navegação por pontos com Nav2

💡 Sem LiDAR ainda?

Os módulos 4.1, 4.2, 4.4 e 4.5 rodam inteiros em simulação: um PC com Ubuntu, uma máquina virtual ou um contêiner Docker bastam. O hardware só é obrigatório no 4.3 e na parte real do 4.6.

Mapa da trilha

Conteúdo detalhado

4.1
Fundamento
0%

🧩 ROS 2 sem medo

O que é o ROS 2, qual distro escolher, como instalar e as peças do grafo: nós, tópicos, serviços, ações e parâmetros. Fecha com o seu primeiro nó em Python.

O que é:

Um conjunto de bibliotecas e ferramentas que deixa vários programas do robô trocarem dados por nome, na mesma máquina ou na rede.

Por que aprender:

É o padrão de pesquisa e indústria; mapas, navegação e drivers de sensores já vêm prontos.

Conceitos-chave:

Middleware · DDS · grafo ROS · pacote.

O que é:

Lyrical Luth (LTS de maio/2026, Ubuntu 26.04) e Jazzy Jalisco (LTS anterior, Ubuntu 24.04), cada uma com seu Gazebo.

Por que aprender:

Distro errada é a causa nº 1 de tutorial que não funciona.

Conceitos-chave:

LTS · par Ubuntu ↔ ROS ↔ Gazebo · fim de suporte.

O que é:

Três caminhos: pacotes no Ubuntu, contêiner Docker pronto ou Raspberry Pi 5 com Ubuntu.

Por que aprender:

O Docker põe você para rodar em minutos, em qualquer sistema.

Conceitos-chave:

ros-<distro>-desktop · source · talker/listener.

O que é:

Nó é um programa; tópico é um canal com nome; mensagem é o formato do dado que passa por ele.

Por que aprender:

Todo robô ROS é um grafo desses; lê-lo com o terminal é a primeira ferramenta de depuração.

Conceitos-chave:

Publisher · subscriber · /cmd_vel · ros2 topic echo.

O que é:

Pergunta e resposta (serviço), tarefa longa com progresso (ação) e ajustes do nó (parâmetro).

Por que aprender:

Escolher o padrão certo evita gambiarras; o Nav2 inteiro funciona por ações.

Conceitos-chave:

Request/response · goal/feedback/result · ros2 param.

O que é:

Um pacote Python com dois nós completos, um que publica e outro que escuta, compilado com colcon.

Por que aprender:

É o molde de todo nó que você vai escrever no resto da trilha.

Conceitos-chave:

rclpy · create_publisher · create_subscription · timer.

Ver Completo
4.2
Prática
0%

🧱 Descrever e simular o robô

Workspace e colcon, o robô em URDF/xacro, quadros TF, RViz2, Gazebo com ros_gz e o primeiro passeio com o teclado.

O que é:

A pasta de trabalho, como os pacotes se organizam e como o colcon compila e instala tudo.

Por que aprender:

Metade dos erros de iniciante é workspace sem source ou dependência faltando.

Conceitos-chave:

Underlay · overlay · rosdep · --symlink-install.

O que é:

Um arquivo XML com as peças (links) e as juntas (joints) do robô; o xacro adiciona variáveis e macros.

Por que aprender:

RViz, Gazebo, TF e Nav2 leem a mesma descrição.

Conceitos-chave:

Link · joint · inércia · macro.

O que é:

A árvore que diz onde cada peça está em relação às outras, a cada instante.

Por que aprender:

Sem TF certa, o laser aparece no lugar errado e o mapa entorta.

Conceitos-chave:

map · odom · base_link · tf2_echo.

O que é:

A janela que mostra o que o robô acredita: modelo, quadros, laser, mapa.

Por que aprender:

É onde você confere o modelo antes de simular e o sensor antes de mapear.

Conceitos-chave:

Fixed Frame · RobotModel · LaserScan · robot_state_publisher.

O que é:

O simulador com física e sensores, ligado ao ROS 2 pela ponte ros_gz.

Por que aprender:

Você testa mapa e navegação sem bateria, sem tombo e sem comprar LiDAR.

Conceitos-chave:

Harmonic ↔ Jazzy · Jetty ↔ Lyrical · parameter_bridge · launch.

O que é:

Mandar velocidade pelo teclado em /cmd_vel e ver odometria e laser responderem.

Por que aprender:

Fecha o ciclo: comando entra, robô anda, sensores mudam. É o teste de fumaça de toda a trilha.

Conceitos-chave:

teleop_twist_keyboard · Twist · /odom · /scan.

Ver Completo
4.3
Prática
0%

🔌 micro-ROS no ESP32

O ESP32 vira um nó ROS 2: publica encoders, ouve /cmd_vel, gira os motores e entrega odometria ao resto do robô.

O que é:

A versão do ROS 2 para microcontroladores, que fala com o resto do grafo por meio de um agente.

Por que aprender:

Os motores e encoders ficam no ESP32, em tempo real, e aparecem no ROS como qualquer nó.

Conceitos-chave:

Cliente · agente · XRCE-DDS · rclc.

O que é:

O programa no PC ou no Pi que traduz o micro-ROS para o DDS; roda em Docker com uma linha.

Por que aprender:

Sem agente o ESP32 fala sozinho; ele é a primeira coisa a conferir.

Conceitos-chave:

Serial · UDP · porta 8888 · /dev/ttyUSB0.

O que é:

O firmware que conta os pulsos das rodas e publica em /ticks a cada 50 ms.

Por que aprender:

Dado do sensor no ROS é a base da odometria e do mapa.

Conceitos-chave:

micro_ros_arduino · publisher · timer · executor.

O que é:

Converter velocidade linear e angular em velocidade de cada roda, com parada se o comando sumir.

Por que aprender:

É o mesmo /cmd_vel do teleop e do Nav2: o robô real passa a obedecer ao ROS.

Conceitos-chave:

Cinemática diferencial · subscriber · watchdog · TB6612FNG.

O que é:

Um nó Python no PC que transforma /ticks em /odom e no quadro odom → base_link.

Por que aprender:

É o que o SLAM e o Nav2 esperam receber do robô real.

Conceitos-chave:

nav_msgs/Odometry · TransformBroadcaster · ticks por volta.

O que é:

Os defeitos que mais aparecem: agente sem conexão, porta ocupada, distro trocada, relógio fora de sincronia.

Por que aprender:

Um roteiro de diagnóstico poupa noites de tentativa e erro.

Conceitos-chave:

Transporte · ping do agente · sync de tempo · reconexão.

Ver Completo
4.4
Fundamento
0%

📡 LiDAR e mapas (SLAM)

Como o LiDAR enxerga, como ligá-lo no ROS 2 e como o slam_toolbox monta o mapa enquanto descobre onde o robô está.

O que é:

Um laser que gira e mede a distância em centenas de ângulos por volta, publicado como LaserScan.

Por que aprender:

Entender alcance e resolução explica por que o mapa sai bom ou ruim.

Conceitos-chave:

ranges · angle_increment · alcance · /scan.

O que é:

Driver do fabricante (RPLIDAR C1/A1 ou LD19), porta USB e o quadro do laser na TF.

Por que aprender:

É o passo que leva o robô real ao mesmo ponto do simulado.

Conceitos-chave:

Driver · regra udev · frame_id · ros2 topic hz.

O que é:

Construir o mapa e se localizar nele ao mesmo tempo, corrigindo a odometria pelo que o laser vê.

Por que aprender:

Sem mapa não há navegação autônoma de verdade.

Conceitos-chave:

Scan matching · fechamento de laço · grade de ocupação.

O que é:

O pacote padrão de SLAM no ROS 2 rodando sobre o robô do Gazebo.

Por que aprender:

Você aprende a mapear sem hardware e já sabe o que esperar do real.

Conceitos-chave:

Modo online assíncrono · parâmetros · /map.

O que é:

Roteiro de mapeamento real: velocidade baixa, voltas fechadas, superfícies que confundem o laser.

Por que aprender:

Um mapa bem feito decide se a navegação vai funcionar.

Conceitos-chave:

Vidro e espelho · velocidade · revisitar lugares.

O que é:

Guardar o mapa em arquivo (imagem + YAML) e reabrir depois para navegar.

Por que aprender:

Você mapeia uma vez e navega muitas.

Conceitos-chave:

map_saver · .pgm e .yaml · resolução · origem.

Ver Completo
4.5
Prática
0%

🚩 Navegação com Nav2

A pilha de navegação do ROS 2: localizar no mapa salvo, planejar, desviar, se recuperar e fazer rondas por waypoints.

O que é:

Os servidores que localizam, planejam, controlam e se recuperam, coordenados por uma árvore de comportamento.

Por que aprender:

É o mesmo tipo de software dos robôs de armazém.

Conceitos-chave:

nav2_bringup · behavior tree · lifecycle.

O que é:

Um filtro de partículas que estima onde o robô está comparando o laser com o mapa.

Por que aprender:

Sem saber onde está, o robô não sabe para onde ir.

Conceitos-chave:

Partículas · pose inicial · map → odom.

O que é:

Mapas que marcam onde é caro passar e os algoritmos que traçam e seguem o caminho.

Por que aprender:

Ajustar inflação e raio do robô resolve a maioria dos "não passa na porta".

Conceitos-chave:

Costmap global e local · inflação · planner · controller.

O que é:

Dar o objetivo clicando no RViz ou por código com a API Python do Nav2.

Por que aprender:

Com Python, a navegação vira um bloco que outros programas usam.

Conceitos-chave:

Nav2 Goal · NavigateToPose · ação · feedback.

O que é:

Os comportamentos de recuperação: limpar o mapa de custo, girar, recuar, esperar.

Por que aprender:

No mundo real o robô vai travar; o que importa é como ele sai.

Conceitos-chave:

Spin · BackUp · Wait · tentativas.

O que é:

Uma lista de pontos que o robô percorre em ordem, como uma ronda.

Por que aprender:

É a base de entrega, inspeção e vigilância.

Conceitos-chave:

followWaypoints · ordem · repetição.

Ver Completo
4.6
Projeto
0%

🏠 Projeto: robô que mapeia e navega

Junta tudo no robô real: arquitetura, launch que sobe o sistema, mapa do ambiente e navegação entre cômodos com segurança.

O que é:

Quem roda onde: ESP32 nos motores, Pi 5 com LiDAR e ROS 2, PC para visualizar.

Por que aprender:

Uma arquitetura clara facilita achar defeitos e trocar peças.

Conceitos-chave:

Divisão de tarefas · rede · ROS_DOMAIN_ID.

O que é:

Um comando que liga agente, descrição, LiDAR, odometria, SLAM ou Nav2 na ordem certa.

Por que aprender:

Abrir dez terminais toda vez não escala nem em sala de aula.

Conceitos-chave:

Argumentos · include · condições.

O que é:

Ruído, deslizamento, atraso e tempo real: o que o Gazebo esconde e como compensar.

Por que aprender:

É aqui que a maioria dos projetos para; saber antes evita frustração.

Conceitos-chave:

use_sim_time · calibração · limites de velocidade.

O que é:

Fazer o mapa real do espaço onde o robô vai trabalhar e salvar.

Por que aprender:

É o primeiro resultado visível do projeto.

Conceitos-chave:

slam_toolbox · teleop · map_saver.

O que é:

Nav2 no mapa real, com pontos nomeados (cozinha, sala) e uma ronda.

Por que aprender:

É o robô autônomo completo que a trilha prometeu.

Conceitos-chave:

Pontos nomeados · waypoints · métricas de sucesso.

O que é:

Parada de emergência, velocidade máxima, bateria e o caminho para a Trilha 5.

Por que aprender:

Robô que anda sozinho perto de gente precisa de travas desde o primeiro teste.

Conceitos-chave:

E-stop · limites · watchdog · registro.

Ver Completo

🧰 Kit da trilha

Parte do zero só em simulação. Para o robô real, além do robô da Trilha 3, a faixa aproximada é de R$ 450 a R$ 1.100, quase tudo no LiDAR (out/2026, confira antes de comprar: varia por loja, frete e câmbio).

💻 Para simular

PC com Ubuntu 24.04 (Jazzy) ou 26.04 (Lyrical), máquina virtual ou Docker. 8 GB de RAM funcionam; 16 GB deixam o Gazebo confortável.

🦾 Base do robô

O robô da Trilha 3: Raspberry Pi 5 com fonte oficial e cooler, ESP32 e driver TB6612FNG ou DRV8833, chassi de duas rodas e rodízio.

📡 LiDAR 2D

RPLIDAR C1 ou A1 (Slamtec) ou LD19 (LDRobot), com o adaptador USB que vem junto. É a peça mais cara da trilha.

⚙️ Encoders

Os motores com encoder da Trilha 2 (N20 ou TT com disco). Sem encoder não há odometria, e o mapa sai torto.

🔋 Energia

Bateria separada para motores e para o Pi (ou buck de 5 V e 5 A), GND comum e uma chave de parada fácil de alcançar.

🔌 Cabos e rede

Cabos USB de dados (ESP32 e LiDAR) e uma rede Wi-Fi local estável entre o robô e o PC.

✓ Opcional que vale a pena

IMU MPU-6050 ou ICM-20948 (melhora a odometria em curvas) e um botão de parada de emergência que corta os motores.

✗ Não compre para esta trilha

LiDAR 3D, câmera de profundidade cara ou um segundo computador de bordo. O 2D com encoders resolve mapa e navegação dentro de casa.