0% found this document useful (0 votes)
37 views

Robot Control - 2

Uploaded by

essam abdalla
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views

Robot Control - 2

Uploaded by

essam abdalla
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 29

Robot Control

After calculating the torque required to accomplish desired motions at each


joint using inverse dynamics you can control your robot according to your
priorities and constrains. So, you require a set of feedback sensors to measure
position of each joint and make sure your constrains are not exceeded. Also,
you require actuators to provide each joint with required forces and torques.
Both sensors and actuators require to be interfaced with the controller and you
must control it. Fig.1 shows the common architecture of a modern industrial
robot [1].

Fig.1: The common architecture of an industrial robot

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.

Adaptive control tries to cope with disturbances or affordable additional loads.


But sometimes it can make the system unstable if the previous and current states
of the system are different and the change occurs rapidly.

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:

Here you concentrate on controlling the kinematic parameters of the robot


which are position and velocity both in task space and joint space. From
previous lectures you know how to get the joint position and velocity if you
have TCP position and velocity and vice versa using kinematics and Jacobean
matrix. Here we will continue with them to determine the control actions in
kinematic perspective. To make our equations more general we will use
symbols & °
to represent the vectors containing displacement and velocity of
robot joints either any joint is revolute or prismatic.

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 =
,→.

So, the control objective is: lim / = 0; / ∶= −


,→.

Where: / is the joint position errors vector.

4
Robot Control

Assuming for each joint that / = $2,


as a function of time[2] where 3 > 0.
Also speed limitations of each joint must not be exceeded.

/° = −3 $2,
so, / ° + 3/ =0

°
− °
= −3 $2,

°
− °
+3 $2,
=0

°
+3 $2,
= °

°
+ 3/ = °

Fig.2: Kinematic controller.

Here λ can be considered as a simple proportional control and can be replaced


°
by Kp where Kp >0. In some cases, the desired displacement is not available
so the proportional control will result in a steady state error as in this case

°
= 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).

Also, here the controller objective is that:

lim : =:
,→.

So, the control objective is: lim :/ = 0; :/ ∶= : − :


,→.

Where: :/ is the TCP position errors vector.

Assuming that :/ = $<,


as a function of time where = > 0.

:/° = −= $<,
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).

Where: CA is the function resembling the control action.

Kp & Kv are symmetric positive definite matrices. Kv is considered as


derivative gain.

7
Robot Control

Fig.3: proportional control plus velocity feedback.

PD controller is expansion of the P plus velocity feedback controller. Fig.4


shows the PD controller and its control law is:

> = 56 / − 5? / °

Where: CA is the function resembling the control action.

Kp & Kv are symmetric positive definite matrices. Kv is considered as


derivative gain.

Fig.4: PD controller block diagram.

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

And in case of constant reference of q then the errors can be rewritten as

°
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

Robots without gravity term:

Sometimes when robot is a planar robot working horizontally or with


special design making the gravitation term doesn’t exist. Then the
dynamic model will be:

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

To ensure stability of this model we can use Lyapunov’s direct method


specially La Salle’s theorem.

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

As Kp is a constant matrix not a function of q or its derivatives so it wasn’t


differentiated the derivative of the function can be rewritten as:

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:

lim / = lim [ − ]=0


,→. ,→.

11
Robot Control

lim °
=0
,→.

So, the control objective is achieved.

Mostly modern robots’ actuators are equipped with gravity compensations so


PD controllers without gravity term are widely used. In case of existence of
steady state error term of integral branch can be added to the control law. Also,
gravitational term could be included but it will make the controller too
complicated.

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)
°°
°

Fig.5: Cascaded/ Duel loop controller.

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

Nowadays we witness the fourth industrial revolution depending mainly on


robots for all manufacturing stages. The main concept of this revolution is to
minimize production wasted time and instead of making them in series they are
parallel. Mounting and removing of parts in different stages is executed by
robots. Each part is fixed to a movable plate with at least four pins while the
machines tables is prepared with holes in fixed places to fix parts plates on it.
To move part from machining stage to dimensions check and vice versa only
robot pick the part with its plate from machine to another.

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.

1) Robot integration in production systems:

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.

a) Determine production processes to use robots with.

14
Robot Control

b) Determine required robot/s for each process.


c) Determine the required assisting tools and devices.
d) Plan and arrange robots according to production processes and proper
workshop plan to facilitate processes.
e) Optimize workshop layout according to production priorities.

15
Robot Control

Fig.6: Hierarchy of a company using robots[5].

