0% found this document useful (0 votes)
46 views29 pages

Prototype Design of A Translating Parall

This document describes the mechanical design of a prototype translating parallel robot. It has 3 identical limbs connecting a mobile platform to a fixed base, with each limb containing two links connected by a cylindrical joint, universal joint, and prismatic joint. The design aims to achieve pure translation of the mobile platform through a symmetrical configuration of the joints and links. The document outlines the kinematic model and analysis of the robot and discusses how the mechanical design was optimized through simulation and testing to validate performance before building a physical prototype.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
46 views29 pages

Prototype Design of A Translating Parall

This document describes the mechanical design of a prototype translating parallel robot. It has 3 identical limbs connecting a mobile platform to a fixed base, with each limb containing two links connected by a cylindrical joint, universal joint, and prismatic joint. The design aims to achieve pure translation of the mobile platform through a symmetrical configuration of the joints and links. The document outlines the kinematic model and analysis of the robot and discusses how the mechanical design was optimized through simulation and testing to validate performance before building a physical prototype.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 29

Prototype design of a translating parallel

robot
Massimo Callegari and Matteo-Claudio Palpacelli

Dipartimento di Meccanica, Università Politecnica delle Marche - Via Brecce


Bianche – 60131 Ancona
Ph. +39 071 2204444
Fax +39 071 2204801
E-mail: {m.callegari, m.palpacelli}@univpm.it
URL: www.dipmec.univpm.it/meccanica

Article note The present research has been partially co-funded by the Italian Ministry of
Research and University and by the Polytechnic University of Marche under PRIN03
project “Design and prototyping of application-oriented mini-PKM”.

Abstract The paper describes the mechanical design of a parallel manipulator for motions of pure
translation, whose kinematic analysis has shown very good performances such as a large
workspace and small overall dimensions of the mobile platform; in particular, the “Cartesian”
structure of the machine allowed to obtain constant accuracy and kinematic properties throughout
the workspace. The structural design has minimized the mass of the moving links and, by the
combined use of FEM and multibody codes, allowed to take into consideration the high stresses
coming from inertial forces and to evaluate a-priori the resulting dynamic properties. A physical
prototype has just been built in order to validate the developed models and assess the actual robot
performances in real operating conditions.

Keywords Parallel Kinematics Machines, Cartesian parallel robot, Mechanical


design, Dynamic analysis

1 Introduction

The complex kinematics of parallel robots is driving machine theory studies


towards the design of new minor-mobility mechanisms that are able to perform
elementary motions, like pure translations, pure rotations or even planar
displacements. In fact many common tasks may be accomplished by these
reduced mobility mechanisms themselves; in case of more complex needs, hybrid
machines can be designed (e.g. a conventional “serial” wrist on top of a “parallel”
shoulder) or mini-maxi architectures can be devised; a challenging option would
be decomposing a full-mobility task into elemental sub-tasks, to be performed by

1
Prototype design of a translating parallel robot

separate minor mobility machines, like done already in conventional machining


operations.
Among the important class of Translating Parallel Mechanisms (TPM), only
few kinematic concepts have been actually developed as far as industrial products
or research prototypes, and they are mainly based on the well-known Delta robot
[1] or on variants of the 3-UPU [2] or 3-PUU [3] architectures, also called “linear
Delta”. The present article deals with yet another TPM, whose innovative concept
had been previously outlined in [4-5], then its kinematics was characterised in [6]
and finally optimised in [7]. As a matter of fact, kinematic analysis and synthesis
are indeed the most important phases of machine design but they must be faced
with the following phases of mechanical design and prototype’s realization in
order to assess the real value of the initial concept. This is even more important in
the challenging case of robotics, since the complexity of the envisaged
architectures may fail to provide effective solutions to the problem at hand.
Therefore the article, after recalling the geometric and kinematic features of the
robot, describes the main phases of the design that led to the construction of the
physical prototype, whose performances had been previously assessed by
computer simulation and are presently being evaluated through actual
experimentation.

2 Description of the mechanism

Three identical limbs connect the mobile platform to the fixed base, see Fig. 1:
each one is composed by two links, connected to the frame by a cylindrical pair
(C) and to the mobile base by a universal pair (U) and linked together by a
prismatic joint (P); for this reason, this architecture is called 3-CPU.
If the 9 kinematic pairs are freely set in the space by avoiding particular axes
alignments, the platform shows 3 degrees of freedom of complex spatial motion;
nevertheless, a simply constrained translating machine can be obtained if the
following geometrical conditions hold:
(i) the axes of the cylindrical joint and that of the inner revolute pair in the
universal joint of ith limb are parallel to the same unit vector û i
(i=1,2,3).
(ii) uˆ i ≠ uˆ j for i ≠ j (i,j=1,2,3).
2
Prototype design of a translating parallel robot

Such conditions are satisfied by the symmetric architecture studied in the present
paper and shown in Fig. 1, where the following assumptions have been made: the
3 legs are identical and symmetrically disposed with respect to the centre of the
fixed base; the axes of the 3 cylindrical joints are orthogonal to each other and
intersect at a common point O; in each leg, the axis of the cylindrical joint is
parallel to the axis of the inner revolute pair of the universal joint and they are
both normal to the axis of the prismatic pair; the outer revolute pair in the
universal joint, that is directly connected to the mobile platform, is normal to the
inner one. It is shown further on that if the platform only translates, like in the
present case, the outer revolute pair of the universal joint is actually idle, i.e. no
relative rotation at all occurs in this pair: in this case a simpler (overconstrained)
3-CPR mechanism could be considered instead.
Some reference frames are now introduced in order to simplify the
development of the kinematic relations of the machine, as shown in Fig. 2. The
global Cartesian frame O( x, y, z ) is attached to the ground at the point O and the
other frames can be easily defined for each link by visiting its own kinematic
( )
chain. The first local frame J i I x i I , y i I , z i I of ith limb is obtained by considering

it initially coincident with the global frame: then it is rotated by φi around the
(current) zi axis and then by α around the (current) yi axis, finally a translation ai
along the direction of the (current) xi axis is performed, to allow for the variable
sliding of the cylindrical pair. It is noted that the study is initially developed by
taking the values of φi and α as parameters for compactness of expressions but in
the end it is made reference to the simpler case of φ1=0°, φ2=120°, φ3=240°
(symmetric geometry) and α=35.26° (Cartesian configuration). The second local
(
frame J i II x i II , y i II , z i II ) is obtained by considering the further rotation θi allowed
by the cylindrical pair around the (current) xi axis and the following translation di
along the direction of the (current) zi axis to take into account the sliding of the
prismatic pair. The third and fourth local frame are still centred in the same point
J i II = J i III = J i IV but are orderly rotated by γi around the (current) xi axis and by βi

