The deployment ladder: sim → sim2sim → suspended → floor
Everything in this course becomes a plan: four steps, each with what runs, the criterion to move up, and the reason to stop and go back. In this lesson you write your own ladder in a YAML file, check it with a script, and simulate the queue of steps with a failure in the middle. The safety procedure with the robot powered on is in course 4.
1The four steps and what each lesson in this course delivers to them
2Pass criterion in the command → expected output format
3The queue of steps: if one fails, go back a step
4Your plan with dates
Goal: write the ladder sim → sim2sim → suspended → floor with a pass criterion and a stop criterion at each step, and check it with a script.
01 · The four steps
Click each step. You only move up when the criterion is true.
Click each block in the diagram to see what it does.
If a step fails, go back to the previous one with what you learned: a new identified parameter, a new randomization range, a new criterion.
02 · The queue of steps
Run it, watch a step fail, and run it again. That's the ladder cycle.
to climb
on the step
passed
went back
Illustrative simulation in the browser. The failure on the "Suspended" step is on purpose, to show the return.
03 · Your ladder in YAML
Copy the template to ~/fth/escada.yaml and swap in your robot and your criteria. conferir_escada.py requires the 4 steps in order, with onde, criterio (command → output), and when to stop.
File · kit/escada-modelo.yaml
# escada.yaml — the deployment ladder for your policy (FTH 2, lesson 8)
# Each step: what runs, the criterion to move up (command → expected output) and when to stop and go back.
politica: unitree_rl_lab G1 29 GDL velocity v0 (ONNX)
robo: Unitree G1 EDU (29 GDL)
degraus:
- nome: sim
onde: MuJoCo 3.16 + G1 do Menagerie, com as faixas de randomização do treino
criterio: "python3 kit/randomizar.py --seeds 20 --faixa treino → sobreviveu: 20/20"
parar_se: qualquer queda dentro da faixa do treino
- nome: sim2sim
onde: outro MJCF (unitree_mujoco) e o caminho de mensagens do robô (DDS, rt/lowcmd e rt/lowstate)
criterio: "python3 kit/portao_sim2sim.py --passo 0.001 --dds → PORTÃO: passou (3 de 3 etapas)"
parar_se: queda, velocidade fora de ±0,15 m/s, pernas no limite de torque ou política abaixo de 45 Hz
- nome: suspenso
onde: robô no pórtico, pés fora do chão, elástico ou cabo de segurança
criterio: "ensaio de bancada + sysid → kp identificado e atraso medido; a política mexe as pernas sem bater no limite"
parar_se: junta batendo no limite, vibração, temperatura subindo, atraso maior que o simulado
- nome: chão
onde: piso plano, área isolada, cabo frouxo no pórtico, pessoa no botão de parada
criterio: "teste no chão → 10 s parado + 10 s a 0,3 m/s sem queda, três vezes seguidas"
parar_se: tropeço, queda, qualquer pessoa dentro da área
At the end of the courseGap measured, actuator identified, gate passed and ladder written.
8 lessons
Tap an exercise to see what to do and the "done when".
1/5
Gap
The gap of a ready-made policy, measured, and the coverage of the training randomization compared with the outside world.
1/5
Gap
The gap of a ready-made policy, measured, and the coverage of the training randomization compared with the outside world.
2/5
Actuator
The "real robot" actuator identified on the gantry and the latency measured per step, with the compensation that makes the "real" one walk.
3/5
Gate
The simulator corrected with data and the policy passing through another model and through the manufacturer's DDS.
4/5
Ladder
The twin and the proof on the physics, and the ladder with a criterion to go up and to stop at each step.
5/5
The whole course
Four deliverables in sequence. The ladder is what course 4 (operating) applies to the real robot.
Order matters: the criterion for each step uses the output of an earlier lesson.
06 · Generate your plan with dates
Pick a start date and how much time you have per week. The plan lists the practices for each lesson.
plano.md
07 · Lesson quiz
The explanation appears after your answer.
Question 1 of 3
On which step do you do the bench test, the sysid, and the latency measurement on the real robot?skill
Correct
Hanging, the robot moves its legs with no load and no risk of falling: it's the step for measuring the real actuator.
Not this one
Hanging, the robot moves its legs with no load and no risk of falling: it's the step for measuring the real actuator.Review: The four steps
Question 2 of 3
What makes a step's criterion verifiable?
Correct
If someone else runs the same command and sees the same output, the step passed. "Looks stable" is not a criterion.
Not this one
If someone else runs the same command and sees the same output, the step passed. "Looks stable" is not a criterion.Review: Your ladder in YAML
Question 3 of 3
A step failed (real latency greater than simulated). What does the ladder tell you to do?
Correct
The way back carries the new information downward: the measured latency goes into the simulator (and into the randomization), and the policy climbs the ladder again.
Not this one
The way back carries the new information downward: the measured latency goes into the simulator (and into the randomization), and the policy climbs the ladder again.Review: The queue of steps
Quiz complete
You got {a} of {n} right. Get them all right and the lesson is marked as done.
Pick one answer. The explanation appears after you try.
08 · In three sentences
StepsSim, sim2sim, suspended, and ground, in that order.
CriterionEach step has a command → output to climb and a measurable reason to stop.
BackIf it fails, go back one step with what you measured; course 4 applies the ladder to the robot.