{
  "revision": "rs06-concept-r01",
  "status": "provisional layout, not released for manufacture",
  "units": "mm; angles degrees",
  "motor": {
    "model": "RobStride RS06",
    "count": 12,
    "catalog_mass_g": 615,
    "planning_diameter_mm": 90,
    "planning_depth_mm": 55,
    "output_pcd_mm": 24,
    "output_bolts": 6,
    "output_thread": "M4 depth 6 mm, source drawing; delivery revision unconfirmed",
    "stator_pcd_mm": 82,
    "stator_bolts": 8,
    "stator_thread": "M3 depth 8.5 mm, source drawing"
  },
  "body": {
    "length_mm": 340,
    "width_mm": 290,
    "depth_mm": 110,
    "skin_frame_thickness_mm": 5,
    "haa_x_mm": 170,
    "haa_y_mm": 95,
    "pitch_axis_x_mm": 240
  },
  "leg": {
    "upper_length_mm": 200,
    "lower_length_mm": 195,
    "lower_center_y_mm": 110,
    "foot_radius_mm": 20,
    "hfe_face_y_mm": 120,
    "kfe_face_y_mm": 174,
    "inner_cheek_y_range_mm": [
      130,
      136
    ],
    "outer_cheek_y_range_mm": [
      184,
      190
    ],
    "outer_cheek_start_mm": 66,
    "knee_bearing_y_ranges_mm": [
      [
        128,
        136
      ],
      [
        182,
        190
      ]
    ],
    "knee_shaft_diameter_mm": 12,
    "bearing_reference": "6001ZZ 12x28x8; seats/retention not released"
  },
  "belt": {
    "profile": "S5M",
    "teeth_each": 40,
    "pitch_mm": 5,
    "pitch_length_mm": 600,
    "width_mm": 25,
    "center_y_mm": 153.5,
    "external_ratio": 1,
    "status": "pitch path and pulley envelopes only; tooth geometry, exact pulley bore, tensioner and load capacity not finalized"
  },
  "pose": {
    "haa_outward_deg": 8,
    "hip_deg": 30,
    "knee_relative_deg": -60,
    "convention": "upper=(-L1*sin(qH),0,-L1*cos(qH)); lower=(-L2*sin(qH+qK),0,-L2*cos(qH+qK)); rotate about HAA X; mirrored for right legs"
  },
  "kinematics": {
    "upper_length_mm": 200,
    "lower_length_mm": 195,
    "haa_y_mm": 95,
    "sagittal_y_mm": 110,
    "hip_x_mm": 240,
    "abduction_deg": 8,
    "hip_deg": 30,
    "knee_deg": -60,
    "foot_radius_mm": 20
  },
  "motor_mapping": {
    "hip_motor": "qH",
    "knee_motor_common_axis": "qH+qK",
    "joint_to_motor_torque": "tau_motor_H=tau_joint_H-tau_joint_K; tau_motor_K=tau_joint_K",
    "encoder_signs": "not calibrated; opposed motors and left/right need explicit sign and zero mapping"
  },
  "reserved_spaces": {
    "battery_mm": [
      160,
      90,
      45
    ],
    "computer_mm": [
      105,
      80,
      25
    ],
    "power_board_mm": [
      80,
      70,
      18
    ],
    "status": "packaging allowances, no products or achieved capacity selected"
  },
  "limitations": [
    "No physical tests or full-robot FEA",
    "Printed links and metal shaft/hubs require detailed fits and fastener validation",
    "Motor geometry uses conservative dimensioned reference envelopes, not certified supplier STEP",
    "Belt visualization omits tooth profile and preload/tensioner",
    "Static pose collision check does not establish collision-free joint ranges",
    "Battery/electronics reserve volumes are not selected components",
    "Motor self weight, link inertia and thermal duty need next-stage validation"
  ]
}