around the (current) yi axis respectively to consider the two rotations allowed by
the universal joint. A further translation of ti along the (current) xi axis brings the
current frame in the point P, that is common to all the limbs provided that all the
(constant) parameters ti have the same value t: in this way the fifth local frame

3
Prototype design of a translating parallel robot

( )
J iV x iV , y iV , z iV has been defined. Two more rotations, –α around the (current) yi

axis and then –φi around the (current) zi axis, bring the current frame in the final
P(u ′, v ′, w ′) orientation, that is the same for all the three paths. It will be shown
that, with proper mounting conditions, such frame, that is solid with the mobile
platform, can be aligned with the global frame O( x, y, z ) and it will be called

P (u , v, w) in this case: therefore the vector p = OP specifies the position of the


moving platform with reference to the fixed frame.
It is noted that machine’s kinematics will be developed by assuming that the
platform is powered by driving the linear motion in the cylindrical pairs, as is
actually done in the developed prototype.

3 Mechanism kinematics

3.1 Loop-closure equations

Making reference to previously defined symbols, one loop closure equation can be
written for each limb i, i=1,2,3:

p = ai + di + t i (1)

Previous equation can be expressed in the first local frame J i I , yielding:

⎡ cϕ i cα sϕ i cα sα ⎤ ⎡ p x ⎤ ⎡1⎤ ⎡ 0 ⎤ ⎡ − cβ i ⎤
⎢ − sϕ
⎢ i cϕ i 0 ⎥ ⋅ ⎢ p y ⎥ = ⎢0⎥ ⋅ ai + ⎢− sθ i ⎥ ⋅ d i + ⎢− sβ i s(θ i + γ i )⎥⎥ ⋅ t i
⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ (2)
⎢⎣− cϕ i sα − sϕ i sα cα ⎥⎦ ⎢⎣ p z ⎥⎦ ⎢⎣0⎥⎦ ⎢⎣ cθ i ⎥⎦ ⎢⎣ sβ i c(θ i + γ i ) ⎥⎦

where, as usual, cα is a shorthand for cosα, sα for sinα and so on.


Equation (2) is the base for the study of position kinematics and is expressed
as a function of the 18 varying parameters: px, py, pz, ai, di, θi, γi, βi, i=1,2,3; since
3 variables in the previous set are usually assigned (for instance, in direct position
analysis the 3 actuation variables ai are given, while platform’s position px, py, pz
is known in inverse kinematics), if the system (2) is written for each limb i=1,2,3,
it is obtained a set of 9 equations in 15 unknowns. It is noted that (2) holds for the
general setting of the machine, that is characterized by a complex spatial motion,

4
Prototype design of a translating parallel robot

therefore to solve its kinematics 6 more independent equations can be written by


imposing the congruence of the orientation of the mobile platform.
For instance, by orderly multiplying all the rotation matrices that connect the
introduced reference frames, the orientation ORP of the mobile platform can be
expressed as a function of the articular coordinates of each limb i; making
reference to the sequence of rotations that have been defined in previous section,
it is obtained:
O
RP = R z (φi ) ⋅ R y (α ) ⋅ Rx (θ i ) ⋅ R x (γ i ) ⋅ R y (β i ) ⋅ R y (− α ) ⋅ R z (− φi ) (3)

where Rx, Ry, Rz represent rotations around the x, y and z axes respectively. By
developing all the products, the elements rhk, h,k∈(1,2,3) of this matrix can be
computed:

r11 = −cϕ i (cαsβ i + sαcβ i )(sϕ i sχ i − cϕ i sαcχ i ) +


(4.1)
( )
+ c 2ϕ i c 2αcβ i − sαcαsβ i + sϕ i (sϕ i cχ i + cϕ i sαsχ i )

(
r12 = −(cαsβ i + sαcβ i ) s 2ϕ i sχ i − sϕ i cϕ i sαcχ i + ) (4.2)
( )
+ sϕ i cϕ i c 2αcβ i − sαcαsβ i − cχ i − c 2ϕ i sαsχ i

r13 = (cαcβ i − sαsβ i )(sϕ i sχ i − cϕ i sαcχ i ) +


(4.3)
(
+ cϕ i c 2αsβ i + sαcαcβ i )
r21 = cϕ i (cαsβ i + sαcβ i )(cϕ i sχ i + sϕ i sαcχ i ) +
(4.4)
( )
+ sϕ i cϕ i − sαcαsβ i − cχ i + c 2αcβ i + s 2ϕ i sαsχ i

r22 = sϕ i (cαsβ i + sαcβ i )(cϕ i sχ i + sϕ i sαcχ i ) +


(4.5)
( )
+ s 2ϕ i c 2αcβ i − sαcαsβ i + c 2ϕ i cχ i − sϕ i cϕ i sαsχ i

r23 = (sαsβ i − cαcβ i )(cϕ i sχ i + sϕ i sαcχ i ) +


(4.6)
(
+ sϕ i sαcαcβ i + c 2αsβ i )

r31 = cϕ i sαcαcβ i − cϕ i c 2αsβ i cχ i − cϕ i s 2αsβ i +


− cϕ i sαcαcβ i cχ i − sϕ i cαsχ i
(4.7)

r32 = sϕ i sαcαcβ i − sϕ i c 2αsβ i cχ i − sϕ i s 2αsβ i +


(4.8)
− sϕ i sαcαcβ i cχ i + cϕ i cαsχ i

5
Prototype design of a translating parallel robot

r33 = s 2αcβ i − sαcαsβ i cχ i + sαcαsβ i + c 2αcβ i cχ i (4.9)

where it has been called χi=θi+γi for sake of simplicity.


Due to the well known properties of rotation matrices, only 3 new unknowns
have been actually introduced in (4.1)-(4.9) (e.g. a set of 3 Euler angles defining
the rotation matrix ORP) while 9 new equations are now available (3 independent
equations can be picked up in (4.1)-(4.9) for each link i): therefore the problem is
now well posed, even if its actual solution is really hard to find in closed-form
from the stated equations.
For the particular geometry that has been previously defined, the kinematics
can be greatly simplified by showing that the mobile platform only translates in
space, which is done in the following section.

