Loading
Eighteen actuated joints, blind locomotion, and three measurements that were lying
Six legs, three revolute joints each, on a floating base. That is 18 actuated joints, 24 degrees of freedom, and 9.30 kilograms. Each leg has a coxa yaw, a femur pitch, and a tibia pitch, which is enough to place a foot anywhere in a useful volume without the body having to move first.
The stack is built in order: model, plant, closed-form inverse kinematics, static stance, a whole-body quadratic program, gait, and guardrails. On top of that sit a gait ladder, two damage reflexes, and a behaviour layer. It walks at 0.14 m/s rated, and I have measured 0.22. It holds body height to 0.27 millimetres. Seventy-eight tests pass.
It runs on its own sensors rather than on simulator ground truth, which is the difference between a controller and a demonstration.
Blind locomotion gets measured along a difficulty axis rather than reported as a single pass or fail. Random roughness up to 45 millimetres, which is ninety percent of the step height, costs nothing. Ridges, steps, and slopes fail much earlier. Saying which is which is more useful than a video of the easy case.
Two results I did not expect. Cost of transport bottoms out near the rated speed rather than at the slowest one, falling from 2.121 to 0.727 between 0.03 and 0.16 m/s and then rising again by 0.22. Walking slowly costs 2.9 times more per metre than walking at 0.16. And what speed actually costs is margin, not survival: the support margin erodes from 120.8 mm to 86.0 mm across that range while survival stays at 100 percent and speed tracking holds within 1.2 percent. In this range the robot is not falling over. It is running out of room to be wrong.
Three of this project's measurement routines were wrong, and every one of them was wrong in the direction that flattered the robot. A survival check could not return false for the reason it claimed to test. Ride height on a slope was measuring the climb instead of the height. The support margin was reported as a minimum over six hundred samples, which is not what a margin means.
None of them were found by something failing. They were found by adversarial review, which is the uncomfortable part. Every number recorded before those fixes is not comparable to one recorded after, so the run archive was regenerated from scratch rather than patched.
The pattern to watch for is a plausible measurement that has never once been asked to fail. I assume there are more of them in here, and that is the reason the numbers above are stated with what produced them.