Todo humanoide en pruebas se cae. Lo que separa a un laboratorio preparado de un robot roto es lo que hace el software en los primeros décimos de segundo y lo que hacen las personas después. En esta clase el G1 simulado se cae de verdad, y tu detector por IMU manda amortiguación sin intentar frenar el tumbo.
1Por qué mantener una pose con PD no es equilibrio
2Inclinación con umbral: demasiado pronto × demasiado tarde
3Amortiguar en vez de bloquear los motores
4Levantar es un procedimiento humano, después de la inspección
Objetivo: detectar la caída del G1 por la inclinación de la IMU y mandar amortiguación, sin intentar levantarse solo.
01 · De la inclinación a la inspección
Haz clic en cada etapa.
Haz clic en cada bloque del diagrama para ver qué hace.
Lo que el robot hace solo termina en la amortiguación. Lo demás es cosa de las personas.
02 · Tres cosas que enseña la caída
Haz clic en cada una.
1. El PD no equilibra
En la práctica de esta clase, el script sostiene la pose inicial con las ganancias del ejemplo oficial. Suelto de la banda elástica, el G1 del simulador cae enseguida, sin ningún empujón.
Mantenerse de pie exige control de equilibrio: el del fabricante (alto nivel) o tu policy (cursos 1 y 2).
2. Umbral
Un umbral bajo se dispara con el balanceo normal y detiene la prueba sin motivo. Un umbral demasiado alto solo actúa cuando el robot ya está en el suelo, o nunca.
La pestaña "Error común" muestra el umbral de 170°: el robot cayó y el detector nunca se disparó, con los motores rígidos todo el tiempo.
3. Después
Detener la sesión, ver a las personas, registrar con fotos y el MCAP, no volver a encender sin inspección, encontrar la causa.
Solo entonces el robot vuelve al pórtico. Este paso entra en tu plan de implantación (clase 8) como condición de parada.
03 · Soltar, caer, detectar
El simulador sostiene al G1 en la banda elástica con los pies en el suelo y lo suelta en t = 3 s. El queda.py sostiene la pose con PD, vigila la inclinación y amortigua al pasar de 40°.
incl = op.inclinacao(s.imu_state.quaternion)
incl_max = max(incl_max, incl)
t = t_ciclo - inicio
if t10 is None and incl > 10:
t10 = t
if caiu is None and incl > a.limite:
caiu = t
simulador: G1 29 motores · DDS domínio 1 em lo · 12 s · suspenso: não · elástico solta em t = 3 s
segurando a pose inicial com PD · limiar de queda: 40° de inclinação do tronco
queda detectada: inclinação passou de 40° (≈ 500 ms depois de passar de 10°)
amortecimento enviado: kp=0, kd=2 em todos os motores (sem tentar levantar)
no fim: inclinação acima de 40°: sim · motores amortecidos
saída: 0
simulador: fim em t = 12.0 s · robô no chão
La caída tarda cerca de medio segundo de los 10° a los 40°. El detector actúa en medio del tumbo y el robot termina en el suelo con los motores amortiguados.
segurando a pose inicial com PD · limiar de queda: 170° de inclinação do tronco
nenhuma queda detectada: o limiar de 170° nunca foi atingido · motores continuaram rígidos
saída: 1
El robot cayó igual, pero el umbral nunca se alcanzó: ninguna amortiguación, motores rígidos durante el impacto, código 1.
04 · Práctica
Caer a propósito, en el simulador.
E1 · Detectar la caída
5 min
Ejecuta el bloque del detector y anota cuánto tardó el tumbo de los 10° a los 40°.
Listo cuando:python3 kit/queda.py; echo "saída: $?" → queda detectada: inclinação passou de 40°, amortecimento enviado y saída: 0.
E2 · El umbral equivocado
5 min
Ejecuta el bloque del error común y escribe, en una línea, qué umbral usarías en tu robot y por qué.
En tu ~/fth/checklist.yaml, agrega al ítem 8 el umbral elegido y quién decide volver a encender después de una caída.
Listo cuando:python3 operar/kit/conferir_checklist.py checklist.yaml sigue en 12 itens, 0 em branco.
05 · Prueba de la clase
La explicación aparece después de tu respuesta.
Pregunta 1 de 4
El script sostuvo la pose con PD y el G1 se cayó igual. ¿Por qué?competencia
Correcto
El PD en cada articulación mantiene ángulos, no el centro de masa sobre los pies. Mantenerse de pie exige un controlador de equilibrio o una policy entrenada.
No es esa
El PD en cada articulación mantiene ángulos, no el centro de masa sobre los pies. Mantenerse de pie exige un controlador de equilibrio o una policy entrenada.Repasar: Tres cosas que enseña la caída
Pregunta 2 de 4
¿Por qué el detector usa la IMU y no la altura de la pelvis?
Correcto
En el simulador la altura sale gratis; en el robot real no. El detector tiene que usar lo que existe en los dos: el quaternion de la IMU.
No es esa
En el simulador la altura sale gratis; en el robot real no. El detector tiene que usar lo que existe en los dos: el quaternion de la IMU.Repasar: De la inclinación a la inspección
Pregunta 3 de 4
Una vez detectada la caída, ¿qué manda el kit a los motores?
Correcto
Amortiguar deja que el cuerpo se asiente en vez de pelear con el tumbo; es lo que hace el Damp() del alto nivel. Levantarlo es un procedimiento humano, después de la inspección.
No es esa
Amortiguar deja que el cuerpo se asiente en vez de pelear con el tumbo; es lo que hace el Damp() del alto nivel. Levantarlo es un procedimiento humano, después de la inspección.Repasar: Soltar, caer, detectar
Pregunta 4 de 4
Con un umbral de 170°, ¿qué pasó?
Correcto
El torso no llega a 170° de inclinación tumbado en el suelo. Un umbral demasiado alto es igual a no tener detector.
No es esa
El torso no llega a 170° de inclinación tumbado en el suelo. Un umbral demasiado alto es igual a no tener detector.Repasar: Soltar, caer, detectar
Prueba completada
Acertaste {a} de {n}. Si aciertas todas, la clase se marca como completada.
Elige una alternativa. La explicación aparece después de tu intento.
06 · En tres frases
CaeEl PD sosteniendo la pose no equilibra: suelto, el G1 cae.
DetectaInclinación de la IMU por encima del umbral → amortiguación.
DespuésDetener, inspeccionar, registrar; levantarlo es cosa de las personas.