3.2 Analysis of mobility

In order to prove that the 3-CPU machine under study does not rotate, the angular
velocity ω of the platform is expressed as a function of the joints’ coordinates for
each limb i, i=1,2,3:

ω = θ&i xˆ i I + γ& i xˆ i II + β& i yˆ i III


(5)

The right-hand side of (5) is made to vanish by dot-multiplying the equation


by n i = O xˆ i I ∧ O yˆ i III :

( O
xˆ i I ∧ O yˆ i III )
T
⋅ω = 0
(6)

Equation (6) shows the direction along which each limb prevents the platform
to rotate: therefore rotations are allowed only in case the 3 vectors ni become
linearly dependent. To study the possible occurrence of constraint singularities,
the 3 equations in (6) are gathered together in matrix form:

(
⎡ O xˆ I ∧ O yˆ III
⎢O 1 O 1
)
T

T ⎥
(
⎢ xˆ 2 I ∧ yˆ 2 III ) ⎥ ⋅ω = Jr ⋅ω = 0 (7)
⎢ O T ⎥
(
⎢⎣ xˆ 3I ∧ yˆ 3III
O
) ⎥⎦

The Jacobian matrix Jr can be expressed as a function of articular coordinates


by writing the unit vectors x̂ i I , x̂ i II , ŷ i III in the fixed frame:

6
Prototype design of a translating parallel robot

⎡1⎤ ⎡cϕ i cα ⎤
O
xˆ i I = O xˆ i II = O R J I ⎢⎢0⎥⎥ = ⎢⎢ sϕ i cα ⎥⎥ (8)
i

⎢⎣0⎥⎦ ⎢⎣ sα ⎥⎦

⎡0⎤ ⎡− sϕi cχ i − cϕi sαsχ i ⎤


O
ŷ i III = RJ I ⋅ RJ II ⋅ RJ III ⎢⎢1⎥⎥ = ⎢⎢ cϕi cχ i − sϕi sαsχ i ⎥⎥
O J iI J iII
(9)
i i i

⎢⎣0⎥⎦ ⎢⎣ cαsχ i ⎥⎦

At this point the rows of the Jacobian are easily computed:


⎡cϕ i cα ⎤ ⎡− sϕ i cχ i − cϕ i sαsχ i ⎤ ⎡ sϕ i sχ i − cϕ i sαcχ i ⎤
O
xˆ i I ∧ yˆ i III
O
= ⎢⎢ sϕ i cα ⎥⎥ ∧ ⎢⎢ cϕ i cχ i − sϕ i sαsχ i ⎥⎥ = ⎢⎢− cϕ i sχ i − sϕ i sαcχ i ⎥⎥ (10)
⎢⎣ sα ⎥⎦ ⎢⎣ cαsχ i ⎥⎦ ⎢⎣ cαcχ i ⎥⎦

and therefore:
⎡ sϕ1 sχ 1 − cϕ1 sαcχ 1 − cϕ1 sχ 1 − sϕ1 sαcχ 1 cαcχ 1 ⎤
J r = ⎢⎢ sϕ 2 sχ 2 − cϕ 2 sαcχ 2 − cϕ 2 sχ 2 − sϕ 2 sαcχ 2 cαcχ 2 ⎥⎥ (11)
⎢⎣ sϕ 3 sχ 3 − cϕ 3 sαcχ 3 − cϕ 3 sχ 3 − sϕ 3 sαcχ 3 cαcχ 3 ⎥⎦

It can be seen by (11) that the Jacobian matrix Jr is a function of the


geometrical parameters ϕ i and α and of the current configuration by means of

joint variables ϑi and γ i (χi=θi+γi): therefore the possible occurrence of

constraints singularities, i.e. machine’s configurations making Jr singular, can be


investigated by letting its determinant vanish.
To this aim the rotation matrix ORP of the platform must be considered: its
expression as a function of ith limb configuration has been found already in (4.1-
4.9). By equating the matrices obtained for legs 1 and 2 and for legs 2 and 3 two
independent matrix equations are obtained:

⎧ O RP(1) (β1 , χ 1 ) = O RP(2 ) (β 2 , χ 2 )


⎨ O (2 ) (12)
⎩ R P (β 2 , χ 2 ) = R P (β 3 , χ 3 )
O (3 )

Six independent scalar equations in the six unknowns β i and χ i , i=1,2,3, can
be found e.g. by equating the (12), (21) and (33) elements in both equations in
(12). The resulting algebraic system is complex and highly nonlinear and a closed
form solution can be hardly found; nevertheless, a simple numerical investigation
reveals that for the assumed ϕ i and α values only the following solution holds:

7
Prototype design of a translating parallel robot

⎧β i = 0
⎨ (13)
⎩χ i = 0

that provides a constant and non-singular expression for Jr:


⎡ − cϕ1 sα − sϕ 1 sα cα ⎤
J r = ⎢⎢− cϕ 2 sα − sϕ 2 sα cα ⎥⎥ (14)
⎢⎣ − cϕ 3 sα − sϕ 3 s α cα ⎥⎦

Therefore the machine under study is free from constraint singularities, i.e.
there is no point inside the workspace where the machine can begin rotating.

3.3 Position kinematics

The inverse position kinematics (IPK) is solved by expressing the joint actuation
variables ai, i=1,2,3 as functions of platform position p in the task space. The
algebraic system (2) readily provides the requested expressions:

a i = cϕ i cα ⋅ p x + s ϕ i cα ⋅ p y + s α ⋅ p z + t i (15)

d i = ± ( sϕ i p x − cϕ i p y ) 2 + (cϕ i sαp x + sϕ i sαp y − cαp z ) 2 (16)

sϕ i ⋅ p x − cϕ i ⋅ p y
tgθ i = (17)
− cϕ i sα ⋅ p x − sϕ i sα ⋅ p y + cα ⋅ p z

If obvious limitations are considered for the excursion of joint variables,

d i > 0 and − π < θ i < π , it is seen that the IPK admits only one feasible
2 2
solution. For the remarkable case of the Cartesian architecture under study, the
actuated variables take on the following simplified expressions:

