Thesis
Thesis
of Operational Characteristics
of Delta Robot FANUC M-1i A
using MATLAB/Simulink
Abstract
This master thesis deals with the simulation of the six degrees of freedom Delta robot
Fanuc M-1i A/0.5A. A multi-body model was built in Mathworks Matlab Simulink from a
CAD drawing using Simscape Multibody blocks. The robot wrist is considered at constant
orientation, thus the model has only three degrees of freedom. The model was used to
detect the robot workspace, to solve the kinematics problems and to analyse the motor
torques and the forces in the structure. The work contributed with relevant knowledge
about the M-1i A/0.5A and produced a software framework easily adaptable for further
analysis or to other robot models.
Abstract in italiano
Questa tesi di laurea magistrale concerne la simulazione del Delta robot Fanuc M-1i A/0.5A
a sei gradi di libertà. Mathworks Matlab Simulink è stato usato per costruire un modello
multibody con blocchi Simscape Multibody a partire da un disegno CAD del robot. Il
polso robotico è considerato rigido, dunque il modello ha solo tre gradi di libertà. Il mo-
dello è usato per rilevare lo spazio di lavoro, risolvere i problemi cinematici, e analizzare la
coppia fornita dai motori e le forze nella struttura. Il lavoro ha contribuito con conoscenze
importanti sul M-1i A/0.5A e ha prodotto un complesso di software facilmente adattabile
a ulteriori analisi o applicabile ad altri modelli di robot.
Parole chiave: Fanuc M-1iA, Delta robot, modello Simulink, caratteristiche operative
v
Contents
Introduction 1
5 Workspace 47
5.1 Preliminary Assumptions on the Workspace . . . . . . . . . . . . . . . . . 47
5.2 Procedure for Evaluation of the Workspace . . . . . . . . . . . . . . . . . . 47
5.2.1 First Potential Workspace . . . . . . . . . . . . . . . . . . . . . . . 48
5.2.2 First Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.2.3 Second Potential Workspace . . . . . . . . . . . . . . . . . . . . . . 50
5.3 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.4 Geometric Simplication of the Workspace . . . . . . . . . . . . . . . . . . 52
5.5 Comparison with the 6dof Nominal Workspace . . . . . . . . . . . . . . . . 52
7 Static Forces 63
7.1 Static Equilibrium Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.2 Measuring Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
7.2.1 Conversion of Cylindrical to Cartesian Coordinates . . . . . . . . . 67
7.2.2 Angle Measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
7.2.3 Isolation of Static Results . . . . . . . . . . . . . . . . . . . . . . . 69
7.3 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
7.3.1 Motor torques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
7.3.2 Distribution of Forces on the Structure . . . . . . . . . . . . . . . . 73
Bibliography 77
A Manipulability 81
Introduction
Robots are very commonly used in production systems, and they have dierent structures
depending on their designed purpose. The Delta robots are a class of parallel kinematics
robot capable of high speed motion and exceptional accelerations. Their main limitations
are the small workspace and the limited payload. For these reasons they are extensively
adopted in assembly lines for pick and place, packaging and labelling of lightweight objects.
Thanks to high stiness and precision they recently found use in 3D printing, haptics and
surgery.
The robot manufacturers provide some information about the characteristic of their prod-
ucts, and enable the users to control their robots. In this context, computer simulations
are crucial, and it is hard to design or implement a robot in a production system without
rst simulating it.
The goal of this work is to delve into the Fanuc M-1i A/0.5A and discover its operational
characteristics. This process is carried out in two steps. Firstly a digital model of the
robot must be created. Then some tests are designed to experiment the hypothetical
traits and limits. Ideally, the information acquired should be validated by reproducing it
on a physical model. Unfortunately this third step was not undergone in this work.
This thesis was developed during an Erasmus+ exchange period in the University of ilina
in Slovakia, at the Faculty of Mechanical Engineering, Department of Automation and
Production Systems.
the robot works. Chapter 4 describes how the model was created from a 3D drawing,
and how it can be controlled in Matlab for the purpose of this study. The remainder of
the document presents the results of the analysis undertook. The vast majority of the
work focuses on a simpler model of the robot, with the end-eector at constant attitude.
Firstly, the extent of translational workspace was measured. Next, Chapter 6 reports
the results of kinematic analysis, such as the Jacobian, singularities and manipulability.
Chapter 7 tackles how forces are transmitted from the end-eector through the structure
and eventually to the motors. The last Chapter contains the conclusions and indications
for possible future work on this topic. The two appendixes at the end of this document
contain some images reporting the results of Chapter 6 and 7.
3
1| Introduction to Parallel
Kinematic Robots and
Delta Robots
This Chapter introduces some important elements of robotics. The theory of this Chapter
serves as a basis for the latter part of this document, where some characteristics of the M-
1i A/0.5A are investigated. After presenting core concepts such as kinematics problems,
Jacobian and singularities, the Chapter tackles the parallel kinematics mechanisms and
the Delta robots in particular.
The sequence of links is called kinematic chain. If a chain has a closed loop, it is a closed-
chain mechanism, otherwise it is an open-chain mechanism (or serial mechanism). The
ground can be considered a link closing a loop, therefore a mechanism with at least two
grounded links or joints is closed-chain.
Table 1.1: Number of dof of joints in Figure 1.1. The number of degrees of constraints
is m − f , where m is 3 in the plane and 6 in the space. Only the revolute and prismatic
joints can be used also in the plane.
range. A rigid body has three dof in a plane (two coordinates to specify the position,
and one for the rotation), and six in the space (three for position and three for rotation).
When two bodies are connected by a joint, their number of dof is reduced. This is because
joints constraint some motions, therefore the description of the conguration requires less
parameters. The sum of the number of degrees of freedom and degrees of constraints of a
joint is always six (or three for rigid bodies in a plane). The number of degrees of freedom
for joints in Figure 1.1 is reported in Table 1.1.
The number of dof of a mechanism with N links (including the ground) and J joints, each
with fi degrees of freedom is given by Grübler's formula [9, eq 2.4] [23, eq. 1.4]:
J
X
dof = m (N − 1 − J) + fi (1.1)
i=1
1| Introduction to Parallel Kinematic Robots and Delta Robots 5
1.1.2. Workspace
The workspace is the set of all the points that the end-eector can reach. It is a volume
in an r-dimensional space called task space, that represents the end-eector position and
orientation (or attitude). The workspace is intrinsically related to the geometry of the
links and how and they are connected by joints; it must also consider joint limits and
self-collision of links. The number of variables r to describe the end-eector does not
depend on the robot, but on its application. In the most generic case r = 6 (i.e. position
and rotation of a frame in the 3D space), but some tasks may require less coordinates,
for instance r = 3 if only the position and not the orientation is relevant. If a task space
has only the three spatial directions, it coincides with the real world.
The reachable (or maximal) workspace consist in all the points that are reachable by
any robot conguration, while the dexterous workspace describes only those where all
orientations can be attained. Obviously the latter is a subset of the rmer. Finally,
the points reachable with a xed end-eector attitude, form the constant-orientation (or
translational) workspace [23] [24].
q and x represent respectively a conguration in the joint space, and in the task space.
Given the physical meaning of q and x, it must exist a function f : Rn → Rr that maps
a conguration q into its corresponding task space value x:
x = f (q) (1.2)
It is evident that f disguises the geometry of the links and eventual transmission ratios
of the joints. Nonetheless, it might be impossible to obtain a closed-form expression of f ,
so in some cases a more generic function f (x, q) = 0 must be used.
6 1| Introduction to Parallel Kinematic Robots and Delta Robots
If n > r there are more actuators than strictly needed to move the end-eector in the
task space, and the robot is said to be redundant. Of course, for a dierent task the same
robot may not be redundant, unless n > 6. In any case, redundancy often translates into
greater dexterity and exibility rather than clumsiness [23] [31]. If instead n < r the
robot cannot achieve arbitrary motion of the end-eector [9].
∂f
ẋ = q̇ (1.3)
∂q
=: J(q) q̇ (1.4)
The matrix function J : Rn → Rr×n is called analytic Jacobian, and it relates the joint
velocities q̇ with the velocities of the end-eector in the working space [9] [31].
Letting Ji be the i-th column of J(q), and q̇j the j -th element of q̇, Equation 1.4 can be
rewritten to:
ẋ = q̇1 J1 + q̇2 J2 + · · · + q̇n Jn (1.5)
Equation 1.5 shows that the working space velocity is a linear combination of the columns
of the Jacobian matrix. Therefore the i-th column of J(q) is the direction in which the
i-th dof moves the end-eector.
Similarly to the direct kinematics problem, the dierential forward kinematics problem
consists in nding the working space velocities ẋ when the joints are moving with velocities
q̇. Of course, the dierential problem yields dierent results in dierent congurations q.
in excess and a point in the working space can be reached by multiple congurations. If
instead n < r only n − r working space variables can be controlled, thus a solution might
not exist. Therefore the problem
q = f −1 (x) (1.6)
For this reason numerical computation are often implemented in robotic controllers. This
approach also allows to account for link limits and obstacles in the workspace. Moreover,
relying on analytic solutions might provide wrong result in case of geometric imprecision
such as misaligned axis. In this case the analytic solution can be used as the initial guess
in an iterative numerical computation relying solely on f (q) [9].
is only possible if the Jacobian is square (n = r) and has maximum rank (thus it can be
inverted). Therefore also the dierential kinematics is conveniently solved with numerical
approaches.
If the Jacobian is fat (namely has more columns than rows, so n > r), J † = J T (JJ T )−1
(right pseudo-inverse), and the solution found is the one with minimum speed [9]. If
instead the Jacobian is tall (n < r) an exact solution does not exist; the pseudo-inverse is
J † = (J T J)−1 J T (left pseudo-inverse), and q̇ minimizes the distance kJ(q) q̇ − ẋk between
the computed and desired end-eector velocity [9]. If n > r, the pseudo-inverse matrix
can be weighted using, for instance, the mass matrix M to reduce the motion of heaviest
links [9]:
J † = M −1 J T (JM −1 J T )−1 (1.9)
8 1| Introduction to Parallel Kinematic Robots and Delta Robots
1.1.7. Statics
When a mechanism is not accelerating, for the law of conservation of power, the power at
the joints equals the power at the end-eector:
TT q̇ = FT ẋ (1.10)
Where T ∈ Rn and F ∈ Rr are respectively the generalised forces on the motor and on
the end-eector1 , in the same order as in vectors q and x.
Equation 1.4 can now be used in (1.10) to compute the n motor torques equivalent to the
force F on the end-eector [9, eq. 5.26] [24, eq. 18.9] [31, eq. 3.111]:
TT = FT J(q) (1.11)
T = J T (q) F (1.12)
1.1.8. Singularities
A kinematic singularity (or just singularity) is a conguration q where the end-eector
suers an instantaneous loss of mobility in one or more directions.
Considering the interpretation of the Jacobian of Equation 1.5, if the rank of J(q) is
less than r, ẋ cannot have arbitrary values in the Rr task space. Therefore the con-
gurations q where the Jacobian is rank decient (or singular, thus det J(q) = 0) are
singularities [9] [31]. For the rank-nullity theorem:
If the rank is not maximum and equal to n, the kernel of J(q) has non null size. The
kernel of the linear transformation ẋ = J(q) q̇ represents the vectors q̇ that map into 0.
This means that in singularity points the end-eector can stay still (ẋ = 0) even if some
joints have a so-called internal motion [31].
1 Generalisedforces are torques or forces. From now on the actuator's generalised forces in vector T
are simply called torques, and the generalised forces on the end-eector in vector F are called forces.
1| Introduction to Parallel Kinematic Robots and Delta Robots 9
1.1.9. Manipulability
An interesting characteristic of a robot is how the working space velocities translate into
joint space velocities. This is particularly interesting in the neighbourhood of a singular
point. The manipulability and force ellipsoid can help to quantify the ease of motion in
a point, and how close that point is to a singularity.
1 = q̇T q̇ (1.14)
= (J −1 ẋ)T (J −1 ẋ)
= ẋT J −T J −1 ẋ
= ẋT (J J T )−1 ẋ
=: ẋT A ẋ (1.15)
1 p
ai = p = λi (1.16)
1/λi
1 1 p
V ∝√ =q = λ1 λ2 · · · λ3
det A 1 1
· · · λ1n
λ1 λ2 (1.17)
p
= det(JJ T ) = |det J|
The direction of the principal axes of the ellipsoid corresponds to the eigenvectors of A,
which are the same of JJ T = A−1 .
10 1| Introduction to Parallel Kinematic Robots and Delta Robots
Indexes of Manipulability
Since in a singularity point the motion in at least one direction is not possible, the velocity
in that direction is zero, and consequently the volume of the ellipsoid in the velocity space
is also zero. For this reason the volume (or rather a quantity proportional to the volume
V ) is an index of proximity to a singularity [31]:
v := |det J| (1.18)
Another useful index is the ratio between the longest and the shortest semi-axis of the
ellipsoid: r
amax λmax
µ := = ≥1 (1.19)
amin λmin
Values of µ close to 1 are a synonym of isotropy of motion, because they indicate a
spherical manipulability ellipsoid, hence it is equally easy to move the end-eector in any
direction. µ is just the square root of the condition number of the matrix JJ T [9].
Force Ellipsoid
A similar process can be carried out for forces, considering the working space force cor-
responding to a torques vector T of unitary length (TT T = 1). Repeating the passages
from (1.14) to (1.15) using Equation 1.12 yields [31, eq. 3.126]:
1 = FT (JJ T ) F (1.20)
=: FT A−1 F (1.21)
The resulting equation is again an ellipsoid, called force ellipsoid. Since the force ellip-
soid matrix A−1 is the inverse of the manipulability matrix, it has the same eigenvalues
but reciprocal eigenvectors. Consequently the force ellipsoid has the same axis as the
manipulability ellipsoid, but the lengths of the semi-axis are the reciprocals, as shown in
Figure 1.2.
Interpretation of Ellipsoids
The reciprocal dimension of the axis of the manipulability and force ellipsoid suggests
that when the end-eector can attain high velocity motion in a direction, it can bear
small forces in that direction. And when the end-eector struggle to move in a certain
direction, it can resist high loads in the same direction.
1| Introduction to Parallel Kinematic Robots and Delta Robots 11
Figure 1.2: Example of manipulabilty and force ellipsoid. The ellipsoids have the same
axis direction but inverse axis lengths.
Extending this argument to a singular conguration, the direction where the motion is
not possible is the same where unlimited force can be borne (in the sense that it does
not require motor actuation for balancing, but it is still subject to structural limits of the
links and of the joints.), while forces in the other directions can generate innite torques
on the actuators.
Nonetheless working near a singularity may be desirable in order to exploit the large
amplication factor between joints and end-eector. Some applications are accurate posi-
tioning in a small volume and force sensing in a particular direction as done by [28] with
a Gough-Stewart platform.
Figure 1.3: Schematic representation of a Delta robot [24, g. 18.2]. The bottom platform
has three translational dof, and is actuated by three motors that are grounded and do
not weight on the links.
limbs [9], as visible in the Delta robot and Gough-Stewart platform in Figures 1.3 and 1.4.
On the contrary, single-chain mechanisms are called serial robots. While in serial robots
all joints must be actuated to allow a rigid connection of the end-eector to the ground,
a parallel robot might have passive joints, which are unactuated.
Often parallel robots have higher dynamic performances compared to equivalent serial
robots devoted to similar tasks. The reason is that the unactuated links are free of the
motor mass, and the motors of the rst link of the limbs can be grounded (like in the
Delta robot, in Figure 1.3), or just slightly moving (like in the Gough-Stewart platform
in Figure 1.4) [24] [23].
The many number of chains in parallel have the advantage of increasing the system sti-
ness, and allowing motion with great precision. This advantages also the velocity and
acceleration in the working space [24].
1| Introduction to Parallel Kinematic Robots and Delta Robots 13
Figure 1.4: Schematic representation of a Gough-Stewart platform [24, g. 18.1]. The
top platform has six dof, and is moved by six linear motors connected to the grounded
bottom platform.
If instead the joint space parameters cannot be isolated, the kinematic relation can be
expressed in the more generic form
f (q, x) = 0 (1.23)
1.2.5. Singularities
A singularity arises whenever the Jacobian fails to be full rank. If an analytic matrix
function representing the Jacobian is not available, the n closure equations in (1.23) can
be exploited to identify singularities. Dierentiating Equation 1.23 with respect to time
yields:
∂f ∂f
0= q̇ + ẋ (1.24)
∂q ∂x
=: Jq (q, x) q̇ + Jx (q, x) ẋ (1.25)
[7] denes three types of singularities for closed loop kinematics:
serial singularity when det Jq (q, x) = 0. The end-eector can have zero velocity
when the joints are moving. The end-eector loses dof because it is not possible to
prescribe velocities in some directions;
parallel singularity when det Jx (q, x) = 0. In this singularity point the end-eector
can move while the joints have zero velocity, therefore it gains dof which cannot be
controlled;
both Jq (q, x) and Jx (q, x) are simultaneously singular. This situation corresponds
to a degenerate case of the Equation 1.23. The end-eector can undergo nite
motion when the actuator are locked, or a nite motion of the actuators does not
move the end-eector.
1| Introduction to Parallel Kinematic Robots and Delta Robots 15
Because the three actuators can be grounded, the moving parts are relatively light and
thus the Delta robot can achieve very fast motions. It is therefore widespread for assembly,
packaging, and pick and place of lightweight objects. Thanks to its stiness and precision,
it has also found applications for additive manufacturing [2, 3, 29], haptics [8, 2527, 30]
and even in the medical eld [32].
Some commercial Delta robot are shown in Figure 1.5. All of them feature parallelograms
and links free of motors; the robots in Figure 1.5b and 1.5c have extra rods to rotate the
end-eector, thereby having more than three dof.
1.3.1. History
The Delta robot was invented in the early '80s by Professor Reymond Clavel in the
laboratory of the École Polytechnique Fédérale de Lausanne (EPFL) in Switzerland. The
original version patented in 1990 (shown in Figure 1.7) has the possibility to rotate the
end-eector with a fourth motor mounted on the xed base that transmits the rotation
via a thin rod. It was rstly produced by the Swiss company Demaurex in 1987 [1].
1.3.2. Workspace
The typical workspace of an industrial Delta robot is a wide cylinder with a short trun-
cated inverted cone on the bottom. Figure 1.6 shows the workspaces of the Delta robot
in Figure 1.5.
As for most of parallel kinematics robots, the workspace is limited compared to the
extension of the mechanism. Further dof that rotate a wrist on the moving platform
allow to have a larger workspace, such as for the ABB IRB 390 in Figure 1.6c.
16 1| Introduction to Parallel Kinematic Robots and Delta Robots
(a) Fanuc DR-3iB (Courtesy of Fanuc, (b) Omron 17201-45604 (Courtesy of Omron,
www.fanuc.co.jp/en/product/robot/model/ industrial.omron.eu/en/products/
dr3ib.html) 17201-45604)
(c) ABB IRB 390 (Courtesy of ABB, (d) Kuka KR 3 D1200 HM (Courtesy of Kuka,
new.abb.com/products/robotics/ www.kuka.com/en-gb/products/
industrial-robots/irb-390) robotics-systems/industrial-robots/
kr-delta-robot-hm)
(a) Fanuc DR-3iB (Courtesy of Fanuc, (b) Omron 17201-45604 (Courtesy of Omron,
www.fanuc.co.jp/en/product/robot/model/ industrial.omron.eu/en/products/
dr3ib.html) 17201-45604)
(c) ABB IRB 390 (Courtesy of ABB, (d) Kuka KR 3 D1200 HM (Courtesy of Kuka,
new.abb.com/products/robotics/ www.kuka.com/en-gb/products/
industrial-robots/irb-390 robotics-systems/industrial-robots/
kr-delta-robot-hm)
2| Introduction to Fanuc
M-1i A/0.5A
Fanuc produces four families of Delta robots: M-1i A, M-2i A, M-3i A and DR-3i B. The
M-1i A version has 6 models, which are the combination of short or large motion range
and dierent number of axes. The models of the series M-1i A are collected in Table 2.1
The repeatability for all the M1-i A products is ±0.02 mm [5, 6].
A six dof M-1i A/0.5A is shown in Figure 2.1, in which are recognisable the three limbs
with a parallelogram with spherical joints that connect the moving platform to the base.
The moving platform is a three dof Wrist actuated by the rotation of three links departing
from the Base.
Axes
6 4 3
Table 2.1: Models names and payloads in kg (in round brackets) of the Fanuc robot series
M-1i A [6].
20 2| Introduction to Fanuc M-1i A/0.5A
Figure 2.3) is linked to the parallelogram, while the secondary arm (Arm 1) is connected to
the motor. This conguration allows to move the drive units into the top Cover, thereby
freeing space in the area between the primary rotary joints (points B in Figure 2.3). The
free area is needed to accommodate the three links that drive the Wrist dof, and at the
same time to eliminate some of the possible collisions states.
The translation in space of the end-eector is actuated by the rst three dof, called J1,
J2 and J3, which move Leg 1, Leg 2 and Leg 3 respectively by rotating the Arm 1 of the
kinematic chain shown in Figure 2.3.
The three Legs are placed at 120 deg around the central axis of the workspace. All the
Legs have identical Arm 1 and Arm 2. Moreover, the distances BD and BE of Arm 3 (see
Figure 2.3) are the same for all the Legs.
The other three dof J4, J5 and J6 are responsible for the rotation of the Wrist, and are
actuated by three motors mounted in the . The rotation is transmitted via three rods
mounted on prismatic joints to accommodate dierent distances to the end-eector as it
moves in the workspace. The product datasheet claims that J4, J5 and J6 can rotate at
up to 1440 deg/s [5, 6].
2.2. Workspace
The workspace of the M-1i A/0.5A is shown in Figure 2.4. It was obtained from the Fanuc
Roboguide software and imported into PTC Creo Parametric. Figure 2.4 contains also
the world origin frame of the robot, which was adopted throughout this work.
The workspace is the union of a cylinder and two frustums (truncated cones). Their axis
are aligned with the z world axis.
22 2| Introduction to Fanuc M-1i A/0.5A
Cover
Base
Leg 2
Leg 3
Wrist
Leg 1
Figure 2.2: Side view of the M-1i A/0.5A with the nomenclature used in this document.
The Base and Cover are sectioned to show inside. The motors, the transmission gears and
the components other than links are not shown. The robot is in the zero conguration.
2| Introduction to Fanuc M-1i A/0.5A 23
Arm 1 a
Arm 2 C A
A a
Arm 1
B
C
D B
Arm 2 D c1
Arm 3 c1
Arm 3
c2
E c2
E Rod
Rod
(a) Kinematic chain of Leg 1. Arm 1 is tilted of (b) Kinematic chain of Leg 2, identical to Leg
50 deg below the horizontal plane, so that the Arm 3 3.
of all Legs have the same inclination.
Figure 2.3: Links of Leg 1 and Leg 2 of the M-1i A/0.5A, along with the nomenclature
used further in this document. The kinematic chain shown here is from the motor (not
shown) to the Rods constituting the parallelogram, represented in the zero conguration.
a = 50 mm, c1 = 50 mm and c2 = 100 mm for all the Legs.
24 2| Introduction to Fanuc M-1i A/0.5A
Figure 2.4: Workspace of the M-1i A/0.5A obtained from the Fanuc Roboguide software.
The frame depicted represents the world coordinate system.
25
3| Introduction to Matlab
Simulink and Simscape
Multibody
This Chapter introduces the core concepts of Simscape Multibody and some features used
for the creation of the robot model. After a brief explanation of Simulink , the fundamental
blocks of Simscape Multibody and their most important characteristics are presented.
Next, it is discussed how to simulate the model and in particular in which way to control
it and how to collect the results.
Simscape is a Simulink extension used to create models of physical systems within Simulink .
Simscape has a basic so-called Foundation Library containing blocks for sources, sensor
and broad modellings in various physical elds: electrical, gas, hydraulic, magnetic, me-
chanical, thermal, . . . [15]. Simscape can be further extend to create detailed models of
complex physical system, by using one or more of the four dierent extensions [14]:
The four Simscape realms and the Simulink blocks integrate and work together, therefore
a system of engineering interest spanning multiple physical domains can be modelled,
26 3| Introduction to Matlab Simulink and Simscape Multibody
The general idea is to connect bodies by joints in positions specied using transform
blocks.
3.2.1. Bodies
Bodies represent an object with a mass. Normally they are rigid and with constant
mass, but Simscape Multibody has the capability to dene exible bodies and variable
mass bodies. A body has information about its geometry, its inertia and its graphical
representation.
Simscape Multibody oers some elementary body geometry with customizable parameters:
brick, cylinder, sphere, ellipsoid, and point (eventually including inertia). In alternative,
the user can specify a cross-section and build a geometry by extrusion or revolution, or
can import a custom CAD le to represent the geometry of a body.
The inertia information comprises the mass, the centre of mass and the inertia matrix.
For any type of geometry, the inertial properties can be either automatically evaluated or
manually specied. In the rmer case only the density or the mass is required.
The numerical values specied in Simscape Multibody must have units, that can be chosen
with a drop-down list.
3| Introduction to Matlab Simulink and Simscape Multibody 27
Figure 3.1: Settings of the Cylindrical Solid block, including a preview of the body.
The graphic parameters specify how the solid should be represented in the Mechanics
Explorer . Apart from the simple colour and transparency, more sophisticate settings can
be specied, such as the specular colour, emissivity colour, shininess, and more.
Finally, every object has a default reference frame R corresponding to the body origin. If
needed, more reference frames can be dened based on the geometry denition. Another
common way to create reference frames is to use Rigid Transform blocks connected to the
R frame.
Figure 3.1 shows the interface to edit a Cylindrical Solid block; other body blocks are
analogous.
3.2.2. Transforms
Coordinate systems (or frames) consist of a point called origin, and three perpendicular
axes (x, y , and z ) with direction, intersecting in the origin [17]. The Rigid Transform
28 3| Introduction to Matlab Simulink and Simscape Multibody
blocks are used to perform a coordinate change by translating the origin and rotating the
axes. The reference frame upon which transformations are applied is called base frame
B , and the resulting frame is the follower frame F.
3.2.3. Joints
Joints create kinematic constraints between two frames: the Base frame and the Follower
frame. The Table 3.1 summarizes all the joint types and the dof they have with respect
to translation and rotation about the standard x y z axis, called joint primitives [12]. In
this contest, joint primitive is a synonym of dof.
Consider, for instance, the Revolute Joint: it allows rotation between the z axis of the
base and follower frame. This implies that both frames must have collinear z axis, and
coincident origins. On the contrary, the Cylindrical Joint allows rotation and translation
3| Introduction to Matlab Simulink and Simscape Multibody 29
Joint types
Translation Rotation
Joint block name
x y z x y z S
6-DOF • • • · · · •
Bearing ◦ ◦ • • • • ·
Bushing • • • • • • ·
Cartesian • • • ◦ ◦ ◦ ◦
∗
Constant Velocity
Cylindrical ◦ ◦ • ◦ ◦ • ·
Gimbal ◦ ◦ ◦ • • • ·
∗
Leadscrew
Pin Slot • ◦ ◦ ◦ ◦ • ·
Planar • • ◦ ◦ ◦ • ·
Prismatic ◦ ◦ • ◦ ◦ ◦ ◦
Rectangular • • ◦ ◦ ◦ ◦ ◦
Revolute ◦ ◦ ◦ ◦ ◦ • ·
Spherical ◦ ◦ ◦ · · · •
Telescoping ◦ ◦ • · · · •
Universal ◦ ◦ ◦ • • ◦ ·
Weld ◦ ◦ ◦ ◦ ◦ ◦ ◦
Table 3.1: The 17 types of joints and their dof. The full dot (•) represents a dof along
which motion is allowed, an empty dot (◦) represents a constraint. The column S is used
when the joint exploits a spherical primitive instead of the three revolute primitive to
eliminate the risk of gimbal lock using a quaternion representation of the rotation. The
two representations are mutually exclusive, hence the use of · [18].
30 3| Introduction to Matlab Simulink and Simscape Multibody
about the z axis, therefore the base and follower must have collinear z axis, but the origin
of the follower can lye anywhere on the base's z axis.
Some important settings of the Revolute Joint block are illustrated in Figure 3.3. Of
particular importance are the sections: State Target, Actuation and Sensing for the only
dof of this block: the Z Revolute Primitive (Rz). Joints with more dofs have the same
options for all their dofs.
State Target
State Target is used to dene an optional starting position and velocity of a joint congu-
ration. The user can also decide with which Priority the initial conditions of the assembly
3| Introduction to Matlab Simulink and Simscape Multibody 31
Motion
Table 3.2: Possible combinations of actuation modes for a dof that can be used to achieve
dierent control modes [12].
should be satised: High or Low. It may happen that a model has many valid legal cong-
urations (for instance the so-called lefty and righty poses of a SCARA robot [9]), in such
case it is crucial to specify initial conditions that allow the correct assembly of model.
Actuation
The Actuation settings is used to actuate the joint either by specifying a Torque (or
Force for translation primitives ) or a Motion. The possible combinations and their use
are summarised in Table 3.2 [12].
When selecting Provided by Input, the joint block oers the possibility to connect an-
other block with the motion or torque signal. The signal must be a physical signal, the
unit should be specied (otherwise they are inferred), and it must also include the rst
and second derivative. These three requirements can be satised using the Simulink-PS
Converter block, which can be set to automatically compute derivatives if needed [21].
Sensing
The Sensing section is used to specify outputs of the joint blocks. These are the position,
velocity and acceleration and force of the dof. If needed, also the constraint forces can be
sensed using the Composite Force/Torque Sensing section. The output can be converted
to a Simulink signal by using the PS-Simulink Converter block.
Figure 3.4 shows how to impose a motion and compute the corresponding torque (Inverse
Dynamics).
32 3| Introduction to Matlab Simulink and Simscape Multibody
Figure 3.4: A simple mechanical system with two bodies connected by an actuated Revo-
lute Joint which outputs the torque required to accomplish the motion to a To Workspace
block. The motion law is given by a Ramp source converted to radiants and derived with
the Simulink-PS Converter block.
3.2.4. Forces
The blocks of type force are used to introduce forces and torques in the model. Forces
can either be an internal or external force. The internal forces are exerted between two
frames: the Base frame and the Follower frame. These are: Gravitational Field, Internal
Force, Inverse Square Law Force, Spatial Contact Force, and Spring and Damper Force. The
external forces can be introduced using the block External Force and Torque, which requires
only the follower frame.
For instance, Figure 3.5 shows a sample use of the force blocks.
Figure 3.5: A simple mechanical models of an oscillator. A Cylindrical Solid can move
vertically due to the Prismatic Joint (the z axis of the World Frame and of R are aligned).
On the frame F 1, on the top surface of the cylinder, is acting a vertical harmonic external
force generated with a Sine Wave and converted into a physical signal by the Simulink-PS
Converter block. The motion of the body is damped by the Spring and Damper Force
(and kinematics).
A simulation can be run until a specied Stop Time (and, if needed, from a certain Start
Time ), or indenitely by setting the Stop Time parameter to inf.
3.5.1. Input
Simulink oers many built-in signal sources, such as Constant, Ramp, Step, Sine Wave,
waveforms (with the blocks Waveform Generator or Signal Generator), and random se-
34 3| Introduction to Matlab Simulink and Simscape Multibody
Figure 3.6: A simple mechanical model using the 6-DOF Joint block to impose the a force
and a torque on a frame of the Brick Solid, and measure its angular position with respect
to the World Frame. The force is generated by a Random Number block, the torque is
obtained by a From Workspace block, and the output is saved using To Workspace.
quences. For more complex input signal, it might be convenient to create a signal using
the Signal Builder, or to import the data from the Matlab workspace (From Workspace
block), from a Matlab .mat le (From File), or from a spreadsheet (From Spreadsheet).
The From Workspace and From File blocks can import signals represented in dierent ways:
a so-called Matlab timeseries format, a matrix and a struct. The easiest and most versatile
is to format the input in a 2D matrix. The rst column must contain the timestamp, and
the other column must contain a signal each [19]. Thus every row has a timestamp ti and
a vector (ai , bi , ci , . . . ):
t1 a1 b1 c1 . . .
t2 a2 b2 c2
..
.
tn an bn cn
Simulink can interpolate linearly the values of the vector between timestamps. If the
simulation time is longer than the last timestamp (tn in the above example), the signal
can be extrapolated linearly, set to zero, held to the nal value, or repeated cyclically.
3.5.2. Output
The output of a multibody simulation consists typically of position and force values of
one or more joints. For instance, when simulating a robot with inverse dynamics, the
3| Introduction to Matlab Simulink and Simscape Multibody 35
desired output might be the positions and torques history of the motor joints.
A signal history can be saved using the To File or To Workspace Simulink blocks. The
output format is analogous to the input format: a timeseries, a matrix or a struct. When
using the To Workspace block, the outputs are saved into the Matlab workspace, or in the
workspace of the callee if the simulation is run programmatically using the sim command.
37
This Chapter presents how a 3D model of the M-1i A/0.5A was used to create a Simscape
Multibody model. The setup of the Simscape Multibody model is paramount to correctly
simulate the robot. The robot can be actuated in direct and inverse kinematics and
dynamics thanks to the use of the 6-DOF Joint, and can be conveniently controlled from
Matlab.
The main goal of this thesis is to simulate some of the working characteristics of the
M-1i A/0.5A using the resulting model in Matlab . The main characteristics pursued are:
Material densities
Table 4.1: Density of the material used to model the M-1i A/0.5A parts.
Before exporting the CAD drawing to Simulink , some pre-processing operations were
carried out. In particular: the units and the material were checked, the position of the
origin was updated to match the manufacturer's one, some parts were removed to simplify
the model, and some others were joined into a single object.
The six Rods are made of aluminium, while all the other relevant components are made
of steel. The moving platform contains a gearbox to actuate the three dof J4, J5 and J6
of the Wrist. To account for the internal cavity, it was supposed that 50% of its volume
is empty. The values used for the densities are listed in Table 4.1.
The components removed were the twelve (four for each of the three parallelograms) plates
joining the Rods in pairs to form four-bar mechanisms. They have only a mechanical
support role, and are irrelevant from a kinematic point of view. But since all the Rods are
constrained at both ends only by spherical connections, it is now necessary to prevent the
rotation along their longitudinal axis. The solution adopted was to include one ctitious
plane coincidence constraints between the Rods of each pair, as shown in Figure 4.1.
Finally, all the grounded and immobile parts where joined together to ease the export and
prevent unnecessary clutter in the Simulink model. These consist mainly in the robot case
and support structure, and the shafts on which the Arm 3 hinge. The aforementioned parts
were removed from the assembly and substituted by the new single part. The assembly
constraints lost were recreated identical to the original ones. The nal simplied assembly
is shown in Figure 4.2.
4| Generation of the Model 39
(a) Original four-bar mechanism with two (b) Coincidence constraint introduced in PTC
connecting Links (in red). Creo Parametric to prevent free axial rotation
of the Rods.
Figure 4.2: Simplied assembly in PTC Creo Parametric. The Links are removed (cf.
Figure 2.2). The top part of the Cover is hidden. The robot is shown in the zero position.
40 4| Generation of the Model
The geometry in the .step les are only used only for visual representation and animation,
and the computations do not rely on them. To ease the burden of the graphical work, all
the drawing les have been modied with SolidWorks to remove unnecessary features (like
chamfers), and reduce the number of points of the geometry, while keeping an acceptable
level of details.
Finally, the Simscape Multibody model was generated in Matlab with the command
smimport. This produced a Simulink model .slx le resembling the mechanism in the
CAD drawing. Some of the constants used in the blocks of the models are collected in a
Matlab script executed before every simulation.
Some frames were also added to reference interesting positions, such as the end-eector
and the central axis of the workspace.
To guide the assembly of the model to the only desired position amongst the many kine-
matically valid, the initial condition of the some joint parameters were set by specifying
the State Target position and priority for some the joint blocks (3.2.3) [10, 12]. In par-
ticular, the three motor angles were set to 0 deg with high priority, and three of the
bottom spherical joints (one per kinematic chain) were set to their value at import with
4| Generation of the Model 41
(a) Whole robot in default pose. (b) Close up of the spherical joints that connect
the end-eector to the parallelogram Rods.
Figure 4.3: View in the Mechanics Explorer of the robot in the default conguration. The
joints whose initial position was set are indicated by arrows.
low priority (Figure 4.3). The zero pose is shown in Figure 4.2.
In order to measure and actuate of the end-eector, a 6-DOF Joint block was added
between the World Frame and the end-eector (3.5), as shown in Figure 4.6.
42 4| Generation of the Model
Arm 1
C
D
Arm 2
Arm 3
Rod
Wrist
end-eector
(tool center point (TCP))
Figure 4.4: Comparison Leg 1 in Simulink model (left) and CAD model (exploded view)
(right). The port F of the Base block is connected to the World Frame.
4| Generation of the Model 43
Figure 4.5: To Workspace blocks collecting torques and positions of the motors.
In this model the joints representing the motors and the 6-DOF Joint connecting the
end-eector to the World Frame should be actuated. All the other non-actuated joints
are passive: the Actuation Torque is None, and the Actuation Motion is Automatically
Computed.
Most of the simulations required inverse kinematics analysis. Therefore the motion law of
the end-eector had to be saved into the Workspace in matrix form prior to the simulation.
44 4| Generation of the Model
Figure 4.6: On the top part are visible the three kinematic chains of the Legs connecting
the Base to the rigid Wrist (eector). On the bottom, the 6-DOF Joint connects the World
Frame and the end-eector; actuation inputs are connected on its left, and sensor outputs
on the right.
4| Generation of the Model 45
The simulation outputs generated from the To Workspace blocks could be read after the
job, along with the vector of discrete time instants at which the model was evaluated.
47
5| Workspace
In this and the following Chapters the results of the analysis on the simplied model will
be reported. Despite not representing the real robot, this information is still useful for
some scenarios of operation, for instance when the attitude is kept constant or if the task
requires only translations. Moreover, similar methods could be used for other product of
the M-1i A series, like the three dof M-1iA/1H (see Table 2.1).
The workspace is a very important characteristic for industrial robot. Since the end-
eector is bounded to be inside it, it is of primary importance to identify the workspace of
the M-1i A/0.5A. The results shown here are obtained with the Wrist in the zero position.
The same still holds valid for other Wrist orientations: the resulting workspaces will be
equivalent but translated.
Figure 5.1: Spiral motion prescribed to the end-eector for a generic layer z = zi .
To prevent assembly errors, all the simulations started from the zero position of the robot,
then the end-eector was moved to the desired z plane, and ultimately the spiral motion
could begin.
The many simulations were carried out in parallel using parsim. A simulation would stop
if any of the following condition would arise:
The rst condition is veried automatically by the Simscape Multibody assembler. The
second condition arises whenever a motor angle (J1, J2 or J3) is outside the range
]−66, +72 [ deg, therefore can be enforced by using a Stop Simulation block. Figure 5.2
shows how the stop logic was implemented. The aforementioned range was chosen by
5| Workspace 49
Figure 5.2: The motor angles in output from the Revolute Joint corresponding to the J1,
J2 and J3 motors are compared to hardcoded boundaries. If at least one is out of range,
the simulation halts.
rounding towards zero (truncating) the maximum angles at which Arm 1 can move. Those
angles were measured in PTC Creo Parametric by placing the three Arm 1 in contact with
the frame, and are the same for J1, J2 and J3.
Figure 5.3: Tridimensional (left) and Frontal (right) views of workspace obtained by all
legal points.
5.3. Results
Similarly as done before, the singular points were eliminated considering where the torque
in any of the motor was greater than 10 Nm. The resulting workspace is bowl-shaped
with three hemispherical carving on the top. Figure 5.3 shows the boundary of the points
of the workspace.
The largest motion range in the xy plane is at z = −312 mm, where the maximum distance
from the workspace axis is 202 mm, but some point in this plane are unreachable. The
largest circle constituted of only legal points is at z = −342 mm, and has a diameter of
177 mm. In the layers shown in Figure 5.4 is clearly visible the third-order rotational
symmetry about the vertical axis passing through the end-eector at zero position. The
workspace distortions are placed at 120 deg, and coincide with the position of the joints.
5| Workspace 51
Figure 5.4: Legal points on the spirals travelled by the end-eector in dierent z planes.
52 5| Workspace
Figure 5.5: Tridimensional (left) and Frontal (right) views of the simplied workspace
obtained by revolution of the minimum legal radius.
Nonetheless, most of the workspace has axial symmetry, therefore its denition can be
greatly simplied by discarding some points and expressing the radius as a function of z .
An even simpler geometry is similar to those of the Delta robots in Figure 1.6, and with
the nominal workspace in Figure 2.4. It consists in a cylinder with two dierent cone
trunks on its bases. This geometry can be obtained by revolution of the curve shown in
Figure 5.6. The nal workspace volume is shown in Figure 5.7.
The latter simplied workspace will be used for all the forthcoming work.
Figure 5.6: Radii used for the simplied workspaces. Blue: rst approximation. Orange:
second approximation, using straight lines.
Figure 5.7: Tridimensional (left) and Frontal (right) views of the second simplied
workspace obtained by revolution of straight lines in Figure 5.6.
54 5| Workspace
Figure 5.8: Tridimensional (left) and Side view (right) of the nominal workspace of the
M-1i A/0.5A (blue) and the simplied workspace for the rigid wrist simplied model (red).
model. The rmer is much larger than the latter due to the greater range of mobility
granted by the rotation of the Wrist. Nonetheless, the latter develops partly outside of the
nominal workspace. This might be simply due to the fact that the robot manufacturer
declare a nominal workspace smaller than that considered legal in this analysis. Finally,
as expected the workspaces are not coaxial: the small workspace is centred in the end-
eector centre in the zero position, while the large workspace is centred in the Wrist center
in the zero position.
55
Once a workspace for the rigid Wrist model was available, it was possible to undertake
some analysis of the behaviour of the robot. The inverse kinematics and the dierential
inverse kinematics are of paramount importance for the use of any robot, as long as the
direct problems. Therefore the model was used rst to derive the relation between points
in the workspace and the corresponding positions in the joint space; then to compute the
Jacobian. The Jacobian was used to solve the dierential kinematics problems, to nd
singularities and to compute the manipulability indexes.
6.1. Simulation
The end-eector was moved to n = 17 981 points forming a grid within the workspace.
The distance between two consecutive points in the z direction was 4 mm, while the
resolution in the x and y direction was 8 mm. These values were chosen in order to divide
the workspace into approximately 25 to 35 slices in each direction. A simulation with a
ner resolution would have been extremely time consuming.
These points were collected in a n × 4 matrix (one column for the time, three for the posi-
tion) used by the From Workspace block to control position of the end-eector. Figure 6.1
shows the workspace and the corresponding points in the joint space.
Figure 6.1: Workspace (left) and Joint space (right). Three planes are highlighted: on the
top images they correspond to the end-eector in the planes: z = −340 mm (blue), z =
−380 mm (orange) and y = 0 mm (red). On the bottom images the planes corresponds
to the zero position of J1 (blue), J2 (red) and J3 (orange).
6| Direct and Inverse Kinematics 57
returns the motor angle of joint k to place the end-eector in the point (x, y, z), thus
solving the inverse problem corresponding to Equation 1.6. While
These matrices Ei are three-dimensional because each of them represents the direct kine-
matic function fi : R3 → R:
Ex (q1 , q2 , q3 ) ≈ fx (q1 , q2 , q3 ) = x
Ey (q1 , q2 , q3 ) ≈ fy (q1 , q2 , q3 ) = y (6.1)
Ez (q1 , q2 , q3 ) ≈ fz (q1 , q2 , q3 ) = z
Subsequently, the gradient for each of the three Ei matrices was computed, yielding nine
three-dimensional matrices, corresponding to the nine elements of the Jacobian matrix
1E and Q have three columns. Every row of E is a point (x, y, z) in the working space, while every
row of Q is a point (q1 , q2 , q3 ) in the joint space. The command E(:,1) selects the rst column of E ,
thus the x coordinate of all points in the working space.
2 Other commands such as scatteredInterpolant and griddata can also be used, and should be
preferred if the query points are matrices.
58 6| Direct and Inverse Kinematics
It must be noticed that not all points of the grid in the joint space can be reached by
the robot. Consequently, the unreachable points do not have a direct kinematic solution,
and the corresponding value in the Ei matrices is NaN (Not A Number). Any arithmetic
operation on a NaN returns NaN, therefore the Jacobian on the border of the workspace has
all or some NaN elements. These matrices are discarded in the subsequent computations.
ż q̇3
Since J(q1 , q2 , q3 ) is a 3 × 3 matrix, it can be easily inverted to solve the inverse kinematic
problem as per Equation 1.7:
q̇1 ẋ
−1
q̇2 = J (q1 , q2 , q3 ) ẏ (6.5)
q̇3 ż
J can be inverted only if it is full rank and its conditioning number is low.
6.4. Singularities
A singularity arises where the Jacobian fails to be full rank (1.1.9). The Jacobians com-
puted have rank equal to 3 in every point of the workspace, thus this workspace is free of
6| Direct and Inverse Kinematics 59
Figure 6.2: Tridimensional (left) and Frontal (right) views of the points of the workspace
where the condition number of the Jacobian is greater than 103 .
singularities.
Despite the Jacobians are full rank in every point, they are ill-conditioned in some regions
of the workspace. A very high condition number is an indicator of near-singularity of a
matrix. The condition number is equivalent µ2 , as dened in Equation 1.19. The points
for which the Jacobian is ill-conditioned are shown in Figure 6.2. The location of ill-
conditioned Jacobians suggests to increase the minimum position of the workspace and
reduce the amplitude of the bottom cone.
Once the Jacobian matrix J(q1 , q2 , q3 ) was known for every point of the workspace, the
eigenvalues and eigenvectors of JJ T were computed. Finally, the volume index v and the
isotropy index µ were evaluated as per Equations 1.18 and 1.19. Before analysing the
results, the outliers were removed from v and µ3 .
These indexes are dicult to visualize from bidimensional images. Nonetheless, the Ap-
pendix A contains some gure to show their value in the workspace. The pictures show a
large volume index in most of the workspace, which quickly decreases towards the bottom
of the bowl. The isotropy index changes linearly from nearly 1 on the top to a maximum
of 5.58.
3A value was considered an outlier if it is more than three scaled median absolute deviations. This is
the default method of the Matlab function rmoutliers [22].
60 6| Direct and Inverse Kinematics
Figure 6.3: Comparison of the two proposed simplied workspace. In red: workspace
obtained by revolution of the curve R(z) with the minimum legal radii. In blue: workspace
obtained by revolution of three straight segments.
The fact that the workspace is close to singularity in the bottom but not in the top, is
due to the last simplication of the workspace operated in 5.4, which removed a lot of
volume from the top. This suggests that the top cone trunk can be safely extended to
increase the workspace. Figure 6.3 shows both the simplied workspaces proposed in 5.4,
and depicted in the Figures 5.5 and 5.7.
Figure 6.4: Contour of ellipsoid isotropicity, and the longest and shortest directions of the
manipulability ellipsoids when the end-eector lies in the plane z = −415 mm.
63
7| Static Forces
This analysis concerns how the forces acting on the end-eector are distributed across the
motors loads, and what is the load on the links. Since this work eschews any particular
trajectory planning, the investigation will regard only static forces, thus without inertia
due to accelerations.
When using a robot, the forces on the end-eector may have components in any of the
three directions. Therefore three simulations were run, in each a unitary force was exerted
on the end-eector in only one of the three directions.
Due to the well-known symmetry of the workspace (as discussed in 5.3), a cylindrical
coordinate system was used. The three directions were: radial (r), tangential (t) and
vertical (z ), with the cylinder axis (r = 0) corresponding to the workspace axis.
The unitary forces were chosen under the assumption that the torque is a linear combi-
nation of the forces when the end-eector dwells in a certain pose. For example if the
force F1 applied in a certain point causes a torque T1 , and the force F2 in the same point
causes T2 , then α F1 + β F2 yields a response torque α T1 + β T2 .
The motor torques are computed by Simulink using the inverse dynamic model of the
robot. Analytical formulas for structural forces were computed with a simple static equi-
librium balance, and were implemented in the Simulink model using appropriate blocks.
M is the torque on the motor in response to the loads on the end-eector, and the only
unknowns are the compression F of Arm 2, and the compression G of the Rod. They can
be obtained by a simple static equilibrium equation of Arm 1 and Arm 3:
64 7| Static Forces
RyA
A
C
RxA
F αM
C Arm 1
Arm 2
D
RyB
F B
D RxB
E Arm 3
β
2G
Rod
E
Wrist
~~
H
Forces to
2G
other Legs
Figure 7.1: Exploded view of the components of Leg 2 or Leg 3 and the Wrist, with
the force vectors at the joint points. The forces outside the plane of the paper are not
represented. The compression of the Rod is 2G because there are two Rod elements per
Leg (only one is visible here).
7| Static Forces 65
(a) (b)
Figure 7.2: Subsystems to compute forces F (left) and G (right) according to (7.3) and
(7.5). The input of the Divide blocks are vectors (on per Leg ), and it performs element-
wise division.
M + ~a × F~ = 0
Torque balance of Arm 1 in A (7.1)
M − a sin α F = 0
c~1 × F~ + c~2 × 2G
~ =0
Torque balance of Arm 3 in B (7.2)
c1 sin α F − c2 sin β 2G = 0
Where a, c1 and c2 are the distances between the hinges (in A and B) and the forces
application points, as per Figure 2.3. Their values are: a = 50 mm, c1 = 50 mm and
c2 = 100 mm independently of the Leg.
The result for Leg 1 is analogous and yields the same formulas.
The equations 7.3 and 7.5 were implemented in the Simulink model with the block logic
in Figure 7.2, and their result was saved by a To Workspace block.
66 7| Static Forces
To measure forces without accelerations, the motors were ordered to remain in the pre-
scribed position by specifying it twice in a row in the input matrix. In this way the From
Input interpolation algorithm did not interfere by moving the motors continuously. As
usual, the starting position of all the simulations was the zero conguration. The matrix
containing the joint angles used in the From Workspace block had the following fashion:
0 ϕ0 ϑ0 γ0
t ϕ1 ϑ1 γ1
2t ϕ1 ϑ1 γ1
3t ϕ2 ϑ2 γ2
4t ϕ2 ϑ2 γ2
5t ϕ3 ϑ3 γ3
6t ϕ3 ϑ3 γ3
..
.
(2n − 1) t ϕN ϑN γN
2n t ϕN ϑN γN
Where t = 0.1 s is the time resolution used, n = 17 981 is the number of points analysed,
and the subscript 0 denotes the stating position.
The matrix of forces acting on the end-eector was dierent for every simulation, de-
pending on the direction engaged. The rst column contained the initial and nal time,
while the following three columns hosted respectively the force in radial, tangential and
vertical direction. These three forces would be later converted during the simulation into
the Cartesian components used by the model. Since the force is constant across all the
workspace, there are only two rows with the same force values, therefore any interpolation
returns the same force vector1 . For clarity's sake the three force input matrices are here
reported:
1 Actuallya single row would have produced the same result, because values can be hold constant by
Simulink after the last timestamp (3.5.1). But the approach undertook here was deemed more logic and
robust.
7| Static Forces 67
Figure 7.3: Blocks used to convert forces on the end-eector in cylindrical coordinate
system to Cartesian coordinate system. As visible, the Transform Sensor shares the same
follower with the 6-DOF Joint, but has a dierent base, namely a point on the central axis
of the cylindrical reference frame.
0 1 0 0 0 0 1 0 0 0 0 1
2n t 1 0 0 2n t 0 1 0 2n t 0 0 1
Radial force Tangential force Vertical force
Fz 0 0 1 Fz
Where ϑ is the azimuth angle between a frame coincident with the cylinder axis and the
end-eector, as shown in Figure 7.4. It can be computed as the four-quadrant arctangent
(atan2) of the distance in y and x between the end-eector and the workspace axis.
The described conversion was implemented in the Simulink model using a Transform
Using the Azimuth output of the Transform Sensor would have been a more straightforward
68 7| Static Forces
Fr
J3
ϑ
Ft
J1
J2
Figure 7.4: Top view of the robot in the Mechanics Explorer, in which the base and
follower frames used by the Transform Sensor are shown. The angle ϑ between the frames
is the azimuth angle. Radial and Tangential forces act in the directions shown. The
position represented is (J1 = +8, J2 = −29, J3 = +11) deg.
7| Static Forces 69
approach, but the block throws an error that stops the simulation when the base and
follower frames coincide. Instead, the atan2 algorithm implemented in the Trigonometric
α can be simply measured using the Position output of the Revolute Joint blocks in the
point C.
The measure of β is not straightforward due to the Spherical Joint in E , which allows
rotations of the follower frame about all axis of the base frame. The base frame belongs
to Arm 3, and the follower frame belongs to the Rod. Figure 7.5 shows the position and
orientation of the two frames. β is only the rotation in the plane of the paper, thus
about the y axis of the base frame. The Spherical Joint exploits the spherical primitive
joint, thus its sensor output is a quaternion representation of the rotation. To obtain
β , the quaternion has to be converted to a rotation sequence whose rst axis is y . This
procedure is conveniently performed by a Quaternions to Rotation Angles block from the
Aerospace Blockset add-on [20]. The rotation sequence used was yxz . Since the angle β
is the same for both Rods in the parallelogram mechanism, it is measured for only one
of them. Figure 7.6 shows how the computation of β was implemented in the Simulink
model for J1.
It is worth to notice that the eort of smartly aligning reference frames in the post-
processing of the imported model (4.3.1) was now compensated.
Before the analysis, the simulation output was ltered to remove non-static points. In
particular, the following constraints had to be satised:
(a) (b)
(c) (d)
Figure 7.5: Orientation of the frames of the Spherical Joint for J1: base (on the left-hand
side) and follower (on the right-hand side), seen from the side (top pictures) and from the
front (bottom pictures). The position represented is (J1 = −27, J2 = −39, J3 = +17) deg.
7| Static Forces 71
Figure 7.6: Conversion of the quaternion rotation of the Spherical Joint connecting Arm 3
The threshold values were decided based on empirical experience. Only approximately
35% of the point acquired proved to be static according to the above constraints.
The values preserved after the lter were clustered in groups with constant values, which
were then averaged into a single element. Figure 7.7 shows the data before and after
ltering.
7.3. Results
7.3.1. Motor torques
The extreme values of motor torques are reported in Table 7.1. While it is evident the
similarity of J2 and J3 in the case of tangential and vertical load, the same does not hold for
the radial load. By comparing the values of the table vertically, it appears that J2 behaves
dierently. This is also clear by confronting the contour plot of J2 and J3 in Figure B.2,
or the histograms of M . J2 and J3 have overlapping histograms for tangential and vertical
force (Figures B.7 and B.13), but not for the force in radial direction (Figure B.1). A
possible reason is a slight misalignment of the workspace axis with respect to the actual
centre between the Legs. A more likely reason could be an accidental mistake in the code
used to post-process the simulation output.
2 The L distance (or L1 norm, or Manhattan distance) is k∆xk1 = ∆xp+ ∆y + ∆z , while the norm
1
refers to the L2 distance (or L2 norm, or Euclidean norm) (kqk ≡ kqk2 = q12 + q22 + q32 ).
72 7| Static Forces
Figure 7.7: Sample of output data before and after ltering: the straight thin lines
represent original values, and the points represents ltered values. These ltered values
create well separated regions whose mean value is shown by coloured stars (?). The ◦ and
× symbols on the zero axis designate respectively the begin and end of a region. Only the
position in working space and torque are shown here, but the same process was applied
to all the outputs.
M
J1 [Nm] J2 [Nm] J3 [Nm]
max 0.44 0.48 0.35
Radial load
min −0.12 −0.19 0.00
max 0.47 0.41 0.41
Tangential load
min −0.23 −0.04 −0.04
max 0.29 0.29 0.29
Vertical load
min −0.08 −0.05 −0.05
Table 7.1: Extreme value of the motor torques in response to unitary load in the three
directions.
7| Static Forces 73
F G
J1 [N] J2 [N] J3 [N] J1 [N] J2 [N] J3 [N]
max 11.25 13.92 9.50 2.22 2.42 1.82
Radial load
min −4.55 −5.95 −0.11 −1.06 −1.47 −0.03
max 13.32 10.46 10.48 2.41 2.06 2.08
Tangential load
min −7.90 −1.43 −1.44 −1.80 −0.36 −0.36
max 8.31 8.91 8.86 1.50 1.49 1.49
Vertical load
min −3.35 −1.96 −1.96 −0.76 −0.48 −0.48
Table 7.2: Extreme value of the forces F and G in response to unitary load in the three
directions.
The motor torques in response to a unitary force are six-dimensional data structures. An
easy way to visualize them is to consider just the points on a plane of the workspace, and
show the corresponding torques as three surfaces. The Appendix B contains some gures
that show the motor response to loads on the end-eector.
As one could expect, the three Legs have similar behaviour, and in particular J2 and J3
are specular. The contour plots of max |Mi | in Appendix B show a minimum value slightly
on the −y direction from the centre of the workspace. This is likely due to the oset of
the translational workspace used for this analysis and the nominal workspace.
The value of the forces across the workspace for dierent loads is illustrated in the gures
of the second part of Appendix B.
75
developments
In this thesis the Fanuc M-1i A/0.5A robot was modelled in Simulink and some of its
operational characteristics were analysed. In particular the work focused on determining
the workspace of the robot with xed-attitude Wrist, solving the kinematics problems by
building lookup tables, and computing the motor torques and structural forces.
The analysis of the workspace revealed that it could be larger than the nominal workspace
declared by the manufacturer. The largest possible translational workspace has a complex
shape with a third-order radial symmetry, thus two simplied version of the workspace
were proposed. The end-eector has decent manipulability in a vast area.
The model Simscape Multibody assembler was exploited to solve the inverse kinematic
problem, and ultimately to build lookup tables useful to solve the forward and inverse
problems by interpolation. At the same time, the result were used to visualize the joint
space and its range. It was found that the limits of a joint motion depends on the position
of the other joints. The Jacobian was evaluated in every point of the joint space in order
to solve the dierential kinematics problems. The Jacobian is always full-rank, but in
some point on the workspace border it is ill-conditioned, thus close to singularity.
A static equilibrium analysis of the robot Legs was used to identify how forces transmit in
the structure from the end-eector to the motors. The motor torque, and the compression
forces of the components were evaluated in three load scenarios: radial, tangential or
vertical force with respect to the Wrist central axis. This analysis did not account for
inertial forces. The result shows how the aforementioned forces vary in the workspace in
the three scenarios. It was found that J2 and J3, which are geometrically identical, have
specular response, except for radial loads. As regarding J1, it supports most of the load,
and has larger extreme values, both in positive and negative direction.
The results of this thesis advanced the academic knowledge about the Fanuc M-1i A
robots. Another important achievement was the creation of a framework to study the
76 8| Conclusions and future developments
robot operational characteristics from a CAD drawing. The same analysis can be under-
taken on dierent models with minor edits, or can be scaled to more than three dof. The
framework could also be expanded to analyse more characteristics of the robot.
Future works on this topic could expand this study by analysing more characteristic, such
as dynamic performances. The Simulink model has some possibility of improvement:
for instance stiness, damping and friction of the joints could be modelled. A great
improvement would be represented by modelling also the Wrist rotation. Finally, future
work may focus on co-simulation to validate the results here presented.
77
Bibliography
[1] I. Bonev. Delta parallel robot the story of success, 2001. URL http://www.
parallemic.org/Reviews/Review002.html. Accessed 2022-07-11.
[4] R. Clavel. Device for the movement and positiong of an element in space, 1990. URL
https://pdfpiw.uspto.gov/.piw?docid=04976582.
[9] K. M. Lynch and F. C. Park. Modern Robotics. Cambridge University Press, 2017.
ISBN 9781107156302. URL http://modernrobotics.org/.
[23] J.-P. Merlet. Parallel Robots. Springer, second edition, 2006. ISBN 9781402041330/4.
[27] C. Preault, H. Saa, M. A. Laribi, and S. Zeghloul. 4haptic: A dexterous 4 d.o.fs hap-
tic device based on delta architecture. In S. Zeghloul, L. Romdhane, and M. Laribi,
editors, Computational Kinematics, volume 50 of Mechanisms and Machine Science,
pages 307314, 2018. ISBN 9783319608662/79. doi: 10.1007/978-3-319-60867-9\_35.
[29] E. Rodriguez, C. Riano, A. Alvares, and R. Bonnard. Design and dimensional syn-
thesis of a linear delta robot with single legs for additive manufacturing. Journal
of the Brazilian Society of Mechanical Sciences and Engineering, 41(11), November
2019. ISSN 1678-5878. doi: 10.1007/s40430-019-2039-6.
[31] B. Siciliano, L. Sciavicco, L. Villani, and G. Oriolo. Robotics. Springer, 2009. ISBN
9781846286414/21. doi: 10.1007/978-1-84628-642-1.
dachita. Delta robot kinematic calibration for precise robot-assisted retinal surgery.
In 2022 International Symposium on Medical Robotics (ISMR), pages 17, 2022. doi:
10.1109/ISMR48347.2022.9807517.
81
A| Manipulability
In this section of the document are reported some images to show the spatial distribution
of the isotropy index µ and the volume index v of the manipulability ellipsoids, as well
as the directions of the longest and shortest ellipsoid semi-axes. The rst part shows
tridimensional contour plot, while the second has some 2D contour plot in some planes.
The planes used for slicing the workspace are shown in Figure A.1.
The contour plot of isotropy features vectors representing some of the eigenvector with
the largest and smallest associated eigenvalue. The vectors are scaled by their eigenvalue,
therefore the two vectors departing from a point where µ ≈ 1 have the same length.
Despite the three dimensional vector are not representable in the image, there are clearly
distinguishable patterns in eigenvectors direction.
82 A| Manipulability
Figure A.1: Cutting planes used to visualise isotropy and volume in the workspace.
A| Manipulability 83
Figure A.4: Isotropy index µ and volume v on the plane x = 42.6 mm.
84 A| Manipulability
Figure A.6: Isotropy index µ and volume v on the plane z = −340 mm.
A| Manipulability 85
Figure A.7: Isotropy index µ and volume v on the plane z = −400 mm.
87
In this Chapter the result on the static force analysis are presented. The eect of radial,
tangential and vertical load is presented separately. Every section has an histogram, a
tridimensional contour plot, and a curve and contour plot representing specic planes of
the workspace. These planes are the same used in Appendix A, shown in Figure A.1.
Figure B.2: Volumetric contour plot of torque in response to a radial unitary load on the
end-eector.
Figure B.3: Motor torque in response to a radial unitary load when the end-eector is in
the plane x = 42.6 mm.
B| Torques and Forces 89
Figure B.4: Motor torque in response to a radial unitary load when the end-eector is in
the plane y = 0 mm.
Figure B.5: Motor torque in response to a radial unitary load when the end-eector is in
the plane z = −340 mm.
90 B| Torques and Forces
Figure B.6: Motor torque in response to a radial unitary load when the end-eector is in
the plane z = −400 mm.
B| Torques and Forces 91
Figure B.8: Volumetric contour plot of torque in response to a tangential unitary load on
the end-eector.
92 B| Torques and Forces
Figure B.9: Motor torque in response to a tangential unitary load when the end-eector
is in the plane x = 42.6 mm.
Figure B.10: Motor torque in response to a tangential unitary load when the end-eector
is in the plane y = 0 mm.
B| Torques and Forces 93
Figure B.11: Motor torque in response to a tangential unitary load when the end-eector
is in the plane z = −340 mm.
Figure B.12: Motor torque in response to a tangential unitary load when the end-eector
is in the plane z = −400 mm.
94 B| Torques and Forces
Figure B.14: Volumetric contour plot of torque in response to a vertical unitary load on
the end-eector.
B| Torques and Forces 95
Figure B.15: Motor torque in response to a vertical unitary load when the end-eector is
in the plane x = 42.6 mm.
Figure B.16: Motor torque in response to a vertical unitary load when the end-eector is
in the plane y = 0 mm.
96 B| Torques and Forces
Figure B.17: Motor torque in response to a vertical unitary load when the end-eector is
in the plane z = −340 mm.
Figure B.18: Motor torque in response to a vertical unitary load when the end-eector is
in the plane z = −400 mm.
B| Torques and Forces 97
Figure B.19: Histogram of F (left) and G (right) with radial unitary load on the end-
eector.
98 B| Torques and Forces
Figure B.20: Volumetric contour plot of F (left) and G (right) with a radial unitary load
on the end-eector.
B| Torques and Forces 99
Figure B.21: Forces F and G with a radial unitary load when the end-eector is in the
plane x = 42.6 mm.
100 B| Torques and Forces
Figure B.22: Forces F and G with a radial unitary load when the end-eector is in the
plane y = 0 mm.
B| Torques and Forces 101
Figure B.23: Forces F and G with a radial unitary load when the end-eector is in the
plane z = −340 mm.
102 B| Torques and Forces
Figure B.24: Forces F and G with a radial unitary load when the end-eector is in the
plane z = −400 mm.
B| Torques and Forces 103
Figure B.25: Histogram of F (left) and G (right) with tangential unitary load on the
end-eector.
104 B| Torques and Forces
Figure B.26: Volumetric contour plot of F (left) and G (right) with a tangential unitary
load on the end-eector.
B| Torques and Forces 105
Figure B.27: Forces F and G with a tangential unitary load when the end-eector is in
the plane x = 42.6 mm.
106 B| Torques and Forces
Figure B.28: Forces F and G with a tangential unitary load when the end-eector is in
the plane y = 0 mm.
B| Torques and Forces 107
Figure B.29: Forces F and G with a tangential unitary load when the end-eector is in
the plane z = −340 mm.
108 B| Torques and Forces
Figure B.30: Forces F and G with a tangential unitary load when the end-eector is in
the plane z = −400 mm.
B| Torques and Forces 109
Figure B.31: Histogram of F (left) and G (right) with vertical unitary load on the end-
eector.
110 B| Torques and Forces
Figure B.32: Volumetric contour plot of F (left) and G (right) with a vertical unitary
load on the end-eector.
B| Torques and Forces 111
Figure B.33: Forces F and G with a vertical unitary load when the end-eector is in the
plane x = 42.6 mm.
112 B| Torques and Forces
Figure B.34: Forces F and G with a vertical unitary load when the end-eector is in the
plane y = 0 mm.
B| Torques and Forces 113
Figure B.35: Forces F and G with a vertical unitary load when the end-eector is in the
plane z = −340 mm.
114 B| Torques and Forces
Figure B.36: Forces F and G with a vertical unitary load when the end-eector is in the
plane z = −400 mm.
115
List of Figures
3.1 Settings of the Cylindrical Solid block, including a preview of the body. . . . 27
3.2 Settings of the Rigid Transform block. . . . . . . . . . . . . . . . . . . . . . 28
3.3 Settings of the Revolute Joint block. . . . . . . . . . . . . . . . . . . . . . . 30
3.4 A simple actuated mechanical system in Simulink . . . . . . . . . . . . . . . 32
3.5 A simple mechanical models of an oscillator in Simulink . . . . . . . . . . . 33
3.6 A simple mechanical model using the 6-DOF Joint block to impose a torque
and measure the position of a frame. . . . . . . . . . . . . . . . . . . . . . 34
A.1 Cutting planes used to visualise isotropy and volume in the workspace. . . 82
A.2 Tridimensional contour of the ellipsoid isotropy index µ. . . . . . . . . . . 83
A.3 Tridimensional contour of the ellipsoid volume index v . . . . . . . . . . . . 83
A.4 Isotropy index µ and volume v on the plane x = 42.6 mm. . . . . . . . . . 83
A.5 Isotropy index µ and volume v on the plane y = 0 mm. . . . . . . . . . . . 84
A.6 Isotropy index µ and volume v on the plane z = −340 mm. . . . . . . . . . 84
A.7 Isotropy index µ and volume v on the plane z = −400 mm. . . . . . . . . . 85
B.3 Motor torque in response to a radial unitary load when the end-eector is
in the plane x = 42.6 mm. . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
B.4 Motor torque in response to a radial unitary load when the end-eector is
in the plane y = 0 mm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
B.5 Motor torque in response to a radial unitary load when the end-eector is
in the plane z = −340 mm. . . . . . . . . . . . . . . . . . . . . . . . . . . 89
B.6 Motor torque in response to a radial unitary load when the end-eector is
in the plane z = −400 mm. . . . . . . . . . . . . . . . . . . . . . . . . . . 90
B.7 Histogram of motor torques with tangential unitary load. . . . . . . . . . . 91
B.8 Volumetric contour plot of torque in response to a tangential unitary load
on the end-eector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
B.9 Motor torque in response to a tangential unitary load when the end-eector
is in the plane x = 42.6 mm. . . . . . . . . . . . . . . . . . . . . . . . . . . 92
B.10 Motor torque in response to a tangential unitary load when the end-eector
is in the plane y = 0 mm. . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
B.11 Motor torque in response to a tangential unitary load when the end-eector
is in the plane z = −340 mm. . . . . . . . . . . . . . . . . . . . . . . . . . 93
B.12 Motor torque in response to a tangential unitary load when the end-eector
is in the plane z = −400 mm. . . . . . . . . . . . . . . . . . . . . . . . . . 93
B.13 Histogram of motor torques with vertical unitary load. . . . . . . . . . . . 94
B.14 Volumetric contour plot of torque in response to a vertical unitary load on
the end-eector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
B.15 Motor torque in response to a vertical unitary load when the end-eector
is in the plane x = 42.6 mm. . . . . . . . . . . . . . . . . . . . . . . . . . . 95
B.16 Motor torque in response to a vertical unitary load when the end-eector
is in the plane y = 0 mm. . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
B.17 Motor torque in response to a vertical unitary load when the end-eector
is in the plane z = −340 mm. . . . . . . . . . . . . . . . . . . . . . . . . . 96
B.18 Motor torque in response to a vertical unitary load when the end-eector
is in the plane z = −400 mm. . . . . . . . . . . . . . . . . . . . . . . . . . 96
B.19 Histogram of F (left) and G (right) with radial unitary load on the end-
eector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
B.20 Volumetric contour plot of F (left) and G (right) with a radial unitary load
on the end-eector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
B.21 Forces F and G with a radial unitary load when the end-eector is in the
plane x = 42.6 mm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
118 | List of Figures
B.22 Forces F and G with a radial unitary load when the end-eector is in the
plane y = 0 mm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
B.23 Forces F and G with a radial unitary load when the end-eector is in the
plane z = −340 mm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
B.24 Forces F and G with a radial unitary load when the end-eector is in the
plane z = −400 mm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
B.25 Histogram of F (left) and G (right) with tangential unitary load on the
end-eector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
B.26 Volumetric contour plot of F (left) and G (right) with a tangential unitary
load on the end-eector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
B.27 Forces F and G with a tangential unitary load when the end-eector is in
the plane x = 42.6 mm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
B.28 Forces F and G with a tangential unitary load when the end-eector is in
the plane y = 0 mm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
B.29 Forces F and G with a tangential unitary load when the end-eector is in
the plane z = −340 mm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
B.30 Forces F and G with a tangential unitary load when the end-eector is in
the plane z = −400 mm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
B.31 Histogram of F (left) and G (right) with vertical unitary load on the end-
eector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
B.32 Volumetric contour plot of F (left) and G (right) with a vertical unitary
load on the end-eector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
B.33 Forces F and G with a vertical unitary load when the end-eector is in the
plane x = 42.6 mm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
B.34 Forces F and G with a vertical unitary load when the end-eector is in the
plane y = 0 mm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
B.35 Forces F and G with a vertical unitary load when the end-eector is in the
plane z = −340 mm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
B.36 Forces F and G with a vertical unitary load when the end-eector is in the
plane z = −400 mm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
119
List of Tables
2.1 Models names and payloads in kg (in round brackets) of the Fanuc robot
series M-1i A [6]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.1 Density of the material used to model the M-1i A/0.5A parts. . . . . . . . . 38
7.1 Extreme value of the motor torques in response to unitary load in the three
directions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
7.2 Extreme value of the forces F and G in response to unitary load in the
three directions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
121
Acknowledgements
I wish to pay my gratitude to Prof. Vladimír Bulej for accepting to supervise my thesis
and proposing an interesting and rich topic despite being burdened with work. I must
also thank the doctoral student Ing. Michal Barto², whose excellent CAD drawing of the
M-1i A/0.5A was fundamental.
A thank-you to the Erasmus coordinators of Polimi and Uniza: Ms. Simona Benvenuto,
Ms. Renata Janov£íková, and their co-workers. They supported every step of my mobility
and provided valuable help to my decision to write the master thesis during an exchange
period.
And nally, I am obliged to the Eramus+ student exchange project for allowing me, as
well as other millions of student, experience education in another European country.