Вы находитесь на странице: 1из 6

# 1

## Collision Detector for Industrial Robot Manipulators

Cesar H. Rodriguez G.
Programa de Ingeniera en Automatizacion
Email: cerodriguez@unisalle.edu.co
Guillermo A. Camacho M.
Programa de Ingeniera Industrial
Email: gacamacho@unisalle.edu.co
Alvaro Patino
Programa de Ingeniera en Automatizacion
Email: alapatino@unisalle.edu.co
Universidad de La Salle, Bogota, Colombia

Abstract Tasks increasingly complex in robotics require an interfiera con tems existentes en el espacio de trabajo. En la
increasing effort for path planning in dynamic enviroments. This literatura se han reportado varios algoritmos eficientes para
paper present a novel method for detect collisions between robot resolver este problema. En [2] presentan una clasificacion de
and its enviroment in order to prevent dangerous maneuvers. Our
method is based on transforming each robot link and enviroment los algoritmos reportados en seis grupos: (i) colisiones basadas
object in a set of bounding boxes. The aim for this kind of en politopos convexos, (ii) colisiones basadas en jerarquas
prismatic aproximation is detect collision between objects in de volumenes limitadoras, (iii) deteccion de colision continua
work space by testing collision between box faces from diferent (iv) deteccion de colision de fase extensa, (v) deteccion de
objects. The computacional cost of this aproach has been tested in colisiones por nubes de puntos y (vi) colision en paralelo y
simulation, we set up our enviroment with a HP20D robot and
an obstacle, both of them represented by their corresponding calculo de proximidad. Colision basada en politopos convexos
chain of bounding booxes, the expiriment consisted on moving (Convex Polytope). Se fundamenta en el calculo de distancias
the robot end effector from initial position, on the right of the Euclidianas entre dos politopos convexos. Dos algoritmos re-
obstacle, to the final position, on the left of the obstacle, along portados son, algoritmo de Gilbert?Johnson?Keerthi (GJK) [3]
a straight line trajectory. The probe let us check the correct y algoritmo de Lin-Canny [4]. Colision basada en jerarquas de
behavior of collision detector in a real task. This method was
compared against another method based on retrieving for each volumenes limitadoras (Bounding Volume Hierarchy-BVH).
face of box a point cloud representation and then to establish Se fundamenta en la definicion de estructuras geometricas
collision by detecting if the minimal distance between points from para representar los objetos en el espacio de trabajo del
different boxes is lower than some specific threshold. The result robot. Existen diversas aplicaciones. En [5] se realiza la
shows a difference of some magnitude orders in computacional deteccion de colisiones utilizando a rboles de AABB (Axis-
cycles for method based on point cloud, higher than our method
based on intersecting planes. aligned bounding box-AABB), en [6] se aplica OBB (oriented
bounding box - OBB), en [7] aplican k-DOP (discrete oriented
Index Terms Forward Kinematic model, coillision detector, polytope k-DOP), en [8] utilizan SSVs (swept sphere volume
plane intersect.
- SSV). Otras tecnicas reportadas son las estructuras de datos
espaciales kd-trees y octrees, sin embargo, se prefieren las
I. I NTRODUCTION tecnicas BVH por su rapida respuesta [2]. Deteccion de

## L A industrializacion como base para sostener una sociedad

