A real-time robot collision avoidance safety system
A data structure and update algorithm are presented for a prototype real-time collision avoidance safety system supporting tele-operated robot arms. The data structure is a variant of the octree, which serves as a spatial index. An octree recursively decomposes three dimensional space into eight equal cubic octants (nodes) until each octant meets some decomposition criteria. Our octree stores cylspheres (cylinders with spheres on each end) and rectangular solids as primitives. These primitives make up the two seven-degrees-of-freedom robot arms and environment modeled by the system. Octree nodes containing more than a predetermined number N of primitives are decomposed. This rule keeps the octree small, as the entire environment for our application can be modeled using a few dozen primitives. As robot arms move, the octree is updated to reflect their changed positions. During most update cycles, any given primitive does not change which octree nodes it is in. Thus, modification to the octree is rarely required. Incidents in which one robot arm comes too close to the other arm orÂ· an object in the environment are reported. Cycle time for receiving current joint angles, updating the octree, and detecting/reporting collisions is about 30 milliseconds on an Intel 80386 processor running at 20 MHz.