Joelho e punho não pedem o mesmo motor. Nesta aula você vê os quatro tipos de atuador que aparecem em humanoides e onde cada um costuma vencer, aprende como o MJCF descreve um motor e mede, por simulação, quanto torque o joelho do G1 faz para segurar o robô agachado.
1QDD, harmônico, planetário e linear: o mapa do corpo
2position × motor no MJCF: kp, ctrlrange, forcerange, actuatorfrcrange
3Torque do joelho de 0° a 90° de agachamento
4Dois caminhos que têm de bater: simular parado e mj_inverse
Objetivo: medir o torque de cada junta do G1 agachado e comparar com o limite que o MJCF declara para ela.
01 · Cada tipo vence numa articulação
O setor não convergiu num atuador único, e sim num mapa do corpo (relatório da humanoid.guide, relatado). Clique em cada tipo.
Clique em cada bloco do diagrama para ver o que ele faz.
Tudo neste mapa vem de relatório setorial e de fornecedores: é tendência, não especificação.
02 · Como o MJCF descreve um motor
Clique em cada atributo.
1. position
O G1 do Menagerie usa atuadores de posição: você manda o ângulo-alvo em ctrl e o MuJoCo aplica um controle proporcional com kp=500 e amortecimento crítico (dampratio=1).
É o mesmo esquema das políticas de RL de humanoide: a rede manda alvos de junta e um PD no robô vira isso em torque (curso 1 da formação).
2. motor
O H1 do Menagerie usa atuadores de torque: ctrl já é o torque, de -200 a 200 N·m no quadril e -300 a 300 no joelho.
Sem um controlador seu, o H1 desaba no primeiro segundo. O G1 fica de pé sozinho porque os atuadores de posição seguram a pose "stand".
3. ctrlrange
Em atuador de posição, inheritrange="1" copia a faixa da junta para o comando: o alvo nunca sai do limite mecânico.
Em atuador de torque, a faixa do comando é a faixa de torque.
4. actuatorfrcrange
No G1 o teto de torque está na junta (actuatorfrcrange="-139 139" no joelho). Mesmo que o proporcional peça mais, o MuJoCo corta ali.
É esse número que o script usa para calcular a porcentagem do limite.
O torque_agachado.py parte da pose "stand", dobra o joelho (quadril e tornozelo dobram a metade, para o pé ficar plano), segura 2 s e lê o torque de cada junta. Depois confere o maior por dinâmica inversa.
Terminal · joelho a 90°
F=${FTH:-$HOME/fth}; cd $F/anatomia && . $F/.venv/bin/activate
python3 kit/torque_agachado.py --joelho 90
Terminal · de 0° a 120°
F=${FTH:-$HOME/fth}; cd $F/anatomia && . $F/.venv/bin/activate
for k in 0 30 60 90 120; do
echo "joelho $k°: $(python3 kit/torque_agachado.py --joelho $k | grep -E '^joelhos|^ATENÇÃO' | tr '\n' ' ')"
done
Exemplo do repositório
joelho dobrado 90° · altura da pelve 0.59 m · 8 contatos com o chão
junta torque (N·m) limite % do limite
left_knee_joint 31 139 22%
right_knee_joint 31 139 22%
left_hip_pitch_joint 2 88 2%
right_hip_pitch_joint 2 88 2%
conferência mj_inverse (left_knee_joint): 31 N·m
joelhos: esquerdo 31 N·m · direito 31 N·m
maior torque: left_knee_joint 31 N·m
31 N·m em cada joelho, 22 % do teto do modelo. Simular parado e mj_inverse dão o mesmo valor: é o sinal de que a pose está em equilíbrio.
O torque sobe quase em linha reta até 90°. A 120° o robô caiu sentado e o "torque" lido despenca: número de robô caído não é medida. Por isso o script avisa quando a pelve fica abaixo de 0,4 m.
04 · Prática
Medir, varrer e comparar com o robô real.
E1 · Joelho a 90°
3 min
Rode o bloco "joelho a 90°" e confira se os dois caminhos (simulação parada e mj_inverse) concordam.
Pronto quando:python3 kit/torque_agachado.py --joelho 90 termina em maior torque: left_knee_joint 31 N·m, com conferência mj_inverse (left_knee_joint): 31 N·m.
E2 · A curva do joelho
5 min
Rode a varredura e anote numa tabela o torque do joelho em cada ângulo. Em que ângulo o robô deixa de agachar e cai?
Pronto quando: a varredura mostra joelho 60°: joelhos: esquerdo 21 N·m · direito 21 N·m e a linha de 120° mostra ATENÇÃO: o robô caiu.
E3 · Modelo × robô real
5 min
Revendas citam 90 N·m de pico no joelho do G1 base e 120 N·m no EDU (relatado). Calcule quanto os 31 N·m do agachamento representam em cada caso e diga se sobra margem para pular.
Pronto quando: você anotou três porcentagens (22 % do modelo, cerca de 34 % do base e 26 % do EDU) e uma frase sobre margem, citando que os números de revenda são relatados.
05 · Teste da aula
A explicação aparece depois da sua resposta.
Pergunta 1 de 4
Por que o G1 do Menagerie fica de pé sem nenhum controlador seu, e o H1 não?competência
Correto
Atuador de posição com kp=500 já é um controlador. No H1, ctrl é torque: com zero, ele desaba. Peso e sensores não mudam isso.
Não é essa
Atuador de posição com kp=500 já é um controlador. No H1, ctrl é torque: com zero, ele desaba. Peso e sensores não mudam isso.Rever: Como o MJCF descreve um motor
Pergunta 2 de 4
Onde o redutor harmônico costuma aparecer num humanoide?
Correto
O harmônico é compacto e preciso; o choque repetido de um joelho é o ponto fraco citado por fornecedores. Por isso o mapa do corpo o coloca no braço.
Não é essa
O harmônico é compacto e preciso; o choque repetido de um joelho é o ponto fraco citado por fornecedores. Por isso o mapa do corpo o coloca no braço.Rever: Cada tipo vence numa articulação
Pergunta 3 de 4
Simular parado deu 31 N·m no joelho e o mj_inverse também. O que essa concordância mostra?
Correto
Com velocidade e aceleração zero, o torque da dinâmica inversa é o necessário para segurar a pose. Bater com a simulação mostra equilíbrio, não fidelidade ao robô real.
Não é essa
Com velocidade e aceleração zero, o torque da dinâmica inversa é o necessário para segurar a pose. Bater com a simulação mostra equilíbrio, não fidelidade ao robô real.Rever: Quanto o joelho faz agachado
Pergunta 4 de 4
A 120° o script leu 2 N·m no joelho. O que concluir?
Correto
A pelve foi para perto do chão: o robô sentou. Antes de usar um número de simulação, confira se o robô está na situação que você queria medir.
Não é essa
A pelve foi para perto do chão: o robô sentou. Antes de usar um número de simulação, confira se o robô está na situação que você queria medir.Rever: Quanto o joelho faz agachado
Teste concluído
Você acertou {a} de {n}. Acertando todas, a aula é marcada como concluída.
Escolha uma alternativa. A explicação aparece depois da sua tentativa.
06 · Em três frases
MapaQDD nas pernas, harmônico no braço, planetário no meio, linear em joelho grande.
MJCFposition manda ângulo, motor manda torque; actuatorfrcrange é o teto.
MedidaJoelho do G1 a 90°: 31 N·m, 22 % do teto do modelo.