a1 = t + 2 p x + 1 p z (18)
3 3

a2 = t − 1 p x + 1 p y + 1 p z (19)
6 2 3

a3 = t − 1 p x − 1 p y + 1 p z (20)
6 2 3

Turning to the direct position kinematics (DPK), it is now necessary to


express platform position p in the task space as a function of joint actuation

8
Prototype design of a translating parallel robot

variables ai, i=1,2,3; to this aim, the first equation in (2) is explicitly written for
i=1,2,3:

⎧a1 − t1 = cϕ1cα ⋅ p x + sϕ1cα ⋅ p y + sα ⋅ p z



⎨a 2 − t 2 = cϕ 2 cα ⋅ p x + sϕ 2 cα ⋅ p y + sα ⋅ p z (21)

⎩a3 − t 3 = cϕ 3 cα ⋅ p x + sϕ 3 cα ⋅ p y + sα ⋅ p z

Equation (21) represents a linear algebraic system of 3 equations in the 3


unknowns px, py, pz; since the determinant of system’s matrix is not null for the
present values of configuration parameters, it can be easily solved to find out the
single solution:

2a1 − a 2 − a3
px = (22)
6

a 2 − a3
py = (23)
2

a1 + a 2 + a3 − 3t
pz = (24)
3

where the current values of α and φi, i=1,2,3 have been substituted once again.
Figure 3 shows the workspace of the 3-CPU robot, in case the limbs are
allowed a sufficient extension with respect to the stroke of actuation sliders:
d iMAX > 2 ⋅a iMAX : it is noted that its volume is quite big, in comparison with the

overall dimension of the machine, and it has the shape of a cube. More severe
limitations on legs’ extensions bring to smaller volumes of different shapes, even
if they still remain convex in all the cases.

3.4 Differential Kinematics

By taking the derivative of (1), it is obtained:

v p = a& i ⋅ aˆ i + d&i ⋅ dˆ i + ω i × d i (25)

that expresses platform’s velocity as a function of limbs’ motion; by dot


multiplying (25) by the unit vector â i :

aˆ iT v p = a& i (26)

9
Prototype design of a translating parallel robot

and collecting the 3 relations (26) for i=1,2,3 in a single expression in matrix
form, a direct relation between platform’s velocity and joints rates is obtained:

Jv p = a& (27)

where the Jacobian matrix J is defined by:

⎡ cϕ1cα sϕ1cα sα ⎤
J = ⎢⎢cϕ 2 cα sϕ 2 cα sα ⎥⎥ (28)
⎢⎣cϕ3 cα sϕ3 cα sα ⎥⎦

The linear relation (27) becomes singular when the determinant of the
Jacobian matrix vanishes:

det ( J ) = c 2αsα [s(ϕ 2 − ϕ1 ) + s(ϕ1 − ϕ 3 ) + s (ϕ 3 − ϕ 2 )] (29)

It is noted that the Jacobian matrix is constant and non-singular, at least for
the geometry under study: it becomes also apparent that the frame slideways can
not be arranged on the base plane (α=0) because this would bring (29) to vanish.
It is also interesting to look for the value of the tilt angle α that maximizes the
dexterity of the mechanism; in particular, due to the simple form of the Jacobian
matrix, it can be investigated if a value of α exists such that the whole workspace
is isotropic. This is done by imposing [8]:

J T J = JJ T = λI 3 x 3 (30)

that, in the present case, becomes:


⎡ ⎤ ⎡ 1 1 ⎤
⎢ cα 0 sα ⎥ ⎢cα − cα − cα ⎥
⎢ ⎥ ⎢ 2 2 ⎥
⎢− 1 cα 3
cα sα ⎥ ⋅ ⎢ 0
3
cα −
3 ⎥
cα = λI 3 x 3 (31)
⎢ 2 2 ⎥ ⎢ 2 2 ⎥
⎢ 1 3 ⎥ ⎢ ⎥
⎢− cα − cα sα ⎥ ⎢ sα sα sα ⎥
⎢⎣ 2 2 ⎥⎦ ⎢⎣ ⎥⎦

The 3 equations in (31) all yield the same identical condition:

2 s 2α − c 2α = 0 (32)

that leads to the value tan α = 2 2 , i.e. α≈35.26°, already introduced, that grants
the orthogonality of the frame slideways.
Under the specific geometrical setting that has been chosen, the velocity
mapping is finally:
10
Prototype design of a translating parallel robot

⎡ a&1 ⎤ ⎡2 2 0 2⎤ ⎡ p& x ⎤
⎢a& ⎥ = 3 ⎢− 2 6

2⎥ ⋅ ⎢⎢ p& y ⎥⎥ (33)
⎢ 2⎥ 6 ⎢⎢
⎢⎣ a& 3 ⎥⎦
⎣− 2 − 6 2⎥⎦ ⎢⎣ p& z ⎥⎦

4 Functional design

4.1 Design requirements

The functional requirements driving the design had been aimed at the realization
of a research prototype able to perform assembly tasks or other operations
constrained by the contact with the environment: therefore static performances
have been advantaged while still trying to achieve an acceptable dynamic
behaviour. In the end, by taking also into account economy of realization, the
following requirements have been imposed:
• Nominal thrust: 300 N (in the vertical direction)
• Maximum velocity: at least 1 m/s
• Maximum moment at the end-effector: 30 Nm
• Workspace: > 0.2 m3
• Overall dimensions: < 2x2x2 m3

4.2 Geometrical dimensions

The first phase of the synthesis has been performed by means of kinematic
optimisation, searching for maximum workspace volume with minimum
machine’s dimensions, while still keeping limited the strokes of ground pairs: the
optimal configuration of the robot would require a point-like platform with a
proper length dmax of the limbs given by d max = 2amax . Such “optimal”
conditions together with the specified requirements allowed to assume the
following tentative dimensions:
amax=750 mm
dmax=1 060 mm
t=100 mm
The minimum stroke amin of ground sliders is bound by the geometric
mounting condition a>t and by the hindrance of physical joints, therefore it has
been assumed the limit value: amin = 150 mm. The other dimensions have been
11
Prototype design of a translating parallel robot

worked out by means of computer simulation:


150 mm ≤ ai ≤ 750 mm
71 mm ≤ di ≤ 1060 mm
-40.6° ≤ θi ≤ 40.6°
where ϑi is the tilt angle of the limbs around the ground pairs. The resulting
workspace is still a cube with 0,6 m side and has a volume of V=0.216 m3.

