FTH 1 · Ensinar a andar|INEMA.CLUB-PRO

Aula 8 · 16 min

Currículo de terreno e o seu plano de treino

Ninguém treina marcha em escada no primeiro dia: o terreno e a velocidade pedida crescem conforme a política acerta. Nesta aula você mede até que degrau a política pronta vai, lê como o mjlab e o unitree_rl_lab sobem de nível, e escreve o seu plano de treino num arquivo que um script confere.

Começar a aula
Pista de teste num laboratório escuro com rampa de madeira, degraus baixos e pedriscos, e um robô humanoide subindo o primeiro degrau preso a um trilho de segurança.

Nesta aula você vai

  1. 1Degraus de 2 e 3 cm passam; de 4 cm em diante, queda
  2. 2Currículo: sobe quem andou mais de 80 % do pedido, desce quem andou menos de 50 %
  3. 3Currículo de comando: a faixa de velocidade abre 0,1 m/s por vez
  4. 4O plano-treino.md com robô, comando, recompensa, currículo e avaliação

Objetivo: medir o degrau máximo da política pronta, ler as regras de currículo e escrever um plano de treino com 5 campos que o conferir_plano.py aprova.

01Um currículo de terreno

Clique em cada nível. Cada robô sobe ou desce de nível sozinho, pelo que andou.

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

Regras lidas do código: mjlab mdp/curriculums.py (commit 8bb2bc9) e unitree_rl_lab velocity_env_cfg.py (commit 4960b84).

02Até que degrau a política pronta vai

O terreno.py monta, com o MjSpec, uma plataforma de altura h a 1,5 m do robô e manda andar 8 s a 0,5 m/s. Passou = não caiu e a pelve chegou em cima (x > 2,5 m).

Terminal · cinco degraus
F=${FTH:-$HOME/fth}; cd $F/locomocao && . $F/.venv/bin/activate
python3 kit/terreno.py --degraus 0.02 0.03 0.04 0.06 0.10; echo "saída: $?"
Exemplo do repositório
política: unitree_rl_lab velocity v0 (ONNX) · comando vx = 0.5 m/s · 8 s · degrau a 1.5 m
degrau    2 cm: passou (pelve em x = 3.4 m)
degrau    3 cm: passou (pelve em x = 4.1 m)
degrau    4 cm: caiu (pelve em x = 2.0 m)
degrau    6 cm: caiu (pelve em x = 2.0 m)
degrau   10 cm: caiu (pelve em x = 2.2 m)
degraus vencidos: 2/5
saída: 0

2 e 3 cm passam; de 4 cm em diante, o robô cai em x ≈ 2 m, antes de subir na plataforma. Os degraus que reprovam são os próximos níveis de um currículo: é para eles que se treina de novo.

03Como os repositórios sobem de nível

Dois currículos rodam juntos no treino de verdade. Clique em cada um.

1. Terreno

No mjlab, no fim de cada episódio, o robô que andou mais de 80 % da distância pedida sobe um nível de terreno; o que andou menos de 50 % desce. Cada robô tem o seu nível: no mesmo treino, uns estão no plano e outros nos pedriscos.

04O seu plano de treino

Copie o modelo para ~/fth/treino, troque cada [colchete] pelo seu valor e confira. O exemplo do kit mostra um plano que passa.

Arquivo · kit/plano-treino-modelo.md
# Plano de treino de locomoção