de consumo, requiere de la automatizacion de tecnicas
y metodos de fabricacion, que a su vez emplean robots
colision continua (continuous collision detection). Se trata
de aplicaciones en donde se requiere realizar un chequeo
de colision de objetos moviendose a lo largo de una ruta
manipuladores para resolver tareas complejas en ambientes continua. Una alternativa es realizar muestreo sobre el objeto
cada vez mas dinamicos. a lo largo de la ruta y en cada muestreo ejecutar el chequeo de
Los robots manipuladores son herramientas altamente popu- colision, en intervalos discretos de tiempo. Como desventaja
lares en la industria, por su habilidad de realizar movimientos de esta alternativa, se destaca la posibilidad de colisiones
complejos, eficientes y de alta precision; en [1] se reporta la entre intervalos de muestreo [2]. Se reporta la aplicacion de
existencia de 1.5 millones de robots industriales instalados en metodos predictivos para reducir esta posibilidad [9], [10],
empresas. Uno de los problemas asociados a esta tecnologa sin embargo, los resultados son relativamente lentos [2]. Una
es la denominada planeacion de movimientos. El problema segunda alternativa es el uso de tecnicas de deteccion de
consiste en calcular una trayectoria continua para un conjunto colision continuas (continuous collision detection-CCD) [11].
de objetos, posiblemente interconectados, con el proposito Estas tecnicas chequean colisiones en todas las posiciones
de moverse de una posicion a otra, evitando colisiones con ocupadas por el objeto, desde que inicio su movimiento
otros objetos estaticos o moviles. Para el caso de un robot hasta que finalizo la ruta. En CCD se aplican algoritmos de
industrial con base fija, el problema puede ser formulado como interpolacion lineal entre configuraciones estaticas [12] y entre
el calculo de una trayectoria para el brazo robotico, que no movimientos rgidos [11]. Un enfoque alternativo conocido
2

como avance conservativo (conservative advancement CA) II. M ODELAMIENTO DEL ENTORNO
se fundamenta en el avance incremental de los objetos en
Los objetos que conforman el entorno de trabajo: robot ma-
cada intervalo de tiempo, mientras se evitan los obstaculos
nipulador Motoman HP20D , caja y suelo, se construyen como
[13]. Deteccion de colisiones de fase extensa (Broad-Phase
conjuntos de rectangulos relacionados entre si por matrices
Collision Detection - BPCD): Es el nombre que reciben las
de transformacion homogeneas, tal y como se presenta en la
tecnicas de deteccion de colisiones que se preocupan por
Fig. 1. All, Cada eslabon se representa a traves de un prisma
resolver la pregunta que objetos tienen una alta posibilidad
hueco de 4 caras (amarilla, roja, azul y verde) referidas al
de colision?. Se diferencia de la alternativa conocida como
sistema de referencia de su articulacion correspondiente. En
narrow-phase, en donde se resuelve la pregunta que parte
posicion home el robot exhibe alineacion de colores por cara,
del objeto A colisiono con el objeto B?. Con el proposito
lo cual permite visualmente detectar rotaciones articulares de
de evitar chequeos de colision con complejidad O(n2), la
una manera simple, des-alineacion de colores entre caras de
tecnica BPCD se encarga de descartar pares de objetos que
eslabones consecutivos. La rotacion de cada eslabon se efectua
alrededor del eje Z para el sistema de referencia asociado.
son, sweep and prune (SaP) [14] y spatial subdivision [15].
Deteccion de colisiones por nubes de puntos (Point Cloud
Collision Detection). Esta alternativa surge por causa de la
baja disponibilidad de representaciones geometricas exactas
en calculos de proximidad y deteccion de colisiones dentro de
ambientes industriales. Por el contrario, las representaciones
disponibles en ambientes industriales son desordenadas y poco
precisas por causa de los sensores utilizados: camaras RGB-
D, sensores LIDAR - Laser Imaging Detection and Ranging.
Adicionalmente, existe una alta frecuencia de actualizacion, lo
que provoca grandes cantidades de nubes de puntos para ser
representation, (ii) octree representation. Colision en paralelo
de multiples nucleos permite la implementacion de algoritmos
de proximidad y colisiones en paralelo [17]. Son varios los
algoritmos reportados, entre los que se destacan: en [18]
presentan la solucion a colision simple, en [19] resuelven el
problema de multiples colisiones, en [20] abordan el problema
de colision de N-cuerpos.

## Fig. 1: Representacion por rectangulos del ambiente Motoman

