A system for controlling a robot in the presence of a moving object , comprising: a three dimensional camera ; a processor ; and a system memory comprising code that, when executed by the processor, cause said processor to: collect a plurality of frames from the three dimensional camera; analyze a frame to identify connected objects, wherein analyzing the frame comprises forming a group comprising proximate voxels to form the connected objects; compare a location of the connected object in the frame to a location of the connected object in a previous frame to determine motion vectors for the proximate voxels; compare the frame to a previous frame to identify a moving connected object, MCO, comprising the proximate voxels, wherein the motion vectors for the proximate voxels are consistent; determine if the MCO is not expected to be present; and, if so, send (214, 314, 614-622, 712) a signal to a robot controller to take an action; and communicate a slow motion signal to the robot if the unexpected MCO enters a warning region , wherein the robot is moved proximate to the unexpected MCO at a slow speed to allow interaction between the unexpected MCO and the robot . a three dimensional camera ; a processor ; and a system memory comprising code that, when executed by the processor, cause said processor to: collect a plurality of frames from the three dimensional camera; analyze a frame to identify connected objects, wherein analyzing the frame comprises forming a group comprising proximate voxels to form the connected objects; compare a location of the connected object in the frame to a location of the connected object in a previous frame to determine motion vectors for the proximate voxels; compare the frame to a previous frame to identify a moving connected object, MCO, comprising the proximate voxels, wherein the motion vectors for the proximate voxels are consistent; determine if the MCO is not expected to be present; and, if so, send (214, 314, 614-622, 712) a signal to a robot controller to take an action; and communicate a slow motion signal to the robot if the unexpected MCO enters a warning region , wherein the robot is moved proximate to the unexpected MCO at a slow speed to allow interaction between the unexpected MCO and the robot . collect a plurality of frames from the three dimensional camera; analyze a frame to identify connected objects, wherein analyzing the frame comprises forming a group comprising proximate voxels to form the connected objects; compare a location of the connected object in the frame to a location of the connected object in a previous frame to determine motion vectors for the proximate voxels; compare the frame to a previous frame to identify a moving connected object, MCO, comprising the proximate voxels, wherein the motion vectors for the proximate voxels are consistent; determine if the MCO is not expected to be present; and, if so, send (214, 314, 614-622, 712) a signal to a robot controller to take an action; and communicate a slow motion signal to the robot if the unexpected MCO enters a warning region , wherein the robot is moved proximate to the unexpected MCO at a slow speed to allow interaction between the unexpected MCO and the robot . <EOS>