Robot Control - 2
Robot Control - 2
But it wasn’t the same all time in mid 70s there wasn’t feedback in the robot
system only pre planned mechanical motion was used as open loop system. So
here exact model of the system is highly required, so this technique won’t be
suitable after aging of the systems’ parts (it won’t be robust). Later sensors were
integrated in the system and at mid-80s PID controllers were implemented. At
1
Robot Control
mid-90s newer version of robots became trendy, it mixes between model based
and sensor-based control. Here accurate model is not a necessity also it can use
limited amount of sensors giving insufficient amount of data. By 2015 due to
the evolution of AI techniques learning based control techniques of robots
became trendy. These robots used deep and reinforced learning techniques in
their control.
You are completely free to choose the control technique suitable for your
architecture, working environment and determined task. So, we mainly have
two main options for controlling any robot, first is sensor based which depend
on the feedback from sensors due to motion accomplishment by actuators. The
second is mode based and you also need to get feedback from sensors to ensure
stability of the system.
Due to inaccuracy of models and low signal to noise ratio of sensors in some
cases robust and adaptive controllers were used. In case of robust control it
deals with any amount of load or error the same manner as long as they are
withing operating range, for example if you designed a robust controller to keep
temperature at 30 degrees so in case of temperature is 30.1 degrees the air
conditioner compressor will start then when temperature is 19.9 degrees it will
stop until it is 20.1 degrees again and so on. That’s why adaptive control was
used.
2
Robot Control
After all which control technique to use and what parameters to give the highest
priority is necessarily to be determined. Mostly people in robotic community
tries to control the robot in both kinematic and dynamic levels which is called
cascaded control or dual loop with inner loop controlling dynamic level and
outer level controlling kinematic loop[1], [2], [3].
To achieve the required control in task space ( cartesian space) we must control
the joint space accurately in a synchronized manner. Also integrated sensors
must be accurately chosen in both spaces such as cameras, distance sensors,
proximity sensors, force sensors…etc in task space or current sensor,
proximity/limit sensors, …etc in joint space.
Kinematic control:
3
Robot Control
From your planned trajectory you can get the desired displacements & .
Also, here we assume the robot is in idle condition neglecting friction and other
impedances. So, the dynamic model of the robot will be[4]:
= °°
+ , ° °
+
Where:
, ° °
ℎ
ℎ !! " .
°°
= $%
[ − , ° °
− ]
Here in kinematic control you try to find the torque suitable to accomplish the
target of control. Here we consider constant kinematic reference of . Here
you try to make q of the robot joints equal to accurately. Fig.2 shows simple
block diagram of kinematic controller.
lim =
,→.
4
Robot Control
/° = −3 $2,
so, / ° + 3/ =0
°
− °
= −3 $2,
°
− °
+3 $2,
=0
°
+3 $2,
= °
°
+ 3/ = °
°
= 56 [ − ] so integral branch of the PI parallel controller is required here
so the control equation will be:
°
= 56 [ − ] + 57 8[ − ] ; 56 > 0, 57 > 0
5
Robot Control
Notice that Kp , Ki are symmetric positive definite matrices. Which mean they
are matrices with positive diagonal and rest of the elements zeros to enable
calculation of control actions for all joints at the same time. So, you can use
constant values arranged on the diagonal of identity matrix for Kp or Ki.
The same procedure can be applied for the task space as µ is the kinematic
displacement in the task space where: :° = ; °
.
Either in joint space or task space in kinematic control you set the reference
velocity to zero as in this case you will be sure you are at rest and achieved the
targeted position (there are some exceptions in practical operation but they are
not included in these lectures).
lim : =:
,→.
:/° = −= $<,
so, :/° + =:/ =0
:° − :° = −= $<,
:° − :° += $<,
=0
:° −; °
+= $<,
=0
So °
=; $%
:° + =:/
6
Robot Control
So, you can get the angular kinematic parameters from the cartesian (task space)
kinematic parameters and vice versa then substitute in torque equation to know
the required torque for each joint.
Dynamic control:
The PI controller is not the only available type of PID controller to control
robot’s joints you can use PD or even PID controller depending on your
system’s requirements and responses. For PD controller you can use the
following equations. Fig.3 represents the proportional control plus velocity
feedback.
> = 56 / − 5? °
(control law of proportional plus velocity feedback
controller).
7
Robot Control
> = 56 / − 5? / °
8
Robot Control
To control the kinematics, you must control the corresponding torque of joints.
°°
+ , ° °
+ = 56 / − 5? °
So, the derivatives of the displacement and velocity errors can be expressed in
state vector as[4]:
/ /°
@ °A = B E
/ °°
− $%
C56 / − 5? °
− , ° °
− D
°
Due to constant q reference so the tends to be zero. So, the last expression
could have many equilibria which can be given by:
/ − °
F °G = H I
$%
C56 / − 5? ° − , ° °
− D
J
C /J °J D =[ J
0 J ]J
Where: s is solution of : 56 − − =0
9
Robot Control
= °°
+ , ° °
If the desired position is constant the closed loop equation will be:
/ − °
F °G = H I
− / $% C56 / − 5? ° − − /, ° °
D
J
The only equilibrium od this equation is C / J °J D =0
1 / J 56 0 /
K /, °
= @ °A @ A @ °A
2 0 −/
1 °J
1 J
K /, °
= °
+ / 56 /
2 2
This function is positive definite as M(q) and Kp are both definite positive
matrices. Differentiating the function, it will be:
1 °° J
1 °° J
1 °J
1 °J
K ° /, °
= °
+ °
+ ° °
+ / 56 /
2 2 2 2
1 J
+ / 56 / °
2
10
Robot Control
1 °J
K ° /, = + + / J 56 / °
° J °° ° °
2
°J
N ℎ : & °
/J / P
! ! ℎ !
ℎ ℎ ! .
Substituting for °°
= 56 / − 5? °
− − /, ° °
°J %
Q °
− S °
R
Cancelling the term using Property 4.2.7 and the fact that
/° = − °
is a constant vector then:
°J
K /. °
=− 5? °
/ 0
J
0 /
K /,° °
= − @ °A @ A@ A T 0
0 5?
5?% ⋯ 0 °
%
7_V
K ° /, = −[ °]W ⋮ ⋱ ⋮ [ \ ⋮ ] = \^
… 7 5?7 7 ]
° ° ° °
% V
0 ⋯ 5?V °
V 7_%
7_V
°R
= ^ 5?7 7
7_%
So, it is a Lyapunov function and the origin is stable. Using La Salle’s theorem
J
2.7 to establish asymptotic stability of the origin C / J °J D = 0 making:
11
Robot Control
lim °
=0
,→.
In real life you can’t rely only on kinematic control or dynamic control, so you
must merge both in a duel loop controller or in other words cascaded controller.
With final feedback of joints position ( , °
) and speed and references come
from the trajectory planner ( , °
& °°
. The inner loop which is the dynamic
°°
one takes the value of to calculate the τ vector then it is fed to the second
control loop to control the motors depending on the position and speed feedback
as shown before. The motors control is included in the second control loop
which you studied before in other courses. Fig.5 shows the duel loop controller.
: °
q
:°
Trajectory Task space/ Dynamic τ Kinematic
:°°
Planner Joint space controller controller (PI)
converter (PD/ PID)
°°
°
12
Robot Control
Here in the second loop (kinematic control) you will deal with different parts of
the robot mentioned in fig.1 and the mechanical parts which are not mentioned
in it. Depending on the program you have written using teach pendant or sent it
from the control room or event through internet in case of equipping the factory
with IOT facilities, the computer will know its desired kinematics so it can use
these inputs as references for the controllers. Also, here the real time action will
be affected by time response of the mechanical part and its state including
power transfer systems and bearings ( gears, bearings, sprockets and pullies and
belts).
Using cascaded/ duel loop controller you can design force-controlled system
where you require specific amount of force or torque at the end effector for
applications like screw driving, drilling, milling pushing, … etc. here you have
to know exactly the amount and direction of the required force and/or torque
then calculate the required forces and torques for the mechanical required
mechanical support and study of critical points at the robot for stress and strain
that will be generated. Also, ability of the actuators and drivers to support
required power.
For cascaded controller you can take the force/ torque required to calculate the
linear acceleration at the end effector and continue your control loops safely
after making sure the system will afford the application.
After finishing your course how to apply your knowledge in industry let’s storm
our brains to know how to integrate Robot into CIM.
13
Robot Control
According to this evolution a lot of things changed not only in industry but even
in personal and political life. Nowadays there is an international argument about
reducing working hours by law to four hours daily instead of eight; some
European countries already did it. Also, robots became essential even in our
personal life which made it obligatory to change laws worldwide.
robots in industrial life are both special purpose/ customized for specific task
like CNC robots and spot-welding robots used in cars factories and general-
purpose ones where changing the end effector and technology files if necessary,
changes the possible task of the robot. Fig.6 illustrates the hierarchy of any
company which uses robots. The following steps summarize planning to
integrate robots in production systems.
14
Robot Control
15
Robot Control
After executing planning steps mentioned before and testing the production line
here comes role of production planning here simulation programs become
16
Robot Control
To select the suitable robot, you must check the following features:
17
Robot Control
and 4 is out of working possible limits. Fig.7 (b) shows all possible working
limits of KR 5 arc HW KUKA welding robot.
Note: Allowable limits of the robot shown in fig.7 (b) are not the same
for other robots’ models.
Fig.8 shows the idea of customizing the workspace where 1 and 2 are the
allowed parts of axis 1 allowable range. So, it won’t accomplish any order
outside these areas. It is also possible to determine restricted area where
robot can never enter. Also, these areas can be determined according to any
co-ordination system not only for each axis. For KUKA robots this option
requires expert access.
18
Robot Control
To ensure that products made using this robot are of acceptable quality and
any part is accurately like the other you must select robot with suitable
accuracy and check it and precision as well. To do that there are specific
items to check their calibration:
19
Robot Control
20
Robot Control
I. Tool:
21
Robot Control
This calibration can be made only if you have fixed machining device
and the robot carries the work piece or have few robots working together
like machining cam/ crank shaft. In this case you use a previously
calibrated tool to touch points mentioned in the listed procedure. Fig.10
illustrates the idea of work piece calibration.
III. Base:
You specially need to configure bases when you are working on different
surfaces with the same program for example when palletizing, working
on distributed cells (require changing the base), working on 3D printing
22
Robot Control
... etc. The most famous application is palletizing in this case you offset
the base many times with the same pick and place program). Fig.11
illustrates palletizing application.
23
Robot Control
c) Robot programming:
Each robot production company has its own programming software and
programming permeability for users, so you need to have good overview
about this software and permeability although it is quite different when
working practically nowadays. For matters of security some companies
prevent ordinary users from access to specific features which can harm
work space or robot itself, also it prevents manual operating away from
teach pendant, companies enable advanced run to calculate steps before
their execution to avoid singularities and prevented actions, some
versions of companies software enable networking for controlling devices
remotely and compiling from high level languages. There are many
simulation programs and toolboxes that their programs can be compiled
to different types of robots such as ROBODK, VRep, robotics MATLAB
toolbox …etc.
For robot arms you can select the coordination system most suitable for
your planned task, you can select type of motion PTP (point to point),
LIN (linear) or CIRC (circular) in modern controller linear and circular
commands are executed using spline which reduces stops and make
smoother paths.
24
Robot Control
d) Robot loads:
There are 4 types of loads applied on each robot resembling its overall
load respectively they are:
• Payload on the flange of the end effector.
• Supplementary load on axis 3.
• Supplementary load on axis 2.
• Supplementary load on axis 1.
There is a load diagram for each robot as shown in fig.12, but payload
must be checked by KUKA load program or any equivalent program.
Loads are measured on exact positions shown in fig.12 while each joint is
in the same position illustrated. There are 2 types of overloading and in
case of any one of them manufacturer help is required.
1st static overload: it happens when loads exceed braking/ stall torque of
the motor while robot is stand still. This type can be prevented by:
• Shifting the position of the centre of gravity towards the flange
centre point
• Using a robot with a higher rated payload
• Reducing the mass/weight.
2nd is dynamic overload: it happens when load due to motion and work
exceeds the maximum allowed load it can be avoided by:
• Using a more geometrically compact load.
• Reducing the mass.
• Using a robot with a higher rated payload.
This reduces masses moments of inertia and forces required.
25
Robot Control
The more are degrees of freedom the more motion flexibility you get but
for higher price. Each joint of the robot gives at least one degree of
freedom depending on its mechanical type. So, you must calculate
trajectory required for your tasks before deciding the robot model you
need.
There are a lot of robot types like humanoid robots, delta robots, bio-
inspired robots; robot arms …etc. so you must decide which type you
need for your application. Also, there are some mechanical precautions
you must take care of them like singularities.
26
Robot Control
27
Robot Control
28
Robot Control
References:
[1] “INDUSTRIAL ROBOTS PROGRAMMING: BUILDING APPLICATIONS FOR THE FACTORIES OF THE
FUTURE.”
[3] E. (Etienne) Dombre and W. (Wisama) Khalil, Modeling, performance analysis and control of
robot manipulators. ISTE, 2007.
[6] “KR 5 arc HW, KR 5 arc HW-2 Specification KUKA Robot Group.”
29