Este artculo muestra un metodo alternativo al denominado
HP20D.
Ray-Tracing [21], para el calculo de colision entre dos objetos
prismaticos cuya definicion espacial resulta del ajuste de su
volumen al solido original. Por tanto, este metodo puede ser
clasificado dentro del grupo denominado Bounding Volume II-A. Modelamiento del Robot HP20D
Hierarchy-BVH. La finalidad de esta propuesta es obtener un
detector de colisiones que pueda ser utilizado por algoritmos El modelado cinematico del robot se efectua utilizando
de planeacion de trayectorias con un costo computacional la descripcion por matrices homogeneas Denavit-Hartenberg
reducido. [22] para cada eslabon y luego obteniendo la matriz que
relaciona cada articulacion con respecto a la base Teb =
T0b T10 (q1 )T21 (q2 ) . . . T65 (q6 )Te6 . Los parametros que definen el
En la seccion II, se presenta la estrategia utilizada para modelamiento cinematico directo fueron tomados de [23] y se
simplificar la estructura de los objetos del ambiente de trabajo presentan en la tabla I.
donde interacciona un robot manipulador tipo HP20D de
Motoman con otros objetos, que para el caso, se trata de di ai i i
un repositorio de piezas tipo caja. A continuacion, en la Eslabon en mm en mm en grados en grados
seccion III, se describe paso a paso los conceptos geometricos 1 0 150 90 1
2 0 760 0 2 + 90
que permiten inferir la colision de objetos a traves de la 3 0 140 90 3
interseccion de planos en el espacio. Posteriormente en la 4 795 0 -90 4
seccion IV se realiza la validacion del deteccion de colisiones, 5 0 0 90 5 90
donde para una trayectoria conocida se detectan los puntos 6 105 0 0 6
donde a priori se conoce la ocurrencia de colision. Finalmente TABLE I: Parametros Denavit-Hartenberg para el Robot
en la seccion de conclusiones se resumen los resultados del HP20D de Motoman.
desarrollo.
3

## Con cada definicion parametrica correspondiente al eslabon

i-esimo se construye la matriz de transformacion homogenea
que lleva puntos en el sistema de referencia i-1 al sistema de
referencia i, como se observa en la ecuacion (1).

c(i ) s(i )c(i ) s(i )s(i ) ai c(i )
s(i ) c(i )c(i ) c(i )s(i ) ai s(i )
Tii1 = 0

s(i ) c(i ) di
0 0 0 1
(1)
A continuacion se construye un esqueleto del robot, uniendo
hilos entre los sistemas de articulacion Ti0 y Ti+1
0
, como se
observa en la Fig. 2.

## Fig. 3: Construccion de la representacion Prismatica del Robot

HP20D de Motoman.

## manera de eslabon prismatico hueco de cinco caras, donde

solo la cara superior del volumen es inexistente, la definicion
de la caja se construye solidaria a un sistema de referencia C.

## III. D ETECCI ON DE COLISIONES

