E1 · Com pórtico
5 minRode o replay do boxe com a pelve no pórtico.
Pronto quando: python3 kit/reproduzir.py ~/fth/movimentos/boxe_g1.npz | tail -2 → erro médio de junta: 0.3° e queda: não.
Aula 4 · 15 min
Ter o movimento no formato do robô não é fazê-lo executar. Mandando só os ângulos para os motores, ele imita por um segundo e cai: ninguém cuida do equilíbrio. Nesta aula você reproduz o boxe no MuJoCo com e sem pórtico, mede o erro de cada junta e vê o que BeyondMimic, GMT e SONIC resolvem.
Começar a aula
Objetivo: reproduzir o movimento no MuJoCo com e sem pórtico e explicar por que é preciso uma política de rastreio.
Clique em cada bloco.
Pórtico virtual = a base é recolocada na pose da referência a cada passo, como um robô suspenso no primeiro teste.
Clique em cada um. Todos treinam em GPU; aqui são mostrados, não rodados.
Rastreia movimentos dinâmicos (giro, corrida, estrela) e usa uma política de difusão guiada para tarefas sem treino específico (arXiv 2508.08241, ago/2025). O repositório whole_body_tracking fixa o Isaac Lab 2.1.0.
Em 15/10/2026 o README desse repositório diz que ele foi aposentado: o rastreio do BeyondMimic continua no mjlab, na tarefa Mjlab-Tracking-Flat-Unitree-G1.
Rastreio geral com amostragem adaptativa (movimentos fáceis × difíceis) e uma camada de mistura de especialistas (arXiv 2506.14770, jun/2025). Relatado pela pesquisa da formação a partir do resumo do artigo.
Da NVIDIA: 42M parâmetros, treinado com mais de 100M de quadros (cerca de 700 h). Tem três checkpoints públicos para o G1 (original, baixa latência e v1.1 de 23/07/2026), tokens de 64 dimensões e controlador a 50 Hz.
Implantação em C++ e TensorRT; código Apache-2.0, pesos sob a NVIDIA Open Model License (uso comercial com atribuição).
O GMR exporta CSV para o BeyondMimic, cujo pipeline de imitação o mjlab adotou. O seu .npz da aula 3 é o mesmo dado num formato próprio do kit.
As juntas recebem a referência a cada passo de 2 ms; a base é recolocada na pose da referência. O erro é a diferença entre o ângulo medido e o da referência no passo seguinte.
F=${FTH:-$HOME/fth}; cd $F/corpo-inteiro && . $F/.venv/bin/activate
python3 kit/reproduzir.py $F/movimentos/boxe_g1.npz; echo "saída: $?" if a.modo == "portico":
fth.portico(d, r[:7])
d.ctrl[mot] = r[adr]
mujoco.mj_step(m, d)movimento: boxe_g1.npz · 1200 quadros a 120 Hz · 10.0 s · modo portico passos de física: 4995 (2 ms cada) erro médio de junta: 0.3° · pior junta: right_shoulder_roll_joint (1.9°) queda: não saída: 0
Erro médio de 0,3°: com o corpo sustentado, o PD dá conta. O ombro direito, que mais se mexe no boxe, é o pior.
movimento: boxe_g1.npz · 1200 quadros a 120 Hz · 10.0 s · modo livre passos de física: 839 (2 ms cada) erro médio de junta: 0.5° · pior junta: right_shoulder_roll_joint (2.8°) queda: sim, em t = 1.68 s saída: 0
O mesmo replay, solto: cai em 1,68 s com erro de junta ainda pequeno. Seguir os ângulos não é equilibrar. É isso que a política de rastreio aprende.
Comando do README do mjlab (commit 8bb2bc9, 18/10/2026). Pede GPU NVIDIA e uma conta no WandB para o registro dos movimentos; não foi rodado aqui e não é pré-requisito do curso.
# github.com/mujocolab/mjlab · README (commit 8bb2bc9, 18/10/2026) uv run train Mjlab-Tracking-Flat-Unitree-G1 --registry-name your-org/motions/motion-name --env.scene.num-envs 4096 uv run play Mjlab-Tracking-Flat-Unitree-G1 --wandb-run-path your-org/mjlab/run-id
Medir com e sem pórtico.
Rode o replay do boxe com a pelve no pórtico.
Pronto quando: python3 kit/reproduzir.py ~/fth/movimentos/boxe_g1.npz | tail -2 → erro médio de junta: 0.3° e queda: não.
Rode com --modo livre e anote o instante da queda.
Pronto quando: python3 kit/reproduzir.py ~/fth/movimentos/boxe_g1.npz --modo livre | tail -1 → queda: sim, em t = 1.68 s.
Se você fez o E3 da aula 3, reproduza boxe_trecho2.npz com pórtico e compare o erro médio e a pior junta.
Pronto quando: python3 kit/reproduzir.py ~/fth/movimentos/boxe_trecho2.npz | grep erro → erro médio de junta: 1.5°.
A explicação aparece depois da sua resposta.
Pergunta 1 de 3
Sem pórtico, o erro de junta é pequeno e mesmo assim o G1 cai. Por quê?competência
Pergunta 2 de 3
Onde está hoje o rastreio do BeyondMimic, segundo o README do repositório original?
Pergunta 3 de 3
O que o pórtico virtual do kit faz?
Escolha uma alternativa. A explicação aparece depois da sua tentativa.