4.3 Analysis of static loads

Due to the simple kinematics of the machine, it is straightforward to compute the


effect on the joints and on the links of a wrench applied at the centre P of the
mobile platform. For instance, Fig. 4, it can be seen that the legs are usually
loaded by both torque and bending moments:

⎡cθ1 0 0 ⎤ ⎡− 2 0 2 2⎤
Mt ⎢ ⎥
= ⎢⎢ 0 cθ 2 ⎥
0 ⎥ ⎢ 1 − 3 2 2 ⎥ M ext (34)
3
6 ⎢⎣ 0 0 cθ 3 ⎥⎦ ⎢⎣ 1 3 2 2 ⎥⎦

⎡ sθ1 0 0 ⎤ ⎡− 2 0 2 2⎤ ⎡d1 0 0 ⎤⎡ 2 2 0 2⎤
Mb
= ⎢⎢ 0 sθ 2 0 ⎥ 1 − 3 2 2 ⎥M + ⎢ 0

d2

0 ⎥⎥ ⎢− 2 6

2⎥ Fext
3 ⎥⎢ ⎥ ext ⎢
6 ⎢⎣ 0 0 ⎢
sθ 3 ⎥⎦ ⎣ 1 3 2 2 ⎥⎦ ⎢⎣ 0 0 d 3 ⎥⎦ ⎢⎣− 2 − 6 2⎥⎦
(35)

where Fext = Fx [ Fy Fz ]
T
[
and M ext = M x My Mz ]
T
are the external forces

M t = [M t1 M t 2 M t3 ]
T
and moments applied in P, and

M b = [M b1 M b 3 ] are the torque and bending moments on the three legs


T
M b2

respectively. It results that the application of a pure force Fext does not yield any
torque on the legs while the arising bending moment is highly dependant upon
their stroke.
A proper selection of the motors can be easily done by observing that their
holding force f is given, as usual, by:

f = J −T ⋅ Fext (36)

On the other hand, the application of a pure moment at the platform is not
reflected on the actuators but is totally born by frame joints. It is noted that the
internal actions are highly dependant upon machine’s configuration.

12
Prototype design of a translating parallel robot

4.4 Robot actuation

The most convenient way of driving the robot is to actuate the translation of the
ground cylindrical pairs: the alternative solution of directly controlling legs’
variable lengths would have the advantage of charging the limbs by normal loads
only but would need to bring about the motors during limbs motion with higher
inertias and a more complex design.
Therefore the ground cylindrical joint of each leg is practically realized by
splitting it into the elemental revolute and prismatic pairs with parallel joint axes:
a slider carries the revolute joint that connects the limb and runs along the fixed
railways actuated by means of rotary motors coupled with ball screws to obtain a
linear motion.
The motors must be selected together with the ball screws, in order that both
requirements on nominal thrust and task-space velocity are met. The relations (33)
and (36) can be usefully implemented in a Matlab program to test the
simultaneous satisfaction of such requirements. In the end, 3 brushless motors
NX310 by Parvex (now SSD/Parker) have been chosen; they are powered by
Eurotherm AC 631 drivers and are able to yield nominal and maximum torques of
Mn=2.0 Nm and Mmax=6.6 Nm respectively at the maximum speed of nn=2 300
rev/min. After the static analysis commented in next section, the motors have been
coupled with 3 single thread ball-screws MKK 15-65 by Rexroth, with 16 mm
pitch, 16 mm diameter and 994 mm length.

5 Structural design

5.1 Selection of off-the-shelf components

Several loading scenarios have been taken into consideration trying to figure out
the most severe operating conditions of the machine: in all test cases, a Matlab
procedure determined the reaction loads on each part throughout the workspace,
evidencing the highest values. Figure 5, for instance, plots the maximum bending
moment on the legs when the platform spans the horizontal plane at height z=1m.
With this information, it has been possible to select the commercial
components used to realize the joints of each leg, see Fig. 6: due to the high
number of kinematic pairs needed for the complete machine (15 joints), it was

13
Prototype design of a translating parallel robot

important to take into consideration both the overall stiffness and the possibility of
a fine registration of axes alignments.
The first cylindrical pair has been realised by means of a linear module whose
carriage holds the support for the revolute joint, based on two taper-roller
bearings, as shown in Fig. 7a; the intermediate prismatic pair has been realized by
a ball-bearing guide and the final universal joint by using two revolute pairs: the
inner one is based on a crossed cylindrical roller bearing while the outer one,
connecting the limb to the mobile platform, is idle, therefore a simple journal
bearing has been used.

5.2 Design of manufactured parts

The design was constrained both by the admissible resulting stress in the critical
parts (i.e. usually the joints) and by the cogent requirements on the maximum
allowed deformations, mainly in the limbs whose deflection would cause a
significant decrease in robot’s stiffness and end-effector accuracy.
Figure 7a, for example, shows the parts that compose the revolute joint
connecting the carriage to the limb: a FEM analysis allowed to assess that the
support’s deformations were less than 0.5 mm but in this case its state of stress
were well beyond the admissible thresholds, Fig. 7b, therefore the part had to be
re-designed, as shown in Fig. 7c. A specific attention has been paid to the
optimization of the moving parts, in order to limit their masses without reducing
their resistance.

6 Characterisation of robot’s performances

6.1 Kinematic analysis

Once the machine has been completely designed, it has been characterised by
computer simulation before the final prototyping stage: Fig. 8a shows the final
design of the robot. The actual workspace takes into account the real stroke of
base guides and results a cube of 0.275 m3 volume (0.65 m side).
As for platform’s maximum velocity, the constancy of the Jacobian matrix
generates at every point of the workspace the same velocity field. It must be noted
that, although in theory the machine is isotropic, see (30), the actual velocities of
the platform must take into account the speed limits at the motors: therefore the
14
Prototype design of a translating parallel robot

real Cartesian velocities are shown in Fig. 8b, with a maximum velocity in the
vertical direction of 1.1 m/s and a minimum velocity of 0.8 m/s.

6.2 Static analysis

