🧪 Novos tutoriais em andamento — do braço robótico ao sensor
Ir para o conteúdo

10 Referência: modelo, parâmetros e licenciamento ​

10.1 Ficheiros de modelo de referência ​

A simulação usa MuJoCo MJCF (.xml + malhas .stl), partilhando o próprio design do hardware:

FicheiroDescrição
hardware/v1/robot_v1.xmlModelo principal (geometria/massa correspondentes ao hardware)
hardware/v1/meshes/*.stl6 malhas STL que se agrupam em 4 grupos impressos (placa/carcaça da base, suporte do ombro, suporte do braço superior/suporte do cotovelo, antebraço)
hardware/v1/meshes/print_mass_model.jsonTabela de massa impressa por peça (15% de preenchimento)

Não é incluído nenhum URDF; para utilização com ROS, exporte um a partir do CAD/malhas acima.

10.2 Parâmetros do firmware (firmware/sr_support_b_ptk/include/config.h) ​

ParâmetroValorSignificado
POLICY_DT / CTRL_PERIOD_US0.02 s / 20000 µsPeríodo de controlo de 50 Hz
MAX_CMD_RATE0.08 rad/tickLimite de slew da saída (4 rad/s)
FALL_UP_Z0.30Limiar de up_z da condição de queda
FALL_W_QUIET0.9 rad/sLimiar de velocidade angular da condição de queda
FALL_CONFIRM_TICKS25Confirmação da condição de queda (0.5 s)
EXEC_STEPS_PER_WP20Ticks por waypoint de referência
EXEC_RETRACT_RATE0.033 rad/tickTaxa de retração
EXEC_DONE_TICKS50Ticks consecutivos de pé para concluir
EXEC_TIMEOUT_MS14000Timeout por referência
EXEC_COOLDOWN_TICKS75Arrefecimento após conclusão/timeout (1.5 s)
EXEC_SWITCH_TICKS15Ticks de confirmação da mudança de postura
EXEC_SWITCH_UP0.60up_z máximo para uma mudança
EXEC_SWITCH_W0.8 rad/sVelocidade angular máxima para uma mudança
EXEC_MIN_SWITCH_AGE25Tick mais cedo para uma mudança
EXEC_MAX_SWITCHES5Máximo de mudanças por execução
EXEC_NEUTRAL_MAX120Máximo de ticks de retração para o neutro
SERVO_SHOULDER_CENTER_US1681Impulso do zero do ombro (valor do centro visual gravado em 2026-11; refaça o ponto zero conforme a página 05)
SERVO_CENTER_US1456Impulso do zero do cotovelo (idem)
SERVO_US_PER_RAD636.622000 µs / π
Q_SHOULDER_MIN/MAX−1.85 / +1.82 radLimites dos comandos manuais do ombro
Q_ELBOW_MIN/MAX−0.90 / +0.70 radCurso manual (o executor usa ±1.55 mecanicamente)
SERVO_SHOULDER_SIGN/ELBOW_SIGN−1 / −1Direção do servo
IMU_YAW901IMU montada rodada 90°
MAHONY_KP / ACCEL_TRUST_BAND6.0 / 2.5 m/s²Filtro de atitude: ganho de correção do acelerómetro / banda de confiança
WIFI_AP_SSID / WIFI_AP_PASSSR-Support / srsupportHotspot (o w alterna-o; ativo no arranque)

10.3 Sequências de referência (ombro, cotovelo; rad; valor a valor com training/b_line/getup_reference_b39.py) ​

PosturaSequência
roll_pos[1.75,-0.90] → [-0.25,-0.90] → retract
roll_neg[-1.80,0.70] pressão direta a toda a velocidade (manter ≤40 ticks) → bombeamentos de cunha [-1.80,0.35] → [-1.80,0.05] ×2 (manter ≤30 cada) → recurso: [0.35,0.70] → [0.35,1.10] → [-1.80,0.05] (whip-slam, manter ≤40) → espera final ≤90 → retrair
pitch_pos[-1.32,1.45] → [-0.25,1.45] → retract
pitch_neg[-1.32,-1.65] → [-0.25,-1.65] → retract

10.4 Estado verificado e inspeção de fábrica (2026-11-06) ​

  • Inspeção de fábrica: cada unidade acabada recebe — zeros dos servos definidos e gravados por unidade (página 05), calibração do zero do giroscópio + acelerómetro (NVS) e um teste de levantamento nas quatro direções antes do envio;
  • As quatro direções verificadas no robô real, cada uma como um levantamento direto (sem rolamento), cerca de 1–6 s; sem violações do envelope dos servos;
  • Receita final do roll_neg: pressão direta a todo o curso + bombeamentos de cunha do cotovelo ×2, nova tentativa whip-slam como recurso (o esquema anterior de rolamento + replaneamento foi retirado);
  • O pipeline de atitude foi corrigido com a calibração do viés do acelerómetro (ver página 06, 6.2); as posturas deitadas agora correspondem ao robô real;
  • O roll_neg ainda não se reproduz no modelo de simulação com massa 1× (massa/atrito do braço diferem); é uma lacuna conhecida do modelo — o firmware do hardware é validado no hardware.

10.5 Licenciamento ​

  • Código de firmware/treino da linha B: MIT / Apache-2.0;
  • CAD/STL da linha B: CERN-OHL-S-2.0 (reciprocidade forte — verifique as obrigações antes de uso comercial);
  • SelfRisingRobot: sem licença; este tutorial não contém nenhum do seu código, waypoints ou modelos;
  • Patente CN109693729A/B: faça uma revisão FTO antes de uso comercial.

← Voltar ao índice do tutorial