El problema de detectar colisiones en el espacio entre
objetos construidos a partir de rectangulos, se reduce entonces
a detectar la interseccion entre conjuntos de rectangulos. Para
ello, hay que resolver primero el problema de determinar
cuando dos rectangulos se cruzan espacialmente, tarea que se
abordara en la siguiente seccion.
Fig. 2: Representacion por Hilos del Robot HP20D de Moto-
man. III-A. Interseccion de rectangulos en el espacio
El metodo utilizado para evaluar la interseccion de rectangu-
Finalmente, cada hilo es convertido en un eslabon prismati- los en el espacio comienza con la interseccion de los pla-
co de 4 caras, solo se conservan los rectangulos que se nos donde se encuentran ubicados los rectangulos. Para el
encuentran a lo largo del hilo, las tapas de los extremos no son analisis siguiente, cada rectangulo sera identificado como el
consideradas, por cuanto las restricciones cinematicas de cada conjunto i-esimo de puntos tridimensionales Pij R3 , i =
articulacion, previenen choques entre eslabones consecutivos. 1, 2, . . . , n j = 0, 1, 2, 3. As mismo, el plano en el cual existe
La construccion de los prismas a partir de los hilos del modelo cada rectangulo sera parametrizado vectorialmente como una
inicial, se muestra en la Fig. 3. Para efectos de claridad, solo pareja Pij (Ni , Pi0 ), donde Ni = (Pi1 Pi0 ) (Pi2 Pi0 ),
se dibujan los eslabones 2 y 5 sobre el modelo de hilos, dado es la direccion normal al plano y Pi0 es un punto de origen,
que se pretende mostrar como a partir de un hilo se construye como se observa en la Fig.4.
la definicion geometrica de una Bounding Box. El primer paso del algoritmo consiste en encontrar la lnea
de interseccion Li , definida por un vector director N y un
II-B. Modelamiento del suelo y de la caja punto de referencia, P0 sobre ella, donde dos planos P1j y
P2j , se cruzan en el espacio. La definicion de la lnea de
El suelo o sustrato sobre el cual se sostienen los objetos del interseccion en el espacio se presenta en la ecuacion (2) de
ambiente se construye como una cara rectangular solidaria a un forma parametrica en funcion del parametro .
plano definido sobre los ejes X-Y de un sistema de referencia
M. De igual forma, la caja que aparece en la Fig. 1, cuya x = P0x + Nx
funcion es servir como obstaculo en el espacio de trabajo del Li = (x, y, z)| y = P0y + Ny (2)
robot, es un conjunto de caras rectangulares ensambladas a
z = P0z + Nz
4

## (a) No interseccion plano 1. (b) No interseccion plano 2.

Fig. 5: Primer caso a evaluar en la interseccion de rectangulos
en el espacio.

## La segunda condicion consiste primero en obtener los pun-

tos de corte pcij entre cada una de las lneas que conforman
cada rectangulo Lnij (N lnij = (Pi(j) Pi(j1) ), Pi(j1) )
Fig. 4: Representacion tridimensional de la interseccion de 2 y la lnea de interseccion inter-planos Li . Una vez definidos los
planos. puntos de corte, se procede a extraer el segmento Si formado
por los 2 puntos de corte que se encuentren ubicados dentro
de las lneas del rectangulo, dichos extremos del segmento
Todos los puntos que existen sobre la lnea Li , simultanea- se identificaran en adelante como SiA y SiB , conforme se
mente cumplen las ecuaciones de cada uno de los dos planos muestran en la Fig. 6. All, S1A = pc1 y S1B = pc4 . La
intersectantes, ecuacion (3). interseccion de lneas en el espacio se efectua conforme a la
ecuacion (6).
xN1x + yN1y + zN1z = d1
(3)
xN2x + yN2y + zN2z = d2
Donde N1 P10 = d1 y N2 P20 = d2 . Ahora bien,
por inspeccion geometrica se sabe que N es normal a N1 y
N2 , Dado que N esta localizada sobre los planos y N1 , N2
son perpendiculares a los planos respectivamente, por lo tanto,
N = N1 N2 , o bien, por componentes N se describe en la
ecuacion (4).

## N1y N1z ~ N1x N1z ~ N N1y ~

N= i j + 1x k (4)
N2y N2z N2x N2z N2x N2y
Reemplazando (2) en (3) y simplificando en la expresion
resultante con la definicion (4) y sabiendo que N N1 = 0 y
N N2 = 0, se obtiene un punto de la lnea de interseccion
que se tomara como referencia de ella, P0 , ecuacion (5).

si P0x = 0

## P0 = (P0x , P0y , P0z )| P0y = d2 N1zNdx

1 N2z
(5)
d1 N2y d2 N1y
P0z =