According to the design criteria that have been followed, the maximum thrust of
the robot is not limited by the nominal torque of the motors but by the mechanical
resistance or the deflection of the parts that are most severely loaded. It has been
built a Matlab routine that, for every point of the workspace (and therefore for the
corresponding legs’ extensions) computes the maximum thrust of the robot along
all the 3 coordinate directions and identifies the component that is critically
loaded, if any. For instance, when the legs are completely stretched out, that is the
most stressing configuration, see (35), the maximum vertical thrust is some
1 296 N or 1 493 N when pointing downwards or upwards respectively: in this
case the ball bearings of the prismatic pair reach their maximum (static) loading
capacity. On the other hand, if the legs are completely shrunk, the maximum
vertical thrusts become 4 310 N and 4 667 N for the downwards or upwards
working directions and in this case the 6.6 Nm maximum torque of the motors is
reached. The maximum thrusts that can be developed in the horizontal plane are
1 056 N and 1 141 N whether the legs are stretched out or shrunk respectively, as
shown in Table 1.

Table 1 Maximum trusts developed along different space directions

-Z (down) +Z (up) -X +X -Y +Y
F max [N] 4 310 4 667 1 140 1 141 1 006 1 121
Legs shrunk τmax [Nm] 6.6 6.6 2.1 2.6 2.1 2.2
(20% stroke)
No payload

limiting part τmax τmax. t.r.b. t.r.b. t.r.b. t.r.b.


F max [N] 1 296 1 493 1 056 916 1 012 924
Legs stretched τmax [Nm] 2.2 1.9 1.9 2.1 2.1 1.9
(80% stroke)
limiting part b.b.g. b.b.g b.b.g b.b.g b.b.g. b.b.g.

F max [N] 4 961 4 016 1 132 1 149 999 1 114


Legs shrunk τmax [Nm] 6.6 6.6 1.9 3.1 2.5 2.7
30 kg payload

(20% stroke)
limiting part τmax τmax t.r.b. t.r.b. t.r.b. t.r.b.
F max [N] 1 001 1 787 988 708 803 714
Legs stretched τmax [Nm]
(80% stroke) 2.2 1.9 1.7 2.1 2.1 2.0
limiting part b.b.g. b.b.g. b.b.g. b.b.g. b.b.g. b.b.g.
b.b.g.= ball bearing guide; t.r.b.= taper-roller bearing; τmax = maximum motor’s torque.

15
Prototype design of a translating parallel robot

Once such limit loads arising from commercial components have been
worked out, the mechanical resistance of the manufactured parts has been
investigated too, taking note of the resulting stresses and deformations. A FEM
analysis, Fig. 9, shows that the legs are the most stressed parts, even if they are
still well beyond the limit loading conditions: nevertheless, in case they are
stretched out the maximum displacement reaches the value of 5 mm, while it is
only 1.3 mm if the legs are completely shrunk.

6.3 Dynamic performances

By means of a simulation software, it is possible to assess also the dynamic


performances, even if the analysis is more complex in this case: in the beginning,
the actuation torques causing limit loads on commercial parts have been found;
then all the instantaneous dynamic loads causing such limit situations have been
exported towards a FEM tool and an analysis has been performed upon
manufactured parts, to assess their state of stress and deformation.

Table 2 Maximum accelerations developed along different space directions

-Z (down) +Z (up) -X +X -Y +Y
2
amax [m/s ] 88.1 71.9 41.3 48.2 45.4 48.6
Legs shrunk τmax [Nm] 6.60 6.60 6.60 6.60
6.29 6.23
(20% stroke)
No payload

limiting part τmax τmax. τmax. b.b.g.. b.b.g. τmax

amax [m/s2] 36.7 17.2 21.9 37.6 25.7 29.2


Legs stretched 2.69 2.44 2.95 3.03 2.88 3.13
τmax [Nm]
(80% stroke)
limiting part b.b.g. b.b.g b.b.g b.b.g b.b.g. b.b.g.

amax [m/s2] 57.5 38.2 22.5 20.9 18.9 22.7


Legs shrunk
τmax [Nm] 6.37 6.15 5.95 3.54 4.64 5.28
30 kg payload

(20% stroke)
limiting part b.b.g. b.b.g. b.b.g. b.b.g. b.b.g. l.m.

amax [m/s2] 22.8 3.3 2.9 5.7 4.0 5.1


Legs stretched
τmax [Nm] 2.20 1.95 1.98 1.86 1.95 2.09
(80% stroke)
limiting part b.b.g. b.b.g. b.b.g. b.b.g. b.b.g. b.b.g.
b.b.g.= ball bearing guide; l.m.= linear module; τmax = maximum motor’s torque.

16
Prototype design of a translating parallel robot

In this way it has been found that the maximum acceleration is yielded in the
vertical direction with values close to 9 g for downwards motions in case the legs
are shrunk (20% stroke) and no payload is present on the platform: in this case all
the parts are correctly loaded and such limit value is only due to the peak torque
that can be delivered by the motors. Figure 10 shows the corresponding state of
deformation of a leg, with maximum displacements less than 0.1 mm also in the
maximum stretching configuration. Smaller accelerations can be reached in the
upward vertical direction (due to the gravity) and in the other directions of the
space for the arising loads of commercial components. Table 2 summarises the
dynamic performances of the robot in the different space directions, according to
the configuration (stretched or shrunk legs) and taking into consideration the
possible presence of a payload.

6.4 Modal analysis

The dynamic performances of the robot are greatly influenced also by its modal
behaviour: for instance in pick and place operations are often generated high
frequency excitations that can yield large vibrations with a drastic downgrading of
manipulator’s positional accuracy. For this reason the modal behaviour of the
robot has been studied in computer simulation, even if in this case the resulting
model should be validated by a proper testing campaign. In any case the analysis
showed that the first design of the portal frame was far too compliant to grant a
good dynamic repeatability, therefore gusset plates have been introduced in the
final design between pillars and frame to increase stiffness.
The frequency of the first 5 modes are collected in the following Table 3,
while Fig. 11 shows graphically the deformed shape of 1st and 3rd modes. It is
noted that the first modes have quite low frequencies, that can be easily excited by
several causes during machine work, e.g. by inertia forces.

Table 3 Natural frequencies of the first 5 modes


frequency [Hz]
1st mode 15.1
2nd mode 15.2
3rd mode 25.3
4th mode 51.1
5th mode 58.8

17
Prototype design of a translating parallel robot

7 Prototyping and assembling

7.1 Prototyping

