Every action a learned policy takes, checked before it reaches the robot.
A Safety Layer in the Control Loop
The policy publishes what it wants to do. The guard decides what actually reaches the robot. It never generates motion of its own: it only passes, narrows, or stops what the policy proposed.
Learned Policy
VLA, ACT, diffusion or RL policy proposing joint targets
RoboFleet Guard
Safety envelope, out-of-distribution check, and a halt latch only an operator can clear
Robot or Simulator
Hardware or an Isaac Sim joint controller executing the safe command
Three Verdicts on Every Action
Correct what can be corrected. Stop what can't. Record both.
The action is inside the safety envelope.
Robot receives the action, unchanged.
A joint target is out of range, or the step is faster than the policy's own demonstrations ever moved.
Robot receives a corrected action inside the envelope.
NaN or infinite output, an effort or workspace breach, an out-of-distribution observation, or a policy that keeps pushing past its limits.
Robot holds its last safe command until a named operator resets the guard.
Limits From Your Data, Evidence for Your Reviewers
Envelope derived from training data
Point the guard at the LeRobot v3 dataset behind a policy, including datasets RoboFleet Nexus exports directly from fleet telemetry. It derives joint ranges, per-step rate limits and an observation baseline: a reviewed starting envelope instead of a blank config file.
A record a safety reviewer can verify
Every clamp, halt and operator reset is written to a SHA-256 hash chain: what the policy proposed, what the guard sent instead, and which rule fired. Editing any past record breaks the chain, and one command proves whether it is intact.
Verified Development Run
A six-joint arm and scripted policy run against the guard node over ROS2 Jazzy, cycling through four injected faults every 16 seconds. These are the guard's actual verdicts from that run (October 19, 2026).
| Injected fault | Verdict | What the guard reported |
|---|---|---|
| One-step action spike on the elbow (+0.8 rad) | CLAMP | elbow target 2.487 outside [0.590, 1.812] |
| Policy driving wrist_1 past its limit | CLAMP | wrist_1 target 0.400 outside [−0.775, −0.023] |
| wrist_3 encoder slips +1.2 rad | HALT | observation is 9.8 std devs from training data on wrist_3 |
| NaN in the policy output | HALT | policy returned NaN/inf for wrist_2 |
Who This Is For
Robotics Teams
Manipulation, AMR and warehouse teams deploying VLA or RL policies who need a guardrail they didn't have to build.
Safety Reviewers
People who must sign off on a learned controller and need evidence of what it did and what was stopped.
Policy Researchers
Researchers who want failure cases captured automatically as data, not reconstructed from memory.
Evidence Status
Each claim is kept at the level the current evidence supports.
| Claim | Status |
|---|---|
| Catches action spikes, limit drift, encoder slip and NaN output over live ROS2 | Observed |
| Halts latch and hold the last safe command until an operator reset | Observed |
| Tamper-evident audit chain detects an edited record | Observed |
| Envelope and baseline derived from a LeRobot v3 dataset | Observed (synthetic demonstrations) |
| Running in front of a pretrained LeRobot policy in Isaac Sim | In progress |
| Deployment on physical robot hardware | Not yet demonstrated |
| Functional-safety certification | Not claimed |
Running Learned Policies on Real Hardware?
We're looking for design partners to put the guard in front of their policies and shape what it checks next. The code is open source and runs today against any ROS2 policy that publishes joint targets.
Quantum Clarity LLC • RoboFleet Guard • Open Source (MIT)