FTH 0 · O corpo do humanoide|INEMA.CLUB-PRO

Aula 3 · 15 min

Graus de liberdade, juntas e limites

"23 a 43 graus de liberdade" é propaganda; a árvore de juntas do arquivo é o corpo que o seu controlador vai comandar. Nesta aula você lista as 29 juntas do G1 com limites em graus e torque máximo, entende por que a perna tem seis e confere que o número bate com os atuadores.

Começar a aula
Perna de robô humanoide industrial sobre bancada, com quadril, joelho e tornozelo à mostra e um transferidor de metal ao lado.

Nesta aula você vai

  1. 1A árvore de corpos: pelve, pernas, cintura e braços
  2. 2Por que a perna tem 6 juntas e em que ordem
  3. 3Limite em radiano no arquivo, em grau na sua cabeça
  4. 4Graus de liberdade do arquivo × da ficha do fabricante

Objetivo: listar as juntas do G1 com limites em graus e torque máximo e conferir que o número de juntas articuladas bate com nu.

01As 29 juntas do G1 do Menagerie

Cada bloco é um ramo da árvore que começa na pelve. Clique para ver as juntas.

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

12 nas pernas + 3 na cintura + 14 nos braços = 29 = nu.

02Como ler uma linha da árvore

Clique em cada etapa.

1. Nome

left_hip_roll_joint: perna esquerda, quadril, rotação em roll (inclinar para o lado). Pitch dobra para frente e para trás; yaw gira em torno do eixo vertical.

A indentação da saída mostra quem está pendurado em quem: o tornozelo depende do joelho, que depende do quadril.

03A árvore do G1

O juntas.py lê tudo do MJCF e imprime uma linha por junta.

Terminal · listar as juntas
F=${FTH:-$HOME/fth}; cd $F/anatomia && . $F/.venv/bin/activate
python3 kit/juntas.py unitree_g1/scene.xml; echo "saída: $?"
Exemplo do repositório
unitree_g1/scene.xml · 29 juntas articuladas
junta                                        mín°   máx°  torque máx (N·m)
  left_hip_pitch_joint                       -145    165                88
    left_hip_roll_joint                       -30    170               139
      left_hip_yaw_joint                     -158    158                88
        left_knee_joint                        -5    165               139
          left_ankle_pitch_joint              -50     30                50
            left_ankle_roll_joint             -15     15                50
  right_hip_pitch_joint                      -145    165                88
    right_hip_roll_joint                     -170     30               139
      right_hip_yaw_joint                    -158    158                88
        right_knee_joint                       -5    165               139
          right_ankle_pitch_joint             -50     30                50
            right_ankle_roll_joint            -15     15                50
  waist_yaw_joint                            -150    150                88
    waist_roll_joint                          -30     30                50
      waist_pitch_joint                       -30     30                50
        left_shoulder_pitch_joint            -177    153                25
          left_shoulder_roll_joint            -91    129                25
            left_shoulder_yaw_joint          -150    150                25
              left_elbow_joint                -60    120                25
                left_wrist_roll_joint        -113    113                25
                  left_wrist_pitch_joint      -93     93                 5
                    left_wrist_yaw_joint      -93     93                 5
        right_shoulder_pitch_joint           -177    153                25
          right_shoulder_roll_joint          -129     91                25
            right_shoulder_yaw_joint         -150    150                25
              right_elbow_joint               -60    120                25
                right_wrist_roll_joint       -113    113                25
                  right_wrist_pitch_joint     -93     93                 5
                    right_wrist_yaw_joint     -93     93                 5
RESUMO: 29 juntas articuladas + 1 base flutuante · nu=29 · bate com nu: sim
saída: 0

04Prática

Ler a árvore e tirar conclusões dela.

E1 · A árvore do G1

5 min

Rode o bloco "listar as juntas" e marque na saída as 6 juntas de uma perna.

Pronto quando: a última linha é RESUMO: 29 juntas articuladas + 1 base flutuante · nu=29 · bate com nu: sim e saída: 0.

E2 · A árvore do H1

5 min

Rode o mesmo script no H1 e compare: quantas juntas tem a perna dele e qual o maior torque declarado?

Pronto quando: python3 kit/juntas.py unitree_h1/scene.xml | tail -1 → RESUMO: 19 juntas articuladas + 1 base flutuante · nu=19 · bate com nu: sim.

E3 · A junta mais apertada

5 min

Ache no G1 a junta da perna com a menor faixa de movimento e explique por que ela é pequena.

Pronto quando: python3 kit/juntas.py | grep ankle_roll mostra -15 15 nas duas linhas, e você escreveu uma frase sobre o porquê.

05Teste da aula

A explicação aparece depois da sua resposta.

Pergunta 1 de 3

O G1 do Menagerie tem njnt=30 e nu=29. De onde vem a diferença?competência

06Em três frases

ÁrvorePelve livre, 6 por perna, 3 na cintura, 7 por braço no G1 do Menagerie.
LimitesRange em radianos e torque em actuatorfrcrange, lidos do arquivo.
ConferênciaJuntas articuladas = nu; a base não conta.

Para ir além

Aula anteriorPróxima aula