The prototype of the translational robot has been finally built, see Fig. 12, and a
simple controller has been realised [9], based on the DSpace DS1103 card: the
code has been written in Matlab and tested in the LMS Virtual.Lab dynamic
simulation environment, then it has been downloaded to the controller by means
of the Matlab Realtime Workshop toolbox. The present level of development of
the control system is composed by a user interface, running on the server PC and
based on drivers’ control panel, and by the control algorithms themselves, running
on the real-time control card: it implements most motion routines used for the
industrial robots and allows the path’s generation in both the joint space and the
Cartesian space.
The first tests performed with the prototype have shown that the moving
platform is subject to severe oscillations, especially when the legs are completely
retracted or fully extended, that increase at high speeds: this behaviour has been
attributed mainly to chassis stiffness and to the non correct mounting of the robot,
which requires very precise geometric conditions. The first defect can be
overcome by the introduction of reinforcing ribs and beams or even by the
manufacture of a more robust frame: such corrective action has been delayed for
the future, while the problem of planning a correct mounting of the robot has been
dealt with first, as described in next section.

7.2 Assembling

Fortunately, the possibility to fine-tune the most important geometric parameters


had been considered already in the design phase of the robot, therefore specific
fixtures have been manufactured in order to perform a correct mounting. With
reference to the conditions (i)-(ii) granting the generation of a pure translation
motion at the terminal, two fixtures have been realised, with a particular care to
strict geometric tolerances and stiffness of the design.
The first rig is shown in Fig. 13 and aims at aligning the axes of the base
cylindrical pairs to the axes of a Cartesian frame: even if this condition is not
needed to grant the pure translation, it is nevertheless used in kinematics relations
and enhances robot dexterity. Three orthogonal calibrated holes are drilled by
18
Prototype design of a translating parallel robot

means of a very precise single placement machining into the fixture shown in Fig.
13a: such tool is connected to robot’s frame as shown in Fig. 13b, then three
calibrated bars are mated into the corresponding bearings of the jig and the
cylindrical pairs. Of course, in order to complete the calibration process, it is
necessary to fine-tune the spatial alignment of the fixed guides, so that they
become aligned with the (orthogonal) axes of the tool: Fig. 13c shows the final
setting of this piece of calibration equipment.
An even more important condition is given for each limb by the parallelism
of the axes of the base cylindrical joint and that of the inner revolute pair in the
universal joint: to this aim the template in Fig. 14 has been realised, that allows a
precise alignments of such axes with the once of the fixture itself by means of a
coupler, once the limbs have been duly unmounted by the frame.
In the end, it has been investigated the influence of an accurate realization of
mobile platform on its own kinematics: it will be demonstrated in the following
lines that it does not need strict geometrical tolerances nor specific adjustment
systems should be set up.
In order to prevent mobile platform from rotating, it is necessary that the axes
r r r
of the three inner revolute pairs in the universal joint (shown as v1 , v2 , v3 in Fig.
15) are parallel to base joints axes and therefore mutually orthogonal: the accurate
satisfaction of such condition must be evaluated in the hypothesis that the terminal
shows an inaccurate configuration of the three axes of the idle revolute joints
r r r
(shown as u1 , u 2 , u3 ). In the following exercise it is assumed that the two axes of
each universal joint are actually orthogonal, which is justified by the simple
structure of such manufactured parts; therefore Π1, Π2, Π3 are the planes
r r r r r r
(orthogonal to u1 , u 2 , u3 ) upon which the unit vectors v1 , v2 , v3 rotate with angles

α, β, γ respectively (see Fig. 16). It is useful to define the global frame O{x,y,z} as
follows: the z axis is aligned along Π1 ∩ Π 2 , the x axis belongs to Π 1 and the y
axis is directed according to the right-hand rule.
An accurate realization of the platform would bring the three unit vectors
r r r
u1 , u 2 , u3 to be co-planar and laid at 120° offset one from the other (therefore in

the ideal case holds: φ= ψ=120°, δ=90°, where δ is the angle between plane Π 3

and plane {x,y}): nevertheless it will be made reference to the general case when
they are generally aligned in the space, forming the angles φ, ψ, δ shown in Fig.
19
Prototype design of a translating parallel robot

16. In other words, aim of the present analysis is to verify whether it is possible to
r r r
make v1 , v2 , v3 an orthogonal frame by properly adjusting the rotations α, β, γ,

notwithstanding the actual values of angles φ, ψ, δ .


r r r
The three unit vectors v1 , v2 , v3 are projected in the global frame O{x,y,z} to
give:
⎛ cos α ⎞ ⎛ cos β cos ϕ ⎞ ⎛ cos γ cosψ − sin γ sinψ cos δ ⎞
r ⎜ ⎟ r ⎜ ⎟ r ⎜ ⎟
v1 = ⎜ 0 ⎟ v 2 = ⎜ cos β sin ϕ ⎟ v3 = ⎜ − cos γ sinψ − sin γ cosψ cos δ ⎟ (37)
⎜ sin α ⎟ ⎜ sin β ⎟ ⎜ sin γ sin δ ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠
that gives rise to the following three orthogonality conditions:
⎧cαcβ cϕ + sαsβ = 0

⎨cαcγcψ − cαsγsψcδ + sαsγsδ = 0 (38)
⎪cβcϕ (cγcψ − sγsψcδ ) − cβ sϕ (cγsψ + sγcψcδ ) + sβ sγsδ = 0

By keeping all the active rotations α, β, γ below the 90° threshold, which is
practically verified, and calling a := tan α , b := tan β , g := tan γ , Eq. (38)
provide:
⎧ab + cϕ = 0

⎨ag ⋅ sδ − g ⋅ sψcδ + cψ = 0 (39)
⎪bg ⋅ sδ − g ⋅ cδs (ϕ + ψ ) + c(ϕ + ψ ) = 0

that is a non-linear algebraic system of 3 equations in the 3 unknowns a, b, g; after
few manipulations it is obtained:
(c δsψs(ϕ + ψ ) + s δcϕ )⋅ g − (cδs(ϕ + 2ψ )) ⋅ g + cψc(ϕ + ψ ) = 0
2 2 2
(40)
It can be verified that close to the reference conditions φ= ψ=120°, δ=90° Eq.
(40) admits 2 real solutions for g, each one providing one valid value for a and b:
numerical simulations have shown that offsets of 10-15° can always be tolerated
for each angle and even more in some cases.
The analysis that has been developed shows that the mobile platform does not
need strict geometric tolerances during manufacturing nor registration means for
assembly phase: the only relevant consequence of a non correct alignment of its
axes is a (fixed) rotation with respect to its ideal pose in the space, but it still
keeps translating in space without any rotation during its motion.