Nx Fig. 6: Puntos de corte entre un rectangulo y una lnea definida
en el plano del espacio donde el rectangulo existe.
Una vez la lnea de interseccion ha sido calculada pa-
rametricamente, el siguiente paso es definir la condicion
de interseccion entre rectangulos. Para ello se comprueba 2 1
T P(j1)x P0 x Nx N Lnjx
condiciones. La primera condicion revisa si alguno de los 2 t
= P(j1)y P0 y Ny N Lnjy (6)
rectangulos no se intersecta con Li , segun se aprecia en la s
P(j1)z P0 z Nz N Lnjz
Fig. 5, de ser as, se concluye la condicion de no interseccion
entre rectangulos, en caso contrario, se procede a verificar la t es el valor que toma el parametro que satisface la ecuacion
segunda condicion, ya que ambos rectangulos, en este caso, vectorial de la recta de interseccion inter-planos en el punto
se encuentran en contacto con Li . de corte con cada recta del rectangulo Lnj ; s es el valor
5

correspondiente para la recta tratada sobre el rectangulo. Los Algorithm 1 Detection algorithm
valores de SiA y SiB se hayan verificando los valores s Precondition:
de cada punto de corte, de ellos se filtran los que esten 1: CollisionF inish F alse
comprendidos entre 0 y 1, luego se obtiene SiA = min (pcij ) 2: F CollisionLink F alse
0s1
y SiB = max (pcij ). 3: F CollisionP lane F alse
0s1 Result: CollisionF inish
4: if (CollisionArm) then
mento [SiA , SiB ] le corresponde un segmento [siA , siB ] que es
un rango medido sobre la linea Lnj del rectangulo y [tiA , tiB ]
6: Break;
que es un rango medido sobre la lnea de interseccion Lni , por
7: else if (CollisionEnviroment) then
lo tanto, para estimar si hay solapamiento entre rectangulos
8: CollisionF inish T rue
basta con determinar si dos segmentos correspondientes a
9: else
dos planos distintos [t1A , t1B ] y [t2A , t2B ] estan separados o
10: CollisionF inish F alse
no. Si no hay interseccion de segmentos en t, tampoco hay
11: end if
interseccion entre rectangulos segun la condicion 2.
Function 1: CollisionArm
III-B. Algoritmo para la Interseccion de cuerpos prismaticos 13: for (linkj=i+2 kinematicChain) do
El algoritmo tiene como condiciones iniciales tres variables 14: F CollisionLink F CollisionLink or
algoritmo principal, el cual esta compuesto por estructuras 15: end for
de decisiones, las cuales se encargan de hacer llamado a las 16: end for
funciones. La funcion uno se encarga de evaluar las restriccio- 17: Return F CollisionLink
nes cinematica por articulacion, con el fin de garantizar el no Function 2: CollisionEnviroment
contacto entre eslabones consecutivos. En caso de identificar 18: for (linki kinematicChainn ) do
Por lo que dentro de la estructura de decision, CollisionFinish 20: for (P lanek Environment) do
toma el valor verdadero identificado la colision; es decir, 21: F CollisionP lane F CollisionP lane or
evalua si existe colision entre eslabones que disten mas de CollisionP lane(Linki .P lanej , P lanek )
una posicion en la cadena cinematica, comparando todas las 22: end for
4 caras del eslabon i-esimo con las caras de los eslabones i- 23: end for
e simo+2, hasta llegar al final de la cadena. La funcion dos 24: end for
por su parte, tiene como objetivo evaluar la interseccion entre 25: Return F CollisionP lane
todos los rectangulos que conforman la cadena cinematica,
con todos los rectangulos que conforman los demas objetos
del ambiente del robot HP20D. Uno de los aspectos centrales a considerar para la correcta
IV. P RUEBAS Y R ESULTADOS el espacio, es el encapsulamiento de los eslabones de una
Para probar el funcionamiento del detector de colisiones, cadena cinematica en el prisma mas pequeno que pueda
se realizo una interpolacion lineal entre dos posiciones en el contenerlos. En este proceso, si bien, se asumen como parte
espacio del trabajo del robot, posicion inicial a la derecha de la del robot espacios vacos, estos no son significativos y en
caja y posicion final a la izquierda de la caja. En cada posicion cambio de ello, se obtiene un ahorro en costo computacional
intermedia se hizo un llamado al detector de colisiones y el del algoritmo.
el a nimo de dibujar en color verde las posiciones libres de en el mallado de la superficie de los objetos, donde cada
colision y en color rojo, las posiciones en las cuales el robot malla es un muestreo del objeto que produce una nube
estuvo en contacto consigo mismo o con la caja. El resultado de puntos tridimensionales. La discretizacion de los objetos
de la interaccion del Robot HP20D con el ambiente de trabajo permite estimar la distancia entre ellos, a partir la medicion
a lo largo de la trayectoria definida se puede apreciar en la de distancia entre puntos con alguna metrica, para as concluir
Fig. 7. All se aprecia al interior de la caja un cilindro de color sobre la presencia de alguna condicion de colision. Este tipo
verde en las posiciones libres de colision y rojo en los puntos de alternativa requiere un tiempo de ejecucion, varios ordenes
de interferencia con la caja. de magnitud, por encima del detector de colisiones basado en
interseccion de rectangulos.
V. C ONCLUSIONES Como trabajo futuro, se espera implementar el algoritmo
El detector de colisiones presentado es una propuesta rapida propuesto en plataformas mucho mas rapidas como Visual Cpp
que da solucion a un problema de gran interes en el campo de y acelerar su funcionamiento con la utilizacion de software
la planificacion de tareas y especficamente, en la planificacion paralelo usando CUDA. Adicionalmente, este modulo sera
6

