Poject Book
Poject Book
This thesis will introduce and explain a way to model a 6-axis robot by using its
dynamical properties as well as the development of a joint space inverse dynamic
controller. The controller will be tested in various different ways. Firstly by adding noise
to the measured data. Then testing the robustness of the control model, while the
simulated model includes properties different from those used for the controller itself.
The different properties would for example be payloads and the inertia of the links.
Thereafter, evaluating the precision of a followed path that is given by an operational
space trajectory.
The outcome of these experiments show promising results. The results show that the
controller is able to manage a noise in both the joint angle and joint velocity. It also
shows that an error in the payload data will give a small error in the joint angles,
sequentially that gives an acceptable error for the end-effector in the operational space.
Furthermore, the controller manages to keep the maximum error in the joint angle low,
while it is following a trajectory in the operational space.
iii
Acknowledgments
I would like to start by showing my gratitude to the ABB corporate researchgroup at ABB
for welcoming me and giving me the opportunity to do the thesis. A special thanks to
my supervisor at ABB Jonas larsson for all the feedback and the knowledge he shared
with me. Furthermore I would like to thank my examiner and supervisor at Linköping
University Svante Gunnarsson and Hamed Haghshenas for their support and advises
through my thesis.
I would also like to thank Haitem Haider for crafting Figure 2.2. Lastly I would like to
show a special and monumental appreciation towards my brother, Zain Al-abideen
Shuman, for proofreading the thesis report.
Linköping, December 16, 2020
Ali Murtatha Shuman
v
Contents
List of Figures ix
Notation xvii
1 Introduction 1
1.1 Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3.2 Rising . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.3 RB-KAIROS . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3 DH Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4 Kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.5 Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
vii
viii
3.2 Inverse Dynamics Control . . . . . . . . . . . . . . . . . . . . . . .20
3.2.2 PD-Controller . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Contents
5 Simulation Results 29
6 Result 73
6.1 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
E Payload Tests 95
Bibliography 119
in Appendix B. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.1 Ideal case. From top to bottom: joint angle reference signal qr, joint angle
error qe and actual joint angle q. The legends (J1, LA, J2, UA,
J3, OS) are associated with the joint of each link, see Figure 4.1. . . 31
5.2 Ideal case. From top to bottom: joint velocity reference signal q˙r, joint
velocity error q˙e and actual joint velocity q˙. The legends (J1, LA, J2, UA,
J3, OS) are associated with the joint of each link, see
Figure 4.1. ................................ 32
5.3 Ideal case. Top graph: torques from the B(q)q¨. Second graph: torques from
n(q, q˙). The legends (J1, LA, J2, UA, J3, OS) are as-
sociated with the joint of each link, see Figure 4.1. ......... 33
List of Figures
1.1 ABBprototype of 6-axis robot arm. .................. 1
2.1 The red parts represent a revolute and prismatic joint in two differ-
ent positions: A and B. The arrow shows the rotational and trans-
lational axis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.6 Test results of validation of the equation of motion for the two DoF
Block). .................................. 20
4.1 The robot and the reference frames for each body link. . . . . . . . 24
ix
x
4.2 The joint frames according to the DH convention. . . . . . . . . . . 25
5.4 Ideal case. Top graph: total saturated torques us. Second graph: saturated
values of u. The legends (J1, LA, J2, UA, J3, OS) are
associated with the joint of each link, see Figure 4.1. ........ 34
5.5 Ideal case. Top graph: total saturated control signal ys. Second graph:
saturated values of y. The legends (J1, LA, J2, UA, J3, OS)
are associated with the joint of each link, see Figure 4.1. . . . . . . 35
5.8 Disturbance case: added noise on joint angle q and joint velocity q˙.
From top to bottom: joint velocity reference signal q˙r, joint velocity
error q˙e and actual joint velocity q˙. The legends (J1, LA, J2, UA, J3,
OS) are associated with the joint of each link, see Figure 4.1. . . . . 38
5.9 Disturbance case: added noise on joint angle q and joint velocity q˙. Top
graph: torques from the B(q)q¨. Second graph: torques from n(q, q˙).
The legends (J1, LA, J2, UA, J3, OS) are associated with the
joint of each link, see Figure 4.1. . . . . . . . . . . . . . . . . . . . . 39
5.10 Disturbance case: added noise on joint angle q and joint velocity q˙. Top
graph: total saturated torques us. Second graph: saturated values of u.
The legends (J1, LA, J2, UA, J3, OS) are associated with
the joint of each link, see Figure 4.1. ................. 40
5.11 Disturbance case: added noise on joint angle q and joint velocity q˙. Top
graph: total saturated control signal ys. Second graph: saturated values
of y. The legends (J1, LA, J2, UA, J3, OS) are associated
with the joint of each link, see Figure 4.1. . . . . . . . . . . . . . . . 41
5.12 Payload test: test weight is 10% higher. From top to bottom: joint angle
reference signal qr, joint angle error qe and actual joint angle q. The
legends (J1, LA, J2, UA, J3, OS) are associated with the joint
of each link, see Figure 4.1. . . . . . . . . . . . . . . . . . . . . . . . 43
5.13 Payload test: test weight is 10% higher. From top to bottom: joint velocity
reference signal q˙r, joint velocity error q˙e and actual joint velocity q˙. The
legends (J1, LA, J2, UA, J3, OS) are associated with
the joint of each link, see Figure 4.1. ................. 44
5.14 Payload test: test weight is 10% higher. Top graph: torques from the
xii LIST OF FIGURES
B(q)q¨. Second graph: torques from n(q, q˙). The legends (J1, LA, J2, UA,
J3, OS) are associated with the joint of each link, see
Figure 4.1. ................................ 45
5.15 Payload test: test weight is 10% higher. Top graph: total saturated
torques us. Second graph: saturated values of u. The legends (J1, LA, J2,
UA, J3, OS) are associated with the joint of each link, see
Figure 4.1. ................................ 46
5.16 Payload test: test weight is 10% higher. Top graph: total saturated control
signal ys. Second graph: saturated values of y. The legends (J1, LA, J2,
UA, J3, OS) are associated with the joint of each link,
see Figure 4.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.17 Payload test: test weight is 10% lower. From top to bottom: joint angle
reference signal qr, joint angle error qe and actual joint angle q. The
legends (J1, LA, J2, UA, J3, OS) are associated with the joint
of each link, see Figure 4.1. . . . . . . . . . . . . . . . . . . . . . . . 48
5.18 Payload test: test weight is 10% lower. From top to bottom: joint velocity
reference signal q˙r, joint velocity error q˙e and actual joint velocity q˙.
The legends (J1, LA, J2, UA, J3, OS) are associated with
the joint of each link, see Figure 4.1. ................. 49
5.19 Payload test: test weight is 10% lower. Top graph: torques from the
B(q)q¨. Second graph: torques from n(q, q˙). The legends (J1, LA, J2,
UA, J3, OS) are associated with the joint of each link, see Figure 4.1. 50
5.20 Payload test: test weight is 10% lower. Top graph: total saturated torques
us. Second graph: saturated values of u. The legends (J1, LA, J2, UA, J3,
OS) are associated with the joint of each link, see
Figure 4.1. ................................ 51
5.21 Payload test: test weight is 10% lower. Top graph: total saturated control
signal ys. Second graph: saturated values of y. The legends (J1, LA, J2,
UA, J3, OS) are associated with the joint of each link,
see Figure 4.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.22 Inertia test: inertia tensor 10% higher. From top to bottom: joint angle
reference signal qr, joint angle error qe and actual joint angle q. The
legends (J1, LA, J2, UA, J3, OS) are associated with the joint
of each link, see Figure 4.1. . . . . . . . . . . . . . . . . . . . . . . . 54
5.23 Inertia test: inertia tensor 10% higher. From top to bottom: joint velocity
reference signal q˙r, joint velocity error q˙e and actual joint velocity q˙.
The legends (J1, LA, J2, UA, J3, OS) are associated with
the joint of each link, see Figure 4.1. ................. 55
LIST OF FIGURES xiii
5.24 Inertia test: inertia tensor 10% higher. Top graph: torques from the
B(q)q¨. Second graph: torques from n(q, q˙). The legends (J1, LA, J2, UA,
J3, OS) are associated with the joint of each link, see
Figure 4.1. ................................ 56
5.25 Inertia test: inertia tensor 10% higher. Top graph: total saturated torques
us. Second graph: saturated values of u. The legends (J1, LA, J2, UA, J3,
OS) are associated with the joint of each link, see
Figure 4.1. ................................ 57
5.26 Inertia test: inertia tensor 10% higher. Top graph: total saturated control
signal ys. Second graph: saturated values of y. The legends (J1, LA, J2,
UA, J3, OS) are associated with the joint of each link,
see Figure 4.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.27 Inertia test: inertia tensor 10% lower. From top to bottom: joint
angle reference signal qr, joint angle error qe and actual joint angle q.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint
of each link, see Figure 4.1. . . . . . . . . . . . . . . . . . . . . . . . 59
5.28 Inertia test: inertia tensor 10% lower. From top to bottom: joint
velocity reference signal q˙r, joint velocity error q˙e and actual joint
velocity q˙. The legends (J1, LA, J2, UA, J3, OS) are associated with
the joint of each link, see Figure 4.1. ................. 60
5.29 Inertia test: inertia tensor 10% lower. Top graph: torques from the
B(q)q¨. Second graph: torques from n(q, q˙). The legends (J1, LA, J2,
UA, J3, OS) are associated with the joint of each link, see Figure 4.1. 61
5.30 Inertia test: inertia tensor 10% lower. Top graph: total saturated torques
us. Second graph: saturated values of u. The legends (J1, LA, J2, UA, J3,
OS) are associated with the joint of each link, see
Figure 4.1. ................................ 62
5.31 Inertia test: inertia tensor 10% lower. Top graph: total saturated
control signal ys. Second graph: saturated values of y. The legends
(J1, LA, J2, UA, J3, OS) are associated with the joint of each link,
see Figure 4.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.32 Trajectory test: the time reference signal in the operational space. . 64
5.33 Trajectory test: 3D representation of the given trajectory and the
robot, in four different frames. . . . . . . . . . . . . . . . . . . . . . 65
5.34 Operational space trajectory test. From top to bottom: joint angle
reference signal qr, joint angle error qe and actual joint angle q. The
legends (J1, LA, J2, UA, J3, OS) are associated with the joint of
each link, see Figure 4.1. . . . . . . . . . . . . . . . . . . . . . . . . 66
5.35 Operational space trajectory test. From top to bottom: joint velocity
xiv LIST OF FIGURES
reference signal q˙r, joint velocity error q˙e and actual joint velocity q˙.
The legends (J1, LA, J2, UA, J3, OS) are associated with
the joint of each link, see Figure 4.1. ................. 67
5.36 Operational space trajectory test. Top graph: torques from the
B(q)q¨. Second graph: torques from n(q, q˙). The legends (J1, LA, J2,
UA, J3, OS) are associated with the joint of each link, see Figure 4.1. 68
5.37 Operational space trajectory test. Top graph: total saturated torques us.
Second graph: saturated values of u. The legends (J1, LA, J2,
UA, J3, OS) are associated with the joint of each link, see Figure 4.1. 69
5.38 Operational space trajectory test. Top graph: total saturated control
signal ys. Second graph: saturated values of y. The legends (J1, LA, J2,
UA, J3, OS) are associated with the joint of each link, see
Figure 4.1. ................................ 70
Disturbance case: added noise on joint velocity q˙. From top to bottom:
joint velocity reference signal q˙r, joint velocity error q˙e and actual joint
velocity q˙. The legends (J1, LA, J2, UA, J3, OS) are
associated with the joint of each link, see Figure 4.1. . . . . . . . . 90
D.8 Disturbance case: added noise on joint velocity q˙. Top graph: torques from
the B(q)q¨. Second graph: torques from n(q, q˙). The legends (J1, LA, J2,
UA, J3, OS) are associated with the joint of each link,
see Figure 4.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
D.9 Disturbance case: added noise on joint velocity q˙. Top graph: total
saturated torques uS. Second graph: saturated values of u. The
legends (J1, LA, J2, UA, J3, OS) are associated with the joint of
each link, see Figure 4.1. . . . . . . . . . . . . . . . . . . . . . . . . 92
D.10Disturbance case: added noise on joint velocity q˙. Top graph: total
saturated control signal yS. Second graph: saturated values of y. The
legends (J1, LA, J2, UA, J3, OS) are associated with the joint of
each link, see Figure 4.1. . . . . . . . . . . . . . . . . . . . . . . . . 93
E.1 Payload test: test weight 5% higher. From top to bottom: joint angle
reference signal qr, joint angle error qe and actual joint angle q. The
legends (J1, LA, J2, UA, J3, OS) are associated with the joint
of each link, see Figure 4.1. . . . . . . . . . . . . . . . . . . . . . . . 96
E.2 Payload test: test weight 5% higher. From top to bottom: joint
velocity reference signal q˙r, joint velocity error q˙e and actual joint
velocity q˙. The legends (J1, LA, J2, UA, J3, OS) are associated with
the joint of each link, see Figure 4.1. ................. 97
E.3 Payload test: test weight 5% higher. Top graph: torques from the B(q)q¨.
Second graph: torques from n(q, q˙). The legends (J1, LA, J2,
UA, J3, OS) are associated with the joint of each link, see Figure 4.1. 98
E.4 Payload test: test weight 5% higher. Top graph: total saturated
torques uS. Second graph: saturated values of u. The legends (J1, LA,
J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1. ................................ 99
E.5 Payload test: test weight 5% higher. Top graph: total saturated control signal yS.
Second graph: saturated values of y. The legends
(J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
E.6 Payload test: test weight 5% lower. From top to bottom: joint angle reference
signal qr, joint angle error qe and actual joint angle q. The legends (J1, LA, J2,
UA, J3, OS) are associated with the joint of each link, see Figure 4.1. . . . . . . . . .
. . . . . . . . . . . . . . . 101
xvi LIST OF FIGURES
E.7 Payload test: test weight 5% lower. From top to bottom: joint velocity reference
signal q˙r, joint velocity error q˙e and actual joint velocity q˙. The legends (J1, LA, J2,
UA, J3, OS) are associated with the joint of each link, see Figure
4.1. . . . . . . . . . . . . . . . . . 102 E.8 Payload test: test weight 5% lower. Top graph:
torques from the B(q)q¨. Second graph: torques from n(q, q˙). The legends (J1, LA,
J2,
UA, J3, OS) are associated with the joint of each link, see Figure 4.1. 103
E.9 Payload test: test weight 5% lower. Top graph: total saturated torques uS.
Second graph: saturated values of u. The legends (J1, LA, J2, UA, J3, OS)
are associated with the joint of each link, see
Figure 4.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
E.10 Payload test: test weight 5% lower. Top graph: total saturated control
signal yS. Second graph: saturated values of y. The legends (J1, LA, J2,
UA, J3, OS) are associated with the joint of each link,
see Figure 4.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
F.1 Inertia test: inertia tensor 5% higher. From top to bottom: joint angle reference
signal qr, joint angle error qe and actual joint angle q. The legends (J1, LA, J2,
UA, J3, OS) are associated with the joint of each link, see Figure 4.1. . . . . . . . . .
. . . . . . . . . . . . . . 108
F.2 Inertia test: inertia tensor 5% higher. From top to bottom: joint velocity
reference signal q˙r, joint velocity error q˙e and actual joint velocity q˙. The legends
(J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see Figure
4.1. . . . . . . . . . . . . . . . . . 109 F.3 Inertia test: inertia tensor 5% higher. Top graph:
torques from the B(q)q¨. Second graph: torques from n(q, q˙). The legends (J1, LA,
J2,
UA, J3, OS) are associated with the joint of each link, see Figure 4.1. 110
F.4 Inertia test: inertia tensor 5% higher. Top graph: total saturated torques uS.
Second graph: saturated values of u. The legends (J1, LA, J2, UA, J3, OS) are
associated with the joint of each link, see
Figure 4.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
F.5 Inertia test: inertia tensor 5% higher. Top graph: total saturated control signal yS.
Second graph: saturated values of y. The legends
(J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
F.6 Inertia test: inertia tensor 5% lower. From top to bottom: joint angle reference
signal qr, joint angle error qe and actual joint angle q. The legends (J1, LA, J2,
UA, J3, OS) are associated with the joint of each link, see Figure 4.1. . . . . . . . . .
. . . . . . . . . . . . . . 113
F.7 Inertia test: inertia tensor 5% lower. From top to bottom: joint velocity reference
signal q˙r, joint velocity error q˙e and actual joint velocity q˙. The legends (J1, LA, J2,
UA, J3, OS) are associated with the joint of each link, see Figure
4.1. . . . . . . . . . . . . . . . . . 114 F.8 Inertia test: inertia tensor 5% lower. Top graph:
LIST OF FIGURES xvii
torques from the B(q)q¨. Second graph: torques from n(q, q˙). The legends (J1, LA,
J2,
UA, J3, OS) are associated with the joint of each link, see Figure 4.1. 115
F.9 Inertia test: inertia tensor 5% lower. Top graph: total saturated torques uS.
Second graph: saturated values of u. The legends (J1, LA, J2, UA, J3, OS)
are associated with the joint of each link, see
Figure 4.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
F.10 Inertia test: inertia tensor 5% lower. Top graph: total saturated control signal yS.
Second graph: saturated values of y. The legends
(J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
List of Tables
2.1 The parameters for two non-planer links-arm. . . . . . . . . . . . . 15
4.1 The DH parameters used for the direct implementation and RTB approaches. . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 5.1 Noise amplitude, depending on where the
noise is added. . . . . . 42
xvi
Notation
Quantities
Notation Meaning
n Total number of Joints.
qi Joint (i) angle [rad].
q˙i Joint (i) angular velocity [rad/s].
q¨i Joint (i) angular acceleration [rad/s2].
q Joints angle vector (n × 1) [rad].
q˙ Joints angular velocity vector (n × 1) [rad/s].
q¨ Joints angular acceleration vector (n × 1) [rad/s2].
qd Desired joints angle vector (n × 1) [rad].
q˙d Desired joints angular velocity vector (n × 1) [rad/s].
q¨d Desired joints angular acceleration vector (n × 1)
[rad/s2].
q˜d Error in joints angle vector (n × 1) [rad].
q˜˙d Error in joints angular velocity vector (n × 1) [rad/s].
q˜¨d Error in joints angular acceleration vector (n × 1)
[rad/s2].
v Linear velocity.
ω Angular velocity.
τ Torque.
ξ Generalized force associated.
xviii Notation
Quantities
Notation Meaning
L Lagrangian.
T Kinetic energy.
U Potential energy.
F Force.
Hew Homogeneous transformation matrix (4 × 4) from
endeffector frame (e) to the world frame (w), if nothing is
mentioned in the exponent it is referred by default to the
world frame.
H Homogeneous transformation matrix (4 × 4) for joint (i) to
ii−1
frame (i − 1).
HR Homogeneous transformation matrix with only rotation
quantities (4 × 4).
HT Homogeneous transformation matrix with only
Transnational quantities (4 × 4).
R Rotational matrix (3 × 3).
T Transnational vector (3 × 1).
Homogeneous transformation matrix (4 × 4), the error
He
between the homogeneous transformation matrix of the
desired angle qd and the transformation matrix of actual
joint angle q.
Rotational matrix (4 × 4), the error between the rotational
Re
matrix of the desired angle qd and the rotational matrix of
actual joint angle q.
Transnational vector (3 × 1), the error between the
Te
transnational vector of the desired angle qd and the
transnational vector of actual angle q.
J(q) Geometric Jacobian matrix.
JP (q) Linear part of the Geometric Jacobian matrix (3 × n).
JO(q) Angular part of the Geometric Jacobian matrix (3× n).
B(q) Mass matrix (n × n).
C(q, q˙) Coriolis/Centrifugal matrix (n × n).
G(q) Gravity vector (n × 1).
n(q, q˙) Coriolis/Centrifugal and Gravity vector (n × 1).
Notation xix
Abbreviations
Abbreviation Meaning
DoF Degree of Freedom
3D Three-dimensional
CoG Center of gravity
RTB Robotics toolbox by Preter Corke
RSTB Robotics system toolbox by MATLAB
MFB MATLABfunction Block
B Base
J1 Joint 1
LA Lower Arm
J2 Joint 2
UA Upper Arm
J3 Joint 3
OS Output shift
1
Introduction
The word “robot” itself, was popularized for the first time a hundred years ago in the
1920s, in Karel Čapek’s play R.U.R. Rossum’s Universal Robots. With that said, it took
approximately 30 years until the invention of a "real" functional robot to come into an
existence, it went by the name "Unimate #001". It was invented by Joseph Engelberger
and George Devol. The task of this robot was to assist a hot diecasting machine [15].
Now, after a century from popularizing the word ”robot" and development in robotics,
this master thesis project, is one of the continued projects that aim to expand the
development and understanding of robotics. The goal of this thesis is to derive a joint
space inverse dynamic controller for a six degree of freedom (DoF) robot arm and
simulate the performance using MATLAB. The prototype of the robot can be seen in
Figure 1.1. This project is the building block for future improvements, where there will
be a possibility to integrate the dynamics as well as the controller for the robot using a
mobile platform. This makes it possible for the manipulator and mobile platform to
enact as a singular unit.
1
2 1 Introduction
This chapter contains the purpose and the problem statement of this work as well as
the related work. An introduction about how to derive the dynamic model that
describes the dynamics of this robot or any manipulator can be found in chapter 2.
Thereafter, a joint space inverse dynamic method will be introduced in chapter 3, which
will also be implemented in Simulink. Chapter 4 includes the methods that are available
and used to apply the dynamics and control algorithms of the robot. Lastly, the
simulation experiment can be found in chapter 5, followed by the conclusion and
results of this work in chapter 6.
1.1 Purpose
This master thesis was proposed at ABBin purpose of developing a dynamical model
and the controller of a 6DoF robot arm. The purpose of this work is to study and
develop a full body control of a manipulator robot, by using the dynamical properties of
the manipulator. This is done in hopes of developing manipulators that are collaborative
with humans at workplaces such as hospitals where both humans and robots coexist.
• Creating a kinematic and dynamic model that describes a 6DoF robot arm.
• Making a joint space inverse dynamics controller for a 6DoF robot arm.
1.3.2 Rising
Rising is a relatively small robot with up to 7 DoF robotic arm. This platform is designed
for interventions, reconnaissance, and EOD (Explosive ordnance disposal) missions. The
mobile platform uses 2 tracks and 2 flippers to manoeuvre. This makes it possible for
the robot to climb with a maximum of 80% climbing angle [13].
1.3.3 RB-KAIROS
RB-KAIROS is also a two part mobile manipulator, where the mobile platform has a
Swedish wheel [3], and the manipulator has 6 DoF. This mobile manipulator has the
most similarities to the robor, in both size and functionality [16]. The main distinction is
the Swedish wheel.
1.4 Resources
To achieve the goal of this thesis work, the following resources were provided by
Linköping Universityand ABB:
• PC (ABB)
• MATLABlicense (LiU)
• Supervisor (ABB/LiU)
2
Theory: Dynamic Modeling of
Manipulator Structures
This chapter will include the theory that was studied and used for the project. It will in
other words consist of a brief introduction of how to describe a robot as well as
homogeneous transformation to transform the representation of the reference frames
from one point to another. Lastly how to derive the DH parameters (Denavit–
Hartenberg), a convention to help finding the expressions for the transformation
matrices. Thereafter, a proper introduction will be presented. This introduction will
consist of the kinematics and dynamics concepts, as well as the differential kinematics
and the inverse-dynamics [6]. There will lastly be an example of how to derive the
dynamical equation of 2 DoF non-planar arm.
Describing a robot in 3-dimensions will require the configuration for that said robot. The
configuration includes the specifics of all the position points. In robotics there are two
types of bodies, a flexible body, which can be deformed like RBO Hand 2 [2], and a rigid
body, which will be the focus of this project, since the robot can be perceived as entirely
rigid. The rigid bodies, also called links, are connected to each other by a revolute or
prismatic joint, see Figure 2.1.
5
6 2 Theory: Dynamic Modeling of Manipulator Structures
Figure 2.1: The red parts represent a revolute and prismatic joint in two different
positions: A and B. The arrow shows the rotational and translational axis.
Robot manipulators, in general, are built by two or several links. Each link has its own
mass center, moment of inertia, etc. It is easier to define a link in a fixed coordinate
system for each link part, in the Figure 2.2 a fixed coordinate system (world frame)
shown with the black axis. This coordinate system does not move its position nor the
orientation with the change of robot joint variable. However, the links’ fixed coordinate
system (reference frames) which is shown with (red, green and blue) representing (x, y
and z)-axis can change the position and orientation. The change occurs alongside the
change of the joint variables, a definition of the joint variables will be introduced in
section 2.3. Thereafter, to describe the position of the mass center of any link part, a
transformation can be used between the frames.
Figure 2.2: Robot arm, chain of links, with links reference frames.
2.2 Transformation
7
There are many ways to describe the position of a point in the 3D space, such as using
the Cartesian, cylindrical and/or spherical coordinate systems, see Figure 2.3. The
Cartesian coordinate systems will be used all throughout this thesis.
2.2 Transformation
Using matrices to apply a translation and/or rotation to a point is beneficial due to the
associative property of the matrix multiplication. The homogeneous transformation
matrix, is a (4x4) matrix, which gives the information that changes the representation
vector pl of a certain point from one frame to another, which gives vector pw. A general
homogeneous transformation matrix looks as follows:
Steiner Theorem
9
The inertia tensor of a link is often defined w.r.t. the mass center. After using the Steiner
theorem (2.4), also called the parallel axis theorem, the inertia tensor can be redefined
w.r.t. the reference frame [14].
The Ic is the inertia tensor w.r.t. the center of gravity, m is the mass of the link, f f and
the S(rc ) is the skew-symmetric matrix of the distance rc from the reference frame to the
center of gravity [14]. The skew-symmetric matrix is given by equation (2.5),
0 −rz ry
S(r) = rz 0 −rx (2.5)
−ry rx 0
where r = [rx, ry, rz]T . With that said, to translate the inertia tensor of the link from one
reference frame i to another reference frame i −1 as shown in Figure 2.4
without knowing Ic, the inertia tensor in the center of mass, the following calculation is
used. By recasting the equation in (2.4) with the knowledge of the inertia tensor in the
reference (i = 1) to be I1, and with that deriving the inertia tensor I0 in the reference (i −
1 = 0).
2.3 DH Parameters
The inertia tensor also depends on the orientation of the reference frame, and if the
origin of the reference frame rotates with rotation matrix R. The inertia tensor Io0 in the
new frame is related to Io by the following relationship:
Io = RIo0 RT (2.8)
2.3 DH Parameters
DH parameters are four parameters that describe the convention for attaching a
reference frame to the links of a robot manipulator [14], or in general, a kinematic
chain, see Figure 2.2. This convention is based on four transformations, first rotation
around zˆ followed by a translation in zˆ and then a rotation around xˆ and lastly a
translation in xˆ. The resulting Homogeneous transformation of these operations are
given by equation (2.9).
2. Set zi-axis along the revolution or translation axis for the Joint i + 1.
3. Select the origin Oi at the intersection point of axes zi and the common normal
with axis zi−1.
4. Select the xi-axes in the same direction of common normal from zi−1 and zi.
2.4 Kinematics
The forward kinematics goal is to find the relationship between a robot/ manipulator’s
joint angles (q), and its end-effector’s position [14]. The forward kinematics are used to
compute the end-effector’s position relatively to the base of the manipulator using the
kinematics equations, where the base is referred to the link of the manipulator that is
fixed in the room if the manipulator is mounted on a table or working station, otherwise
where the mobile platform center referenceframe is, that is if the manipulator is
mounted on a mobile platform . In other words, it provides the end-effector’s position
(pe) in the room, when all the joint angles (q) are known.
These kinematic equations can easily be obtained by using the DH parameters to
compute the transformation matrices (2.9) for each joint frame in the kinematic chain.
Thereafter using (2.3) for computing the end-effector to base transformation He0, which
gives the position of the end-effector, w.r.t the base frame, in the first three elements of
the last column, as noted in (2.1).
xe 0
" #
pe = yzee = He0p0 = Re0(q)T1e 00 (2.10)
1 1
Differential Kinematics
The differential kinematics goal is to get the relationship between the joint velocities
and the end-effector angular as well as the linear velocities [6], [14], which is expressed
in (2.11).
p˙e =JPe(q)q˙
(2.11)
ωe =JOe(q)q˙
The Jp and Jo are (3 × n) matrices, where n is the number of joints, Jp is the contribution
of joint velocities q˙ to end-effector linear velocities p˙e and the Jo for the angular
velocities ωe. This can be rewritten as
" # " #
p˙e = JPe(q) q˙ = Je(q)q˙ (2.12)
ve = ωe JOe(q)
where J(q) expresses the system differential kinematics equation, with (6 × n) matrix
that goes by the name "geometric Jacobian". The Jacobian matrix elements are
computed as follows:
z z
"JJOPii # = zii0−−11 × ( pi−e1− pi−1)for a revolute jointfor a
prismatic joint (2.13)
where pe is given in (2.10) and zi−1 is derived from the rotation matrix R0i−1, the third
column of the rotation matrix.
h i
pi−1 = H10 ... Hii−−12p0 where p0 is 0 0 0 1T (2.15)
2.5 Dynamics
Generally, the mechanism of a robot is modelled as a rigid-body system. Therefore,
robot dynamics can be used as an application of the rigid-body dynamics. This is
followed by two main problems, the forward- and inverse-dynamics. The forward-
dynamics are used to compute the accelerations q¨ of the joint from the given joint
angle q, joint velocity q˙ and the applied torque on the actuators τ. From the other side,
the inverse-dynamics are given the joint angle q, joint velocity q˙ and joint accelerations
q¨ and works out the needed torque on the actuators τ [4].
The benefits of deriving a dynamical model of a manipulator are as follows: Having the
ability of simulating a motion, analysis of the manipulator structure and the designing of
the control algorithms.
Simulating the manipulator motion, allows testing for the control strategies as well as
the motion planning, without the use of the physical system. This is beneficial in case
the real system is not available, or if the test subjects, be it either the system or the
user/developer, are exposed to some sort of risks.
where T is the total kinetic energy and U is the total potential energy of the system. The
kinetic energy can be computed by:
n
X
T= 12p˙iT mip˙i + 12ωiT RiI`ii RiT ωi (2.17)
i
i=1
where p˙ and ω are the linear and angular velocities as mentioned in 2.4. I`ii is the inertia
tensor relative to the center of mass of link i when expressed in the base frame, and the
Ri is the rotation matrix from link i frame to the base frame. This is mentioned in 2.2
equation (2.8), and can be rewritten as:
n n
14 2 Theory: Dynamic Modeling of Manipulator Structures
XX 1 T B(q)q˙ (2.18)
T (q, q˙) =bij(q)q˙iq˙j = q˙ 2
i=1 j=1
where
n
B(q) = X(mli Jp(li)T Jp(li) + Jo(li)T i RTi Jo(li) + mmi Jp(mi)T Jp(mi) + Jo(mi)T Rmi Imi i RmTi Jo(mi)) RiIli
i=1
n
X
(i)T (i) (i)T iRTi Jo(i)) = (miJp Jp + Jo RiIi
i=1
(2.19)
where B(q) is the mass-matrix with (n × n) elements, which is symmetric and positive
definite and in general configuration-dependent [14]. The Jp and Jo are the linear and
angular parts of the geometric Jacobian matrix section 2.4, and the indexing (l) refers to
the link mass and inertia and (m) refers to the motor mass and inertia. In this thesis, a
combined version will be used where a motor and a link is seen as a one-body-part. This
is evident according to the data given by ABB. The potential energy can be computed
by:
n
where g0 is the gravity acceleration homogeneous vector in the base frame, e.g.,
h iT
g0 = 0 0 g 0 if z is the vertical axis, and pmi is the center of mass position of link (i) in the
world frame.
Thereafter, the Lagrange equation is expressed by (2.21), or in vector form by (2.22).
d ∂L ∂L
− = ξi i = 1,2,..., n (2.21)
dt ∂q˙i ∂qi
d ∂LT
(2.22)
dt ∂q˙ ∂q
2.5 Dynamics 15
where ξi is the generalized force associated with the generalized coordinate qi. That is
given by the contributions of the actuation torque τi at the joint i and of the viscous
friction torques. This can be computed by equation (2.23).
Nf N
The C(q, q˙) is known as the coriolis-matrix with (n× n) elements. This can also be
computed with equations (2.26) and (2.27), using the mass-matrix (2.19). cij are the
elements of the coriolis-matrix, and bxx are the mass-matrix elements.
n
X
(2.26)
cij = cijkq˙k
k=1
∂b
cijk = + ik − jk (2.27)
2 ∂qk ∂qj ∂qi
where G(q) is known as the gravity term vector, under the assumption that the potential
energy comes only from the gravity. But in case of the existence of springs at the joints,
the springs terms will be added to G(q), due to the contribution that the springs has to
the potential energy. This can be obtained by equation (2.28).
∂U(q)
G(q) = (2.28)
∂q
The final equation of motion, which describe the relationship between the desired
torque and acceleration is given by the equation (2.29). This is obtained by combining
both equation (2.23) and (2.24).
16 2 Theory: Dynamic Modeling of Manipulator Structures
• Fvq˙ is the viscous friction torques. Fv denotes the (n× n) diagonal matrix of viscous
friction coefficients.
• he denotes the vector of force and moment exerted by the end-effector on the
environment.
The friction torques occur from the motor shaft spinning in its bearings and the brushes
sliding on the commutator, that may also depend on external loads. At no load the
friction torques are given by:
to obtain Fv and Fs an estimation of each of Fv and Fs can be made by running the motor
at two different voltages with no load.
This thesis consider all forces and torques that were mentioned above to be equal to
zero, except for the actuation torques which is the desired input to the manipulator.
This assumption is based on the lack of information for the quantities of these forces.
They were therefore neglected for simplification proposes. That led to the following
equation of motion:
Equation (2.31) is also called the inverse-dynamic equation, and the forwarddynamical
equation is obtained by solving the joint acceleration (q¨) from the (2.31), which gives:
− −
B(q)−1τ C(q, q˙)q˙ G(q) = q¨ (2.32)
that gives a linear function with respect to the actuators torques τ. The manipulation of
this function is possible, due to the mass matrix B(q) which is a full-rank matrix, that can
be further inverted for any manipulator configuration. The benefit of the Lagrange-
Formulation approach is to derive the dynamical equation in a systematic way,
independently of the reference coordinate frame.
Another way to derive the dynamical model of the system is to use the NewtonEuler
Formulation, which relies on F = ma applied to each individual link of the robot. In other
2.5 Dynamics 17
words, it describes the motion of the link based on a balance of all forces and moments
acting on it. This leads to a set of equations whose structure is a recursive type of
solution.
mA (Ly2+Lz2)
0
mA (Lx 2 +Lz 2 ) 12
0
IA = 0 12 02+Ly2)
0 0
mB (h2 +3 r 2 )
12 0 0
IB =
2 +3 2
m B (h r )
0 12 0
r 2 mB
0 0 2
18 2 Theory: Dynamic Modeling of Manipulator Structures
m A ( Lx
12 (2.33)
The positions of the mass-center in the world frame are given by:
h iT
pB = 0 0 h/2
Ly cos(θ1) cos(θ2)
h+ (2.34)
pA = − Ly y
sin(2 θ2)iT L
cos(θ22) sin(θ1) h 2
Thereafter, the translation as well as the rotational velocity’s can be obtained by:
0 θ˙1 sin(θ2)
θ˙1 θ˙1 cos(θ2)
With the expressions of the positions and the velocities of each link, the kinetic (T ) as
well as the potential (U) energies can be computed as shown in 2.5.1, equation (2.18)
and (2.20).
2.5 Dynamics 19
When the energy expressions are acquired, the Lagrangian as well as its generalized
forces can be obtained by applying the derivations according to the Lagrangian equation
(2.21) and (2.23).
2 2 2
mA Lx 2 θ̇12 mA Ly θ̇1 sin(θ2 ) mA Ly 2 θ̇12 mA Ly 2 θ̇22 g mA Ly sin(θ2 )
L= − + + −
24 6 6 2
2 2 2 2 2 2 2
mA Lz θ̇1 sin(θ2 ) mA Lz θ̇2 mB θ̇1 r g h mB
+ + + − g h mA −
24 24 4 2 6
(2.36)
In this example the generalized forces will be considered equal to the actuation torque ξ
= τ. This is done by considering all the other forces to zero. This gives the following
equation of motion:
24
(2.37)
n(q, q˙) = mA (4 sin(2−θ2) Ly2 θ˙12+12g12cos(θ2) Ly−sin(2 θ2) Lz2 θ˙12)
24
(2.38)
Note that the expressions of the mass-matrix B(q) as well as the coriolis/centrifugal and
gravity vector n(q, q˙) can be much longer, with consideration to the simplification that
was used in this example. The simplifications that are being referred to are:
• The simplification of the inertia tensors, it has been simplified to be diagonal with
the moments of inertia (Ixz, Iyy and Izz), without the off-diagonal elements (Ixy, Ixz
and Iyz), also known as the products of inertia", which is often included.
The first test gave that the second link behaved as a pendulum, which gave an
oscillation between zero and −π on the angle of the arm link, see the top graph in Figure
2.6. This behavior is correct due to the gravity force and the lack of any other
forces/torques that stops the oscillation. The second test showed that the required
torques that needed to keep the system in the steady state on the start position are τ1 =
0 and τ2 = ALy
gm2 . The result of this test can be seen in the middle graph on Figure
2.6, note that y-axis is multiplied by 10−13, which means that this increase on θ2 is due to
numerical error in MATLAB. This test also proved that the equation of motion is correct,
since the τ2 is equal to the gravitation force multiplied by the distance between the mass
center and the rotational axes. Finally the last test when applying torques bigger then 0
on τ1 and gmALy
2 on τ2 the system started to rotate nonstop. The result of this test is shown on the
bottom graph in Figure 2.6, both joint angles are increasing rapidly. With that, the
elements of the equation of motion for the two DoF non-planar robot arm are given by
(2.38).
2.5 Dynamics 21
Figure 2.6: Test results of validation of the equation of motion for the two DoF non-
planar robot arm.
22
3
Theory: Joint Space Inverse Dynamic
Control
This chapter will cover how to create a model of the manipulator and the control
method studied and used in this thesis [14].
The control input-signal (u) which is the torque to the actuators, is used to move the
robot joints. By knowing the input signal representation, a simulated model can be
created by deriving the dynamical model of the robot from the forwarddynamical
equation (3.1). That will work out the joint accelerations (q¨).
− −
B(q)−1τ C(q, q˙)q˙ G(q) = q¨
(3.1)
−
−1
B(q) τ n(q, q˙) = q¨
By knowing the joint accelerations (q¨) of each link of the manipulator, a computation of
the joint velocities and joint angles (q˙, q) can easily be done by integrating the joint
accelerations (q¨).
19
Feeding the computed joint velocity and joint angle back to the equation, that gives the
following model structure, see Figure 3.1, which is a simulated model of the
manipulator implemented in MATLAB.
Figure 3.1: Manipulator simulated model structure, A) using RSTB (Robotics system
toolbox by MATLAB), B) using MFB (MATLABfunction
Block).
24
3.2 Inverse Dynamics Control
The selection of this controller approach was made based on the future use of the
robot, as well as the requirement from ABB which was to use a joint space controller,
and not an operational space controller. In other words, the reference framework is to
use a control of nonlinear multi-variable systems. The structure of this control method
is shown in the figure below Figure 3.2.
3.2 Inverse Dynamics Control 21
The control structure can be divided into two parts, first the nonlinear compensation
and decoupling, and the second part is the PD-controller.
3.2.2 PD-Controller
The control problem, after the nonlinear compensation and decoupling, is reduced to
that of finding a stabilizing control law y, which can be formulated as a PD-controller
using the following expressions:
y = r − KP q − KDq˙ (3.3)
with the knowledge of y = q¨, a reformulation of the equation can be done as a second-
order equation:
q¨ + KDq˙ + KP q = r (3.4)
with the assumption of positive definite matrices KP and KD, is asymptotically stable.
That means when the solutions of the controller, starts to get close enough to the
equilibrium it does not only remain close enough, but also eventually converge to the
equilibrium. That gives the following choice of KP and KD as diagonal matrices (3.5).
{ }
KD =diag 2ξ1ωn1,...,2ξ1ωn1
The matrices Kp and KD are a diagonal, because it is a decoupled system. In other words
the reference signal ri influences only the joint angle qi with a secondorder input/output
relationship. This relationship is characterized by a natural frequency ωni and a damping
ratio ζi. With that said, to track a path given by a desired trajectory qd and the output q is
ensured by choosing:
and by substituting (3.6) into (3.4) and using q˜ = qd − q gives the homogeneous second-
order differential equation (3.7):
Lastly the implementation of this kind of control scheme requires computation of the
inertia matrix B(q) as well as the gravitational, damping, Coriolis and centrifugal terms
vector n(q, q˙) to be computed on-line. This is because the control is based on nonlinear
feedback of the current angle, therefor it is not possible to be pre-computed.
4
Application to the Robot
This chapter includes the methods that were tested to implement the dynamical model,
as well as the control algorithms to control and simulate the robot according to the
given parameters from ABB. All the following implementation methods for the
controller as well as the simulated model, use MATLABas a programming platform [9].
The first method uses MATLABsymbolic toolbox to implement all the kinematic and
dynamical functions by direct implementation [8]. The second method makes use of
Robotics toolbox (RTB) [12], which is an opensource toolbox for MATLABcreated by
Peter Corke, for the study and simulation of robotics, such as arm-type robot
manipulators and mobile robots. The last method uses the Robotics system toolbox
(RSTB) [7], which is created by MathWorks as an additional toolbox for MATLABthat
requires a license. The Robotics toolbox and Robotics system toolbox will be referred to
as RTB and RSTB in this chapter.
23
The first two methods were studied but not implemented. Therefore, those two
methods will only be introduced briefly with the essential weaknesses and benefits.
Figure 4.1: The robot and the reference frames for each body link.
The parameters that were available for the robot are the masses of each links, rigid-
body mass center position, links lengths as well as the inertia of the links. All the
characteristic parameters for the robot are given in the link reference frame, as seen in
Figure 4.1 above.
4.1 Direct Implementation 25
By using the parameters shown in Table 4.1, the expression of the homogeneous
transformation matrix for each link can be obtained by using equation (2.9).
Table 4.1: The DH parameters used for the direct implementation and RTB
approaches.
Link (i) θi[rad] di[m] ai[m] αi[rad]
1 θ1 0.185 0
2 θ2 0 0.380 0
3 θ3 0 0 π
4 θ4 0.420 0
−
5 θ5 0 0
6 θ6 0 0.318 0
Thereafter computing the Jacobian matrix using (2.13), which gives all the variables
needed to compute the mass-matrix B(q) and the Coriolis matrix C(q, q˙) using (2.19),
(2.26) and (2.27). Lastly computing G(q) using the equation for the potential energy
(2.20).
The problem with this method was the number of links, number of DoF, which is six,
which makes the expression of the mass matrix and Coriolis-matrix very long. That
resulted in difficulty for the computer to compile the expression into a MFB (Matlab
Function Block), requiring a lot of computing power and time. The decision to select the
MFB was made due to the ability of the MFB to be code generated to C-language for the
installation on the hardware of robot. Therefore,
4 Application to the Robot
this approach was discarded, and the focus was instead put on selecting a toolbox
without this weakness. That led to chose RTB, since it is an open source toolbox.
4.2 Robotics Toolbox RTB
In the RTB the kinematic and dynamic functions are predefined, but it requires the
definitions of links according to the DH parameters convention, with all other data of
the links such as mass, inertia and center of gravity etc. See Appendix A for the code of
the link declaration in MATLAB. Thereafter, a Simulink"Interpreted MATLAB Function-
Block" was created for the computation of the Mass-matrix B(q), coriolis-matrix C(q, q˙),
gravity-vector G(q) as well as one block for the simulated model of the robot.
The problem with this approach is the predefined functions and "Interpreted MATLAB
Function-Block" are not compatible to MATLABcode-generation function. That means
it has to be rewritten into a MATLABFunction block or in Clanguage to be able to install
it into the hardware of the robot. Another problem in RTB is that it gives
comparatively slow simulations. This problem worsens the more links the system has.
But the main problem is that it did not have any validation of the given data. In other
words, it is not known if the input data is appropriate or not. This imperfection was
mainly noticed in the input data of the inertia. But it has very educational and user
friendly 3D representation of the link configuration. That was used to confirm the
identification of DH parameters, but due to its imperfection and weaknesses and the
slow response, this approach was also discarded. That led to testing the Robotic
System Toolbox (RSTB). RSTB is MATLAB’s own toolbox, which required a license to use,
that is why it was the last choice.
The RSTB also has the kinematic and dynamic functions predefined, however it does
not necessarily require the definition of the links according to the DH convention.
Additionally to that it has also the Simulinkblock with those function predefined. The
benefits of the RSTB is that it checks the given data to the link, which makes it more
trustworthy than the RTB. The RSTB is also well optimized, that results in faster
simulations than RTB. The model below, Figure 4.3 shows how the controller was built
in the Simulinkusing the RSTB.
30
4.3 Robotic System Toolbox RSTB 27
Figure 4.3: Simulinkmodel of the robot controller using RSTB, further described in
Appendix B.
In addition to the control approach, which was mentioned in section 3.2, Figure 3.2, two
saturation blocks were added. This was done considering the hardware of the robot and
the required behaviors. One saturation block was added to give a limitation to the
output signal, torque signal, of the controller and another one was added to limit the
control signal to the "Nonlinear Compensation and Decoupling". Furthermore the
definition of the links was made according to the given data from ABB, which is not
following the DH convention as shown in Figure 4.1. The most noticeable difference to
the DH convention, is that not all the reference frames pointing in the same direction of
the links rotation axis etc. see Appendix C for the code of the link declaration in
MATLAB. This approach seen to be the most trustworthy one of all the other three
approaches. With that said, a validation of the model as well as the controller are
required to justify the results of this thesis.
5 Simulation Results
To evaluate the result of the controller method as well as the implementation approach
that was chosen using RSTB, there were four tests considered. First, to test the
capability of the output signal to converge to the reference signal. This test will be
repeated while facing a noise in the measured output signal, which is fed back to the
controller. Thereafter, testing the robustness of the system, if the given data is not fully
accurate. That is done by modifying the model parameters of the simulated model.
Finally, testing the accuracy of a path following in the operational space.
• Ideal case,
• Measurement disturbance,
• Robustness,
The first case will test the capability of the controller to follow the reference signal. This
case will also work as a baseline case for the other cases. Therefore, a comparison will
be made between the first case and each one of the other cases.
29
That will give a good estimate of how the system will be affected by those different case
scenarios.
5.1 Experiment Baseline Case 33
The ideal case was chosen to be a sequence of steps in the joint angles. The steps
sequence starts at second one with the first joint (J1) and each second a new joint takes
a step until the last joint (OS) makes the last step in the sixth second. For more
clarification of which link is connected to which joint see Figure 4.1. The amplitudes of
the steps are different in some of the joints. These differences in the steps amplitude
are due to the maximum allowed acceleration that each joint can have. The chosen
amplitude of the joints steps are qi,amp = (15,30,30,90,90,90) degree, which is qi,amp =
(0.2618,0.5236,0.5236,1.5708,1.5708,1.5708)rad. To give a better reference velocity
and acceleration to the controller a filter was added to the angle reference signal and
thereafter the filtered step first and second derivative was used as the reference
velocity and acceleration. This filter H(s) was chosen to have a rise time less than one
second and without any overshoot.
H(s) =(5.1)
0.
The outcome of the ideal case is shown in the graphs below:
34 5 Simulation Results
Figure 5.1: Ideal case. From top to bottom: joint angle reference signal q r, joint angle
error qe and actual joint angle q.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see Figure
4.1.
5.1 Experiment Baseline Case 35
Figure 5.2: Ideal case. From top to bottom: joint velocity reference signal q˙r, joint
velocity error q˙e and actual joint velocity q˙.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see Figure
4.1.
36 5 Simulation Results
Figure 5.3: Ideal case. Top graph: torques from the B(q)q¨. Second graph: torques from
n(q, q˙).
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see Figure
4.1.
5.1 Experiment Baseline Case 37
Figure 5.4: Ideal case. Top graph: total saturated torques u s. Second graph: saturated
values of u.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see Figure
4.1.
38 5 Simulation Results
Figure 5.5: Ideal case. Top graph: total saturated control signal y s. Second graph:
saturated values of y.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
The ideal case scenario shows that this control method is capable of following the
reference angles, see Figure 5.1. The occurrence of error in the angle is related to the
saturation of both the acceleration and torque, and also the response time for the
controller to react to the error. These occurrences can be seen when comparing the
error graphs in Figure 5.1 and the acceleration limitation on Figure 5.5, also when
comparing the acceleration limitation in Figure 5.5 and torque limitation in Figure 5.4.
Although the error is less than the 40% of the step amplitude, at the start of the step.
5.1 Experiment Baseline Case 39
That is acceptable with the knowledge that the error converges to zero after one
second.
5.2 Measurement Disturbance Influence on the Controller
Testing the performance of the controller while facing noise to the output signals is
necessary. This is due to the fact that there will be noise distortion occurring in the
output signal. Therefore, it is necessary to know the impact that this disturbance has,
on the system and its behaviour.
To test how the noise might affect the performance of the controller, a normal
distributed noise generator Band-Limited White Noise block was added to each one of
the output signals, which are the joint angles q and also to the joint velocities q˙. The
maximum amplitudes of the noise to the joint angles q were chosen to be 1.5 × 10−3rad
≈ 0.085 degrees, and 0.05rad/s ≈ 2.9 degree/s for the joint velocity. These values are
anticipated to occur in the real system and thus chosen to be simulated. Figure 5.6
shows the Simulinkstructure of how the noise was generated. The output of this
structure is added to the joint angle, in the same way the noise was generated for the
joint velocity.
The "Noise power" parameter is set to 5 × 10−9 to get a noise amplitude around 1.5 ×
10−3rad for the joint angle. The "Sample time" is set to 0.01s for both joint angle and
joint velocity. The "Seed" parameter is set to different values in each noise generator to
give different values for each noise generator in the same time stamp. To ensure that
the amplitude does not exceed the maximum value for joint angle and joint velocity, a
saturation block was added after the noise generator with the limits ±1.5 × 10−3rad and
±0.05rad/s respectively.
40 5 Simulation Results
The graphs below show the test results when the noise is added in both the joint angle
q and joint velocity q˙. The graphs for the test results, where the noise is only added to
the joint angle q or only to the joint velocity’s q˙ are included in the Appendix D. The
reference signal is the same in all these cases, which is also similar to the ideal case.
Figure 5.7: Disturbance case: added noise on joint angle q and joint velocity q˙.
From top to bottom: joint angle reference signal q r, joint angle error qe and actual
joint angle q.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
5.2 Measurement Disturbance Influence on the Controller 41
Figure 5.8: Disturbance case: added noise on joint angle q and joint velocity q˙. From top
to bottom: joint velocity reference signal q˙r, joint velocity error q˙e and actual joint
velocity q˙.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see Figure
4.1.
42 5 Simulation Results
Figure 5.9: Disturbance case: added noise on joint angle q and joint velocity q˙. Top
graph: torques from the B(q)q¨. Second graph: torques from n(q, q˙). The legends (J1,
LA, J2, UA, J3, OS) are associated with the joint of each link, see Figure 4.1.
5.2 Measurement Disturbance Influence on the Controller 43
Figure 5.10: Disturbance case: added noise on joint angle q and joint velocity q˙. Top
graph: total saturated torques us. Second graph: saturated values of u.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see Figure
4.1.
44 5 Simulation Results
Figure 5.11: Disturbance case: added noise on joint angle q and joint velocity q˙.
Top graph: total saturated control signal ys. Second graph: saturated values of y.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
The result shows that the error converging to zero, with some minor noise. Otherwise,
the error kept to the same as the noise amplitude except for some curves, see Figure
5.7 and Figure 5.8 between the 2nd and 3rd second. Those curves on the joint angle
and velocity depend on the control signal, the acceleration y, which gets disturbed by
the noise and gives some peaks in the same time period. With that said, the graphs
indicate that the system is more sensitive to the noise on the joint velocity q˙ than the
noise for the joint angle q, see Appendix D. Specially when comparing the behaviors of
5.2 Measurement Disturbance Influence on the Controller 45
the system when a noise signal was added to either a joint angle or joint velocity, see
Appendix D. The amplitude of the error that is influenced by the noise is the same as
the noise amplitude, when the noise is added only to the joint angle. However, the error
gets bigger when the noise is added on both the joint angle and joint velocity, see Table
5.1.
The results of those tests, where the variation is only by ±5%, are in Appendix E and
Appendix F. Hence, the result of the test, where the variation is ±10%, are shown below.
5.3 Robustness of Control Model 46
The test is made by multiplying 0.9,0.95,1,05 and 1.10 to the mass of the last link (OS),
which is including the mass of the test weight. Thereafter, a simulation of the behavior is
done by giving the same reference signal as the ideal case scenarios. The result of those
tests, where the variation is only by ±5%, are in Appendix E. Otherwise, the result of the
test, where the variation is ±10%, are shown below.
Figure 5.12: Payload test: test weight is 10% higher. From top to bottom: joint angle
reference signal qr, joint angle error qe and actual joint angle q. The legends (J1, LA,
J2, UA, J3, OS) are associated with the joint of each link, see Figure 4.1.
5.3 Robustness of Control Model 47
Figure 5.13: Payload test: test weight is 10% higher. From top to bottom: joint velocity
reference signal q˙r, joint velocity error q˙e and actual joint velocity q˙.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see Figure
4.1.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
48 5 Simulation Results
Figure 5.14: Payload test: test weight is 10% higher. Top graph: torques from the B(q)q¨.
Second graph: torques from n(q, q˙).
5.3 Robustness of Control Model 49
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
50 5 Simulation Results
Figure 5.15: Payload test: test weight is 10% higher. Top graph: total saturated
torques us. Second graph: saturated values of u.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
5.3 Robustness of Control Model 51
Figure 5.16: Payload test: test weight is 10% higher. Top graph: total saturated
control signal ys. Second graph: saturated values of y.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
52 5 Simulation Results
Figure 5.17: Payload test: test weight is 10% lower. From top to bottom: joint angle
reference signal qr, joint angle error qe and actual joint angle q.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
5.3 Robustness of Control Model 53
Figure 5.18: Payload test: test weight is 10% lower. From top to bottom: joint
velocity reference signal q˙r, joint velocity error q˙e and actual joint velocity q˙.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
54 5 Simulation Results
Figure 5.19: Payload test: test weight is 10% lower. Top graph: torques from the
B(q)q¨. Second graph: torques from n(q, q˙).
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
5.3 Robustness of Control Model 55
Figure 5.20: Payload test: test weight is 10% lower. Top graph: total saturated
torques us. Second graph: saturated values of u.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
56 5 Simulation Results
Figure 5.21: Payload test: test weight is 10% lower. Top graph: total saturated
control signal ys. Second graph: saturated values of y.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
5.3 Robustness of Control Model 57
The results show that a change in payload gives a static error in the joint angle. The error is
linearly dependent on the error in the payload, that can be seen when comparing the ideal
with all other payload tests (+5%,+10%,−5% and −10%). With that said, the amplitude of
the highest static error is ≈ 0.016rad ≈ 0.9167 degree when the error in mass is ±5% and ≈
0.032rad ≈ 1.8335 degree when the error in mass is ±10%. With the knowledge that this
error in the joint space yields an error in the operational space equal to 0.0047m, it get
acceptable. This error is calculated by (5.2)
Hee = He,q −
0 1
h iT (5.2)
⇒k k
Tee = 0.0002 0.0002 0.0047 = Tee = 0.0047
−0.0037−0.0087 −0.0038
ee −0.0017 0.0314 0.0136 R =
0.0352 0.0005 0.0004
He,qr = "ee Tee# =⇒ R
where the Hee is the error between the homogeneous transformation matrix of the desired
angle qd and the actual angle q. The homogeneous transformation matrix is for the end-
effector w.r.t the base. The Tee and Ree are the rotational and translational component of
the Hee. The data in the equation above are from the test where 10% is subtracted to the
payload, which has the largest error amplitude in joint angle ≈ 0.032rad ≈ 1.8335. The
difference in the payload also has an impact on how much of the torque is saturated, which
is reasonable. The lower the weight is, the less required torque is needed to move and vice
versa.
58 5 Simulation Results
This test was made in the same way as the payload test, where the change was made in the
inertia tensors of all the links. The result of those tests, where the variation is only by ±5%,
are in Appendix F. Otherwise, the result of the test, where the variation is ±10%, are shown
below.
Figure 5.22: Inertia test: inertia tensor 10% higher. From top to bottom: joint angle
reference signal qr, joint angle error qe and actual joint angle q. The legends (J1, LA, J2,
UA, J3, OS) are associated with the joint of each link, see Figure 4.1.
5.3 Robustness of Control Model 59
Figure 5.23: Inertia test: inertia tensor 10% higher. From top to bottom: joint velocity
reference signal q˙r, joint velocity error q˙e and actual joint velocity q˙.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see Figure 4.1.
60 5 Simulation Results
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
5.3 Robustness of Control Model 61
Figure 5.24: Inertia test: inertia tensor 10% higher. Top graph: torques from the
B(q)q¨. Second graph: torques from n(q, q˙).
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
62 5 Simulation Results
Figure 5.25: Inertia test: inertia tensor 10% higher. Top graph: total saturated
torques us. Second graph: saturated values of u.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
5.3 Robustness of Control Model 63
Figure 5.26: Inertia test: inertia tensor 10% higher. Top graph: total saturated
control signal ys. Second graph: saturated values of y.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
64 5 Simulation Results
Figure 5.27: Inertia test: inertia tensor 10% lower. From top to bottom: joint angle
reference signal qr, joint angle error qe and actual joint angle q.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
5.3 Robustness of Control Model 65
Figure 5.28: Inertia test: inertia tensor 10% lower. From top to bottom: joint
velocity reference signal q˙r, joint velocity error q˙e and actual joint velocity q˙.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
66 5 Simulation Results
Figure 5.29: Inertia test: inertia tensor 10% lower. Top graph: torques from the
B(q)q¨. Second graph: torques from n(q, q˙).
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
5.3 Robustness of Control Model 67
Figure 5.30: Inertia test: inertia tensor 10% lower. Top graph: total saturated
torques us. Second graph: saturated values of u.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
5.3 Robustness of Control Model 68
Figure 5.31: Inertia test: inertia tensor 10% lower. Top graph: total saturated control
signal ys. Second graph: saturated values of y.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see Figure
4.1.
This test shows that the error in the inertia has a minimal affect on the output joint angles,
only the error max amplitude change with a small margin. The difference is in the
maximum error amplitude, it gets lower the lower the inertia value is and vice versa. There
are also some minimal oscillations on the joint that does not make the step, which means
the nonlinear compensation and decoupling get affected. On the other hand, the torque
gets unstable and get some occasional peaks. The same goes for the acceleration.
5.4 Operational Space Time Path 69
In this test, a trajectory was created in the operational space, in the shape of a half moon
as shown in Figure 5.32 and 5.33. This trajectory was given to a Inverse Kinematics-block
from the RSTB. This block calculate the joint angle q from the given operational space
position. Thereafter, these joint angles are given to the controller through a filter, H(s)
Equation 5.1, as a reference joint angle qr, as well as its derivative q˙r and the second
derivative q¨r. The outcome of this test is shown in the graphs below:
Figure 5.32: Trajectory test: the time reference signal in the operational space.
70 5 Simulation Results
Figure 5.33: Trajectory test: 3D representation of the given trajectory and the robot, in four
different frames.
5.4 Operational Space Time Path 71
Figure 5.34: Operational space trajectory test. From top to bottom: joint angle
reference signal qr, joint angle error qe and actual joint angle q.
72 5 Simulation Results
Figure 5.35: Operational space trajectory test. From top to bottom: joint velocity
reference signal q˙r, joint velocity error q˙e and actual joint velocity q˙. The legends
(J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see Figure 4.1.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
5.4 Operational Space Time Path 73
Figure 5.36: Operational space trajectory test. Top graph: torques from the B(q)q¨.
Second graph: torques from n(q, q˙).
74 5 Simulation Results
Figure 5.37: Operational space trajectory test. Top graph: total saturated torques
us. Second graph: saturated values of u.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
5.4 Operational Space Time Path 75
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
76 5 Simulation Results
Figure 5.38: Operational space trajectory test. Top graph: total saturated control
signal ys. Second graph: saturated values of y.
The result of this test shows that the controller manages to keep the error below
0.01rad ≈ 0.5730 degree. The error gets bigger only in the change of the path
direction which happens in the following time stamps 0.30s, 3s, 5s, 7s and 10s,
which is understandable. The torque graph shows that some peaks and rapid
oscillations happens in the first 2 seconds, see Figure 5.36. Although, these
changes do not result in a big amplitude, which is even lower than the amplitude
of the ideal case. These peaks also appear in the acceleration graph.
To conclude this test, the results are promising and the controller shows a good
response time and it is also able to follow the reference signal with a low error
amplitude.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
6 Result
This chapter conclude the results of this thesis and some ideas for the future development
on this thesis.
6.1 Discussion
To conclude the result, a dynamical model of the robot as well as a joint space inverse
dynamic controller have been developed. The control model as well as the simulated
model of the robot was developed with the help of the RSTB Robotic System Toolbox. To
justify the approach of the development of the control and the simulated model several
experiments were made. The result of the controller was promising, specially in the ideal
case scenario. The controller also managed to converge the output signal to the reference
signal with a minor error while encountering a noise disturbance. The error which is
influenced by the noise is unavoidable, this is due to the fact that there will always be
distortions in the measured signals. The only solution is to add a filter to suppress the
amplitude of the noise. Operational space path following experiment indicates that the
error is mainly related to the step size. With that said, a softer trajectory can keep the error
to the minimum. Although, more experiments are needed to be made, such as a
combination of the noise and the other experiment also testing other maneuvers. Some of
the combination experiments ware made but were chosen not to be presented, that is
mainly for the limited size of the report and simplicity for the reader.
However, the results only show the behavior of a simulated model, which does not
guarantee the same results for the real robot. Therefore, more tests are needed to be done
on the real robot to confirm the results of the controller as well as the simulated model.
73
74 6 Result
6.2 Future Development
The most important thing to develop in the future is to add a filter on the measured
signals, due to the impact that the noise has on the oscillation in the torque. These rapid
changes in the torque may shorten the lifetime of the material used in the robot, it also
requires more power (ampere). Another thing to keep in mind, is to add a robustness
controller. That is to minimize the impact of the inaccuracy of the properties given to the
controller, see Figure 6.1.
1
n = 6; % number of links (rigid-body)
2
L (1:n) = Link();
3
for i = 1:n
4
L(i) = Revolute('d', d(i), ... (Dennavit-Hartenberg % link length ...
notation)
5
'a', a(i), ... % link offset ...
(Dennavit-Hartenberg notation)
6
'alpha', alpha(i), ... % link twist ...
(Dennavit-Hartenberg notation)
7
'I', Body(i+1).I, ... % inertia tensor of ...
link with respect to center of mass I = [L_xx, L_y y, ...
L_zz, L_xy, L_yz, L_xz]
8
'r', Body(i).COG, ... % distance of i:th ...
origin to center of mass [x,y,z] in link reference frame
9
'm', Body(i).m, ... % mass of link
10
'Jm', 0, ... % actuator inertia
11
'G', 0, ... % gear ratio
12
'B', 0, ... % actuator viscous friction coefficient (measured at the motor) ...
13
'Tc', [0 0]);%, ... % actuator Coulomb ...
friction coefficient for direction [-,+] (measured the motor) at ...
14
end
82
15
Robot_CM = SerialLink(L, 'name', 'ROBOT_CM');
83
B
SimulinkModel of the Robot Controller
Using RSTB.
85
86
Simulink
modeloftheRobotcontrollerusingRSTB.
87
88
C
RSTB Definition of The Links Chain
1
% joint 123456
2
Rot_axis = [0 0 0 1 0 1; %x
3
0 1 1 0 1 0; %y
4
1 0 0 0 0 0];% z
5
Transform = eye(4);
6
%Rigid-body tree decleration (Joint and body names)
7
joints_name = "jnt" + (1:6);
8
Visual_name = "3D/" + ["Base.stl", "Joint1.stl", "LowerArm.stl", ...
9
"Joint2.stl", "UpperArm.stl", "Joint3.stl", "OS.stl"];
10
11 ROBOT_CM = r igidBodyTree('DataFormat','row');
12
ROBOT_CM.Base.addVisual("Mesh", Visual_name(1));
13
n = 6; % number of links (rigid-body)
14
Link(1:n) = rigidBody(' ');
15
Joint(1:n) = rigidBodyJoint(' ');
16
%Rigid-body tree defintions from the Body data
17
for i = 1:n
18
Link(i) = rigidBody(Body(i+1).name); % ...
Rigit-body name
19
% adding properties to the joint
20
Joint(i) = rigidBodyJoint(joints_name(i), 'revolute'); % Joint ...
object that defines how a rigid body moves relative to ... another.
21
Joint(i).JointAxis = Rot_axis(:,i); %...
JointAxis represents the rotation axis of a revolute ...
joint, vector with one in the desierd position ([0 rotation in z). 0 1] ...
22
Transform(1:3,4) = Body(i).L; length % Body ...
23
setFixedTransform(Joint(i), Transform); % Sets ...
JointToParentTransform to the user-supplied 4x4 ...
homogeneous transform matrix T and ChildToJointTransform ... to an identity matrix.
89
Mass of the ... rigid body, Body mass cannot be negative. Unit:
% Inertia of ...
rigid body relative to the body frame. I = [Ixx Iyy ...
D
Tests of the Noise Disturbance
Figure D.1: Disturbance case: added noise on joint angle q. From top to bottom: joint
angle reference signal qr, joint angle error qe and actual joint angle q.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see Figure
4.1.
91
92 D Tests of the Noise Disturbance
Figure D.2: Disturbance case: added noise on joint angle q. From top to bottom:
joint velocity reference signal q˙r, joint velocity error q˙e and actual joint velocity q˙.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
93
Figure D.3: Disturbance case: added noise on joint angle q. Top graph: torques
from the B(q)q¨. Second graph: torques from n(q, q˙).
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
94 D Tests of the Noise Disturbance
Figure D.4: Disturbance case: added noise on joint angle q. Top graph: total
saturated torques uS. Second graph: saturated values of u.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
95
Figure D.5: Disturbance case: added noise on joint angle q. Top graph: total
saturated control signal yS. Second graph: saturated values of y. The legends (J1,
LA, J2, UA, J3, OS) are associated with the joint of each link, see Figure 4.1.
96 D Tests of the Noise Disturbance
Figure D.6: Disturbance case: added noise on joint velocity q˙. From top to bottom:
joint angle reference signal qr, joint angle error qe and actual joint angle q.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
97
Figure D.7: Disturbance case: added noise on joint velocity q˙. From top to bottom:
joint velocity reference signal q˙r, joint velocity error q˙e and actual joint velocity q˙.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
98 D Tests of the Noise Disturbance
Figure D.8: Disturbance case: added noise on joint velocity q˙. Top graph: torques
from the B(q)q¨. Second graph: torques from n(q, q˙).
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
99
Figure D.9: Disturbance case: added noise on joint velocity q˙. Top graph: total
saturated torques uS. Second graph: saturated values of u.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
100 D Tests of the Noise Disturbance
Figure D.10: Disturbance case: added noise on joint velocity q˙. Top graph: total
saturated control signal yS. Second graph: saturated values of y. The legends (J1,
LA, J2, UA, J3, OS) are associated with the joint of each link, see Figure 4.1.
E
Payload Tests
103
95
Figure E.1: Payload test: test weight 5% higher. From top to bottom: joint angle
reference signal qr, joint angle error qe and actual joint angle q.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
104 E Payload Tests
Figure E.2: Payload test: test weight 5% higher. From top to bottom: joint velocity
reference signal q˙r, joint velocity error q˙e and actual joint velocity q˙.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
105
Figure E.3: Payload test: test weight 5% higher. Top graph: torques from the B(q)q¨.
Second graph: torques from n(q, q˙).
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
106 E Payload Tests
Figure E.4: Payload test: test weight 5% higher. Top graph: total saturated torques uS.
Second graph: saturated values of u.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
107
Figure E.5: Payload test: test weight 5% higher. Top graph: total saturated control
signal yS. Second graph: saturated values of y.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
108 E Payload Tests
Figure E.6: Payload test: test weight 5% lower. From top to bottom: joint angle
reference signal qr, joint angle error qe and actual joint angle q.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
109
Figure E.7: Payload test: test weight 5% lower. From top to bottom: joint velocity
reference signal q˙r, joint velocity error q˙e and actual joint velocity q˙.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
110 E Payload Tests
Figure E.8: Payload test: test weight 5% lower. Top graph: torques from the B(q)q¨.
Second graph: torques from n(q, q˙).
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
111
Figure E.9: Payload test: test weight 5% lower. Top graph: total saturated torques uS.
Second graph: saturated values of u.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
112 E Payload Tests
Figure E.10: Payload test: test weight 5% lower. Top graph: total saturated control
signal yS. Second graph: saturated values of y.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
F
Inertia Test
115
107
Figure F.1: Inertia test: inertia tensor 5% higher. From top to bottom: joint angle
reference signal qr, joint angle error qe and actual joint angle q.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
116 F Inertia Test
Figure F.2: Inertia test: inertia tensor 5% higher. From top to bottom: joint velocity
reference signal q˙r, joint velocity error q˙e and actual joint velocity q˙.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
117
Figure F.3: Inertia test: inertia tensor 5% higher. Top graph: torques from the B(q)q¨.
Second graph: torques from n(q, q˙).
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
118 F Inertia Test
Figure F.4: Inertia test: inertia tensor 5% higher. Top graph: total saturated torques
uS. Second graph: saturated values of u.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
119
Figure F.5: Inertia test: inertia tensor 5% higher. Top graph: total saturated control
signal yS. Second graph: saturated values of y.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
120 F Inertia Test
Figure F.6: Inertia test: inertia tensor 5% lower. From top to bottom: joint angle
reference signal qr, joint angle error qe and actual joint angle q.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
121
Figure F.7: Inertia test: inertia tensor 5% lower. From top to bottom: joint velocity
reference signal q˙r, joint velocity error q˙e and actual joint velocity q˙.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
122 F Inertia Test
Figure F.8: Inertia test: inertia tensor 5% lower. Top graph: torques from the B(q)q¨.
Second graph: torques from n(q, q˙).
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
123
Figure F.9: Inertia test: inertia tensor 5% lower. Top graph: total saturated torques u S.
Second graph: saturated values of u.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
124 F Inertia Test
Figure F.10: Inertia test: inertia tensor 5% lower. Top graph: total saturated control
signal yS. Second graph: saturated values of y.
The legends (J1, LA, J2, UA, J3, OS) are associated with the joint of each link, see
Figure 4.1.
Bibliography
[1] Mr. Marco Bertagnoli. Model-Based Stability Analysis for Mobile Manipulators. PhD
thesis, Ostbayerische Technische Hochschule Regensburg, Regensburg, Bavaria,
Germany, 06 2017.
[2] Raphael Deimel and Oliver Brock. A compliant hand based on a novel pneumatic
actuator. IEEE International Conference on Robotics and Automation (ICRA), pages
2039–2045, 2013.
[3] Olaf Diegel, Aparna Badve, Glen Bright, Johan Potgieter, and Sylvester Tlale.
Improved Mecanum Wheel Design for Omni-Directional Robots. PhD thesis, Institute
of Technology and Engineering, Massey University., 11 2002.
[4] Roy Featherstone. Robot dynamics, 2007-10-08. [Online; accessed December 16,
2020], http://www.scholarpedia.org/article/Robot_ dynamics.
[5] Parham M. Kebria, Saba Al-wais, Hamid Abdi, and Saeid Nahavandi. Kinematic and
dynamic modelling of UR5 manipulator. In 2016 IEEE International Conference on
Systems, Man, and Cybernetics (SMC). IEEE, oct 2016. doi:
10.1109/smc.2016.7844896.
[6] Kevin M. Lynch and Frank C. Park. Modern Robotics: Mechanics, Planning, and
Control. Cambridge University Press, 2017.
[7] MathWorks®. Robotics system toolbox, -. [Online; accessed December 16, 2020],
https://se.mathworks.com/products/robotics.html.
[8] MathWorks®. Symbolic math toolbox, . [Online; accessed December 16, 2020],
https://se.mathworks.com/products/symbolic.html.
[9] MathWorks®. Getting started with matlab, 1994-2020. [Online; accessed December
16, 2020], https://se.mathworks.com/products/matlab/ getting-started.html.
119
120 Bibliography
[11] Omron. Omron showcases mobile manipulator at ppma total show,
October 01, 2019. URL https://industrial.omron.eu/en/newsevents/news/mobile-
manipulator-at-ppma-total-show. [Online; accessed December 16, 2020].
[14] Bruno Siciliano, Lorenzo Sciavicco, Luigi Villani, and Giuseppe Oriolo. Robotics:
Modelling, Planning and Control. Springer-Verlag, 2009.
[15] Universal Robots. Inventor of the robot arm and its continued development, 2019-10-
01. [Online; accessed December 16, 2020], https://blog.
universal-robots.com/history-of-robot-arm-invention.