and computer animation. A wide study of the perfor-
mance and applicability of such methods can be found
in (B.Geiger, 2000). Proximity query algorithms vary
in terms of their range of applicability and the type
of queries they can solve, mainly collision detection,
minimum distance computation and interpenetrations
modelling. Although most algorithms allow as input
triangulated meshes of 3D points, they differ in the
way those points are pre-processed and represented
internally in order to speed up specific queries.
There is a wide set of methods that rely on Lin-
Canny or Gilbert-Johnson-Keiethi like algorithms for
computing minimum distances between pairs of ob-
jects as I-Collide, Swift, Swift++, SOLID, DEEP. . .,
but they are only applicable to convex polytopes
(S.Ehmann and Lin, 2000; S.Ehmann and Lin, 2001;
Kim et al., 2002; Bergen, 2002). This restriction
makes them inappropriate for RPQ purposes, due to
the need to deal with more general geometric models.
More general collision detection methods usu-
ally base their efficiency on pre-computed represen-
tations by means of hierarchies of bounding volumes.
Their differences rely on the specific type of bound-
ing volumes used, ranging from binary space decom-
positions, spheres trees to oriented bounding boxes
(OBB).
Among this set of algorithms, RAPID and PQP
turn to be those that have both, fewer restrictions
in the range of allowable geometric models and an
easier application programming interface (API). Both
of them use oriented bounding boxes for performing
collision tests, and have similar time performances.
However, the fact that PQP offers a wider range
of queries, including minimum distance computation
and tolerance tests makes PQP the best option for the
proximity queries engine of RPQ, the Robotics Query
Package presented in this paper.
3 LIBRARY DESCRIPTION
The goal of the Robotic Proximity Queries (RPQ) li-
brary is to offer an easy, modular and fast proxim-
ity query package oriented to robotics. As explained
above, the aim of the project was not the development
of a new collision detector, but specialize an existing
one into the robotics field.
As described in section 2, there is a wide set of
general purpose proximity query packages. The crite-
rions used to choose PQP as the best candidate for the
development of RPQ are:
1. Types of proximity queries available.
2. High time performance on proximity queries.
3. Ability to use geometrical models based on trian-
gulated meshes of points.
4. Lack off restrictions on possible geometrical mod-
els.
The PQP library has been developed by UNC Re-
search Group on Modelling, Physically-Based Simu-
lation and Applications and offers three different kind
of queries:
- Collision detection: detecting whether two mod-
els overlap, and optionally, give the complete list
of overlapping triangle pairs.
- Distance computation: computing the minimum
distance between a pair of models.
- Tolerance verification: determining whether two
models are closer or farther than a given tolerance
distance.
RPQ has been implemented in C++ language
and its graphical interface has been developed using
OpenGL. The RPQ library can be easily integrated
into any software application.
The library interface allows non expert program-
mers to use it in an easy manner. The graphical inter-
face is a separate module, allowing the programmer
to decide whether using it or not. Fig. 1 shows the in-
tegration of the library and its graphical interface into
a generic application.
3.1 Class Description
The RPQ library is based on the Object Oriented
paradigm. Focused on this paradigm, and based on
robotic environments, three main classes have been
developed: Scenario, Object and Robot.
3.1.1 Scenario
Scenario is the workspace where the objects cohabit.
Concerning its implementation, Scenario is a class
that contains all the objects (Robots and generic ob-
jects), a global reference frame, and all the methods
necessary to generate the proximity query.
3.1.2 Object
An Object is the minimum entity that exists in a Sce-
nario. There are two types of Objects: simple and
complex. A simple Object is represented by a geo-
metrical model composed of a set of triangles referred
to a frame tied to the Object. The Object has also a
transformation matrix to refer itself to the world refer-
ence frame. A complex Object is an Object composed
of a set of geometrical models with joints (rotational
ICINCO 2007 - International Conference on Informatics in Control, Automation and Robotics
60