Pular para o conteúdo principal

🚀 Operação Prática Completa

Objetivo do Módulo

Integrar todos os conhecimentos do Tier 2 em um projeto prático completo.


🎯 Projeto Final: Missão de Inspeção​

Objetivo​

Programar um humanoide simulado para:

  1. ✅ Caminhar até área específica (5 metros)
  2. ✅ Inspecionar objeto com câmera
  3. ✅ Pegar objeto (se possível)
  4. ✅ Retornar à base
  5. ✅ Reportar status (telemetria)

Tempo Estimado​

4-6 horas para completar


📋 Checklist de Preparação​

Software​

□ ROS2 Humble instalado
□ Gazebo funcionando
□ Foxglove Studio instalado
□ Joystick conectado (opcional)

Conhecimento​

□ Tier 1 completo
□ Módulos 1-9 do Tier 2 completos
□ Familiaridade com Python

🏗️ Passo 1: Setup do Ambiente​

Criar Workspace​

mkdir -p ~/humanoid_mission_ws/src
cd ~/humanoid_mission_ws
colcon build
source install/setup.bash

Lançar Gazebo​

# Terminal 1
gazebo --verbose

Lançar Foxglove​

# Terminal 2
ros2 launch foxglove_bridge foxglove_bridge_launch.xml

🚶 Passo 2: Implementar Navegação​

Código Python​

import rclpy
from geometry_msgs.msg import Twist

class WalkController:
def __init__(self):
self.node = rclpy.create_node('walk_controller')
self.pub = self.node.create_publisher(Twist, '/cmd_vel', 10)

def walk_forward(self, distance_m):
"""Andar para frente X metros"""
speed = 0.5 # m/s
duration = distance_m / speed

msg = Twist()
msg.linear.x = speed

start = self.node.get_clock().now()
while (self.node.get_clock().now() - start).nanoseconds < duration * 1e9:
self.pub.publish(msg)
rclpy.spin_once(self.node, timeout_sec=0.1)

# Parar
msg.linear.x = 0.0
self.pub.publish(msg)

# Uso
controller = WalkController()
controller.walk_forward(5.0) # 5 metros

📸 Passo 3: Capturar Imagem​

from sensor_msgs.msg import Image
from cv_bridge import CvBridge
import cv2

class CameraInspector:
def __init__(self):
self.node = rclpy.create_node('camera_inspector')
self.bridge = CvBridge()
self.image = None

self.sub = self.node.create_subscription(
Image, '/camera/image_raw', self.image_callback, 10
)

def image_callback(self, msg):
self.image = self.bridge.imgmsg_to_cv2(msg, 'bgr8')

def save_inspection_image(self, filename):
if self.image is not None:
cv2.imwrite(filename, self.image)
print(f"Saved {filename}")

# Uso
inspector = CameraInspector()
rclpy.spin_once(inspector.node, timeout_sec=1.0)
inspector.save_inspection_image('inspection.jpg')

📊 Passo 4: Monitoramento​

Dashboard Foxglove​

Criar layout com:

  • 3D View do robô
  • Image View da câmera
  • Plot de velocidade
  • Diagnostics

🎓 Desafios Extras​

Fácil​

  • ✅ Fazer robô girar 360° antes de retornar

Médio​

  • ✅ Detectar cor do objeto com OpenCV
  • ✅ Evitar obstáculo simples

Difícil​

  • ✅ Usar Nav2 para navegação autônoma
  • ✅ Integrar com Isaac Sim
  • ✅ Treinar RL agent para tarefa

🏆 Conclusão do Tier 2​

O Que Você Aprendeu​

✅ Segurança operacional
✅ Interfaces de controle
✅ Telemetria e monitoramento
✅ Calibração de sensores
✅ Manutenção preventiva
✅ Simuladores (Gazebo, Isaac Sim)
✅ Operação prática completa

Próximos Passos​

Tier 3: Programando Humanoides

Em breve: Programação avançada com ROS2, visão computacional, IA e navegação autônoma.

Enquanto aguarda:

  • Pratique projetos extras em simulação
  • Contribua para projetos open-source
  • Participe de comunidades (r/ROS, Discord)

📚 Recursos Finais​


🎉 Parabéns!​

Você completou o Tier 2: Operando Humanoides!

Agora você está apto para:

  • Operar robôs humanoides em simulação
  • Monitorar sistemas em tempo real
  • Fazer manutenção preventiva
  • Usar simuladores profissionais

Total de conteúdo: ~3.5 horas
Certificado: [Em breve]
Próximo tier: Tier 3 (Programação Avançada)