Reference note · run0050 · 866 s outdoor session

The knees are the thermal ceiling

First run with motorState.temperature logged on all twelve joints. The calves never reach equilibrium; everything else does. The A1's own protection trips near 66 °C, which is why there is no software gate.

The measurement

Per joint group, after the ~2 minute warm-up from cold. Bars are scaled 30–70 °C; the red line is the 66 °C trip.

hips (all 4) 43.8 °C  +0.25/min
thighs (all 4) 48.2 °C  +0.71/min
front calves 58.0 °C  +1.10/min
rear calves 66.5 °C  +1.92/min

Time to 66 °C at these rates: hips ~90 min, thighs ~25 min, front calves ~7 min, rear calves already there. Peaks RRc 66, RLc 67, against 41–48 for every thigh and hip.

Where it fails

RL_calf's driver began thermally cycling at 66–67 °C — torque cutting out and re-enabling as it cooled — while RR_calf at 65–66 °C was still working.

t (s)T °Cτ N·mq̇ rad/s|q−qdes|
856.066−0.21+0.031.14
856.567+0.00−0.091.62
857.066+0.14+0.041.70
858.567−1.85+1.000.29briefly back
860.567+2.24−0.720.49and again
862.067+9.91−3.361.92and again

Torque ~0 with velocity ~0 while the target was 1.1–1.9 rad away: the joint is not tracking, and it recovers intermittently as it cools. That is a thermal trip, not a stall. For the single-joint failure that started this line of work, see the run0042 incident report.

A knee problem, not a rear-leg problem

All four calves climb without plateauing; the rear ones are simply ~8 °C ahead. Extrapolated, the front calves reach 66 °C about seven minutes after the rear ones. The hips genuinely reach equilibrium; the thighs would need ~25 more minutes.

A duty-cycle limit, not a speed limit

The rise tracks torque, not commanded velocity. Even at 0.2–0.35 m/s it still climbs 1–2.5 °C/min and never plateaus. From 40 °C the ceiling arrives in roughly 6 minutes hard or 15 gentle.

~12 minutes of continuous walking before the rear calves need rest; ~20 before the fronts. Slowing down buys time — it does not reach equilibrium.

The one shelf in the curve — 61 °C, flat for about a minute at t≈11–12 min — is a lull in walking. Rest does work; a minute of it buys little.

A family trait

deploy_safety.h's ThermalWatch note predicted this shape from Tang29Zx's Go2 measurement (rear hips 69 °C against 37–42 elsewhere) before we measured it here.

Why there is no software gate

The motor's own protection trips near 66 °C, so a ceiling above that can never fire and one below ends healthy runs.

The argument for our own abort was an uncontrolled single-joint loss mid-stride is worse than a deliberate stop — and it has never happened. After the cutout the robot stayed upright and kept walking in both observed failures: run0050 grav_z −0.92…−0.99 with a normal alternating contact pattern, run0042 grav_z −0.83…−1.00.

Temperature is logged on all twelve joints and warned from 58 °C. --temp-abort N exists and defaults to off.

Open thread — the reward penalises the wrong quantity

Not run. Recorded because it is real and cheap to pick up later.

Heating is I²R, i.e. τ². The locomotion reward penalises mechanical power (joint_power = Σⱼ|τⱼ·q̇ⱼ| at −2e−5) while dof_torques_l2 (τ²) is explicitly zeroed. Against the temperature each joint actually recorded:

correlation with ΔTall 12 jointscalves only
|τ·ω| — penalised0.911−0.954
τ² — weight 00.985+0.990

joint_power ranks the front calves as working harder than the rear ones, which is backwards — so raising its weight would shift load toward the joints that fail.

Arms are registered and deliberately unlaunched: …RefMatchTau2B-v0 (−1e−5) and …Tau2C-v0 (−3e−5). The ceiling is a family trait we cannot remove; the front/rear split is worth maybe 3–4 minutes of duty cycle; and it costs two training runs with a live risk that the policy banks the reward by walking weakly.