Two robots share a work cell. They never collide in simulation. On the floor, the wrist of Robot A clips the gripper of Robot B once a shift. Nobody can reproduce it on teach. The simulation assumed both robots always start at home.

The simulation vs reality gap

Offline programs assume perfect cycles. Both robots start at their home positions, move in sync, and finish on time. In production, Robot B finishes two seconds early and waits. Robot A starts late because the part feeder was slow. Their paths cross in the overlap zone at a moment the simulation never modeled.

The fix is not to slow everything down. It’s to make the overlap zone a handshake. Robot A requests entry, Robot B confirms it’s clear, and only then does A move in. This is software interlocking, not physical guarding. Both robots sit behind fences, but they need to agree on who goes first.

Soft limits vs hard stops

Every robot has software limits: joint angles beyond which the controller won’t move. Set these inside the mechanical hard stops, not at them. Leave a margin. If the soft limit is set exactly at the mechanical stop, encoder drift over months can push the joint into the hard stop. Set soft limits at 95 percent of the mechanical range and you’ll never hit the end stop.

For shared cells, set a shared workspace exclusion zone. Robot A is not allowed to enter the zone while Robot B is in it, regardless of programmed path. This is a geometric check in the controller, not a cycle-time calculation. If B overruns, A doesn’t move.

The tooling changes the collision zone

The controller knows the robot body. It does not know your gripper unless you model it. A collision between the gripper and a fixture that the robot body clears is invisible to the software limits. Model the complete end-of-arm tooling in the robot’s workspace configuration, including the fingers and cables.

When you change grippers, re-run the collision check. A new finger length shifts the envelope by 100 mm. If you forget to update the model, the first collision is the test.

Teach pendant check

Before running auto, jog each robot through the shared zone at low speed, with the other robot sitting in its home position. Then swap. This catches geometry errors that simulation misses because the gripper model was wrong. It takes ten minutes and prevents a crash that takes days to fix.

Put a physical interlock between the cells. If someone opens the fence, both robots stop. Don’t rely on software interlocks alone; they’re for robot-to-robot. People need a hard stop.

Bottom line

Collision avoidance in a multi-robot cell is a handshake, not a simulation. Model the tooling, set shared exclusion zones, and jog the paths manually before auto. The crash you don’t plan for is the one that bends a wrist.