FTH 3 · Corpo inteiro|INEMA.CLUB-PRO

Aula 7 · 15 min

Quando um VLA manda no corpo inteiro

Um VLA vê a cena, entende o pedido e propõe uma ação, poucas vezes por segundo. Quem transforma isso em movimento seguro de 29 juntas, sem cair, é o controle de corpo inteiro. Nesta aula você manda comandos de alto nível ao G1 simulado e vê o que ele executa e o que recusa antes de mexer.

Começar a aula
Robô humanoide de visor escuro colocando com cuidado uma caneca numa bancada, com um monitor desfocado em primeiro plano.

Nesta aula você vai

  1. 1O que o VLA entrega para baixo: alvos, tokens ou ações
  2. 2WBC desacoplado: pernas por RL, braços por IK
  3. 3A camada de baixo confere antes de executar
  4. 4O fluxo VLA ponta a ponta no G1 (GR00T N1.7 + SONIC)

Objetivo: mandar comandos de alto nível a um controle de corpo inteiro simulado e ver quais ele executa e quais recusa.

01Do pedido ao movimento

Clique em cada bloco.

Clique em cada bloco do diagrama para ver o que ele faz.

O VLA propõe; o controle de corpo inteiro confere e executa. A segurança não pode depender só do modelo de cima.

02Como isso está montado em 2026

Clique em cada caso. Fatos com fonte; detalhes do VLA no vla-v72.

1. Figure

Três camadas: S2 lento, S1 emitindo alvos de junta a 200 Hz e S0 aprendido a 1 kHz, que substituiu 109.504 linhas de C++ (27/01/2026).

O S0 foi treinado com mais de 1.000 h de movimento humano retargeted e RL sim-to-real: as aulas 2 a 4 deste curso em escala industrial.

03Quatro comandos de alto nível

O arquivo de comandos faz o papel da saída de um VLA. O comando_wbc.py confere cada um, executa em 1 s (rampa + correção em malha fechada a 50 Hz) e diz se a mão chegou.

Terminal · executar comandos
F=${FTH:-$HOME/fth}; cd $F/corpo-inteiro && . $F/.venv/bin/activate
python3 kit/comando_wbc.py; echo "saída: $?"
Arquivo · kit/comandos.json
{
  "descricao": "Saída de alto nível, como a de um VLA a poucos Hz: o QUÊ fazer. Alvos da mão em metros, relativos à pelve (x para a frente, y para a esquerda, z para cima).",
  "comandos": [
    {"acao": "alcancar", "mao": "direita", "alvo_m": [0.30, -0.20, 0.15]},
    {"acao": "girar_tronco", "graus": 20},
    {"acao": "alcancar", "mao": "esquerda", "alvo_m": [0.30, 0.25, 0.20]},
    {"acao": "voltar"}
  ]
}
Exemplo do repositório
comando 1 · alcancar direita (0.3, -0.2, 0.15) → executado: sim (mão a 1.1 cm do alvo)
comando 2 · girar_tronco 20° → executado: sim
comando 3 · alcancar esquerda (0.3, 0.25, 0.2) → executado: sim (mão a 1.0 cm do alvo)
comando 4 · voltar → executado: sim
robô de pé: sim · pelve a 0.79 m
executado: sim
saída: 0

Quatro comandos, quatro execuções, mão a cerca de 1 cm de cada alvo e o robô de pé no fim.

04Prática

Executar, recusar, escrever o seu.

E1 · Comandos do kit

5 min

Rode os quatro comandos do kit.

Pronto quando: python3 kit/comando_wbc.py; echo "saída: $?" → executado: sim e saída: 0.

E2 · Comandos ruins

5 min

Rode o arquivo de comandos ruins e leia o motivo de cada recusa.

Pronto quando: python3 kit/comando_wbc.py --comandos kit/comandos-ruins.json | tail -1 → executado: não · 3 comando(s) recusado(s).

E3 · A sua sequência

10 min

Escreva ~/fth/movimentos/meus-comandos.json com cinco comandos (as duas mãos, um giro de tronco e voltar) e rode. Se algum for recusado, o motivo diz a distância até o ombro: o braço alcança 0,38 m até o punho.

Pronto quando: python3 kit/comando_wbc.py --comandos ~/fth/movimentos/meus-comandos.json | tail -1 → executado: sim.

05Teste da aula

A explicação aparece depois da sua resposta.

Pergunta 1 de 3

O VLA manda alcançar um ponto a 92 cm do ombro. O que a camada de baixo deve fazer?competência

06Em três frases

O quê × comoO VLA diz o quê; o controle de corpo inteiro decide o como.
ContratoA interface (alvos, tokens) é o que liga um ao outro.
ConferirA camada de baixo recusa o que não dá para fazer, antes de mexer.

Para ir além

Aula anteriorPróxima aula