After executing planning steps mentioned before and testing the production line
here comes role of production planning here simulation programs become

16
Robot Control

essential. In modern unmanned or nearly unmanned factories these programs


co-operate together to decrease losses of repeated prototyping and increase
profits by decreasing production cost, time and optimizing quality. These
programs do CAD/CAM, CAPP, project management and trajectory planning of
robots. Programs and plans tested by these simulation programs then during
applying them there will be communication between them, working machines
(CNCs, robots, measurement machines like CMM) and inventories.

To select the suitable robot, you must check the following features:

a) Robot working area.


b) Accuracy and precision of the robot.
c) Robot programming.
d) Robot loads.
e) Number of degrees of freedom.
f) Robot motion mechanism.

a) Robot working area:

Workspace/ working envelope contain maximum limits of the robot


according to its mechanism, but you can limit the robot to work in or not to
work in specific areas according to your product and workshop special
needs Fig.7 and fig.8 illustrate maximum and limited workspace. Fig.7 (a)
shows working areas of first joint of KR 5 arc HW KUKA welding robot
arm where 1 is the working area, 2 is the robot itself, 3&5 are braking areas

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.7: a) workspace of base joint for KUKA robot arm[6].

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

b) Accuracy and precision of the robot:

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

Fig.7: b) workspace of KR 5 arc HW KUKA welding robot arm[7].

20
Robot Control

Fig.8: Limited workspace of base joint for KUKA robot arm[7].

I. Tool:

Robot need to save data of tools to compensate for it during calculating


motion orders. So, each tool needs to be calibrated to get these data then
you need to test ability of the robot to reach the same point many times
before using it for real work. Each tool has a point called TCP (tool
centre point) it is user defined but generally it is the working point of the
tool for example the tip of electrode of welding torch, centre of end mill
in case of CNC robot …etc. the tool co-ordinating system is placed in
this point. There are different methods for defining this point fig.9
illustrates the main concept of tool calibration. The main concept is to
find relative position of the tool co-ordinates to the flange co-ordinates.

21
Robot Control

II. work piece:

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.

Fig.9: calibration principal of robot tool[7].

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.

Fig.10: Work piece calibration[7].

Fig.11: 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.

Also, it is important to check for cooperation ability where it is possible


to make many robots, CNC machines and tilting devices to work together
in synchronization. The cooperation prevents collision of robots and
synchronizes their working sequence also it gathers their working
coordinates in a global one without affecting their local ones.

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

e) Number of degrees of freedom:

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.

f) Robot motion mechanism:

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.

Fig.11: Loads and their points of effect on KUKA robots[7].

26
Robot Control

Singularities have physical meaning, but we are not concerned with it


here, meaning when calculating motion of the robot which mean it causes
infinitesimal speed for robot joints which require infinitesimal current for
motors which can burn their coils. But also, there are singularities for
practical mechanical matters which are positions that can offer big variety
of possible motions or dangerous positions for device stability, so it is
important to have advanced run active.

For a KUKA robot arm with 6 degrees of freedom there are 3


singularities:
• Overhead singularity
• Extended position singularity
• Wrist axis singularity

Overhead singularity: It happens when intersection of axes A4, A5 and


A6 is located directly on axis A1 as shown in fig.12.

Extended position singularity: It happens when the wrist root point


(intersection of axes A4, A5 and A6) is in the extension of axes A2 and
A3 of the robot as show in fig.13.

Wrist axis singularity: It happens when axes A4 and A6 are parallel to


one another and axis A5 is within the range ±0.01812° as shown in fig.14.

27
Robot Control

Fig.12: Overhead singularity[7].

Fig.13: Extended position singularity[7].

28
Robot Control

Fig.14: Wrist axis singularity[7].

References:

[1] “INDUSTRIAL ROBOTS PROGRAMMING: BUILDING APPLICATIONS FOR THE FACTORIES OF THE
FUTURE.”

[2] S. Mohan, “Mechanics and Control of Robotic Manipulators.”

[3] E. (Etienne) Dombre and W. (Wisama) Khalil, Modeling, performance analysis and control of
robot manipulators. ISTE, 2007.

[4] “Advanced Textbooks in Control and Signal Processing.”

[5] Informatics in Control, Automation and Robotics I. Scholars Portal, 2019.

[6] “KR 5 arc HW, KR 5 arc HW-2 Specification KUKA Robot Group.”

[7] K. Roboter GmbH, “KR C4; KR C4 CK Operating Instructions,” 2015.

29

You might also like