Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
The Delta Robot has 4-degrees-of-freedom (dof), 3-dof for XYZ translation, plus a fourth inner
leg to control a single rotational freedom at the end-effector platform (about the axis perpendicular to the
platform). The remainder of this document will focus only on the 3-dof XYZ translation-only Delta
Robot since that is being widely applied by 3D printers and Arduino hobbyists.
Presented is a description of the 3-dof Delta Robot, followed by kinematics analysis including
analytical solutions for the inverse position kinematics problem and the forward position kinematics
problem, and then examples for both, snapshots and trajectories. The velocity equations are also derived
This is presented for both revolute-input and prismatic-input Delta Robots.
For referencing this document, please use:
R.L. Williams II, The Delta Parallel Robot: Kinematics Solutions, Internet Publication,
www.ohio.edu/people/williar4/html/pdf/DeltaKin.pdf, April 2015.
1
2
R. Clavel, 1991, Conception d'un robot parallle rapide 4 degrs de libert, Ph.D. Thesis, EPFL, Lausanne, Switzerland.
R. Clavel, 1990, Device for the Movement and Positioning of an Element in Space, U.S. Patent No. 4,976,582.
Table of Contents
REVOLUTE-INPUT DELTA ROBOT ................................................................................................... 3
REVOLUTE-INPUT DELTA ROBOT DESCRIPTION ........................................................................................ 3
REVOLUTE-INPUT DELTA ROBOT MOBILITY ............................................................................................. 7
PRACTICAL REVOLUTE-INPUT DELTA ROBOTS ......................................................................................... 9
REVOLUTE-INPUT DELTA ROBOT KINEMATICS ANALYSIS ....................................................................... 10
Inverse Position Kinematics (IPK) Solution ....................................................................................... 11
Forward Position Kinematics (FPK) Solution ................................................................................... 12
Revolute-Input Delta Robot Velocity Kinematics Equations .............................................................. 15
REVOLUTE-INPUT DELTA ROBOT POSITION KINEMATICS EXAMPLES ...................................................... 16
Inverse Position Kinematics Examples .............................................................................................. 16
Forward Position Kinematics Examples ............................................................................................ 19
PRISMATIC-INPUT DELTA ROBOT ................................................................................................. 22
PRISMATIC-INPUT DELTA ROBOT DESCRIPTION ...................................................................................... 22
PRACTICAL PRISMATIC-INPUT DELTA ROBOTS ........................................................................................ 25
PRISMATIC-INPUT DELTA ROBOT KINEMATICS ANALYSIS ....................................................................... 26
Inverse Position Kinematics (IPK) Solution ...................................................................................... 27
Forward Position Kinematics (FPK) Solution ................................................................................... 29
Prismatic-Input Delta Robot Velocity Kinematics Equations ............................................................ 33
PRISMATIC-INPUT DELTA ROBOT POSITION KINEMATICS EXAMPLES ...................................................... 34
Inverse Position Kinematics Examples .............................................................................................. 34
Forward Position Kinematics Examples ............................................................................................ 37
ACKNOWLEDGEMENTS ................................................................................................................... 40
APPENDICES ......................................................................................................................................... 41
APPENDIX A. THREE-SPHERES INTERSECTION ALGORITHM ................................................................... 41
Example .............................................................................................................................................. 43
Imaginary Solutions ........................................................................................................................... 43
Singularities ....................................................................................................................................... 43
Multiple Solutions .............................................................................................................................. 44
APPENDIX B. SIMPLIFIED THREE-SPHERES INTERSECTION ALGORITHM ................................................ 45
The three-dof Delta Robot is capable of XYZ translational control of its moving platform within
its workspace. Viewing the three identical RUU chains as legs, points Bi , i 1, 2,3 are the hips, points
Ai , i 1, 2,3 are the knees, and points Pi , i 1,2,3 are the ankles. The side length of the base
equilateral triangle is sB and the side length of the moving platform equilateral triangle is sP. The
moving platform equilateral triangle is inverted with respect to the base equilateral triangle as shown, in
a constant orientation.
B
the Cartesian variables are PP x y z . The design shown has high symmetry, with three upper
T
leg lengths L and three lower lengths l (the parallelogram four-bar mechanisms major lengths).
The Delta Robot fixed base and platform geometric details are shown on the next page.
The fixed-base revolute joint points Bi are constant in the base frame {B} and the platform-fixed
U-joint connection points Pi are constant in the base frame {P}:
B
B2
B
B1 wB
0
3
wB
2
wB
2
3
wB
B
B3 wB
2
sP
2
P
P2 wP
0
P
P1 u P
0
sP
2
P
P3 wP
0
sB
2
B
b1 wB
0
sB
2
B
b3 wB
0
0
b2 uB
0
where:
wB
name
sB
sP
L
l
h
wB
uB
wP
uP
3
sB
6
uB
3
sB
3
wP
meaning
base equilateral triangle side
platform equilateral triangle side
upper legs length
lower legs parallelogram length
lower legs parallelogram width
planar distance from {0} to near base side
planar distance from {0} to a base vertex
planar distance from {P} to near platform side
planar distance from {P} to a platform vertex
3
sP
6
uP
3
sP
3
value (mm)
567
76
524
1244
131
164
327
65
131
The model values above are for a specific commercial delta robot, the ABB FlexPicker IRB 360-1/1600,
scaled from a figure (new.abb.com/products). Though Delta Robot symmetry is assumed, the following
methods may be adapted to the general case.
M 6( N 1) 5J1 4 J 2 3J3
where:
M is the mobility, or number of degrees-of-freedom
N is the total number of links, including ground
J1 is the number of one-dof joints
J2 is the number of two-dof joints
J3 is the number of three-dof joints
J1 one-dof joints: revolute and prismatic joints
J2 two-dof joints: universal joint
J3 three-dof joints: spherical joint
For the as-designed Delta Robot, we have:
N 17
J1 21
J2 0
M 9 dof
J3 0
As often happens, the Kutzbach equation fails because the result must obviously be 3-dof. This result
predicts the Delta is a severely overconstrained statically indeterminate structure, which is incorrect.
The Kutzbach equation knows nothing about special geometry in the Delta Robot case, there
are three parallel four-bar mechanisms. The overall robot would work kinematically identically to the
original Delta Robot if we removed one of the long parallel four-bar mechanism links, along with two
revolute joints each. With this equivalent case, the Kutzbach equation yields:
N 14
J1 15
J2 0
M 3 dof
J3 0
which is correct. An alternative approach to calculating the Delta Robot mobility is by ignoring the
three parallel four-bar mechanisms, replacing each with a single link instead. In this we must count a
universal joint at either end of this virtual link. This approach follows the simplified Delta Robot
naming convention 3-RUU. The Kutzbach equation for this case also succeeds:
N 8
J1 3
J2 6
M 3 dof
J3 0
Either of the second two approaches works. The author prefers the former since it is closer to the actual
Delta Robot design.
10
B i B L i B l i B PP PB R P Pi B PP P Pi
i 1,2,3
li
l P P B L
B
i 1,2,3
It will be more convenient to square both sides of the constraint equations above to avoid the square-root
in the Euclidean norms:
li2
l
B
i 1,2,3
B
Again, the Cartesian variables are PP x y z . The constant vector values for points Pi
T
The vectors
L
B
1 2 3 :
T
L1 L cos1
L sin
1
B
L2
3
L cos 2
2
L cos 2
2
L sin 2
L cos 3
B
L3 L cos 3
2
L sin 3
Substituting all above values into the vector-loop closure equations yields:
l1 y L cos 1 a
z L sin
1
3
L cos 2 b
x
2
B
l 2 y 2 L cos 2 c
z L sin 2
3
L cos 3 b
x
2
B
l3 y 2 L cos 3 c
z L sin 3
11
a wB uP
where:
sP
3
wB
2
2
1
c wP wB
2
And the three constraint equations yield the kinematics equations for the Delta Robot:
2 L ( y a ) cos 1 2 zL sin 1 x 2 y 2 z 2 a 2 L2 2 ya l 2 0
L ( 3( x b) y c ) cos 2 2 zL sin 2 x 2 y 2 z 2 b 2 c 2 L2 2 xb 2 yc l 2 0
L ( 3( x b) y c ) cos 3 2 zL sin 3 x 2 y 2 z 2 b 2 c 2 L2 2 xb 2 yc l 2 0
B
B
B
The three absolute vector knee points are found using Ai Bi Li , i 1,2,3 :
A1 wB L cos1
L sin 1
(wB L cos 2 )
B
(wB L cos 2 )
A2
2
L sin 2
B
A3
3
(wB L cos3 )
2
(wB L cos3 )
2
L sin 3
The 3-dof Delta Robot inverse position kinematics (IPK) problem is stated: Given the Cartesian
B
position of the moving platform control point (the origin of {P}), PP x y z , calculate the three
T
required actuated revolute joint angles 1 2 3 . The IPK solution for parallel robots is often
T
straightforward; the IPK solution for the Delta Robot is not trivial, but can be found analytically.
Referring to the Delta Robot kinematic diagram above, the IPK problem can be solved independently for
each of the three RUU legs. Geometrically, each leg IPK solution is the intersection between a known
B
circle (radius L, centered on the base triangle R joint point Bi ) and a known sphere (radius l, centered
P
on the moving platform vertex Pi ).
Ei cos i Fi sin i Gi 0
where:
i 1,2,3
12
E1 2 L ( y a )
F1 2 zL
G1 x 2 y 2 z 2 a 2 L2 2 ya l 2
E2 L ( 3( x b) y c )
E3 L( 3( x b) y c)
F2 2 zL
F3 2 zL
G2 x 2 y 2 z 2 b 2 c 2 L2 2( xb yc ) l 2
G3 x 2 y 2 z 2 b 2 c 2 L2 2( xb yc) l 2
The equation Ei cos i Fi sin i Gi 0 appears a lot in robot and mechanism kinematics and is readily
solved using the Tangent Half-Angle Substitution.
If we define
ti tan
cos i
then
1 ti2
1 ti2
and
sini
2ti
1 ti2
Fi Ei2 Fi 2 Gi2
Gi Ei
i 2 tan 1 (ti )
Two i solutions result from the in the quadratic formula. Both are correct since there are two valid
solutions knee left and knee right. This yields two IPK branch solutions for each leg of the Delta
Robot, for a total of 8 possible valid solutions. Generally the one solution with all knees kinked out
instead of in will be chosen.
The 3-dof Delta Robot forward position kinematics (FPK) problem is stated: Given the three
actuated joint angles 1 2 3 , calculate the resulting Cartesian position of the moving platform
T
B
control point (the origin of {P}), PP x y z . The FPK solution for parallel robots is generally
T
very difficult. It requires the solution of multiple coupled nonlinear algebraic equations, from the three
constraint equations applied to the vector loop-closure equations (derived previously). Multiple valid
solutions generally result.
13
Thanks to the translation-only motion of the 3-dof Delta Robot, there is a straightforward
analytical solution for which the correct solution set is easily chosen. Since 1 2 3 are given,
T
B
B
B
we calculate the three absolute vector knee points using Ai Bi Li , i 1,2,3 . Referring to the
Delta Robot FPK diagram below, since we know that the moving platform orientation is constant,
B
B
P
always horizontal with PB R I3 , we define three virtual sphere centers Aiv Ai Pi , i 1,2,3 :
A1v wB L cos1 uP
L sin 1
B
A2v
s
3
(wB L cos 2 ) P
2
2
1
(wB L cos 2 ) wP
2
L sin 2
3
s
(wB L cos 3 ) P
2
2
1
B
A3v (wB L cos 3 ) wP
2
L sin 3
and then the Delta Robot FPK solution is the intersection point of three known spheres. Let a sphere be
referred as a vector center point {c} and scalar radius r, ({c}, r). Therefore, the FPK unknown point
A1v , l)
A2v , l)
A3v , l).
14
Appendix A presents an analytical solution for the intersection point of the three given spheres,
from Williams et al.3 This solution also requires the solving of coupled transcendental equations. The
appendix presents the equations and analytical solution methods, and then discusses imaginary solutions,
singularities, and multiple solutions that can plague the algorithm, but all turn out to be no problem in
this design.
In particular, with this existing three-spheres-intersection algorithm, if all three given sphere
centers
Aiv have the same Z height (a common case for the Delta Robot), there will be an
algorithmic singularity preventing a successful solution (dividing by zero). One way to fix this problem
is to simple rotate coordinates so all
Aiv Z values are no longer the same, taking care to reverse this
coordinate transformation after the solution is accomplished. However, we present another solution
(Appendix B) for the intersection of three spheres assuming that all three sphere Z heights are identical,
to be used in place of the primary solution when necessary.
Another applicable problem to be addressed is that the intersection of three spheres yields two
solutions in general (only one solution if the spheres meet tangentially, and zero solutions if the center
distance is too great for the given sphere radii l in this latter case the solution is imaginary and the
input data is not consistent with Delta Robot assembly). The spheres-intersection algorithm calculates
both solution sets and it is possible to automatically make the computer choose the correct solution by
ensuring it is below the base triangle rather than above it.
This three-spheres-intersection approach to the FPK for the Delta Robot yields results identical
B
to solving the three kinematics equations for PP x y z given 1 2 3 .
T
R.L. Williams II, J.S. Albus, and R.V. Bostelman, 2004, 3D Cable-Based Cartesian Metrology
System, Journal of Robotic Systems, 21(5): 237-257.
15
The revolute-input Delta Robot velocity kinematics equations come from the first time derivative
of the three position constraint equations presented earlier:
2 Ly cos 1 2 L( y a )1 sin 1 2 Lz sin 1 2 Lz1 cos 1 2 xx 2( y a ) y 2 zz 0
L( 3 x y ) cos 2 L( 3( x b) y c)2 sin 2 2 Lz sin 2 2 Lz2 cos 2 2( x b) x 2( y c) y 2 zz 0
L ( 3 x y ) cos 3 L ( 3( x b) y c)3 sin 3 2 Lz sin 3 2 Lz3 cos 3 2( x b) x 2( y c ) y 2 zz 0
Re-written:
xx ( y a ) y Ly cos 1 zz Lz sin 1 L( y a )1 sin 1 Lz1 cos 1
2( x b) x 2( y c) y L( 3 x y ) cos 2 2 zz 2 Lz sin 2 L( 3( x b) y c)2 sin 2 2 Lz2 cos 2
2( x b) x 2( y c) y L( 3 x y ) cos 2 zz 2 Lz sin L( 3( x b) y c) sin 2 Lz cos
3
A X = B
x
2( x b) 3L cos 2
2( x b) 3L cos 3
y a L cos 1
2( y c ) L cos 2
2( y c) L cos 3
z L sin 1 x b11 0
2( z L sin 2 ) y 0 b22
0
2( z L sin 3 ) z 0
where:
0 1
0 2
b33 3
16
P 0
B
P 0.3
B
17
The moving platform control point {P} traces an XY circle of center 0 0 1 m and radius 0.5
m. At the same time, the Z displacement goes through 2 complete sine wave motions centered on Z 1
m with a 0.2 m amplitude.
T
This IPK trajectory, at the end of motion, is pictured along with the simulated Delta Parallel
Robot, in the MATLAB graphics below.
18
19
Snapshot Examples
(the admissible solution below the base, using the equal-Z-heights spheres intersection algorithm):
P 0
B
General Position.
Given 10 20 30
0 1.065 m
T
solution below the base, using the non-equal-Z-heights spheres intersection algorithm):
P 0.108
B
0.180 1.244 m
T
given
P 0
20
The IPK solution is more useful for Delta Robot control, to specify where the tool should be in
XYZ. This FPK trajectory example is just for demonstration purposes, not yielding any useful robot
motion. Simultaneously the three revolute joint angles are commanded as follows:
1 (t ) max sin(t )
2 (t ) max sin(2t )
3 (t ) max sin(3t )
where max 45 and t proceeds from 0 to 2 in 100 steps. This closed FPK trajectory, at the end of
motion, is pictured along with the simulated Delta Parallel Robot, in the MATLAB graphics below
FPK Trajectory
21
22
This robot is also known as the Linear Delta Robot or the Linear-Rail Delta Robot. The constant
geometry (base points, platform vertices, etc.) presented earlier for the revolute-input Delta robot still
apply to the prismatic-input Delta Robot. Also, the Mobility (dof) calculations for the prismatic-input
case are identical to that presented for the revolute-input case, yielding M = 3. The Prismatic-Input
Delta Robot fixed base and platform geometric details are shown on the next page.
23
24
The fixed-base prismatic joint points Bi are constant in the base frame {B} and the platformfixed U-joint connection points Pi are constant in the base frame {P}:
3
RB
RB cos 210 2
B
B1 RB sin 210 RB
2
0
3
RB
RB cos330 2
B
B2 RB sin330 RB
2
0
sP
2
P
P2 wP
0
sP
2
P
P1 wP
0
RB cos90 0
B
B3 RB sin 90 RB
0
0
0
P3 uP
0
sB
2
B
b2 wB
0
sB
2
B
b1 wB
0
0
b3 uB
0
where:
wB
name
sB
RB
sP
Lmin
Lmax
l
h
wB
uB
wP
uP
oX
oY
H
3
sB
6
uB
3
sB
3
wP
meaning
base equilateral triangle side
base radius from origin to P joints (Bi)
platform equilateral triangle side
i = 1,2,3 minimum prismatic joints lengths
i = 1,2,3 maximum prismatic joints lengths
lower legs parallelogram length
lower legs parallelogram width
planar distance from {0} to near base side
planar distance from {0} to a base vertex
planar distance from {P} to near platform side
planar distance from {P} to a platform vertex
nozzle X offset
nozzle Y offset
frame height
3
sP
6
uP
value (mm)
432
142
127
67
479
264
44
125
249
37
73
10
30
686
3
sP
3
25
The model values above are for a specific commercial prismatic-input delta robot 3D printer, the Delta
Maker (deltamaker.com). Though Delta Robot symmetry is assumed, the following methods may be
adapted to the general case for the prismatic-input delta robot.
Note that each individual prismatic length limits are 67 Li 479 mm; however, for all three
prismatic lengths equal, Li 354 mm is the maximum extent to avoid motion through the 3D printing
surface.
forums.reprap.org
deltamaker.com
26
B i B L i B l i B PP PB R P Pi B PP P Pi
i 1,2,3
The three applicable constraints state that the lower leg lengths must have the correct, constant length l
(the virtual length through the center of each parallelogram):
li
l P P B L
B
i 1,2,3
It will be more convenient to square both sides of the constraint equations above to avoid the square-root
in the Euclidean norms:
li2
l
B
i 1,2,3
B
Again, the Cartesian variables are PP x y z . The constant vector values for points Pi
T
The vectors
L
B
L L1 L2 L3 ; these formulas are much simpler than those for the rotational-input case presented
T
earlier:
0
Li 0
Li
i 1,2,3
Substituting all above values into the vector-loop closure equations yields:
l1 y a
z L
1
xb
l2 y c
z L
2
xb
l3 y c
z L
3
a wB uP
where:
3
sP
wB
2
2
1
c wP wB
2
And the three constraint equations yield the kinematics equations for the prismatic-input Delta Robot:
27
x 2 y 2 z 2 a 2 L12 2 zL1 2 ya l 2 0
x 2 y 2 z 2 b 2 c 2 L22 2 xb 2 yc 2 zL2 l 2 0
x 2 y 2 z 2 b 2 c 2 L23 2 xb 2 yc 2 zL3 l 2 0
B
B
B
The three absolute vector knee points are found using Ai Bi Li , i 1,2,3 :
A1 wB
L
1
wB
1
B
wB
A2
2
L2
B
A3
3
wB
2
wB
2
L3
The 3-dof prismatic-input Delta Robot inverse position kinematics (IPK) problem is stated:
B
Given the Cartesian position of the moving platform control point (the origin of {P}), PP x y z ,
T
prismatic-input Delta Robot is much simpler than that for the revolute-input Delta robot presented
earlier and is easily found analytically. Referring to the prismatic-input Delta Robot kinematic diagram
above, the IPK problem can be solved independently for each of the three PUU legs. Geometrically,
each leg IPK solution is the intersection between a vertical line of unknown length Li (passing through
B
P
base point Bi ) and a known sphere (radius l, centered on the moving platform vertex Pi ).
This solution may be done geometrically/trigonometrically. However, we will now accomplish
this IPK solution analytically, using the three constraint equations independently (derived previously).
The three independent scalar IPK equations are quadratic equations of the form:
L2i 2 zLi Ci 0
i 1,2,3
where:
C1 x 2 y 2 z 2 a 2 2 ya l 2
C 2 x 2 y 2 z 2 b 2 c 2 2 xb 2 yc l 2
C3 x 2 y 2 z 2 b 2 c 2 2 xb 2 yc l 2
So we simply have three independent quadratic equations to solve for the prismatic-length inputs Li, for
each leg independently, where Ai = 1, Bi = 2z, and the Ci are given above. The IPK solution simplifies
quite nicely:
28
Li z z 2 Ci
i 1,2,3
Two Li solutions result from the in the quadratic formula. These solutions can be referred to as knee
up and knee down for each leg. This yields two IPK branch solutions for each leg of the prismatic-input
Delta Robot, for a total of 8 possible solutions. Generally the one overall solution with all knees up will
be chosen.
When z 2 Ci , the solution for Li is imaginary. This case should never occur in theory since the
prismatic joint can extend as far as needed to maintain a real solution for each leg. However, in practice,
there are of course prismatic joint limits. When z 2 Ci , the two solution branches (knee up and knee
down) have become the same solution.
The IPK input xyz is for the moving platform geometric center. When the desired control point
is offset from the center (as in the case of many 3D printers), an initial transformation is required prior to
implementing the IPK solution:
where NT
0
0
1
0
0
0 OX
0 OY
1 0
0 1
and
1
0
P 1
NT
0
0
1
0
0
0 OX
0 OY
1 0
0 1
This is a very simple transformation since the prismatic-input Delta Robot allows only translational
B
B
motion, with P R N R I3 . To save a lot of computations with 1s and 0s, simply subtract OX and
OY from the x and y components, respectively, of the given (xyz)N to obtain the IPK moving-platformcenter input xyz. N stands for nozzle in a 3D printer. The z component is unchanged in this
transformation.
29
The 3-dof prismatic-input Delta Robot forward position kinematics (FPK) problem is stated:
Given the three actuated joint angles L L1 L2 L3 , calculate the resulting Cartesian position of the
T
robots is generally very difficult. It requires the solution of multiple coupled nonlinear algebraic
equations, from the three constraint equations applied to the vector loop-closure equations (derived
previously). Multiple valid solutions generally result.
Thanks to the translation-only motion of the 3-dof Delta Robot, there is a straightforward
analytical solution for which the correct solution set is easily chosen. Since L L1 L2
L3 are
T
B
B
B
given, we calculate the three absolute vector knee points using Ai Bi Li , i 1,2,3 . Referring to
the prismatic-input Delta Robot FPK diagram below, since we know that the moving platform
orientation is constant, always horizontal with P R I3 , we define three virtual sphere centers
B
Aiv B Ai P Pi , i 1,2,3 :
B
A1v wB uP
L
1
B
A 2v
s
3
wB P
2
2
1
wB wP
2
L2
3
s
wB P
2
2
1
B
A3v wB wP
2
L3
and then the prismatic-input Delta Robot FPK solution is the intersection point of three known spheres.
Let a sphere be referred as a vector center point {c} and scalar radius r, ({c}, r). Therefore, the FPK
unknown point
A1v , l)
A2v , l)
A3v , l).
30
Appendix A presents an analytical solution for the intersection point of the three given spheres,
from Williams et al.4 This solution also requires the solving of coupled transcendental equations. The
appendix presents the equations and analytical solution methods, and then discusses imaginary solutions,
singularities, and multiple solutions that can plague the algorithm, but all turn out to be no problem in
this design.
In particular, with this existing three-spheres-intersection algorithm, if all three given sphere
centers
Aiv have the same Z height (a common case for the Delta Robot), there will be an
algorithmic singularity preventing a successful solution (dividing by zero). One way to fix this problem
is to simple rotate coordinates so all
Aiv Z values are no longer the same, taking care to reverse this
coordinate transformation after the solution is accomplished. However, we present another solution
R.L. Williams II, J.S. Albus, and R.V. Bostelman, 2004, 3D Cable-Based Cartesian Metrology
System, Journal of Robotic Systems, 21(5): 237-257.
31
(Appendix B) for the intersection of three spheres assuming that all three sphere Z heights are identical,
to be used in place of the primary solution when necessary.
Another applicable problem to be addressed is that the intersection of three spheres yields two
solutions in general (only one solution if the spheres meet tangentially, and zero solutions if the center
distance is too great for the given sphere radii l in this latter case the solution is imaginary and the
input data is not consistent with prismatic-input Delta Robot assembly). The spheres-intersection
algorithm calculates both solution sets and it is possible to automatically make the computer choose the
correct solution by ensuring it is below the base triangle rather than above it.
The FPK solution xyz is for the moving platform geometric center. When the desired control
point is offset from the center (as in the case of many 3D printers), a further transformation is required
after to implementing the FPK solution:
B
B
prismatic-input Delta Robot allows only translational motion, with P R N R I3 . To save a lot of
computations with 1s and 0s, simply add OX and OY to the x and y components, respectively, of the FPK
moving-platform-center solution xyz, to obtain the desired FPK solution (xyz)N. The z component is
unchanged in this transformation.
32
This three-spheres-intersection approach to the FPK for the prismatic-input Delta Robot yields
results identical to solving the three kinematics equations for PP x y z given L L1 L2 L3 .
Since the three constraint equations for the prismatic-input Delta Robot are much simpler than those for
the revolute-input Delta Robot, we now present an alternative FPK analytical solution. The three
constraint equations are repeated below:
T
x 2 y 2 z 2 a 2 L12 2 zL1 2 ya l 2 0
x 2 y 2 z 2 b 2 c 2 L22 2 xb 2 yc 2 zL2 l 2 0
x 2 y 2 z 2 b 2 c 2 L23 2 xb 2 yc 2 zL3 l 2 0
Subtracting the second equation from the third equation yields a linear equation, expressing x as a
function of z only:
x f ( z ) dz e
where:
L L2
d 3
2b
L23 L22
4b
Further, subtracting the first equation from the third equation and substituting x f ( z ) from above
yields another linear equation, expressing y as a function of z only:
y g ( z ) Dz E
where:
L L3 bd
D 1
ca
Substituting both x f ( z ) and y g ( z ) into the first equation yields a single equation in one
unknown z, a quadratic polynomial:
Az 2 Bz C 0
where:
A d 2 D2 1
B 2( de DE L1 aD )
C e 2 E 2 a2 L12 2aE l 2
And so the alternate analytical FPK solution is:
33
z1,2
B B 2 4 AC
2A
The prismatic-input Delta Robot velocity kinematics equations come from the first time
derivative of the three position constraint equations presented earlier:
xx ( y a ) y ( z L1 ) z ( z L1 ) L1
( x b) x ( y c) y ( z L ) z ( z L ) L
2
( x b) x ( y c ) y ( z L3 ) z ( z L3 ) L3
Written in matrix-vector form:
A X = B L
x
x b
x b
ya
yc
yc
z L1 x
z L1
z L2 y 0
z L3 z
0
0
z L2
0
0 L1
0 L2
z L3 L3
34
P 0
B
P 0.03
B
35
The moving platform control point {P} traces an XY circle of center 0 0 0.5 m and radius
0.1 m. At the same time, the Z displacement goes through 2 complete sine wave motions centered on
Z 1 m with a 0.05 m amplitude.
T
This IPK trajectory, at the end of motion, is pictured along with the simulated Delta Parallel
Robot, in the MATLAB graphics below.
36
37
Snapshot Examples
results are (the admissible lower solution, using the equal-Z-heights spheres intersection algorithm):
P 0
B
0 0.459 m
T
General Position. Given L 0.14 0.15 0.16 m, the calculated FPK results are (the admissible
T
P 0.0278
B
0.0495 0.4025 m
T
When given
given
P 0
P 0.0278
B
0 0.459 , the IPK solution calculated L 0.2 0.2 0.2 and when
38
L sin(t ) L
2
2
L sin(2t ) L
L2 (t ) Lmin
2
2
L sin(3t ) L
L3 (t ) Lmin
2
2
L1 (t ) Lmin
where L 0.1 m and t proceeds from 0 to 2 in 100 steps. This closed FPK trajectory, at the end of
motion, is pictured along with the simulated Delta Parallel Robot, in the MATLAB graphics below
FPK Trajectory
39
40
Acknowledgements
This work was initiated during the last week of the authors sabbatical from Ohio University at
the University of Puerto Rico (UPR), Mayaguez, during Fall Semester 2014. The author gratefully
acknowledges financial support from Ricky Valentin, UPR ME chair, and the Russ College of
Engineering & Technology at Ohio University.
41
Appendices
Appendix A. Three-Spheres Intersection Algorithm
We now derive the equations and solution for the intersection point of three given spheres. This
solution is required in the forward pose kinematics solution for many cable-suspended robots and other
parallel robots. Let us assume that the three given spheres are ( c1 ,r1), ( c 2 ,r2), and ( c 3 ,r3). That is,
x x1 2 y y1 2 z z1 2 r12
x x 2 2 y y 2 2 z z 2 2 r22
x x3 2 y y3 2 z z3 2 r32
(A.1)
Equations (A.1) are three coupled nonlinear equations in the three unknowns x, y, and z. The
solution will yield the intersection point P x y zT . The solution approach is to expand equations
(A.1) and combine them in ways so that we obtain x f y and z f y ; we then substitute these
functions into one of the original sphere equations and obtain one quadratic equation in y only. This can
be readily solved, yielding two y solutions. Then we again use x f y and z f y to determine the
remaining unknowns x and z, one for each y solution. Let us now derive this solution.
First, expand equations (A.1) by squaring all left side terms. Then subtract the third from the
first and the third from the second equations, yielding (notice this eliminates the squares of the
unknowns):
where:
a11 2x3 x1
a12 2 y3 y1
a13 2z3 z1
(A.2)
(A.3)
a21 2x3 x2
a22 2 y3 y 2
a23 2z3 z 2
b1 a11
a
x 12 y
a13 a13
a13
(A.4)
b2 a 21
a
x 22 y
a 23 a 23
a 23
(A.5)
42
(A.6)
where:
a4
a2
a1
a5
a3
a1
a1
a11 a 21
a13 a 23
a2
a12 a 22
a13 a 23
a3
b2
b
1
a 23 a13
(A.7)
where:
a6
a 21 a 4 a 22
a 23
a7
b2 a 21a5
a 23
Now substitute (A.6) and (A.7) into the first equation in (A.1) to eliminate x and z and obtain a
single quadratic in y only:
ay 2 by c 0
(A.8)
where:
a a42 1 a62
b 2a4 a5 x1 2 y1 2a6 a7 z1
c a5 a5 2 x1 a7 a7 2 z1 x12 y12 z12 r12
b b 2 4ac
2a
(A.9)
To complete the intersection of three spheres solution, substitute both y values y+ and y- from
(A.9) into (A.6) and (A.7):
x a4 y a5
(A.10)
z a6 y a7
(A.11)
In general there are two solutions, one corresponding to the positive and the second to the
negative in (A.9). Obviously, the + and solutions cannot be switched:
z T
z T
(A.12)
43
Example
Let us now present an example to demonstrate the solutions in the intersection of three spheres
algorithm. Given three spheres (c,r):
0 , 2
T
0 , 5
T
3 1 , 3
T
(A.13)
The intersection of three spheres algorithm yields the following two valid solutions:
z T 1 0 1T
z T 1 0.6 0.8T
(A.14)
These two solutions may be verified by a 3D sketch. This completes the intersection of three
spheres algorithm. In the next subsections we present several important topics related to this threespheres intersection algorithm: imaginary solutions, singularities, and multiple solutions.
Imaginary Solutions
The three spheres intersection algorithm can yield imaginary solutions. This occurs when the
radicand b 2 4ac in (A.9) is less than zero; this yields imaginary solutions for y , which physically
means not all three spheres intersect. If this occurs in the hardware, there is either a joint angle sensing
error or a modeling error, since the hardware should assemble properly.
A special case occurs when the radicand b 2 4ac in (A.9) is equal to zero. In this case, both
solutions have degenerated to a single solution, i.e. two spheres meet tangentially in a single point, and
the third sphere also passes through this point.
Singularities
The three spheres intersection algorithm and hence the overall forward pose kinematics solution
is subject to singularities. These are all algorithmic singularities, i.e. there is division by zero in the
mathematics, but no problem exists in the hardware (no loss or gain in degrees of freedom). This
subsection derives and analyzes the algorithmic singularities for the three spheres intersection algorithm
presented above. Different possible three spheres intersection algorithms exist, by combining different
equations starting with (A.1) and eliminating and solving for different variables first. Each has a
different set of algorithmic singularities. We only analyze the algorithm presented above.
Inspecting the algorithm, represented in equations (A.1) (A.12), we see there are four
singularity conditions, all involving division by zero.
Singularity Conditions
a13 0
a23 0
a1 0
a0
(A.15)
44
a13 2 z3 z1 0
(A.16)
a23 2 z3 z2 0
(A.17)
are satisfied when the centers of spheres 1 and 3 or spheres 2 and 3 have the same z coordinate, i.e.
z1 z3 or z 2 z3 . Therefore, in the nominal case where all four virtual sphere centers centers have the
same z height, this three-spheres intersection algorithm is always singular. An alternate solution is
presented in Appendix B to overcome this problem.
The third singularity condition,
a1
Simplifies to:
a11 a 21
0
a13 a 23
x3 x1 x3 x2
z 3 z1 z 3 z 2
(A.18)
(A.19)
For this condition to be satisfied, the centers of spheres 1, 2, and 3 must be collinear in the XZ
plane. In general, singularity condition 3 lies along the edge of the useful workspace and thus presents
no problem in hardware implementation if the system is properly designed regarding workspace
limitations.
The fourth singularity condition,
a a42 1 a62 0
(A.20)
a42 a62 1
(A.21)
Is satisfied when:
It is impossible to satisfy this condition as long as a4 and a6 from (A.6) and (A.7) are real
numbers, as is the case in hardware implementations. Thus, the fourth singularity condition is never a
problem.
Multiple Solutions
In general the three spheres intersection algorithm yields two distinct, correct solutions ( in
(A.9 A.11)). Generally only one of these is the correct valid solution, determined by the admissible
Delta Robot assembly configurations.
45
y3
z3 , and radii r1, r2, and r3 are known. The three sphere center vectors must be expressed
T
in the same frame, {B} here, and the answer will be in the same coordinate frame. The equations of the
three spheres to intersect are (choosing the first three spheres):
( x x1 ) 2 ( y y1 ) 2 ( z zn ) 2 r12
( x x2 ) ( y
2
( x x3 ) 2 ( y
(B.1)
(B.2)
(B.3)
y2 ) ( z zn ) r22
y3 ) 2 ( z zn ) 2 r32
2
Since all Z sphere-center heights are the same, we have z1 z2 z3 zn . The unknown threespheres intersection point is P x y zT . Expanding (1-3) yields:
x 2 2 x1 x x12 y 2 2 y1 y y12 z 2 2 zn z zn2 r12
(B.4)
(B.5)
(B.6)
x22
y22
x32
y32
r22
r32
(B.7)
(B.8)
All non-linear terms of the unknowns x, y cancelled out in the subtractions above. Also, all zrelated terms cancelled out in the above subtractions since all sphere-center z heights are identical.
Equations (7-8) are two linear equations in the two unknowns x, y, of the following form.
a b x c
d e y f
where:
a 2( x3 x1 )
b 2( y3 y1 )
c r12 r32 x12 y12 x32 y32
d 2( x3 x2 )
e 2( y3 y2 )
f r22 r32 x22 y22 x32 y32
(B.9)
46
x
ce bf
ae bd
(B.10)
y
af cd
ae bd
where:
(B.11)
A 1
B 2 zn
C zn2 r12 ( x x1 )2 ( y y1 )2
Knowing the unique values x, y, the two possible solutions for the unknown z are found from the
quadratic formula:
z p,m
B B 2 4C
2
(B.12)
For the Delta Robot, ALWAYS choose the z height solution that is below the base triangle, i.e.
negative z, since that is the only physically-admissible solution.
This simplified three-spheres intersection algorithm solution for x, y, z fails in two cases:
i)
When the determinant of the coefficient matrix in the x, y, linear solution (B.10) is zero.
ae bd 2(x3 x1)2( y3 y2 ) 2( y3 y1)2( x3 x2 ) 0
(B.13)
This is an algorithmic singularity whose condition can be simplified as follows. (B.13) becomes:
( x3 x1 )( y3 y2 ) ( y3 y1 )( x3 x2 )
(B.14)
If (B.14) is satisfied there will be an algorithmic singularity. Note that the algorithmic
singularity condition (B.14) is only a function of constant terms. Therefore, this singularity can be
avoided by design, i.e. proper placement of the robot base locations in the XY plane. For a symmetric
Delta Robot, this particular algorithmic singularity is avoided by design.
ii)
When the radicand in (B.12) is negative, the solution for z will be imaginary. The condition
B 2 4C 0 yields:
( x x1 ) 2 ( y y1 ) 2 r12
(B.15)
When this inequality is satisfied, the solution for z will be imaginary, which means that the robot
will not assemble for that configuration. Note that (B.15) is an inequality for a circle. This singularity
will NEVER occur if valid inputs are given for the FPK problem, i.e. the Delta Robot assembles.