Documentação

Fundamentos e Extensões

Aviso de segurança, objetivo do sistema e extensões da Sprint 4 (HTTP/WiFi e emotes)

Kill Switch: Fundamentos e Extensões

AVISO: O acionamento deste botão de emergência resulta em uma parada brusca (Dump Mode) que pode causar danos mecânicos ao robô. Esta é uma medida de último recurso, mas obrigatória para garantir a segurança física dos humanos presentes durante o tour. A segurança humana tem prioridade absoluta sobre a preservação do equipamento.

1. Objetivo do Sistema

1. Objetivo do Sistema

O Kill Switch é um mecanismo crítico de segurança projetado para interromper imediatamente as operações do robô Unitree em situações de risco iminente.

Sprint 4 implementou o Botão Físico Local conectado via USB-C. Sprint 5 estende o sistema com redundância sem fio:

  • Botão Físico Wireless: Hardware independente (Metaltex + ESP32C3) que opera via WiFi.
  • Botão do Aplicativo: Interface de software para acionamento remoto.
  • Sistema de Emotes: Interação e feedback visual do robô.

2. Extensões da Sprint 4

O sistema agora opera em três canais que convergem para o mesmo resultado de segurança:

  1. Botão Físico Local (USB): Conexão direta via Serial.
  2. Botão Físico Wireless (WiFi): Mesmo hardware da Sprint 1, mas enviando comandos via HTTP POST.
  3. Botão do Aplicativo: Interface digital via rede WiFi.

2.1 Protocolo HTTP/WiFi

Foi adicionado um segundo canal de comunicação via HTTP/WiFi, permitindo acionamento remoto do Kill Switch através de aplicativo ou interface web.

Características:

  • Comunicação via rede WiFi Unitree
  • Endpoints REST simples
  • Máquina de estados para evitar duplicatas
  • Rate limiting para proteção

2.2 Dual-Channel Redundância

Ambos os canais (Serial + HTTP) convergem para o mesmo resultado:

┌─────────────────────────────────────────────────────────┐
│              Kill Switch - Dual Channel                 │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  ┌──────────────┐              ┌──────────────┐       │
│  │ Serial Input │              │ HTTP Server  │       │
│  │ /dev/ttyAM0  │              │ :3000        │       │
│  └──────┬───────┘              └──────┬───────┘       │
│         │                             │               │
│         └─────────────┬───────────────┘               │
│                       │                               │
│                ┌──────▼──────┐                        │
│                │  Callbacks  │                        │
│                │  (Flip-Flop)│                        │
│                └──────┬──────┘                        │
│                       │                               │
│         ┌─────────────▼──────────────┐               │
│         │  MPSC Channel (RosCommand) │               │
│         └─────────────┬──────────────┘               │
│                       │                               │
│         ┌─────────────▼──────────────┐               │
│         │  ROS 2 /api/sport/request  │               │
│         │  - Dump Mode               │               │
│         │  - Recover from Fall       │               │
│         └────────────────────────────┘               │
│                                                         │
└─────────────────────────────────────────────────────────┘

Vantagens:

  • Redundância: Se um canal falhar, o outro continua funcionando
  • Flexibilidade: Operador escolhe o canal mais apropriado
  • Confiabilidade: Ambos garantem a mesma resposta

2.3 Sistema de Emotes

Foi criado um sistema de emotes que permite ao robô expressar movimentos e emoções através de HTTP.

Emotes Disponíveis:

EmoteIDDescrição
Hello1016Movimento de oi
Stretch1017Se espreguiça
Content1020Expressão feliz
Wallow1021Rola no chão
Dance11022Dança 1
Dance21023Dança 2
Pose1028Pose
Scrape1029Esfrega a bunda

Características:

  • 8 movimentos diferentes
  • Rate limiting de 20 segundos entre emotes
  • Integração com ROS 2
  • Endpoints HTTP simples

3. Integração

A Sprint 5 estende a Sprint 4, mantendo toda a funcionalidade anterior:

AspectoSprint 4Sprint 5
Canal Serial✅ Implementado✅ Mantido
Botão Físico✅ Implementado✅ Mantido
ROS 2✅ Implementado✅ Mantido
Canal HTTP❌ NãoNOVO
Emotes❌ NãoNOVO
Dual-Channel❌ NãoNOVO