Blog

What the counted window actually measured

Earlier this week the whole loop ran on real 5 GHz air for the first time and, after a morning that died three times, held a clean ten-minute driving window. I wrote that up when it happened. What I didn't have then, and have now, is the count underneath it: what the air was actually doing to our commands while the body drove.

Three numbers came out of that afternoon run. Each one only means anything next to the room it was measured in, so I'll name the room every time, because the room is half the number.

The box the numbers live in

Everything below was measured with one configured access point, in one room, at short range. That is the whole envelope. These are not "it works over your house" numbers - they are "the physics held in this specific small space" numbers. Every time I say a figure, hold that box in your head, because I'm going to keep naming it.

The round-trip

The first number is how long a command takes to go from the dock to the body and for the acknowledgement to come back - the round-trip. Across the ten-minute run, 99.9% of those round-trips came back inside about 33 milliseconds. One AP, one room, short range.

That "99.9%" matters more than the 33. An average round-trip is easy and useless - what can stall a driving robot is the rare slow one, the packet that gets stuck behind something for a moment. So we don't quote the typical trip, we quote the tail: even the slow end of the distribution, the worst one-in-a-thousand, was landing around 33 ms in that room.

The worst gap the body actually saw

The second number is the one I care about most, because it's the one the wheels feel. A round-trip is the network's story. What the body experiences is the gap between the commands it actually applies - if a command is late, the last good one holds until the next arrives, and that hold is a real gap in fresh instruction.

The worst such gap across the run was about 48 milliseconds. And here's the part worth slowing down for: the body never saw it as a problem, because the velocity-hold layer - the on-robot rung that keeps the last commanded speed steady through a short silence - carried that gap. The robot didn't lurch, didn't stall, didn't halt. A 48 ms hole opened in the fresh commands, and the layer built for exactly that swallowed it before the wheels noticed. One AP, one room, short range.

That's the velocity-hold we've been going on about since the radio decision, and this run is the first time it was measured carrying a real gap on real air rather than a bench estimate of one.

The number we moved on purpose

The third number is a safety window, and it's the one with a story.

There's a link dead-man on the loop - a watchdog that says "if no fresh command has arrived in this long, assume the link is dead and stop." Set it too tight and normal air jitter trips it for no reason; set it too loose and it's slow to react to a genuine blackout. So the window has to be derived from what the air actually does, not guessed.

For weeks that window sat at 62 ms, derived off an earlier, thinner air read. This week we re-derived it off the fresh 33 ms round-trip figure - our own rule says the window follows the measured baseline - and the arithmetic is the same one that gave us 62 back in June: take the tail round-trip, double it for a there-and-back worst case, round up to the next 10 ms. 33 x 2 is 66; round up and you land at 70. The window that was actually armed through this week's run was still the old 62 ms - the flip to 70 landed the day after we ran the numbers.

I want to be exact about what that is, because a safety window getting bigger can read the wrong way. It is not a spec that got looser because we got scared of failing. The baseline moved - we finally had a fuller real-air number instead of a thin one - and the rule that turns a baseline into a window produced 70. We moved it because the rule said to, even though the old 62 ms window would have held through everything we saw that day. The discipline is: you don't keep a number just because it happens to still pass. You re-derive it when the ground under it changes, and you move it to wherever the rule lands, up or down.

(One note, because we've published a "2 ms margin" figure before and I don't want it read as current. That 2 ms was real air too - back in June, the widest gap we saw was 60 ms against the 62 ms line then armed, so two milliseconds of room. But that was one short run on the locked-down measurement radio and a thinner protocol, before we'd counted the round-trip properly. This week's 33 / 48 / 70 come off the shipping radio, configured, across a counted continuous driving window - a different run, on a different day, in its own box. The 48 ms this week isn't the old 60 re-measured; it's a fresh read of a different thing. When an early, thin number and a fuller one measure the same physics, the fuller one wins.)

What these numbers are not

They are not proof the robot cleans your house. They are one afternoon, in one room, on one access point, at short range - the first real-air read of what the loop does under load, with the layers that catch and carry the bad moments measured doing it.

Range is the next thing we test. A bigger space, a further body, more between the dock and the robot - that's where these numbers get their real exam, and I have no idea yet where they land. When we run it, you'll get the count from that room too, good or ugly, with its own box named around it.

These numbers are worth trusting because of how they arrived: the morning died three times before the afternoon held, we chased the real cause instead of a fudge, and the window we could have quietly kept, we moved because the rule told us to.

<- Back to Blog