hardware
the eyes
Latest
A measurement is not a confirmation.
A €55 webcam on a gooseneck arm ended four days of reasoning about a workbench from photographs sent after the fact. Every frame now burns its own timestamp, servo angle, temperature and torque state into the pixels — and the reason is the first thing the camera produced, which was a fault that didn't exist. An image captured at one moment, compared against an encoder reading taken minutes later while the lever was being moved by hand, showed ninety degrees of lever against three degrees of shaft. The conclusion — a hub slipping on its spline — was confident, mechanically plausible, and pure artifact. Captured together, the same test reads 90.7° across a 90° move. Image and pose are one measurement or they are not a measurement.
The servo ships no zero of its own: the encoder's origin is a factory arbitrary that changes every time the disc comes off the shaft. So the bench got a frame of its own — zero at plumb, positive as the lever rises, because gravity torque is then just mgL·sinθ, the shape every sweep and stall figure in this project already has. A spirit level anchored it, the anchors agreed to a tenth of a degree, and it lives in a version-controlled file rather than anyone's memory.
Then the beautiful calibration drove the arm into the cabinet. A spirit level proves levelness; it cannot tell you which of the two horizontals — one either side of vertical — is the one without furniture in it. A loaded sweep started toward the divider panel while the operator's hand went for the 12 V plug. Worse: that same run captured one camera frame out of seven, because the device wouldn't reopen between poses. The tool built specifically to stop blind motion ran blind. Both faults are now fixed in structure rather than intention — the calibration file names the forbidden side as well as the safe one, the camera holds a single handle for a whole run, and the mapper aborts outright if any pose yields no frame. If the watchdog can't see, the motion stops. The rule about confirming direction rather than inferring it had been written down a week earlier, after an earlier incident, and was bypassed because a measurement felt like a confirmation. It isn't one.
Run correctly, the same procedure produced the record that four ambushed sessions had needed: seven poses, seven witnessed frames, the weight hanging free at every angle. And the load telemetry carried a bonus. Plotted against the sine of the angle, the ratio falls and then flattens — the fingerprint of a constant friction term riding on gravity, rather than of a weight resting on something. It puts joint friction at about 0.10 N·m, and the simulator these policies grew up in models 0.052: our virtual joints are several times slipperier than the metal on the shelf. A sensitivity sweep across the measured range is running against the frozen policy now, to find out whether it ever noticed.