Robô: [qual humanoide e qual arquivo, ex.: Unitree G1 29 GDL, unitree_g1/scene.xml do Menagerie 62ab00f]
Comando: [faixa de velocidade, ex.: vx de -0.5 a 1.0 m/s, vy de -0.3 a 0.3 m/s, giro de -0.2 a 0.2 rad/s]
Recompensa: [termos e pesos, ex.: track_linear_velocity 2.0, upright 1.0, action_rate_l2 -0.1]
Currículo: [níveis em ordem, separados por →, ex.: plano → degrau de 5 cm → rampa → pedriscos]
Avaliação: [critério de aprovação com número, ex.: 18/20 episódios de pé com empurrão de 1.0 m/s]
Terminal · copiar e conferir
F=${FTH:-$HOME/fth}; cd $F/locomocao && . $F/.venv/bin/activate
[ -f $F/treino/plano-treino.md ] || cp kit/plano-treino-modelo.md $F/treino/plano-treino.md
python3 kit/conferir_plano.py $F/treino/plano-treino.md; echo "saída: $?"
Terminal · o exemplo do kit
F=${FTH:-$HOME/fth}; cd $F/locomocao && . $F/.venv/bin/activate
python3 kit/conferir_plano.py kit/exemplos/plano-treino.md; echo "saída: $?"
Exemplo do repositório
FALTA Robô: não preenchido
FALTA Comando: não preenchido
FALTA Recompensa: não preenchido
FALTA Currículo: não preenchido
FALTA Avaliação: não preenchido
campos ok: 0/5
incompleto
saída: 1

Com o modelo ainda cheio de [colchetes], os cinco campos faltam e o script sai com 1. Regras: comando com número e m/s, recompensa com 2 ou mais termos do kit, currículo com 3 ou mais níveis separados por →, avaliação com um critério numérico (X/N ou %).

05O que você montou neste curso

Quatro entregas. Clique em cada uma para ver o "pronto quando".

Aulas 1–2Política

e PD

3 exercícios

caiu: não; de pé com PD.

Ver a aula
Aulas 3–4Ambiente

e recompensa

3 exercícios

96 → 29; parado 42,32.

Ver a aula
Aulas 5–6Treino

e curvas

3 exercícios

modelo_20.pt; 1 alerta lido.

Ver a aula
Aulas 7–8Teste

e plano

3 exercícios

20/20; plano ok.

Ver a aula
Ao final do cursoPolítica rodada, recompensa medida, treino lido, teste e plano escritos.
8 aulas
Clique num exercício para ver o que fazer e o "pronto quando".
  1. 1/5

    Política

    A política pronta andando no MuJoCo e o PD de junta medido, com os ganhos da política entendidos.

  2. 2/5

    Ambiente

    As quatro peças do ambiente e a recompensa medida termo a termo, com o peso que vira o jogo.

  3. 3/5

    Treino

    Um treino PPO em CPU com checkpoint e as curvas lidas, com a recompensa hackeada reconhecida.

  4. 4/5

    Teste

    A política avaliada com empurrão e degrau e o seu plano de treino conferido.

  5. 5/5

    O curso inteiro

    Quatro entregas em sequência. O curso 2 leva a política deste curso do simulador ao chão.

A ordem importa: o plano da aula 8 usa a recompensa da aula 4 e o teste da aula 7.

06Gere o seu plano de estudo com datas

Escolha a data de início e quanto tempo você tem por semana. O plano lista as práticas de cada aula.

07Prática

Medir o limite e planejar o próximo treino.

E1 · O degrau máximo

5 min

Rode os cinco degraus e anote o maior que a política vence.

Pronto quando: python3 kit/terreno.py --degraus 0.02 0.03 0.04 0.06 0.10; echo "saída: $?" → degraus vencidos: 2/5 e saída: 0.

E2 · O plano reprovado

2 min

Copie o modelo e confira antes de preencher, para ver o script reprovar.

Pronto quando: a saída mostra campos ok: 0/5, incompleto e saída: 1.

E3 · O seu plano

20 min

Preencha o ~/fth/treino/plano-treino.md com as suas escolhas: um currículo que comece no plano e passe pelos degraus que reprovaram no E1, e uma avaliação com número.

Pronto quando: python3 kit/conferir_plano.py $F/treino/plano-treino.md; echo "saída: $?" → campos ok: 5/5, ok e saída: 0.

08Teste da aula

A explicação aparece depois da sua resposta.

Pergunta 1 de 3

No currículo de terreno do mjlab, quando um robô sobe de nível?competência

09Em três frases

LimiteA política pronta vence degraus de 2 e 3 cm e cai a partir de 4 cm.
CurrículoTerreno sobe com 80 % da distância e desce com menos de 50 %; o comando abre 0,1 m/s por vez.
PlanoRobô, comando, recompensa, currículo e avaliação escritos e conferidos antes de treinar.

Para ir além

Aula anteriorVoltar ao início do curso