## [9] S. M. LaValle, Planning algorithms. Cambridge university press, 2006.

[10] B. Burns and O. Brock, Sampling-based motion planning using predic-
tive models, in Proceedings of the 2005 IEEE International Conference
on Robotics and Automation. IEEE, 2005, pp. 31203125.
[11] S. Redon, M. C. Lin, D. Manocha, and Y. J. Kim, Fast continuous
collision detection for articulated models, Journal of Computing and
Information Science in Engineering, vol. 5, no. 2, pp. 126137, 2005.
[12] N. K. Govindaraju, D. Knott, N. Jain, I. Kabul, R. Tamstorf, R. Gayle,
M. C. Lin, and D. Manocha, Interactive collision detection between de-
formable models using chromatic decomposition, in ACM Transactions
on Graphics (TOG), vol. 24, no. 3. ACM, 2005, pp. 991999.
[13] M. Tang, Y. J. Kim, and D. Manocha, C 2 a: controlled conservative
advancement for continuous collision detection of polygonal models,
in Robotics and Automation, 2009. ICRA09. IEEE International Con-
ference on. IEEE, 2009, pp. 849854.
[14] J. D. Cohen, M. C. Lin, D. Manocha, and M. Ponamgi, I-collide:
An interactive and exact collision detection system for large-scale
environments, in Proceedings of the 1995 symposium on Interactive
3D graphics. ACM, 1995, pp. 189ff.
[15] C. Ericson, Real-time collision detection the morgan kaufmann series
in interactive 3d technology, 2004.
[16] J. Pan, I. A. Sucan, S. Chitta, and D. Manocha, Real-time collision
detection and distance computation on point cloud sensor data, in
Robotics and Automation (ICRA), 2013 IEEE International Conference
on. IEEE, 2013, pp. 35933599.
[17] M. Tang, S. Curtis, S.-E. Yoon, and D. Manocha, Iccd: Interacti-
Fig. 7: Trayectoria descrita por el robot HP20D de Motoman. ve continuous collision detection between deformable models using
En verde se muestran las posiciones libres de colision y en connectivity-based culling, IEEE Transactions on Visualization and
rojo los puntos de interferencia espacial. Computer Graphics, vol. 15, no. 4, pp. 544557, 2009.
[18] C. Lauterbach, Q. Mo, and D. Manocha, gproximity: hierarchical
gpu-based operations for collision and distance queries, in Computer
Graphics Forum, vol. 29, no. 2. Wiley Online Library, 2010, pp. 419
para resolver la tarea de estibado automatico de mercancias. 428.
Proyecto de investigacion que se encuentra en curso al interior [19] J. Pan and D. Manocha, Gpu-based parallel collision detection for
real-time motion planning, in Algorithmic Foundations of Robotics IX.
de la Universidad de la Salle, facultad de ingeniera. Springer, 2010, pp. 211228.
[20] F. Liu, T. Harada, Y. Lee, and Y. J. Kim, Real-time collision culling
AGRADECIMIENTOS of a million bodies on graphics processing units, in ACM Transactions
on Graphics (TOG), vol. 29, no. 6. ACM, 2010, p. 154.
Los autores quisieran agradecer a los programas de Inge- [21] S. M. Rubin and T. Whitted, A 3-dimensional representation for fast
niera en Automatizacion e Ingeniera Industrial por facilitar rendering of complex scenes, in ACM SIGGRAPH Computer Graphics,
vol. 14, no. 3. ACM, 1980, pp. 110116.
los medios materiales para el desarrollo del presente trabajo de [22] R. P. Paul, Robot manipulators: mathematics, programming, and control:
investigacion, as mismo, quisieramos hacer un reconocimien- the computer control of robot manipulators. Richard Paul, 1981.
to a los estudiantes de la asignatura Aplicaciones de robotica [23] T. Messay, R. Ordon ez, and E. Marcil, Computationally efficient and
robust kinematic calibration methodologies and their application to
industrial por haber participado activamente en el desarrollo industrial robots, Robotics and Computer-Integrated Manufacturing,
del algoritmo base. vol. 37, pp. 3348, 2016.

