Continuing the discussion from Hardening HRI Safety with a Deterministic Wrapper: A Webots Demo Using TIAGo:
An outside team recently ran independent tests on the physical safety reflex layer in simulation.
The core claim held up: they measured 0.0 ms delay between the safety signal and commanding zero velocity.
They also caught real blind spots, which I fixed today:
- Cooldown timer bug: If sensor readings changed while the robot was trying to calm down, the timer didn’t restart — meaning it could declare “safe” too early. Now, it strictly requires a full, unbroken second of calm before stepping down.
- The task-interruption flag: The code accepted this setting but never actually used it. Now it does: routine tasks can resume on their own once danger passes, but delicate tasks hold still until a person checks in and confirms it’s okay to continue.
- Adjustable clock: The safety timer was tied directly to the real computer clock, which made simulated timing tests awkward. Now it accepts an adjustable clock so tests can simulate time instantly and predictably.
- Told to stop vs. physically stopped: The demo console printed “STOP” the moment danger hit. The command to stop really is instant (under 1ms), but momentum still carries the robot about 4.5 cm before it fully rests. I clarified that distinction in the docs so it doesn’t sound like the robot defies physics.
I am developing this solo and self-taught, using AI tools as active engineering co-pilots for coding, testing, and debugging.
All 20 unit tests are passing on GitHub (v2.0.1), and the live Hugging Face API has been updated to match.
LIVE API : QERRA-v2 Classical - Swagger UI