When programming a robot to perform a task, it is very often the case that the robot motions involved must not cause the robot to collide with itself, its environment, its tooling and/or payload, or other robots. Robot programmers can either manually teach the robot trajectories/waypoints that move the robot and its end effector to…