Page 21 - Fister jr., Iztok, Andrej Brodnik, Matjaž Krnc and Iztok Fister (eds.). StuCoSReC. Proceedings of the 2019 6th Student Computer Science Research Conference. Koper: University of Primorska Press, 2019
P. 21
c1 is at most d, then these object do not collide in c2
either.

The key difficulty with applying CA to industrial robots Figure 2: Conservative Advancement.
is that robot movements are defined in the joint configu-
ration space, whereas the distance queries compute the al- 2.3 Comparison of the Two Approaches
lowed displacement in the Cartesian space. To overcome this
discrepancy, an upper estimation of the Cartesian displace- The boolean collision queries used by the sampling-based
ment caused by any given joint motion is required. This approach are an order of magnitude faster than distance
paper compares two implementations of this upper bound: queries. CA can balance this difference by taking larger
the original bound from [6] and an improved bound. The steps, and therefore executing less queries, especially in large
bounds use the following information: open spaces. A crucial qualitative difference between the two
approaches is that CA gives a formal guarantee of the geo-
• ϕ = (ϕ0, ϕ1, ..., ϕm): for an m axis industrial robot, metrical feasibility of continuous robot movements. More-
the difference of joint angles between the start and over, CA can be naturally extended to maintain a specified
end configurations of the motion. safety distance between the objects in the work cell.

• di, ai: Denavit-Hartenberg parameters of the ith robot
link (joint offsets in z and y).

• li: length of ith link from the lower joint node to the
farthest point of the robot link geometry.

• ri: distance of upper and lower joints of the ith robot 3. COMPUTATIONAL EXPERIMENTS
link.
The presented algorithms were implemented in C# in MS
Based on these input data, an upper bound of δi,j = ( j ((rx + Visual Studio. The solution contains separate projects for
x=i of PQP (a native C++ project with C# wrapper), CollisionLi-
x brary (a C# class library including UR5, UR10 robot mod-
lx) y=i (ϕy ))) can be given on the relative displacement els, RobotiQ and other grippers, implementations of collision
detection, path planning, and path smoothing algorithms),
the ith and jth element of the kinematic chain. CellVisualizer (a WPF application for the graphical anima-
tion of the work cell and the computed paths), as well as a
Again, the appropriate choice and ordering of distance queries console application for executing tests and measurements.
is crucial for computational efficiency. For this purpose, the
proposed algorithm maintains a queue of so-called CA tasks, A reference solution was developed in the commercial robot
each CA task consisting of a pair of collision objects, as well simulation and off-line programming software called RoboDK
as a start and end configuration of the motion. At every [5] for verifying the correctness of the results and for com-
point in time, the queue is ordered by the length of the mo- paring the computational performance to the state-of-the-
tion and the historic likelihood of collision between the two art. RoboDK has a Python API to implement custom al-
objects. Initially, the queue contains one CA task for each gorithms, and offers high-level functionality for simulating
relevant object pair with the original start and end configu- robot movements and collision detection. In the presented
rations of the motion. experiments, the Move_JTest(configA, configB, samplFreq)
method of RoboDK was used, which implements a sampling-
In each iterative step, the first CA task is taken from the based approach for checking robot movements. It should be
noted that this method finds every colliding object pair (al-
queue, and the distance of the two collision objects is com- though this information is not used later), whereas our im-
plementation looks for the first collision only. Some differ-
puted in the mid-point of the motion, i.e., configuration ence in the performance of the two approaches may also stem
from the difference of the publicly available UR5 robot ge-
c( 1 ). If the query returns with a positive distance, then con- ometry adopted in our implementation and the robot model
2 applied in RoboDK. All experiments were performed on an
−) + Intel i5-4200M 2.5GHz dual-core CPU and 8GB RAM.
figurations c( 1 and c( 1 ), i.e., the first and last proven
2 2 3.1 Experiment Design

collision-free configurations before and after the mid-point The work cell used in the experiment contains a UR5 robot
equipped with a Robotiq gripper, as well as a robot stand
are determined according to the above bound. If these are and a work table with fixtures for assembling a ball valve.
The number of collision objects is 10, with 165 000 triangles
different from the start and end configurations of the orig- altogether, resulting in 27 active collision rules. The exper-
imental workspace has large collision-free spaces as ca. 80%
inal CA task, then two new CA tasks corresponding to of checked movements are collision-free. The rate of col-
liding and non-colliding movements greatly affects perfor-
[c(0), c( 1 − )] and [c( 1 +), c(1)] are created and inserted into
2 2

the queue. The process is terminated when a collision is

encountered or the queue is empty, where the latter means

that the original movement is proven to be collision-free.

The accuracy of the upper bounds on the displacement greatly
influences the number of distance queries executed. The
original bound of [6] uses the bound for most distant ob-
jects in the kinematic chain for every pair of collision objects.
The proposed minor improvement is to apply the bound δi,j
corresponding to the specific objects.

StuCoSReC Proceedings of the 2019 6th Student Computer Science Research Conference 21
Koper, Slovenia, 10 October
   16   17   18   19   20   21   22   23   24   25   26