R EFERENCES
[1] International federation of robotics ifr, http://www.ifr.org/industrial-
robots/statistics/, 2013, accessed: 21-Jul-2016.
[2] J. Pan, S. Chitta, and D. Manocha, Fcl: A general purpose library for
collision and proximity queries, in Robotics and Automation (ICRA),
2012 IEEE International Conference on. IEEE, 2012, pp. 38593866.
[3] E. G. Gilbert, D. W. Johnson, and S. S. Keerthi, A fast procedure for
computing the distance between complex objects in three-dimensional
space, IEEE Journal on Robotics and Automation, vol. 4, no. 2, pp.
193203, 1988.
[4] M. C. Lin and J. F. Canny, A fast algorithm for incremental distance
calculation, in Robotics and Automation, 1991. Proceedings., 1991
IEEE International Conference on. IEEE, 1991, pp. 10081014.
[5] Software library for interference detection -version 2.1.0,
http://solid.sourceforge.net/, 2002, accessed: 21-Jul-2016.
[6] S. Gottschalk, M. C. Lin, and D. Manocha, Obbtree: A hierarchical
structure for rapid interference detection, in Proceedings of the 23rd
annual conference on Computer graphics and interactive techniques.
ACM, 1996, pp. 171180.
[7] J. T. Klosowski, M. Held, J. S. Mitchell, H. Sowizral, and K. Zikan,
Efficient collision detection using bounding volume hierarchies of k-
dops, IEEE transactions on Visualization and Computer Graphics,
vol. 4, no. 1, pp. 2136, 1998.
[8] E. Larsen, S. Gottschalk, M. C. Lin, and D. Manocha, Fast proxi-
mity queries with swept sphere volumes, Technical Report TR99-018,
Department of Computer Science, University of North Carolina, Tech.
Rep., 1999.