20
Prototype design of a translating parallel robot

8 Conclusions

The paper has presented the concept of a novel mechanical architecture that
can be used in the design of 3-axes translating robots. It has been shown that the
kinematic and static properties are very good, mainly due to the “Cartesian”
arrangement of the structure, that grants a decoupling of the velocity mapping: the
workspace is rather wide (if compared with other PKMs) and convex, which is
good to simplify the programming and control of the robot; furthermore, it is free
of rotation and translation singularities and IPK and DPK relations are quite
simple; finally, the constancy of the Jacobian matrix grants a constant stiffness
and accuracy of positioning in every point. Drawbacks of the concept are found in
the particular disposition of the cubic workspace and in the possible flexure of the
legs; on the other hand, in the important case of application of vertical thrusts, all
the limbs support the mobile platform, while only one leg is usually loaded in
other Cartesian parallel architectures.
A parallel robot based on the 3-CPU concept has been designed and built: the
use of a powerful virtual prototyping environment has allowed to obtain a
lightweight and compact prototype, named I.Ca.Ro. (Innovative CArtesian
RObot), that is characterized by good static and dynamic properties. Anyway, the
first tests performed on the machine have shown that the very strict geometric
tolerances required by the concept for both manufacturing and assembly need a
fine registration of the main pairs and the manufacturing of specific calibration
fixtures. After these refinements of both the mechanical structure and the
assembly set up, I.Ca.Ro. is now available at the laboratories of the Department of
Mechanics and new test are currently under way, mainly aimed at the
development of advanced control schemes.
In the end it is noted that the same 3-CPU kinematics is also able to yield
motions of pure rotation, of course provided that the pairs are differently arranged
[10]: such spherical wrist has been designed and prototyped as well and is meant
to work in cooperation with the described TPM.

References
1. Clavel, R., ‘Delta, a fast robot with parallel geometry’, Proc. ISIR Intl. Symp on Industrial
Robots, 1988, pp 91-100.

21
Prototype design of a translating parallel robot

2. Tsai, L.W. and Joshi, S., ‘Kinematics and Optimization of a Spatial 3-UPU Parallel
Manipulator’, ASME J. Mech. Design, Vol. 122, 2000, pp 439-446.
3. Tsai, L.W. and Joshi, S., ‘Kinematics Analysis of 3-DOF Position Mechanisms for Use in
Hybrid Kinematic Machines’, ASME J. Mech. Design, Vol. 124, 2002, pp 245-253.
4. Callegari, M. and Tarantini, M., ‘Kinematic Analysis of a Novel Translational Platform’,
ASME J. Mech. Design, Vol. 125, No. 2, 2003, pp 308-315.
5. Callegari, M. and Marzetti, P., ‘Kinematics of a family of parallel translating mechanisms’,
Proc. RAAD’03: 12th Intl. Workshop on Robotics in Alpe-Adria-Danube Region, Cassino, May
7-10, 2003.
6. Callegari, M., Palpacelli, M.C. and Scarponi, M., ‘Kinematics of the 3-CPU parallel
manipulator assembled for motions of pure translation’, Proc. Intl. Conf. Robotics and
Automation, Barcelona, April 18-22, 2005, pp 4031-4036.
7. Callegari, M. and Palpacelli, M.C., ‘Kinematics and optimization of the translating 3-CCR/3-
RCC parallel mechanisms’ in: Lenarcic, J. and Roth, B. (eds), On Advances in Robot
Kinematics, Kluwer, 2006, pp 423-432.
8. Merlet, J.P., Parallel Robots, 2nd Ed., Kluwer, 2006, p.163.
9. Callegari, M., Palpacelli, M.C. and Ricci, S., ‘Controller Design of the Innovative I.Ca.Ro.
Parallel Robot’, Proc. RAAD’07: 16th Intl. Workshop on Robotics in Alpe-Adria-Danube
Region, Ljubljana, June 7-19, 2007.
10. Callegari, M., Marzetti, P. and Olivieri, B., ‘Kinematics of a Parallel Mechanism for the
Generation of Spherical Motions’ in: Lenarcic, J. and Roth, B. (eds), On Advances in Robot
Kinematics, Kluwer, 2004, pp.449-458.

22
Prototype design of a translating parallel robot

FIGURES

Fig. 1 Concept of the 3-CPU parallel translating machine

Fig. 2 Generic configuration of ith limb and frames setting

23
Prototype design of a translating parallel robot

Fig. 3 Workspace of the 3-CPU Cartesian robot

(a) (b)

Fig. 4 Loads acting on the limbs (a) and upon bearings (b)

Fig. 5 Maximum bending moment on legs (plane z=1 m)

24
Prototype design of a translating parallel robot

Fig. 6 CPU kinematic structure of the limbs

(a) (b)

(c)

Fig. 7 First design of carriage revolute joint (a) and state of stress of limb’s support under the
maximum loads (b); final design of the support (c)

25
Prototype design of a translating parallel robot

(a)
(b)

Fig. 8 CAD model of the robot (workspace shaded) (a) and field of Cartesian velocities (b)

(a) (b)
Fig. 9 Bending of the leg (a) and deformation of the bracket carrying the revolute pair (b) for the
maximum vertical load

26
Prototype design of a translating parallel robot

Fig. 10 Maximum legs deformations in the most severe dynamic loading conditions

(a) (b)

Fig. 11 Deformed shape of the frame for 1st and 3rd modes of vibration

27
Prototype design of a translating parallel robot

Fig. 12 First prototype of the I.Ca.Ro. parallel robot

(a) (b)

(c)

Fig. 13 Sketch of the first calibration rig for the alignment of cylindrical axes

28
Prototype design of a translating parallel robot

Fig. 14 Picture of the second calibration rig to grant the parallelism of the axes cylindrical and revolute pairs

Fig. 15 Relevant axes of mobile platform

Fig. 16 Geometrical setting of joint’s axes of the mobile platform and definition of attitude angles

29

You might also like