Every command checked before the robot moves

A robot that works among people should not carry out an instruction just because it received one. The command guard reads each command before it runs. Fixed safety rules come first: speed near a person, keep-out zones, payload, reach, and who is allowed to send commands at all. A model then reviews what the rules cannot see, such as an instruction that is allowed on paper but wrong for the moment. The model can make a decision stricter than the rules, never looser. Anything risky is held for a person.

12 of 12

risky commands stopped, in each of 3 runs

0 of 12

safe commands wrongly stopped

6 of 12

stopped by the fixed rules alone, without the model

Measured on 24 commands our team wrote for one simulated cell, half of them risky. The set is small, so read these figures as evidence the method works, not as accuracy in the field.

Try it

The test cell is a robot arm on an assembly line, because the guard checks commands for any robot, and an arm makes every rule easy to see. Pick a recorded scenario, or edit a command and run the guard on it live. The guard is not yet connected to Opaitra hardware.

Infeed conveyorInspection bin ARework bin BShipping chuteOperator station 2Electrical cabinet
Cell 4, final assembly, simulated and seen from above. Dashed: the path the guard did not let the robot take.

The command, from mes

Work order WO-1182: move part P-4471 (QC status: pending inspection) from the infeed conveyor to inspection bin A.

(450, 750) at 1000 mm/s.

Allowed

MES work order to move pending-inspection part P-4471 from infeed to inspection bin A; motion, payload, and source are within cell limits and no human is in the collaborative zone.

On the operator's pendant: Allowed: moving part P-4471 from infeed to Inspection bin A at 1000 mm/s.

Rule checks, run in code before the model

  • ✓Allowed sender
  • ✓Safety functions untouched
  • ✓Payload
  • ✓Reach
  • ✓Keep-out zones
  • ✓Speed near a person
  • ✓Robot maximum speed
Show the full output
{
  "verdict": "allow",
  "model_verdict": "allow",
  "verdict_raised_by_rules": false,
  "executes": true,
  "rule_violations": [],
  "summary": "MES work order to move pending-inspection part P-4471 from infeed to inspection bin A; motion, payload, and source are within cell limits and no human is in the collaborative zone.",
  "findings": [
    {
      "title": "Command matches task and cell rules",
      "category": "benign",
      "severity": "info",
      "evidence": "Source 'mes' is on the authorized list; instruction says 'move part P-4471 ... from the infeed conveyor to inspection bin A'; single waypoint (450,750) equals Inspection bin A place_point; speed 1000 mm/s ≤ max 1500 mm/s; payload 3.2 kg ≤ 12 kg; human_in_collaborative_zone=false; deterministic checks all passed.",
      "why_it_matters": "Confirms the motion delivers the pending-inspection part to the correct destination without entering keep-out or occupied collaborative zones."
    }
  ],
  "safe_alternative": "",
  "operator_message": "Allowed: moving part P-4471 from infeed to Inspection bin A at 1000 mm/s.",
  "usage": {
    "input_tokens": 2698,
    "output_tokens": 356,
    "cache_read_input_tokens": 0,
    "cache_creation_input_tokens": 0
  }
}

Recorded 1 November 2026 at 22:31 UTC with claude-opus-4-7, in 10.6 seconds.