Applied Control of Manipulation Robots
Applied Control of Manipulation Robots
Dragan Stokic
Applied Control of
Manipulation Robots
Analysis, Synthesis and Exercises
The first book of the new, textbook series, entitled Applied Dynamics
of Manipulation Robots: Modelling, Analysis and Examples, by M.
Vukobratovic, published by Springer-Verlag (1989) was devoted to the
problems of dynamic models and dynamic analysis of robots. The present
book, the second in the series, is concerned with the problems of the
robot control.
active mechanisms. We assume the user of this book has already read
volume one of this series, so that he is acquainted with the basic
knowledge on dynamic models of robots. Therefore, in this book (Chap-
ter 3) we only briefly consider the dynamic model of a robot without
repeating many of the concepts related to the robot mechanics. However,
the problem of the relation to systems theory is much more complex. Ma-
ny of the approaches and solutions developed in the general controlsy-
stems theory have also been applied, after more or less adaptation, to
the synthesis of robot control. Someone who wants to study robot con-
trol should be familiar with some basic concepts of theory of automa-
tic control and theory of large-scale systems. For this reason it was
necessary to "repeat" in this book some of the approaches of both clas-
sical theory of automatic control and theory of control of large-scale
systems (i.e. at least those approaches that found a wider applicati-
on in robotics). In order to avoid the unnecessary broadening of the
book by including detailed considerations of the concepts and approac-
hes that can be found in the related literature on automatic control
and systems theory we assume the user of this textbook is familiar with
basic concepts and techniques of automatic control (such as the models
of linear systems in s-domain, models in state space, classical methods
of control synthesis, etc.). However, as we have endeavoured to write
a book which should be as much as possible a self-contained unit, we
included in it a number of notions of theory of automatic control (e.g.
the elements of position servo systems, fundamental concepts of the me-
thods of pole-placement, the synthesis of the optimal regulator, and
the like). In doing this we avoid all theoretical corroborations and
all those details which are not necessary for the understanding of ro-
bot control (and which the reader, if need be, can find in the cited
literature). We hope this approach will enable a wider circle of rea-
ders to study robot control, with no need to consult additional lite-
rature.
and then deals with the usual control hierarchy of automatic robots.
Furthermore, i t gives a concise discussion of some characteristic ro-
bot tasks and points out that the different requirements are imposed
before the robot, what should be borne in mind in the control synthe-
sis.
The aim of Chapter 2 is to provide the reader with some basic concepts
of the kinematic control level and thus enable him to follow the chap-
ters to come. Here, we are not concerned with the methods of forming
kinematic models of robots (which can be found in the appropriate li-
terature) but we endeavour to indicate the problems related to solving
the inverse kinematic problem.
sections d.eal with the nonlinear effects d.ue to the constraints on the
actuators, friction, and the like, as well as the application of the
PID regulator. Finally, Section 3.5. is devoted to the problems of trac-
king of trajectories at the servo system level, and to the precompen-
sator synthesis. We thought it advisable to explain the problems rela-
ted to the delay compensation on a simple subsystem model (one joint
and one actuator).
chapter 5 treats dynamic global robot control via two main forms: the
fO;r;'ce feedPac~ and th,e on-lin.e calculation of robot dynamics. The
x
application of various approximate models of robot dynamics for dyna-
mic global control received special attention. At this point, we tho-
ught it advisable to exemplify the computer-aided synthesis of control
by presenting a characteristic programming package'. In Appendix 5 .A. ,
the analysis of robot stability is extended to cover the case when,
apart from the local servo systems and nominal control, the global dy-
namic control is introduced. However, as in the case of Appendix 4.A.
this appendi~ is not necessary for the understanding of the rest of the
book. A substantial part of this chapter is devoted to the approach via
the "computed. torque method" as the one of the most popular approaches
to robot control. Woe clearly indicate the e~istence of different vari-
ants of this approach, as well as some of its shortcomings. As we have
already mentioned, this chapter presents the possibility of Cartesian
robot control. The centralized quadratic regulator is described in Ap-
pendix 5.B. (again without repeating the known theoretical statements
which can be found in the literature) as an example of the possible
application of the control systems theory on robots. Besides, we indi-
cate all the shortcomings of this approach which are the reasons why
such control has not been applied in practice.
Chapter- 7 dealS with the most delicate tasks involving the constrained
g'ripper motion, and especially in the assembly processes. Following the
p,t:ip,ciple "from the simpler tc:> the !!lore complex", which has been imple-
mented. in the whole book, we first describe various "contact situati-
ons" occurring in the characteristic "peg-in-hole" task. Then, we deal
with, the conceptual scheme of the control synthesis for such a task,
and finally, we treat the problem of the synthesis of hybrid position/
(for'ce coptrol in the tasks involving the constrained gripper motion.
;rp' a sepaX'ate <I.,P,Pen,di;X; at the end of the book we give a short version
of the prog'ramme package for the synthesis of robot control. We have
chosen SOme characteristic ,P;t'ogramrnes which can be used. both for the
syp.thesis of local seX'vo systems and analysis of robot's behaviour for
di:i;:i;eX'ep.,t cont,t:o); :Laws. :Because of the limited space, we included only
XI
the analys~s of the linea~ize~ fflodel. It is o~r opinion that these pro-
graIl\llles, tho~gh being I?resente~ in a re~~ce~ fo~, mak.e an independent
package which can serve in the ed~cational practice. The main purpose
of this appendix is to enable the rea~er to master' the computer appro-
ach to the robot oontrol sYnthesis highly important f(!)r the education
of both the future robot designers and robot userS. Moreover, we hope
these programmes might inspire the reader to develop his own programmes
which could. yield the synthesis of SOffle other control laws, as well as
the adaptation of these programmes to the robot types not included in
this package.
The majority of the sections end with a set of numerical problems. The-
se probleffls are especially important for the use of this textbook. Our
inte!1tio!1, was to stifflulate the reader to use actively the results pre-
:;;e!1ted in the preceeding :;;ection. and thus increase his knowledge thro-
ugll an, independ,ent act;i,vity. l!'or this purpose we composed a number of
exerc;i,ses of :;;everal type:;; which can be conditionally divided into
tllree group:;;:
c) The problems of the third group (marked with the asterisk) assume
the read.er has a. sound knowled.ge of the related scientific fields.
These problems imply writing the programmes to synthesize or implement
a control. law using a microcomputer. Some problems of this group as-
sume the previous knowledge of systems theory, and their aim is to
encourage the reader to delve more deeply into the literature and
thus prepare himself for independent work. For such a reader, sol-
ving these problems should be compulsory.
we think the thus structured textbook will enable the reader to gain a
sufficient knowledge for his further work on the problems of control of
robotic systems and. for implementation of theoretical approaches into
practice. We want the reader to develop an engineer's approach to the
subject and. to direct him to use computer approach to the synthesis of
robot control, as this approach enables efficient linking of mathema-
tiCal models and the practical requirements to be realized by current
robots. »ow well we have succeeded it remains to be judged on the ba-
sis of the use of this book as a textbook in teaching practice as well
as in the research-and-development units for applied robotics.
Authors eiKpress their thanks to Mr. Dj. Lekovie B.Sc., for his help in
preparing an educational version of the software for the synthesis of
control of manipulation robots. Also, they are indebted to Miss. V.
¢osie for her careful and excelent typing of the whole text. Finally,
authors extend. their thanks to Prof. L. Bjelica for his high profes-
sional contribution to the book translation into English.
Chapter!
Concepts of Manipulation Robot Control ................................. .
1 . 1. Introduction .••.........................•..•..........•
References 26
Chapter 2
Kinematic Control Level 27
2.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Exercises .....•.................................•.••... 38
Exercises •.•................................•..••.•... 44
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . . 50
References 50
Chapter 3
Synthesis of Servo Systems for Robot Control 52
Exercises . . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Exercises· .•.............•.........•••••....•...•....••. 62
Exercises 69
Exercises . . . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . 75
Exercises . . . . . . . • . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . . . . . . . . . 86
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Exercises . • • • . . . . . . . . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Exercises 115
Exercises 124
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . . 133
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
References 146
Appendix 3.A
Local Optimal Regulator 147
References 151
Chapter 4
Control of Simultaneous Motions of Robot Joints . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Exercises 176
References 202
Appendix 4.A
Stability Analysis of Nonlinear Model of Robot 204
Chapter 5
Synthesis of Robot Dynamic Control . • • • . • • • • • • • . • • . . • . • • • • • • • • • • • . • • . • • 233
5.4. Computed torque method for robot control synthesis •••• 263
Exercises 277
References 279
Appendix S.A
Stability Analysis of Robot with Global Control 281
Appendix S.B
Centralized Optimal Regulator 287
References 294
Chapter 6
Variable Parameters and Concept of Adaptive Robot Control 295
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Exercises . . . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
References 313
Chapter 7
Control of Constrained Motion of Robot 314
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
Exercises . . . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . 351
Exercises . . . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • • . 358
References 360
Appendix
Software Package for Synthesis of Robot Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
1.1 Introduction
The tasks that are nowdays assigned to robots are becoming more varied
and more complex. More and more often robotic units are becoming parts
of flexible technological cells, lines and intelligent technological
systems. In view of these facts, the organization of robot control
should be based upon the principle of control hierarchy.
T YP E V A R I ANT
active systems uniting the human role and the automatic regime is the
system of supervisory aontroZ. On the basis of the information from the
monitor screen about the situation in the workspace the operator sends
(through a control computer) the commands to the robot, e.g. to bring
the gripper (tool) to a certain position. The robot carries out the
operation in automatic regime. When the operation is over, the operator
instructs the robot (by the aid of the computer) to carry out the next
operation, and the procedure is repeated.
The highest control level receives the relevant information from all
the lower levels and" from various sensors controlling the motion of
robot's arms and the state of the workspace. In this way the feedback
loops are established that form the many-fold contures of a complete
control system.
The next, lower level, is the strategia ZeveZ at which the global task
is divided in accordance with the solution generated at the upper le-
vel, into the elementary operations. The notion of an elementary
4
At the strategic level, the degree of splitting the task obtained from
the higher level determines the working algorithm of the strategic le-
vel. The modes of automatic planning at strategic level satisfy certain
criteria of speed, quality and accuracy of execution of the task as a
whole. However, apart from the information from the higher level, the
strategic level uses also the feedbacks to get the information about
all lower levels, as well as of the executive level and the workspace.
At the strategic level are most frequently planned the elementary ac-
tions to be realized by the robot's gripper (e.g. determination of the
position in the workspace the gripper should be brought in order to
pick the object, determination of the trajectory to be followed by the
gripper carrying the object, etc.). The coordinates of the robot's
gripper with respect to the absolute coordinate frame attached to the
robot's base, are termed the externaZ coordinates (a precise definiti-
on will be given in Chapter 2). Therefore, at the strategic level are
planned the trajectories of external coordinates of the robot. However,
the robot's motion is realized via the movements of its particular
5
At the lower control level, tactical level, the external gripper coor-
dinates are mapped to the robot's joints coordinates (the so-called
internal coordinates of the robot), i.e. the required motion is distri-
buted to the particular degrees of freedom (d.o.f) (joints) of the
robot. In other words, at the tactical level is determined the motion
of each manipulator d.o.f. in such a way that their overall motion
realizes all the elementary operations defined at the strategic level.
Like the higher levels, the tactical level too makes use of not only
the signals supplied by the higher levels, but also all the necessary
feedback information of the lower (executive) level, concerning the
executive mechanisms and the workspace.
Since the functions of the highest and strategic level are extremely
complex, they often cannot be realized in the course of robots motion
and task execution (on-line), but should be carried out before the
7
r--
off-line regime
Analysis of situation (environment)
Defining the task and choice of the
solution
L J
I Tactical control level:
Transforming the external into ......- - - - - - - ,
l
I I
the internal coordinates
Robotic language
Trajectories
of joints
Executive level:
servo systems ensuring the
realization of desired
trajectories
signals
Robot I S state
With the adaptive robots, the strategic level receives the task from
the operator in the robotic language, as shown in Fig. 1.2., and the
robot controller plans automatically the gripper's trajectories. For
the first-generation robots, the operator has to prescribe the trajec-
tories, i.e. positions of the gripper in a direct way and determine the
trajectories (for avoiding the obstacles, picking up and transferring
the object) through the appropriate programming language, or through a
teaching box (see Sect. 1.5).
Adaptive robots (second generation robots) are such robots that can, to
a higher or less degree, orient themselves independently in the envi-
ronment which is not fully determined, and to which they can adapt.
They are equiped with sensors reacting to the situation and with an
information data processing system aimed at generating adaptive data
signals, i.e. flexible changes in the manipulator motion programme ac-
cording to the real situation. In their modern versions, compact micro-
processor systems are widely used. Adaptive industrial robots are ne-
eded in all cases when it is difficult to ensure a strictly defined si-
tuation, when avoiding obstacles, working with parts on conveyers in
assembly operations, in arc welding, painting, applying protective la-
yers, and other operations.
Transducers (sensors) are used with the robots of second and third ge-
neration. With the second generation robots, the force transducers,
tactile, proximity (ultrasonic) and similar sensors can be used. The
third generation robots are characterized by the presence of a complex
of sensory devices, including technical vision, which, together with
the advanced microcomputer data processing, forms an artificial intel-
lect itself, i.e. the behaviour of the robot is more self-contained,
and to a certain degree corresponds to the rational human behaviour in
the process of working activity. Besides, the complex of sensory devi-
ces may include the equipment for controlling quality of products and
properties of the environment, in case this is demanded by the automa-
tic regulation of the working regime.
1. Pressure casting
For economy reasons, one industrial robot and one cooling equipment
usually serve two horizontal pressure casting machines. The Japanese
robotic industry has produced several types of simple industrial robots
that are directly installed onto the casting machines. Of the several
millions of working hours of the robotized machines employed in pres-
sure casting in the U.S.A., less than 3% has been lost because of the
mis-functioning of the robots.
12
2. Spot welding
2. Arc welding
4. Forging
The present-day use .of industrial rebets fer this technelegical epera-
tien is relatively medest. A very interesting example .of such applica-
tien is the preductien .of punched links chains. Te everceme the limi-
tatiens .of rebets applicatien fer ferging eperatiens caused by diffi-
culties in centrelling quality .of fergings, the attempts have been
recently made te intreduce suitable sensery devices inte the rebet
centrel system. Presently, use is widely made .of pheteelectric and
thermal sensers whese task is te ensure the centinuity .of the techne-
legical precess itself, and increase its reliability and safety. These
sensers are mest .often in-built in the apprepriate place .of the rebet
gripper.
5. Spray painting
The preblem .of spraying a paint frem its selutien te ferm a layer which
will dry fast and thus prevent the .occurrence .of a preductien bettle-
-neck due te the shertage .of man-pewer, is especially present in car
industry. When the parts .of mere cemplicated shape are invelved, asfer
example, the car bedies .of different type (processed on the same pre-
ductien line), the use .of autematic cabins .or tunnels weuld be very
cemplicated and expensive. Hence, the use .of industrial rebets with
their high capacity .of adapting themselves te different kind .of pre-
ducts, is the legical selutien te the preblem. The werld leader in this
field is the Nervegian cempany TRALLFA Niles Underhaug; the number .of
specialized rebetic units installed by this cempany is higher than in
any ether car cempany. Since spray painting is an attractive area .of the
applied industrial rebetics, a number .of cempanies, apart frem TRALLFA,
is engaged in develeping rebets fer this purpese. In additien, the le-
ading car facteries and ether similar cempanies are invelved in the
prejects .of develeping the fully-autemated and rebetized lines fer
spray painting.
This is .one .of the mest impertant applicatien fields .of industrial re-
bets. They are mainly empleyed with these universal teel machines that
are used fer preductien .of larger series, but which are net yet large
eneugh te justify the investment inte buying fully autemated machines
fer preducing the same parts. Hewever, the applicatien .of industrial
rebets in manufacturing .of smaller series preducts can be justified by
14
There are a number of factors which should be considered when the robot
control synthesis is concerned, viz. the nature of tasks to be carried
out, structural and dynamic characteristics of the robot, the equipment
available for control realization (sensors and microcomputers), etc.
In the preceding sections we presented a variety of tasks of diffe-
rent complexity that can be carried out by robots. The robot design,
the choice of its geometrical characteristics (number and type of
joints, mutual position of joint axes, link length, etc), and the cho-
ice of appropriate actuators are all determined by the class of desig-
nated task. The class of the task determines to a great measure the
complexity of the robot control system, i.e. the choice and solutionof
the control. For example, if the robot is to perform simple operations
(such as the transfer of an object from one place to another in an ob-
stacle-free work-space and with the object position prescribed in ad-
vance) a simple robotic structure may be adopted, and the control sys-
tem reduced to the executive level only. Thus, the desired robot posi-
tions can be given directly to the internal robot's angles, i.e. the
positions to be attained by the particular robot jOints in order to
bring the robot to the desired position are prescribed in a direct way.
However, in the case of more complex tasks (e.g. the transfer of work-
-pieces in the work-space with obstacles, etc) the robot control should
be hierarchical, as it has been described above.
On the other hand, the chosen robotic structure and its dynamic cha-
racteristics determine to a great extent the complexity of laws of the
robot control. In the chapters to follow we shall see that in case when
the realization of a precise positioning of a robot and/or tracking of
the desired gripper trajectories in the work-space is concerned, it is
necessary for some robotic structures to take into account the dyna-
mics of the manipulation robot, which substantially complicates the
control system of the robot.
~----~
Y-------
0000
11111111
~----~~
0000
CONTROL
SYSTEM OF
ROBOT
MANIPULATOR
The communication between the robot control unit and the user is reali-
zed either through a terminal or a robot teching box. In communicating
through a terminal the operator uses various high-level languages to
programme the task the robot is to carry out (see Sect. 1.2) . An easier
way of instructing the robot is by using a teaching box. This unit
enables an easy programming of simple tasks, and by combining them
(using a robotic language) it is possible to handle more complex tasks.
The teaching box usually has a certain number of keys for giving the
robot proper instructions, e.g. to move the gripper to the desired di-
rection, to move particular robot jOints, etc. Often, the task assigne-
ment can be realized by means of the so-called "pilot-robot" which has
the same kinematic structure as the robot itself and is supplied with
the sensors for measuring the jOint coordinates, but having no actua-
tors. The operator drives the pilot along the certain paths that should
be followed by the robot when executing the given task; the control
system read out the sensors data about joints positions and memorizes
them. When the pilot-robot motion is recorded, the robot can reproduce
the given motion on the basis of the data stored in the memory.
The control system receives the information from the sensors in the
work space and they are used in planning the robot trajectories at the
strategic control level. If the sensor information are such that no
substantial treatment is needed, they are introduced directly to the
microcomputer of the robot control unit. On the other hand, if the
sensors information needs further processing, this is done, as mentio-
ned above, by means of separate computers. Often, the robot control
unit has to follow the sensors information during the robot motion and
on the basis of such information "change" both the motion and operati-
on under execution (see Fig. 1.2).
19
Hence, an advanced robot control system should ensure all the above
communications and, on the basis of the assignement received from the
operator (through the programming language, teaching box, pilot) or
from the higher control level (i.e. central computer), as well as on
the basis of the sensory system information, plan the actions to be
carried out by the robot. As we have explained above, the motion of the
robot gripper is usually planned at the strategic level, i.e. the tra-
jectories to be followed by the gripper are determined at this level
and then transmitted to the tactical level.
When the desired positions and veloci ties are determined, they are realized
at the executive level. The executive control level should permanently
generate the signals to the inputs of the actuators whose task is to
drive the robot joints into the desired positions, i.e. to effectuate
the joints to move with desired velocities and accelerations. The sig-
nals at the executive level are generated on the basis of both the tra-
jectories received from the tactical level and the information obtained
from the inner sensors (i.e. the robot's sensors supplying the infor-
motion about the actual positions of joints, their velocities and ac-
celerations) .
higher control levels and with the analogue servo systems with actua-
tors to move the robot joints. Every 15-30 [ms] the tactical level in
the microcomputer calculates all the necessary positions and velociti-
es of robot jOints, and, by a D/A converter sends them to the analogu-
es control device for realization (Fig. 1.6). The analogue servo sys-
tems realize the prescribed positions (trajectories) of joints on the
basis of the information from the robot sensors. This means that,
starting from the prescribed trajectories (signals from the D/A con-
verters) and signals from the sensors, the analogue controller gene-
rates the appropriate signals for the actuators at the robot jOints.
However, because of the existence of strong dynamic interactions bet-
ween the individual d.o.f., mentioned above, the control law at the
executive level has to be very complex for certain robot types and the
tasks imposing rigorous requirements with respect to the accuracy and
speed of their realization. The analogue technology is not suitable
for implementation of complex control laws. In the case the robot con-
trol system is realized by the aid of simple servo systems which inde-
pendently control the individual jOint actuators (see Chapters 3 and 4)
these laws are realizable by analogue technique. However, if the con-
trol has to include the compensation of complex dynamic interactions,
occurring between the motion of particular jOints, the realization of
an analogue control device is much less suitable if compared to the
implementation of microprocessors. On the other hand, the digital
technique has substantial advantages as for the possibility of alte-
ring and adjusting the control laws, as well as from the viewpoint of
maintenance, reliability, and robustness under variable external con-
ditions [4).
ANALOGUE
NICROCOMPUTER
(STRATEGIC AND SERVO SYSW~S
TACTICAL LEVEL)
(EXECUTIVE LEVEL)
mCROCOMPUTER ACTUATOR
(STRATEGIC,
TACTI CAL AND
EXECUTIVE LEVEL) ACTUATOR
~
22
*) The 8-bit processors are even today used with manipulators for some
simple tasks; the executive level is realized either by the analo-
gue technique or by the aid of a number of such microprocessors in
parallel (see below) .
24
lel, but which can exchange data between each other through a common
memory. Usually, one of the processors is dedicated to the strategic
control level which communicates with the user and the higher control
level (in the host computer). The tactical control level is imple-
mented by second processor, while the third one is dedicated to the
executive control level. Thus, the robot control is realized by three
processors. However, this number of processors is often insufficient.
Hence, more complex control laws have to be realized at the executive
level by means of several processors. Similarly, for the realization
of complex algorithms and treatment of sensory data at the strategic
control level, several processor should also be employed. The use of
a large number of processors in parallel may substantially complicate
the realization of the control unit and, on the other hand, affect the
reliability of the work of the whole system. Therefore, the present-
-day 16-bit processors (together with numerical co-processors) are not
yet capable of implementing some more complex algorithms at the stra-
tegic control level; most often one ought to be satisfied with some
simpler solutions that enable performing certain specific tasks. Fur-
ther advances in microprocessor technique and the enhancement of cal-
culation speed will bring the progress in general problem solving at
the strategic level.
On the other hand, the control law chosen at the executive level should
be as simple as possible (requiring the smallest number of operations),
but which can satisfy the desired requirements, in order to avoid the
application of a large number of processors in parallel. However, im-
plementation of many of the complex control laws requiring the calcu-
lation of robot's dynamic forces, demands application of several 16-
bit processors in parallel. Such a realization is rather complicated,
so that such control laws are not used with the majority of commerci-
all available robots. Therefore, one of the important criteria in cho-
osing the robots control laws, imposed by the control realization, is
the requirement for the lowest possible number of numerical operations
to be carried out in calculating control signals during the sampling
period.
on the complexity of the algorithm for the control calculation and the
amount of data to be stored. It should be pointed out that certain
control laws may require a large memory capacity for storing the data
calculated (off-line) in advance and which are used during the on-line
robot control (see Chapter 4). Those robots which should perform com-
plex motion for a prolonged time demand the storing of a large amount
of data about the coordinates that are to be realized. The application
of these robots is characterized by the use of peripheral magnetic me-
mories, such as floppy and hard disc. The function of these peripheral
memories is to store (either in the appropriate robotic language, or
in the form of a set of coordinates which the robot has to realize du-
ring its motion) the programmes for various tasks to be assigned to
the robot for execution when needed. Thus, various tasks can be pro-
gran~ed in advance, the programmes stored in the peripheral memory
units, and used afterwards in the course of realization of the indus-
trial process.
References
[4] Cadzow A.J., Martens H.R., Discrete-Time and Computer Control Sys-
tems, Prentice-Hall, Englewood Cliffs, New Jersey, 1970.
[5] Vukobratovic M., Stokic D., Kircanski N., Non-Adaptive and Adapti-
ve Control of Manipulation Robots, Scientific Fundamentals of Ro-
botics 5, Springer-Verlag, 1985.
[7] Albus J.S., McCain H.G., Lumia R., NASA/NBS Standard Reference Mo-
del for Telerobot Control System Architecture (NASREM), NBS Tech-
nical Note 1235, 1987.
2.1 Introduction
As pointed out in Section 1.2, the tasks for which robots are applied
in industry and other fields are of very diverse complexity. The more
complex the task a robot has to perform and the more strict the requi-
rements for its performing, the more complex should be the control sy-
stem of the robot. The complexity of the robot control also depends,
as it will be shown in Chapter 4, on the robot's mechanical structure,
i.e. on the extent and mode the motion of one joint (mechanical degree
of freedom) of the robot influences the other joint. Because of that,
different "types" of control systems appear in practice, which in dif-
ferent ways solve the problems at both tactical and executive level
and enable accomplishment of tasks of different class. As will be shown
below, the "types" of control are most often related to different clas-
ses of tasks in robotics, which, on the other hand, have different re-
quirements toward the executive control level. This chapter deals with
the problems concerning the tactical control level, while the subject
of the coming chapters will be the synthesis of control at the execu-
tive level.
The most elementary task that appears in robot control is to bring the
robot to the desired position of the workspace. If we consider the
tasks encountered in robotics (Section 1.4) we realize that one of the
simplest tasks is the transfer of an object from one position to ano-
ther (Figure 2.1). What is needed here is to bring first the robot
from the initial position (A) to the workpiece, at such a distance
from where the gripper can take hold of it (B). To execute the task,
the gripper has to be oriented in a proper way as to catch the work-
piece. The position of the manipulator is, therefore, defined by the
desired position and orientation of the gripper in the workspace and
these are determined by the position and orientation of the workpiece
28
itself. The next step is to grip the workpiece *). After that, the work-
piece should be transferred to a new position. This new desired posi-
tion of the workpiece determines the new position of the gripper, and
thus, requires a new position of the manipulator (C). If the work spa-
ce is not containing obstacles, and if there are no limitations upon
the mode of transferring the workpiece (e.g. if the orientation of the
workpiece is not important, in contrast to the case when a vessel con-
taining liquid is to be transferred, etc), the manipulator can move
from B to C in an arbitrary way. When the workpiece is brought to po-
sition C, the gripper opens, and the workpiece (having acquired the
desired position in the workspace) is released. The robot is then po-
sitioned again at the initial position A, or it goes directly to posi-
tion B.
We have described this simple task to show that the only problem of
practical importance in its execution is the accurate positioning of
the robot and the workpiece which it is carring, 1. e. the brin<;Jin<;J of the
robot gripper to a desired position and acquiring the adequite orien-
tation in the workspace. Such robot positioning is involved in many
tasks, described in Section 1.4, either as the only task, or as a sub-
task in a complex assignement. For example, spot welding requires a
precise robot positioning in regard the positions needed to carry out
the operation. In parts assemblying, the problem of accurate position-
ing arises at the state of bringing the workpiece to the site of parts
mateing, though the operation of assemblying is more complicated
*) In a general case, the gripping phase can be complex too (in the
case the shape of the workpiece is not defined in advance), but
these problems are not going to be dealt with here.
29
(as it will be shown in Chapter 7). Thus, all robots have to ensure
the possibility of versatile positioning, and they differ with respect
to the mode the positioning is programmed and executed, and the acou-
racy the desired positioning is accomplished*). It should be noticed
that mechanical arms with open feedback have also the possibility of
positioning but their capability of reprogramming the desired positi-
ons and assigning new positions is very limited, if compared to robots
(as it was explained in Section 1.3).
In the first book of this textbook series [1] we have explained some
basic concepts concerning the kinematics and dynamics of robots, such
as mechanical configuration of the manipulator, link, kinematic pair,
kinematic chain, etc. Internal robot coordinates are defined by the
scalar values describing relative position of the one link with res-
pect to another link of the same kinematic pair. The internal coordi-
nate for a revolute joint is the deflection angle at the joint, where-
as, for a translational kinematic pair, it is the linear displacement
along the joint axis. In Fig. 2.2. the internal coordinates are deno-
ted by qi, and the vector of internal coordinates of a robot having n
simple joints (degrees of freedom) is q = (q1, q2, ••. ,qn)T. (The defi-
nitions of a revolute and a linear jOint are given in [1]).
z
z" Z=ZI
./::r
ylll
q'=y"
G
x
y
x
Fig. 2.2. Cartesian coordinates of a manipulator gripper
The yaw angle ~ corresponds to the rotation about axis z of the fixed
coordinate frame, the peatch angle e corresponds to the rotation about
the newly formed axis y (after the rotation for angle ~), whereas the
roll angle corresponds to the rotation about the new axis x. Thus, the
external coordinates describe the gripper position with respect to the
fixed coordinate frame.
However, because the executive level (servo systems) requires that de-
sired position is assigned in terms of internal coordinates, it is ne-
cessary to ensure conversion of the external coordinates into the cor-
responding internal coordinates. As we explained in Chapter 1, this
problem is solved at the tactical control level, whose task is to con-
vert the given values of Cartesian coordinates SO into the correspon-
·
d lng va I f0 "]Oln t coor d'lna t es q 0 = (01
ues q , q 02 , ... ,q on) T .
s = f(q) (2.2.1)
(2.2.2)
c) m<n, there are more solutions q satisfying the given s; this is the
case of redundant manipulators (for details see ref. [3]).
*)
The problem of singular pOints will be treated briefly in Section
2.2.2; a detailed consideration of the problem can be found in [3].
35
Thus, it has been shown, that for robotic structures having three d.o.f.,
two intersecting and two parallel joint axes (Fig. 2.3) is possible to
obtain an analytic solution to the inverse kinematic problem, i.e. to
determine explicitly the joint angles qi as a function of external co-
ordinates. However, this is not always possible, even for the robots
with three d.o.f. In [5], it was shown that solving the inverse prob-
lem for robots having three d.o.f. can be, in a general case, reduced
to finding the zeros of a polynom of the fourth power.
Fig. 2.3. A robot having three jOints with two intersecting and
two parallel axes (the robot for which is possible to
solve the inverse problem)
*) It should be noticed that this holds for robots with n=6 d.o.f.,
so-called non-redundant robots.
36
three axes intersect at one point (Fig. 2.4), which in other words,
means the gripper consists of one link only. In that case a simple
calculation enables the position of the tip of the minimal configura-
tion to Pe determined (on the basis of the given position of the grip-
per tip and the given orientation of the terminal link - gripper). Ha-
ving the position of minimal configuration determined, it is possible
to find an analytic solution to the inverse kinematic problem for the
minimal configuration and thus, determine the internal coordinates q1,
q2, q3. Then, for the known values q1, q2, q3, the orientation of the
terminal link of the minimal configuration is determined. This enables
the determination of internal coordinates q4, q5 and q6 of the spheri-
cal gripper joint that satisfy the required gripper orientation.
and Zc are the coordinates of the gripper gravity centre, and 1> is the
Euler angle shown in Fig. 2.5), is given as
x
C
(2~+2~+q3)sin q 1 , 003
yc = (2 3 +2 4 +q )cos
q1
(2.2.3)
2 0 4
Z q + 22 , 1> q
c
1
q
Q
where 2~ are the lengths of robot links (Fig. 2.5). The inverse func-
~
q1 2 Z _2 0
arctg(xc/Yc) , q
c 2
(2.2.4)
q
3 fx2:"7 0
x c +Yc- 2 4- 2 3'
0
q
4
1>
E x ere 1 ses
2.1. For the "spherical" manipulator having 3 d.o.f., presented in
Fig. 2.6., determine the relation between the internal and ex-
ternal coordinates and the inverse kinematic model.
(2.2.5)
a) m=n, in that case the Jacobian matrix is quadratic, and its inverse
matrix can be determined:
-1 •
q J (q) s (2.2.6)
q (2.2.7)
t+lIt
qO(t+lIt) = qO(t) + f qO(T)dT (2.2.8)
t
(2.2.9)
All that has been said above, reffers to the manipulation tasks requi-
ring only the position control, i.e. bringing the robot to various po-
sitions in the workspace. Even nowdays, such tasks are most common in
industry. However, a number of tasks appear in practice for which accu-
rate robot positioning is not sufficient, but it is necessary to ensu-
re that the robot moving from one to another position in the workspace,
follows the more or less precisely defined paths. For example, in many
manipulation tasks in the industrial practice, the robot moves in a
workspace which is not empty, but contains different obstacles; in
such a workspace the robot cannot move freely (i.e. along an arbitrary
trajectory): hence, its trajectory should be defined in such a way the
robot avoids collisions with the obstacles. In addition, in some tasks,
it is necessary to realize the robot's tip moving along a particular
path: such a task appears in paint spraying, where the robot has to
spray paint uniformly over a particular surface. In some cases, a re-
quirement may arise for a precise maintaining of the robot tip veloci-
ty along a given trajectory. A typical task of this kind is arc wel-
ding, where the robot tip should move along a defined seam at a stric-
tly defined speed. In a great number of tasks, it is not required an
explicit realization of a given velocity. Instead, a fixed motion time
43
It can be seen that in the case of velocity control, the problem sol-
ving is generally simpler than in the position control: the Jacobian
can always be determined and its inversion carried out if n=m (except
at singular points). However, from the point of view of realization,
a number of problems may arise. In a general case, a Jacobian is a
complex function of all internal coordinates; the inversion of a Jaco-
bian is not a simple task because it requires a relatively large num-
ber of mathematical operations (most often the matrix is of dimension
6 x 6, so that its inversion is a numerically complex problem); for this
reason a powerful microcomputer (from the point of view of a speed of
performing numerical operations) is needed in order to achieve a suf-
ficiently fast calculation of velocities qO; besides, the problem of
singular pOints and the problem of redundancy should be additionally
solved. Similar conclusions hold also for numerical determination of
internal coordinates by inversion of the appropriate Jacobian.
Example 2.2.2. For the cylindrical manipulator shown in Fig. 2.5. the
Jacobian is obtained by differentiating the right-hand sides of equa-
tions (2.2.3), that is
44
003 1 1
(Jl 3 +Jl 4 +q )cosq 0 sinq 0
003 . 1 1
-(Jl 3 +Jl 4 +q )slnq 0 cosq 0
J (2.2.12)
0 0 0
0 0 0
EX ere 1 s e s
2.3. For the robot in Fig. 2.5. determine (in a analytic form) the in-
verse of (2.2.12), and check if this robot has singular points.
2.5. For the manipulator in Fig. 2.6, determine the Jacobian and in-
verse Jacobian. Are there singular pOints?
2.6. Do the same, as in the previous exercise for the robot in Fig.
2.7.
achieve desired motion of the gripper. This problem has been dealt
with in detail in r3j. To facilitate understanding of the further con-
sideration of control at the executive level that will be presented in
the chapters to come, we shall discuss only some elementary notions of
trajectory synthesis.
city profile and let the time needed for robot passing from point A to
point B be T. In that case, the equations describing the change of ex-
ternal coordinates (the Cartesian coordinates of the gripper tip) are:
(2.3.1 )
for T2:.t>T/2
and the analogous for the other two coordinates, Yc and zc.
for
(2.3.2)
for
t o T t
B A
4(si- s i)
t for O,.:t":T/2
{
2
T
·0
si (2.3.3)
4(s~-s~)
]. ].
(T-t) for T/2<t":T
2
T
000 0 Too 0 0 0 0 T
for i = 1,2, ••• ,6, s = (s1' s2,···,s6) = (xc' yc' zc' e ,1jJ , cfJ ) ,
where s~ denotes the coordinate corresponding to position A and s~cor
responds to position B. Similarly, the accelerations are:
{ 4(,,-,,'
B A
2
for O,.:t":T/2
T
.. 0
s.]. (2.3.4)
B A
-4 (si-si)
for T/2<t":T
2
T
Therefore, the control system, in this case, generates easily the tra-
jectories, as well as velocities and accelerations, in terms of exter-
nal coordinates. The trajectories thus generated are converted at the
tactical level into the trajectories of robot joints. This conversion
can be accomplished in one of the following ways:
oJ ·2
Jq + oq q (2.3.5)
(2.3.6)
It can be seen that in this most elementary case, the trajectory gene-
ration is simple. However, if some more complex paths are involved,
the problem becomes much more complex. Often, the operator, or the
higher control levels, generate a set of points in space, through which
the robot gripper should pass (without stopping), so that the gripper,
moving from one given point to another, follows a straight line, as
above, or a regular geometric figure*). In this case the problem of
trajectories generation is much more complex, anditis especially com-
plex if the motion time is not given, but it should be minimized [6].
The problem of minimization of the time of motion along a given path
and the problem of optimal distribution of the robot tip veloci ty (from
the point of view of time or energy), may be dealt with on the basis
of a complete dynamic model of the robot; the problem is extremly com-
plex, and the "optimal" solutions are difficult to realize in practice
[7].
Here, we are not goint to consider the problems concerning the synthe-
sis of robot trajectories, because they have been dealt with in detail
in [3]. For a better understanding of the further text it is essential
to bear in mind that the tactical level generates either the jOint po-
sitions qOi to be realized, or the joint velocities to be realized, or
the joint trajectories qOi(t) with corresponding velocities qOi(t) and
accelerations qOi(t), and the executive level should ensure the trac-
king of these trajectories.
[m] Zc e [rad]
o. 6 b---::"---::::::::::=
0,3
0.4
0.2 0,2
q 1 ,q4 [radl
0.3 0.3
0.2
0.2
0.1
O~~~ ____ ~ ______ 0.1
-0.1
-0.2
-0.3 -0.1
E x ere 1 5 e 5
2.9. Write the functions of the change of the manipulator gripper co-
ordinates in time for the case the manipulator, while moving from
pOint sA to point sB' follows the trapezoidal velocity profile
(Fig. 2.9), for the time T, and acceleration (i.e. deceleration)
time is 0.2 T.
2.10. Repeat the same as in Example 2.3. for the robot in Fig. 2.5, but
assuming a trapezoidal velocity profile (as in Exercise 2.9), in-
stead of the triangular one.
2.11. Write the functions of the change of the manipulator gripper co-
ordinates as a function of time for the gripper moving from the
A A A T B B B T
point sA = (xc' Yc' zc) to sB = (xc' Yc' zc) and followsing a
circle line whose centre is at the point So = (x o , yO, zO). Assu-
me a triangular velocity profile and a motion time T.
2.12.* Write a programme for generating the joint trajectories for the
manipulator shown in Fig. 2.7. such that the robot tip moving
from one point to another tracks a straight line and a triangular
velocity profile for defined time T. Use relation (2.2.6) and the
programme from Exercise 2.7.
2.13.* Repeat the task in Exercise 2.12 using relation (2.3.6) instead
of (2.2.6), i.e. calculate accelerations q directly on the basis
of s. Compare the results. Which of the two variants of trajecto-
ry generation is more suitable?
References
[5] Pieper D.L., Roth B., "The Kinematics of Manipulators under Com-
puter Control", Proc. II Intern. Congress on Theory of Machines
and Mechanisms, Vol. 2, Zakopane, 1969.
[6] Kahn M.E., Roth B., "The Near Minimum Time Control of Open Loop
Articulated Kinematic Chains", Trans. of the ASME, Journal of
Dyn. Systems, Measurement and Control, Sept., 164-172, 1971.
3.1 Introduction
**)
As it is explained in [1), the complex joints which have more than
one degree of freedom can be considered as a set of several simple
jOints (the so-called pairs of the fifth class) with one degree of
freedom each. Thus, in the text to follow we shall assume that all
the jOints of the mechanism are simple.
54
n
I (3.2.1)
j =1
jH
If we write down the moment equations (3.2.1) for all n joints of the
mechanism we obtain the complete model of dynamics of whole robotic
mechanism. The model of dynamics of the mechanism can be written in
the matrix form as:
where P=(P 1 , P 2 , ... ,PdT represents the nx1 vector of driving torques
(forces), H (q) = [H .. (q) 1 is nxn inertia matrix which is the function
of the vector of c~;rdinates of the mechanism q = (q1, q2, ... ,qn)T,
55
H(q) o
h(q, q) (3.2.3)
It can be seen that there exist inertial and centrifugal coupling bet-
ween the first and the second joint of this robot, while the third
joint is not dynamically coupled to the first two jOints.
->- -7
Note: Vectors r ii and r i +, ,i from the i-th
and the (i+1)-st joint to the centre
of mass of the i-th link are defi-
ned by:
->-
r 11 *
(£1 ' 0, 0) T
I
~
qL
I
Y
-7
r 21 ."
((£'-£1)' 0, O)T
->- * 0, £Z)T
(£3'
r33 3
Fig. 3.2. Robot with three d.o.f. (two rotational and one linear joint)
57
E x ere 1 s e s
3.1. Write the mathematical model of the dynamics of the robot in Fig.
2.5. Are there interconnections between the motions of the jOints
of this particular robot (see [1])?
3.2. Repeat the Exercise 3.1. for the robot in Fig. 2.6.
3.3. Write the dynamic model for the two-joint robot presented in Fig.
3.3. What are interconnections between the jOints?
3.5.* Write the programme, in some high progran~ing language, for com-
putation of matrix H(q) and vector h(q, q) if values of vectors q
and q are given (q and q are input variables for the programme,
and Hand h are output variables) for the robot in Fig. 3.2. Re-
peat this for the robots in Figs. 2.5, 2.6. and 3.3. Try to mini-
mize the number of additions and multiplications in each program-
me.
3.6.* Estimate the minimal sampling period (i.e. the time period requi-
red) for computation of matrix H and vector h (for given q and q)
if we implement programme written in Exercise 3.5. at:
Assume that the processor time is consumed just for additions and
multiplications.
We assume that each joint of the robot is driven by the separate actu-
ator. Majority of the robots at the market today are driven by D.C.
permanent-magnet electro-motors. There are a lot of robots which are
powered by electrohydraulical actuators, A.C. electro-motors and even
electropneumatical actuators*). The mathematical models of these actu-
ators have been considered in detail in [1]. Here, we shall briefly
present just the model of D.C. electro-motors, since in this book we
shall consider just the control of robots driven by D.C. motors. Howe-
ver, the reader can easily apply all considerations to other types of
actuators (see exercises). We shall pay a special attention to direct-
-drive actuators, i.e. electrical actuator without reducer.
Let us assume that the i-th jOint of the robot is driven by permanent mag-
net D.C. electro-motor with reducer. The scheme of such D.C. motor is
given in Fig. 3.4. [1]. The differential equations which describe the
behaviour of such D.C. motor, are:
(3.2.4)
i
u (3.2.5)
i
1 :N V
The model of the D.C. motor can be written in the state space. Let us
adopt the state vector of the actuator model in the following form:
xi= (8 i , e
• i , 1R
. i) T were
h th ex i .1S th en x 1 vector. Th en, we can wr1te
i
.
model of the D.C. motor (3.2.4), (3.2.5) in the state space as:
(3.2.6)
60
o o o o
Fi
o - - - v- -
NiNiJ i
o
- NiNiJ i
v m M v m M
CiN i
o E v o
i
LR
(3.2.7)
In (3.2.7) u i represents the scalar input to the system (i.e. the rotor
circuit voltage). However, we have to take into account the fact that
the input signal (voltage) is constrained by amplitude, i.e. the ampli-
tude of the input must be below some maximal value u i . This nonlineari-
m
ty of the amplitude saturation type we have to introduce in the model
(3.2.6) of D.C. motor, so it becomes:
.i
x = Aixi + biN(u i ) + fiM~ (3.2.8)
l
i i i
-u for u < -u
m m
i i i
N (u i ) u for -u < ui < u (3.2.9)
m m
i i i
u for u > u
m m
N\u i)
EXAMPLE 3.2.2. For the permanent-magnet D.C. motor of the type IG2315-
-P20 the data taken from the data-sheets are given in Table 3.1.
Based on these data we can easily obtain the matrices Ai, b i , fi of the
actuator model acc. to (3.2.7) (for the first two joints of the robot
in Fig. 3.2., data are given in the first two rows of Table 3.1):
[:
-0.201 5~.03 ]
-621.74 -695.65
(3.2.10)
62
ACTUATOR 1 2 3
i
CE [ra~/s ] 0.0459 0.0459 0.0459
i
CM [~] 0.0481 0.0481 0.0481
i
Nm [-] 31. 31. 2616.
E X ere s e s
3.7. Show that if we assume that LR~O, the model of the D.C. permanent-
-magnet electro-motor might be obtained in the form (3.2.8) butas
the second order model n i 2, where the matrices are now given
l l
by:
7 ~
i
0
N i : ri
vMR
, fi =
- Ni~iJi
0
vmM
j
(3.2.11 )
The relation between the model of actuators and the model of the mec-
hanism is by coordinates and by moments (loads). The movement of the
actuator (output shaft of the reducer,if we consider D.C. motors with
reducers) is the movement of the corresponding joint (rotational or
linear displacement of the joint). Thus, the rotation of the actuator
8 i is transformed into the motion of the jOint qi. In the simplest
cape, the movement of the actuator shaft is equal to the movement of
the corresponding joint, i.e.:
(3.2.12)
(3.2.13)
or, (3.2.14)
We can establish relation between the load Mi* upon the actuator (out-
put shaft of D.C. motor (reducer), or, at the piston of hydraulic ac-
tuator) and driving torque Pi which acts around corresponding joint of
64
the mechanism, in the similar way. In the simplest case {which corres-
ponds to the relation between the coordinates (3.2.12», the load mo-
* is equal to the driving torque Pi (force) around
ment upon actuator Mi
the jOint axis:
However, if the relation between the coordinate of the actuator and the
coordinate of the joint is not linear, then the relation between Mi* and
Pi might also be complex. For example, in the case presented in Fig.
3.6, the relation between the load upon the piston of the hydraulic
cylinder and the driving torque which is produced around the joint axis
is given by:
(3. 2 .16)
a.coss i
1
We may assume that the relation between the load moment upon the actu-
ator Mi* and the moment around joint axis Pi is given in the form:
However, for the sake of simplicity we shall consider the case when the
relation between e i and qi is given by (3.2.12) and the relation bet-
ween Mi* and Pi is given by (3.2.15).
The total model of the robotic system can be obtained by combining the
65
(3.2.18)
n
N I n. (3.2.19 )
i=l J.
.i
q (3.2.20)
q Tx (3.2.21 )
The model of the mechanical part of the system (3.2.2) might be expres-
sed by the state vector of the total system in the following way:
x = Ax + BN(u) + FP (3.2.23)
where we have used the relation (3.2.15) and where A is the NxN matrix
given by A=diag(A i ), Band F are the Nxn matrices given by B=diag(b i ),
66
N (u) (3.2.24 )
u = (3.2.25)
In this way we obtain the total model of the robotic system in the
state space as a system of N nonlinear differential equations. This
form of model of the robotic system is called the centralized model
while the model expressed by the models of actuators (3.2.8) and model
of the mechanism dynamics might be called decentralized form of the
model. We shall mostly use the decentralized form of the model of the
robotic system. In this form of model, the robot is described by a set
of n models of actuators. The actuators might be considered as subsys-
tems which are interconnected by the mechanical part of the system (by
rotiOt mechanism). The "scheme" of the model of the robot is presented
in Fig. 3.7.
67
r-------- ..,
I 0.. I
: 0-
X
Fig. 3.7. "Scheme" of the model of the robot: mechanical part of the
system and n actuators (in each joint one actuator); the
vectors T.
.1
are of dimensions 1xn. and they are defined by
1
A 1
Tix .
68
EXAMPLE 3.2.3. The model for the mechanical part of the robot in Fig.
3.2. is given by (3.2.3). The actuators for this robots are D.C. motors,
the model of which are given by (3.2.8) and of the order n.
. . ~
=2 for all three
joints. We assume that the relation between e~ and q~ is given by (3.2.12),
and that the relation between M and P is given by (3.2.15). The model
of the total system can be written in the form (3.2.27), where the
state vector x is given by x = (q1, q1, q2, q2, q3, q3)T, and the input
vector u is given by u = (u 1 , u 2 , u 3 )T, the order of the total system
is N=6, the order of the system input is 3, and the vector a(x) is
given by:
·2
q
a(x) (3.2.28)
·3
q
o o o
o o o
SIx) (3.2.29)
o
o o o
o o
69
where a.i ii
k , b., f. are elements of the corresponding matrices and vec-
J J J
i
tors A ~ [a. k ],i
i i i
b ~ [b.], fi [f j ], H' k are elements of the matrix
J J 2 .1 .2 J
H (and they are functions of q , q , q ) while d 1 , d 2 , DET denote:
E X ere s e s
3.11. Data on parameters of the robot in Fig. 3.2. are given in Table
3.2. The joints of the robot are driven by D.C. motors the values
of parameters of which are given in Table 3.1. Calculate the nu-
merical values of the vector a(x) and matrix B(x) which are given
by (3.2.28), (3.2.29), for the following values of the state vec-
tors: x ~ (0, 0, 0, 0, 0, O)T, x~ (1.57,0.,1.57,0.,0.2, O.)T
and x ~ (1.57, 0.5, 1.57, 0.5, 0.2, a.1)T.
LINK 1 2 3
MASS [kg] 7. - 4.
r xii [m] 0.3 O. O.
3.12. For the robot in Fig. 3.3. write the total model in the form
(3.2.27) assuming that each joint is driven by D.C. motor the
model of which is given by (3.2.8) (adopt the second order mo-
dels of actuators). The link masses are m1 =2. [kg], m2 =1. [kg],
moments of inertia J 1 = 0.02 [kgm 2 ], J 2 = 0.01 [kgm 2 ], the
lengths of links are ~1=O.3 [ml, ~2=0.15 [ml and the centers of
masses are at the middle-points of the links. Data on D.C. mo-
tors are given in the first two rows of the Table 3.1. Calculate
the values of the vector a(x) and the matrix B(X) for this par-
ticular robot and for the following particular values of the sta-
te vector x = (q1, ~1, q2, ~2)T = (0., 0., 0., O.)T and x =
(0.3, 0.3, 0.2, 0.1)T.
3.13. Show that the vector ~(x) and matrix S(X) might be written in
the form:
where IN is the NxN unit matrix. Which of the two forms (this or
(3.2.27)) of matrices is numerically more convenient? (Instruc-
tion: substitute P from (3.2.22) into (3.2.23) and determine x).
3.14. Show that if we adopt that the order of the model of actuator is
n i =3 (for all actuators in robotic system) and if models of ac-
tuators are given by (3.2.7), (3.2.8), then the matrix B is not
function of system state i.e. B(X) B.
- -1 T
a(x) [IN-FZ(G(X)).H.G(x)] [Ax+Fz(G(x)) (G(x)x .x+h)]
A
-1
B(x) = [IN-FZ(G(X)).H.G(x)] B
A -
one from the pOint of view of implementation, and this is the reason
why it is most frequently applied in robot controllers in practice.
We shall consider the i-th jOint of the robot and its corresponding
actuator (see Fig. 3.8). Let us assume that all the other jOints are
locked in some positions, i.e. that they keep constant values of their
angles (or linear displacements) qj* = const., for j*i, so that just
the i-th jOint might be moved. Thus, the actuator in the i-th jOint
moves that jOint and the part of the mechanism which is behind the
i-th jOint in the kinematic chain. The moment of inertia of the moving
part of the mechanism reduced to the axis of the i-th joint (for the
fixed values of the other joints qj*) will be denoted by Hii . This va-
lue is, obviously, fixed since the jOints behind the i-th joint are
locked and H .. does not depend on qi. The mechanism can move just around
11
the i-th joint and the load moment around the axis of the i-th jOint
includes two components only: inertia moment due to rotational or line-
ar acceleration qi and gravity moment of the mechanism around the i-th
. . i * * * 1 * 2* i-1 * i+1 *
]Olnt g. (q , q ). Here q denotes vector q = (q , q , ... , q , q ,
n*l T
.•. ,q ) • Thus, we can write that the moment around the i-th joint is:
(3.3.1)
i+1 *
qi-1 *
The actuator drives the i-th jOint and the load Mi* is acting upon that
actuator. This load is equal to moment Pi which is determined by
73
(3.3.1). Thus, the model of the considered system (if just the i-th
joint is moving and all the other joints are locked) can be easily
obtained by combining model of the actuator driving the mechanism
around the i-th jOint (3.2.8) and the model of the load moment (3.3.1):
·i iii i. i - .. i i * (3.3.2)
x = A x +b N(u )+f (Hiiq +gi(q , q ))
x· i (3.3.3)
x·i (3.3.4)
In this way we obtain the model describing the behaviour of the indi-
vidual actuator in the i-th joint if all the other jOints are locked.
Our task is to synthesize the control law which will control the actu-
ator and the mechanism modelled by (3.3.4). We have to synthesize con-
trol which will ensure that the i-th joint will be driven towards the
desired position qOi imposed by the higher control level, or which
will ensure tracking of desired trajectory qOi(t). First, we shall
consider the case when the control system has to ensure just positio-
ning of the joint, and afterwards the tracking problem will be addres-
sed. First we shall neglect gravity term, and latter on we shall con-
sider its effect upon the control of the actuator. We shall synthesize
the so-called static controlZer first, and afterwards we shall consi-
der dynamic controller (i.e. controller which includes feedback loop
by integral of position error so that the order of the system model
increases - see Section 3.4).
74
EXAMPLE 3.3. Consider the first joint of the robot in Fig. 3.2. Let us
assume that the second and the third joints are locked in positions
q 2* O. and q 3 * O. Then, the moment of the inertia of the mechanism
around the axis of the first joint is given by:
(3.3.5)
There is no gravity moment around the first joint. Thus, the model of
the actuator and the mechanism in this case is given by (3.3.4) where
the matrices Ai and b i are (if we adopt the model of the actuator in
the form (3.2.8) with matrices given by (3.2.7»:
o o o
o o (3.3.6)
zr
1
o
R
-0.00165 o ] ,
0.42 (3.3.7)
-621.74 -695.65
E x ere 1 s e s
3.17. Calculate the elements of the matrices Ai, bi in (3.3.6) for the
first joint of the robot in Fig. 3.2. (Example 3.3) if the second
joint is locked in position q2* = 1.573 [rad] (data on parameters
are given in Tables 3.1. and 3.2). How much have changed the nu-
merical values of the elements of the matrices with respect to
(3.3.7) ?
3.18. Write the expressions for the elements of the matrices Ai and bi
in (3.3.4) for the first joint of the robot in Fig. 3.2, if we
adopt the second order model of the actuator n i =2 and if the
matrices of actuator are given by (3.2.11). Calculate these mat-
rices for data given in Tables 3.1. and 3.2. for the following
two cases: if the second jOint is locked (a) in the position
q2* = 0, and (b) in the position q2* = 1.573 [rad).
3.19. Determine the matrices Ai and hi in (3.3.4) for the second and
the third joints of the robot in Fig. 3.2, if we apply D.C.
electro-motors which models are given by (3.2.8) and (3.2.7).
Compute these matrices for data given in Tables 3.1. and 3.2.
ACTUATOR 1 2 3
V 0.0459 0.0459
CE [ratus) 0.0459
CM [Nm)
T 0.0480 0.0480 0.0480
JM [ kgm 2] 0.00003 0.00003 0.00003
Table3.3. Data on parameters of the actuators for the robot in Fig. 2.5.
76
LINK 1 2 3
Mass [kg] 10.0 7. 4.15
Link length [m] 0.213 0.026 0.036*
Moment of inertia
around the vertical 0.0294 0.055 0.318
axis [kgm 2]
Let us consider the elements of the servo system. For the sake of sim-
plicity we shall first consider their transfer functions in s-domain,
and afterwards we shall consider the state space model of the servo
system. The elements of servo systems are: detector of the error sig-
nal, amplifiers, D.C. electro-motor with its mechanical load (actuator
and the moving part of the robot mechanism), sensor of velocity (e.g.
i 9 i (S)
-Kr.,
r--
(Tim5+1)5
.
-..J
-..J
78
Detectol' of the el'l'ol' signal. At the output of this element the vol-
tage,which is proportional to the error of the servo system output po-
sition, is produced. The error in positioning of servo system is given
as a difference between the actual position of the joint qi and the de-
sired (imposed) position qOi. This element has two inputs: the first
input is the input voltage vi to the servo system which is proportio-
nal to desired position qOi, and the second input is the voltage v~
which is proportional to actual position and which is obtained from the
position sensor placed in the i-th joint axis. Voltage from the posi-
tion sensor (e:g. poten~iome~e:) v~ is proportional to actual position
of the jOint ql, i.e. v~ = K~ql. (For the sake of simplicity we shall
assume that the coefficient of proportionality is the same as for the
input voltage Vi and the desired position qOi). The voltage at the
output of the detector of the error signal is equal to difference bet-
ween these two input voltages:
(3.3.8)
V~(S)
--i-- (3.3.9)
~q (s)
Vi' (s) • I
K~
p (3.3.10)
V~(s)
where Ki'
p
is the gain of the amplifier.
The amplifier in the velocity feedback loop has the following transfer
function:
Vi" (s) . I
K~ (3.3.11)
v
V;(S)
(3.3.12)
(3.3.14)
(3.3.15 )
However, let us remind that we have neglected the gravity moment around
the i-th jOint. This gravity moment acts as an external load around the
output shaft of the reducer and it might be treated as an external dis-
turbance upon the servo system. The transfer function from the external
load moment g. to the servo system output qi is given by (if we remember
1
the equation of the moment equilibrium around the output shaft of the
reducer (3.2.4)):
(3.3.16 )
where
In the case when the electrical time constant of the D.C. motor.T~ is
significantly lower than the electro-mechanical time constant Tl, then
m
we can neglect T~ (which actually means that we adopt the second order
model of the actuator n i =2), the transfer functions (3.3.12) and
(3.3.16) get the following forms:
(3.3.17)
(3.3.18)
(T i S+1)s
m
Vi" (3.3.19 )
i
V3 (s) Kin
(3.3.20)
V
qi(s)
Sensor of position. Various sensors can be used to measure the actual po-
sition of the joint. One of the most usually applied sensor is simple
potentiometer. On its output the potentiometer gives the voltage V~
which is proportional to the joint position (angle or linear displace-
ment) qi. Thus, the transfer function of this element is in the form:
(3.3.21)
Obviously, we might assume that all elements in the servo system are
linear. The total transfer function of the servo system from the input
qOi(s) to its output (joint position) qi(s) can be obtained by simple
combining of the transfer functions of the elements according to their
arrangement in the servo system, as presented in Fig. 3.9. So, in the
case when the third order transfer function of the actuator and the
mechanical part of the robot is adopted (3.3.12), we obtain the trans-
fer functions from the input of the servo qOi(s) to its output qi(s),
and from the load disturbance gi(s) to the servo system output, in the
following forms:
82
(3.3.22)
i
where by Kp we denote the total gain of the position feedback loop (we
shall call this gain position gain), from the joint coordinate - posi-
error 6qi to the input voltage of the actuator vi'
Vi I (s)
(3.3.23)
6qi (s)
while by Ki we denote the total gain of the velocity feedback loop (we
v
shall call this gain velocity gain) from the jOint velocity qi to the
input voltage of the actuator vi"
(3.3.24 )
In the case when we adopt the second order transfer function (3.3.17)
of the actuator and the mechanical part of the robot (i.e. when ni~2) ,
we obtain also the second order transfer functions of the complete
servo:
K~K~+K~K~S+(T!S+1)S
(3.3.25)
_K i
M
In this way we obtain the transfer functions in the s-domain for the
classical servo system with feedback loops by position and by velocity.
EXAMPLE 3.3.1. For the first joint of the robot in Fig. 3.2. the D.C.
electro-motor is applied, the data on which are given in Table 3.1.
The data on mechanical part of the robot are given in Table 3.2. In
Example 3.3. we have calculated the matrices of the model (3.3.6) for
this joint (if the second and the third jOints are locked in positions
q2* O. and q3* 0.). Now, we shall determine the transfer function
in the s-domain for this actuator with the mechanism in which just the
first joint is moving. If we adopt the third order model of the actua-
tor n 1 = 3, then the transfer function in the s-domain is obtained as:
1
~ 185.33
(3.3.26)
u 1 (s) (s2+695.65s+266.17)s
-------------------------------------------- 9i
Fig. 3.10. Global scheme of the microprocessor implementation of the position servo system
COMPUTATION/GENERATION OF
DESIRED POSITION qOi
-------------------------------- -
COMPUTATION OF POSITION 9i
SERVO LOOP
t
Vi '= _Ki(qi_qOi) D/A Vi' qi qi
p f-- I-- D.C. ELECTRO-MOTOR f
CONVERTEF r- + 2-
SCALING OF SIGNALS FROM A/D
TACHO-GENERATOR POTENT OMET R
CONVERTERS (COMPUTATION OF
Vi" Vi'
qi FRDr4 V1) AND SCALI NG Ki' 3 Ki" Ki
'---
OUTPUT FOR D/A CONVERTER v v
°
DIAGNOSTICS AND EXCEPTION Vi
HANDLING A/D 1
I--
CONVERTER
~
Fig. 3.11. Global scheme of the microprocessor implementation of the position servo system
with velocity feedback loop implemented by analogue technology
00
0'1
86
q 1 (s) 0.26642
-1- (3.3.27 )
u (s) (s+0.382)s
1 185.33 Ki
~= P
(3.3.28 )
q01 (s) 2 i i
(s +695.65s+266.17)s+185.33(K v S+K p )
E X ere s e s
3.21. Starting from the model of the actuator and the moving part of
the robot mechanism in the state space (3.3.4) and the corres-
ponding matrices for D.C. electro-motor, show that the transfer
functions in the s-domain for this system are given by (3.3.12)
and (3. 3 . 1 6) .
3.22. Repeat the previous exercise but for the second order model of
the actuator (n i =2), so that the corresponding transfer functions
are given by (3.3.17) and (3.3.18).
3.23. Show that the transfer function of the servo system around the
first joint of the robot in Fig. 3.2. as a function of position
and velocity gain is given by (3.3.28), if the transfer function
of the actuator and the moving part of the robot is given by
(3.3.26). Determine also the transfer function of this servo
from the external load g1(s) to the servo system output (the
jOint angle q1) as a function of position and velocity gains
(for the third order model of the actuator this transfer functi-
on generaly is given by (3.3.22)).
3.24. Repeat the previous exercise but if the second joint of the ro-
bot in Fig. 3.2. is locked in the position q2* = 1.573 [radl.
(Instruction: the matrices Ai and bi have been already determi-
ned in the Exercise 3.17, determine the transfer functions for
the actuator and the moving part of the robot).
87
3.26. Determine the transfer functions of the servos (as functions of the po-
sition and the velocity gains) around the first three jOints of
the robot in Fig. 2.5. if we apply D.C. electro-motors, the data
of which are given in Table 3.3. (the matrices of the actuators
and "loads" models have been already determined in Exercise 3.20).
3.27.* Determine the transfer functions in the s-domain for the hydrau-
lic actuator in the i-th joint of robot and for the moving part
of the mechanism of robot if we aSSUI!le that only the i-th jOint is
moving and all the other joints are locked. Determine also the
transfer functions of the servo around this actuator. (Instruc-
tion: the matrices of the electro-hydraulic actuator model in
the state space have been determined in Exercise 3.9. for two
cases n i =2 and n i =3; the procedure is completely identical as
for D.C. electro-motors). Calculate the transfer functions of the
hydraulic servo system (for the second order model) as functions
of the position and velocity gains, if data on the electro-hy-
draulic actuator are given in Table 3.5. and if this actuator is
applied in the first jOint of the robot in Fig. 3.2. (assume that
e 1 =0.12 q1, where e 1 is obtained in [m],if q1 is in [rad], and
P1=0.12 M1* where P 1 is in [Nm], if M1* is in [N]). Calculate these
transfer functions for two positions in which the second jointof
2* 2*
the robot is locked: for q =0. and for q =1.573 [rad], (the
leakage in hydraulic system is neglected) .
Let us consider the transfer function of the position servo system. For
the sake of simplicity we shall consider the second order transfer
function, i.e. we shall neglect electrical time constant T~ of the ac-
tuator. Let us consider the transfer function (3.3.25) from the servo
system input qOi to the output qi. Let us write this transfer function
in the following form:
(3.3.29)
where s1 and s2 are the roots of the characteristic polynome (i.e. the
roots of the polynome in the denominator of the transfer function
(3.3.25». These roots might be written in the following form:
(3.3.30)
89
where c~ and c~ are constants. In this case the response of the servo
system is oscillatory around the desired position qOi. The response is
presented in Fig. 3.12. If si<1 the servo system is underdamped or
underaritiaaZZy damped. In this case the response is fast, it consists
of a sinusoidal function superimposed over an exponential function.
The output of the servo exponentially approaches desired input positi-
on, but it overshoots the desired angle.
i oi Ci -(Siwi+wi/S~-1)t cie-(SiWi-wi~t-1)t
q -q 3e + 4 (3.3.32)
The response of the system is also presented in Fig. 3.12. In this case
the response of the servo is slower, but it is non oscillatory and
there is no overshoot of the final position.
(3.3.33)
where Ci is constant.
o
90
undercritically damped
The response of the servo is presented in Fig. 3.12. In this case the
response of the servo is fast but non oscillatory, and without over-
shoot of the desired position.
and just the i-th jOint is moving the external load upon the servo is
gravity moment gi. The transfer function (3.3.22), or (3.3.25), shows
the influence of this load upon the servo output (the joint position
qi). Let us consider the steady state regime when the robot jOint
stops, i.e. after the transient process is finished (theoretically it
occurs after infinite time t+ oo , practically, a·fter 3~5 time constants
of the robotic system, i.e. after 3t5 (l/wi~i». Based on tAe trans-
fer function (3.3.25), we can determine the steady state error between
the actual position of the joint qi and the desired set position qOi
if the constant gravity moment is loading the servo. Namely, since the
gravity moment is function only of the position of the i-th joint (the
other joints are locked), when the i-th jOint stops, we might consider
the gravity moment as constant (i.e. as a step external load). Thus,
the steady state error is given by:
(3.3.34)
where by gi(oo) is denoted steady state gravity moment upon the i-th
joint. It can be seen that the steady state error of the servo is in-
versely proportional to position gain K;. It is obvious that the stea-
dy state error represents the accuracy of the servo positioning.
Thus, we want to keep this error as low as possible. This error also
inform us about the robot stiffness. If we apply some external load
upon robot, the robot hand deflects due to finite stiffness of the servo.
This deflection can be also determined by (3.3.34), where the applied
external load (multiplied by the quadratic of the effective lever arm
from the i-th joint to the robot hand) should be substituted for gi(oo).
It is required that the stiffness of the robot be as high as possible.
Obviously, if we want to keep steady state error low we must select
the position gain to be as high as possible. Even more, if we calcu-
late the gravity moment gi(oo) and if we define allowable steady state
error ~qi(oo), i.e. if the allowable tolerance is set (or, if a desired
stiffness of the robot is imposed), then using (3.3.34) we can deter-
mine position gain K; which satisfies the set requirements.
/NiCiKi
m M P
(3.3.35)
(3.3.36)
the oscillations of the servo system output could appear. The servo sy-
stem would oscillate with frequency close to characteristic frequency
wi. If the characteristic frequency of the servo wi is close to the
structural frequency wo ' the resonant oscillations of the robot struc-
ture will appear, i.e. the oscillations of the servo will excite struc-
tural oscillations. It is obvious that such oscillations are not ac-
ceptable. Thus, we must require that the characteristic frequency of
the servo is under the structural frequency woo However, the structu-
ral frequency is difficult to determine theoretically (using some mo-
del). Usually it is determined experimentally. Due to unreliability of
determination of the structural frequency wo ' it is often required that
the characteristic frequency of the servo wi satisfies [5]:
nism, then the servo will not excite the oscillating modes of the ro-
bot, i.e. it will not cause resonant structural oscillations.
(3.3.38)
In this way we have determined the lower (3.3.34) and the upper limit
(3.3.38) upon the servo position gain. We have to select the feedback
gains to meet all the listed requirements. The following procedure in
selection of the feedback gains can be adopted. First, the position
gain K~ is selected according to (3.3.34) to satisfy allowable steady
state error. If the obtained value of position gain satisfy the requi-
rement (3.3.38), then this value of position gain can be accepted.
Otherwise, if the condition (3.3.38) is not satisfied, then we must
compute position gain from (3.3.38) as a maximum allowable value. In
that case the required accuracy around the desired set point will not
be ensured, but we can reduce the steady state error by some other me-
thod (see Section 3.4).
Once the position gain K~ has been selected, we must determine the ve-
locity gain Ki so as to ensure that the damping factor is equal to
v
one, i.e. to ensure that the servo is critically damped. Based on
(3.3.36) we obtain the velocity gain as:
(3.3.39)
In this way we select both position and velocity gains for the servo
controlling the actuator in the i-th jOint of the robot, assuming that
all the other joints are locked. However, the validity of this soluti-
on when all the jointso! the robot are moving simultaneously, will be
discussed latter on.
We have considered the second order transfer function of the servo sy-
stem and we have presented the synthesis of the feedback gains. In the
similar way the synthesis of the feedback gains can be carried on if
the third order transfer function is considered.
94
EXAMPLE 3.3.2. The transfer function of the servo in the first jointof
the robot presented in Fig. 3.2. is given by (3.3.28). The guess value
of the structural resonant frequency for this joint is w~ = 12 [rad/sl.
The feedback gains can be calculated based on (3.3.38) and (3.3.39),
and their values are:
K~ < 135.13
[r~d]
(3.3.40)
K1
v
43.6
[ra~/s]
where in calculating K; we have taken the upper bound for position gain
i.e. K~ = 135.13 [V/radl. In this case the steady state error is zero
since no gravity moment is acting upon the first jOint (rotation around
the vertical z-axis).
EX ere 1 s e s
3.28. Calculate the position and velocity gains for the servo in the
first joint of the robot in Fig. 3.2. if w1 = 12 [rad/sl, using
o
the third order transfer function determined in Exercise 3.23.
(for n i = 3), in such a way to satisfy conditions (3.3.38) and
(3.3.39) .
3.29. Repeat the previous exercise but if the second joint of the ro-
bot is locked in the position q2* = 1.573 [radl and w1 ~ 14
o
[rad/sl. (Instruction: use the transfer function obtained in
Exercise 3.24). How much the feedback gains have changed in res-
pect to the previous case when q2* = o.? In order to prevent the
servo to become underdamped in any position of the robot (i.e.
to ensure that ~i is always equal or greater than one,si ~ 1),
which of these two sets of feedback gains should be selected?
3.30. Repeat the previous two exercises for the same jOint of the robot
in Fig. 3.2, but if we apply as an actuator the D.C. electro-mo-
tor which parameters are given in Table 3.6. Compute (using the
second order transfer functions of the servo) the servo feedback
gains for two different positions of the second joint (q2* = o.
and q2* 1.573 [radl) and determine the relative variation of
95
the feedback gains. Explain why in this case the relative varia-
tion of the feedback gains is less than for the previous D.C.
electro-motor (in Table 3.1)?
CE rlrad/s
V ] 0.62
CM [~] 0.61
J M [kgm 2] O. 035
Nv [-] 190.
Nm [-l 154.
rR [nl 0.3
Fv [ra~7s] 25.13
LR [Hl ",0.01
3.31. For the servos which transfer functions have been determined in
Exercise 3.25, determine the feedback gains if w2 = 50 [rad/s],
3 0
Wo = 50 [rad/s], the allowable steady state error in the third
jOint is Illq3(oo) I = 0.01 [ml. The conditions (3.3.34), (3.3.38)
and (3.3.39) have to be satisfied.
3.32. For the servos which transfer functions have been determined in
Exercise 3.26 (for the robot in Fig. 2.5) calculate the feedback
gains if w1 = 12 [rad/sl, w2 = 50 [rad/s], w3 = 50 [rad/sl and
o 0 0
allowable steady state error in the second joint is Illq2(oo) I =
0.01 [m]. The conditions (3.3.34), (3.3.38) and (3.3.39) have to
be satisfied.
3.33. For the robot in Fig. 3.13. (so-called Stanford manipulator) com-
pute the servo feedback gains if the data on the moments of
inertia of the mechanism Hii , data on D.C. electro-motors and data
on structural resonant frequencies of the links are given in Table
3.7. [5]. The conditions (3.3.38) and (3.3.39) have to be satis-
fied(the steady state errors are not pre-specified).
96
LIN K 1 2 3
rNm]
CMN m lA 3.415 8.61 3.41
Fy [ rad/s
Nm ] 0.043 0.21 0.043
3. 34 ~ Write the programme (in some high programming language) for compu-
tation of servo feedback gains if the input values for the pro-
gramme are: data on actuator parameters (D.C. electro-motor), data
on the moment of inertia of the mechanism Hii , data on structu-
ral frequency w of the mechanism, data on maximal allowable ste-
o .
ady state error ~qL(oo), and data on maximal gravity moment in
the joint. Check by computer the results obtained in the previ-
ous exercise.
3.35.* Calculate the servo feedback gains for the hydraulic servo which
transfer function has been determined in Exercise 3.27. (for two
positions of the second joint q2* = 0., and q2* 1.573 [radl)
and which is applied in the first joint of the robot in Fig. 3.2.
The guess value for the structural frequency is w1 = 12. [rad/sl
2* 1 2*
for q O. and Wo ~ 14. [rad/sl for q = 1.573 0 [radl. How
much have the feedback gains varied for various positions of the
second joint? Compare these variations with the results obtained
in Exercise 3.29.
The state space model of the actuator and the mechanism (if just the
i-th joint is moving) is given by (3.3.4). As we have explained in the
previous sections, the servo system is realized by introducing feed-
back loop with respect to the position error of the robot joint (using
the sensor of position, the detector of the position error signal, and
amplifier) and feedback by velocity (using the sensor of the actual
joint velocity and amplifier). The block diagram of the servo in s-do-
main is given in Fig. 3.9. and it has been explained in Section 3.3.1.
Practically, the servo feedback loops mean that the input voltage
*)
Here, we shall not present various classical methods for servo sys-
tem synthesis (such as for example, Bode's method in the frequency
domain, Niquist method and similar). However, our recommendation is
that the reader should remind of these methods from the literature
[3l.
98
(3.3.41)
Since the position and velocity of the joint are the variables in the
system which are measured by sensors they are the system output va-
riables. The system output is given, in this case, by:
i ·i T
Yi = (q , q ) (3.3.42)
(3.3.43)
case,when the output of the system is given by (3.3.42) while the sta-
i i'i T
te vector is given by x = (e , e) for n i =2, and if we assume that
(3.2.12) holds, then the matrix Ci is the unit matrix Ini' If we adopt
i ·i .i T
the third order model of the system n i =3, x=(e , e , ].R) , then the
matrix Ci is given by:
C.].
[: :] 0
1
0
(3.3.44)
Now, we can write that the input signal of the actuator (3.3.41) is
equal to:
(3.3.45)
k.]. (3.3.46)
*) In general case, the relation between the system output and the
system state might be nonlinear, but we shall consider just the
linear case.
99
The model of the complete servo system in the state space (i.e. the
model of the actuator and the mechanism (3.3.4) together with the fe-
edback loops (3.3.45» can be written in the following form:
·i
x (3.3.47)
The model (3.3.47) represents the closed-loop model of the system. The
task of the control system is to ensure that the system output Yi ap-
proaches the desired output y~ = (qOi, O)T. In order to ensure posi-
~ .
tioning of the jOint in the desired set point qO~, we must ensure the
stability of the system (3.3.47) around the desired state x Oi = (qoi,
0, O)T, i.e. we must ensure that the eigen-values of the closed-loop
matrix of the system (Ai_bik~C.) are placed in the desired positions
~ ~ .
in the complex plane. The eigen-values of the closed-loop matrix (A~
Ai T
b kiC i ) are the poles of the transfer function of the servo system
(3.3.29). It is well known [3] that the system is stable if the eigen-
-values of the closed-loop matrix are in the left part of the complex
plane (i.e. they must be on the left from the imaginary axis). Besides,
the poles of the transfer function (3.3.30) must satisfy conditions
that the damping factor is ~i>1, and that the characteristic frequency
is less than 0.5 woo Thus, in the servo system synthesis (i.e. in the
selection of feedback gains), we may specify the desired positions of
the system poles in the complex plane. Once the positions of the poles
are specified, the vector of the feedback gains k i can be computed
which will ensure desired positions of the eigen-values of the closed-
-loop matrix of the system. The gain vector is computed from the fol-
lowing condition:
n.
n
~
K (s<:'-s) (3.3.48)
j =1 J
just the synthesis of the feedback gains for local servo systems for
individual joints of the robot. Evidently, the local servos are with
single input u i and their output vector is usually given by (3.3.42).
In this particular case the application of the pole-placement method
for synthesis of servo feedback gains is simple. Nevertheless, we shall
briefly mention problem related to the order of the system n i , the or-
der of the output k~ and the number of the eigen-values of the closed-
1
-loop system matrix which might be specified.
(3.3.49)
(3.3.50)
(3.3.51)
Based on (3.3.51), we can see that the real part of the third eigen-
o
-value depends on the specified eigen-values s1 ,2' and if
(3.3.52)
then the system is not stable, i.e. the third eigen-value is not in
the left part of the s-plane. Actually, (3.3.52) determines the upper
bound upon the absolute values of the real parts of the specified
eigen-values: one must not require that the eigen-values of the clo-
sed-loop system have the real parts ~~w~ greater (by absolute value)
~ ~
(3.3.53)
where Ki is the gain in the feedback loop by the robot current (the
third state coordinate). Now, all three eigen-values of the closed-
-loop system matrix might be specified. By pole placement method we
can compute the feedback gains (3.3.53) to place the poles of the sys-
tem in the desired locations in complex plane.
*)
In the case of the electro-hydraulic actuators the third coordinate
of the state vector is the difference of pressure in the cylinder
which also can be, relatively simpl~measured.
102
The scheme of the servo system is presented in Fig. 3.14. in the case
when the feedback loop by the robot current is introduced.
We should note that this method for control synthesis can be also
used to determine the feedback gain if only feedback loop by position
error is introduced (i.e. if k~
1.
= 1, y.
1.
= qi). Namely, the servo might
be realized only with the position feedback loop, but the performance
of such servo system is unsatisfactory regarding the requirements which
are encountered in robotics. Actually, such a servo cannot satisfy
both requirements regarding the servo damping and the steady state er-
ror.
EXAMPLE 3.3.3. The data of the D.C. electro-motor applied in the first
joint of the robot in Fig. 3.2, are given in Table 3.1. If the inertia
of the mechanism is taken into account, the matrices of the model of
the actuator and mechanism (3.3.4) have been calculated in Example 3.3.
For this actuator and mechanism we have to determine the servo feed-
back gains using the pole placement method. Let us assume that the fe-
edback loops are introduced by all three state coordinates, i.e. by
joint position, by joint velocity and by rotor current. Let us assume
that it is required to place the poles of the closed-loop servo in the
following positions:
o
s1 ,2 -6. , -800.
-5. , -6.
t I
fi
L
qOi + + I cji qi
r
!
r
J
-
i
a32
L -,~
qi feedback by velocity
feedback by position
Fig. 3.14. Scheme of servo system with the feedback loop by the rotor current (according
to the model of actuator in the state space (3.2.7), (3.3.49»
8
E x ere 1 ses
3.36. The second order model of the actuator and the mechanism (n i =2)
has the matrices in the following form:
[~] (3.3.54)
3.37. The third order model of actuator and the mechanism (n i =3) has
the matrices in the form (3.3.49). If we introduce the feedback
by position only, determine the expressions for the position fe-
edback gain so that the closed-loop servo system has:
In all three cases determine the expressions for the rest two
poles of the closed-loop system. What can you conclude con-
105
3.38.* Write the programme (in some high programming language) for deter-
mination of the feedback gains if the input data for the programme
are: data on actuator, data on the moment of inertia of the mo-
ving part of the mechanism HI..I , prescribed poles of the closed-
-loop servo system. The programme should include various informa-
tion feedback structure (if the feedback by position error is
introduced only, or if the feedback loops by position and velo-
city are introduced, or if the feedback loops by all three state
coordinates are introduced). (Instruction: use the expressions
given in the text and in Exercise 3.37). Using the programme,
check the results in Example 3.3.3.
3.39.* Write the programme (in some high programming language) for simu-
lation of the closed-loop servo system if initial state xi(O)
and desired position qOi are given. The input data for the pro-
gramme are: data on actuator, data on moment of inertia of the mo-
ving part of the mechanism HI..I , the vector of feedback gains,
.
the output matrix C., the initial state xl(O) and desired posi-
. l
tion qOl. (Instruction: use the state space model of the servo
system (3.3.47) to compute the first derivative of the system
state vector xi, and then apply some of available numerical methods
for integration, e.g. use the simplest Euler method for inte-
gration, see Section 5.3.; the integration interval should be
selected to be less than 1 [ms]). Simulate the positioning of
the first jOint of the robot in Fig. 3.2. around desired position
qol = 0.5 [rad], if initial state is xl (0) = (0,0, O)T. Data
on the model of servo are given in Example 3.3; use two sets of
the feedback gains determined in Exercises 3.28. and 3.29. Com-
pare the results of simulation for these two sets of the feed-
back gains.
cally damped. Let us assume that the feedback gains are selected to
ensure that the servo is critically damped for the position of the ro-
bot defined by vector q * (i.e. if the moment of inertia of the mecha-
nism is H .. (q*». In this case the velocity gain Ki is given by
~~ v
(3.3.39). If the other joints of the robot are moved to the new posi-
. .*
tionsqJ*qJ the damping factor of the servo in the i-th joint becomes:
~i (3.3.55)
where Hii (q) is the moment of inertia of the mechanism for the new po-
sitions of the joints q.
- -
We can distinguish two cases. If Hii(q)<Hii(q * ), then ~i>l, i.e. the
servo is overcritically damped in the new position, which means that
the selected feedback gains ensure acceptable response of the servo in
the new position of the robot. However, if -Hii(q»Hii(q
- * ), then ~i<l,
If we have selected the velocity gain in this way, then we can again
distinguish two cases:
a) If
iii
JMNvNm»m~x(Hii(q
- * )-Hii(q'», then the variation of the damping
q
factor (3.3.55) for various positions of the robot joints is rela-
tively small. In other words, the response of the servo system is
nea~ly uniform independently on the positions of the other joints of
the robot. The servo system is nearly critically damped for all po-
sitions of the other joints of the robot, and the satisfactory po-
sitioning of the i-th jOint might be expected. This case appears
if a relatively powerful actuator and large gear reducer with high
reduction ratio are applied. Such actuator and reducer have anequi-
valent moment of inertia of the rotor JMiNiN i relatively high with
v m
108
b) If
iii -
JMNvNm«m~x(Hii(q
* )-Hii(q'», then the damping factor might
q
significantly vary depending on the position of the robot (acc. to
(3.3.55». Thus, for the robot configuration q * for which Hii(q
- *)
max H .. (q') the critical damping of the servo is obtained (which
q' 11
means fast response of the servo), while for the robot configurati-
on q for which H11
.. (q) = min
q'
H .. (q') the damping of the servo beco-
11
We have shown in Section 3.3.2. that the position gain can be selected
based on Expression (3.3.38), i.e. this expression gives the upper
bound of the allowable value of the position gain. As it can be seen
from (3.3.38), the variable moment of inertia of the mechanism Hii(q * )
also affects the upper bound of the position gain. However, we have
to keep in mind that the resonant structural frequency of the robot
also depends on the moment of inertia of the mechanism. This frequency
decreases if the moment of inertia of the mechanism increases. Wemight
assume that, in the first approximation, the structural frequency is in-
versely proportional to the square root of the moment of inertia of
mechanism [5].
k WO(Hii)/J!N!N;+Hii
(3.3.56)
l,.iNiN i + H ..
M v m 1.1.
(3.3.57)
(3.3.58)
110
The second factor which effects the response of the servo if the con-
figuration of the robot change, is the gravity moment around the axis
of the i-th joint gi(q i , q * ). In synthesis of local servo system for
the i-th joint we have neglected the gravity moment. However, in Sec-
tion 3.3.2. we have considered the effects of gravity moment as exter-
nal load upon the performance of the servo system. We have shown that
steady state error due to external load is given by (3.3.34). It is
obvious that the steady state error is the consequence of the gravity
moment (if we assume that all the other joints are locked). When the
i-th joint stops, this gravity moment becomes constant which depends
on the configuration of the mechanism q * (but it depends also on the
final position of the i-th joint). The error caused by this gravity
moment can be calculated by (3.3.34) as the steady state error of the
servo.
From (3.3.34) it follows that the error due to gravity moment is in-
versely proportional to the position servo gain. However, we have seen
that the position gain is limited by the condition (3.3.38). Based on
(3.3.34) and (3.3.38) we can determine the minimal steady state error
111
(3.3.59)
On the other hand, due to variation of the gravity moment for various
configurations of the robot (i.e. for various positions of the locked
joints and for various desired positions of the i-th joint), the steady
state error of the servo also varies for various configurations of the
robot. This means that the performance of the servo in not uniform for
all desired set positions, and this is an unacceptable drawback of
the servo system (from the standpoint of the robot application and pro-
gramming). This is also the reason to consider compensation for the gra-
vity moment.
Since the gravity moment around the i-th joint is well known function
of the joint coordinates (positions), this moment can be computed on-
-line in the control microprocessor. Based on the computed value of the
gravity moment, the microprocessor calculates the voltage signal which
corresponds to this moment and generates the control signal for the
112
(3.3.60)
where by gi* is denoted on-line c~mputed gravity moment around the i-th
jOint in the desired position qOl. Here, it is assumed that the angles
or displacements of all the other joints are measured by appropriate
sensors and the signals are sent to microprocessor which (based on the
* If the computedgra-
obtained valu;s of joint coordinates) computes gi'
vity moment gi perfectly coincides with the actual gravity moment gi'
COMPUTATION ri
R
OP 9i* CiN i
qOi Mm
q*
KM 9j
(T's+1 )s
m
+
(T~S+1)S
t
then the control signal (3.3.60) will produce the torque which will
competely compensate for the gravity torque and the steady state error
due to the gravity moment will be eliminated. The positioning of the
servo in the desired position qOi in this case will be very accurate.
However, all parameters of the robot mechanism which are required to
compute the gravity moment gi* (link lengths, positions of the centers
of the masses of the links, masses of the links) are usually not known
accurately. Thus, in the general case, the gravity moments cannot be
ideally accurately calculated, nor they can be ideally compensated for.
Nevertheless, in this way we can achieve significant decrease of the
positioning error.
EXAMPLE 3.3.4. For the first jOint of the robot in Fig. 3.2. the posi-
tion and velocity servo gains have been computed in Example 3.3.2. for
the value of moment of inertia of the robot mechanism which corresponds to
the locked position of the second joint q2* =0. (the corresponding trans-
fer function of the servo is given by (3.3.28)). If the second jOint
moves to another locked position, the moment of inertia of the mecha-
nism changes, which causes the variation of the servo damping factor
according to (3.3.55). The variation of the damping factor when the an-
gle q2* varies is given in Table 3.8. It can be seen that the damping
factor varies significantly if the q2 varies, but it is always ~1>1
since the velocity servo gain has been calculated for q2* = 0., when
the moment of inertia of the mechanism around the first jOint is maxi-
mal. If we decide to introduce variable velocity feedback gain, then
its values for various q2* are also given in Table 3.8. These variable
velocity gains are calculated to maintain the damping factor equal to
one for all positions of the second joint. Applying such variable fe-
edback gains we maintain the uniform performance of the servo in the
first jOint independently on the position of the second joint. Obvi-
ously, the implementation of the servo system with variable velocity
gain is much more complex than if the fixed feedback gains are applied.
The performance of the servo system in the first joint of the robot in
Fig. 3.2. with fixed servo gains has been simulated by computer. The
responses of the servo for various (fixed) positions of the second
114
jOint q2* are presented in Fig. 3.16. under assumption that the selec-
2*
ted gains ensure that ~1 = 1 for q = O.
0° 1. 43.6
/
/
.. '
../.' q
2*
o.
0.3 / .. '
/.'
/ .. '
q
2* 1. 57[rad]
/ .. '
/ ....
0.1 " .' q
2*
3.141 [rad]
~<.. ,..
/ '
~~~~_+__~~~~~__t---- -----ll~~~~_t_~_~
Let us consider the second joint of the robot in Fig. 2.6. and let us
determine the effects of gravity moment upon the servo system in this
joint. Let us assume that the D.C. electro-motor is applied, the data
of which are given in the second column of the Table 3.3., while the
mass of the second link is m2 = 9. [kg], the distance between the se-
cond joint and the centre of mass of the second link is £2* = 0.2 [m],
the distance between the second and the third joint is £2 = 0.5 [m],
the mass of the third link is m3 = 10. [kg] and the distance between
115
*
the third joint and the centre of mass of the third link is £3=0.2 [ml
(for q3=0.). If we assume that the structural frequency for the second
joint is w2 = 45 [rad/sl, then we calculate the position servo gain to
o
satisfy the condition (3.3.38) and obtain the value K; = 1414. [V/rad).
The steady state error of the servo due to gravity moment can be cal-
culated based on (3.3.59). For various positions of the second and the
third joint various values of the gravity moment are obtained resul-
ting in various steady state errors in the second joint. The variation
of the steady state error in the second joint for various positions of
the second and the third joint is given in Table 3.9.
o. o. o. o.
1.57 o. 0.000783 86.3
1.57 0.4 0.00110 126.
1.57 0.7 0.0014 154.
1.0 0.7 0.00117 130.
E X ere s e s
3.41. For the first jOint of the robot in Fig. 2.5. determine the servo
feedback gains (data on the robot and actuators are given inTab-
les 3.3. and 3.4). If the resonant structural frequency is esti-
mated to be w1 = 12 [rad/s) (for the moment of inertia of the
o
mechanism around the first joint which corresponds to the posi-
tion of the third joint of q3* 0.6 [m) determine the servo
gains to satisfy the following requirement:
b) the fixed servo gains have to ensure that the system is over-
critically damped for all positions of the third jOint.
3.43. a) Calculate the errors in positioning of the robot end pOint due
to steady state errors of the servo system in the second jOint
of the robot in Fig. 2.6. The steady state errors of the servo
are given in Table 3.9. (assume that the distance between the
centre of mass of the third link and the manipulator endpoint
is 0.3 [m]).
3.44.* Starting from the open-loop model of the servo system (3.3.4) and
the closed-loop model (3.3.47) determine the model of sensitivi-
ty to variation of the moment of inertia of the mechanism Hii and
calculate the matrix of the sensitivity model for the servo sys-
tem given in Exercise 3.41. Determine the eigen-values of the
matrix of the sensitivity model for various positions of the
third joint q3* of the robot which have been considered in Exer-
cise 3.41.
3.45. Repeat Exercise 3.41 but now assuming that at the end point of
the minimal configuration of the robot there is a gripper with
a payload of a mass mp 1.5 [kg]. If the mass of the payload is
not known in advance and if the values of the servo gains are
117
3.46. Repeat Exercise 3.43 but now assuming that at the end point of
the minimal configuration of the robot there is a payload of a
mass mp = 1.5 [kg]. Assume that the direct compensation of the
gravity moment is introduced, but in on-line computation of the
gravity moment we take an estimated value for mp~O. (since the
actual value of the mass of the payload is assumed to be unknown).
Determine the steady state errors of the servo in the second
joint, and the errors of the positioning of the end point of the
manipulator.
3.47. Determine the deflection of the end point of the Stanford mani-
pulator (Fig. 3.13), the data of which are given in Tables 3.7.
and 3.10., due to steady state errors of the servos in the robot
jOints which are caused by gravity moments around the joints.
The gravity moments around the robot joints are given in Table
3.10. (the servo gains are computed according to data given in
Table 3.7) [5].
1 0.54 O.
2 0.50 69.3
3 - 81.73
4 0.25 5.54
5 0.25 5.54
6 0.25 O.
We have applied the linear model of the actuator and moving part of the
mechanism (3.3.4) for synthesis of local servo system. As we have al-
ready noted, the linear model of the actuator is an approximation in
which certain nonlinear effects are neglected. Here, we shall briefly
consider the effects of these nonlinearities upon the performance of
the servo system,since we have not taken them into account in the syn-
thesis of the servo feedback gains.
Let us consider the second order model of the actuator and the mecha-
nism and let us assume that the synthesized servo control is in the
form (3.3.41). If we apply the nonlinearity of the amplitude constraint
type upon this control, we obtain:
(3.3.61)
input signal does not reach upper bound of its amplitude. Thus, for all
states within this region the amplitude constraint upon the actuator
input has no effects, and the servo system behaves as it has been des-
cribed in the previous sections.
However, for the states out of this region the nonlinearities (3.3.61)
are not satisfied, which means that the computed control requires grea-
ter signal at the input of the actuator than it is actually allowed for
the particular actuator. Thus, the performance of the servo system for
In the actuator and on the shaft of the joint there always appears (to
a certain degree) Coulomb friction. This frictional effect has not
been taken into account in the model (3.3.4). The static friction op-
poses the movement of the joint when it starts to move. Once the joint
is in motion and when it reaches a certain velocity, the static fric-
tion drops to zero and dynamic friction appears which opposes the mo-
tion. The dynamic friction is usually less than static friction. The
Coulomb friction directly affects repeatability of the servo, and,
obviously, repeatability of the robot end point positioning. Due to
this friction the position error of the servo might appear, since the
servo requires an additional signal to overcome the friction moment.
If the robot is well designed and the reducer gears are well fabricated,
then the Coulomb friction might be reduced to minimum and it can be
neglected in the control synthesis. However, if this friction is signi-
ficant, we can include an additional term in the servo-control. We can
add an impulse signal at the actuator input whenever the jOint starts
to move. The servo system with such additional impulse torque for com-
pensation for static friction is presented in Fig. 3.18. The most ap-
propriate way to determine the amplitude of this impulse signal (i.e.
the magnitude of the additional torque) is by experiment.
' - - - - - - - - - - - - 1 Ki
v
r~
Compensation of CiN i
[., m
static friction ....._ _ _...J
dynamic
The backlash in the gear reducer and other parts of the robot system
might have a significant effects upon the servo repeatability and ro-
bot end point positioning. For example, the backlash in the gear redu-
cer in Fig. 3.19. directly reflects the error in the positioning of
the robot end pOint. If the effective lever arm from the jOint to the
robot end point is relatively long, then very small backlash in the
gear reducer causes the significant error in the robot positioning and
accuracy of the robot is highly reduced. The repeatability of the ro-
bot positioning is also poor if there are backlash in the robot jOints
122
since it is hard to keep the joint position always at the same side of
the backlash. The backlash can be hardly compensated for by the con-
trol system, since its modelling is very complex and unreliable. Thus,
this effect must be reduced to a minimum by proper design and fabrica-
tion of all "critical parts" in the robotic system. Since the gears
are most critical parts from the standpoint of backlash, their design
and production must be carefully done, if the high accuracy and re-
peatability of the robot are required. As we have already mention,
these reasons motivated the research towards introducing of so-called
direct-drive robots, i.e. robots which actuators are with no reducers.
I _________ _
----------
ACTUATOR
Besides above listed nonlinear effects in the robot servo system there
appear some other nonlinearities which might reflect the servo per-
formance. Their modelling is usually not simple, but they can often be
neglected relative to the effects which have been taken into account
in the linear model of the servo. In other words, we may assume that
the control synthesized on the basis of the linear model is robust
enough to overcome these nonlinear effects, so they do not reflect
significantly the servo system performance. Still, in the process of the
123
robot design and the servo system synthesis and implementation, for
each particular robotic system, we must pay attention of these effects
[8] •
We must underline that the linear model of the servo is rough approxi-
mation if electro-hydraulic actuators are considered. Namely, the pa-
rameters of the linear models of the hydraulic actuators are functions
of the actuator state (or, "the work regime" of the actuator). This
problem can be solved if we introduce variable servo gains (depending
"on work regime"), or if we select the fixed servo gains but which make
the servo system robust enough to ensure desired performance of the
servo system regardless of the variation of the actuator parameters.
EXAMPLE 3.3.5. Let us assume that the amplitude constraint upon the
input of the actuator u 1 for the servo system synthesized in the
Example 3.3.2. is given by u~ = 27 [V]. In this case the finite region
in the state space for which the inequalities (3.3.61) are satisfied,
is given in Fig. 3.20.
Let us consider some state out of this region (e.g. the state q1 = 0.3
[rad], q1 0.). For this state the control law would require the con-
trol signal of u 1 = 40.539 [V] which is not allowed. Due to this, the
servo behaves as it had the following gains instead the synthesized
servo gains (see Example 3.3.2) :
Ui.Ki
Ki '
P
m P 27
135.13 "" 90 r
V ]
lrad
IKi.qi+Kiqil 40.539
..
P v
ui.Ki
m v 27
Kl.
v IKi i+Ki.i l
P q vq 40.539
43.6 29.04
[ra~/s]
124
E X ere 1 s e s
3.49. Consider the third order model of the servo system (3.3.4), the
state vector of which is given by xi = (qi,.i .i)T ' were
q , 1R h .i
1R
is the current of the rotor circuit. If the feedback loops by
all three state coordinates are introduced (i.e. if the control
law is given by u i = _k~xi), if the amplitude of the input sig-
1
nal of the actuator is constraint by (3.3.61),and if the ampli-
tude of the rotor current is constrained by I i~ I < i~ax' then wri-
te the expressions for the boundaries of the finite region in
the state space for which the servo behaves linearly. Draw this
finite region in the 3-D state space.
3.50. For the servo system in Example 3.3.5, draw in the complex plane
the displacement of the poles of the closed-loop servo, if the
state of the system moves along lines qi = 0., 6qi<-0.189, and
qi = 0., 6qi>-O.189 [rad]. (Instruction: calculate the values of
the poles of the closed-loop servo for several values of 6qi sa-
tisfying 6qi<-O.189, and for several values satisfying 6qi>O.198;
for each state first calculate servo gains as presented in Example
3.3.5., and then calculate corresponding poles). To which posi-
tions are approaching these poles if 6qi+oo?
125
3.S3. The sketch of the robot is presented in Fig. 3.19. Assume that
the backlash appears at the points A and B. If the geometric pa-
rameters are as follows: d 1 = O.OS [ml, d 2 = 0.60 [ml and r =
2.S [ml, calculate the repeatability of robot end pOint positio-
ning due to backlash of 0.0001 [radlat point A. Next, calculate
the robot repeatability due to the backlash at point B of value
O.OOOOS [radl. Repeat this calculations, but if the diametar of
the larger gear change to d 2 = 0.9 [ml, and the backlash atpoint
A increases to 0.0002 [rad] (the backlash at point B is the same
as in previous case). Comment the results obtained in these two
cases: how the increase of the gear reduction ratio affects the
repeatability of the robot?
3.S4. For the robot in Fig. 3.19. calculate the repeatability of the
robot end point positioning due to truncation of the A/D conver-
ter for the servo in the first joint. The A/D converter is con-
nected to the position sensor. The position sensor is located at
the output shaft of the actuator, before the gear reducer. The
geometric parameters are given in previous exercise. The A/D
converter is of 12 bits (i.e. it truncates all angles bellow
360 0 /4096). Calculate the repeatability for both values of the
gear radius d 2 •
(3.4.1)
i
where KIN denotes gain in the feedback loop by integral of the positi-
on error. Based on (3.4.1) we may determine the position error as:
i S 2 (Ti S 1) 2] oi()
iK V i ()
, - [K D + m + s q s -KMsg l, S
'ql (s) = (3.4.2)
~ i i + i i i i 2+ i + 2
KDKIN KDKps+KDKv S (Tms 1)s
128
91 (load)
If we assume the step external load acting upon the i-th servo (i.e.
we assume constant load moment in the i-th joint), then we obtain ste-
ady state error as:
Thus, we see that the integral feedback loop eliminates the steady
state error (for step input moment). If all other joints are locked,
then only the gravity moment is acting around the i-th joint when it
stops. This moment in steady state conditions might be assumed to be
constant. Thus, by integral feedback loop we eliminate the positioning
error of the servo caused by gravity moment around the i-th joint. The
PID controller ensures more accurate positioning of the robot joint
than the static controller considered in the previous sections.
integrator by position error in the state space has the following form
(if we neglect the effects of the external disturbances):
!i
x (3.4.4 )
(3.4.5)
t . .
zi(t) = f(q~-qO~)dt (3.4.6)
o
_In (3.4.4) the control signal (input signal for actuator) is denoted
by u i • For the PID controller presented in Fig. 3.21 (n i =2) the control
signal is generated as:
(3.4.7)
k. ~
(3.4.8)
-i oi
d q (3.4.9)
so that all s~ are in the left half of the s-plane. In that case the
J
feedback gains k i can be obtained from:
n i +1
K n
j=1
(s~-s)
J
(3.4.10)
The feedback gains k.l. which satisfy the relation (3.4.10) can be easily
determined.
Here, we have assumed that the feedback loops by all state coordinates
xi are implemented. However, it is not always necessary to introduce
feedback loops by all state coordinates xi. As we have explained in
Section 3.3.3, it is possible to introduce feedback loops just by the
system output Yi which is given by (analogously to (3.3.43)):
(3.4.11 )
(3.4.12)
kY
i
n. +1
n n
l.
K (s~-s). (Sj-s) (3.4.13)
j=1 J
j=k~+1
l.
on the left from the line Re(s) = -Si' where Si is positive number. By
this we ensure that the system has sufficiently fast response to step
input (i.e. that the position of the jOint approaches to desired posi-
tion qOi faster than ~ exp(-Sit».
(3.4.14 )
(3.4.15)
which means that the steady state error of the system response to ramp
moment disturbance is inversely proportional to the integral feedback
gain.
If we want to reduce the steady state error due to ramp moment distur-
bance (3.4.15), we should select high integral feedback gain K~N. Ho-
wever, to ensure that the pair of the dominant poles of the system is
as close as possible to the real axis of the s-coordinate system, and
to ensure fast response of the system (i.e. to ensure that the real
parts of all the system poles are sufficiently high), we must apply
relatively high position and velocity feedback gains. Since the high
feedback gains reflect the characteristic frequency Wi of the system,
which is constrained by (3.3.37), and since the high feedback gains
are undesirable regarding the effects of the noise upon the system
performance, we must make a tradeoff between these opposite require-
ments. Namely, in specifying of the desired eigen-values of the closed-
-loop system matrix s~ we must take care of the following requirements:
J
132
We have explained that if all the joints of the robot are locked, save
for the i-th joint, then just the gravity moment is acting upon the
i-th joint as external disturbance. This moment is constant in steady
state conditions. However, if the other joints are also moving, then
upon the i-th actuator is acting variable moment (load) due to dynamic
interconnections between the joints movements. This dynamic moment is
complex function of actual joints coordinates, velocities and accele-
rations (see Chapter 4). Therefore, we have to ensure that the error
due to variable external moment disturbance is as small as possible.
Obviously, by PID controller we cannot eliminate this error. It is pos-
sible to introduce dynamic controller of higher order, i.e. with feed-
back loops by higher integrals of the position error. However, such
controller is too complex and its response might be too slow, so they
are not often applied in robotics.
EXAMPLE 3.4. In Example 3.3.4 the PD servo system for the second joint
of the robot in Fig. 2.6. has been synthesized. The data on the D.C.
electro-motor are given in Table 3.3. Let us synthesize the PID con-
troller for the same joint and actuator by pole-placement method. If
the second order model of the actuator is considered (n i =2), then we
can specify n i +1=3 eigen-values of the closed-loop system matrix. Let
us select the following places of the eigen-values:
0 0
s1 ,2 -5.45 ± j2.8, s3 -44.6
K2 V K2 V K2 V
1446. [rad] , 34.36 [rad/s], 4691.2 [rad/s]
P v I
The steady state errors due to constant gravity moment are given in
Table 3.9. for various positions of the second and the third jOint of
the robot if PD servo system is applied. It is clear that if the PID
controller is applied these steady state error are reduced to zero. In
Fig. 3.22. are presented the responses of the PD and PID controllers
to step input qo2=0. 02+q2 (0) [rad] when the gravity moment is acting aro\.lnd
the joint axis. (We assume that the gravity moment is not compensated
by on-line computation as in (3.3.61». From Fig. 3.22. we see that
133
the PID controller eliminates the steady state error, but the oversho-
ot appears.
q2 [rad]
1.553L-------~------r_------+_------~--~
0.5 1.5 2 t[sl
Fig. 3.22. Responses of PD and PID controllers to step
input and step moment disturbance
E X ere 1 s e s
7
3.55. If the order of the model of the a tuator.and joint is n i =3, and
if the structure of the matrices Al and b1 is given by (3.3.49)
and (3.4.5), then write the expressions for feedback gains of
the PID controller which ensure placement of the eigen-values of
the closed-loop matrix of the system in desired positions. Assu-
me that the feedback loops are introduced as follows:
3.56. The data on the D.C. electro-motor applied in the second jOint
of the robot in Fig. 2.5. are given in Table 3.3. Determine the
matrices of the model of actuator and jOint for n i =3 (data on
the robot mechanism are given in Table 3.4). Determine the feed-
back gains of the prD controller to satisfy the following condi-
tions: all eigen-values of the closed-loop system matrix should
be on the left from the line Re(s) = -3., the dominant pair of
eigen-values has to be as close as possible to real axis, the
steady state error to ramp moment disturbance (3.4.15) for P~=l
l
[Nm/sl should satisfy l~q2(oo) 1<0.01 [ml. Determine the feedback
gains under assumption:
3.58. Compare the compensations of the steady state error due to gra-
vity moment: by prD controller and by PD servo system with the
on-line computation of gravity moment. Compare these compensati-
ons from the standpoints of:
c) the settling time (i.e. the time required for the joint
to settle at the desired position).
If the input signal for the servo system synthesized in the previous
sections is time variable function qOi(t) (trajectory), the servo sys-
tem output will not track accurately this trajectory. The error between
the actual trajectory and desired trajectory will appear. Let us assu-
me that the imposed trajectory is ramp function, i.e. that it requires
constant velocity of the jOint qOi(t) = Q~t. The Laplace transform of
. 2 l
this input function is qOl(S) = Q~/s . Let us consider the error of
l
a static servo system whose transfer function in the s-domain is given
by (3.3.25), assuming that the order of the actuator model is n i =2. If
we replace the expression for the ramp function input in (3.3.25), then
we obtain the Laplace transform of posi tion error between the actual
136
(3.5.1)
(3.5.3)
The steady state error in this case is (under assumption that the de-
lay due to velocity terms are compensated for - see the text to fol-
low) :
(3.5.4)
In this case the error might be high depending on the required accele-
ration a~ and on the parameters of the servo. It is obvious that these
l
errors in tracking of desired trajectories are consequence of the de-
lays in the servo system, so that the system output cannot follow the
imposed variation of the input signal. However, this delay can be com-
pensated for by introducing of so-called "pre-compensator" (or, feed-
forward term).
Ki
M
0; ( s)
q + sqi
-;-
Tm s+ 1
Fig. 3.23. Servo system with feedforward term to compensate fo~ velocity and
acceleration variations along nominal trajectory gOl(t)
w
......
138
The feedforward term is introduced in the following way: the input signal
for servo is not desired trajectory qOi(t), but some modified signal
which takes into account the delay in the servo. Namely, the signal
which has to "accelerate" (or, "decelerate") the servo proportionally
to desired acceleration qOi(t), is added to the original input signal
(corresponding to desired trajectory qOi(t)). This additional signal
has to reduce the error between the imposed input trajectory qOi(t)
and actual trajectory qi(t) of the joint (t.e. the servo output).
(3.5.5)
(a) if the initial state of the system xi(O) coincides with the nominal
initial state xOi(O), i.e. if xi(O) = xOi(O), and
139
(b) if the model of the servo (3.3.4) is ideally accurate and no exter-
nal disturbance is acting upon it.
Obviously if xi(O) = xOi(O) and if the model of the system were perfect
(which means that all the parameters of the system were perfectly accu-
ratelyidentifie~, and if the signal U~i(t) computed to satisfy (3.5.5)
is fed to the input of the servo, then the actual state of the system
xi(t) would be driven along nominal trajectory xOi(t). However, it
is obvious that in the general case none of the above assumptions are
satisfied. Due to this, we have to consider the model of the deviation
of the system state xi(t) from the imposed nominal trajectory xOi(t).
Based on the model (3.3.4) and (3.5.5) we can obtain the model of the
state deviation in the following form*):
(3.5.6)
l 0 0 0 0
*) Here, we have not taken into account the amplitude constraint upon
the servo input.
140
(3.5.7)
Computation of
nominal control
uOi
L
*)
Here, the general case is considered when the feedback loops only by
the system output Yi are introducedi if the feedback loops are in-
troduced by all state coordinates X1, then the matrix C. is the
unit matrix. 1
141
and that by differentation we get variation of the jOint veloci ty qOi (t)
and acceleration qOi(t) along the desired trajectory. By this the no-
minal trajectory of the state xOi(t) and the first derivative of the
state xOi(t) along the nominal trajectory are defined. Assuming that
the matrices Ai and £i are in the form (3.3.54), on the basis of
(3.5.6) we can compute the local nominal control as:
(3.5.8)
where bY.X~i is ~enote~ the second coordinate of the state vector (i.e.
oi ·01 ·01 -01
x2 q and x 2 = q ). Thus, the nominal control can be easily com-
puted based on (3.5.8) and this is applied in the control scheme in
Fig. 3.24. In this, it should be kept in mind that the actuator input
amplitude is constrained. Based on (3.2.9), the following inequality
has to be satisfied:
l uOi(t)
L I -<
i
um (3 •5• 9)
If the condition (3.5.9) is satisfied, and if the two above listed con-
ditions were also met, then the nominal control (3.5.8) would drive the
the joint along the desired (nominal) trajectory qOi(t). However, if
the condition (3.5.9) is not satisfied, the nominal control cannot dri-
ve the system along desired trajectory. This means that the actuator
cannot realize the desired nominal trajectory. The required velocity or
acceleration of the jOint are too high, and they cannot be realized by
the applied actuator in the robot joint. The desired trajectory should
be slow down. In the process of the robot design, the selection of the
actuators must be properly done. This means, that the actuators in the
robot joints must be selected to ensure realizations of desired velo-
cities and accelerations of all the robot joints (so that the desired
speed of the robot is guaranteed). Namely, the robot designer must es-
timate the velocities and accelerations of the robot jOints that will
be required in the tasks for which the robot is intended. When he se-
lects actuators, he must check the condition (3.5.9) for each jOint and
for some representative (test) trajectories. If the condition (3.5.9)
is not satisfied, then the actuator in the corresponding robot jOint
must be re-selected. Otherwise, the robot will not be able to accomplish
the desired task*).
*)
It should be notices that this consideration concerns the case when
each joint of the robot is moved independently, i.e. when the robot
joints are moved successively, one by one. If the simultaneous moti-
on of all robot joints are required, then the dynamic moments due to co-
upling between the jOints must be taken into account (see Chapter 4).
142
Since this programmed control takes into account only dynamics of the
local actuator and single joint, it is called local nominal control
[10, 111. It differs from the so-called centralized nominal control
which takes into account dynamics of the complete robot mechanism and
which is computed on the basis of the complete model of the robot dy-
namics when all the jOints are moving simultaneously (see Chapter 4).
The model (3.3.4) takes into account the moment of inertia of the me-
chanism around the i-th joint (if all the other joints are kept loc-
ked). The value of this moment of inertia varies if the other joints
change their positions. We have shown (Section 3.3.4) that for thesyn-
thesis of the servo feedback gains it is required to consider the ma-
ximum value of the moment of inertia of the mechanism around the i-th
joint. However, for the synthesis of the local nominal control we must
consider the minimum possible value of the moment of inertia of the
mechanism around the corresponding joint. If we calculate local nomi-
nal control taking into account (in (3.5.8» some greater moment of
inertia, then when the value of the moment of inertia is less, the jOint
angle would overshoot the desired trajectory. Since the overshoot of
the desired input trajectory must not be allowed in any case, this me-
ans that we must calculate local nominal control taking into account
the minimum possible value of the moment of inertia of the mechanism
around the i-th joint (see Exercise 3.62).
EXAMPLE 3.5. For the first joint of the robot in Fig. 3.2. the model
of the actuator and the moment of inertia of the mechanism around the
jOint axis, for q2*=0., is given by (3.3.4) and the elements of the mat-
rices Ai and bi are given by (see Exercise 3.18):
°t2
_a___ 0 < t < -
T
2' - 2
01 (t) - { (3.5.10)
q - 02 0 0
~ _~(t_~)2+~(t_~) "2
T
< t < T
8 2 2 2 2'
[rad]
0.5
0.4
0.3
0.2
0.1
o t[s]
.{
(ao+0.38aOt)/0.27, 0 < t 2- ~
2
u 01 (t) (3.5.11)
T
[-a o +0.38ao(T-t)]/0.27, < t < T
"2
the servo does not compensate for the variation of velocity and acce-
leration along the nominal trajectory. We assume that the initial error
between the actual position of the joint ql (0) and the nominal positi-
on qOl (0) is liql (0) = ql (0) - qOl (0) = 0.2 [radl. The Fig. 3.26. shows
how this error liql (t) decreases along the trajectory in the two above
mentioned cases. The digital simulation of the dynamics of the single
jOint and complete robot will be addressed in Section 5.3.
ql
[radl
E X ere 1 s e s
3.60. For the third order model of the servo (n i =3) in the form (3.3.4)
where the matrices of system are in the form (3.3.49), show that
the local nominal control is calculated according to the follow-
ing equations (assuming that qOi(t), qOi(t), qOi(t) are given
i i·i.i T iii T
and that x = (q, q , l.R) = (xl' x 2 ' x 3 ) ):
3.61. For the stanford manipulator shown in Fig. 3.13. the data on
which are given in Table 3.7, the servo feedback gains (for the
static servo systems) for all joints have been computed in Exer-
cise 3.33. Determine on the basis of (3.5.2) and (3.5.4), the
steady state errors for:
3.62. The nominal programmed control for the first jOint of the robot
in Fig. 3.2. is given by (3.5.11) for the nominal trajectory
(3.5.10). The matrices of the servo model have been computed for
the positicn of the second joint q2*=0. Calculate these matrices
for the position of the second joint q2* = 1.573 [radl. Show that
if the nominal control (3.5.11) is applied in the first joint
when the second jOint is in the position q2* 1.573 [radl, than
there can occur overshoot (assume that initial error is zero
~ql (0) = 0.). Determine the nominal programmed control using the
value of the moment of inertia of the mechanism which corresponds
to the position of the second jOint q2* = 1.573 [radl. Which no-
minal control has to be applied if the position of the second
jOint q2* is not known?
3.63.* Write the programme (in some high programming language) for compu-
tation of nominal local programmed control for the case when the
model of the servo is of the second order (3.5.8) and when the
third order model of the servo is considered (see Exercise 3.60).
Minimize the number of additions and multiplications for these
computations. Next,introcucc the check of the condition (3.5.9).
By combining this programme with the programme written in Exer-
cise 3.57 write the programme for microprocessor implementation
of the servo which ensures tracking of the desired nominal tra-
jectory (the inputs for this programme are nominal trajectory
qOi(t), actual jOint position gi (t), veloci ty qi(t), and rotor current
i~(t), and the parameters of the actuator, the moment of inertia
146
of the mechanism around the jOint axis Hii' the servo gains, and
the output of the programme is the computed input signal for the
actuator ui(t».
References
[3] Chestnut H., Mayer R.W., Servomechanisms and Regulation System De-
sign, John Wiley and Sons, Inc., New York, 1963.
[4] Cadzow A.J., l~artens R.H., Discrete-Time and Computer Control Sys-
tems, Prentice-Hall, Englewood Cliffs, New Jersey, 1970.
[8] Kubo T., Anwar G., Tomizuka N., "Application of Nonlinear Friction
ComDensation to Robot Arm Control", Proc. of IEEE Conference on
Robotics and Automation, 722-277, 1986.
[10] Vukobratovic' M., Stokic D., Kircanski N., Non-Adaptive and Adaptive
Control of Manipulation Robots, Monograph Series: Scientific Fun-
damentals of Robotics 5, Springer-Verlag, 1985.
Appendix 3.A
Local Optimal Regulator
(3.A.l )
148
where ~xi is n .• 1 vector of the state deviation from the desired nomi-
nal state x Oi ~xOi is defined as x Oi = (qOi, 0, O)T for n.=3, and x oi =
. T 1
(qOl, 0) , for n.=2, since the control problem is to ensure positioning
1 . . . ,
of the joint in the desired position qOl) , ~Xl=Xl_X01, Q. is n.xn. po-
111
sitive definite matrix, ri>O is positive number. For the system descri-
bed by the state space model (3.3.4), we have to synthesize control law
which will minimize the criterion (3 .A.1) • The minimization of the first
member in the criterion ~xiQ.~xi represents requirement to minimize the
1 .
error between the actual state of the system Xl and the desired (nomi-
nal) state xOi. By this, it is required that the control law ensures
desired performance of the system, i.e. to ensure that the joint is
driven to desired position qOi. The second member in the criterion
uir i u i represents minimiza.tion of the control signal amplitudes, by
which it is (indirectly) taken into account energy consumption of the
actuator during the positioning of the joint.
(3 .A. 2)
(3.A.3)
-1-iT
k~1 r i b Ki (3.A.4)
It can be shown, that the poles of the closed-loop system (with the
optimal quadratic regulator) satisfy the following inequality [2, 3]:
< - (3 .A. 5)
Ai -l AiT
where Wi is nixn i matrix given by Wi = Qi+Ki b r i b Ki , Am denotes the
minimal eigen-value of the corresponding matrix, and AM denotes the
maximum eigen-value of the corresponding matrix, A( ••• ) denotes eigen-
-values of the matrix in the brackets. Based on (3.A.S), we can get an
estimate of posi tions of the poles of the system if the optimal quadra-
tic regulator is applied.
(3.A.G)
(3.A.7)
where Ini is the nixni unit matrix. It can be also shown that, in this
case, the poles of the closed-loop system satisfy the following ine-
quality:
(3 .A. 8)
i.e. the poles are on the left side from the line Re(s) = -Si (see Fig.
3.A.1) in the s-plane. Therefore, by the selection of Si (the prescri-
bed stability degree) we can specify posi tions of the poles of closed-loop
system, i.e. we can ensure that the joint approaches the desired posi-
tion qOi faster than 'Vexp (- Sit). By this regulator we ensure the stabi-
lity degree of the closed-loop system, and the speed of approaching to
the desired system state is guaranteed.
Im(s)
o
Re( s)
EXAMPLE 3.A.1. For the first joint of the robot in Fig. 3.2, a D.C. elec-
tro-motor is applied, data on which are given in Table 3.1. If we take
into account the moment of inertia of the robot mechanism, the matri-
ces of the model of the actuator and the joint (3.3.7) have been cal-
culated in Example 3.3. For this system we have to synthesize the opti-
mal linear regulator. If we select the following weighting matrices:
1.0 O.
O. ]
Qi = [ O. 0.1 O. 0.1, 3.
O. O. 0.01
References
[1] Kalman R.E., "On the General Theory of Control Systems", Proc. of
IFAC, Butterworth Scientific Publications, London, 1960.
[2] Athans M., Falb L.D., Optimal Control, UcGraw-Hill, New York, 1966.,
4.1 Introduction
the corresponding joint is moving while the other joints are locked.
The scheme of the control system of the entire robotic system (if only
local servo systems are applied) is presented in Fig. 4.1. When the
other jOints start to move the dynamic forces and moments, described
by (3.2.2), appear. These dynamic forces act as external load upon the
servo systems around the robot joints. Let us consider how these for-
ces affect the performances of local servo systems.
..".
(J
o
:oJ
rT
Ii
o
t-' q1
q·1
til
o
::r P,
~
(i)
o
t-h
t-'
o qn
o q·n
PI
t-'
til
(i)
Ii
<:
o
til
'<:
til
rT
~til Mn
ACTUATOR n
L _____ _ _ _ .-J
01
01
156
between the robot joints represents external load upon the i-th
joint. vlhen the j-th jOint is accelerated or deceleration the
inertia coupling causes the external load upon the servo in
the i-th jOint (the moment is given by H .. (q)qj). As we have alre-
1J
ady explained, the external load upon the shaft of the actuator
(D.C. motor) causes errors in the positioning of the jOint, or in
the tracking of trajectories. However, these moments are signifi-
cant if the accelerations are relatively high. When the accelera-
tions drop to zero (when the robot stops), these moments also va-
nish and they do not affect the positioning of the joints, i.e.
they do not cause steady state errors in robot positioning. These
moments can cause errors in tracking trajectories, if high accele-
rations qj are demanded. If accurat~ tracking of fact trajectories
is essential for implementation of a given robotic task, then the-
se moments have to be compensated for. As we have shown in previ-
ous chapter the constant external load can be compensated in vari-
ous ways. However, these moments due to cross-inertia interconnec-
tions are variable and they depend on the positions of the robot
joints qj and on the accelerations qj of the joints. Therefore
these moments cannot be efficiently compensated by integral feed-
back loop. The compensation of these dynamic moments by global
control will be considered in Chapter 5.
(c) Gravity moments. The effects of gravity moments upon the local
servos have already been considered in Section 3.3.4. Here, we
shall only note that in simultaneous movements of several jOints
gravity moments become variable, causing errors both in pOSi-
tioning and in tracking of traj ectories. Thus, the gravity mo-
ments are not any more constant load upon the servo. Therefore,
they may produce, if not compensated by global control, uneven
tracking of desired trajectories, and uneven positioning of the
robot jOints.
(d) Centrifugal and Corio lis forces (torques). The vector h(q, q) in
the model of the mechanism dynamics (3.2.2) includes centrifugal
and Coriolis forces which depend on the joint velocities q. Since
these forces are directly proportional to squares of the jOint
velocities, they are significant only if the joints are moving at
high velocities. When the robot is starting to move or is stopping
these forces are negligible, which means they do not affect the
positioning of the robot in any desired positions and do not cause
157
Example 4.2. Let us consider the robot in Fig. 3.2. For the perVo
around the first Joint of this robo~we have synthesized the servo
gains in Example 3.3.2. assuming that all the other joints of the ma-
nipulator are locked (we have aspumed that the joints are ~ocked in
the positions in which moment of inertia of the mechanism around
the first joint H11 gets its maximal value). Let us cons~d~r the be-
haviour of this servo if all the other joints are ll\OVirg. Let u,!,\ con-
sider the positioning of the first joint. pesired position of the jo-
int is q01=0.5 [rad] and the initial position of the joint is q1 (0)=0.
[rad]. If all the other Joints are locked, then the positioning of the
servo systems is as shown in Fig. 4.2. (bold line). The results are
obtained by digital simulation using the complete robot dynamic model.
If the second joint is moving in such a way that it is accelerated at
q2=1 [rad/s 2 ] (while the third jOint is fixed), then upon the first
joint is acting the moment due to cross-inertia term H12 (q)q2. The po-
sitioning differs from the previous case.
D.6 0.8
0.2 0.4
.. '
1 .0 t [5]
- 0. 1
~
n.
•• L
- 0•2 q
.. 2
1[~]
- D. 3 --- q
52
- 0•5
l
Fig. 4.2. Positioning of the first joint of the robot in Fig. 3.2.
for various accelerations of the second jOint
158
The results of digital simulation are presented in Fig. 4.2, too (das-
hed line). It can be seen that the effects of cross-inertia term is
relatively weak. However, if the acceleration of the second is extre-
mely high q2=5. [rad/sl, the effects of these forces will be conside-
rably stronger, which can be verified by the simulation of the posi-
tioning of the first jOint (also presented in Fig. 4.2. - dotted line).
E X ere 1 s e s
4.2. For the manipulator in Fig. 3.2. and for the servo system in its
first joint, servo gains have been synthesized in Example 3.3.2. De-
termine the steady state error in the first joint (when the se-
cond jOint is in q2=o.) due to inertial coupling between the first
and the second jOint if the second jOint is moving at accelera-
tion of q2=5. [rad/s 2 1. Check whether this result complies with
the results of simulation in Fig. 4.2. Explain the differences in
these results.
4.3.* If the actuator for the first joint of the robot in Fig. 3.2. is
hydraulic actuator, for which the servo has been synthesized in
Exercise 3.35., determine the steady state error due to inertial
coupling between the first and the second joint, if the second
jOint is moving at acceleration of q2=5 [rad/s 2 1. Compare the
obtained results with the results in Exercise 4.2.
4.4.* Hri te the programme (in one of high-level programming language) for
simulation of robot performance. The simulation should include the
complete dynamic model of the robot. Nrite this programme for par-
ticular robot in Fig. 3.2. assuming that the robot joints are
driven by D.C. actuators (data on actuators are given in Table
3.1). Each jOint is controlled by its servo system, and the feed-
back gains are synthesized as presented in the previous chapter.
The input data for the programme are: data on actuators (for
159
Here, we shall briefly describe how we can obtain the linear model of
the robot, and we shall consider application of some methods for stabi-
lity analysis of the linear systems to the robotic systems. We assume
that just the local servos are applied for control of robot joints [1,
2, 3].
where the vector function a(x) and matrix SIx) are given in (3.2.27).
The vector function a(x) and matrix SIx) are complex nonlinear functi-
ons of the system state x. Let us consider the system in the surroun-
dings of the point x O in the state space. Let us assume that the "no-
minal" state x O corresponds to desired positions of the robot jOints
qOi, i.e. X O (x o1 , xo2, ... ,xon)T, x Oi = (qOi, O)T for n i =2. Let us
assume that we can determine the input signals u O=(u 01 , u o2 , •.. ,u on )T
*)
Nonlinear model of the system is also an approximation of the actu-
al system but, obviously, much better approximation, i.e. it is
much closer to the actual system performance.
161
such that the system is in equilibrium in the point xO, i.e. that it
is satisfied:
o (4.3.2)
o
The model of state deviation around the point x , UO can be written in
the following form, based on (4.3.1) and (4.3.2):
(4.3.3)
o
point x , i.e. x(t) = x(t)-xo, ~u is nx1 vector of deviation of the
=
!
input signals from the "nominal" signals uo, i.e. ~u(t) u(t) - uo,
N(uo, ~u) denotes the nonlinearity of the amplitude saturation type
according to (3.2.9) *)
for ~ui<_ui_uoi
-u, -urn m
oi i
N(u oi , ~ui) ~Ul for _ui_uoi<~ui<u i -u oi (4.3.4)
m m
oi i ~ui>u i -u oi
-u +u for
m -m
(4.3.5)
A = aa (x o , llx) I , 0
B(x , 0) (4.3.6)
L a~x for 6X=O'
o
Obviously, the matrices AL and BL depend on x , i.e. on the pOint in
the state space around which the model is linearized, and this we shall
consider latter on. Based on (4.3.3) and (4.3.6) we obtain:
A = ~I aB I (4.3.7)
L allxl llx=O + allx llx=O
A+F(I -HTF)-1
n
~
aq
- matrix of dimensions nxnxn
(4.3.9)
Thus, the problem how to determine the linear model of the robot dy-
namics reduces to determination of matrices (4.3.9), i.e. to lineari-
zation of the dynamic model of the mechanical part of the robotic sy-
stem. The matrices (4.3.9) can be determined in several ways:
(a) The matrices of the linear model (4.3.9) can be obtained analyti-
cally. This means that we can write the original model of dynamics
of the mechanical part of the robot in analytical form (3.2.2),
and we can analytically determine the first derivatives of the
elements of the matrix H(q) and of the vector h(q, q) by the joint
angles (displacements) q and their (rotational or linear) veloci-
163
(c) The matrices of the linear model of the robot (4.3.9) can be de-
termined by various procedures for identification. We assume that
the nonlinear dynamic model of the robot is available and based
on this model we can numerically identify the linear model which
'64
describes the performance of the actual system. The aim is, obvious-
ly, to determine the linear model whose response to various inputs
is as close as possible to the response of the actual system.
ox(t) - ° ' ° °
a(x, ex) + B(x, ex)N(u, eu(t)) (4.3.' 0)
Let us assume that we have selected the input signal to satisfy the
amplitude constraint (4.3.4), i.e. such that N(uo, eu(t)) = eu(t). The
input signal might belong to various classes of functions (of time).
Let us observe the response of the nonlinear model (4.3.'0) in m, dis-
crete time instants t i , i=,,2, ... ,m,. The matrices of the linear model
(4.3.5) have to be determined in such a way that they satisfy the fol-
lowing equations:
where [ex] is Nxm, matrix given by [ex] [ex(t,), ex(t 2 ), ..• ,ex(tm,)]
and [ox/eu] is (N+n)xm, matrix given by:
ex (t, ) ex(t ,)
m
[----:---,
eu(t, )
---------]
eu (t ,)
m
(4.3.'2)
the state coordinates ax(t i ), i=1,2, ••. ,m 1 (i.e. the response of the
nonlinear model) are memorized for m1 time instants during the simula-
tion. In this,we have to select the sufficiently large number m1 • Nex~
we have to compute the matrices AL(X o ), BL(Xo) according to (4.3.12),
using the memorized values of Qx(t.) and ex(t.).
~ ~
Here, we have presented how we can directly identify the linear model
of the entire robotic system which includes the models of robot actua-
tors. Since the models of actuators are linear (or, we may say that
the linear models are good approximation of their actual performances),
we may identify only the matrices of the linear model of the mechani-
cal part of the system (4.3.9). If these matrices are identified,it is
easy to determine the matrices of the linear model of the entire robo-
tic system based on (4.3.8). The identification of the linear model of
the mechanical part of the system can be carried out applying the pro-
cedure described above.
Example 4.3.'. The model of dynamics of the mechanical part of the ro-
botic system presented in Fig. 3.2. is given by differential equations
(3.2.3). Since this model is relatively simple, it is easy to determi-
ne the corresponding matrices (4.3.9):
~
aH
u :J 0
0
0
r '.
:l
* 2
-2m 3 l'"l',3 s l. nq -m3l'"l',3sinq
2
aH *. 2
-m 3 l',1l',3 s l. nq 0
aq2
0 0
167
aH
aq3 [: 0
0
0 :] (4.3.13 )
l
*·2·2·1 2
0 -m 3 £1£3 q (q +2q )cosq
* ·1 2 2
:1
ah 0 m3 £1£3(q) cosq
3q
0 0
l
*·2. 2 * ·2 '1 2
-2m 3 £1 £3 q sl.nq -2m 3 £1£3(q +q )sinq
3h *·1 . 2
2m 3 £1£3 q sl.nq 0
oq
0 0
0 0 0 0 0
0 -0.832 0 2.56 0 0
0 O. 0 0 0
AL
0 2.56 0 -15. 0 0
0 0 0 0 0
0 0 0 0 0 -45.
(4.3.14 )
0 0 0
0.58 -1 .75 0
0 0 0
BL
-1.78 10.43 0
0 0 0
0 0 0.361
E X ere 1 s e s
4.5. Show that the matrices of the linear model of the robot are obtai-
ned in the form (4.3.8) if we start from the nonlinear model of
robot (3. 2 . 27), ( 4 . 3 . 6) and (4. 3 . 7) .
4.6. For the robot presented in Fig. 2.5., the dynamic model of which
has been determined in Exercise 3.1, determine analytically the
matrices (4.3.9) and the matrices of the linear model (4.3.8), if
D.C. electro-motors are applied (and the models of actuators are
linear and of the second order) .
4.7. If data on the manipulator in Fig. 2.5. are given in Table 3.4.,
determine the values of the matrices (4.3.9) (computed in Exer-
cise 4.6) for the following nominal state coordinates: a) X o
(0, 0, 0, 0, 0, O)T, b) X o = (0, 0, 0, 0, 0.5, O)T, c) X o = (0,
1., 0.2, 0., 0.5, 1.)T. If data on actuators are given in Table
3.3. compute the values of the elements of the matrices (4.3.6)
for these three cases.
The linear model of the robot, obtained by one of the procedures des-
cribed in the previous section, represents the time-invariant system
of N linear differential equations. To examine the performance of this
system we may apply various well-known methods for analysis of linear
multi-input mUlti-output systems. In this particular case, we shall
address the problem of stability of such system. We want to examine
whether the robotic system is stable around the nominal point XO (i.e.
around the desired goal positions of the robot joints) if we apply only
169
Ka n
j =1
(s'?-s)
J
(4.3.15)
(4.3.16)
K1 K' K1
p v I
K2 K2 K2 0
p v I
o
170
n
I k~
i=l 1
This means that the analysis of the stability of the linear model of
the robot with the closed local servo feedback loops is relatively
simple: we have to determine the eigen-values of the matrix of the
closed-loop linear model, and then,we have to examine whether these
eigen-values satisfy the conditions (4.3.19) and (4.3.20) (this latter
condition might be partially fulfilled, as explained above). If these
conditions are met we may state that the linear model of the robotic
system is exponentially stable around the point x O , u O [3] with expo-
nential stability degree a. We can also state that the linear model
has no overshoots. However, by this the exponential stability of the
entire nonlinear model of the system is not proved, which means that
we cannot guarantee that the actual system will have the satisfactory
performance if several joints are moving simultaneously*). If the con-
dition (4.3.19) is not met (even for a=O.) we may state that the robot
system is not stable. Namely, the stability of linear model of the ro-
bot gives necessary (but not sufficient) conditions for stability of
the nonlinear model of the robotic system. Therefore, if condition
(4.3.19) is not met we may be sure that the synthesized local servo
systems do not ensure satisfactory performance of the robot. In that
case there is no need for further analysis of the stability of the non-
linear model of the robot, but we have to re-select the local control-
lers until we stabilize the linear model of the system. When we deter-
mine the local servos which stabilize the linear model of the system,
we have to examine the stability of the nonlinear model of the system
(see Appendix 4.A).
*) It has been shown [6] that the robotic system in general can be
asymptotically stabilized around the desired positions of the
jOints if we close local servo feedback loops by position error and
by velocity. However, the exponential stability of the nonlinear
model of the rObot is not gUaranteed if the linear model is expo-
nentially stable. Also we cannot guarantee that nonlinear model
will have no overshoots. The tracking of input trajectories by lo-
cal servos if several jOints are moving simultaneously must be exa-
mined for each particular robot separately (see Appendix 4.A).
173
We have presented above how we can form the linear model matrices of
the closed-loop robotic system if only local static servo systems are
applied. It is easy to extend this procedure to the case when local
dynamic controllers are applied. It is quite obvious that in that ca-
se the order of the entire model of the system becomes higher (for
example if in n=6 jOints we apply PID controllers, and if we consider
the models of actuators of the orders n i =3, the matrix of the linear
model of the system is of the order nx(ni+1)=24 - see Exercise 4.9).
Up to now we have considered the linear model of the robot around one
point x O in the state space (and around the corresponding nominal con-
trol signals u O which satisfiy (4.3.2». As we can see in equations
(4.3.8), (4.3.9) the values of the elements of the matrices of the
linear model of robot depend on the point x O around which the nonline-
ar model is linearized. (As we already explained the inertia matrix H
depends on the jOints positions qO and the vector h depends on the
joints positions qO and velocities qo). Therefore, in general case,
for various pOints in the state space X O we obtain various linear
models of the system. If we consider eigen-values of the open-loop
linear model matrix, we see that they move in the complex plane as it
is moving the point X O in the state space around which the system is
linearized. If we select the local feedback gains, the matrix of the
closed-loop linear model of the entire robot varies depending on the
point xc, and therefore its eigen-values also vary. According to this
considerations, if we want to examine the performance of the robot
when the local controllers are applied and when the several joints are
moVing simultaneously, we have to examine the linear model of the ro-
bot around. several points in the state space. Theoretically, we should
eXa!l\ine the system in the infinite number of points xO, but practical-
ly this can be redllced to examination several "characteristic" points
in t.h.e state space. It cannot be precisely defined around which and
around. how !l\any points in the state space we have to determine the
linear models of the robot and to analyze the system stability. For
each particular robotic system we have to analyze variations of the
eigen-values of the system depending on the pOint in the state space arollnd.
which the system is linearized. In this way, we have to examine whether
174
the conditions (4.3.19) and (4.3.20) are met for "all" points in the
state space (i.e. for all possible positions and velocities of the ro-
bot joints), and to examine whether the local controllers stabilize
the robotic system in the "entire" state space*). Namely, the goal is
to determine such local controllers which will ensure stability of the
robotic system around "all" points in the state space. Since the line-
ar model of the robot varies as varies the point around which the sys-
tem is considered, to keep the eigen-values of the linear model in
approximately fixed positions in the complex plane (i.e. to ensure
uniform performance of the robot independently on the specified goal
positions of the robot) we should have to apply variable local gains.
Actually, we should have to apply gains which vary in dependence on
the actual positions (and velocities) of the robot joints. However,
the implementation of the variable feedback gains is not simple, so
we prefer to apply such unique local feedback gains, which could ensu-
re that the robot performance is (approximatively) uniform in all po-
ints in the state space. Therefore, the aim is to determine such fe-
edback gains which ensure that the positions of the dominant eigen-
-values in the complex plane of the linear model of the robot move mi-
nimally if the point X O around which the system is linearized is "mo-
ving" in the state space. Selection of such uniform local controllers,
might be realized by various iterative procedures set at a digital
computer (see Chapter 5).
Example 4.3.2. For the robot in Fig. 3.2. the matrices of the open-loop
linear model have been determined in Example 4.3.1. For all three jo-
ints the local static controllers have been synthesized (see Example
3.3.2). The feedback loops by position and velocity of the jOint have
been introduced in local servo. Data on actuators have been given in
Table 3.1. and data on the robot mechanism have been given in Table
3.2. In Table 4.1. the local feedback gains are given and eigen-values
of the local decoupled subsystems (i.e. if each joint with its actua-
tor is considered independently on the rest of the system). Based on
(4.3.17) the eigen-values of the matrix of the linear model of the en-
tire closed-loop robotic system are determined. These eigen-values are
given in Table 4.1, too. The eigen-values of the open-loop linear
"')
It is obvious that the state space of each particular robotic sys-
tem is limited by the kinematic constraints (allowable rotations or
displacements of the robot jOints) and by the actuators capabiliti-
es (in regard to the allowable velocities and accelerations of the
jOints) .
175
Re(s)=-3
o - decoupled servo systems
• - matrix of the open-loop
linear model of robot
x - matrix of the closed-loop
linear model of robot
Re(s)
-90 -45 -24 -22 -14 -10 -6 -4
model of the entire robot are also given in Table 4.1. The eigen-va-
lues in all three cases (eigen-values of the local decoupled servos,
eigen-values of the open-loop and closed-loop linear model of the ro-
bot) are presented in Fig. 4.3. in the complex plane. We see that the
176
E X ere t s e s
4.8. For the robot in Fig. 3.2. (which has been considered in Example
3.2, local serVO gains are given in Table 4.1, data on the robot
are given in Tables 3.1. and 3.2.) write the matrix of the linear
model with the closed local servo loops and check the eigen-valu-
es given in Table 4.1.
4.9. Starting from the matrices of the open-loop linear model (4.3.8),
write the expressions for the matrices of system with the closed
local servo loops, if in all n joints PID controllers are applied
(i.e. if local feedback loops by position error, velocity and in-
tegral of position error are introduced around each jOint). For
the robot in Fig. 3.2. (for which the matrices of the open-loop
linear model are given by (4.3.14)) write the expression for the
matrix of the linear model if in all three jOints are applied PID
controllers (write this matrix as a function of local servo gains) .
4.10. For the robot in Fig. 2.5. the matrices of the open-loop linear
mod.el have been determined in Exercise 4.6. Determine the matrix
of the closed-loop linear model in the following cases: a) if in
all joints just local position feedback loops are introduced,
b) if in all joints local position and velocity feedback loops
are introduced, c) if in all joints local PID controllers are ap-
plied.
4.11. In Exercise 4.7. the matrices of linear model of the robot inFig.
2.5. are determined around three different "nominal" states. Lo-
cal serVO systems have been synthesized and the obtained servo
feedback loops are given in Table 4.2. Determine the matrices of
the linear model of the robot if these local controllers are ap-
177
plied. Determine these matrices for the same three "nominal" sta-
tes as in Exercise 4.7.
~
Position Velocity
feedback feedback gain
Joint gain [Nm/rad] [Nm/rad/s]
[N/m] [N/m/s]
1 40.2 11.9
2 1723.8 17.
3 1036.3 10.4
Table 4.2. Local servo gains for robot in Fig. 2.5. (data on robot
are given in Tables 3.3. and 3.4)
during positioning of the jOints are "strong", the local servos might
become inefficient for simultaneous position control. By analysis of
stability of robot around the set goal positions of the joints we may
check whether the local servos, synthesized for each joint indepen-
dently, are sufficient to ensure satisfactory simultaneous positioning
of the robot. Instead approximative linear analysis presented in previ-
ous section, we have to analyze the entire nonlinear model of the ro-
bot (see Appendix 4.A). If the analysis shows that the robot positio-
ning is not satisfactory (regarding the speed of transient process etc.)
when selected local servos are applied, we have to re-select local
servos. Local servos can usually ensure efficient simultaneous positi-
oning of robot jOints.
Let assume that desired path of the robot hand is assigned by specifica-
tion of external coordinates of the robot as a function of time sO(t)
(by this also the desired velocities and accelerations of the robot
hand are given). At the tactical control level trajectories of the
jOints are computed qOi(t) to correspond to the set desired path
179
of the endeffector sO (t) . The computed trajectories qOi (t) of the joints
are forwarded to local servos which have to ensure their tracking, i.e.
they have to ensure that the actual joint angles are as close as pos-
sible to qOi(t) at each moment t during the task execution (and by
this to achieve that actual joint velocities q(t) are as close to de-
sired trajectories gO(t), and the same holds for accelerations). The
problem is whether the local servos systems can adequately track input
trajectories qOi(t) if all joints of the robot are moving simultane-
ously. Actually, our problem is to examine whether the local servo sys-
tems can ensure tracking of jOints trajectories and realization of the
desired gripper movement.
where notations have been explained in Sect. 3.3. Local nominal con-
trol is synthesized to satisfy the following equations*):
·oi ~i oi ~i oi
x A x + b uL (4.4.2)
where xOi (t) is the nominal trajectory of the i-th subsystem. (Under
subsystem we assume actuator and joint if all the other joints are
locked, and the subsystem model is given by (4.4.1)). Calculation of
the local nominal contpol u~i(t) has been presented in Sect. 3.5. This
local nominal control ensures implementation of nominal trajectories
for decoupled subsystems (4.4.1) assuming that no perturbation is ac-
ting upon the system, that the model is perfect and that xi(O)=xoi(O).
*) For the sake of simplicity we shall assume that the local nominal
control is synthesized using the same H.. as for the synthesis of
the local servo gains, although this is~~not appropriate approach
(see Sect. 3.5).
180
·i A i Ai i
~x = A~x + b ~u (4.4.3)
(4.4.4)
assuming that only the position and velocity feedback loops are intro-
duced. Obviously, such control is very simple: each joint is
controlled independently from the rest of the system. Each local con-
troller has only information on the actual state of the corresponding
joint (position and velocity). Therefore, such local controllers re-
present decentralized control of robot.
(4.4.5)
If we compare the model of entire robot when all joints are moving
simultaneously (4.4.5), with the model of decoupled subsystems (4.4.1),
we can see that the coupling between the joints has not been taken
into account in control law (4.4.4). The coupling between the actuators
181
(4.4.6)
(4.4.7)
has not been taken into account, which means that effects of dynamic
interconnections between the actuators are not compensated by the lo-
cal controllers (4.4.4). We have to examine the influence of these
factors (4.4.7) upon the stability of the entire robot around the no-
minal trajectories. In other words, we have to examine whether the
dynamics of the robotic system (4.4.7) which has not been taken in the
synthesis of the control (4.4.4) can "spoil" tracking of the desired
nominal trajectories. To answer these questions we have to analyze so-
-called practical stability of the system around the nominal trajecto-
ry x O (t)=(x 01 (t), x 02 (t), ... ,x on (t)). lfowever, this analysis is o~t of
the scope of this book and it can be found elsewhere [7, 8]. Byanaly-
sis of the practical stability of the robot around the nominal trajec-
tory we get an answer to the question whether the control law (4.4.4)
is able to overcome the effects of the factor (4.4.7) upon the stabi-
lity of the robot. If the influence of coupling is relatively weak,
the decentralized control (4.4.4) might overcome it, and the implemen-
tation of the imposed nominal trajectories of the jointsqOi(t) can be
ensured, regardless the fact that in the control synthesis we have not
taken into account the actual coupling between the jOints. In such a
case, the control (4.4.4) would be sufficient to realize simultaneous
tracking of all nominal trajectories of the joints, and by this to
realize desired nominal path of the robot hand.
The scheme of the control (4.4.4) is presented in Fig. 4.4. The con-
trol represents n local controllers around the robot jOints. The de-
centralized structure of this control is quite obvious. The main
182
a.. <=
a..
f-
0:: <=
CT <
a.. ..c::
CT
f-
-' 0 +
<
U
co
0
:0-
...... 0:: :r:
Z
'0- <
::c
lL.
<=
u
C)
a.. 'CT
w
::E:
1
I
I
I
0:: 0:: I
C)
f-
<
I;:: I
=> I~ I
f-
u It; I
< 1<
L_,......-:-~ _________ --l L __ _
-~
I
.....
LOCal
......----'""-... nominal
control
However, we must underline once again that the control (4.4.4) does
not compensate for the dynamic coupling between joints, and, there-
fore, the tracking of fast trajectories by such control might be poor.
If relatively slow trajectories are to be realized (so that the dyna-
mic coupling between jOints is relatively weak) and if high accuracy
in trajectory tracking is not required, then the local controllers are
usually sufficient. This is specially the case if powerful actuators
and reducers with high reduction ratio are applied. In that case the
constant value of the equivalent moment of inertia of the actuator is
high relative to the variable values of the moment of inertia of the
mechanism, and, as we have seen in Section 3.4.4, the equivalent moment
of inertia of the actuator masks the effects of the variable moment of
inertia of the mechanism. Powerful actuators and reducers might reduce
to a high extend relative effects of coupling upon the behaviour of
local servos. If the powerful actuators are applied, then relatively
high local gains might be applied and local servos are less sensitive
to effects of an external load (dynamic coupling) upon them.
Example 4.4. For the robot in Fig. 3.2. we have synthesized local con-
trollers (4.4.4) around its joints in Examples 3.3.2, 3.5. and 4.3.2.
(local nominal control and local servo feedback gains). The nominal
trajectories of the robot joints are selected in such a way that the
joints move from the point A defined by coordinates (0.0 [radl, 0.4
[radl, 0.0 [ml) towards the point B with coordinates (0.5 [radl,
'85
0.6 [radl, 0.08 [ml). The joints velocities have triangular profiles.
The movement should be accomplished in T = , [sl. The desired nominal
trajectories of the joints are given in Fig. 4.5. The digital simula-
tion of simultaneous tracking of these nominal trajectories by the
synthesized local controllers are presented in Fig. 4.6. (for all
three jOints).
--
-- ..----
0.6
0.5
......
.. '
.. '
............ .
0.3
qOl ..•..••.....
0.2
.........
0.1
........
.... .. '
E X ere 1 s e s
4.12. Draw detail scheme of control considered in Example 4.4 fo~ the
robot in Fig. 3.2. The control includes local nominal control
and local (static) servo systems in all three joints (feedback
loops by position and by velocity as in (4.4.4)). Which is the
total number of feedback loops in this control scheme?
186
0 ;-
--
0.2 0.4 0.6
0 t[S]
loca 1 nominal
/ control
-0.05 I
/ --- without local
-- -- ...- ./
nomi na 1
control
-0.1
Lql[rad]
,...-
;-
0.02
0.03
C.04
0.05
Lq2[rad]
0 ..
.2 0.4 0.6 0.8 y.~ t[s]
I
/ - .... , /
I
/
-0.005 /
""- /
/
I
I
I
"- ,, /
/
/
"
I /
~
-0.01 .... ---..".,/ /
Lq3[m]
In the previous text we have explained that the simple local control-
lers cannot always ensure simultaneous motions of the robot jOints
along desire nominal trajectories. It is often required to apply some
control law which takes into account dynamic coupling between the mo-
tions of the joints. A possible extension of decentralized control is
to introduce so-called centralized nominal programed control.
tE (0, T) (4.4.8)
(a) the actual initial state of the system x(O) has to coincide with
the nominal initial state x(O) = xO(O),
(b) the model of the entire system (4.4.8) must be perfect (all para-
meters of the system must be perfectly identified, etc.),
If all these conditions are satisfied, the signals uOi(t) would drive
the robot joints so that their angles vary in ti~e as prescribed
qOi(t). Thus, if the control satisfying (4.4.8) is applied, the system
is in equilibrium along the trajectory XOi(t).
The model of deviation of the system state around the nominal trajec-
tory xOi(t) and the nominal control uOi(t) can be observed. The model
of deviation is obtained in the form which is equivalent to the model
of deviation around the point xO, u O (4.3.3):
(4.4.9)
We have to keep in mind that the Nxl vector a and the Nxn matrix Bare
time variable functions of 6x(t) since they depend on nominal trajec-
tory xO(t). Similarly, the constraint upon the amplitude of the input
signals u i becomes time dependent N(uoi(t), 6U i ) since it depends on
uOi(t). The model of deviation is in equilibrium for 6x = O. (since if
6u = 0, then it follows 6x = 0.).
(4.4.10)
where the matrices AL(NXN) and BL(Nxn) are, now, time dependent, since
they depend on nominal trajectory. Now, we should analyze stability of
time-variable linear model. However, it is sufficient to consider li-
near model of the robot in a several "characteristic" points at the
nominal trajectory and we have to examine eigen-values of the matrices
of these linear models.
Let us briefly explain the above statement that the nominal centrali-
zed control uO(t) reduces the effects of coupling between the jOints.
Let us consider the model of the robot in the form (4.4.5). The centra-
lized nominal control satisfies (analogously to (4.4.8)):
xOi(t) (4.4.11 )
where p?(t) is the so-called nominal driving torque in the i-th joints
1.
which must satisfy:
p?(t) (4.4.12)
1.
where /lP i is the deviation of the moment from the nominal moment, but
for approximative model of the robot dynamics (4.4.6). Therefore, /lP i
is given by
(4.4.15)
where H11
.. is the estimated constant value of the moment of inertia of
the mechanism around the i-th joint. It is obvious that the model
(4.4.14) represents the set of models of the individual jOints and
their actuators considered independently one from another. Now, the
control /lUi, which stabilizes the model (4.4.14), can be obtained as
a set of local servo systems around the robot joints. The local servos
can be synthesized for each joint independently from the other jOints.
The synthesis of such independent local servos has been considered in
Chapter 3. The local servo systems stabilize the approximative model
of deviation (4.4.14). The local servo systems are synthesized to sta-
bilize each joint decoupled from the other joints. If just position
and velocity servo loops are introduced in each local servo, then the
control signal for each actuator is obtained as
(4.4.16)
If we apply the control presented in Fig. 4.7, we may guarantee that the
approximative model of the robot dynamics (4.4.14), (4.4.15) is stabi-
lized around the nominal trajectory xOi(t). However, it is qUite obvi-
ous that this control does not guarantee the stabilization of the "ac-
tual" model of the robot (4.4.13). The actual coupling between the jo-
ints of the robot is not described by (4.4.15) (as assumed in synthe-
sis of local servos), but actual coupling are total dynamic moment in
the joints:
(4.4.17)
The local servo systems stabilize the decoupled models of the joints
(and actuators) in which the actual coupling between the jOints 6P i is
neglected. Therefore, the actual coupling between the joints 6P i (i.e.
the deviation of the actual coupling from the nominal coupling P~(t))
l
has not been compensated neither by local servo systems, nor by nominal
centralized control. Actually, the difference:
(4.4.18 )
has not been taken into account in the synthesis of the control (4.4.16).
Therefore, we have to examine the effects of these factors upon the
stability of the robot system. This analysis is presented in Appendix
4.A.2. If the effects of these "factors" upon the stability of the en-
tire system is relatively "weak", then the control (4.4.16) is suffi-
cient to stabilize the robot and to ensure acceptable tracking of the
nominal trajectory.
r l
I
I
I
c
<I- I
I I
I I
I :CT
I I I
I I I
I-
I I I
I I
I I
I I I
I I I
I I I
I I I
I 1
I
I
I c
I 16 1
I I!;;:
=>
I
I It; I
- - - - - - - -~ I_~ ____ ~:o_ _____ J
o c
:0 o
:0
+
NOMINAL
CENTRALIZED
CONTROL
'0
x
Fig. 4.7. Control scheme: local servo systems and centralized
nominal control
194
coupling (4.4.7) upon the system performance (when just local control-
lers (4.4.4) are applied), might be considerably stronger than the ef-
fects of the difference between the actual and nominal coupling (4.4.18)
(which is uncompensated in the case when the centralized nominal con-
trol is added to local servos). In other words, the stabilization of
the robot around the nominal trajectory is much efficient if centrali-
zed nominal control is applied than if just local controllers with lo-
cal nominal control are applied.
(4.4.19 )
The state vector of the system in this case is given by x(t)=(x 1T (t),
x 2T (t), ... ,x nT (t))T = (ql, ~1, q2, ~2, ... ,qn, ~n)T. If the trajectori-
es of the jOint angles (linear displacements) qOi(t) and of the velo-
cities ~Oi(t) are given, by differentation we can get the desired va-
riation of the joint accelerations qOi(t) along the nominal trajecto-
ries. On the basis of the dynamic model of the mechanical part of the
system (3.2.2), nominal driving torques P~(t) can be computed accor-
~
(4.4.20)
(4.4.21)
If (4.4.21) is not fulfilled for any joint, that means that the given
nominal trajectory cannot be realized by the particular robot and its
actuators. In that case we have either to slow down the desired motion
of the robot, or, if the robot is under design, we may re-select actu-
ators (see Sect. 3.5).
*)
The nominal control might be computed and memorized with lower sa.m-
pIing rate then 10-15 [ms], and then, in on-line control the compu-
ter can determine the nominal control signals by interpolation bet-
ween the memorized values.
197
In modern industry it is usually required that the robot plans its mo-
vements in real time (using information, obtained from cameras or other
sensors, on actual state in its workspace or using information from
other subsystems, conveyers, other robots cooperating in the same pro-
cess and so on). In such tasks many parameters are unknown in advanced
and they might vary during tasks executions. In such tasks application
of nominal centralized control is not efficient. The decentralized con-
trol (4.4.4) which includes local nominal control is much simpler for
198
Example 4.4.1. For the robot in Fig. 3.2. the nominal trajectories of
the joints have been given in Fig. 4.5. Based on these trajectories
qOi(t) we can easely obtain the velocities of the joints qOi(t) and
corresponding accelerations qOi(t). Based on dynamic model of the mec-
hanical part of the robot (3.2.3) and corresponding data (given in
Table 3.2), we calculate the nominal driving torques which are presen-
ted in Fig. 4.8. Based on the models of actuators (D.C. electro-motors
- data on which are given in Table 3.1) we compute centralized nominal
programmed control for all three joints (eq. (4.4.20)). The centrali-
zed nominal control is presented in Fig. 4.9.
1' 2 pO [N]
7 3
--P1 o t-----+---+----+--+-~f----_____<_
p~
0.2 0.4 0.6 0.8 1.0 t[s]
4 L
I -20
o
0.2 0.4 G.6 0.8 1 t[ s]
-40
-4
-7
The linearized model of this robot has been presented in Example 4.3.1.
The matrices of the linearized model are given by (4.3.13). The varia-
tions of the elements of the linearized model of the robot along the
nominal trajectories in Fig. 4.5. are presented in Fig. 4.10 (AL =
[a .. ], BL = [b .. ]). The eigen-values a of the matrices of the open-
1J 11
-loop linearized model of the robot AL also very along the nominal
trajectories as presented in Fig. 4.11. Let us assume that at the
199
20
10
o
.0 t[sl
02-
u
-18
--
0.5
a 21
02 0.5 C.8 1. t[s]
-1. !---
............... a
22
inputs of the actuators are fed the nominal centralized control sig-
nals (from Fig. 4.9) and that the local servos with constant feed-
back gains are applied. If the local servo feedback loops are closed
with the feedback gains given in Table 4.1 (see Example 4.3.2), then
the eigen-values of the matrix of the linearized model of the robot
also varies along nominal trajectories as presented in Fig. 4.12.
However, based on Fig. 4.12 we can conclude that the eigen-values of
the matrix of the closed-loop system vary slightly and that they stay
200
at the left hand side from the line Re(s)=-3 along the entire nominal
trajectory. This means that the linearized model of the system around
the nominal trajectory is exponentially stable with stability degree
of a=3. Since all eigen-values of the closed-loop system matrix are
real along the nominal trajectory, this means that the local servos
together with the nominal programmed control UOi(t) are sufficiently
robust to ensure satisfactory performances of the linearized model of
the robot along the nominal trajectory. However, the problem is whe-
ther such control can satisfy nonlinear model of the robot, or we
must introduce variable local gains, or additional global control
has to be applied.
Re(a)
0.05
-16.+----------------------------------
=
-45.+----------------------------------
-3
-14. ~-------------------------------------
-24.+-______________________________________
-25.+---------------------------------------
-96.r---------------------------------------
Re(a)
Fig. 4.12. Variation of eigen-values of matrix of closed-loop
linearized model of robot along nominal trajectory
201
Exercises
4.17. For the robot in Fig. 2.5. the trajectories of the joints are
given by the following time functions:
2
- -;- - t 2 ) 0.5<t'::1[s], where a 1 0.5 [ra2d],
s
3 0.4 [m2 ],
a T = 1 [s]
s
Compute the nominal driving torques if all data on the mecha-
nism are given in Table 3.4. and compute the centralized nomi-
nal control if the models of actuators are of the second order
and if data on D.C. electro-motors are given in Table 3.3.
4.18. For the robot considered in the previous exercise compute the
local nominal control and compare it with the centralized no-
minal control.
4.19. For the robot in Example 4.4.1. check whether the nominal dri-
ving torques are corectly computed (Fig. 4.8) in the following
time instants t=O., t=T/2, and t=T. Also check the nominal con-
trol (Fig. 4.9).
(I'It - small),
4.21. Calculate the nominal programmed control for the robot in Ex-
ample 4.4.1. if all models of actuators are of the third orders,
using the expressions given in Exercise 4.20. Compare these re-
sults with the nominal control presented in Fig. 4.9.
References
[3] ~edvedov S., Leskov A., Juschenko A., Control Systems of Manipu-
lation Robots, (in Russian), Monograph, "Nauka", Moscow, 1978.
[5] Chen C.-T., Linear System Theory and Design, Holt, Rinehart and
Winston, New York, 1984.
[6] Takigaki M., Arimoto S., "A New Feedback Method for Dynamic Con-
trol of Manipulators", Trans. of the ASME, Journal of Dynamic
Systems, Measurement a,nd Control, Vol. 103, No 2, 1981.
[8) Vukobratovi6 M., Stoki6 D., Kir6anski N., Non-Adaptive and Adap-
tive Control of Manipulation Robots, Monograph, Series: Scienti-
fic Fundamentals of Robotics 5., Springer-Verla,g, Berlin, 1985.
Appendix 4.A
Stability Analysis of Nonlinear Model of Robot
We shall analyze the stability of the nonlinear model of robot when the
local servo systems are applied and when all joints might move simul-
taneously. First we shall consider the stability of the robot when it
has to be positioned in various positions in work space. In doing this
we assume that the control signals which compensate for gravi ty moments
(forces) in the goal position, are implemented. Therefore, the imposed
goal positions might be regarded as equilibrium points in the state
space, and we may analyze the asymptotic (or exponential) stability of
the robot around these imposed goal positions.
Next, we shall analyze the stability of the system around the nominal
trajectory, i.e. we shall examine the robot capability to realize the
desired trajectories. We shall assume that besides the local servo sy-
stems, the nominal centralized control is also applied. The applicati-
on of the centralized nominal control (as we have explained in Section
4.4.1) ensures that the robotic system is in equilibrium along the nomi-
205
where flx(t) = x(t)-x o is the deviation of the system state from the
equilibrium state xO, implies
206
and that there exists a number ~>O such that I 11Ix(o) I I<~ implies
(4.A.4)
Here, we have presented just a few general notes on the direct Liapu-
nov's method for the stability analysis. The basic problem in applica-
tion of this method to analysis of stability of large scale nonlinear
systems lies in the selection of the adequate Liapunov's function: the
complex high order nonlinear system (which means the system with high
number of the state coordinates) is substituted by a scalar function.
To minimize the conservatism of this method, a number of aggregate-
-decomposition methods for stability analysis of large-scale systems
208
has been developed. The basic idea of all these methods is to ensure
the least conservative tests of the system stability by an insight in
the physical structure of the system. Actually, the idea is to "use"
the system structure in the stability analysis. In this it is assurnrned
that the majority of the large-scale systems might be decomposed to a
number of subsystems of the lower order. In essence all aggregate-de-
composition methods for stability analysis follows the same procedure
[1] :
c) The conditions for the stability of the entire (complex) system are
determined on the basis of the quantitative estimates of the stabi-
lity of the local subsystems and on the basis of the quantitative
estimates of the interconnections between the subsystems.
Let us consider the model of the robotic system in the form of the mo-
dels of actuators (3.2.6) and the model of the mechanical part of the
system (3.2.2). Let us consider the model of deviation of the system
state around the desired (nominal) state X O (i.e. around the desired
position qO). Let us assume that the nominal control u O , which satis-
fies (4.3.2), is applied. Therefore it is fulfilled that xo=O. If the
control u O satisfies (4.3.2), then it must also satisfies the models
of actuators:
where p~ is the moment around the i-th jOint when the robot is in the
state x
6 (x o1T , x o2T , ... ,x onT )T:
(4 .A. 6)
210
The model of deviation of the system state and control of the i-th ac-
tuator from the desired state x O and the corresponding nominal control
u O can be written in the following form:
where lIx i is the deviation of the state vector of the i-th actuator
from the nominal state (position) lIx i = xi_xOi, lIU i is the deviation
i i oi
of the i-th input from the nominal signal lIu = u -u , lIP i is the de-
viation of the driving torque from its nominal value, liP. = P.-P~, and
111
this deviation of the driving torque is described by the model of the
mechanical part of the system:
o .. 0 •
lIP i = Hi(q, lIq)lIq+h i (q, lIq, lIq), i=l, 2, ... ,n (4.A.8)
i oi
q -q
·i
lIx i=1,2, ... ,n (4 .A. 9)
The model (4.A.9) describes the motion of the i-th actuator and the
i-th joint when all the other jOint are kept locked. When the joints
are moving simultaneously the model of the state deviation around the
nominal is given by (4.A.7) and (4.A.8). By combining (4.A.9), (4.A.7)
and (4.A.8) the model of the deviation of the state of the robotic sy-
stem from the nominal can be written in the following form:
·i
lIx (4.A.10)
i=1,2, ... ,n
It is very simple to show that the models (4 .A. 7), (4 .A. 8) and (4 .A.1 0) ,
(4.A.11) are equivalent.
We have assumed that the robot has to be positioned in the position qO,
i.e. we want to stabilize the robot around the state x o = (xo 1T , x 02T ,
... ,xonT)T, where x Oi = (qOi, O)T*). In this we shall assume that we
want to ensure positioning of the robot for some limited (allowed)vari-
ation of the joints angles, i.e. we shall assume that the variation of
the angle of the i-th joint must satisfy
*) If we consider the third order model of the actuator n.=3 the nomi-
nal state of the actuator is defined by xOi = (Oi
q , 0 ,1R
1.Oi)T where
i~i is the nominal value of the current in the rotor curcuit for
the given nominal positions qO of the robot joints.
212
(4.A.12)
where 6Q!ax is the maximal allow~d deviation of the angle of the i-th
joint from the given position qOl. This also means that the initial
position of the joint qi(O) must satisfy (4.A.12). Let us assume that
we have synthesized local controller around the i-th joint in the form
(static controller - see Section 3.3).
Due to amplitude constraint upon the input (4.3.4) and limited varia-
tions of the joint angle (displacement) (4.A.12), on the basis of
(4 .A.14)
we may determine the contraint upon the velocity of the i-th joint
(4.A.15)
Constraints (4.A.12) and (4.A.15) define the finite set, in the state
space of the i-th subsystem, for which we have to ensure the robot po-
sitioning. In other words, we have to ensure stability of the robot
around the nominal point x Oi for all states in the finite region (in
the i-th subsystem state space) which is defined by (4.A.12) and (4.A.15).
This finite set of states (finite region) is presented in Fig. 4.A.1.
(similar to Fig. 3.17).
X.
l
(4.A.16)
If we define such sets Xi for all n jOints of the robot, then for the
entire robot is defined the set X which represents the product of the
sets Xi corresponding to subsystems, i.e. in the state space of the
entire system, the region X is defined by:
(4.A.17)
The region (4.A.17) in the state space of the robot (the dimension of
this space is N) can be written as:
213
II 1 IU 01 _K 1 l1ql_K 1 l1ql I 1
X {x: IlIq 1 I < qmax' P v
< u
m'
2 02 2 2 2·2 2
IlIq21 < lIqmax' lu -Kpllq -Kv llq I < u rn I •••
·i
i\q
i oi
[= urn +U
V. (4.A.20)
1
T ·i
vi(along solution of (4.A.19»=(gradv i ) 6x
(4.A.21l
It can be shown that for the stability analysis of the entire system
it is the most convinient if the subsystems Liapunov's functions are
selected in such a way that it is satisfied*):
(4.A.23)
or A.
1
=t-o~ w~l-W 1
i
-0 1
i
(4 .A. 24)
i i i .
where -0 1 , -0 2 or -0 1 ± w~ are the eigen-values of the matrix.of.the
(4.A.25)
H. (4.A.26)
1
2A.H.
1 1
(4.A.27)
.
vi(along solution of (4.A.19)) I1x
iT
A.H.l1x
1
A
1-
i
Iv.1 <
-
< -minlo~lv.
J 1
<
-
-S.v.
1- 1
(4 .A. 28)
(4.A.29)
Since we have assumed that the subsystem state vector t.x i belongs to
region (finite set) Xi (and therefore in (4.)1..19) and (4.A.21) we have
not taken into account the constraints upon the input amplitude), we
may state that the differential inequality (4.A.22) is satisfied for
the re9ion Xi' In other words, if the initial conditions are such that
(4.A.16) is satisfied, then the local subsystem is exponentially stab-
le with the stability degree 6 i .
(4 .A. 30)
I
I
I
I
I
I ;
I Vl~
10
>Vl! >V.
10 10
NOw, let us proceed to the third step in the stability analysis of the
entire robotic system. The selected Liapunov's functions candidates vi
guarantee stability of the local sUbsystems if the coupling between
them is completely ignored. (If the subsystems are actually decoupled
this will guarantee the stability of the entire system). We have to
estimate quantitatively the nonlinear coupling between the subsystems.
As we have already said, the coupling between the subsystems is given
... i - -
by f ~Pi where ~Pi is given by (4.A.11). According to the model of the
mechanical part of the system (4.A.11), the driving torques Pi are the
complex nonlinear functions of system state. Therefore to estimate the
coupling might be very complex job. It is obvious that:
since ~x ~ 0 means that ~qi ~ 0, ~qi ~ 0 and ~qi ~ 0 for all joints.
Therefore, we may determine the numbers ~ij which satisfy the inequa-
lities:
T~i - ~
(gradv<) f ~P< < L ~ .. v., i=1,2, ... ,n (4.A.32)
~ ~ j=1 ~J J
for all values of the state vector ~x which belong to the region X
(4.A.18). ~ve have to determine such number Sij which ensures that the
inequalities (4.A.32) are fulfilled for all possible values of the
state vector of the robotic system x belonging to the region X. In
this, the numbers Sij must satisfy:
218
~ ..
~J
>
-
0 for i '* j (4.A.33)
where max denotes max vi of all vi' i=1,2, ••. ,n (and not the maximum
of the derivative vi)'
The first derivative of the Liapunov's function for the i-th subsystem
must satisfy:
T ·i
vi(along solution of (4.A.10» = (gradvi ) ~x
Taking into account that the local control has been introduced in the
form (4.A.13) and that we consider only solutions of the system which
completely belong to the finite region X given by (4.A.18), we may
write:
(4 .A. 37)
n
vi(along solution of (4.A.10» ~ -Sivi + L sl.J
j =1
.. v J' (4.A.38)
Let us note that the expressions (4.A.38) are valid for all subsystems
(for each i=1,2, ..• ,n) if the system state belongs to the region X.
Let us restrict our consideration to the case when the system state
belongs to the region X given by
(4.A.39)
This means that if the conditions (4.A.41) are fulfilled, then the
following relation is then the following relation is also fulfilled
(taking into account (4.A.35) and (4.A.38»:
(4.A.44)
where <5.. is the Kronecker's symbol (<5 •• = 0 for i*j, <5 •. = 1 for i=j). Let
1J 1J 1J T
us introduce an nx1 vector Vo which is given by v 0 = (v 10' v 20'···'v no) . Now,
the conditions (4.A.41) might be written in the following form:
Gv o < 0 (4.A.45)
of the nonlinear model of the robot starting from any state which be-
longs to the finite region X must terminate in the desired nominal
state x O , assuming that just the local controllers (4.A.13) are applied.
Even more, based on the above analysis we may estimate the speed by
which the robot positioning will be realized (i.e. how fast will the
robot be driven towards the desired position qO). Based on (4.A.35),
if follows:
v (x ( t» < v (x ( 0) ) exp ( - 11 t ) (4 . A. 46 )
n
min 1- S . v. + I ~ .. v. I /v. (4 .A. 47)
i=l,2, ... ,n l lO j=l lJ JO lO
Based on (4.A.46) we may estimate that the robot state approaches the
imposed state X O by the speed which is higher than exp(-11t), where 11
is given by (4.A.47). Based on (4.A.46) it follows:
1/2 A
max AM (H.)
IllIx(t) II < i=l,2: ... ,n 1/2 Al IllIx(O) Ilexp(-11t) (4 .A. 48)
mln A (H.)
i=l,2, ... ,n m l
which means that the system is exponentially stable around the imposed
desired position with the exponential stability degree which is higher
or equal to 11 defined by (4.A.47). Now, we have just to check whether
it is fulfilled that 11>a, where a is desired exponential stability de-
gree.
It should be noticed that the numbers ~ij which fulfill (4.A.32) have
to be determined for the estimated regions X (4.A.39) and not for the
regions X (4.A.18), since the regions X are "inscribed" in the regions
X. By this we can obtain lower numbers ~ij' and the stability is any-
way proved just in the estimated regions X.
Let us consider the second order models of the actuators which might
be written in the following form:
i 1,2, ... ,n
Let us assume that local servo systems are applied which include per-
fect on-line compensation of gravity term, i.e. the actuator inputsig-
nals are computed as:
K
v
Since both matrices Kp and [H(g)+J] are positive definite, the Liapu-
nov's function candidate is positive v > 0 for all 6q and 6q, except
for 6g = 0., 6q = O. The first deviative of this function along the
solution of the system model is given by:
At this point we shall exploit the relation which is well known from
theory of robot dynamics:
Using this relation, we get for the derivative of the Liapunov's func-
tion candidate:
This means that the first derivative of the Liapunov's function of the
entire system is negative for all system states (save for 6q = 0, but
6q * 0 for g * gO).
Here, we shall consider the case when the centralized nominal program-
med control is applied.
Let us define the stability conditions of the system around the impo-
sed nominal trajectory. Here, we shall consider so-called praatiaal
stabi lity of the robot around the specified nominal traj ectory. We shall
not present in detail various definitions of the practical stability
of the system, since they can be found in the literature [12J. We shall
adopt a definition which is adequate for requirements appearing in ro-
botics. Let us assume that the nominal trajectory of the state vector
of the robot xO(t), tE (0, ,) is given. liVe assume that the trajectory
xO(t) is continual with respect to all coordinates of the state vector
x. Let us assume that the maximal deviation of the actual initial sta-
te x(O) from the nominal initial state xO(O) is defined by the positi-
ve number Xl such that
-I
Ilx(O) - xO(O) II < X (4.A.49)
where Xt>XI and a are positive numbers independent of Xl. This defini-
tion of the practical stability of the system in essence represents
the exponential stability of the system around the nominal trajectory
at the finite time interval and at the finite region in the state
226
Let us consider the case when the nominal control uO(t), tE(O, T) is
applied, which is synthesized based at the centralized model of the
robot, i.e. let us apply the control uO(t) which satisfies (4.4.11).
The task is to examine the stability of the model of deviation (4.4.13).
The practical stability of the robot around the specified trajectory,
when the nominal centralized control is applied, might be considered
as the problem of the exponential stability of the deviation model. Na-
mely, for the model of the state deviation (4.4.13), the followingsta-
tement holds: 6x=O and 6u=O implies 6X=O. This means that 6x=O is the
equilibrium point of the model of the state deviation. The conditions
of the practical stability (4.A.49), (4.A.50) of the robotic system around
the nominal trajectory xO(t) correspond to the following conditions of
the exponential stability of the model of deviations. If the model of
deviations (4.4.13) is exponentially stable around the point 6x=O with
the exponential stability degree greater or equal to a for all initial
conditions which satisfy
then the actual trajectory of the robot meet the condition (4.A.50) for
all initial states fulfilling (4.A.49), and therefore the robot is prac-
tically stable around the specified nominal trajectory. This means that
if we prove that the model of the state deviations around the nominal
(4.4.13) is exponentially stable around the point 6x=O, then we may
state that the robot is practically stable around the imposed nominal
trajectory in the sense of conditions (4.A.49), (4.A.50). We have to
note that, in the general case, the exponential stability of the model
of deviations is stronger condition than the practical stability of the
robot around the specified trajectory. However, it is simpler to exa-
mine the exponential stability of the model of the state deviations,
and, therefore, we shall apply this procedure: we shall examine the ex-
ponential stability of the model of the state deviations (4.3.22) and
by this we shall check if the robot is practically stable around the
set nominal trajectory.
the point ~x=O for all initial conditions which belong to the finite
region defined by (4.A.51). We shall examine the system stability if
the nominal centralized programmed control and the local servo systems,
synthesized for each actuator and joint independently (see Chapter 3) ,
are applied:
(4 .A. 52)
Let us consider the case when the static local servos are applied. The
stability analysis of the deviation model can be carried on analogous-
ly to the procedure presented in Appendix 4.A.1. for the case of robot
position control. The application of the agreggation-decomposition me-
thod for stability analysis of the complex nonlinear system is perfor-
med according to the steps described in the previous section.
(4 .A. 53)
(4.A.54)
(4.A.55)
-I -I
where the constraint Xi might be adopted as Xi
(4.A.58)
v. (4 .A. 59)
1.
*) The case when the set of states (4.A.57) is not the subset of
(4.A.56) we shall not consider. The solution to this case can be
found in [8].
229
where the matrix H.l. can be computed according to (4.A.27). In this ca-
se the first derivative of the Liapunov's function for the decoupled
subsystem (4.A.58) satisfies the condition:
(4 .A. 60)
vi(along the solution of (4.A.58)) ~ -Sivi
The next step in the stability analysis is to examine the coupling be-
tween the sUbsystems (4.A.53). The coupling between the subsystems is
given by ti~Pi where ~Pi is given by (4.A.11), i.e.
(4 .A. 61)
This means that the numbers ~ij have to be determined such that the
inequalities (4.A.63) are fulfilled for all deviations from the nomi-
nal trajectory xO(t) which satisfy the conditions (4.A.30). In deter-
mining the numbers ~ij we have to examine the deviation of the moment
Pi from P~(t) for "all" pOints along the nominal trajectory xO(t), i.e.
not just for the initial state xo(O), but along the "whole" trajectory,
for "each" tE(O, T).
We must keep in mind that the practical stability of the robot requi-
res that the system state belongs to the region given by (4.A.50),
(i.e. the region to which the actual state of the robot must belong is
exponentially "shrinking" around the nominal trajectory). Therefore,
the inequalities (4.A.63) must be fulfilled for all states around the
nominal trajectory which belong to the region (4.A.50). This region
might be estimated by the following region (expressed by the subsys-
tems Liapunov's functions):
(4.A.64)
X (t) = X1 (t) xX 2 (t) x ... xXn (t)
(4.A.65)
(4.A.66)
n
n . min I-Siv io + L~' .v. I/v. (4.A.67)
1=1,2, .•. ,n j::1 1J)0 10
We have to note once again that the basic drawback of the presented
procedure for the stability analysis of the robot lies in its conser-
vativity. The condition (4.11..65) might be too conservative. If the test
(4.11..65) is not fulfilled, the robot still might be practically stable
around the specified trajectory. Therefore, in analyzing the robotsta-
bility by the presented procedure we must carefully interpret the re-
sults of the test. In estimating of the stability degrees of the local
subsystems (the numbers Si) and in estimating of the coupling between
the subsystems (the numbers ~,,) we must try to get the best possible
1.J
estimates (i.e. to determine the largest numbers Si satisfying
(4.11..60), and the least numbers ~" satisfying (4.11..63».
1.J
References
[1] Biljak D.D., Large Scale Dynamic Systems, North Holland, 1978.
[2] Chen C.T., Linear System Theory and Design, Holt, Rinehart and
Winston, New York, 1984.
[4] Voronov A.A., "The State of the Art and Problems of the Theory of
Stability", (in Russian), Automatica and Remote Control, no. 1,
1983.
[8] Vukobratovic M., Stokic D., Kircanski N., Non-adaptive and Adap-
tive Control of Hanipulation Robots, Honograph, Series: Scienti-
fic Fundamentals of Robotics 5, Springer-Verlag, Berlin, 1985.
[10] Takegaki M., Arimoto 5., "A New Feedback Hethod for Dynamic Con-
trol of Manipulators", Trans. of the ASME, Journal of Dynamic
Systems, Heasurement and Control, Vol. 102, No.2, 1981.
[11] Arimoto S., Miyazaki F., "Stability and Robustness of PID Feed-
back Control of Robot Hanipulators of Sensory Capability", The
First Intern. Symposium on Robotics Research, 1983.
5.1 Introduction
First, let us consider the case when centralized nominal control, syn-
thesized using the complete model of robot (Fig. 4.7), it introduced.
The control already compensates for the nominal dynamic moments pO(t)
*) 1
(4.4.12) .
(5.2.1)
The model of deviation of the i-th actuator from the nominal dynamics
(i.e. around the nominal trajectory xO(t), and nominal centralized con-
trol U O (4.4.11» might be written in the form:
·i
t,x i=1,2, ... ,n (5.2.2)
where t,x i xi_xoi is the deviation of the actual state vector of the
i-th actuator around the nominal trajectory xOi(t), t,u i = ui_u oi is
deviation of the i-th input signal from the nominal control signal
uOi(t), and t,P. = P.-P~ is deviation of the i-th driving torque from
111
the nominal driving torque.
(5.2.3)
Local controller has been selected in the form of linear feedback con-
trol (in the case of static controllers):
(5.2.4)
where k i is the vector of feedback gains in the i-th servo. Local servos
(5.2.4) ensure stabilization of local decoupled subsystems (5.2.3),
i.e. they guarantee that the closed-loop local subsystems:
(5.2.5)
(5.2.6)
(5.2.7)
- ··i
In (5.2.7) the dynamics of the joint (represented by Hii~q ) has been
"submitted" from ~Pi since it has been included in the model of sub-
system (5.2.3) and compensated by local control. The difference betwe-
en the accurate model (5.2.6) and approximative model formed of decoupled
subsystems (5.2.3), is in the term fi~Pi. Obviously, the nominal pro-
237
grammed control (4.4.11) and the local control (5.2.4) do not compen-
sate for this term. This term represents interconnection (coupling)
between the subsystems (5.2.3) which has not been taken into account
neighter in nominal programmed control synthesis, (4.4.11), nor in
synthesis of local control (5.2.4). If the effects of this term are
strong, we have to introduce additional global control in order to com-
pensate for these effects.
(5.2.8)
where 6U? is the scalar global control which has to compensate for co-
l
upling between subsystems (5.2.3), i.e. to compensate for the effects
of the term f i 6P,. This term is given by (5.2.7) which obviously re-
1
presents dynamic forces which act upon the i-th joint due to the move-
ments of the other joints of the robots. Actually, this term represents
deviation of the dynamic forces from their nominal values. Since these
dynamic forces 6Pi enter linearly into the model (5.2.6), the global
control can be introduced in the following way. Let us assume that 6Pi*
represents some scalar function, measured or calculated, which corres-
ponds to deviation of the dynamic forces from nominal forces 6P i , i.e.
which satisfies the following inequality, (for all pOints in the state
space around the nominal trajectory xO(t»:
where sign() denotes the sign of the value in brackets. Thus, the glo-
bal control in the i-th joint (servo system) might be introduced in the
form [1]:
(5.2.10)
-G i
7
where by Ki (6x ) is d noted the scalar function of the state vector of
the i-th subsystem 6Xl. The function K?(6x i ) might be selected in va-
l
rious ways.
The aim is to ensure compensation for the coupling, i.e. for the dyna-
mic forces which act upon the i-th joint. If this global control is
238
applied in the i-th controller, then the model of deviation of the sy-
stem state from the nominal becomes:
(5.2.11 )
where, for the sake of simplicity, the amplitude constraint upon the
input signal has been ignored. It is obvious that K~(~xi) has to be
selected in such a way as to minimize the term
Let us assume that the model of the i-th actuator is of the second or-
der (n i =2). Then, the vectors fi and hi are in the following forms:
(5.2.12)
If we consider the model of the i-th sUbsystem (5.2.11) with the ap-
Ai -
plied global control, it is obvious that the effects of coupling f ~Pi
is compensated for, if the global control is introduced in the follow-
ing form:
(5.2.13 )
where K~>O is scalar global feedback gain. The selection of this glo-
~
bal gain will be adressed in the text to follow. NOw, the system model
becomes
(5.2.14 )
where amplitude constraint upon the input signal has been again igno-
red. The effect of coupling fi~p, has been reduced to fi(~p._K~~P~),
~ * ~ ~ ~
taking into account that the function ~Pi fulfilles (5.2.9). The sche-
me of such control (5.2.8), (5.2.13) is presented in Fig. 5.1.
However, such global control directly compensates for the coupling be-
tween the subsystems (i.e. the dynamic forces acting upon the i-th jo-
int), only if we adopt the second order models of actuators as suffi-
ciently accurate. The second order model of actuator is approximative
since it ignores the delay between the actuator input and the driving
torque (force produced by the actuator). If this delay cannot be igno-
red, the introduced global control cannot efficiently compensate for
'"'l
.....
LQ
l.n K~f1 /6 1
(l(')
o 0
::s ::s
rTrT
t1 t1
00
~~
. III COMPUTATION P1
~(l
~
240
Up to this point, we have considered the case when the global control
is applied together with local servo systems and the centralized nomi-
nal control. We have explained that the centralized nominal control
suffers from certain drawbacks. Thus, instead the centralized nominal
control we may apply local nominal control together with local servos,
which is much simpler for implementation (Fig. 4.4). However, the lo-
cal nominal control does not compensate even for the nominal dynamic
forces. Therefore,the effects of these forces upon the servo systems
performances are considerably stronger than in the previous case. This
(5.2.15)
sign(P *i (x» sign (P i (x) )
*
If such function Pi(x) is introduced, the global control might be re-
presented in the form (5.2.10):
~u~ (5.2.16)
l
~u~l (5.2.17)
Here K~>O again denotes scalar global gain. Next, we have to examine
directly the practical stability of the system if the following control
is applied:
(5.2.18)
i.e. if together with local nominal control and local servo feedback
loops we apply the global control (5.2.17). As we have already said,
the analYpis of the practical stability of the robotic system is out of
the scope of this book, and it can be found elsewhere [2J.
So f~r we have not explained yet how we can realize the functions *
~Pi
or Pi' which play the central roles in the global control law. The
242
.,
The function Pi has to correspond to dynamic forces Pi' which act upon
the servo system as coupling from other jOints. Dynamic force (moment)
Pi which acts upon the i-th jOint can be directly measured using force
transducers. If we implement force transducer in the joint we may ob-
tain direct information on the effects of coupling upon this joint. In
.,
that case the function Pi can be made equal to the actual ~ynamic mo-
ment (force) P., taking into account "joint dynamics"
~
ii ~~
.. q~
P.
~
The control scheme which includes, becides local nominal control and
local servo systems, the global control in the form of force feedback
is presented in Fig. 5.2. The force feedback, as global control, has
certain adventages:
to
Ie..
~
e..
I
s:- I r--;::-
~
lil
to
Qj
II>
I
I
I
C
0
II)
Qj
II)
Qj
u
s-
I Qj
u
I s-
-
0
I
~
~
....J
<C ~
U 0 I-
~
Z 0
<C I- <Xl
:r 0:: 0
,•
<C 0::
w e..
U
::E
• .. e..c
.. e..
~
-'--
---
c
~~Q ......
'..0
C~O
•..0
---
'<0-
....,
c
'<0-
<.!lC
""
~
<.!l~
""
--
Qj Qj
a....,s- as-
~ ~ ~
...
Vl ~
Vl
-roo- o
C
s-
o x s- .....
.....
3::::: I-- '-.3 8'= r--
c~ c~
e.. '"
....,
::l
e.. '" ....,
::l
u
<C '";;; u '";;; ....,
~
u <C u ~
.::!- '"0 X
0
....
0
~r-
.:;;! ....,
::l
'" ::l
<.!l~
::l
~-Q9--
<.!l
::l
~
C
~~
Example 5.2.1. For the robot in Fig. 3.2. we shall show the effects of
application of global control in a form of force feedback. Let us assume
that we have to ensure tracking of the nominal traj ectories presented in
Fig. 4.5. If we apply just local programmed control and local feedback
loop!> (local feedback gains are given in Table 4.1. - Example 4.3.2),
then tracking of the trajectories is quite unsatisfactory (Example
4.4). Therefore, it is required to apply global control which compen-
sates for effects of coupling. Obviously, it is sufficient to apply
global control just in jOint 1 and 2. Let us apply force feedback in
these joints. If we put force transducers in these joints, then it can
be shown that, to stabilize the robot, we have to apply global gains
which are at lea.st:
0.5; 0.5
llu G
2
··2 )
0.5· (5.28/4.96) (P 2 -O.16.q
246
where Pi are the dynamic moments in the joints which are measured by
force sensors built in the actuator shafts. In Fig. 5.3 the simulation
of tracking of nominal trajectories from Fig. 4.5. is presented, if
the local nominal control, local servos and the global control in the
form of force feedback are applied.
-0.05
-0.08
-0.1
tqi[rctdl, [ml
However, this solution has certain drawbacks. The basic problem rela-
ted to on-line computation of the coupling lies in complexity of dynamic
model of robot. In general case the model of the mechanism dynamics
(3.2.2) might be very complex and it requires a large number of adds
and multiplies to be performed by a microcomputer in order to compute
matrix H(q) and vector h(q, q). Various computer-oriented methods for
computation of dynamic models of robots have been developed. These
methods differ in their efficiencies from the standpoint of the amount
of computation necessary to compute matrix H and vector h. Here, we
shall not consider various methods for computation of dynamic model of
robot [5, 61. Let us mention that the methods for computer generation
of dynamic models of robots in symbolic forms are the most efficient
for computation of dynamic moments Pi [7].
If the robot is moving fastly, the dynamic moments Pi' i.e. matrix H
and vector h, also might vary fastly. Therefore, the microcomputer must
compute their values at each 10-20 [ms1. This means that a control
microcomputer has to be fast enough to compute new values of matrix H
and vector h, (i. e. of driving torque Pi (x», at rate of 1 0 - 20 [ms].
Since for execution of each computational operation a microprocessor
requires some period of time, this means that to compute driving tor-
que Pi a microprocessor might require much longer time than 10-20 [ms1.
To achieve samp 7;i'ng period' which is compatible with dynamic characte-
ristics of the robot, a control microprocessor should be very fast, and that
meanS tha.t it might be relatively expencive. For certain robot structu-
res a number of computational (real) operations, to be performed at
each sampling period in order to compute coupling Pi(x), might be so
high that even the current microprocessors hadrly can achieve it [61.
In such Case we may apply several microprocessors in parallel, which
mea.ns that the required computation load has to be distributed over two
or more microprocessors. Such solution, obviously causes some new techni-
cal problems (for example, how to distribute computations over micro-
processors, how to exchange data between microprocessors, how to sync-
hronized microprocessors execution, etc.).
include only those components whose effects upon the system performan-
ce is significiant. In other words, the global control might use just
approximative models of dynamics of robot. Let us consider some appro-
ximative models of robots which might be used for the global control [8]:
(5.2.19 )
(5.2.20)
* , n , ,
Pi. = f1ii (q)gl + ,I
J=1
HiJ' (g)ejJ + gi (q) - Hii ql (5.2.21 )
j*i
n .
I H ... (q)qJ + h.(q, q) (5.2.22)
j=1 IJ I
U1 P*1
"'" K~f1/61
""'10n
o 0 ~ 0
'1 tr' I ~
Of-'ci"
00 ci" f-'. '1
f-'. ~ 0
3-CDf-'
'dci"
f-''10OO
f-'. Il! 0 ° ON-LINE COMPUTATION P1
° u. S tr' x1
f-'. CD 'd CD
ci"0>::!3 OF DYNArHC MOMENTS
'<: ci" ci" CD MECHANICAL
-Oil!
'1 ci" f-'. ACCORDING TO
'<: f-'. ~ PART OF
o
'"1~f-' ° SELECTED xn Pn
(i) >::
~Oo. APPROXIMATIVE ROBOT
CD .." f-'.
'1 ~ MODEL
Il! 0.'"1
ci"'<:
f-'.~ '"1
Oll!f-' Pn*
~ S 0
f-'. tr'
f-'Oll!
CD f-'
<: S
CD 0
f-'SO °
(i) ~
f-'.~ ci"
OOci"'i
00 0
o f-'
S 0
f-' . .." <:
ci" f-'.
rT Il!
CD
0.
~
(.f1
252
-0.02
-0.05
-0.08
-0.01
E X ere 1 s e s
5.1. Why the global control (5.2.13) is approximative? Explain the sta-
tement that such control ignores delay in actuator.
5.2. Draw the control scheme for the robot in Fig. 3.2. if the control
considered in Example 5.2.1. is applied. (Local programmed con-
trol, local servo feedback loops, global control in the form of
force feedback). Determine the minimal number of real operations
(adds and multiples) that have to be performed at each sampling
interval in order to compute this control (the local nominal con-
trol is computed as in Example 3.5).
5.4. For the robot in Fig. 3.2. determine approximative models in forms
(5.2.19)-(5.2.22). For each approximative robot determine the num-
ber of real operations necessary to compute dynamic forces. Try to
minimize these numbers. Assume that accelerations of the joints
are given (that they are obtained by differentation of velocities).
Assume that for computation of sinus and cosinus it is required
1 multiple and 2 adds.
5.5. Using results obtained in Exercise 5.4. determine the total num-
ber of real operations which have to be performed at each sampling
interval in order to compute local nominal control, local servos
(see Examples 5.2.1. and 5.2.2) and global control in the form
(5.2.17) if various approximative models (5.2.19)-(5.2.22) are
used. Estimate the number of microprocessors that have to be ap-
plied in parallel, for each of four control versions, in order to
achieve sampling rate for local servos and local nominal control
of 5 [msl and for global control of 10 [msl. Assume that we use
the same microprocessors as in Exercise 5.3. Compare the results
to those in Exercise 5.3.
'"
5.6. In one of high-level programming language write the programme for
implementation of global control for the robot in Fig. 3.2. The
global control is in a form: a) of force feedback as in Example
5.2.1 (assuming that the measured values of forces Pi are inputs
for programme), or b) of on-line computation of dynamic moments as
in Example 5.2.2. - using approximative dynamic models. Try to
minimize the number of multiples and adds. (Inputs for programme
are actual values of joint angles qi, velocities qi and accelera-
tions qi, and outputs are global control signals).
5.7.* For the robot in Fig. 3.2. determine expressions for calculation
of joints accelerations qi as function of qj, qj, j=1,2,3, using
the second order models of actuators (n i =2) and approximative
254
From our previous discussion we may conclude that the selection of con-
trol law at the executive control level is strongly dependent on type
and structure of a robot and on a task which is assigned to it. If we
consider simple control tasks which can be reduced to position control
or to tracking of slow trajectories (requiring no high accuracy), then
we may adopt only local servo systems (eventually, we may also intro-
duce local feedforward terms in a form of local nominal control). In
such cases effects of dynamics of the entire robotic system are weak
and therefore, we may ignore them. This approach has been applied in
control of many robots at the market. However, if very accurate trac-
king of fast trajectories is required, then the effects of dynamic for-
ces upon the performances of servo systems might be strong, and then we
have to apply dynamic control which compensates for these forces. We
have seen that the dynamic control might be introduced in various ways:
by nominal centralized control, by global control in the form of force
feedback, or via on-line computation of dynamic forces using various
approximative models of robot dynamics. In dependance on complexity of
th,e robot structure and, on reqUirements which are imposed before the
robot,we may introduce dynamic control of various degree of complexity.
For example, the global control need not to be applied in all joints.
255
*)
The package has been developed in Institute Mihailo Pupin, Beograd.
256
YES
NO
Porce feedback
>''''
-I-' -I-'
.~ e
, '" '"
Co,....
<IJ -I-' e
~
'''''''e
Vl 0-,- -i-J
'" -I-'
><IJ m'-<IJ O'-<IJ
E '- OJ E
'" E .-
Weo
Q)
ueo
, ,
'- 0
<!lE .~ E E.~
YES NO
YES
YES
3k-------<
1. Mod~le fo~ t~p~t data on ~obot mechanism. This module enables the
~se~ to tmpose data about geomet~y and st~uctu~e of the ~obot
mechanism fo~ which he wants to synthesize the cont~ol. The use~
has to impose data on lengths of the links, o~ientation of the jo-
int axes, types of the jOints (rotational or linea~). The use~ also
has to specify data on masses and moments of ine~tia of the links.
Based on these data, the software package automatically sets kine-
matic and dynamic models of ~obot, which are used in the synthesis
of cont~ol. The use~ need not to take care di~ectly on these mo-
dels, but the package uses them automatically in cont~ol synthesis
wheneve~ they a~e needed. In this pa~ticular package, the procedu-
~e for automatic setting of dynamic models of robots based on
D'Alambert's p~inciple has been used [11].
2. Module for input data on actuato~s. In this module the user has to
select type of actuato~ which he wants to apply for his ~obot (or,
which has been applied to drive al~eady designed robot), and the
basic data on actuato~s (moment of inertia of the ~otor, moment and
electromoto~ constants of the moto~, elect~ical resistance of the
rotor circuit, if D.C. motors are applied as actuators). Based
on these data the package automatically sets the models of actua-
tors. Package includes D.C. electro-motors and hydraulic actuators.
3. Module for imposing the desired trajectory. The user has to speci-
fy the task which the ~obot has to implement, i.e. the user has to
choose whether the robot has just to be positioned in various posi-
tions in its work space, or whether it should move "point-to-point",
or if it should track the desi~ed trajectory. The user has to impo-
se data on the desired positions, or trajectories of the gripper of
the robot. The t~ajectories might be imposed in va~ious ways. Ba-
sed on these data, the algorithm, using the kinematic model of the
robot, dete~ines the cor~esponding positions or trajectories of
the robot jOints, i.e. it solves the so-called inverse kinematic
problem (see Chapter 2). In this way the desired (goal) positions,
or trajectories of the robot joints are defined, and the executive
cont~ol level has to implement them.
4. Module fOr sYnthesis of local servo systems. The package can syn-
thesize the local se~vo systems using various methods in accordan-
ce with the use~ option. The package selects servo feedback gains
fo~ all joints of the ~obot.
260
6. Module for synthesis of g.lobal control. The user is able (if he wis-
hes so) to synthesize the global control using this software package.
The global control has to compensate for dynamic coupling between
the joints and, by this, to increase accuracy of tracking of de-
sired trajectories. The global control can be introduced either as
force feedback, or as on-line computation of dynamic moments. In
the latter case the package helps the user to select the approxima-
tive model of the robot dynamics which can be used for computation
of the global control. Namely, the package enables iterative selection
of the sill\plest approximative model by which imposed requirements
can be satisfied [10].
Besides above listed modules, the package includes some auxiliary mo-
dules, for example module for graphic presentation of a robot structu-
re and graphic representation of results of trajectory synthesis, no-
minal control synthesis, simulation etc.
The second note concerns the simulation of the robot dynamics. The
simulation of the robot reduces to numerical integration of dynamic
model of robot (i.e. of the set of nonlinear differential equations
(3.2.27)). For the numerical integration we may use various algorithm~
which can be found in literature. The most simple procedure, (but also
the least accurate method) is EuZer's method, which reduces to compu-
tation. of the next system state (the state of the system at the next
sampling interval t+6T) on the basis of the state at the instant t,
according to simple equation:
X(t+6T)=x(t)+6T·i(t)=x(t)+6T·[i(x(t»+§(x(t»N(u(t»] (5.3.1)
E X ere 1 s e
5.8~ Write in a high-level programming language a programme for simu-
lation of the dynamics of the robot in Fig. 3.2. if local nominal
Gontrol, local servo systems and global control in the form of on-
-line computation of inertia moments in the first and in the se-
cond joints are applied (as in Example 5.2.2). Repeat simulation
results presented in Example 5.2.2. Use the programmes written in
Exercises 4.16 and 5.6.
To this point we have considered the dynamic robot control based upon
the decentralized approach to control [121. In this approach, the lo-
cal servo systems at particular robot jOints are synthesized first. Such
control has a decentralized structure: each of the local servo systems
possesses information only about the state of its own subsystem (actu-
ator and jOint) which it controls. As we have already seen, to ensure
the accurate positioning and tracking of fast trajectories, such decen-
tralized control is not always sufficient, so that it is necessary to
introduce the control which takes into account the dynamics of the sy-
stem as a whole. For this purpose, certain control signals have been
"added" to the decentralized control structure to compensate the ef-
fect of the coupling between the subsystems. Such control, called the
nominal programmed control is calculated on the basis of the complete,
centralized robot model. The global control using either force feed-
backs, Or the on-line calculated moments has also the role to compen-
sate the dynamic forces acting as the coupling between the subsystems.
Both kinds of dynamic control are the deviation from the decentralized
structure, because the control signals for the particular actuators
are calculated as a function of states of all subsystems (not only of
the corresponding subsystem). Therefore, such control possesses a cen-
tralized structure. However, the main aim in this approach is to re-
tain, to the most possible extent, the decentralized structure, and
264
introduce the global, cross feedback loops only t):1.ere where it is neCeS~
sary. In doing so, as we have already shown (Section 5.3) the starting
point is always a decentralized structure whose main features are sim-
plicity and reliability, and the centralized control components are
introduced later on.
It should be pointed out that the majority of the present day commer-
cial robots possess a decentralized structure: each joint is control-
led by a separate local servosystem. Centralized control schemes are
rarely used with robots because the majority of the commercial robots
have not been intended for solving dynamic tasks (accurate tracking of
fast trajectories), for which the centralized structure is justified.
For the simplicity sake, let us consider first the model of the dyna-
mics of the mechanical robot part, while the models of the actuators
will be introduced afterwards. The dynamics of the mechanical part of
the robot is described by the model in the form of (3.2.2)*):
(5.4.2)
(5.4.5)
(5.4.6)
If the gains K1 and K2 have been chosen such to ensure the solution of
the system of differential equations (5.4.6) is asymptotically stable,
the actual robot coordinates q(t) will asymptotically approach the no-
minal trajectories qO (t). In other words, if K1 and K2 are chosen to
be such that the linear model (5.4.6) is asymptotically stable, itwill
al,so gua.ra.ntee an asymptotic sta.bility of the nonlinear robot model
around the nOll\inal, trajectorY qO(t) •
The choice of gains K~L and K~i is now simple. It should be ensured the
roots of the equation (in the s-domain)
are in the left half of the complex plane*). Instead of the asympto-
tic stability of the model (5.4.6), (i.e. of the decoupled equations
(5.4.7», an exponential stability may be required: it suffices the
solutions of equations (5.4.8) be in the complex plane on the left to
the straight line Re(s) = -a, where a is the required degree of expo-
nential stability. In that case, the nonlinear robot model is also ex-
ponentially stable around the nominal trajectory. It is easy to show
that, in this way, the practical robot stability can also be guaranteed.
*)
Obviously, it is desirable to require the roots are real, so that
the damping ratio would be ~ > 1.
267
(5.4.9)
(5.4.10)
Calculation of h(q, q)
q
Mechanical part of robot
q
H(q) q
q(t)
Mechanical part of robot
q(t)
CiCiNiN i .
MEv m)ql} (5.4.11)
i
r R
where H! ~nd I~ are the i-th rows of matrix Hs' i.e. of the unit mat-
rix In' h~ the i-th element of vector h s ' while the other symbols,
270
Example 5.4. For the manipulator in Fig. 3.2, we shall write the ex-
pression for the driving torques in the "inverse dynamics" method
(5.4.2). The gains K~i and K~i have been chosen such that the roots of
(5.4.8) are both -5 (for all three joints, i=1,2,3). The obtained fe-
edback gains are K~i = -25, K~i = -10, i=1,2,3. The driving torques
should be calculated (using the model of the robot dynamics (3.2.3»
from the following expressions:
E X ere i s e s
5.9. Prove that expression (5.4.11) represents the voltages at the in-
puts of D.C. motors which would generate the driving torques
(5.4.2) if the models of the motors had been given in the form
(3.2.6), (3.2.11).
271
5.10. For the manipulator in Fig. 3.2, the driving torques using the
"computed torque" method are given as in Example 5.4. Hrite the
expressions for the input signals to the actuators (5.4.11) cor-
responding to these driving torques for particular robot. If the
approximative models (5.2.19) - (5.2.22) are used instead of the
exact model of the robot dynamics, write the expressions for the
driving to;r-ques (Le. inputs to the actuators) using the "compu-
ted torque" method. Minimize the number of numerical operations
which should be carried out.
5.11. For each of the set of voltage inputs to the actuators (5.4.11)
written in the preceeding exercise for the robot in Fig. 3.2.
determine, using the approximate models (5.2.19) - (5.2.22), the
number of operations (multiplies and adds) needed for their cal-
culation (for the given q and q). Determine the minimal number
of microprocessors which should work in parallel to calculate
these input signals (for all three actuators) every 10 [ms], if
the microprocessor used is:
5.12. For the control laws in Exercise 5.10, determined on the basis
of the approximate models (5.2.15) - (5.2.22) for the robot in
Fig. 3.2, draw the control scheme taking into account the model
of the actuators.
5.13.* write in a high programming language the programme for the on-
-line calculation of the input signals (5.4.11) to the actuators
of the robot in Fig. 3.2. which would correspond to the driving
torques in Example 5.4. (using the "computed torque"method). The
programme input data are the robot actual and desired cordinates
qi, qOi and velocities qi, qOi and desired accelera tions qOi, and
the output data are the input signals to the actuators u i , i=l,
2,3 (the data about the robot are also inputs).
272
5.14~ Explain what is the similarity a,nd th.e difference between the
control law (5.4.11) according to the computed torque method and
the control law presented in Section 5.2.2. which is composed of
the local nominal control, local servo systems feedbacks, and
global control in the form of on-line calculation of the comple-
te model of the robot dynamics.
5.15. If in Example 5.7. the poles of equation (5.4.8) are set (both)
at the position -20, instead of -5, what would be the gains K~i
and K~i, i=1,2,3. What are the real gains in the feedback loops
with respect to the position and velocity (the gains from the
error 6qi and 6qi to the actuators inputs u i ). Are these gains
acceptable, and how the poles of equation (5.4.8) should be cho-
sen to constraint these gains?
5.16. Explain what would be the role of variation of the gains in the
feedback loops with respect to the position and velocity as a
function of the inertia of the mechanism. What would be achieved
in respect of the uniformity of functioning of the system?
As we have already pOinted out (Chapter 1), the task assigned to the
robot is usually described in the so-called external (Cartesian) coor-
dinates. In other words, the task is defined by assigning the path (or
position) to be realized by the robot hand together with the workpiece.
If the task is defined by the operator, by the direct lead-through me-
thod, or using the corresponding programming (robotic) language, it is
much Simpler to define the path, i.e. the action to be performed by
the robot hand. Similarly, if the task is assigned by higher control
levels, it is usually defined "what the gripper should do with the
workpiece". On the other hand, the robot's joints are powered by the
a.ctuators, and they should be controlled to realize the desired posi-
tions or trajectories of the robot hand. To this point we have assumed
the hierarchical robot control: at the higher, tactical level, thetra-
jectories of the external (Cartesian) coordinates are transformed into
the trajectories (positions) of the robot joints, while at the lower,
executive level, the calculated joints coordinates are realized. In
the previous chapters we considered the problems of realization of the
given joints trajectories (positions), assuming they had been calcula-
273
After the microprocessor has calculated the error in the hand coordi-
nates, it is possible to apply different control laws to generate the
appropriate control signals. It should be borne in mind that the job
to be done is to generate the inputs to the actuators, by which parti-
cular robot joints are powered. One of the possible solutions is to
transform the error (using the inverse Jacobian), calculated in terms
of Cartesian coordinates 6s = sIt) - sO(t) into the error of the in-
ternal coordinates 6q, and then, to generate the inputs to the actua-
tors according to one of the control laws considered (e.g. for the
l~cal servo systems, the control is generated acc. to u i = -K~6qi -
K~q, and the like). In this way, it is possible to calculate not only
the error with respect to the position but also the errors with res-
pect to the joints velocities. However, this solution reqUires the ap-
plication of the inverse Jacobian whose calculation usually requires a
274
Another solution to the Cartesian based control is, starting from the
error in the hand coordinates ~s, to calculate the forces (moments)
which should be produced on the hand so that the hand would follow the
desired trajectory sO(t) (i.e. the given position so). Let denote by F
the mxl vector which is composed on the force components and corres-
ponding moments acting at the gripper mass centre (i.e. around the hand
mass centre)*). The components of the force and moment at the hand re-
present their projections to the axes of the Cartesian (or task speci-
fic) coordinate frame with respect to which the external coordinates
have been defined. Therefore, the control law in terms of hand coordi-
nates defines the link between the vector F and the error in Cartesian
coordinates (as well as, the error in the Cartesian coordinates velo-
cities) :
F (5.5.1 )
P = JT(q)F (5.5.2)
where J(q) is the Jacobi matrix (mxn), defined in Chapter 2. The tor-
ques to be realized about the joints are given by (5.5.2). It is easy
to determine the voltage signals to be applied to the actuators inputs
to realize these torques. The global Cartesian control thus obtained
is schematically represented in Fig. 5.11. The main advantage of this
* ) If the task is assigned with respect to the mass centre or the tip
of the workpiece, and the external coordinates are refferred to
this point, then the vector F is also defined with respect to this
point. Actually, F should be reffered to the same coordinate frame
to which s is reffered.
275
-
sO(t)
Inverse kinematics
qO(t)
Joints based
control law -u(t) Robot and
actua tors
q
I--
sO(t) IIS(t) Cartesian control law u(t) Robot and actuators -q( t)
t sOt t)
F P
~~ Calculation of
F=f(IIS, 6S, so)
f--- } f---- Robot and actuators I--
+ -
s(t) q(t)
Direct kinematics
control structure over the scheme in Fig. 5.10. is in that the calcu-
lation of the inverse kinematics is avoided. Instead of the inverse
Jacobian, a transposed Jacobian is used, and the direct robot kinema-
tics is calculated (i.e. the hand coordinates are calculated on the
basis of the joint coordinates). These calculations require an incom-
parably smaller number of numerical operations.
276
i ·i
K s (5.5.3)
ve
nates if the hand coordinates were measured directly, which would re-
quire the use of the corresponding sensors.
E X ere 1 s e s
5.17. Explain how the position and velocity gains in (5.5.3) should be
chosen in the decentralized control on the basis of the Cartesi-
an coordinates, to ensure the robot exhibits no overshoots, nor
the oscillatory motion, and the characteristic frequency is not
close to the resonant frequency of the structure.
5.18.* Draw the control scheme for the robot in Fig. 3.2. which corres-
ponds to the computed torque method in hand coordinates [22l. For
this purpose write the dynamic model of the robot in the Carte-
sian coordinates, assuming the external robot coordinates are given
T
by s=(x c ' Yc' zc) ,where xc' yc' zc are the robot tip coordina-
tes with respect to the coordinate frame fixed to the robot base
(at the first jOint). Determine the minimal number of numerical
operations (adds and multiplies) to be carried out on each sam-
pling interval to calculate input signals to the actuators using
the computed torque method in external coordinates for the given
robot (use expressions (5.5.1>, (5.4.2) (5.5.2), (5.4.11». As-
sume the adopted mOdels of actuators are of second order.
5.19.* Repeat the same as in the preceeding problem for the robot in
Fig. 3.3, assuming the robot is in the horizontal plane, so that
the external robot coordinates are given by s = (xc' Yc)T, xc'
Yc are the coordinates of the robot tip with respect to the co-
ordinate frame fixed at the first robot jOint. Determine the
number of operations needed to control this robot (to calculate
inputs to the actuators on each sampling interval) using the com-
puted torque method in the jOint coordinates, assuming the nomi-
nal trajectory is given in terms of Cartesian coordinates; these
Cartesian coordinates are first transformed (using the inverse
kinematic model) into the jOint coordinates, and then, the con-
trol signals are calculated according to (5.4.2) and (5.4.11>.
278
5.20.* It has been shown that the dynamics of the robot hand might be
expressed by the model written in Cartesian (hand) coordinates
[22]. The dynamic model of the robot hand in Cartesian space
might be written as:
p(s) = J-T(q)g(q)
P = JT(q)F
·T • • • 1·T oH •
q C(q)q = H(q)q - 2 q oq q)
References
[3] Luh Y.S.J., Fisher D.W., Paul C.P.R., "Joint Torque Control by a
Direct Feedback for Industrial Robots", IEEE Trans. on Automatic
Control, Vol. AC-28, No.2, 1983.
[4] Tanie K., Yokoi K., Kaneko M., Fukuda T.: "A Pos i tion Sensor Ba-
sed Torque Control Method for a DC Motor with Reduction Gears",
IEEE Int. Conference on Robotics and Automation, pp. 1867-1880,
1988
[6] Bejczy K.A., Paul P.R., "Simplified Robot Arm Dynamics for Con-
trol", Proc. of IEEE Conf. on Automatic Control, 261-262, 1981.
[7] Kir6anski M., Vukobratovi6 M., Kircanski N., Timcenko A., "A New
Program package for the Generation of Efficient Manipulator Kine-
matic and Dynamic Equations in Symbolic Form", Robotica, July,
1988.
[9] Vukobratovi6 M., Stokic D., "A Procedure for Interactive Dynamic
Control Synthesis of Manipulators", Trans. on Systems, Man, and
CybernetiCS, Sept./Oct. issue, 1982.
[10] Vukobratovi6 M., Stokic D., "Is Dynamic Control Needed in Robotic
Systems, and if so, to What Extent?", International Journal of Ro-
botic Research, Vol. 102, Juni, 1982.
[14] Bejczy K.A., Robot Arm Dynamics and Control, Technical Hemorandum
33-669, Jet Propulsion Laboratory, February, 1974.
[16] Raibert H.M., Horn P.K.B., "Manipulator Control using the Confi-
guration Space Method", The Industrial Robot, Vol. 5, No.2, 69-
-73, Juny, 1978.
[18] Asada H., Slotine E.J., Robot Analysis and Control, John Wiley
and Sons, New York, 1986.
[21] Takegaki M., Arimoto S., "A New Feedback Method for Dynamic Con-
trol of Hanipulators", Trans. of the ASME, Journal of Dynamic
Systems, Heasurement and Control, Vol. 103, No.2, 119-125, 1981.
[22] Khatib 0., "A Unified Approach for Motion and Force Control of
Robot Manipulators: The Operational Space Formulation", IEEE
Journal of Robotics and Automation, Vol. RA-3, No.1, February,
1987.
281
Appendix S.A
Stability Analysis of Robot with Global Control
Let us consider the case when the centralized nominal control and loca.l
servos are applied. In Section 5.2. we have introduced global control
in the form (5.2.13). However, as we have explained, this global con-
trol directly compensates for coupling between the joints (subsystems)
only if we may ignore delay between actuator input and driving torque
produced by the actuator. If this delay can not be neglected, this dy-
namic control cannot completely compensate for dynamic moments (which
act as an external load upon the actuator). Therefore, in global con-
trol synthesis we have to take into account this delay between the in-
put signal u i and the driving torque Pi'
(5.A.1l
trol is not realized according to (S.A.1), but some limited input sig-
nal is realized. We may introduce a number Ei>O which satisfies the
following inequality:
(S.A.2)
for all points I'.x in the surrounding of the nominal trajectory xO(t), as-
suming that it is already fulfilled that luOi(t)_k~l'.xil<ui. Now, the
~ - m
global control might be introduced in the form:
(5 .A. 3)
The global control (S.A.3) is defined for all points in the state spa-
ce of the i-th subsystem. The scheme of this global control is presen-
ted in Fig. S.A.1. In (S.A.3) I'.P i* denotes function which satisfies
(S.A.9) and which can be implemented in one of two ways described in
Section 5.2: either by the force feedback, or by on-line computation
of dynamic moments (using approximative models of robot dynamics) .
(S.A.4)
NOW, the analysis of the stability of the nonlinear model of the robot
is performed in completely analogous way to that one presented in Ap-
pendix 4.A.
'rj
f-'-
LQ
U1
[(gradv/S 1 ]-1
f-'- H1 ()
en 0 0
'i !:l
PJ EI rt-
'0 'i
'0 - 0
1-'U11-'
f-'- •
ro~en 01
p,. 0
W::r
~ro
EI PI
I ro ~ CO~lPUTATION r,lECHAN I CAL
f-'- ~
H1::r OF NOMINAL PART OF
f-'- ---.
rt-O
::r::r CENTRAL! ZED -1 ROBOT Pn
ro
f-'- CONTROL
o !:l
ro 0 ~
!:l I-'
rt-s:;
[( gradvn)Tbn ]-1
tiP,
xon
PJ ro
I-'en
f-'- Pn
NLQ
ro I-'
P,O
0-
!:l PJ
01-'
EI
f-'- 0
!:l 0
PJ !:l
I-'rt-
'i
00
o I-'
!:l
rt- f-'-
'i !:l
o
I-'rt-
::r
ro
I'..l
!!l
284
The only difference is that now we have to take into account the glo-
bal control (5.A.3) when we estimate the coupling between the subsys-
tems (joints).
n
2 ..~
* v., for
TA·
< I (gradv.)
1
b 1 1 >E:.1
j = 1 1J J
n *
< I ~ .. v., for (5.A.5)
j=1 1) J
n *
n* . min I-Siv io + I I; .. v. I/v. (5.A.9)
1=1,2, ... ,n j=1 1J JO 10
Obviously, the conditions (5.A.6) imply that n * >n, i.e. if the global
control is introduced, then the region, to which the system state be-
longs, must have greater degree of shrinkage than if just the nominal
control and local controllers are applied.
We can see that the global control (S.A.3) can stabilize the robot by
compensating for the effects of dynamic moments. The function K~(~xi)
1
in this case is selected in such a way that the global control direct-
ly compensates for the effects of coupling upon the system stability.
However, to implement the global control (5.A.3) we have to realize
T~i -1 T~i
on-line computation of the expression [(gradv i ) b 1 (gradv i ) f which
demands a few float,ing-point mul tipl ies and adds for each subsystem in
which we introduce the global control~)
(5.A.10)
for all states in the region defined by (4.A.30). If the second order
model of the actuator (subsystem) is considered (n i =2), then we get:
T'i - G *
(gradv].,) f (6P].,-K].,6P].,) ~ En *
t, ,v, (5 .A. 11)
j = 1 ].J J
However, for n i =3 the last inequalities do not hold. In that case, the
global control (5.2.13) does not compensate directly for the coupling,
but we may adopt it as an approximative form (which, in essence, igno-
res the delay in the actuator). Once we determine the numbers t *ij which
satisfy (S.A.l0), the procedure for stability analysis is reduced to
examination of the tests (S.A.7) and determination of n according to
(S.A. 9).
At last, let us mention that if the local nominal control and local
servo systems are applied, then we may also introduce the global control
which is analOgOUs to the form (S.A.3). The global control (5.2.16) is,
now, introduced in the form:
(S.A.12)
Appendix S.B
Centralized Optimal Regulator
Let the trajectories of all the coordinates of the robot state vectors
xO(t) be given (by the higher control level). The task is to ensure the
tracking of the trajectories. The robot model in the centralized form
288
is given by (3.2.27)*):
The model of the robot state deviation around the nominal trajectory
xO(t) and nominal control uO(t) is given by (4.4.9):
(5.B.3)
(5.B.4)
(5.B.5)
-i< (t)
(5.B.7)
Matrix D(t) is the NxN matrix of feedback gains. The solution (5.B.G)
holds under the assumption that the matrix pair AL' BL is controllable
on the interval (0, T), that all the system states coordinates 4x are
measured by sensors, and the constraint on the input amplitude N(u o ,
,',u) is neglected.
(5.B.B)
290
(5.B.9)
lIu(t) (5.B.l0)
(5.B.l1)
p1
---
/
/
/ MECHANICAL
/ PART OF
ROBOT
"- '\ SM
'\ xn Pn
(S .B.12)
- 0
f(lIx(t» a(x (t), lIx(t) )-ALlIX(t) (S.B.13)
lIu(t) (S.B.14)
(S .B.1S)
where lIU lin is the linear, and 1I~ nonlinear part of the control law.
292
x(t)
ROB 0 T s Y S T ~ M
+
M(t)
+
+ +
Calculation of 6X(t)
flM(t»
Example 5.B. For the robot in Fig. 3.2, the linearized time-varying
system model around the nominal trajectories, presented in Fig. 4.5., is
given in Example 4.3.4. After time-averaging, the linear time-invariant
model is obtained whose matrices are:
0 0 0 0 0
0 0 0 1. 0 0
AL
0 -1.54 -1.14 -15.6 0 0
0 0 C 0 0
0 0 0 0 0 -45.
0 0 0
0.58 -1.75 0
0 0 0
BL =
-1.78 10.43 0
0 0 0
0 0 0.361
Q diag ( 0 • 1, O. 1, O. 1, O. 1, O. 1, o. 1 ) ,
~ diag(5., 0.5, 0.05)
O. O. O. O. 5810. 135.
O. O. O. O. 135. 3.
-0.04 -0.02
-0.06
-0.03
wi th nomi na 1
-0.08 centra 1 i zed -0.04
control
-0.1 without -0.05
nominal
control
Ilql[rad] Ilq2[rad]
References
[2] Kahn t1.E., Roth B., "The Near Minimum Time Control of Open Loop
Articulated Kinematic Chains", Trans. of the ASME, Journal of Dy-
namic Systems, !4easurement and Control, September, 164-172, 1971.
6.1 Introduction
In the course of task execution, the robot can move with an empty grip-
per, grasp the payload and transfer it from one place to another in its
workspace (or do some operation on it). In practice, the payload parame-
ters (mass, in.e;r-tia mOments, shape and dimensions) are often known in
advance. However, in some cases in. the industry, the working obj ect is
not defined tn advance, bu,t it can have different parameters in depen-
dence of the conditions and other circumstances under which the task is
being executed at a given moment. This case appears in modern industry
mOx;e and more often, especially in those situations when the robot ;is
part of a fle;x:i,'b~e technological system, in which the tasks are frequ-
ently changed, so that many of task elements cannot be determined in
advance, a,nd the cont;r-ol system has to make decisions on the basis of
the information obtained f;r-om the sensors, or other subsystems. Thus,
the assumption on the known (determined in advance) parameters of the
robot system becomes then untenable.
296
If the robot (workpiece) parameters change during the work, the control
has to ensure the reliable and smooth functioning of the robot irres-
pective of the parameters variations. In other words, the robot control
should be robust to the changes of the workpiece parameters. The theory
of control robustness has been fully developed, so that a precise defi-
nition of the notion of robustness and different theoretical aspects of
this problem will not be the subject of our concern here. Instead, we
are going to outline several practical problems related to the variati-
on of workpiece parameters.
workpiece mass, and J px ' J py ' J pz are the inertia moments about main
inertia axes (variations in the distance of the workpiece mass centre
from the gripper might be usually neglected). The variation in the pa-
rameters d, from the value do to do+~d causes a variation in the dyna-
mic behaviour of the robot. If the variation of parameters Ad is known
in advance, the control system can be prepared in advance to compen-
sate for this change. However, as we explained it above, this variati-
on is not, generally, known in advance, so that the control system
should be robust enough to overcome this variation, i.e. it should en-
sure that the change of parameters does not cause the robot's malfunc-
tioning.
The local servo system at the i-th joint was synthesized under the as-
sumption that only the i-th joint moves, while all others are kept lo-
cked (Chapter 3). In Section 3.3.4. we discussed the influence of the
var;iations of the moment of inertia and gravitational moments on the
behaviour of the system. The workpiece parameters influence both the
inertia. I\lol\lent of the I\lechan.ism about the axis of the i-th joint and
grav,;tta.tiona,l, 1\l0men.t of the mechanism. It can be easily shown that the
moment of inertia about the i-th joint is a linear function of the work-
piece parameters d,:
(6.2.2)
0'
where Rii(d) is the value of the moment of inertia of the mechanism
about the i-th jOint for the case of the no-load gripper, H~. (q) >0 is
1.1.
a 4x1 vector whose all the elements are positive. Suppose the velocity
gain ot:· the servo system ~ ~as been ch,osen on the basis of (3.3.39),
for th,e mechanism position q and t:or the parameters values d , for
_ * 0
which the moment of inertia about th,e i-th jOint Hii(q , do) is:
(6.2.3)
On the basis of (3.3.55), the servo system damping at the i-th joint
for the joints position q and the parameters value do+Ad is:
(6.2.5)
where Ji
R
-0
Hii (q )
* o
max Hii(q), (6.2.6)
q
(6.2.7)
i T d *
This means, if J R + doHii (q ) + Hii (q ) »
-0 * .
J~ + H~i (q), then si (d=O)>>1,
i.e. for the no-load gripper, the servo system would be highly over-
damped, which indicates the robot's beh.aviour would be extremely
299
A similar analysis may also be carried out for the gravitational mo-
ments. The workpiece mass influences the gravitational moment about the
i-th jOint axis and contributes to the servo system's steady state er-
ror. The steady state error can be eliminated in different ways, as we
demonstrated it in Section 3.3.4. One of the ways is through the on-
-line calculation of gravitational moments. However, as the workpiece
parameters are not known in advance, compensation of the gravitational
moments, caused by the presence of the workpiece, cannot be achieved
in this way. How large will be the steady state error which the work-
piece causes at the i-th servo system, it depends on the gripper pOSi-
tion with respect to the i-th joint axis, as well as on the allowed
mass of the workpiece. If the servo system would always be compensated
with respect to the maximum allowed mass of the workpiece, then, in
the case of no-load gripper, it would cause a steady state error of the
opposite sign.
When all the robot joints move simultaneously, the workpiece parameters
affect the dynamic forces (moments) (6.2.1) that are loading the servo
systems. The workpiece parameters influence all the force components
that had been considered in Section 4.2. These forces may substantial-
ly change in dependence of the mass and the moments of inertia of the
workpiece carried by the robot (or, if the gripper is not loaded). The
300
A similar situation also arises when the local nominal control is ap-
plied: the control has to be calculated under the assumption of a mi-
nimal moment of inertia of the mechanism about the jOint axis, which
means that the no-load gripper should be assumed in order to avoid the
overshoots of the trajectory. Rowever, if such a control is involved,
the dyn,amics of the m,echanism and of workpiece become more pronounced,
beca~se the nominal con,trol does not compensate for the nominal mecha-
nism's dyp.amics.
inpu,ts to the a,ctuators, which may cause the system to oscillate, a,s a
result of elastic effects directly "transmitted" to the control system.
As can be seen from all the above, the extent to which the variation
in workpiece parameters will influence the robot's behaviour depends
mostly on the relative ratio of the allowed variations of the workpie-
ce (the robot's "capacity") and the mechanism (links) parameters. If
the maximum workpiece mass assumed is small in comparison to the mas-
ses of links, the workpiece effect may be considered a,s wea,k, a,nd the
local nominal a,nd globa,l control is sufficiently robust to overcome
this effect. If, on the other ha,nd, the maximum workpiece mass assumed
is of the same order of magnitude as (or larger than) the mass of ro-
bot links, then, the workpiece effect becomes significant, and the qu-
estion arises of whether the control synthesized is sufficiently ro-
bust to ensure a uniform a,ndaccurate tra,cking of tra,jectories (i.e.
posi tioning) when, the workpiece is cha,nged. Furthermore, if the links
ma,sses a,re sma,ll, or they are of the same order of magnitude, as the
ma,ss of the working object, some additional problems usually arise:
t)::le linkS )::la,ving small masses are relatively thin, so, when loaded
with "heavy" objects, the resulting etas tic effects are greater than
in the ca,se of "heavy" and "rigid" links. A ")::leavy" working object ca-
uses elastic bending of the links, which generates a new problem, either
fro!1l the point of view of the accuracy of positioning and the robot's
trajectories tracking, or the appearance of oscillations (especially
in the force feedbacks). The need to overcome the effects of these
elastic modes by the robot control system makes the synthesis and rea-
lization of the control much more complicated [2]. However, the novel
"elastic" robots that have appeared recently (suitable from the point
of view of material expenditure, energy consumption and reduction of
actuators power) have a relatively great allowed load and a more com-
plex control system capable of overcoming both the changes in workpiece
and the elastic effects. In all the above considerations, we have as-
sumed the robot links to be rigid; the control of elastic manipulators
is beyond the scope of this book.
302
Example 6.2. Using the manipulator shown in Fig. 3.2, we shall demon-
strate how the workpiece parameters influence the manipulator's beha-
viour. We shall assume that a workpiece of maximal mass mp = 5 [kg]
might be placed at the mass centre of the third link, and the corres-
2 2
ponding inertia moments are: J px = 0.01 [kgm ], J py = 0.01 [kgm ], and
Jpz = 0.02 [kgm2]. Let assume first the servo systems at all three jo-
ints be synthesized without taking into account the workpiece (i.e.,
for mp = 0). The corresponding servo systems gains are given in Table
4.1. (see Example 4.3.2). The positioning of the first link for the
case of no-load and the case the robot is carrying workpieces of dif-
ferent masses is illustrated in Fig. 6.1. As we can see, the overshoot
of trajectories appears when the robot is loaded by a workpiece, beca-
use the system is undercritically damped. For this reason, the servo
systems gains hav€ to be synthesized by taking into account the maxi-
mum workpiece mass allowed. The gains synthesized are presented in
Table 6.1. and the corresponding simulation of positioning (Fig. 6.2)
shows the servo system is always overcri tically damped. It is also evi-
dent that the positioning time in the two cases is not the same.
O.5+-------------------------------~~~~~~,~ ---
/'
0.3 /'
/
/
/
/
0.1 ./
q 1 [radl
0.5 ---
0.25
0.1
JOINT 1 2 3
GAINS
V
Kv [raars l 60.2 13.1 166.
Aq 1[rad]
0.02 _________ mp=S[kg] 0.02
••••.••••••• mp=2.S[kg]
0.01 0.01
Aql [rad]
0.02 0.02
0.01
0.01
0.03 Aq2[rad]
0.03
0.02 0.02
0.01 0.01
. t[s] 1. t[s]
-0.01
-0.02 -0.0
-0.03 -0.03
E x ere 1 s e s
6.1. Prove the expression (6.2.2) is correct.
6.2. Explain the statement that the local programmed control should be
synthesized under the assumption of the "no-load" robot gripper
(in the case when the workpiece parameters are not known). How
can the workpiece parameters influence the tracking of trajecto-
ries by the local nominal control?
6.3. a) For the second joint of the manipulator presented in Fig. 2.6.
and the servo system gains in Example 3.3.4, calculate the
steady state error at the second joint, caused by the gravita-
tional moment at the position qo2 = 1.573 [rad], qo3 = 0.7 [m].
Use the data on the mechanism and the actuator at the second
joint from Example 3.3.4. Assume the workpiece masses at the
end of the third link are mp = 0 [kg], mp 1.5 [kg], m =3[kgl.
p
6.4. Repeat the previous exercise a), but assuming now the third link
mass is m3 = 2 rkg], and the other data are the same as above.
Why the relative increase in steady state error when the robot is
carrying the heaviest object, in comparison to the "no-load" ro-
bot, is now much larger than in the preceeding case. Assuming the
tip of the third link is elastically bent for 0.02 [roml under the
action of a moment of 1 [Nm], calculate the error in the manipula-
or tip positioning, caused by the steady state error at the se-
cond joint and the elastic deformation of the link, for different
masses of the workpiece.
6.5.* Explain why the procedure for the analysis of practical robotsta-
bility through the analysis of the exponential stability (Section
306
Up to now we have considered the various control laws in which all the
control parameters (gains) are constant and which do not vary in de-
pendence of either the robot working regime, or the variation in the
robot's parameters. Such non-adaptive control can be, as we have seen,
sufficiently robust, so that the changes in workpiece parameters (as
well as in other variable parameters of the system) do not influence
the robot's behaviour. The control robustness depends on the chosen
law, the information included in that law, the choice of gains, as well
as on the ratio of the variable parameters and the known constant pa-
rameters of the system. A direct analysis of the practical robot sta-
bility can serve to investigate the robot stability for the variable
workpiece parameters, and thus, to test the robustness of the non-adap-
tive control to the variation of these parameters. Thus, it is possib-
le to determine the range of variation of the workpiece parameters for
which the non-adaptive control synthesized, can guarantee the robot
stability [3, 4]. Although the workpiece parameters are not known, it
is always possible to estimate the range of variation in workpiece pa-
rameters that is to be expected in a particular task. If the analysis
of practical stability shows the non-adaptive control chosen is suffi-
ciently robust to encompass the predicted range of parameters change,
such control can be considered as satisfactory. The majority of com-
mercial robots use exactly this solution: they make use of the control
with fixed gains, which assumes a certain allowable variation in the
workpiece parameters.
The main problem with all these algorithms for adaptive control is their
numerical complexity, which makes their implementation difficult and
expensive. For this reason, it is always advisable to examine if the
implementation of such control is necessary, or the problem can be sol-
ved using the robust non-adaptive control, whose implementation is usu-
ally much simpler.
Example 6.3. For the manipulator presented in Fig. 3.2. we have synthe-
sized the non-adaptive control in the form of local nominal control
and local servo system feedbacks whose gains are given in Table 4.1
(Example 6.2). The tracking of nominal trajectories (Fig. 4.5) fordif-
ferent workpiece masses is illustrated in Fig. 6.7. As can be seen,
the tracking for the workpiece masses m = 5 [kg] is much less satis-
p
factory than in the case of the no-load robot. For this reason, the
adaptive control is included (Fig. 6.6) in which the identification of
workpiece mass is realized on the basis of the force measurements at
the points of contact of the gripper and the workpiece. On the basis
of the identified mass (and moments of inertia) of the workpiece, the
mechanism moments of inertia and velocity servo gains are calculated
P1~
I x1
Actua tor (1) I
~
Force sensor I
Local controller
'--- (1) with r--
variable gains I--
P1
Identification
of workpiece • dIN xo1 (t) L.,
x1 t1echani ca 1
parameters xi
accordi ng to x2 -------~
1--'----- ------- part
measured xn
forces and of the robot
robot state t- ,.. Pn
Pn
t
Actuator (n)
I xn Force sensor I
H
Local controller
L--- (n) with
variable gains ---xon(t)
--=-
, dIN
on-line, which should be such to ensure the damping of all servo sys-
tems is permanently critical.
l.Iq 1 [radj
0.02 0.02
0.01 0.01
-0.01
l.Iq 1 [rad]
0.02 0.02
0.01 0.01
-0.01
E x ere 1 s e s
6.6. For the manipulator presented in Fig. 3.2. determine the velocity
gains at all three servo systems, so that all of them are criti-
cally damped for the position qol = 0, q02 = 0, go3 0, if the
workpiece parameters are: a) mp = 2.0 [kg], J = J = J pz =
2 px py
0.005 [kgm ]; b) mp = 5 [kg], J
px
= J
py
= J
pz
o. 01 [kgm 2]; c)
mp = 10 [kg], J px = J py = J pz = 0.02 [kgm 2 ]. The manipulator data
are given in Table 3.1. and Table 3.2., while the resonant frequ-
encies of the structure about the particular joints for mp=O are
given in Exercise 3.28. and Exercise 3.31.
6.S. If the force feedbacks are used to identify the workpiece parame-
ters for the robot shown in Fig. 3.2., the algorithm for one ite-
ration to calculate the mass and inertia moment of the workpiece
requires ns = 30 adds and n M = 25 multiplies. Taking into account
the result of the preceeding problem, determine the number of
microprocessors to be used in parallel to identify the workpiece
parameters, calculate inertia moments of the mechanism about all
three jOints, and calculate the velocity gains at all three ser-
vos (as in the preceeding problem) every 50 [ms], using the micro-
processor:
a) INTEL-80-S0 (one add operation lasts O.S [ms], and one multi-
ply 1.5 [ms]), or
Assume the machine time is used only for addition and multiplica-
tion (calculation of a sine or a cosine function is equivalent to
one multiply plus two adds).
312
6.10.* Assume the velocity gains for the servo systems of the robot pre-
sented in Fig. 3.2. have been calculated in advance for 6 diffe-
rent values of workpiece mass mp = 0, 1, 2,3, 4, 5 [kg] and then
stored. When the identification algorithm has determined the ac-
tual workpiece mass, the velocity gain is obtained by the linear
interpolation in between the stored values. Write in a high pro-
gramming language a programme which will, for the input value of
the workpiece mass mp ' calculate the velocity gains for the servo
systems by linear interpolation, using the stored values. How
much this programme is simpler than the programme in 6.9? As the
velocity gain in this case changes only as a function of work-
piece mass, what are the robot's jOints positions for which the
velocity gains should be calculated and stored? Explain what are
benefi ts and what is lost by assuming the velocity gains vary only
in dependence of the workpiece mass, and not of the robot posi-
tion?
6.11.* Explain what are the advantages and what are disadvantages of in-
direct adaptive control via the force measurement in comparison
to global force feedback (Section 5.2.1). (Suggestion: Take into
account elastic effects of robot links and their "transmission"
to the control system, on the one hand, and the complexity of
calculation, on the other).
313
References
[2] Book J.W., Maizza Neto 0., Whitney E.D., "Feedback Control of Two
Beam, Two Joint Systems with Distributed Flexibility", Journal of
Dynamic Systems, Measurement and Control, Trans. of the ASME, Vol.
97, 424-431, 1975.
[4] Stoki6 D., Vukobratovi6 M., "Is Adaptive Control Necessary for
Manipulation Robots, and if so, to what Extent?", Proc. of Symp.
Third ICAR, Versailles, 1987.
[5] Vukobratovi6 M., Stoki6 D., Kir6anski N., Non-Adaptive and Adap-
tive Control of Manipulation Robots, Monograph Series: Scientific
Fundamentals of Robotics 5, Springer-Verlag, 1985.
[9] Kiovo A.J., Guo T.R., "Adaptive Linear Controller for Robotic Ma-
nipulators", IEEE Trans. on Automatic Control, Vol. 28, No 20, 1983.
7.1 Introduction
In all the tasks we have considered up to now, the robot does not come
into contact with the objects in the workspace, apart from those that
are being transferred. However, this does not hold for the one of the
most important industrial application of robots, namely, for the as-
sembly of machine parts. In this case, the robot comes into contact
with the objects in its environment and experiences actions of the
external environmental forces. Similarly, in the processes like cut-
ting, grinding, polishing and forging, the robot gripper has to act
upon the given object by certain forces. These external forces acting
on the robot gripper make the robot control much more complex. Hence,
this chapter will be devoted to the synthesis of control for the ro-
bots involved in the realization of the tasks of this type. First our
attention will be focused on the assembly process, as one of the most
important and most delicate tasks in which the action of external for-
ces is encountered. However, some general approaches to control of
constrained motion of robots will be also presented.
If the robot comes into contact with the objects in the workspace, the
reaction forces acting upon the robot are the functions of both the mo-
ments in the joints and coordinates and velocities of all the joints.
When a robot moves in free space. it represents an open kinematic chain;
when it comes into contact with the external objects, the robot beco-
mes a closed kinematic chain.
Dynamic models of closed kinematic chains are more complex than the
models of open kinematic chains, which makes the synthesis of the ro-
bot control more complex.
stage of approaching the workpiece, or, the stage just before mating
the objects, etc). In the preceeding chapters we have considered the
gross motion: the robot moves with a high speed along the given tra-
jectories (or, between the given positions), and, as we have seen, the
degree of accuracy required for the realization of this motion deter-
mined whether dynamic or nondynamic control had to be synthesized
(Chapters 4-6). The interface motion, which, according to some analy-
ses [1], takes the greatest amount of the assembly time, can be redu-
ced substantially by ensuring a high precision of the gross motion (in
the robot stopping and in approaching the workpiece). In other words,
the control synthesis for the interface motion can be carried out in a
way quite analogous to that used for the gross motion.
Here we shall focus our attention on the realization of the fine moti-
on in case the robot gripper comes into contact with the objects in
its environment. More precisely, we shall focus our attention on the
very stage of mating two elements, which represents the most sophisti-
cated stage in an assembly process. The stage of parts mating may be
realized in various ways, depending on the nature of the elements in-
volved; one of the possibilities is to use two robots, each of them
holding one of the two elements that are to be assembled. In princip-
le, the mating stage can be reduced to the problem of inserting the
workpiece (peg) held by the robot into a fixed hole, as shown in Fig. 7.1.
It is obvious that the assembly process involving bilateral manipula-
tion (two manipulators-robots) may also be reduced to this case.
forward that the quantity 2(R -r ) represents the clearance gap bet-
m m
ween the object and the hole. Obviously, the larger this gap is, the
simpler is the insertion process. For this reason, the assembling ca-
pability of a robot is judged from the minimal value of the gap betwe-
en the elements that can be assembled by the robot without causing any
damage to the objects, while ensuring fully reliable assembling of
the elements. To insert the peg into a hole, it is necessary to ensure
the peg is accurately positioned at the mouth of the hole, which is usu-
ally achieved on the basis of either precise information about the dis-
position (arrangement) of the objects in the workspace (known in ad-
vance), or the sensory information (visual feedback, and similar). The
task of precise initial positioning is of the greatest importance for
a successful assembly operation.
Let us analyze briefly the forces which can arise due to the peg-hole
interaction when the peg is brought to the mouth of the hole [2, 31.
Obviously, the given peg and hole geometry ensures that, upon inserti-
on, contact occurs simultaneously at most two points. (This does not
hold for special cases of coaxiality of the peg and cylindrical hole,
when contact may occur at an infinite number of points along the joint
generatrix). One of the two contact paints has to be between the hole
edge and the peg cylindrical surface, and the other on the edge of the
peg cylinder base and hole cylindrical surface. It is assumed that the
319
peg has already entered the hole, i.e. no jamming has occured at the
hole edge itself.
Case 1, when there is no contact between the hole and peg, represents
free manipulator movement without reaction forces from the hole, so
this situation does not differ dynamically from the task of transfer-
ring the workpiece in free space along a desired trajectory and with a
desired orientation. The manipulator dynamics is described by the ma-
thematical model of open chain dynamics.
Case 2 introduces the problem of the unknown reaction force acting upon
the manipulator and affecting its dynamics. The problem of determining
the reaction force at the hole-object contact points arises. Fig. 7.2.
illustrates the case of contact between the hole edge and the cylindri-
cal surface of the peg, while Fig. 7.3. shows another possibility of
single contact, namely, contact between the edge of the cylindrical
base of the peg and the cylindrical surface of the hole. Both figures
show the hole and peg section along the plane determined by the con-
tact point and the symmetry axis of the hole cylinder. The reaction
forces at contact points are marked in the figures. Three components
of the reaction force at the point Kl or K2 are to be determined in
the direction of the coordinate frame axes fixed at the contact point.
In fact, the perpendicular component of the reaction force NKl (per-
pendicular to the peg cylinder generatrix on which the point Kl is si-
tuated, i.e. perpendicular to the hole cylinder generatrix on which K2
is situated) is to be determined, as well as the tangential component
TKl (or TK2 ) in the direction of slipping (if it occurs) of the peg
along the hole edge (Fig. 7.2) or hole surface (Fig. 7.3).
320
Fig. 7.2. Case of one contact point Fig. 7.3. Case of one contact point
in assembly process - con- in assembly process - con-
tact between hole edge and tact between edge of peg
peg surface and hole cylinder surface
Two cases are possible. Case 2.a), when friction is such that slipping
exists in the peg-hole contact, and 2.b), when no slipping occurs, so
that the peg has no tangential linear velocity. Assuming that the coef-
ficient of friction ~ between the peg material and hole material is
known, the following condition should be investigated
i 1,2 (7.2.1)
In case 2.a) the peg has a linear velocity at the contact point in the
direction of TKi and the reaction force has to satisfy the slipping
condition
i 1 ,2 (7.2.2)
In case 2.b) the reaction force at the momentary contact point satisfies
the condition (7.2.1). In case 2.a) the contact point changes, and the
tangential linear velocity of the object at the point Ki has to be in
the direction TKi . In case 2.b) the peg can have only rotational velo-
city about the point Ki and the contact point does not change. This
imposes certain constraints on the peg acceleration, namely, the peg
as a rigid body can have three degrees of freedom, i.e. three rotation
accelerations about the contact point Ki, while the three degrees of
freedom of translation with respect to the contact point are constrai-
ned (linear accelerations in case 2.b) at the point Ki are equal to
zero). It is quite obvious that in case 2.a) the peg's linear velocity
at the point Ki can have a tangential component only, while the velo-
city component in the same direction of but in the sense opposite to
NKi must be equal to zero. (If this velocity component has the same
direction and sense as NKi' contact is only fictitious) .
321
In case 2 the forces acting upon the peg are: the inertia force of the
peg itself Fo , the peg gravitational force G0 = mp g, the forces by
which the manipulator (i.e. the gripper) acts upon the peg R~ (~ = 1,
2, ..• ,L, where L denotes the number of contact pOints between the peg
and gripper at which forces R~ act on the peg), and the reaction force
RK1. due to contact at the point K .. The dynamic equilibrium equation
1
of forces acting upon the peg (according to D'Alembert's principle) is
(7.2.3)
The moments acting on the peg round the centre of mass are: the moment
due to the inertial forces of the object itself Mo' the moment from to
the manipulator via the gripper, i.e. via forces at the gripper-peg
contact points, and the moment due to reaction forces at the object-
-hole contact points. Equilibrium of the moments about the centre of
mass of the peg (according to D'Alembert's principle) is
L
+ + + \ + +
Mo + r K · x RK . + L r 0 xR = 0 (7.2.4)
10 1 ~=1 ,,0 ~
-+
where r Kio is the position vector from the centre of mass of the peg 0
to the contact point Ki, ~£O (~ 1, 2, ... ,L) is the position vector
from the peg's centre of mass 0 to the peg-gripper contact pOint.
Equations (7.2.3) and (7.2.4) determine the peg dynamics in the case
of a single point of contact between the object and hole.
Which of these three cases will occur it depends on the nature of the
reaction forces at the points K1 and K2, i.e. the following conditions
should be investigated.
(7.2.5)
(7.2.6)
(7.2.7)
In case 3.a) the peg may have only tangential linear velocity at con-
tact points (if geometry permits them), while linear velocity and ac-
celeration at point Ki in the same direction of but opposite sense to
NKi are forbidden, which, together with the condition (7.2.6) provides
the necessary conditions for determining the reaction forces at points
Ki.
323
Fig. 7.4. Case of two contact Fig. 7.5. Case of contact along
points joint generatrix
(7.2.8)
o (7.2.9)
Case 4 can be reduced to case 2. The reaction force due to the hole
acts on the peg along the joint generatrix of the peg's cylindrical
surface and hole cylinder (Fig. 7.5). As the reaction force acts uni-
formly at all contact pOints along the generatrix, the reaction forces
->-
may be represented by one resultant force RK acting at the mid-point
of the line of contact between the peg and hole. This special case may
be treated like the case with one contact point. Equations (7.2.1) -
(7.2.4) hold, so that either slipping or jamming may occur (i. e.
the peg cannot slip along the generatrix), but in the last case rota-
tion separating the peg from the hole wall is possible and case 2.
occurs (if rotation is permitted by the geometry) .
Let us construct the mathematical model of the robot during the inser-
tion process. Starting from the model of the robot dynamics (3.2.2)
for the robot moving in free space (open kinematic chain), the mathe-
matical model of the robot dynamics during the insertion of the peg
into the hole can be written in the form [3]
p (7.2.10)
324
{~ i f there is no contact at K1
f:
i f there is contact at point K2
i f there is no contact at K2
The reaction forces RK1 and RK2 are complex functions of the angles,
velocities and accelerations of the joints (i.e. of the driving moments
P at the mechanism joints). Here, we shall not be concerned with the
problems of expressing these forces as explicit functions of q, q and
q but we shall retain the model in the form of (7.2.10).
However, the model (7.2.10) is not smooth. At the instants of the ob-
ject-hole contacts (when 6 1 and O2 change their values), theoretically
"instantaneous jumps" of the system state vector (q, q)
occur as a con-
sequence of the impact of the elements. Modelling of the impact pro-
cess is extremly complex so that the model of the robot dynamics too
is difficult to compose, to simulate it in an exact way, and thus ana-
lyze it. It is quite clear that at the moments of the impact, after
instantaneous changes in the velocites (and positions) of particular
joints, the model of the robot dynamics changes its structure: from an
open kinematic chain (3.2.2) it becomes a closed kinematic chain (7.2.10).
EX ere 1 ses
7.1. For the manipulator presented in Fig. 7.6, determine the matrix
J K1 in the model (7.2.10) if the peg-hole contact is as shown in
the figure. Write the matrix according to the notation used in
the figure (the robot has n=4 jOints). Show that J K1 represents
Jacobian matrix for the contact point.
325
\111/
q
7.2. If the models of the actuators at the robot jOints are given by
(3.2.4) (second order models), write the global robot model in
centralized form (analogous to (3.2.27» if the peg insertion
process proceeds with reaction forces acting on the working ob-
ject. The model of the mechanism dynamics is given by (7.2.10).
->- ->-
(In the total model, the reaction forces RK1 and RK2 should be
retained) .
Control of the robot during the assembly process involves solving two
major problems: planning of such trajectories which will provide the
elements are brought to a desired mutual position and ensure their ma-
ting, and reducing the (undesired) reaction forces acting between the
assembled elements. These two problems are interrelated: the proper
planning of trajectories diminish the error in mutual positioning of
the elements, and thus, reduce reaction forces. On the other hand, re-
action forces provide the basis for planning the trajectories (to mo-
dify the given trajectories) yielding the parts mating.
Certainly, there are some other technical solutions for sensors pla-
cing on the robot (for example, force sensors can be placed on the ro-
bot base, or in the jOints, as considered in Section 5.2, and the like).
It is obvious that the "further" from the workpiece forces sensors are
placed, the "more fouled" information about the reaction forces is ob-
tained, so that the dynamic robot model has to be used to calculate,
on the basis of the measured forces, the actual reaction forces acting
upon the workpiece.
328
equipped with
strain gauges
6P~1 (7.3.1)
where rk1i and r K2i are the position vectors from the axis centre of
the i-th joint to the contact point K1 and K2 respectively (see Figs.
7.2 - 7.5) and ~, is the unit vector of the i-th joint axis. Let us
1
->- ->-
suppose the inertia forces of the object Fo' gravitati~n force Go and
the moment due to inertia forces of the object itself Mo' can be neg-
lected (which is, as we have already said, a realistic assumption in
regard to small veloci tes and accelerations of the workpiece in the sta-
ge of parts mating). On the basis of relations (7.2.8) and (7.2.9) for
the case of the occurrence of two contact points (i.e. on the basis of
(7.2.3) and (7.2.4) for the case of one contact point between the ob-
ject and hole), expression (7.3.1) can be written (taking into account
+ + + + + +
that r K1i = rK10+roi' r K2i rK20+roi):
L L
6P~1
+
(r ,x I +
R + I +
r, xR,)e,
+ +
(7.3.2)
01 £ =1 £ £ =1 ",0 N 1
where r ,
01
is the position vector from the centre of axis of the i-th
joint to the mass centre of the workpiece. If we suppose the workpiece
parameters are known, expression (7.3.2) can be calculated on the basis
of the force sensors information, i.e. from the measured forces RJ>.. On
the basis of the values obtained for the compensating torques 6P~, it
1
is possible to determine the compensating signals to the actuators in-
puts which should realize these torques. If we assume the actuators
models are of second order (i.e. if the delay in the rotor circuit can
be neglected), the compensating signals can be calculated in the form:
(7.3.3)
where K~>O is the gain in the force feedback loop, and fi and hi are
1
defined by (5.2.12). On the basis of (7.3.2) and (7.3.3) a feedback
loop can be established from the force sensors (which measure reaction
->-
forces between the object and gripper R£) to the actuators inputs. The
block-scheme of such control is shown in Fig. 7.9. It is not necessary
330
control laws (7.3.2) and (7.3.3) include the robot parameters which
need not to be known precisely. On the other hand, the force sensors,
however precise they may be, introduce always certain noise in the for-
ces measured. Therefore, should the compensating torque be realized
exactly according to (7.3.2), it could result in an oscillatory beha-
viour of the robot,. The role of feedback gains K~ is to prevent such oscil-
~
We have considered here a simple scheme of robot control for the as-
sembly process which involves force feedbacks. It should be borne in
mind that this control scheme cannot solve the assembly problem in a
general way. Moreover, even in the simplest case, this scheme cannot
guarantee that peg jamming will be avoided. It is necessary to develop
a special strategy (Le. to plan the gripper motion) so to prevent jam-
ming.
r--- -
'"
12--
Qllo-
a:'"
Qllo-
a: U O
lo-VI
U O
lo-VI
0<= 0<=
LLQl LLQl
VI VI
-
r--
[t
I
•I
I I L.-
I I
tI
I
I
·~X I
<=
x x
-- ~~ -- """,L-
?
~
~
<= ~
~
~
~
lo- lo-
lo- lo-
~~ ...,0
~Ql
....0 O~
"'~
go
...,'"
~ --'~
.... ...,'"
~ --'lo-
....
U <= U <=
0:( 0 0:( 0
U U
- .... L- ....
LL .~
- .... L... .....
U ~ U
<= 0 <J 0
~ <= ~ ~~
tI
~ ~ ~
~
fl'C:i)' +
LL~C~
:
<=
x
+
1 ~
LL<=
~
<l
....
~
0
<=
.~
~
U
'"
en
.... ....
0
Ql
a.
VI
'"
Ql
'" '"
'" "C
en
lo-
0
"C
N
M
<=
en
....'"
.~
VI
Ql
a.
VI
';;;
<=
en
'"
.~
"C
0
l0-
~
M
M
-
E E en
~ U
....: E U
......
U '" 0
U
0
E
U
'"
~
0
U VI
U
'"
~
connection
with robot
RCC
gri pper
workpiece
Further development of RCC has led to the instrumented RCC (IRCC) whose
purpose is also to realize passive adaptation but which includes mea-
surement of contact forces and moments, so that this information can
be used in the feedback [10].
For the purpose to study experimentally force feedback loops and their ap-
plication in robotics a force sensor which could measure all the three
components of the force acting between the robot gripper and workpiece
has been used. Besides, a special gripper (Fig. 7.11) has been develo-
ped and attached to the tip of the minimal configuration of the mani-
pulation robot UKS-2.
Both jaws sides of the experimental gripper were supplied with three-
-component force sensors. The gripper was designed in such a way that
t):J,e jil,ws sides bearing force sensors move parallel with each other.
from the WAZAU company (Be rlin), and their measuring range was 20 N.
The force sensors are semiconductors of the strain gauge type of ave-
rage sensitiv ity of 1.505 mV/N and have exhibited v ery good reproduci-
bility. The gripper was covered with rubber to ensure uniform pressure
and friction needed for the efficient gripping of the payload. The
screws with nuts and springs enabled mechanical adjustment of "zero"
in each of the three measuring directions.
The experimental gripper with the force sensors was attached to the
tip of the minimal configuration of the industrial manipulator UMS-2
shown in Fig. 7.6. The robot possesses n=4 d.o.f. (three for the mini-
mal configuration and one for the gripper rotation). The robot control
was r e alized using a PDP-11-03 microcomputer and either the analogue
or direct digital servo systems.
2
lIP~
1
= I -; . xR 1,
1,=1 1,1
(7.3.4)
where d denotes the half-width of the gripper jaws (i.e. the distance
from the left to the right force sensor; this distance is measured by
means of a corresponding linear potentiometer and, via AID converter
led to the microcomputer) .
The time-history of the forces appearing at the sensor (i.e. the modu-
le of the force vector) during the object insertion are presented in
Fig. 7.12. If the global force feedback is opened (by putting the gain
K~=O) these forces will reach their maximum. If the control also in-
cludes the force feedback (and through it additional driving torques
calculated by the microcomputer are applied) these forces become smal-
ler (see the result for K~;:1 in Fig. 7.12). However, if the global gain
336
is too high, the robot may start to oscillate and reaction forces may
even increase (see the case when K;=2). Fig. 7.13. shows the maximum
amplitude of the force Fx measured by the force sensor on the gripper
(actually, the sensor measures the reaction force RK acting between
the payload and hole, because the payload dynamics forces can be neg-
lected*)) as a function of the global gain applied in the force feed-
back K;. It is observed that the maximum reaction force decreases
3 \, \~ I" 6 t[s]
-I
,-It"
'.
I: ,. I
,
,
- K~=O. ~,..• .: II
~.i' I
-3
•••• _ ••• K~=I. "."
\J
---- K~=2.
0.5 2
for K~ 2 1 and increases again for K~ > 1. This means that force gain
should be carefully selected in order to avoid oscillatory motion of
the robot when the force feedback gain is too high.
E X ere 1 s e s
7.3. write the expressions for the compensating torques in the robot
joints (7.3.2) for the case the peg and hole are in contact (Figs.
+
7.2 - 7.5), if the Rg, forces are measured at the points of contact
of the workpiece and gripper (as in Fig. 7.11) and if the assump-
+ +
tion on neglecting the inertia forces F o ' gravitational force Go
and the moment due to the inertial forces of the workpiece itself
Mo , is not valid (i. e. it is necessary to introduce these for-
ces and the moment into (7.3.2)). Determine these forces and mo-
ments via coordinates and velocities of the robot joints for the
robot UMS-2 in Fig. 7.6. Was such correction necessary?
7.4. In the experiment described in Example 7.3, the control of the ro-
bot shown in Fig. 7.6. is realized by means of a microprocessor
which on-line calculates the nominal centralized control accord-
ing to (4.4.20), local servo system (both the position and velo-
city) feedbacks according to (4.4.16) and additional compensating
moments (on the basis of the forces measured at the gripper-object
contact points) according to expressions (7.3.4), (the correspon-
ding signals for the actuators are calculated using (7.3.3)). Wri-
te down a dynamic model for the robot UMS-2 in Fig. 7.6 and the
models of the actuators (D.C. servomotors - second order models) .
Determine what is the minimal number of numerical operations (ad-
ditions and multiplications) needed to calculate the control sig-
nals (i. e. the inputs to actuators u i ), on the basis of the given nomi-
nal trajectories qOi, qOi on the actual coordinates qi and joint ve-
locities qi (i = 1, 2, 3, 4) and on the basis of forces measured
T T
by force sensors (Rx1 ' Ry1 ' Rz1 ) and (Rx2 ' Ry2 ' Rz2 ) ,as well
as of the gripper jaws d at each sampling period. Assume the no-
minal joint acceleration qOi is obtained by numerical differenti-
ation of the nominal velocity qOi ,., (qo(t+lIt)-qo(tll/llt, where lit
is the sampling period. Take that the calculation of a sine or
cosine function requires one multiply and two add operations.
Assume the processor time is used only for the operations of ad-
dition and multiplication.
7.6. Draw a detailed scheme for the control of the UMS-2 robot accor-
ding to Example 7.3 and Exercise 7.4, so that all the necessary
AID and DIA converters, sensors and actuators are marked.
workspace, so that these objects "act" upon the robot by reaction for-
ces and thus constrain the robot motion in certain directions. In other
words, in this class of tasks, the robot motion in the particular di-
rections is constrained by its contact with one or more surfaces. For
example, when the robot comes into contact with a surface in the work-
space, the robot's motion in the direction perpendicular to that sur-
face is constrained, but the robot can act upon that surface by a cer-
tain force (Fig. 7.14). It is obvious that the task of part assembl-
ing (i. e. of inserting a peg into a hole, Fig. 7.1) belongs to the class
of tasks with partialy constrained motion. As we have already mentioned,
to this class of tasks also belong the tasks of robotic cutting, for-
ging, grinding, deburring and many others.
When the robot comes into contact with an object in the workspace, then,
in dependence of the specific mechanical and geometrical characteris-
tics of the given contact, various constraints are imposed to the ro-
bot gripper motion and to forces the hand can realized. A set of such
constraints which are a na,tural consequence of the par.ticular relation-
ship between the robot and environment (i.e. of the nature of the con-
tact between them) is called natural constraints. For example, with
the robot shown in Fig. 7.14. the robot gripper motion in the direction
340
The constraints in Fig. 7.1S.a) have been defined under the assumption
that the friction between the gripper and crank handle ensures reliab-
le grasping and that the handle can rotate with respect to the crank
arm. The robot gripper position constraints are defined by the gripper
velocity components with respect to the chosen coordinate frame, which
is often more convenient than to define position constraints in a di-
rect way. Similarly, the force constraints are specified via prescri-
bing the values to components of the vector force and moment at the
gripper with respect to the same coordinate frame. It is obvious that
the gripper position constraint comprises the constraints with respect
to position and/or orientation of the gripper, while force constraints
include the constraints with respect to forces and/or moments acting
upon the gripper.
The constraints in Fig. 7.15.b) have been derived under the assumption
that the force in the direction y is limited to zero, since the slot
in the screw head allows the screw driver to slip in this direction.
All these natural constraints are determined by the nature of the con-
tact itself, not by the desired manipulator motion.
When the desired robot motion and/or the forces to be realized by the
robot gripper are prescribed, the so-called aptificial constpaints are
thus defined. To define a task to be realized by the robot, is to de-
fine the artificial constraints to the gripper motion and to the for-
ces to be realized by the gripper. In Fig. 7.15. apart from the natu-
ral constraints, we have also presented the artificial constraints
341
x O. Fz O. z
c
O. F O.
c x
Yc O. F O.
Y
0
Wx O. M O. wY W M
x
O.
Y Y
Wz O. M
z
O.
Yc O. Fx O. x
c
O. F O.
Y
0
z pw F O.
X y c z z
0
w
Z
W M
x
O. W
x
O. M
z
O.
Z
M O. W O.
Y Y
(bl Turning screwdriver
Therefore, the hybrid robot control should ensure the position control
in the direction (in the constraint coordinate frame) in which there
is a natural force constraint, and to ensure control of the gripper
force in the direction in which there is a natural constraint to the
gripper position. Such control should be realized that it might be ap-
plied for different combinations of these constraints with respect to
an arbitrary (suitable) constraint coordinate frame [13].
We have already pointed out that the constraint coordinate frame can
be defined in different ways, which depends on the nature of the par-
ticular task. This frame may be fixed to the tip of the robot gripper
or to either a mobile or fixed part of the objects in the workspace
(e.g. on a mobile tool, at the hole into which the peg is being inser-
ted, etc.). Actually, the selection of this frame depends on specific
production task. Therefore this coordinate frame is usually reffered
as task-specific frame. However, the constraints defined with respect
to this coordinate frame may easily be transformed into the co.nstraints
on the gripper position and constraints on the force acting on the grip-
per with respect to the coordinate frame used to define the external
robot coordinates s, and vector forces at the gripper F (Cartesian
frame - see Section 5.5). For simplicity sake we shall assume that the
position constraints have been defined with respect to the coordinate
frame for which the external coordinates s and external forces F were
defined, so that the natural and artificial constraints are defined
343
For simplicity sake, matrix S has been introduced with the purpose of
choosing the gripper's d.o.f. that are position controlled or force
controlled [12, 13]. SeZection matrix S is of diagonal form, the i-th
element on the diagonal has the value if the i-th gripper d.o.f. is
force controlled (i.e. if the artificial constriant is prescribed with
respect to the i-th component of the vector F), and the value 0, if
344
the i-th gripper d.o.f. is position controlled (i.e. if s~(t) has been
prescribed). It is obvious that the dimensions of matrix S are mxm
(where m is the order of the external coordinates vector s and of the
force vector F; m<6 - see Section 2.2). For different tasks and dif-
ferent conditions of the robot-environment contacts the elements of
matrix S change during the task execution (because the natural constra-
ints change) .
On the basis of the information about actual joint positions q(t) ob-
tained from the position sensors at joints, actual values of the ex-
ternal (Cartesian) coordinates s(t) are calculated using expression
(2.2.1). Thus, the control system calculates the error with respect to
the hand coordinates (i.e. the difference between the actual coordina-
tes and the prescribed nominal trajectories sO(t)):
(7.4.2)
F(t) (7.4.3)
lIF(t) (7.4.4)
As with the position s, for force control too (for the specific task
and contact situation) only certain components of F are relevant, i.e.
it is relevant the error vector with respect to the gripper force liFe'
defined as
(7.4.5)
Thus, for the specific contact situation, i.e. for a defined S, the
error in the control system with respect to the gripper posi tion (7.4.2)
and the error with respect to the force on the gripper (7.4.5) are ob-
tained. These errors are "divided" into the hand d.o.f. controlled by
position (orientation) and the hand d.o.f. controlled by force (moment) .
On the basis of these errors the controller should generate input sig-
nals to the actuators at the robot joints. In this way, different con-
trol laws, connecting the signals to the actuators inputs and the er-
rors with respect to the position lise and the errors with respect to
force liFe' can be applied.
Fig. 7.16. represents a general scheme of hybrid control [12]. The con-
trol consists of two complementary sets of feedbacks loops (the upper
with respect to position, the lower ones with respect to force) each
of them including its own control law and the both controlling one and
the same object - the robot. The control laws have to include the trans-
formation of the external (hand) coordinates into the joint torques
(i.e. input signals to the actuators). It is obvious that both sets of
the feedbacks control each robot jOint in a "cooperative" manner, though
each of the hand d.o.f. is controlled only by one of the feedback sets.
The control can be realized in external coordinates, and this is done
according to the solutions presented in Section 5.5. (Fig. 5.11). If
the decentralized control in external (Cartesian) coordinates is adop-
ted, the joints torques can be calculated (in the static case) from
the relations (using (5.5.2) and (5.5.3)):
LIP
-1
J (q) lise (t) (7.4.7)
(7.4.8)
and then, the control is realized in the joint coordinates (i.e. joints
torques are calculated):
(7.4.9)
Here, lIP p (t) is the vector of correctional torques due to the position
control which can be realized via the PIO control law:
(7.4.10)
where Kpp' Kpv' KpI are the respective nxn matrices of the position,
velocity and integral feedback gains (in joint po~ition control).
(7.4.111
where KFP and KFI are the (nxn) matrices of the proportional and inte-
gral gains in the force feedbacks loops. If the matrices Kpp' Kpv'
KpI ' KFP and KFI are adopted in diagonal form, the control is dec en-
347
In should be pointed out that the hybrid control is still at the stage
of laboratory investigations and only some partial solutions of such
control have been used with commercial robots, for some special purpo-
ses (e.g. for assembly). As we have already said in the preceeding
chapter, these solutions involve either force feedbacks or some pas-
sive compliances.
s{t) DIRECT
,..------~---I KI NEMATI CS
f{q{t))
POSITION CONTROL
AND COORDINATE
TRANSFOR~1A TI ON
S------~
FORCE CONTROL
AND FORCE
TRANSFORMATION
TRANSFOR~,1ATI ON
(7.4.3)
J
q
On the other hand, the hybrid control requires that the Same actuators
realize both the position control and force control. The problem of
choosing a control law and feedback gains has not been generally sol-
ved. The choice of the force feedback gains is hindered by the lack of
a reliable model of the robot-environment contact, as well as by the
insufficiently known relationship between the position control and
force control. It appears difficult to realize the robust hybrid con-
trol which would (using a unique control law and unique feedback gain~
The interaction between the position control part and force control
part has to be clarified. It is the question how a robotic system pri-
marily designed for position control might be used for both position
and force control. Therefore, a lot of both theoretical and practical
problems have to be solved before the hybrid position/force control
will be applied within industrial robotics [20].
E X ere 1 s e s
7.8. Determine natural constraints on the position and force for the
gripper which is not in contact with any surface in the workspace
(open kinematic chain).
7.10. If the force sensors are mounted on the gripper at the points of
contact of the gripper and workpiece as in Fig. 7.7, determine
the transformation matrices TFe from (7.4.3), if the vector of
352
force (and moment) F(t) at the gripper has been defined with res-
pect to the coordinate frame whose origin is at the workpiece ~ass
centre and the axes are along the main inertia axes of the work-
piece. If the workpiece dynamics is taken into account, how will
relation (7.4.3) change?
7.11. Repeat the preceeding task but assuming the force sensors have
been situated at the gripper joints as in Fig. 7.8, and the grip-
per possesses a spheric joint as in Fig. 2.4. Consider how the
dynamics of the gripper and of the workpiece can influence the
relationship between the forces (and moments) at the gripper F(t)
....
and the forces R t measured at the gripper joint.
7.14.* Draw a scheme of the hybrid position/force control in the case the
position control is realized via the computed torque method (in
joint coordinates), whereas the force control is realized by a
decentralized force controller (in the Cartesian force coordina-
tes) .
7.15.* Starting from the model of the robot dynamics written in external
(Cartesian) coordinates (see Exercises 5.18 - 5.20) [16] draw a
control scheme of the dynamic hybrid control which includes com-
pensation of the total robot dynamics by "computed torque method"
in Cartesian coordinates. Assume that the position control is re-
alized by simple PD controllers in Cartesian coordinates (5.5.3)
and the force control is realized by PD controller of Cartesian
forces. This means that the commanded Cartesian force FD is com-
puted analogously to (7.4.6), but the inertia matrix A(S) and
centrifugal moments vIs) and gravity moments pes) - all in Carte-
353
where S is the force selection matrix and PM(t) is measured force vec-
tor. Then, the jOint torques have to be determined (according to
(5.5.2» which will realize this commanded Cartesian force PD. Try to
optimize computation of joint torques taking into account relation be-
tween the inertia matrix A(S), Centrifugal term \1(s, s) and gravity
term p(s) in Cartesian space and these terms in joint space (see Exer-
cise 5.20).
On the other hand, the force control requires that the system stiffness
be as low as possible. Ideally the zero stiffness of the servo will
allow to achieve desired force regardless of position disturbances.
This means that in order to realize force control we should decrease
the stiffness of the servo. If the stiffness of the joints servo sys-
tems is decreased the robot gripper will also behave as having low
stiffness which will enable appropriate force control. It is well-known
from some practical experiments (see Sect. 7.3) that the robot is much
more successful in inserting a peg into a hole if the stiffness of the
servos is decreased. (However, such solution leads to a poor position-
ing of the robot when it has to be used as positioning device) .
If we have to realize such control tasks which require that the robot
hand position has to be controlled in some directions and the force
applied by the hand must be controlled in other directions, then we
need the robot hand to exibit maximal stiffness in some directions
(those in which its position should be controlled) and minimal stif-
fness in other (in those in which force applied by the hand has to be
controlled). The idea of the stiffness control is to try to control
the gripper stiffness in various directions depending on the specific
task. Since the gripper stiffness depends on the joint stiffness, we
can compute the stiffness of the joint servos necessary to achieve a
desired gripper stiffness. Therefore, we have to adjust stiffness of
the servos in the robot jOints (by adjusting the feedback gains) in
order to obtain desired stiffness of the gripper.
Let us consider one possible solution to this problem [21J. Let us try
to make that the hand of the robot behaves as a general spring with
six degrees of freedom. The small displacements of the hand as (spring)
should cause the force F of the hand which can be expressed by (we shall
write the expression in hand coordinates, but actually task-space co-
ordinates should be used to express the hand stiffness characteristics) :
F -K 8s (7.5.1)
pe
We have to determine the torques in the jOints that would produce the
force (7.5.1) at the robot hand. We recall the static relation between
the hand force F and the joint torques P (5.5.3). Therefore, we have
to produce the joints torques
(7.5.2)
in order to achieve the force F (7.5.1). On the other hand, the rela-
tion between the small displacements of the hand oS and the small dis-
placements of the joints oq is given by (according to (2.2.5)):
OS J(q)&q (7.5.3)
p (7.5.4)
Thus, we obtain the relation between the small joint displacements and
the joint torques which ensures that the robot hand behavesasa spring
with six degrees of freedom (7.5.1) and with desired stiffness in va-
rious directions. Actually, we have to apply such control law which
will ensure the relation between joint torques P and the joints displa-
cements oq given by (7.5.4), and by this the desired behaviour of the
robot hand (7.5.1) will be achieved.
p (7.5.5)
where now ~q is the vector of deviation of the joints angles from the
desired position qO, i.e. ~q=q_qO, and K is a diagonal matrix Kv =
. v
diag(K~). By selecting stiffness matrix Kpe according to a specific
task and by applying control law (7.5.5), we might achieve that the
356
p (7.5.6)
It also should be noted that stiffness control does not require expli-
cit application of force sensors (and therefore it belongs to a class
of so-called implicit foY'ce control). However, in practice, applicati-
on of force sensors to measure forces at the robot hand are required
in order to maintain the desired forces. If we assume that we measure
the actual forces at the robot hand F, than we can add a term in the
control law (7.5.6) which will take into account the error between the
desired force Fa and actual force F:
p (7.5.7)
where KF is the 6x6 diagonal matrix of the force feedback gains (the
force feedback is implemented in Cartesian space coordinates).
E X ere 1 s e s
7.16. Assume a six degrees of freedom robot which has to apply a force
in z-direction (vertical) upon a frictionless horizontal plane,
and to move along the plane. Select the stiffness matrix Kpe in
the stiffness control (7.5.6) for this specific task.
7.17. Assume that the task from the Exercise 7.16. has to be performed
by four degrees of freedom robot presented at Fig. 7.6. Determine
359
the Jacobian matrix ~o~ this robot and write explicitely both
control laws (7.5.5) and (7.5.6) (or (7.5.7). Introduce selection
matrix S. Compare this control laws to that one applied in Sec-
tion 7.3. Determine the number o~ operations (adds and multiples)
that has to be performed (at each sampling interval) by control
microprocessors to apply these control laws.
sensor + environment
References
[6] Nevins L., Whitney D., "The Force Vector Assembler Concept", Proc.
First International Conference on Robots and Manipulators, Udine,
Italy, September, 1973.
[7] Whitney E.D., "Histbrical Perspective and State of the Art in Ro-
bot Force Control", The International Journal of Robotics Research,
Vol. 6., No.1., 1987.
[8] Nevins J., \'lhitney D., "Assembly Research", Automatica, Vol. 16,
pp. 595-613, 1980.
361
[10] DeFazio T., Seltzer D., Whitney D., "The IRCC Instrumented Remote
Centre Compliance", Industrial Robot, 1984.
[11 ) Mason M., "Compliance and Force Control for Computer Controlled
Manipulators", MIT Artificial Intelligence Laboratory Memo 515,
April, 1979.
[15) Asada H., Slotine J., Robot Analysis and Control, John Wiley and
Sons, New York, 1986.
[16) Khatib 0., "A Unified Approach for Motion and Force Control of
Robot Manipulators: The Operational Space Formulation", IEEE Jo-
urnal of Robotics and Automation, Vol. RA-3, No.1, 1987.
[17) Khatib 0., Burdick J., "Motion and Force Control of Robot Manipu-
lators", Proc. of IEEE International Conference on Robotics and
Automation, 1986.
[19) Yabuta T., Chona A., Beni G., "On the Asymptotic Stability of the
Hybrid Position/Force Control Scheme for Robot Manipulators",
Proc. of IEEE International Conference on Robotics and Automation,
pp. 338-343, 1988.
[20) Paul R.P., "Problems and Research Associated with the Hybrid Con-
trol of Force and Displacement", IEEE International Conference on
Robotics and Automation, 1987.
[23) Kazerooni H., Houpt P.K., Sheridan T.B., "Robust Compliant Motion
for Manipulators: Part I - The Fundamental Concepts of Compliant
Motion, Part II - Design Methods", IEEE Journal of Robotics and
Automation, RA-2, pp. 83-105, 1986.
3~
- Read data on a robot for which the user wants to synthesize control
(structure and geometry of the robot, kinematic and dynamic parame-
ters of the robot, data on actuators); these data have to be defined
by the user in corresponding files-see description of input data fi-
les.
- Form dynamic model of the robot which consists of the model of mec-
hanical part of the robot and of the models of actuators (the model
of mechanical part is formed by programmes which listings are given
in the book: Dynamics of Manipulation Robots: Modelling, Analysis
and Examples, by M. Vukobratovic).
compute the local servo systems feedback gains for individual joints
of the robot and actuators, using one of two available methods (ac-
cording to the user choice):
- Compute trajectories of the joints for the specified initial and fi-
nal positions with both triangular and trapezoid velocity profile
(with specified movement time and with specified time of accelerati-
on/deceleration).
- Compute nominal driving torques in the joints for the specified tra-
jectories and compute nominal centralized or local programmed con-
trol.
- with or without global control, and for each joint the user might
specify:
The user has to prepare corresponding data files for hiS selected ro-
bot, according to guideline given in the text to follow.
Note: Note t.h.at in t/1,e presented package many options are not intro-
duced in order to condense the programmes and due to lack of
space. The u.ser can simply extend many functions and easely
in.t,rodl1ce various options which will increase the applicability
of this pacKage (;for example, the user might introduce computa-
tion of the local feedback gains by pole-placement method - see
Section 3.3.3, introduce specification and generation of the
nominal trajectories in external (Cartesian) coordinates - see
Chapter 2, introduce simulation of only individual (decoupled)
366
DESCRIPTION OF SUBROUTINES
Task KG includes the following subroutines:
KG - the main routine which calls all other subroutines
SMINIC - reads the initial values of variable, data
on auxiliary parameters and so on.
INPUT KIN - reads data on the kinematics of the
- selected robot
MODEL - the main subroutine for computation of the
inertia matrix H and the vector of centrjf.
Coriolis and gravity moments h - this sub-
routine and all subroutines called are
given in ref. M. vukobratovic: Applied
Dynamics of Robots, Springer-Verlag,Berlin,
1989.
COLIAS - the subroutine for the mechanims assem-
bling in the special case
MODCHK - testing of succesfull assembling of the
mechanism according to the user's data
INPUT DIN - reads the data on the dynamic parameters
of the robot
SM MAX IN - computes the maximal and minimal values
- - of the moments of inertia of the mecha-
nism around the joints axes
INPUT ACT - reads data on the actuators in the robot
joints and forms the models of actuators
and joints
INPUTL - r~ads data on the actuators
SMOPRG - synthesizes the local optimal regulators with
or without the integral feedback loop
SMOREG - solves the algebraic equation of Riccati
type
SMEIG3 - auxiliary subroutine for determination
of the eigen-values and eigen- vectors
of a given quadratic matrix
SMLOC E - synthesizes the local control feedback gains
(synthesis in S - domain)
TRAJEK - computes the nominal trajectories
(in the joints coordinates)
SMNOMP - computes the nominal moments and the nominal
(centralized or local) programmed control
LINANA - subroutine for analysis of the linearized
(total) model of the robot via determination
of the eigen-values of the system matrix with
or without the local controllers
SMLINM - forms matrices of the open-loop lineari-
zed model of the robot
SMLGAD - forms matrices of the closed-loop linea-
rized model of the robot
SMEIGN - auxiliary subroutine for computation of the
eigen-values and eigen-vectors of a given
quadratic matrix
SMSIMD - simulates the total dynamic model of the robot
SMOPTN - subroutine for imposing the control law
which will be simulated
SMINGL - for imposing the form and the gain of the
global control in simulation
SMCONT - computes the local control during the
simulation
SMCONG - computes the selected global gains during
the simulation
368
LEVEL: I II III IV V
KG
SMINIC
INPUT KIN
MODEL
COLIAS
MODCHK
INPUT DIN
SM MAX IN
MODEL
INPUT ACT
INPUTL
SMOPRG
SMOREG
SMEIG3
EIGENP(SCALE ... )
GMPRD
MINV
EIGENP
SCALE
COMPVE
REALVE
HESQR
SMLOC E
TRAJEK
SMNOMP
MODEL
LINANA
SMLINM
MODEL
MINV
SMLGAD
SMEIGN
EIGENP(SCALE ... )
SMSIMD
SMOPTN
SMINGL
MODEL
SMCONT
SMCONG
LIAPIS
GMPRD
GRADIS
GMPRD
SMMINV
MINV
370
********************************************************************
* DESCRIPTION OF INPUT/OUTPUT DATA FILES *
********************************************************************
*******************************************************************
* DESCRIPTION OF DATA-FILE ***.DAT *
*******************************************************************
*********************************************************************
* DESCRIPTION OF DATA-FILE ***.CNF
*********************************************************************
*
The data-file includes data on the robot structure. In the text
to follow brief descriptions of the variables for which data have
to be set are given and the corresponding formats are denoted.
The detailed description of the variables can be found in the
previously mentioned reference.
9) X coordinate of the vector from the first joint to the mass cen-
ter of the first link with respect to the coordinate frame
attached to the first link rll 1m] (format lX,F15.6)
10) Y coordinate of the vector from the first joint to the mass cen-
ter of the first link with respect to the coordinate frame
attached to the first link rll 1m] (format lX,F15.6)
11) z coordinate of the vector from the first joint to the mass cen-
ter of the first link with respect to the coordinate frame
attached to the first link rll 1m] (format lX,F15.6)
12) X coordinate of the vector from the second joint to the mass cen-
ter of the first link with respect to the coordinate frame
attached to the first link r12 1m] (format lX,F15.6)
13) Y coordinate of the vector from the second joint to the mass cen-
ter of the first link with respect to the coordinate frame
attached to the first link r12 [m] (format lX,F15.6)
374
14) z coordinate of the vector from the second joint to the mass cen-
ter of the first link with respect to the coordinate frame
attached to the first link r12 1m) (format lX,FI5.6)
If the joint is linear, then at this place in the file ***.CNF
the following data on the robot structure have to be set:
15) The special vector for the linear joint "uii" X coordinate
(format lX,F15.6)
16) The special vector for the linear joint "uiill Y coordinate
(format 1X,F15.6)
17) The special vector for the linear joint "uii" Z coordinate
(format lX,FlS.6)
18) The special vector for the linear joint "ui,i+l" X coordinate
(format lx,FlS.6)
19) The special vector for the linear joint "ui,i+l" Y coordinate
(format lX,F1S.6)
20) The special vector for the linear joint "ui,i+l" Z coordinate
(format lX,FI5.6)
Description of the futher data to be set are identical as these
given for the first joint and they repeat n times for all joints
of the robot (n - number of joints)
At the very end of the file the data on the unit vector of the
axis of the first joint with respect to the absolute coodinate
frame are given:
x coordinate of the unit vector of the axis of the first joint
with respect to absolute coordinate frame "eO"(format 1X,FlS.6)
Y coordinate of the unit vector of the axis of the first joint
with respect to absolute coordinate frame "eO"(format 1X,F1S.6)
z coordinate of the unit vector of the axis of the first joint
with respect to absolute coordinate frame "eO"(format 1X,F1S.6)
375
*****************************************************************
* DESCRIPTION OF DATA FILE ***.ACT *
*****************************************************************
15) This values is of no use for D.C. motor model and therefore
any number might be put - format lX,F15.6
16)
9) The absolute value of the maximum allowed input current for the
servo-valve (for positive values of current) [mAl; lX,FlS.6.
10) The absolute value of the maximum allowed input current for the
servo-valve (for negative values of current) [mAl; lX,F15.6.
The next lines of this file contain values of the same parameters
of the actuators in the next joints of the robot, and therefore the
descriptions of the lines 2-15 repeat for the next sets of values
(16-29, 30-43, etc.). The file contains the sets of data on n actua-
tors in the n joints of robots.
377
*********************************************************************
* DESCRIPTION OF DATA-FILE ***.DNM *
*********************************************************************
1) The link type (1- link of the cane type, 0 - not cane)
(format 1x,F15.6)
*********************************************************************
* DESCRIPTION OF DATA FILE ***.TRA *
*********************************************************************
The data file includes data for the given robot which are used in
trajectory generation. The description of the values for which
the data have to be set are presented according to the sequence
in which they are set in the file.
*******************************************************************
* DESCRIPTION OF DATA-FILE ***.INT *
*******************************************************************
**********************************************************************
* DESCRIPTION OF DATA-FILE ***.LOC *
**********************************************************************
~***************************************************** *********
* DESCRIPTION OF DATA-FILE ***.ANG *
***************************************************************
**********************************************************************
* DESCRIPTION OF DATA-FILE ***.DIN *
**********************************************************************
***************************************************************
* DESCRIPTION OF DATA-FILE ***.SIM *
***************************************************************
C---------------------------------------------------------------------
C ROUTINE: KG
C---------------------------------------------------------------------
C FUNCTION: THE MAIN ROUTINE OF THE TASK-
C IT CALLS THE FOLLOWING SUBROUTINES:
C SMINIC - reads the initial values of variable, data
C on auxiliary parameters and so on.
C INPUT KIN - reads data on the kinematics of the
C selected robot
C INPUT DIN - reads the data on the dynamic parameters
C of the robot
C INPUT ACT - reads data on the actuators in the robot
C joints and forms the models of actuators
C and joints
C SMOPRG - synthesizes the local optimal regulators with
C or without the integral feedback loop
C SMLOC E - synthesizes the local control feedback gains
C (synthesis in S - domain)
C TRAJEK - computes the nominal trajectories
C (in the joints coordinates)
C SMNOMP - computes the nominal moments and the nominal
C (centralized or local) programmed control
C LINANA - subroutine for analysis of the lineari-
C zed (total) model of the robot via determi-
C nation of the eigen-values of the system
C matrix with or without the local control-
C lers
C SMSIMD - simulates the total dynamic model of the
C robot
C------------------------------------------------------------------
C INPUT VARIABLES:
C FILE(S) - name of the robot
C N - number of joints of user's robot
C ALFAI(6) - prescribed degrees of the exponential
C stability of local subystems
C ICNVLN - indicator whether the linearized
C model of the system is stable or not
C-------------------------------------------------------------------
C OUTPUT VARIABLES:
C IOPTOR(6) - indicators whether the local optimal
C regulator is applied in the joint
C IOPTIN(6) - indicators whether the local integal
C feedback loop is applied in the local
C controler, or not
C-------------------------------------------------------------------
include 'in2:smcom.com'
C
COMMON/OPTPR/ ICNVLN
COMMON/file/ filetS)
COMMON/rbsl/ i
CHARACTER*1 file,filep*S,a$
C--------------------------------------------------------------------
C
C READ NAME OF THE ROBOT (up to S characters)
C All input/output data-file on robot have the
C given name of the robot (by convention ROBOT NAME.ext,
C where ext points to the type of data in the data-file;
C for example ROBOT NAME.CNF contains data on the robot
C structure and geometry)
C
383
WRITE (6,2)
READ (5,3) filep
DO ipom~1,5
file(ipom)=filep(ipom:ipom)
END DO
C
C raed auxiliary data on the robot
C
CALL sminic
C
C read data on the robot
C
CALL input kin
CALL input-din
CALL input-act
C-----------------=------------------------------------------------
C
C computation of the local controllers around all n joints
C of the robot (n - number of joints)
C
TYPE 111
9 DO i=1,n
C
C user's decision if he wants to apply local optimal
C controller or not, and if he wants to introduce
C the integral feedback loop in the i-th joint
C
TYPE 100,i
READ(S,101)yes
IF(yes.eq.'Y')then
ioptor(i)=1
ioptin(i)=O
type 104,i
read(S,101)yes
if(yes.eq.'Y')ioptin(i)=l
C
C set the prescribed exponential stability degree for the
C i-th subsystem (joint)
C
10 TYPE 10S,i
READ(5,106)alfai(i)
IF(alfai(i).lt.1 .• or.alfai(i).gt.20.)go to 10
C
C if the local optimal regulator is seleceted
C
CALL smoprg(i)
else
C
C if the synthesis in the S-domain is selected
C
CALL smloc e
ioptor(i)=O
end if
C
end DO
C
C data on local feedack gains are written in the
C output data-file ***.LOC (if the user wants so)
C
TYPE 107
READ(S,10l)yes
384
IF(yes.eq.'Y') then
OPEN(unit=2,name=filepll'.LOC',type='NEW')
DO 11 i=l,n
WRITE(2,106)pkl(i)
WRITE(2,106)pk2(i)
WRITE(2,106)pk3(i)
11 WRITE(2,106)pk4(i)
CLOSE(2)
end IF
C-----------------------------------------------------------------
C
C computation of the nominal trajectories (in the joints
C coordinates)
C
CALL trajek
C
C computation of the nominal programmed control
C
CALL smnomp
C-----------------------------------------------------------------
C
C linear analysis - linearization of the entire model
C of the robot and computation of the eigen-values of
C the open-loop and the closed-loop system matrix
C (when the local controllers are applied)
C
TYPE 102
READ(5,101)yes
IF(yes.ne.'Y')GO TO 18
CALL linana
C
IF(icnvln.EQ.O)THEN
TYPE *,' The linearized model is stabilized with'
TYPE *,' the prescribed exponential stability degree'
ELSE
TYPE *,' The linearized model is not adequatly'
TYPE *,' stabilized by the selected local controllers'
TYPE 108
READ(5,101)yes
IF(yes.EQ.'Y')GO TO 9
end IF
C--------------------------------------------------------------------
C
C simulation of the entire dynamic nonlinear model of robot
C
18 CALL smsimd
TYPE 112
READ(5,101)yes
IF(yes.EQ.'Y') GO TO 18
C--------------------------------------------------------------------
C
2 format ($,lx,'THE ROBOT NAME [max. length 5 characters]:')
3 format (as)
5 format (il)
100 format(' Do you want synthesis of local optimal regulator',I,
1 $,' for the',I3,'th joint [YIN]?:')
102 format(II,$,' Do you want linear analysis [YIN]?:')
101 format(a1)
104 format($,' Want to apply integral feedback loop for the',i3,
I 'th joint [YIN]?:')
105 format($,' Imose the exponential stability degree for the',
385
C----------------------------------------------------------------
C SUBROUTINE: SMINIC
C----------------------------------------------------------------
C FUNCTION: READ DATA REQUIRED FOR THE CONTROL
C SYNTHESIS - READ DATA FROM THE FILE
C ROBOT NAME. DAT
C----------------------------------------------------------------
SUBROUTINE SMINIC
C
INCLUDE 'IN2:SMCOM.COM'
C
byte FTOT(14)
byte FILE(S)
COMMON/FILE/ FILE
C
DATA FTOT(1)/'I'/,FTOT(2)/'N'/,FTOT(3)/'1'/,FTOT(4)/':'/,
1 FTOT(10)/'.'I,FTOT(11)/'D'/,FTOT(12)/'A'I,
2 FTOT(13)/'T'I,FTOT(14)/0/
C---------------------------------------------------------------
C
DO 1=l,S
FTOT(I+4)=FILE(I)
END DO
C
OPEN(UNIT~2,NAME=FTOT,TYPE='OLD',ERR=3000)
C
NUK=O
C
READ(2,100)N
100 FORMAT(I4)
101 FORMAT(3E15.5)
C
C default data on actuators
C
DO 1 I=l,N
C
READ(2,100)NI(I)
READ(2,101)((A(J,K,I),K=1,NI(I»,J=1,NI(I»
READ(2,101)(B(J,I),J=1,N1(1»
READ(2,101)(F(J,1),J=1,N1(1»
C
C computation of the total order of the robotic system
C
386
NUK-NUK+NI(I)
1 CONTINUE
C
READ(2,101)«QQ(I,J,1),I=1,NI(1»,J=1,NI(1»
C
DO 10 II=2,N
DO 10 1=1,3
DO 10 J=1,3
10 QQ(I,J,II)=QQ(I,J,l)
READ(2,101)(R1(I),I=1,N)
READ(2,101)(QI(I),I=1,N)
C
DO 11 I=l,N
READ(2,100)IOPTOR(I),IOPTV(I),IOPTI(I)
11 CONTINUE
C
CALL CLOSE(2)
RETURN
C
3000 TYPE 3001,FILE
3001 FORMAT(' DIAG*** File ',5A1,'.DAT cannot be found')
RETURN
END
C---------------------------------------------------------------------
C SUBROUTINE: INPUT KIN
C ••••••••••••••••••••••• • -:- ••••••••••••••••••••••••••••••••••••••••••••
C FUNCTION: THE MAIN SUBROUTINE FOR INPUT DATA ON
C KINEMATIC PARAMETERS OF THE USER'S SPECIFIC ROBOT
C •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
C INPUT: N - number of the joints (NJ = N)
C 10 - the order number of the joint
C OUTPUT: Kinematic parameters of the user's robot
C •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
SUBROUTINE INPUT KIN
C
INCLUDE 'CONFIG.MOD'
INCLUDE 'MODELM.MOD'
COMMON /MODSW/KOD
COMMON/LINSPE/ UD(6,3),UG(6,3)
COMMON/ORDGLB/ NUK,NJ
COMMON/FILE/ FILE(5)
BYTE file
C
COMMON /INTR/ SIMB(19,6)
DIMENSION EPOC1(3)
CHARACTER*2 OPC1
CHARACTEr*4 POM1
CHARACTER*9 FILEP,FILEP2,FILEP4
C
FILEP=CHAR(FILE(1»//CHAR(FILE(2»//CHAR(FILE(3»//
> CHAR(FILE(4»//CHAR(FILE(5»//'.CNF'
c .................................................................. .
C read data from the file ***.CNF
C
INEW=O ! Indicator of new file 1:o1d; O:new
DESNI=l ! initialization of the coordinate frame
C DESNI=l - right, DESNI=O - left frame
OPEN (55,FILE=FILEP,STATUS='OLD',ERR=11)
INEW=l
387
WRITE (6,14) FILEP
14 FORMAT (/,lX,' DIAG*** Fi1e:',a10,' is found',/)
read (55,'(lX,i1)') n
nj=n
DO IPOM=l,n
DO JPOM=1,19
READ (55,'(lX,F15.6)') SIMB(JPOM,IPOM)
END DO
END DO
DO IPOM=1,3
READ (55,'(lX,F15.6)') EPOC(IPOM)
END DO
CLOSE (55)
if (inew.eq.1) GO TO 12
11 WRITE (6,13) FILEP
13 FORMAT (/,lX,'DIAG*** File ',a10,' cannot be found')
STOP
C
C variables substitutions
C
12 do ipom=l,n
ksi2(ipom)=simb(1,ipom)
do kpom=1,3
eu(ipom,kpom)=simb(kpom+l,ipom)
eul(ipom,kpom)=simb(kpom+4,ipom)
rOu(ipom,kpom)=simb(kpom+7,ipom)
if (ipom.eq.n) then
rt(kpom)=simb(kpom+10,ipom)
else
rOu(ipom+n,kpom)=simb(kpom+lO,ipom)
end if
end do
end do
C
C examine the values of the variables
C
do ipom=l,n
C
C the vector ei must be the unit vector
C
eum=sqrt(eu(ipom,l)*eu(ipom,l)+
> eu(ipom,2)*eu(ipom,2)+eu(ipom,3)*eu(ipom,3) )
if (eum.gt.1.01.0R.eum.lt.O.99) then
write (6,'("+DIAG*** vector ei" ,i2,
> is not unit vector")') ipom
stop
end if
end do
do ipom=l,n
C
C the vector ei,i+1 must be unit vector
C but there is no need to examine the vector
C ei,i+1 in the terminal joint of the robot
C
if (ipom.lt.n) then
eu1m=sqrt(eu1(ipom,1)*eul(ipom,1)+
> eu1(ipom,2)*eul(ipom,2)+eul(ipom,3)*
> eu1(ipom,3»
if (eu1m.gt.1.01.0R.eulm.lt.O.99) then
write (6,'("+DIAG*** The vector ei+1" ,i2,
> " is not unit vector")') ipom
388
stop
end if
end if
end do
c
c examine whethel' there is at least one linear joint
c
do ipom=l,n
if (ksi2(ipom).eq.l) iflO=l
end do
if (ifIO.eq.l) then !IFLO=ljthere is at least
one linear joint
do ipom=l,n !=Ojthere is no linear joints
if (ksi2(ipom).eq.l) then
do kpom=l,3
ud(ipom,kpom)=simb(kpom+l3,ipom)
ug(ipom,kpom)=simb(kpom+l6,ipom)
end do
else
do kpom=l,3
ud(ipom,kpom)=O
ug(ipom,kpom)=O
end do
end if
end do
c
C examine the values of input data
C
do ipom=l,n
C
C test whether the vectors uii,ui,i+l are unit vectors or not
C the vector uii must be unit vector
C
if (ksi2(ipom).eq.l) then
udm=sqrt(ud(ipom,l)*ud(ipom,l)+
> ud(ipom,2)*ud(ipom,2)+
> ud(ipom,3)*ud(ipom,3))
if (udm.gt.l.Ol.or.udm.lt.O.99) then
write (6,'(" DIAG*** vector uii" ,i2,
> "is not unit vector" )') ipom
stop
end if
end if
end do
c
C the vector ui,i+l must be unit vector
C
do ipom=l,n
if (ksi2(ipom).eq.l) then
ugm=sqrt(ug(ipom,l)*ug(ipom,l)+
> ug(ipom,2)*ug(ipom,2)+
> ug(ipom,3)*ug(ipom,3))
if (ugm.gt.l.Ol.or.ugm.lt.O.99) then
write (6,'(" DIAG*** Vector ui,i+l" ,i2,
> " is not unit vector" )') ipom
stop
end if
end if
end do
389
else
epocm=sqrt(epoc(1)*epoc(1)+epoc(2)*epoc(2)+
> epoc(3)*epoc(3»
if (epocm.lt .. 99.or.epocm.gt.l.Ol) then
stop
end i f
end i f
C
C test collinearity of the joints axes and the link
C axes and assembling of the kinetic chain
C
do ipom=l,n
call colias(ipom)
end do
kod=l
call model
call modchk(imod)
if (imod.lt.O) then
write (6,'(/," FATAL*** ASSEMBLING OF THE MECHANISM:
> UNSUCCESSFUL")')
return
else
write (6,'(/," DIAG*** Assembling of the mechanism:
> SUCCESSFUL")')
end if
return
END
C---------------------------------------------------------------------
C SUBROUTINE: COLIAS
C---------------------------------------------------------------------
C FUNCTION: GENERATING OF THE VECTORS NECESSARY FOR
C THE MACHANISM (KINEMATIC CHAIN) ASSEMBLY
C IF THE VECTORS (Rii,ei) or (Ri,i+l,ei+l) ARE
C COLINEAR
C---------------------------------------------------------------------
C INPUT VARIABLES:
C KSI2 joint type
C EPOC the unit vector of the axis of the first joint
C with respect to absolute coordinate frame
C UD special unit vector for the i-l-st link if
C the i-th joint is linear
C UG special unit vector for the t-th link if the
C joint is linear
C ROU link vectors (Rii and Ri,i+l)
C EU the unit vector of the axis of the i-th joint
C EUl the unit vector of the axis of the i+l-st
C joint
C---------------------------------------------------------------------
C OUTPUT VARIABLES:
C IASl indicator whteher the i-th link is special
C since (Ei 1 1Ri i): IAS1=0 the link is not
C "special", IAS1=1 the link is "special"
C IAS2 indicator whether the i-th link is "special"
C since (Ei, i+lll Ri, i+l) :
C =0 the link is not "special"
C =1 the link is "special"
C RAS the vectors for the mechanism assembling if
C the i-th link is "special"
C--------------------------------------------------------------------
390
SUBROUTINE COLIAS(I)
C
INCLUDE 'IN2:CONFIG.MOD'
COMMON/LINSPE/ UD(6,3),UG(6,3)
REAL IDEL(3)
DIMENSION IAS(6)
C
IAS1( I)-O
IAS(I)-O
IAS2(I)-0
C
IF(I.EQ.1.AND.KSI2(I).EQ.1)GO TO 567
ROPOC(1)--EPOC(3)
ROPOC(2)=-EPOC(1)
ROPOC(3)=-EPOC(2)
GO TO 4000
567 DO 403 K=1,3
ROPOC(K)=UD(I,K)
403 CONTINUE
4000 IND=O
M=I
IF(KSI2(I).EQ.1)GO TO 444
DO 15 K-1,3
IMUL1=0
IF(ROU(M,K).EQ.0.)IMUL1=1
IMUL2-0
IF(EU(I,K).EQ.0.)IMUL2=1
IF(IMUL1.NE.IMUL2)GO TO 200
IF(IMUL1.EQ.0.AND.IMUL2.EQ.0)GO TO 56
IDEL(K)=O. .
GO TO 15
56 IDEL(K)=ROU(M,K)/EU(I,K)
15 CONTINUE
C
300 IF(IDEL(l).EQ.O.)GO TO 101
IF(IDEL(2).EQ.0.)GO TO 102
IF(IDEL(3).EQ.0.)GO TO 103
IF(IDEL(1).EQ.IDEL(2).AND.IDEL(2).EQ.IDEL(3))GO TO 104
IAS(I)=O
GO TO 200
104 IAS(I)=l
GO TO 201
103 IF(IDEL(1).EQ.IDEL(2))GO TO 104
IAS(I)=O
GO TO 200
102 IF(IDEL(3).EQ.0.)GO TO 105
IF(IDEL(1).EQ.IDEL(3))GO TO 104
IAS(I)-O
GO TO 200
105 IAS(I)=l
GO TO 202
101 IF(IDEL(2).EQ.0.)GO TO 106
IF(IDEL(3).EQ.0.)GO TO 105
IF(IDEL(2).EQ.IDEL(3))GO TO 104
IAS(I)=O
GO TO 200
106 IF(IDEL(3).EQ.0.)GO TO 107
GO TO 105
107 TYPE 1016
1016 FORMAT(' FATAL***** The unit vectors of the joint axis and of
391
C---------------------------------------------------------------------
C SUBROUTINE: MODCHK
C---------------------------------------------------------------------
C FUNCTION: EXAMINES IF THE MECHANISM (KINEMATIC CHAIN) CAN BE
C SUCCESSFULLY ASSEMBLED; PRINTS THE TRANSFORMATION
C MATRIX AND CHARACTERISTIC KINEMATIC PARAMETRS
C --------------------------------------------------------------------
C INPUT VARIABLES:
C Q (3,3) Transformation matrix of the terminal
C link (after mechanism assembling) - An
C lAX indication of the terminal link orientation
C SI joint coordinates
C E the unit vectors of the joints axes with
C respect to absolute coordinate frame
C RP
C RT position vectors with respect to abs. frame
C RTT
C OUTPUT VARIABLES:
C ICHK indicator of assembling of the mechanism
C ICHK=O successful assembling
C ICHK=-l unsuccessfull assembling - data on
C the mechanism are not consistent
C and the user must change data in the
C file ***.CNF
C
SUBROUTINE MODCHK(ICHK)
C
INCLUDE 'IN2:CONFIG.MOD'
INCLUDE 'IN2:MODELM.MOD'
DIMENSION RPl~6,6,3),RP2(6,6,3),RP3(6,6,3),RP4(6,6,3),
> RP5(6,6,3)
C
ICHK=O
DO 1 1-1,3
LL=O
DO 2 K=l,3
IF(Q(I,K).NE.O) LL=LL+l
2 CONTINUE
IF(LL.EQ.O) ICHK=-l
1 CONTINUE
TYPE *,' CHARACTERISTIC KINEMATIC VARIABLES'
TYPE *,' ----------------------------------,
TYPE *,' Joint coordinates: '
TYPE 1099,(SI(I),I=l,N)
1099 FORMAT(6(E13.5))
TYPE *
TYPE *,' Transformation matrix of the terminal link An:'
TYPE 100,«Q(I,J),J-1,3),I=l,3)
100 FORMAT(lX,3F10.5)
TYPE *
TYPE *,' Joint axes with respect to absolute coord. frame'
DO 202 I=l,N
TYPE 333,I,(E(I,K),K=l,3)
333 FORMAT(/,' E(',I1,')- ',3(F10.5))
202 CONTINUE
TYPE *
TYPE *,' position vectors of the centers of masses and of
> joints'
DO 303 I=l,N
IF(I.EQ.N) GO TO 505
393
J-I+l
IF(I.EQ.3) GO TO 997
IF(I.EQ.4) GO TO 996
DO 339 K-l,3
RP4(I,J,K)_RP(I,I,K)+RP(J,J,K)-RP(J,I,K)
339 CONTINUE
TYPE 444,I,I,(RP(I,I,K),K=1,3),I,J,(RP4(I,J,K),K=1,3)
444 FORMAT(/,' R(' ,11,',' ,II,' )-' ,x,3FB.3,
, R(',Il,',',Il,')-',X,3FB.3)
* GO TO 303
997 DO BB7 K=1,3
RPl(I,J,K)=RP(I,I,K)-RP(J,I,K)
887 CONTINUE
TYPE 444,I,I,(RP(I,I,K),K=1,3),I,J,(RPl(I,J,K),K=1,3)
GO TO 303
996 DO 774 K=1,3
RP2(I,I,K)=RTT(I,I,K)
RP3(I,J,K)=RTT(I,I,K)+RP(J,J,K)-RP(J,I,K)
774 CONTINUE
TYPE 444,I,I,(RP2(I,I,K),K=1,3),I,J,(RP3(I,J,K),K-l,3)
GO TO 303
505 DO 677 K=1,3
677 RP5(I,I,K)=RP(I,I,K)+RTO(K)
TYPE 666,I,I,(RP5(I,I,K),K=1,3),(RTO(K),K=1,3)
666 FORMAT(/,' R(',Il,',',Il,')=',x,3FB.3,' RTO- ',3FB.3)
303 CONTINUE
RETURN
END
C---------------------------------------------------------------------
C SUBROUTINE: INPUT DIN
C ••••••••••••••••••••••• • -:- •••••••••••••••••••••••••••••••••••••••••••
C FUNCTION: THE MAIN SUBROUTINE FOR INPUT DYNAMIC
C PARAMETRS OF THE ROBOT MECHANISM
C---------------------------------------------------------------------
C INPUT VARIABLES:
C NJ - number of joints of the user's specific robot
C 10 - the order number of the joint
C---------------------------------------------------------------------
C OUTPUT VARIABLES:
C DYNAMIC PARAMETERS FOR THE USER'S SPECIFIC ROBOT
C---------------------------------------------------------------------
SUBROUTINE INPUT DIN
C
REAL 1(6) ,lz(6) ,mm(6) ,js(6) ,jn(6) ,jx(6) ,jy(6) ,jz(6)
COMMON/tipl/ nx,ksil(6),ksi2(6),ksi3(6)
COMMON/MIN/ MM,JS,JN,JX,JY,JZ
COMMON/SPMOM/ GM(6,3),G(6)
COMMON/ORDGLB/ NUK,NJ
COMMON/FILE/ FILE(5)
BYTE file
*
CHARACTER opcl*l
DIMENSION SIMB(17,6)
COMMON/HMAX/ HMAX(6)
COMMON/HMIN/ HMIN(6)
COMMON/MOD MAX MIN/ QMAX(6),QMIN(6)
CHARACTER*9 FILEP,FILEP2
394
C •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
14 format (/,lX,' DIAG*** File:',aIO,' has been found',/)
13 format (/,lX,' DIAG*** File ',aIO,' cannot be found',/)
2 format ('+',a6,':',F15.6)
4573 format (lx,'want to compute maximal moments of inertia of the
> mechanism',/,lx,' (otherwise you have to directly specify
> them) [Y/N]:'$)
4575 format (a2)
4572 format (/,lx,' DIAG*** Computation of maximal moments of
> inertia',/)
4574 format (lx,' Specify the maximal moment of inertia around the'
> ,i2,' joint:',$)
C
C read data from the data-file ***.DNM
C
FILEP=CHAR(FILE(1))//CHAR(FILE(2))//CHAR(FILE(3))//
> CHAR(FILE(4))//CHAR(FILE(5))//'.DNM'
OPEN (55,FILE=FILEP,STATUS='OLD',ERR=II)
INEW=l
WRITE (6,14) FILEP
DO IPOM=l,NJ
DO JPOM=1,7
READ (55,'(lx,FI5.6)') SIMB(JPOM,IPOM)
END DO
END DO
close (55)
if (inew.eq.1) GO TO 12
11 inew=O
WRITE (6,13) FILEP
CLOSE (55)
STOP
C
C check parameter KSI1: if it is not 0 or 1 it is put to 0
C
12 do ipom=l,nj
if (simb(1,ipom).ne.O.and.simb(1,ipom).ne.1) then
simb(l,ipom)=O
end if
end do
C
C substitution of the variables
C
do ipom=l,nj
ksi1(ipom)=simb(1,ipom)
mm(ipom)=simb(2,ipom)
g(ipom) =mm(ipom)*9.81
qmax(ipom)=simb(6,ipom)
qmin(ipom)=simb(7,ipom)
if (ksi1(ipom).eq.O) then
jx(ipom)=simb(3,ipom)
jy(ipom)=simb(4,ipom)
jz(ipom)=simb(5,ipom)
else if (ksi1(ipom).eq.1) then
js(ipom)=simb(3,ipom)
jn(ipom)=simb(4,ipom)
end if
end do
write (6,4573)
read (5,4575) opc1
if (opc1.eq.'Y') then
write (6,4572)
395
C
C computation of the maximal moments of inertia of the mechanism
C around the joint axes
C
call sm max in
do ipom=l,nj
write (6,'("Max. mom.inert. H",il,il,"max-",f15.6
> )' )ipom,ipom,hmax(ipom)
write (6,'("Min. mom.inert. H",il,il,"min=",f15.6
> )')ipom,ipom,hmin(ipom)
wr i te (6,' ( " ..................... ")')
end do
else
C
C the user wants to specify the maximal moments of inertia
C
do ipom=l,nj
write (6,4574) ipom
read (5,*) hmax(ipom)
end do
end if
RETURN
END
C*********************************************************************
C SUBROUTINE: SM MAX IN
C----------------------=---=------------------------------------------
C FUNCTION: COMPUTES THE MAXIMAL AND THE MINIMAL VALUES OF
C THE MOMENTS OF INERTIA OF THE MECHANISM AROUND
C THE ROBOT JOINTS FOR ALL ALLOWABLE VALUES OF
C THE JOINTS ANGLES (LINEAR DISPLACEMENTS) - THE
C SUBROUTINE CALLS SUBROUTINE MODEL TO COMPUTE
C THE MOMENTS OF INERTIA (inerta matrix HH) FOR
C VARIOUS JOINTS ANGLES AND SEARCHES FOR THE MA-
C XIMAL AND MINIMAL VALUES OF MOMENTS OF INERTIA
C AROUND THE ROBOT JOINTS (diagonal elements in
C the inertia matrix HH(i,i))
C--------------------------------------------------------------------
C INPUT VARIABLES:
C NS - number of joints of the user's specific robot
C QMI(6) - the vector of the minimal allowable values of the
C joints angles (displacements)
C QMA(6) - the vector of the maximal allowable values of the
C joints angles (displacements)
C HH(6,6) - inertia matrix of the robot for given joints angles
C---------------------------------------------------------------------
C OUTPUT VARIABLES:
C HMAX(6) - vector of the computed maximal values of the
C moments of inertia of the mechanism around the
C robot joints
C HMIN(6) - vector of the computed minimal values of the
C moments of inertia of the mechanism around the
C robot joints
C---------------------------------------------------------------------
C SUBROUTINE REQUIRED:
C MODEL - computates the inertia matrix for the given
C values of the joints angles (computes HH)
C---------------------------------------------------------------------
396
SUBROUTINE SM MAX IN
C
byte file (5)
common/file/ file
INCLUDE 'MODELM.MOD'
COMMON /HMAX/ HMAX(6)
COMMON /HMIN/ HMIN(6)
COMMON /MOD MAX MIN/ QMA(6),QMI(6)
DIMENSION DELTA(6)
COMMON/ORDGLB/ NUK,NS
C
C initialization
C
DO I=1,NS
HMAX(I)=-1.
HMIN(I)=1.E+06
SI(I)=QMI(I)
C
C determination of increment of the joint angles at which
C the moments of inertia of the mehanism are computed
C
DELTA(I)=(QMA(I)-QMI(I»/3.
END DO
C
C branching according to the number of joints of the robot
C
GO TO (1,2,3,4,5,6) NS
C
C if the robot has one joint only
C
1 CALL MODEL
DO I=1,NS
IF (HH(I,I).GT.HMAX(I» HMAX(I)=HH(I,I)
IF (HH(I,I).LT.HMIN(I» HMIN(I)=HH(I,I)
END DO
RETURN
C
C if the robot has two joints
C
2 SI(2)=QMI(2)
DO J2=1,3
CALL MODEL
DO I=l,NS
IF (HH(I,I).GT.HMAX(I» HMAX(I)=HH(I,I)
IF (HH(I,I).LT.HMIN(I» HMIN(I)=HH(I,I)
END DO
SI(2)=SI(2)+DELTA(2)
END DO
RETURN
C
C if the robot has three joints
C
3 SI(2)=QMI(2)
DO J2=1,3
SI(3)=QMI(3)
DO J3=1,3
CALL MODEL
DO I=1,NS
IF (HH(I,I).GT.HMAX(I» HMAX(I)=HH(I,I)
IF (HH(I,I).LT.HMIN(I» HMIN(I)=HH(I,I)
END DO
SI(3)=SI(3)+DELTA(3)
397
END DO
SI(2)=SI(2)+DELTA(2)
END DO
RETURN
C
C if the robot has four joints
C
4 SI(2)=QMI(2)
DO J2=1,3
SI(3)=QMI(3)
DO J3=1,3
SI(4)=QMI(4)
DO J4=1,3
CALL MODEL
DO I=l,NS
IF (HH(I,I).GT.HMAX(I)) HMAX(I)=HH(I,I)
IF (HH(I,I).LT.HMIN(I)) HMIN(I)=HH(I,I)
END DO
SI(4)=SI(4)+DELTA(4)
END DO
SI(3)=SI(3)+DELTA(3)
END DO
SI(2)=SI(2)+DELTA(2)
END DO
RETURN
C
C if the robot has five joints
C
5 SI(2)=QMI(2)
DO J2=1,3
SI(3)=QMI(3)
DO J3=1,3
SI(4)=QMI(4)
DO J4=1,3
SI(5)=QMI(5)
DO JS=1,3
CALL MODEL
DO I=l,NS
IF (HH(I,I).GT.HMAX(I)) HMAX(I)=HH(I,I)
IF (HH(I,I).LT.HMIN(I)) HMIN(I)=HH(I,I)
END DO
SI(S)=SI(S)+DELTA(S)
END DO
SI(4)=SI(4)+DELTA(4)
END DO
SI(3)=SI(3)+DELTA(3)
END DO
SI(2)=SI(2)+DELTA(2)
END DO
RETURN
C
C if the robot has six joints
C
6 SI(2)=QMI(2)
DO J2=1,3
SI(3)=QMI(3)
DO J3=1,3
SI(4)=QMI(4)
DO J4=1,3
SI(S)=QMI(S)
DO J5=1,3
398
SI(6)-QMI(6)
DO J6=l,3
CALL MODEL
DO I=l,NS
IF (HH(I,I).GT.HMAX(I)) HMAX(I)-HH(I,I)
IF (HH(I,I).LT.HMIN(I)) HMIN(I)-HH(I,I)
END DO
SI(6)-SI(6)+DELTA(6)
END DO
SI(S)=SI(S)+DELTA(S)
END DO
SI(4)=SI(4)+DELTA(4)
END DO
SI(3)=SI(3)+DELTA(3)
END DO
SI(2)=SI(2)+DELTA(2)
END DO
RETURN
end
C---------------------------------------------------------------------
C SUBROTINE: INPUT ACT
C------------------------=--------------------------------------------
C FUNCTION: COMPUTES THE MODELS OF THE SUBSYSTEMS -
C ACTUATOR MODELS INCLUDING "MAXIMAL" MOMENT
C OF INERTIA OF THE MECHANISM AROUND THE JOINT
C AXIS
C---------------------------------------------------------------------
C INPUT VARIABLES:
C ACTUATOR PARAMETERS WHICH ARE READ IN THE
C SUBROUTINE INPUL
C HMAX(6) - maximal moments of inertia of the mechanism
C around the joints axes (computed in SM MAX IN)
C OPCl - user's option: to print the computed matrices-or not
C---------------------------------------------------------------------
C OUTPUT VARIABLES:
C THE MATRICES OF THE ACTUATOR'S STATE MODEL
C dx/dt = A * x + b * u + f * P
C (here: x is the state vector of the i-th actuator model
C u is the input, P is the load - driving torque)
C NS - number of joints of the user's specific robot
C NI(6)- vector contaning the selected orders of the actuator
C models
C A(3,3,6) - three dimensional matrix which includes A matrices
C of the actuators models for all NS actuators
C B(3,6) - two dimensional matrix including control distribution
C b vectors of the actuators models
C F(3,6) - two dimensional matrix including load distribution
C f vectors of the actuators models
C a$(6) - character vector including information on actuators
C types
C AHM,BHM,FHM - matrices analogue to A, B, F but which
C include the maximal moments of inertia of
C the mechanism HMAX - matrices of the subsystems'
C state models
399
C---------------------------------------------------------------------
C SUBROUTINE REQUIRED:
C INPUTL - reads data on the selected actuators for the robot
C and computes the matrices A,B,F of actuators'models
C---------------------------------------------------------------------
SUBROUTINE INPUT ACT
C
COMMON/SUBSYS/ A(3,3,6),B(3,6),F(3,6)
COMMON/SUBSHM/ AHM(3,3,6),BHM(3,6),FHM(3,6)
COMMON/ACTORD/ NI(6),KI(6)
COMMON/ORDGLB/ NUK,NS
C
COMMON/TIP ACT/ A$(6)
COMMON/HMAX/ HMAX(6)
DIMENSION RMEL(6)
CHARACTER*2 A$,OPC(15),B$,OPC1*1
C ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
2 FORMAT (A1)
3 FORMAT (lX,F16.5)
30 FORMAT (lX,'--------------------------------------------------
1453
*--------------')
FORMAT (lX,A19)
1256 FORMAT (/,lX,A11,I2)
1387 FORMAT (lX,'Do you want to print the matrices of subsystems
* models',/,' (which include the maximal mom. of inertia)
* [ YIN 1: ' , $ )
C---------------------------------------------------------------------
C
C call subroutine to read data on actuators and computes
C the matrices A,B,F of the actuators' models
C
CALL INPUTL
* ........................................................................................................................................ .
WRITE (6,1387)
READ (5,2) OPC1
DO I=l,NS
OPC(l)~A$(I)
RMEL(I)-F(2,I)
C--------------------------------------------------------------------.
C
C computation of the matrices AHM, BHM, FHM
C
C~-l./RMEL(i)/(-l./RMEL(i)+Hmax(I)
FHM(2,i)=F(2,i)*C
AHM(1,2,I)=1.
IF (NI(i).EQ.2) THEN
AHM(2,2,i)=A(2,2,i)*C
BHM(2,i)=B(2,i)*C
RMEL(i)=RMEL(i)*C
ELSE
AHM(2,2,i)=A(2,2,i)*C
AHM(2,3,i)=A(2,3,i)*C
* AHM(3,2,I)=A(3,2,I)
AHM(3,3,I)=A(3,3,I)
BHM(3,I)aB(3,I)
RMEL(i)-RMEL(i)*C
END IF
400
C-------------------------------------------------------------------
C
C print matrices
C
IF (OPC1.EQ.'Y') THEN
WRITE (6,1256) , Subsystem:',I
WRITE (6,1453) 'Subsystem matrix A:'
WRITE (6,'«NI(I»F16.5)') ((AHM(J,K,I),
> K=1 , NI ( I ) ) , J=1 , NI ( I ) )
WRITE (6,1453) 'Subsystem vector b:'
WRITE (6,3) (BHM(J,I),J=1,NI(I))
WRITE (6,1453) 'Subsystem vector f:'
WRITE (6,3) (FHM(J,I),J=1,NI(I))
WRITE (6,30)
END IF
END DO
END
C---------------------------------------------------------------------
C SUBROUTINE: INPUTL
C---------------------------------------------------------------------
C FUNCTION: READS DATA ON THE ACTUATORS PARAMETERS SPECI-
C FlED BY THE USER IN THE FILE *** .ACT AND
C COMPUTES THE ACTUATORS MODELS IN THE STATE
C SPACE
C---------------------------------------------------------------------
C INPUT VARIABLES:
C PARAMETRS OF THE ACTUATORS SPECIFIED IN THE FILE
C ***.ACT
C NS - number of joints of the user's specific robot
C A$ - charactet vector including information on the
C actuators types (DC - D.C. electro-motor, HD -
C hydraulic actuator)
C NI(6) - vector including ordrers of the actuators
C models as selected by the user
C---------------------------------------------------------------------
C OUTPUT VARIABLES:
C A,B,F - matrices of the actuators' models in the
C state space - see explanation in the subroutine
C INPUT ACT
C---------------------------=-----------------------------------------
C NOTE: Due to lack of space in this subroutine all necessary
C tests of the input data are omitted. The user is
C adviced to add himself this protective tests in
C order to protect his package from invalid values of
C input parameters
C---------------------------------------------------------------------
SUBROUTINE INPUTL
C
COMMON/SUBSYS/ A(3,3,6),B(3,6),F(3,6)
COMMON/SUBSHM/ AHM(3,3,6),BHM(3,6),FHM(3,6)
COMMON/ACTORD/ NI(6),KI(6)
COMMON/ORDGLB/ NUK,NS
BYTE FILE
COMMON/FILE/FILE(5)
c
CHARACTER*2 A$
CHARACTER*4 DC$(15),HD$(15)
CHARACTER*1 POM,PP,A1*80
401
DIMENSION DC(15,6),HD(15,6)
COMMON/TIP ACT/ A$(6)
COMMON/UMAX/ UMAX(2,6),UMAXl(6)
CHARACTER*9 FILEP,FILEP2
DATA A$/'DC','DC','DC','DC','DC','DC'/
C---------------------------------------------------------------------
14 FORMAT (/,lX,' WARNING*** File:',alO,' is found',/)
13 FORMAT (/,lX,' DIAG*** File ',alO,' cannot be found')
21 format (' DIAG*** The specified order of the actuator ',iI' is
> not allowed')
C---------------------------------------------------------------------
C
C read data from the file ***.ACT
C
FILEP=CHAR(FILE(1»//CHAR(FILE(2»//CHAR(FILE(3»//
> CHAR(FILE(4»//CHAR(FILE(5»//'.ACT'
INEW=O
OPEN (55,FILE=FILEP,STATUS='OLD',ERR=11)
INEW=l
WRITE (6,14) FILEP
READ (55,'(6(lX,A2»') (A$(IPOM),IPOM=l,NS)
DO IPOM=l,NS
IF (A$(IPOM).EQ.'DC') THEN
DO JPOM=1,15
READ (55,'(lX,F15.6)') DC(JPOM,IPOM)
END DO
ELSE IF (A$(IPOM).EQ.'HD') THEN
DO JPOM=1,15
READ (55,'(lX,F15.6)') HD(JPOM,IPOM)
END DO
END IF
END DO
CLOSE (55)
IF (INEW.EQ.1) GO TO 12
11 INEW=O
WRITE (6,13) FILEP
RETURN
C.
C
C if the secected actuator is D.C. electro-motor (DC)
C
12 do i22=1,ns
i f (a$(i22).eq.'DC') then
umax(1,i22)=dc(7,i22)
umax(2,i22)=dc(8,i22)
n=dc(1,i22)
ni(i22)=dc(1,i22)
a(1,1,i22)=O.
a(1,2,i22)=1.
a(2,1,i22)=O.
a(1,3,i22)=O.
b(1,i22)=O.
f(1,i22)=O.
f(3,i22)=O.
f(2,i22)=-1./dc(9,i22)/dc(lO,i22)/dc(4,i22)
if(n.lt.2.or.n.gt.3) then
write (6,21) i22
stop
402
do iOzz=1,ns
write (G,'(/," Actuator model in the joint:" ,12)' )IOZZ
write (G,*) , Matrix A:'
IO=IOZZ
write (G,'(1x,<ni(io»f15.G)') «a(jp,jl,io),jl=1,ni(io)
* ),jp=1,ni(io))
write (G,*) , Vector b:'
write (G,'(lx,f15.G)') (b(jp,io),jp=1,ni(io))
write (G,*) , Vector f:'
write (G,'(lx,f15.G),//') (f(jp,io),jp=l,ni(io))
end do
RETURN
END
C---------------------------------------------------------------------
C SUBROUTINE: SMOPRG
C---------------------------------------------------------------------
C FUNCTION: COMPUTES LOCAL OPTIMAL REGULATOR FOR THE
C SUBSYSTEMS WHICH MIGHT BE EITHER OF THE
C SECOND OR OF THE THIRD ORDER, WITH OR
C WITHOUT INTEGRAL FEEDBACK LOOP
C---------------------------------------------------------------------
C INPUT VARIABLES:
C I - The order number of the local subsystem for
C which we want to synthesize the local controller
C NI(I) - the order of the i-th subsystem
C ASHM(NI(I),NI(I),I) - matrix of the i-th subsystem
C (which includes the value of
C the maximal moment of inertia
C of the mechanism around the
C axis of the i-th joint)
C BSHM(NI(I),I) - vector of the input distribution
C of the i-th subsystem
C ALFAI(I) - the presribed exponential stability
C degree for the i-th subsystem
C IOPTOR(I) - user's option:
C =0 the user does not want optimal
C regulator around the i-th joint
C =1 the user wants optimal regulator
C IOPTV(I) =0 without the velocity feedback
C =1 with the velocity feedback
C IOPTI(I) =0 without the feedback loop by the
C rotor current
C (if D.C. motor is applied)
C (or, by the pressure if hydraulic
C actuator is applied)
C =1 with the feedback loop by current
C IOPTIN(I) - option of introduction of the integral
C feedback loop:
C =0 no
C =1 yes
C QQ(NI(I),NI(I),I) - weighting matrix by the subsystem state
C in the standard quadratic criterion for
C the i-th subsystem
C Rl(I) weighting element by the control Signal in
C the local standard quadratic criterion
C QI(I) - weighting element by the integral coordi-
404
C
BSS(NS,l)=O.
ASS(NS,l)=l.
QSS(NS,NS)=QI(I)
GO TO 50
C
C preparation of auxiliary matrices if the subsystem order is 2
C
3 IF(NI(I).NE.2)GO TO 50
C
DO 51 Il=l ,NI (I)
BS2(Il,1)=BSHM(Il,I)
DO 51 J=l,NI(I)
51 AS2(Il,J)=ASHM(Il,J,I)
50 CONTINUE
C
C preparation of auxiliary matrix QSS and the prescribed expo-
C nential stability degree
C
DO 21 Il=1,NI (I)
DO 21 J=1,NI(I)
QSS(I1,J)=QQ(I1,J,I)
21 QS(I1,J)=QQ(I1,J,I)
RS=R1(I)
ALFA=ALFAI(I)
C
IF(IOPTIN(I).EQ.1)GO TO 4
IF(NS.EQ.2)GO TO 4453
C
C computation of optimal regulator if the subsystem
C order is 3 and integral feedback loop is not introduced
C
CALL SMOREG(AS,BS,QS,RS,ALFA,NS,PK,I)
GO TO 5599
C
C preparation of the auxiliary matrix QS2
C
4453 DO 54 Il=1,NI(I)
DO 54 J=1,NI(I)
54 QS2(I1,J)=QQ(I1,J,I)
C
C computation of optimal regulator if the subsystem order
C is 2 and integral feedback loop is not introduced
C
CALL SMORE2(AS2,BS2,QS2,RS,ALFA,NS,PKS2,I)
C
DO 55 J=1,NI(I)
55 PKS(J)=PKS2(J)
PKS(3)=0.
PKS(4)=0.
GO TO 5
C
5599 DO 10 J=1,NI(I)
10 PKS(J)=PK(J)
PKS(4)=0.
GO TO 5
C
C regulators with the introduced integral feedback loops
C
4 IF(NS.EQ.4)GO TO 56
406
C
C if the subsystem order is 2 prepare the auxiliary matrices
C
DO 57 J=I,NI(I)
AS(J,NS)=O.
57 AS(NS,J)=O.
BS(NS,l)=O.
AS(NS,l)=l.
QS(NS,NS)=QI(I)
C
C computation of optimal regulator if the subsystem order
C is 2 and integral feedaback loop is introduced
C
CALL SMOREG(AS,BS,QS,RS,ALFA,NS,PK,I)
DO 58 J=l,NS
58 PKS(J)=PK(J)
PKS(3)=0.
PKS(4)=PK(3)
GO TO 5
C
C computation of optimal regulator if the susbsystem order is
C 3 and integral feedback loop is introduced
C
56 CALL SMOREl(ASS,BSS,QSS,RS,ALFA,NS,PKS,I)
C---------------------------------------------------------------------
C
C print the computed feedback gains
C
5 PKl(I)=PKS(l)
PK2(I)=PKS(2)*IOPTV(I)
PK3(I)=PKS(3)*IOPTI(I)
PK4(I)=PKS(4)*IOPTIN(I)
c
WRITE(5,2000)I
2000 FORMAT(3X,'Local servo feedback gains in the ',I3,'-th joint',
1 I)
WRITE(5,200l)PKl(I),PK2(I),PK3(I),PK4(I)
2001 FORMAT(3X,'Position feedback gain',G12.5,1,
1 3X,'Velocity feedack gain',G12.5,1,
2 3X,'Gain in feedback loop by current/pressure',G12.5,1,
3 3X,'Integral feedback gain',G12.5,/)
C
IF(IOPTOR(I).EQ.l)WRITE(5,2002)ALFA
2002 FORMAT(3X,'Exponential stability degree of local subsystem'
1 ,GlO.5,/)
RETURN
END
407
C--------------------------------------------------------------------
C SUBROUTINE: SMOREG
C--------------------------------------------------------------------
C FUNCTION: COMPUTATION OF THE LINEAR OPTIMAL REGULATOR
C FOR THE GIVEN LINEAR SYSTEM
C (THIS IS WELL-KNOWN PROCEDURE FOR SOLVING OF
C THE ALGEBRAIC EQUATION OF THE RICCATI TYPE -
C see ref. e.g. Vukobratovic M,
C Stokic D., Control of Manipulation
C Robots:Theory and Application, springer-
C -Verlag,1982.
C---------------------------------------------------------------------
C INPUT VARIABLES:
C KK - The order number of the subsystem for which the
C local optimal regulator is synthesized
C N - the order of the subsystem
C A(N,N) - the subsystem matrix
C B(N) - the input distribution matrix of the
C subsystem
C Q(N,N) weighting matrix by the state vector in the
C local standard quadratic criterion
C R - the weighting matrix by the control signal
C ALFA - the prescribed exponential stability degree
C---------------------------------------------------------------------
C OUTPUT VARIABLES:
C PKK(N) - optimal regulator feedback gains
C RK(4,4,KK) - the matrix - solution of the algebraic
C equation of Riccati type for the i-th
C subsystem
C---------------------------------------------------------------------
C SUBROUTINES REQUIRED:
C EIGENP - computes the eigen-values of the given
C quadratic matrix (SSP-subroutine)
C GMPRD - matrix multiplication (SSP-subroutines)
C MINV - matrix inversion (SSP-subroutines)
C SMEIG3 - auxiliary subroutine for computation of the
C eigen-values of the given quadratic matrix
C--------------------------------------------------------------------
SUBROUTINE SMOREG(A,B,Q,R,ALFA,N,PKK,KK)
C
COMMON/SUBLIA/ RK(4,4,6)
C
DOUBLE PRECISION AA,EVRA,EVRIA,VECRA,VECIA
DIMENSION A(N,N),B(N,1),BT(1,3),Q(N,N),PKK(1,N)
DIMENSION C(1,3),INDIC(6),CPOM(3,3),POM(6,3),LL(3),MM(3)
DIMENSION PP(3,3),PPP(3,3),P(3,3)
DIMENSION REALEV(3)
DIMENSION AA(6,6),EVRA(6),EVRIA(6),VECRA(6,6),VECIA(6,6)
DOUBLE PRECISION DA(3,3)
C-----------------------------------------------------------------
C
C The order of the subsystem input is equal to 1 (the input
C is scalar) - in general case the input order is M
C
M=l
C
C transpose the matrix B and compute B*(R**-l)*BT
C
DO I I=l,N
408
DO 1 J=1,M
BT(J,1)=B(1,J)
1 C(J,1)=BT(J,1)/R
C
CALL GMPRD(B,C,CPOM,N,M,N)
C
C form expanded matrix of the susbsystem
C
DO 2 1=1,N
DO 2 J=1,N
AA( I, J) =A( I, J)
DA(1,J)=A(1,J)
AA(I+N,J)=-Q(I,J)
AA(I,J+N)=-CPOM(I,J)
AA(I+N,J+N)=-A(J,I)
2 CONTINUE
C
C eigen-va1ues of the open-loop subsystem matrix
C
TYPE 500,KK
500 FORMAT(/,3X,' Eigen-values of the open-loop matrix of the' ,I,
1 3X,1l,'.th subsystem (actuator+joint)')
CALL SMEIG3(N,N,DA,REALEV)
C
DO 3 I=1,N
II=1+N
AA(II,II)=AA(II,II)-ALFA
3 AA(I,I)=AA(I,I)+ALFA
C
C computation of the eigen-values and the eigen-vectors of the
C expanded matrix of the subsystem
C
NN=N+N
C
CALL E1GENP(NN,NN,AA,EVRA,EVRIA,VECRA,VECIA,IND1C)
C
C form of the solution of the algebraic equation of Riccati type
C according to the procedure presented in above reference
C
M4=0
1=1
C
19 IF(I.GT.NN)GO TO 20
IF(EVRA(I).GT.O)GO TO 7
M4=M4+1
C
IF(EVRIA(I).NE.O)GO TO 17
DO 5 J=l,NN
POM(J,M4)=VECRA(J,I)
5 CONTINUE
GO TO 7
C
17 1=I+1
DO 16 J=1,NN
POM(J,M4)=VECRA(J,I)
16 POM(J,M4+1)=VECIA(J,I)
C
M4=M4+1
7 CONTINUE
409
C
1=1+1
GO TO 19
20 CONTINUE
C
DO 21 I=l,N
DO 21 J=l,N
PP(I,J)=POM(I,J)
21 P(I,J)=POM(I+N,J)
C
C inverse of the matrix PP
C
CALL MINV(PP,N,DET,LL,MM)
C
C calculate (PP**-l)*P
C
CALL GMPRD(P,PP,PPP,N,N,N)
C
C memorize the solution PPP of the Riccati's algebraic equation
C in the matrix RK - necessary for computation of the subsystem
C Liapunov's function which is required for computation of the
C gain of global control (see subroutines LIAP1S and GRAD1S)
C
DO 657 I=l,N
DO 657 J=l,N
657 RK(I,J,KK)=PPP(I,J)
C
C computation of the feedback gains of the optimal regulator
C
CALL GMPRD(C,PPP,PKK,M,N,N)
C
WRITE(3,1008)
1008 FORMAT(/,3X,' Feedback gains of the optimal regulator' ,/)
WRITE(3,200)«PKK(I,J),J=1,N),I=1,M)
200 FORMAT(3X,3E15.5)
C
C computation of the closed-loop subsystem matrix
C
CALL GMPRD(CPOM,PPP,P,N,N,N)
C
DO 12 I=1,N
DO 12 J=1,N
12 DA(I,J)=A(I,J)-P(I,J)
C
C computation of the eigen-values of the closed-loop
C subsystem matrix
C
WRITE(5,1009)
1009 FORMAT(/,3X,'Eigen-values of the closed-loop subsystem
1 matrix' ,/)
C
CALL SMEIG3(N,N,DA,REALEV)
RETURN
END
410
C---------------------------------------------------------------------
C SUBROUTINE: SMEIG3
C---------------------------------------------------------------------
C FUNCTION: AUXILIARY SUBROUTINE TO COMPUTE EIGEN-
C -VALUES OF THE GIVEN QUADRATIC MATRIX
C---------------------------------------------------------------------
C INPUT VARIABLES:
C NN - Matrix order
C n
C DA(NN,NN) - Quadratic matrix
C---------------------------------------------------------------------
C OUTPUT VARIABLES:
C REALEV(NN) - Vector of the real parts of the eigen-
C values
C--------------------------------------------------------------------
C SUBROUTINES REQUIRED:
C EIGENP - SSP-subroutine to compute the eigen-values
C of the given quadratic matrix
C REALVE,COMPVE,SCALE,HESQR - Auxiliary subroutines
C called by EIGENP
C----------------------------------------------------- ---------------
SUBROUTINE SMEIG3(NN,NM,DA,REALEV)
C
DOUBLE PRECISION DA(NN,NN),EVR(3),EVI(3),VECR(3,3)
DOUBLE PRECISION VECI(3,3)
DIMENSION REALEV(NN)
DIMENSION INDIC(3)
c-------------------------------------------------------------------
C
C call subroutine EIGENP to compute the eigen-values of
C the input matrix DA
C
CALL EIGENP(NN,NM,DA,EVR,EVI,VECR,VECI,INDIC)
C
DO 10 I=1,NN
10 REALEV(I)=EVR(I)
C
WRITE(5,102)
DO 6 I=1,NN
6 WR1TE(5,103)I,EVR(I),EVI(1),IND1C(I)
102 FORMAT(//,3X,'Eigen-values ',/,3X,'No. Real part
1 1 m . part indic',/)
103 FORMAT(3X,I4,2E15.5,I4)
RETURN
END
411
C---------------------------------------------------------------------
C SUBROUTINE: SMLOC E
C------------------------------=--------------------------------------
C FUNCTION: COMPUTES LOCAL FEEDBACK GAINS FOR THE ISO-
C LATED SUBSYSTEMS (ACTUATOR + JOINT ASSUMING
C THAT ALL THE OTHER JOINTS ARE KEPT LOCKED);
C CONTROL IS SYNTHESIZED TO KEEP THE DAMPING
C RATIO CLOSE TO 1 AND TO KEEP CHARACTERISTIC
C FREQUENCY OF THE SERVO (NATURAL UNDAMPED
C FREQUENCY) BELLOW ONE HALF OF THE RESONANT
C STRUCTURAL FREQUENCY OF THE MECHANISM
C (SPECIFIED BY THE USER)
C---------------------------------------------------------------------
C INPUT VARIABLES:
C I - the order number of the subsystem for which the servo
C gains are to be synthesized
C NI(i) - the order of the i-th subsystem
C AHM, BHM - matrices of the subsystem's model (see subrou-
C tine INPUT ACT)
C the user's options: -
C uO - resonant structural frequency of the mechanism around
C the i-th joint [rad/s]
C OPC - the user wants feedback loop by current/press. (Y/N)
C ZETA - damping factor of the non-dominant pair of poles
C OMEGA N - natural undapmed frequency of the non-dominant
C - pair of poles - for the third order subsystem
C only
C---------------------------------------------------------------------
C OUTPUT VARIABLES:
C PK1(i} - position feedback gain [v/rad],[v/m],[mA/rad],
C [mAIm]
C PK2(i} - velocity feedback gain [v/rad/s] etc.
C PK3(i} - gain in feedback loop by current/pressure [VIA]
C---------------------------------------------------------------------
SUBROUTINE SMLOC E
C
COMMON/SUBSYS/ A(3,3,6),B(3,6),F(3,6)
COMMON/SUBSHM/ AHM(3,3,6),BHM(3,6},FHM(3,6}
COMMON/ACTORD/ NI(6),KI(6)
COMMON/GAINS/ PK1(6},PK2(6),PK3(6},PK4(6),PK5(6},PK6(6}
BYTE FILE
COMMON/FILE/FILE(5)
CHARACTER*9 FILEP
COMMON/HMAX/ HMAX(6)
COMMON/RBSL/ I
COMMON/TIP ACT/ .a.$ (6)
CHARACTER*I OPC
CHARACTER*30 1$pom*60
* .................................................................... .
2 FORMAT (A1)
3 FORMAT (lX,F16.5)
4 FORMAT (lX,A27,I1,A2,E12.5)
6 FORMAT (' Want to introduce feedback loop by current/pressure
> [Y/N]?:',$)
7 FORMAT (lX,'Specify the resonant structural frequency',/,' of
> the mechanism [rad/s]')
10 FORMAT (lX,F12.5,35X,A30,I1)
25 FORMAT (lX,'W(S)=',F12.5,'/(S**2+',F12.5,'*S)',/)
26 FORMAT (lX,'W(S)=',F18.5,'/(S**3+',F18.5,'*S**2+',F18.5,
> ' *S )' ,I)
412
30 FORMAT (lX,'----------------------------------------------- __ _
>-----------------',/)
35 FORMAT (lX,'G(S)=' ,F12.5,'/(S**2+',F12.5,'*S+',F12.5,')',/)
36 FORMAT (lX,'G(S)=',F18.5,'/(','S**3+',F18.5,'*S**2+',
> F18.5,'*S+',F18.5,')',/)
* ...................................................................................................................................
WRITE (6,7)
WRITE (6,37) I
37 FORMAT (lX,'for the servo in ',i2,' -th joint [rad/s1:' ,$)
READ (5,*) uO uO
c
C the specified frequency is modified to determine the gains for
e the case of two equal dominant poles of the closed-loop sub-
e system;this modification does not affect the computed feedback
C gains but the algorithms for their computation requires it;
C the frequency is not modified if there is just one dominant
C pole
C
U02=UO
UO=UO*2.5
C
IF (NI(I).EQ.3) THEN
WRITE (6,6)
READ (5,2) ope opc - feedback loop by
END IF current
WRITE (6,30)
e
if(ni(i).eq.2)then
ifl2=l
ierrind=l
go to 100
end if
e
C present the containts of the auxiliary file conf.dat
C in order to enable the user to select the poles of the closed-
e -loop subsystem (in the case the order of the subsystem is 3)
C
open (23,file='conf',status='old')
do ipom=l,lO
read (23,'(a60)') l$pom
write (6,'(lx,a60)') l$pom
end do
close(23)
1 write (6,'(lx," If you want to calculate feedback gains" ,/
> that the pole placement be as in Fig.l, then" ,/
> " specify 1, otherwise the gains will be computed",/
> " to place the poles as presented in Fig.2.:",$)')
ierrind=l
read (5,'(il)',err=1500) ifl2
c---------------------------------------------------------------------
C
C computation of the feedback gains
C
100 IF (ifl2.eq.l) THEN
C
C the pair of dominant poles is complex (or real and equal) and
C non-dominant pole is real (Fig.l.)
C
413
dpot-uO/lO.
pot=2.
IF (ni(i).eq.2) THEN
pkl(i)=(uO/5 .)**2/bhm (2,i)
pk2(i)=(2.* uO /5.+ahm(2,2,i))/bhm(2,i)
ELSE
IF (opc.EQ.'N') THEN
alf=-ahm(2,2,I)-ahm(3,3,I)
pk3(I)=0
bet=alf*2.*uO/5.-3.*(uO/5.)**2
gam=alf*(u O/5.)**2-2.*( uO /5.)**3
pkl(I)=gam/ahm(2,3,I)/bhm(3,I)
pk2(I)=(bet-ahm(2,2,I)*ahm(3,3,I)+ahm(2,3,I)
*ahm(3,2,I))/ahm(2,3,I)/bhm(3,I)
>
ELSE
alf=(pot+1.)*uO
pk3(I)=(alf+ahm(2,2,I)+ahm(3,3,I))/bhm(3,I)
bet=alf*2.*uO/5.-3.*(uO/5.)**2
gam=alf*( uO/5.)**2-2.*(uO/5.)**3
pkl(I)=gam/ahm(2,3,I)/bhm(3,I)
pk2(I)=(bet-ahm(2,2,I)*ahm(3,3,I)+ahm(2,3,I)
> *ahm(3,2,I)+ahm(2,2,I)*pk3(I))/ahm(2,3,I)
> Ibhm(3,I)
DO WHILE (pk2(i).LT.0.OR.pk3(i).LT.0)
pot=pot+dpot
alf=(pot+1.)*uO
pk3(I)=(alf+ahm(2,2,I)+ahm(3,3,I))/bhm(3,I)
bet=alf*2.*uO/5.-3.*(uO/5.)**2
gam=alf*(uO/5.)**2-2.*(uO/5.)**3
pkl(I)=ga m/ahm(2,3,I)/bhm(3,I)
pk2(I)=(bet-ahm(2,2,I)*ahm(3,3,I)+ahm(2,3,I)
> *ahm(3,2,I)+ahm(2,2,I)*pk3(I))
> lahm(2,3,I)/bhm(3,I)
END DO
END IF
s3=2.*uO/2.-alf
WRITE (6,'(11" Non-dominant pole is (S3):",ElO.3)')S3
END IF
ELSE
IF (ni(i).eq.3) THEN
c
C the dominant pole is real and the nondominant pair of poles
c are complex (or real) - Fig.2.
C the third order subsystem
c
5 WRITE (6,'(" The damping coefficient (zeta[O.-l.]):",
> I," of the non-dominant pair of poles:",$)')
ierrind=2
read (5,*,err=1500) zeta
888 WRITE (6,'(" Natural undamped frequency (omega n)"
> ,I" of the non-dominant pair of poles:",$)')
ierrind=3
READ (5,*,err=1500) omega n
IF (opc.eq.'Y') THEN -
omegad=omega n/10.
DO WHILE (pk2(i).LE.O.OR.pk3(i).LE.O)
omega n=omega n+omegad
alfa=2.*zeta*omega n+u02/2.
pk3(i)=(alfa+ahm(2~2,i)+ahm(3,3,i))/b(3,i)
beta=omega n*omega n+zeta*omega n*u02
pk2(i)=(beta+ahm(2~3,i)*ahm(3,2~i)
414
> +ahrn(2,2,i)*pk3(i)*b(3,i)
> -ahrn(2,2,i)*ahrn(3,3,i»/ahrn(2,3,i)/b(3,i)
garna=.5*u02*ornega_n*ornega_n
pkl(i)=garna/ahrn(2,3,i)/b(3,i)
END DO
ELSE
ornega n=(-ahrn(2,2,i)-ahrn(3,3,i)-u02/2.)/2./zeta
garna=~5*u02*ornega_n*ornega_n
pkl(i)=garna/ahrn(2,3,i)/b(3,i)
beta=ornega n*ornega n+zeta*ornega n*u02
pk2(i)=(beta+ahrn(2~3,i)*ahrn(3,2~i)
> +ahrn(2,2,i)*pk3(i)*b(3,i)
> -ahrn(2,2,i)*ahrn(3,3,i»/ahm(2,3,i)/b(3,i)
END IF
ELSE
C
C the second order subsystem
C
s2=u02*2.
s2d=u02/10.
DO WHILE (pk2(i).LE.0.l)
s2=s2+s2d
pkl(i)-u02/2.*s2/bhm(2,i)
pk2(i)=(u02/2.+s2+ahm(2,2,i»/bhm(2,i)
END DO
END IF
END IF
C
C print computed gains and open-loop and clsed-loop subsystem
C transfer functions
C
WRITE (6,'(lX,"Local feedback servo gains:",/)')
WRITE (6,4) 'position servo gain KP(',I,')=',PK1(i)
WRITE (6,4) 'Velocity servo gain KV(',I,')=',PK2(i)
IF (NI(I).EQ.3) THEN
WRITE (6,4) 'Curr./pr. servo gain KS(',I,')=',PK3(i)
END IF
WRITE (6,30)
WRITE(6,'(lX,"Open-loop transfer function:",/)')
IF (NI(I).EQ.2) THEN
WRITE (6,25) bhm(2,i),-ahm(2,2,i)
ELSE
WRITE (6,26) ahm(2,3,i)*bhm(3,i),-(ahm(2,2,i)+ahm(3,3,i»,
> ahm(2,2,i)*ahm(3,3,i)-ahm(2,3,i)*ahm(3,2,i)
END IF
WRITE (6,30)
WRITE (6,'(lX,"Closed-loop transfer function:",/)')
IF (NI(I).EQ.2) THEN
WRITE (6,35) bhm(2,i)*pkl(i),-ahm(2,2,i)+bhm(2,i)*pk2(i),
> bhm(2,i)*pkl(i)
ELSE
bpom2=pk3(i)*bhm(3,i)-ahm(3,3,i)-ahrn(2,2,i)
bpoml=ahm(2,3,i)*(pk2(i)*bhm(3,i)-ahm(3,2,i»-ahm(2,2,i)*
> (pk3(i)*bhm(3,i)-ahm(3,3,i»-ahm(2,1,i)
bpomO=pkl(i)*bhm(3,i)*ahm(2,3,i)-ahm(2,1,i)*(pk3(i)*
> bhm(3,i)-ahm(3,3,i»
WRITE (6,36) bhm(3,i)*ahm(2,3,i)*pkl(i),bporn2,bpoml,bpomO
END IF
415
WRITE (6,30)
RETURN
1500 WRITE (6,'(" DIAG**· Input conversion error")')
go to (1,5,888) ierrind
END
C---------------------------------------------------------------------
C SUBROUTINE: TRAJEK
C---------------------------------------------------------------------
C FUNCTION: GENERATES NOMINAL TRAJECTORIES OF THE
C ROBOT JOINTS - BETWEEN TWO SPECIFIED
C TERMINAL POSITIONS WITH TRIANGULAR OR
C TRAPEZOID VELOCITY DISTRIBUTION
C---------------------------------------------------------------------
C INPUT VARIABLES:
C FILE(5) robot name
C N number of joints of the user's specific robot
C QO(I) initial values of the joint coordinates
C QF(I) values of the terminal point of the joint tra-
c jectories (from the input file ***.TRA)
c H sampling interval at which the trajectories
C are computed
C T time duration of the nominal movement (traj.)
C BETA parameter defining the trapezoidal profile of
C velocity distribution
C A DLMB
C (trajectory)
C
C
C +
C 1
C 1
C 1
C I·
C
C
----1----+--------------+------+--------------->
o Tl T2 T TE(time)
C
C TI-T*BETA
C T2=T*(1.-BETA)
C
C PROFIL character variable for the user's selection
C of the desired profile of the velocity dis-
C tribution along the nominal trajectory
C KSI2(6) indicator of the joint type (1- linear,
C 0 - rotational)
C---------------------------------------------------------------------
C OUTPUT VARIABLES:
C TE time instant
C Q(6) positions of the joints angles at the nominal
C trajectory at the moment TE
C DQ(6) velocities "
C DDQ(6) accelerations
C these values are written in the output file ***.ANG
C---------------------------------------------------------------------
416
SUBROUTINE TRAJEK
C
CHARACTER *2 PROFIL,FILEP*9,STAMPA*1,FILET*9
CHARACTER *4 IND(6)
BYTE FILE(5)
COMMON/FILE/FILE
COMMON/DINT TR/ H
COMMON/ORDGLB/ NUK,N
COMMON/TIPL/NPOM,KSIl(6),KSI2(6),KSI3(6)
DIMENSION QO(6),QF(6),Q(6),DQ(6),DDQ(6),DLTQ(6)
REAL LMB
C---------------------------------------------------------------------
C
C read data from the input file ***.TRA
C
FILET=CHAR(FILE(1))//CHAR(FILE(2))//CHAR(FILE(3))//
* CHAR(FILE(4))//CHAR(FILE(5))//'.TRA'
open(unit=7,file=filet,status='old')
read(7,2l0)(qO(i),i=1,n)
read(7,2l0)(qf(i),i=1,n)
read(7,2l0)h,t
200 format(lx,i3)
210 format(lx,6flO.5)
close(unit=7)
C
22 FORMAT(6(4X,A5,4X))
100 FORMAT(6E13.5)
C
TE=O.
M=T/H
C
C indication of the joint type (TRA/ROT)
C
DO I=l,N
IND(I)=' rad '
IF(KSI2(I).EQ.l)THEN
IND(I)=' [m] ,
END IF
END DO
C
type *
type *,' Synthesis of the joints nominal trajectories'
TYPE 40
40 FORMAT(/,$,' Want to ~rint the nominal trajectories [YIN]?:')
READ(5,45)STAMPA
45 FORMAT(Al)
C
TYPE 10
10 FORMAT($,' Select the velocity profile-triangular or trapezoid
* [TA/TP]:')
READ(5,20)PROFIL
20 FORMAT(A2)
C
FILEP=CHAR(FILE(1))//CHAR(FILE(2))//CHAR(FILE(3))//
* CHAR(FILE(4))//CHAR(FILE(5))//'.ANG'
OPEN(UNIT=4,FILE=FILEP,STATUS='NEW')
C
IF(PROFIL.EQ.'TA')GO TO 70
C------------------------------------------------------------------
417
C
C trapezoid velocity profile
C
25 TYPE 30
30 FORMAT(' Specify the trapezoid profile -
* by defining parameter BETA',/,$,' (duration of the
* acceleration/deacceleration phase as a part of',/,
* , total trajectory duration) [0.0-0.5]:')
READ (5,35) BETA
35 FORMAT (FlO.5)
IF((BETA.LT.0.0).OR.(BETA.GE.0.5)) GO TO 25
C
C
Tl=BETA*T
T2= (1. -BETA) *T
C
C Computation of the scalar parameters of the velocity
C profile LMB and DDLMB and CONST
C
P=1./((BETA*T**2)*(l.-BETA))
Pl=l./(T*(l.-BETA))
CONST=0.5*BETA/(l.-BETA)
C
50 CONTINUE
IF(TE.GT.T)GO TO 65
IF(TE.LT.Tl) THEN
LMB=0.5*p*TE**2
DLMB=P*TE
DDLMB=P
ELSE IF(TE.LT.T2)THEN
LMB=Pl*TE-CONST
DLMB=pl
DDLMB=O.
ELSE IF(TE.LE.T) THEN
LMB=-0.5*p*(T-TE)**2+l.
DLMB=P*(T-TE)
DDLMB=-P
END IF
C
C computation of the nominal positions, velocities and
C accelerations
C
DO I=l,N
DLTQ(I)=QF(I)-QO(I)
Q(I)=QO(I)+LMB*DLTQ(I)
DQ(I)=DLMB*DLTQ(I)
DDQ(I)=DDLMB*DLTQ(I)
END DO
C
C write the trajectories in the file ***.ANG
C
WRITE(4,lOO)TE
WRITE(4,lOO)(Q(I),I=l,N)
WRITE(4,lOO)(DQ(I),I=l,N)
WRITE(4,lOO)(DDQ(I),I=l,N)
C
C print at the screen
C
418
IF(STAMPA.EQ.'N')GO TO 110
WRITE(6,22)(IND(I),I=1,N)
WRITE(6,100)TE
WRITE(6,100)(Q(I),I=1,N)
WRITE(6,100)(DQ(I),I=1,N)
WRITE(6,100)(DDQ(I),I=1,N)
C
110 TE=TE+H
GO TO 50
65 CONTINUE
C
CLOSE(UNIT=4)
RETURN
C--------------------------------------------------------------------
C
C triangular velocity profile
C
70 CONTINUE
T1=T/2.
C
C computation of parameters
C
P=4./(T**2)
150 CONTINUE
IF(TE.GT.T) GO TO 160
C
IF(TE.LT.T1)THEN
LMB=0.5*p*TE**2
DLMB=P*TE
DDLMB=P
ELSE
LMB=-0.5*P*(T-TE)**2+1.
DLMB=P*(T-TE)
DDLMB=-P
END IF
C
DO I=l,N
DLTQ(I)=QF(I)-QO(I)
Q(I)=QO(I)+LMB*DLTQ(I)
DQ(I)=DLMB*DLTQ(I)
DDQ(I)=DDLMB*DLTQ(I)
END DO
C
C write in the output fIe ***.ANG
C
WRITE(4,100)TE
WRITE(4,100)(Q(I),I=1,N)
WRITE(4,100)(DQ(I),I=1,N)
WRITE(4,100)(DDQ(I),I=1,N)
C
C print at the screen
C
IF(STAMPA.EQ.'N')GO TO 90
WRITE(6,22)(IND(I),I=1,N)
WRITE(6,100)TE
WRITE(6,100)(Q(I),I=1,N)
WRITE(6,100)(DQ(I),I=1,N)
WRITE(6,100)(DDQ(I),I=1,N)
C
419
90 TE=TE+H
GO TO 150
160 CONTINUE
C
CLOSE(UNIT=4)
RETURN
END
C---------------------------------------------------------------------
C SUBROUTINE: SMNOMP
C---------------------------------------------------------------------
C FUNCTION: COMPU~ES THE NOMINAL DYNAMICS OF THE ROBOT
C - NOMINAL DRIVING TORQUES AND NOMINAL CEN-
C TRALIZED OR LOCAL CONTROL
C---------------------------------------------------------------------
C INPUT VARIABLES:
C FILE(5) - robot name
C QOl(6) - nominal angles (displacements) of the joints
C QT01(6) -nominal velocities of the joints
C QUO(6) - nominal accelerations of the joints
C the data on nominal trajectory are read from
C the file ***.ANG
C NI(I) - the order of the i-th subsystem
C N - number of joints of the user's specific robot
C A,B,F - matrices of the actuators' models (see
C explanations in subroutine INPUTL)
C UMAX(2,6) - contraints upon the actuator inputs
C HMIN - minimal values of the moments of inertia of
C the mechanism around the joints axes (see ex-
C planation in subroutine SM MAX IN)
C HH(6,6) - inertia matrix of the robot for given joints
C angles(SI) and velocities (SIDOT) - computed
C in the subroutine MODEL
C Hl(6) - vector of centrifugal, Coriolis and gravity
C moments for given SI and SIDOT - subrout.MODEL
C---------------------------------------------------------------------
C OUTPUT VARIABLES:
C pO(6) - nominal driving torques
C UO(6) - nominal programmmed control -feedforward
C (centralized or local)
C POWER(6)- nominal power at each actuator
C SENERG(6) - nominal power consumption of each actuator
C DXO(I) - nominal currents/pressures
C---------------------------------------------------------------------
C SUBROUTINES REQUIRED:
C MODEL - computes the dynamic model of the robot
C mechanism (computes inertia matrix Hand
C centrifugal, Coriolis, gravity moments h
C for the given nominal trajectories)
C-----------------------------------------------------------------
SUBROUTINE SMNOMP
C
420
DIMENSION XPOM(6)
DIMENSION QUO(6)
DIMENSION SENERG(6),POWER(6)
C
COMMON/NPOM1/ QOO(6),QTOO(6),QUOO(6),POO(6)
COMMON/NPOM2/ Q01(6),QT01(6),QU01(6),P01(6)
COMMON/SUBSYS/ A(3,3,6),B(3,6),F(3,6)
COMMON/NKOORD/ PO(6),XO(18),UO(6)
COMMON/ACTORD/ NI(6)
COMMON/UMAX/ UMAX(2,6)
COMMON/HMIN/ HMIN(6)
COMMON/SKOORD/ DXO(18),PXO(6)
COMMON/ORDGLB/NUK,NN
COMMON/FILE/FILE(S)
BYTE FILE
C
INCLUDE 'IN2:MODELM.MOD'
COMMON/MODOPC/ MOD,ITIP
CHARACTER*9 FILEP
C----------------------_______________________________ __________ _
C
TYPE *
TYPE *,' Computation of the nominal dynamics of the robot'
TYPE *,' - nominal driving torques and nominal'
TYPE *,' programmed control -'
type 399
399 FORMAT(/,$,, want centralized or local nominal programmed
1 control? [C/L]:')
read(S,401)YES
C
C set indicator ILOC: ILOC=O - local nominal control,
C ILOC=1 - centralized nominal control
C
ILOC=1
IF(YES.EQ.'L')ILOC=O
TYPE 400
400 FORMAT($,' want to print the nominal dynamics [YIN]?:')
READ(S,401)YES
401 FORMAT(A1)
C
MOD=O
ITIP=O
N=NN
C
C openning of the files ***.ANG to read nominal trajectories
C and ***.DIN to write the computed nominal control and
C nominal driving torques
C
FILEP=CHAR(FILE(1))//CHAR(FILE(2))//CHAR(FILE(3))//
1 CHAR(FILE(4))//CHAR(FILE(S))//'.ANG'
OPEN(UNIT=1,NAME=FILEP,STATUS='OLD',ERR=1110)
C
FILEP=CHAR(FILE(1))//CHAR(FILE(2))//CHAR(FILE(3))//
1 CHAR(FILE(4))//CHAR(FILE(S))//'.DIN'
OPEN(UNIT=2,NAME=FILEP,STATUS='NEW')
C
C read nominal trajectories from the file ***.ANG
C VR2 is the time instant along the nominal trajectory
C
421
READ(1,100)VR2
READ(1,100)Q01
READ(1,100)QT01
READ(1,100)QUO
100 FORMAT(6E13.5)
C
C the auxi1aiar~ vectors SI and SIDOT - through them the
C values of the joint angles and velocities are sent to the
C subroutine MODEL to compute matrix HH and vector H1
C
DO 1 I=l,N
SENERG(I)=O.
SI(I)=Q01(I)
1 SIDOT(I)=QT01(I)
C
C call subroutine MODEL to compute HH and HI for given joints
C angles and velocities (nominal trajectory)
C
CALL MODEL
C
C computation of the nominal driving torque pxO in the initial
C point of the nominal trajectory and computation of the third
C actuator state coordinate (if its order is 3)
C
DO 2 I=1,N
PXO(I)=Hl(I)
DO 77 J=l,N
PXO(I)=PXO(I)+HH(I,J)*QUO(J)
77 CONTINUE
C
IF(NI(I).EQ.2)GO TO 2
DXO(I)=QUO(I)-A(2,2,I)*QT01(I)
C
C if the centralized nominal control is computed then the total
C nominal driving torque is taken into account
C if the local nominal control is computed then just the
C estimation of the mechanism moment of inertia around the
C joint axis is taken into account
C
IF(ILOC.EQ.I)THEN
DXO(I)=DXO(I)-F(2,I)*PXO(I)
ELSE
DXO(I)=DXO(I)-F(2,I)*HMIN(I)*QUO(I)
END IF
DXO(I)=DXO(I)/A(2,3,I)
2 CONTINUE
999 FORMAT(3X,6El2.3)
C---------------------------------------------------------------------
C
C memorize the nominal torques PXO in pO
C and the nominal trajectory in QOO,QTOO,QUOO (the previous
C point) and the time instant in VR1
C
3 VR1=VR2
DO 4 I=l,N
PO(I)=PXO(I)
QOO(I)=QOl(I)
QTOO(I)=QT01(I)
QUOO(I)=QUO(I)
4 XO(I)=DXO(I)
422
C
C read next point at the nominal trajectory from the file
C
READ(l,100,END=977)VR2
READ(l,100)Q01
READ(l,100)QT01
READ(l,100)QUO
C
POM=VR2-VR1
C
C compute QUO(6) - nominal accelerations
C and send nominal joints angles and velocities through the
C auxiliary vectors 51 and SIDOT into subroutine MODEL
C
5 DO 6 I=l,N
5I(I)=Q01(I)
5IDOT(I)-QT01(I)
6 CONTINUE
C
C call MODEL to compute HH and H1 for the nominal trajectory
C
CALL MODEL
C
C computation of the nominal driving torques, power and energy
C consumption, nominal state vectors and programmed control
C
DO 7 I=l,N
PXO(I)=H1(I)
DO 88 J=l,N
PXO(I)=PXO(I)+HH(I,J)kQUO(J)
88 CONTINUE
C
POWER(I)=ABS(PO(I)*QTOO(I))
SENERG(I)-5ENERG(I)+POWER(I)*POM
C
IF(NI(I).EQ.2)GO TO 89
C
C computation of the third state coordinate of the actuator
C model (if its order is 3)
C
DXO(I)=QUO(I)-A(2,2,I)*QT01(I)
C
IF(ILOC.EQ.1)THEN
DXO(I)=DXO(I)-F(2,I)*PXO(I)
EL5E
DXO(I)=DXO(I)-F(2,I)*HMIN(I)*QUO(I)
END IF
C
DXO(I)=DXO(I)/A(2,3,I)
C
C computation of the derivative of the third state coordinate
C
XPOM(I)=(DXO(I)-XO(I))/POM
C
C computation of the nominal control if the model order is 3
C
UO(I)-(XPOM(I)-A(3,2,l)*QTOO(I)-A(3,3,I)*XO(I))/B(3,I)
GO TO 90
C
423
TYPE 208,(SENERG(I),I=1,N)
208 FORMAT(' Energy [WsJ: , ,6E10.3)
GO TO 3
C
C
101 FORMAT(' DIAG*** Nominal control signal are greater than the' ,I,
1 , allowable amplitude constraints at the actuators inputs' ,I,
2 , (change nominal kinematics, or change actuators)',/,3X,
3 , time =', F1S.S, ' in the joint No. ',12,' the required nominal
4 signal =', G1S.S)
C
977 CONTINUE
C
C write the terminal point at the trajectory into output file
C
WRITE(2,100)VR1
WRITE(2,100)(QOO(I),I=1,N)
WRITE(2,100)(QTOO(I),I=1,N)
WRITE(2,100)(QUOO(I),I=1,N)
WRITE(2,100)(PO(I),I=1,N)
WRITE(2,100)(UO(I),I=1,N)
WRITE(2,100)(POWER(I),I=1,N)
WRITE(2,100)(SENERG(I),I=1,N)
C
CLOSE (2)
C
6680 CONTINUE
CLOSE (1)
RETURN
1110 TYPE 1111, FILEP
1111 FORMAT (lX,'DIAG*** File' ,a9,lx,' cannot be found')
CLOSE (1)
STOP
END
C---------------------------------------------------------------------
C SUBROUTINE: LINANA
C---------------------------------------------------------------------
C FUNCTION: THE SUBROUTINE FOR EXPONENTIAL STABILITY
C ANALYSIS OF THE LINEARIZED MODEL OF THE
C ROBOT; CALLS SUBROUTINES FOR FORMING OF
C THE LINEARIZED MODEL OF THE ROBOT AND FOR
C COMPUTATION OF THE EIGEN-VALUES OF THE
C LINEAR MODEL; THE STABILITY OF THE SYSTEM
C IS TESTED IF ONLY LOCAL CONTROLLERS ARE
C APPLIED
C---------------------------------------------------------------------
C INPUT VARIABLES:
C FILE(S)-name of the user's robot
C N - number of joints of the user's robot
C TO - time instant at the nominal trajectory
C YO(12)- nominal joints angles and velocities at the
C time instant TO (the nominal state vector of
C the mechanical part of the system)
C DXO(6)- Nominal accelerations of the joint coord.
C PO(6) - Nominal driving torques in the time instant TO
425
199 FTOT(I+4)=FILE(I)
C
C computation of NUKI - the order of the total systems with
C local integral feedback loops
C
NUKI=O
DO 9000 I=l,N
9000 NUKI=NUKI+NI(I)+IOPTIN(I)
C
C open file containing nominal dynamics computed in SMNOMP
C
OPEN(UNIT=1,NAME=FTOT,TYPE='OLD',ERR=3100)
C
C open file ***.INT specified by the user which contains the
C desired stability degrees and the moments at the nominal
C trajectories "in which" the user wants to analyze the
C stability of the linearized model
C
OPEN(UNIT=2,NAME=FTOT1,TYPE='OLD',ERR=3101)
C
READ(2,102)ITMIN
102 FORMAT(I4)
GO TO 3102
C
3100 TYPE 3103, FILE
3103 FORMAT(' DIAG*** File ',5A1,'.DIN cannot be found')
RETURN
C
3101 TYPE 3104,FILE
3104 FORMAT(' DIAG*** File ',5A1,'.INT cannot be found')
RETURN
C------------------------------------------------------------------
C
C reset the counter ITERC of points at the nominal
C trajectory in which analysis has to be performed
C
3102 ITERC=l
C
C read data on nominal dynamics from ***.DIN
C
1 READ(1,100,END=3201)TO
READ(1,100)(YO(I),I=1,N)
READ(1,100)(YO(I),I=N+1,N+N)
READ(1,100)(DXO(I),I=1,N)
READ(1,100)(PO(I),I=1,N)
READ(1,100)(UO(I),I=1,N)
C
C auxiliary read of power and energy - not necessary in
C this routine
C
READ(1,100)(UO(I),I=1,N)
READ(1,100)(UO(I),I=1,N)
100 FORMAT(6E13.5)
GO TO 3202
C
3201 CLOSE(UNIT=l)
GO TO 3203
C
3202 CONTINUE
427
C
C test if the next point at the nomonal trajectory around which
C the stability of the system has to be analyzed is reached or
C not; if it is reached - go to stability analysis
C otherwise - read the next data at the nominal trajectory
C
IF(TO.LT.TIMIN(ITERC)-O.OOOl)GO TO 1
C
C read data on desired stability degree
C
3203 READ(2,101)TIMIN(ITERC)
READ(2,101)ALFAIM
101 FORMAT(E15.5)
C---------------------------------------------------------------------
C
C compute matrices of the linearized model of the system in the
C user's selected point at the nominal trajectory (without local
C feedback loops)
C AO(NUKI,NUKI),BL(NUKI,N)- Matrices of the open-loop linearized
C model of the robot
C
10 CALL SMLINM(AO,BL,HU)
C
C put AO into matrix AL to get double-precision computation
C
NN=NUKI
NM=NUKI
DO 7773 KKK=1,24
DO 7773 JJJ=1,24
7773 AL(KKK,JJJ)=AO(KKK,JJJ)
C
WRITE(6,412) TIMIN(ITERC)
412 FORMAT(/,' Eigen-values of the open-loop matrix of',/,
1 , linearized model of the robot in the time instant' ,F12.5,'
2 [s]' ,/)
C
C computation of eigen-values of the open-loop system matrix
C
CALL SMEIGN(NN,NM,AL,REALEV,RlMAG)
C
C introducing of the local feedback gains in the matrix of the
C open-loop linearized model of the system AO
C the matrix AL s obtained: the matrix of the closed-loop linea-
C rized model of the robotic system
C
11 CALL SMLGAD(AO,AL,BL)
C
C computation of the eigen-values of the linearized model of
C the system in the selected point at the nominal tajectory
C
WRITE(6,411)TIMIN(ITERC)
411 FORMAT(/,3X,' Eigen-values of the closed-loop matrix of',
1 /,' linearized model of the robot in the time instant
2 ',F12.5,' [s]',/)
CALL SMEIGN(NN,NM,AL,REALEV,RlMAG)
C
C search for the greatest eigen-value of the system matrix
C (the eigen-value with the greatest value of the
428
C real part)
C
PALFA-REALEV(l)
DO 15 I=2,NUKI
15 IF(REALEV(I).GT.PALFA)PALFA=REALEV(I)
C
WRITE(6,4422)PALFA
4422 FORMAT(/,3X,' Achieved stability degree of the robot',F10.5,/)
C
IF(PALFA.GT.O)TYPE *,' WARNING*** The robot is not stabilized'
C
C Check if the exponential stability degree of the global system
C is greater than the desired stability degree
C
IF«PALFA).GT.(-ALFAIM))GO TO 50
C
C increment of the counter of points at the nominal trajectory
C
ITERC=ITERC+l
C
C check if the system stability is tested in all desired points
C at the nominal trajectory or not: if yes - terminate analysis
C otherwise go to read the next point at the nominal trajectory
C
IF(ITERC.LE.ITMIN)GO TO 1
C
C message whether the linearized model of the robot is stable
C in desired way if just local controllers are applied
C
ICNVLN=O
C
GO TO 111
C
50 ICNVLN-1
C
111 RETURN
END
C---------------------------------------------------------------------
C SUBROUTINE: SMLINM
C---------------------------------------------------------------------
C FUNCTION: COMPUTES THE MATRICES OF THE LINEARIZED
C MODEL OF THE ROBOT; COMPUTES THE OPEN-
C -LOOP MATRICES OF THE TOTAL SYSTEM BY
C ADDING THE MATRICES OF THE ACTUATORS
C MODELS TO THE MATRICES OF THE LINEARIZED
C MODEL OF THE ROBOT MECHANICAL PART
C---------------------------------------------------------------------
C INPUT VARIABLES:
C N - Number of joints of the user's robot
C NUK - system order
C NUKI - order of the system with local integral feed-
r back loops
429
DIMENSION
.
AO(NUKI,NUKI),BL(NUKI,N)
DIMENSION HP(6,6),HV(6,6),HU(N,N)
DIMENSION LL(6),MM(6)
DIMENSION Y(12),DXU(6),YI(12)
430
C---------------------------------------------------------------------
C
C computation of the model of the mechanical part: nonlinear
C and the linearized model matrices for the given nominal state
C
C put nominal state in the auxiliary vectors SI and SIDOT
C to be transferred into subroutine MODEL
C
DO 2 I=l,N
SI(I)-YO(I)
2 SIDOT( I )=YO( I+N)
C
C set indicator to 1 - to compute the matrices of the
C linearized model
C
MOD=O
MODLIN=l
C
CALL MODEL
C
MODLIN=O
C
C form matrices: HU (matrix by the accelerations)
C HP (matrix by the joints angles) and HV (matrix by the joints
C velocities) in the linearized model of the robot
C
DO 3 I=l,N
II=2-NI (l)
C
DO 3 J=1,N
II=II+NI (J)
C
HP(I,J)=DHO(I,J)
C
HV(I,J)-DHODOT(I,J)
C
HU(I,J)=H(I,J)
C
DO 3 JJ=l,N
3 HP(I,J)=HP(I,J)+DH(I,JJ,J)*DXO(JJ)
C
C introducing of the matrix F
C
DO 4 I=l,N
DO 4 J=l,N
C
HU(I,J)=-F(2,I)*HU(I,J)
C
HP(I,J)=F(2,I)*HP(I,J)
C
4 HV(I,J)=F(2,I)*HV(I,J)
C
C adding of the unit matrix to matrix HU
C
DO 5 I=1,N
HU(I,I)=HU(I,I)+1.
C
C set initially matrix BL to zero
C
431
DO 5 J-l,NUKI
5 BL(J,I)=O.
C
C invert the matrix HU
C
NN=N
CALL MINV(HU,NN,D,LL,MM)
C
C form matrices AO and BL
C
DO 6 I=I,NUKI
DO 6 J=I,NUKI
C
6 AO(I,J)=O.
C
JJ=O
11=1
DO 11 I=I,N
C
III=II+l
C
IF(NI(I).EQ.2)GO TO 15
BL(II+2,I)=B(3,I)
C
15 DO 7 J=I,NI(I)
JJ=JJ+l
C
AO(II,JJ)=A(I,J,I)
C
IF(NI(I).EQ.2)GO TO 77
AO(II+2,JJ)=A(3,J,I)
IF(IOPTIN(I).EQ.O)GO TO 7
AO(II+3,JJ)=0.
GO TO 7
C
77 IF(IOPTIN(I).EQ.O)GO TO 7
C
AO(II+2,JJ)=0.
C
7 CONTINUE
C
IF(IOPTIN(I).EQ.O)GO TO 78
JJ=JJ+l
C
DO 79 J=I,NI(I)
79 AO(II+J-l,JJ)=O.
C
C introducing of "integral state coordinates"
C
AO(II+NI(I),JJ-NI(I»=1.
C
78 12=1
C
DO 10 I1=I,N
13=12+1
C
AO(III,I2)-HU(I,Il)*A(2,1,Il)
C
AO(III,I3)=HU(I,Il)*A(2,2,Il)
C
IF(NI(Il).EQ.2)GO TO 8
432
C
AO(III,I2+2)=HU(I,Il)*A(2,3,Il)
C
8 BL(II+l,Il)=HU(I,Il)*B(2,Il)
C
DO 9 IJ=I,N
AO(III,I2)=AO(III,I2)+HU(I,IJ)*HP(IJ,Il)
9 AO(III,I3)=AO(III,I3)+HU(I,IJ)*HV(IJ,Il)
C
I2=I2+NI(Il)
C
IF(IOPTIN(Il).EQ.O)GO TO 10
12=12+1
C
10 CONTINUE
C
II=II+NI(I)
IF(IOPTIN(I).EQ.l)II=II+l
C
11 CONTINUE
RETURN
END
C---------------------------------------------------------------------
C SUBROUTINE: SMLGAD
C---------------------------------------------------------------------
C FUNCTION: ADDS LOCAL FEEDBACK GAINS INTO THE
C MATRICES OF THE LINEARIZED MODEL OF THE
C ROBOT AND BY THIS FORMS THE MATRIX OF THE
C CLOSED-LOOP LINEARIZED MODEL OF THE SYSTEM
C (JUST LOCAL SERVO LOOPS ARE ADDED)
C---------------------------------------------------------------------
C INPUT VARIABLES:
C NUK - system order
C N - number of joints
C NUKI - order of the total system if integral feed-
C back loops are introduced
C AO(NUKI,NUKI) - system matrix of the open-loop linea-
C rized model (computed in SMLINM)
C BL(NUKI,N) - input distribution matrix of the linea-
C rized model of the robot (SMLINM)
C NI(N) - orders of the actuators models
C PKl(N) position feedback gain (computed in SMLOC E
C or in SMOPRG)
C PK2(N) - velocity feedback gain
C PK3(N) current (pressure) feedback gain
C PK4(N) - integral feedback gain
C OPTION:
C IOPTIN(N) - local controller with integral feedback
C loop (1 -yes, O-no)
C---------------------------------------------------------------------
C OUTPUT VARIABLES:
C AL(NUKI,NUKI) - matrix of the closed-loop linearized
C model of the robot - local feedback
C gains included
C---------------------------------------------------------------------
433
SUBROUTINE SMLGAD(AO,AL,BL)
C
COMMON/GAINS/ PKl(6),PK2(6),PK3(6),PKG(6),PK4(6)
COMMON/INTGAI/ NUKI
COMMON/OPTION/ IPOM(42),IOPTIN(6)
COMMON/ACTORD/ NI(6)
COMMON/ORDGLB/ NUK,N
C
DIMENSION AO(NUKI,NUKI),BL(NUKI,N)
DOUBLE PRECISION AL(NUKI,NUKI)
C----------------------------------------------------------------------
C
C add local gains to the open-loop system matrix
C
DO 1 I=l,NUKI
DO 1 J=l,NUKI
1 AL(I,J)=AO(I,J)
C
11=0
JJ=l
C
DO 2 I=l,N
II=II+NI(I)
C
AL(II,JJ)=AL(II,JJ)-BL(II,I)*PKl(I)
AL(II,JJ+l)=AL(II,JJ+l)-BL(II,I)*PK2(I)
C
IF(NI(I).EQ.2)GO TO 3
C
AL(II,JJ+2)=AL(II,JJ+2)-BL(II,I)*PK3(I)
AL(II,JJ+3)=AL(II,JJ+3)-BL(II,I)*PK4(I)
C
GO TO 4
C
3 AL(II,JJ+2)=AL(II,JJ+2)-BL(II,I)*PK4(I)
C
4 JJ=JJ+NI(I)
C
IF(IOPTIN(I).EQ.l)II=II+l
C
IF(IOPTIN(I).EQ.l)JJ=JJ+l
C
2 CONTINUE
RETURN
END
434
C---------------------------------------------------------------------
C SUBROUTINE: SMEIGN
C---------------------------------------------------------------------
C FUNCTION: COMPUTATION OF EIGEN-VALUES OF THE
C GIVEN QUADRATIC MATRIX
C---------------------------------------------------------------------
C INPUT VARIABLES:
C NN - matrix order
C NM
C AL(NN,NN) - quadratic matrix
C---------------------------------------------------------------------
C OUTPUT VARIABLES:
C REALEV(NN) - vector of the real parts of the eigen-
C -values of the given matrix
C---------------------------------------------------------------------
C SUBROUTINES REQUIRED:
C EIGENP - SSP subroutine to compute eigen-values of the
C given quadratic matrix
C REALVE,COMPVE,HESQR - auxiliary subroutines called by
C subroutine EIGENP
C---------------------------------------------------------------------
SUBROUTINE SMEIGN(NN,NM,AL,REALEV,RlMAG)
C
DOUBLE PRECISION AL(NM,1),EVR(24),EVI(24),VECR(24,24)
DOUBLE PRECISION VECI(24,24)
C
DIMENSION REALEV(NN),RIMAG(NN)
DIMENSION INDIC(24)
C---------------------------------------------------------------------
C
C call subroutine EIGENP to compute eigen-values of AL
C
CALL EIGENP(NN,NM,AL,EVR,EVI,VECR,VECI,INDIC)
C
DO 10 I=1,NN
RIMAG(I)=EVI(I)
10 REALEV(I)=EVR(I)
C
WRITE(6,102)
DO 6 I=1,NN
6 WRITE(6,103)I,EVR(I),EVI(I),INDIC(I)
102 FORMAT(3X,' Eigen-values: ',/,3X,'NO. Real part
1 Complex part Indic.',/)
103 FORMAT(3X,I4,2E15.5,I4)
RETURN
END
435
C---------------------------------------------------------------------
C SUBROUTINE: SMSIMD
C---------------------------------------------------------------------
C FUNCTION: SIMULATES THE ROBOT DYNAMICS WITH VARIOUS
C USER SELECTED CONTROL LAWS
C THE SIMULATION IS PERFORMED BY NUMERICAL INTEGRA-
C TION OF THE NONLINEAR DYNAMIC MODEL OF THE ROBOT;
C FOR NUMERICAL INTEGRATION THE SIMPLE EULER'S MET-
C HOD IS APPLIED:
C X(next)=X(current)+DINT*XT(current)
C WHERE X IS THE STATE VECTOR OF THE SYSTEM, XT IS
C THE FIRST DERIVATIVE OF THE STATE VECTOR, DINT
C IS THE INTEGRATION INTERVAL DEFINED BY:
C next instant- current instant +DINT
C SUBROUTINE COMPUTES THE FIRST DERIVATIVE OF THE
C STATE VECTOR (AT THE CURRENT INSTANT - ONCE AT
C EACH INTEGRATION INTERVAL) BY COMPUTATION OF
C THE RIGHT SIDE OF THE DIFFERENTIAL EQUATIONS OF
C THE ROBOT MODEL IN THE STATE SPACE USING THE
C CURRENT VALUE OF THE STATE VECTOR
C NOTE: This is the simplest method for numerical inte-
C gration. It is easy to extend the programme to
C include other more reliable and more precise
C methods for numerical integration
C---------------------------------------------------------------------
C INPUT VARIABLES:
C FILE(5) - Robot's name
C N - number of joints for the user's robot
C NUK - the order of the entire system
C YSINT(18)-initial error of the system state vector
C (deviation of the state vector from the
C nominal state at the initial moment)
C YSOI(12)- nominal trajectory - values in the previous
C point: (1-6) joints anles (displacements)
C (7-12) joints velocities
C YS02(12)- nominal trajectory - next point
C QU01 - nominal accelerations at the previos point
C QU02 at the next point
C VR1,VR2 - time instants at the nominal trajectory in
C which the nominal trajectory is calculated
C and memorized in the file ***.ANG
C NI(6) - the orders of the actuators models
C A(3,3,6)- matrices of the actuators models
C AHM(3,3,6) subsystems models-see INPUT ACT
C (include moment of inertia of mechanism)
C B(3,6) - input distribution vectors of actuators
C models
C BHM(3,6)- of subsystems
C models
C (include moment of inertia of mechanism)
C F(3,6) - load distribution vectors of actuators
C models
C FHM(3,6)- of subsystems
C models
C (include moment of inertia of mechanism)
C UMAX(2,6) amplitude constraints upon the actuators
C inputs
C HMIN(6) - minimal moments of inertia of mechanism
C (see SM_MAX_IN)
436
C SIDOT
C SMOPTN - enables selection of a control law which will
C be simulated
C SMCONT - computes local control signals for the given
C deviations of the state coordinates from
C the nominal trajectory DX(3)
C SMCONG - computes the global gains for the given
C deviations of the state vector DX(3)
C---------------------------------------------------------------------
SUBROUTINE SMSIMD
C
BYTE FILE(S)
COMMON/FILE/FILE
C
INCLUDE 'IN2:SMCOM.COM'
C
INCLUDE 'IN2:MODELM.MOD'
C
COMMON/MODOPCI MOD,ITIP
COMMON/NOVLON/AHMN(2,2,6),BHMN(2,6)
COMMON/OPTNOM/IOPCNM(6),IOPCNN(6)
COMMON/NKOORDI YSOP(18),PO(6),UO(6)
COMMON/SIMTIMI TIME
COMMON/POMINTI POMINT(6)
C
DIMENSION YSP(18),DY(18),DYS(18),POP(6),P1(6)
DIMENSION DX(3)
DIMENSION YSO(18)
DIMENSION U(6),PKGP(6)
DIMENSION YS01(12),YS02(12)
DIMENSION YOPOM(12)
DIMENSION SENERG(6),SPOWER(6)
DIMENSION DX1(3),DXP(6)
DIMENSION QU01(6),QU02(6),QUO(6)
DIMENSION H11(6),H10(6)
DIMENSION YO(12),HP(6),HPOM(6,6),HPOM3(6,6)
DIMENSION LL(6),MM(6)
C
BYTE FTOT(14),FTOT1(14),FTOT2(14)
DATA FTOT( 1)/' 1'1, FTOT( 2 )/'N' I, FTOT( 3 )/' l' I, FTOT( 4 )/':' 1
1 FTOT(10)/'.'I,FTOT(11)/'A'I,FTOT(12)/'N'I,
2 FTOT(13)/'G'I,FTOT(14)/OI
DATA FTOT1(1)/'I'I,FTOT1(2)/'N'I,FTOT1(3)/'1'1,
1 FTOT1(4)/':'I,FTOT1(10)/'.'I,FTOT1(11)/'S'1
2 FTOT1(12)/'I'I,FTOT1(13)/'M'I,FTOT1(14)/OI
DATA FTOT2(1)/'I'I,FTOT2(2)/'N'I,FTOT2(3)/'1'1,
1 FTOT2(4)/':'I,FTOT2(10)/'.'I,FTOT2(11)/'L'I,
2 FTOT2(12)/'O'I,FTOT2(13)/'C'I,FTOT2(14)/OI
C---------------------------------------------------------------------
C
DO 1 1=1,5
FTOT(I+4)=FILE(I)
FTOT2(I+4)=FILE(I)
1 FTOT1(I+4)=FILE(I)
TYPE 6699
6699 FORMAT(/,' Simulation of tracking of the nominal trajectory')
TYPE *,('-',1-1,54)
C
C open file ***.ANG containing data on the nominal
C joint trajectories
C
438
OPEN(UNIT=1,NAME=FTOT.TYPE='OLD',ERR=999)
GO TO 55
C
999 TYPE 998,(FILE(I),I=1,5)
998 FORMAT(3X,'DIAG*** FILE:' ,5Al,' .ANG cannot be found')
RETURN
C
C Options: the integration interval is set to 0.0001 [s]; user
C might introduce variable integration interval and impose
C it in the file ***.DAT
C
55 DINT=O.OOOI
C
C test whether the file with simulation results already exists
C
OPEN(UNIT=2,NAME=FTOTl,TYPE='OLD',ERR=6691)
TYPE 6697,FILE
6697 FORMAT(/,' WARNING*** File ',SAl,'.SIM already exists')
C
TYPE 6696
6696 FORMAT($,, want to form a file with new simulation [YIN]?:')
ACCEPT 6695,YES
6695 FORMAT(Al)
IF(YES.NE.'Y')GO TO 6694
C
CLOSE(UNIT=2)
6691 CALL ASSIGN(2,FTOTl,14)
C
GO TO 6698
C
C if the user doesnot want new simulation-exit from the routine
C
6694 CLOSE(UNIT=2)
CLOSE(UNIT=l)
RETURN
C--------------------------------------------------------------------
C
C open file ***.LOC containing synthesized local feedback gains
C
6698 OPEN(UNIT=3,NAME=FTOT2,TYPE='OLD',ERR=2000)
C
DO 2002 I=l,N
READ(3,2003)PKl(I)
READ(3,2003)PK2(I)
READ(3,2003)PK3(I)
2002 READ(3,2003)PK4(I)
2003 FORMAT(F12.5)
C
CLOSE(UNIT=3)
GO TO 2001
C
C if there is no file ***.LOC with local feedback gains - exit
C from the routine
C
2000 TYPE *,'DIAG*** File ***.LOC cannot be found'
CLOSE(UNIT=l)
RETURN
C--------------------------------------------------------------------
C
C call subroutine to select control law which will be simulated
C
439
H10(I)=H1(I)
DO 41 J=l,N
41 POP(I)=POP(I)+HH(I,J)*QU01(J)
C
11=2
C
DO 43 1=l,N
YSOP(11)=YS01(1+N)
YSOP(11-1)=YS01(I)
1F(NI(1).EQ.2)GO TO 44
C
C if the actuator model is of order 3 then compute the nominal
C value of the third state coordinate of the i-th actuator
C
YSOP(II+1)=(QU01(I)-A(2,2,I)*YSOP(II)-F(2,1)*POP(I))/
1 A( 2, 3, I)
C
C test whether centralized or local nominal control is to be ap-
C plied
C
44 IF(10PCNM(I).EQ.1)GO TO 43
C
C computation of the subsystem matrices to include minimal va-
C lues of the moments cf inertia of the mechanim around the
C joints axes (necessary for computation of nominal local
C control)
C
FHM(2,1)=1./(HM1N(1)+1./F(2,1))
POM=(1./F(2,1))*FH"(2,I)
AHM(2,2,1)=A(2,2,I)*POM
IF(NI(I).EQ.2)GO TO 43
AHM(2,3,1)=A(2,3,1)*POM
C
YSOP(1I+1)=(QUO(I)-AHM(2,2,1)*YSOP(11))/AHM(2,3,1)
43 11=1I+N1(I)
C
C computation of the actial initial state coordinates (since
C initial errors of state coordinates are imposed in SMOPTN)
C
DO 10 I=l,NUK
10 YSP(I)=YSOP(I)+YSINT(I)
C********************************************************************
C Start cycle for simulation
C
2 CONTINUE
C
C compute deviation (errors) between actual state coordinates
C (YSP) and the nominal state coordinates (YSOP)
C
DO 77 I=l,NUK
77 DY(I)=YSP(I)-YSOP(I)
C
C write data on simulated robot performance in file ***.S1M
C
WRITE(2,100)TIME
WR1TE(2,100)(DY(1),I=1,NUK)
WRITE(2,100)(P1(I),I=1,N)
WR1TE(2,100)(U(I),1=1,N)
WR1TE(2,100)(SPOWER(I),1=1,N)
WRITE(2,100)(SENERG(I),I=1,N)
441
C
C print at terminal display
C
IF(TSTAMP.GT.TIME+O.OOl.OR.TINTS.EQ.O.)GO TO 119
TSTAMP=TSTAMP+TINTS
TYPE 101,TIME
101 FORMAT(/,' Time:',F10.5,'[s]')
TYPE 10006,(I,I=1,N)
10006 FORMAT(' No. of joint ',6(4X,I1,5X»
TYPE 10007
10007 FORMAT(' Deviations of the actuator state coordinates')
TYPE 10008
10008 FORMAT(' Angles [rad] or [m]:' ,$)
II=l
DO 4097 I=l,N
TYPE 4098 ,DY( II)
4097 II=I I+NI ( I)
4098 FORMAT('+',$,E10.3)
TYPE 4049
4049 FORMAT( '+',' ,)
II=2
TYPE 10009
DO 4095 I=l,N
TYPE 4098,DY(II)
4095 II=I I+NI (I)
10009 FORMAT(' Ve1ocit.[rad/s-m/s]:',$)
TYPE 4049
TYPE 10010
II=3
DO 4099 I=l,N
IF(NI(I).EQ.2)GO TO 4096
TYPE 4098,DY(II)
GO TO 4099
4096 TYPE 4094
4099 II=II+NI ( I)
4094 FORMAT('+',$,10X)
10010 FORMAT(' Current/pressure[A]:' ,$)
TYPE 4049
TYPE 103,(P1(I),I=l,N)
103 FORMAT(' Driving torques[Nm]:',6E10.3)
TYPE l04,(U(I),I=l,N)
104 FORMAT(' Control signals [Vj:',6E10.3)
119 CONTINUE
C--------------------------------------------------------------------
C
C read data on nominal trajectory from the file ***.ANG -
C - at the instant VR2
C
READ(1,100,END=9000)VR2
READ(1,100)(YS02(I),I=1,N)
READ(1,100)(YS02(I),I=N+1,NN)
READ(1,100)(QU02(I),I=1,N)
C
POM1=VR2-VRl
C---------------------------------------------------------------------
C
C computation of nominal centralized or decentralized programmed
C control; incement simulation time for DINT
C
91 TIME=TIME+DINT
C
442
C
UO(I)=((YSO(III)-YSOP(III))/DINT-AHM(3,2,I)*YSOP(II)-
1 AHM(3,3,I)*YSOP(III))/B(3,I)
GO TO 6
C
C if the order of the i-th actuator model is 2
C
67 UO(I)=(QUO(I)-AHM(2,2,I)*YSOP(II)-IOPCNM(I)*FHM(2,I)*(POP(I)-
1 HMIN(I)*QUO(I)))/BHM(2,I)
6 II=II+NI(I)
C-------------------------------------------------------------------
C
C SIMULATION - computation of the right hand sides of the diff.
C equations of the stat0 nonlinear model of the robot
C
11=1
DO 7 I=l,N
SI(I)=YSP(II)
SIDOT(I)=YSP(II+1)
7 II=II+NI(I)
C
C call MODEL to compute matrix H and vector h for the actual
C joints angles and velocities
C
CALL MODEL
C-------------------------------------------------------------------
C
C computation of control signals for all actuators according
C to the selected control law (DX(3)-deviation of state coord.
C of the i-th actuator from the nominal trajectories)
C
11=1
111=2
11=3
DO 8 I=l,N
DX(l)=DY(II)
DX(2)=DY(III)
IF(NI(I).EQ.3)DX(3)=DY(Il)
C
C computation of local control signals
C
CALL SMCONT(I,U1,DX)
DYS(II)=A(1,2,I)*YSP(III)
C
C computation of the selected global feedback gains
C
CALL SMCONG(I,PKG1,U1,DX)
U1=U1+IOPCNN(I)*UO(I)
C
C PKGP(6) - vector of the global feedback gains computed
C for the actual state of the actuator (susbsystem)
C
U(I)=U1
PKGP(I)=PKG1
C
C HP - auxiliary vector for computation of the right sides
C of differential equations of the robot model-the second
C equations in the models of actuators in the state space
C
HP(I)=A(2,2,I)*YSP(III)+F(2,I)*H1(I)+A(2,3,I)*YSP(I1)
IF(NI(I).EQ.3)GO TO 68
444
C
C if the order of actuator model is 2
C
IF(IOPTG(I).EQ.O) GO TO 69
C
C computation of the global control according to the
C selected option
C
Ul-Ul+PKGl*(IOPTGH(I)*(HlO(I)-POP(I))*IOPCNM(I)+
* IOPTGG(I)*(Hl(I)-IOPCNM(I)*HlO(I)))
C
C amplitude constraints upon the actuator inputs
C
69 IF(Ul.GT.UMAX(l,I))Ul-UMAX(l,I)
IF(U1.LT.-UMAX(2,I))Ul=-UMAX(2,I)
C
U(I)=Ul
HP(I)=HP(I)+B(2,I)*Ul
68 II=II+NI(I)
III=II+l
I1=III+1
8 CONTINUE
C
C end of control computation
C (at current integration interval)
C----------------------------------------------------------------
C
C computation of the auxiliary matrix HPOM
C
DO 70 I=l,N
DO 70 J=l,N
70 HPOM(I,J)=-HH(I,J)*(F(2,I)+B(2,I)*PKGP(I)*IOPTGH(I))
DO 71 I=l,N
71 HPOM(I,I)=HPOM(I,I)+l.
C
C matrix inversion
C
CALL SMMINV(HPOM,HPOM3)
C
C multip1iaction by the velocity dependent moments
C
II=2
DO 72 I=l,N
DYS(II)=O.
DO 73 J=l,N
73 DYS(II)=DYS(II)+HPOM(I,J)*HP(J)
72 II=II+NI(I)
C
C computation of the actual joints torques
C
DO 74 I=l,N
II=2
Pl(I)-Hl(I)
DO 74 J=l,N
Pl(I)=Pl(I)+HH(I,J)*DY5(II)
74 II-II+NI(J)
C
11=0
DO 75 I=l,N
II=II+NI (I)
C
445
C
9000 CONTINUE
CLOSE(UNIT=l)
CLOSE(UNIT=2)
TYPE *,' WARNING*** End of simulation'
RETURN
END
C----------------------------------------------------- ----------------
C SUBROUTINE: SMOPTN
C---------------------------------------------------------------------
C FUNCTION: INTERACTIVE SPECIFICATION OF THE CONTROL LAW
C OPTIONS FOR SIMULATION OF THE ROBOT DYNAMICS
C---------------------------------------------------------------------
C INPUT VARIABLES:
C N - number of joints of the user's robot
C----------------------------------------------------- ----------------
C OUTPUT VARIABLES:
C YSINT - deviation of the initial state from
c the nominal trajectory
C OPTIONS:
C IOPCNN(I)- nominal control in the i-th joint
C to be applied or not (1-yes,0-no)
C IOPCNM(i)- type of nominal control in the
C i-th joint (1-centralized,0-local)
C---------------------------------------------------------------------
C SUBROUTINES REQUIRED:
C SMINGL - enables specification of global
C control
C---------------------------------------------------------------------
SUBROUTINE SMOPTN
C
INCLUDE 'IN2:SMCOM.COM'
C
COMMON/OPTNOM/IOPCNM(6),IOPCNN(6)
C---------------------------------------------------------------------
C
2000 FORMAT(A1)
TYPE 101
101 FORMAT(' Want simulation with the already adopted control law'
1 ,/,$,' (otherwise you have to specify it) [YIN]?:')
ACCEPT 2000,YES
IF(YES.EQ.'Y')GO TO 2
TYPE 102
102 FORMAT(' Want to apply nominal control in any joint'
1 ,/,$,' (either centralized or decentralized) [YIN]?:')
ACCEPT 2000,YES
IF(YES.EQ.'Y' )GO TO 1
DO 33 I=1,N
33 IOPCNN(I)=O
GO TO 5
1 DO 34 I=l,N
TYPE 103,1
103 FORMAT($,' Want to apply nominal control in the ',13,
1 '-th joint [YIN]?:')
447
ACCEPT 2000,YES
IF(YES.NE.'Y')GO TO 3
IOPCNN(I)=l
TYPE 104,1
104 FORMAT($,' Want centralized nominal control in the',I3,'-th
1 joint [YIN]?:')
ACCEPT 2000,YES
IOPCNM(I)=O
IF(YES.EQ.'Y')IOPCNM(I)=l
GO TO 34
3 IOPCNN(I)=O
34 CONTINUE
C
5 TYPE 105
105 FORMAT($,' want to apply global control [YIN]?:')
ACCEPT 2000,YES
IF(YES.EQ.'Y')CALL SMINGL
GO TO 6
C
2 DO 35 I=l,N
IOPCNN(I)=l
35 IOPCNM(I)=l
C
6 TYPE 106
106 FORMAT($,' want to specify some specific initial conditions
1 [YIN]?:')
ACCEPT 2000,YES
IF(YES.NE. 'Y' ) RETURN
TYPE 107
107 FORMAT(' Specify initial conditions (for joint angles) [rad]
1 or [m]:')
DO 37 I s 1,NUK
37 YSINT(I)=O.
C
II=l
DO 36 I=l,N
TYPE 108,1
108 FORMAT($,' Joint',I3,'.')
ACCEPT 2001,YSINT(II)
II=II+NI (I)
2001 FORMAT(F10.5)
36 CONTINUE
RETURN
END
448
C---------------------------------------------------------------------
C SUBROUTINE: SMINGL
C---------------------------------------------------------------------
C FUNCTION: INTERACTIVE SPECIFICATION OF THE GLOBAL
C CONTROL LAW FOR SIMULATION - THE USER HAS
C TO SPECIFY A FORM OF THE GLOBAL CONTROL
C AND THE GLOBAL FEEDBACK GAIN
C---------------------------------------------------------------------
C INPUT VARIABLE:
C N number of joints of the user's robot
C---------------------------------------------------------------------
C OUTPUT VARIABLES:
C PKG(I) - attenuation of the global control in the
C i-th joint
C OPTIONS: (for each joint)
C IOPTG(i) =0 global control is not to be applied in
C the i-th joint
C =1 the global gain is in the form:
C PKG(i)*(gradv*F)/(gradv*B)
C =2 the global gain is in the form:
C PKG(i)*F(2)/B(2)
C IOPTGF(i) =0 force feedback is not to be applied
C in the i-th joint
C =1 force feedback is applied
C IOPTGG(i) - the global control is in the form of
C "on line" computation of gravity, centri-
C fugal, and Coriolis moments around the
C i-th joint (0 -no, 1 -yes)
C IOPTGH(i) - the global control is in the form of
C "on-line" computation of inertial moments
C around the i-th joint (0 - no, 1 -yes)
C---------------------------------------------------------------------
SUBROUTINE SMINGL
C
COMMON/OPTION/IOPTOR(6),IOPTV(6),IOPTI(6),
1 IOPTG(6),IOPTGF(6),IOPTGG(6),IOPTGH(6)
COMMON/GAINS/ PK1(6),~K2(6),PK3(6),PKG(6)
COMMON/ORDGLB/ NUK,N
C---------------------------------------------------------------------
C
DO 666 I=1,N
IOPTG(I)=O
IOPTGF(I)=O
IOPTGG(I)=O
666 IOPTGH(I)=O
C
TYPE 901
901 FORMAT(' Want to apply equal global control law in all joints'
1 ,/,$,' [Y/N]?:')
ACCEPT 2000,YES
2000 FORMAT(A1)
IF(YES.EQ.'Y')GO TO 100
C
DO 10 I=l,N
TYPE 9000,1
9000 FORMAT($,' Want global control in the ',13,
1 '-th joint [YIN]?:')
ACCEPT 2000,YES
IF(YES.EQ.'Y')IOPTG(I)=1
449
C
IF(IOPTG(I).EQ.O)GO TO 10
TYPE 902,1
902 FORMAT($, , want force feedback in the ',13,
1 '-th joint [YIN]?:')
ACCEPT 2000,YES
IF(YES.EQ.'Y')IOPTGF(I)=l
IF(YES.EQ.'Y')GO TO 10
C
TYPE 903,1
903 FORMAT($,' want "on-line" computation of gravity,',I,$
1 'centrifugal and Corio1is moments in the ',13,
2 '-th joint [YIN]?:')
ACCEPT 2000,YES
1F(YES.EQ.'Y' )10PTGG(I)=l
1F(YES.EQ.'Y')GO TO 10
C
TYPE 9004,1
9004 FORMAT(' Want "on-line" computation of inertial moments',I,
1 $,' in the ',I3,'-th joint [YIN]?:')
ACCEPT 2000,YES
1F(YES.EQ.'Y')10PTGH(1)=l
10 CONTINUE
GO TO 500
C
100 TYPE 9006
9006 FORMAT($,' want force feedback in all joints [YIN]?:')
ACCEPT 2000,YES
1F(YES.NE.'Y')GO TO 200
DO 20 1=l,N
10PTG(1)=l
20 10PTGF(I)=l
GO TO 500
C
200 DO 25 1=l,N
25 10PTGF(I)=O
TYPE 9016
9016 FORMAT(' Want "on-line" computation of gravity,
1 centrifugal and coriolis moments' ,I,
2 $,' in all joints [YIN]?:')
ACCEPT 2000,YES
IF(YES.NE.'Y')GO TO 300
DO 30 I=l,N
IOPTG(I)=l
30 10PTGG(I)=l
GO TO 500
C
300 DO 35 I=l,N
35 10PTGG(I)=O
C
TYPE 9007
9007 FORMAT(' Want "on-line" computation of inertial moments',
1 1,$,' in all joints [YIN]?:')
ACCEPT 2000,YES
1F(YES.NE.'Y')GO TO 700
DO 40 I=l,N
10PTG(I)=l
40 10PTGH(1)=l
C
450
C---------------------------------------------------------------------
C SUBROUTINE: SMCONT
C---------------------------------------------------------------------
C FUNCTION: COMPUTES THE LOCAL CONTROL SIGNAL FOR THE
C I-TH ACTUATOR AND FOR GIVEN STATE VECTOR
C---------------------------------------------------------------------
C INPUT VARIABLES:
C I the order number of the actuator(subsystem)
C OX deviation of the actual state vector (during
C simulation) from the nominal trajectory for
C the i-th subsystem (DX(l) - position error,
C DX(2)-velocity error, DX(3)- error in rotor
C current, or pressure)
C PKl(I) position local feedback gain
C PK2(I) velocity "
C PK3(I) gain in feedback loop by current/pressure
C PK4(I) integral feedback gain
C DINT - integration interval
C--------------------------------------------------------------------
C OUTPUT VARIABLE:
C Ul local control signal for the i-th subsystem
C for the given OX
C--------------------------------------------------------------------
SUBROUTINE SMCONT(I,Ul,DX)
C
COMMON/GAINS/ PKl(6),PK2(6),PK3(6),PKG(6),PK4(6)
COMMON/ORDGLB/ NUK,N
C
DIMENSION DX(3)
COMMON/ACTORD/ NI(6)
COMMON/INTI NT/ DINT
COMMON/POMINT/ POMINT(6)
C
C POMINT(I)-auxiliary vector for the numerical integration
C necessary to implement feedback loop by integral
C of the position error DX(l)
C
C--------------------------------------------------------------------
C
Ul=-PKl(I)*DX(l)-
1 PK2(I)*DX(2)
2 -PK3(I)*DX(3)
3 -PK4(I)*POMINT(I)
C
POMINT(I)aPOMINT(I)+DX(l)*DINT
RETURN
END
452
C---------------------------------------------------------------------
C SUBROUTINE: SMCONG
C---------------------------------------------------------------------
C FUNCTION: COMPUTES GLOBAL CONTROL GAIN FOR THE I-TH
C JOINT - ACTUATOR
C---------------------------------------------------------------------
C INPUT VARIABLES:
C I - the order number of the actuator/joint
C (subsystem)
C DX(3) - deviation of the i-th subsystem state
C from the nominal trajectory
C ul - local control signal for the i-th subsystem
C F(3,I)- load distribution vector in the i-th actu-
C ator model
C B(3,I)- input distribution vector in the state model
C of the i-th actuator
C NI(I) - order of the i-th subsystem
C V - Liapunov's function value for the i-th sub-
C system for the given state vector DX(3)
C GRADV(3) - gradient of the Liapunov's function for
C the i-th subsystem for the given DX
C IOPTG(I) - type of the global gain for the i-th
C subsystem (see subroutine SMINGL)
C PKG(I) - global control attenuation in the i-th
C joint - user's selection (see SMINGL)
C--------------------------------------------------------------------
C OUTPUT VARIABLE:
C PKGl - global gain for the i-th subsystem
C--------------------------------------------------------------------
C SUBROUTINES REQUIRED:
C LIAPIS - computes the value of the subsystem
C Liapunov's function for the given DX
C GRADIS - computes the gradient of the subsystem
C Liapunov's function for the given DX
C--------------------------------------------------------------------
SUBROUTINE SMCONG(I,PKGl,Ul,DX)
C
INCLUDE 'IN2:SMCOM.COM'
C
DIMENSION DX(3),GRADV(3)
C--------------------------------------------------------------------
C
C if IOPTG(i) is equal to 0 - the global control is not
C applied in the i-th joint
C
IF(IOPTG(I).NE.O)GO TO 1
PKGl=O
RETURN
C
1 IF(IOPTG(I).EQ.2)GO TO 6
C
C call subroutines to compute Liapunov's function and
C its derivative for the i-th joint and given DX
C
CALL LIAPlS(DX,V,I)
CALL GRADlS(DX,GRADV,I,V)
C
C computation of GRADV*F and GRADV*B
C
453
FG=O.
BG=O.
DO 2 J=l,NI(I)
FG=FG+GRADV(J)*F(J,I)
2 BG=BG+GRADV(J)*B(J,I)
C
C if GRADV*B is smaller than 0.001- it is constrained to 0.001
C
IF(ABS(BG).GT.0.001)GO TO 50
BG=SIGN(O.OOl,BG)
C
C computation of the global gain according to:
C GRADV*F/(GRADV*B) multiplied by attenuation PKG(I)
C specified by the user
C
50 PKG1=-PKG(I)*FG/BG
RETURN
C
C if the user has selected the simplified form of
C global gain IOPTG(I)=2
C
6 IF(NI(I).EQ.2)PKG1=-PKG(I)*F(2,I)/B(2,I)
IF(NI(I).EQ.3)PKG1=-PKG(I)*F(2,I)/B(3,I)
RETURN
END
C---------------------------------------------------------------------
C SUBROUTINE: LIAP1S
C---------------------------------------------------------------------
C FUNCTION: COMPUTES THE LIAPUNOV'S FUNCTION FOR THE
C I-th SUBSYSTEM FOR THE GIVEN VALUE OF THE
C SUBSYSTEM STATE VECTOR
C---------------------------------------------------------------------
C INPUT VARIABLES:
C I - the order number of the subsystem
C DX - the state of the i-th susbsystem (deviation of
C the state vector from the nominal)
C NI(I) - the order of the subsystem model
C RK(4,4,I) - Liapunov's matrix for the i-th sub-
C system (solution of the Riccati's
C algebraic equation - see subroutine
C SMOREG)
C---------------------------------------------------------------------
C OUTPUT VARIABLES:
C V - the Liapunov's function for the i-th subsystem
C for the given state vactor value DX
C---------------------------------------------------------------------
C SUBROUTINES REQUIRED:
C GMPRD - SSP subroutine for matrix multiplication
C---------------------------------------------------------------------
SUBROUTINE LIAP1S(DX,V,I)
C
DIMENSION DX(3),HPOM(3,3)
DIMENSION DGX(3)
4~
C
COMMON/SUBLIAI RK(4,4,6)
COMMON/ACTORDI NI(6)
C---------------------------------------------------------------------
C
C HPOM - auxiliary matrix
C
DO 1 J=1,NI(I)
DO 1 JJ=1,NI(I)
1 HPOM(J,JJ)=RK(J,JJ,I)
NN=NI(I)
C
C multiplication of the Liapunov's matrix by the state OX
C
CALL GMPRD(HPOM,DX,DGX,NN,NN,1)
C
C multiplication by the transpose of OX
C
V=O.
DO 2 J=1,NI(I)
2 V=V+DX(J)*DGX(J)
C
IF(V.GE.O)GO TO 200
TYPE 201
201 FORMAT(' DIAG*** Local controller is not synthesized as',l,
1 local optimal regulator, and',l,
2 therefore simplified form of the global',l,
3 gain must be selected')
CALL EXIT
C
200 V=SQRT(V)
RETURN
END
C---------------------------------------------------------------------
C SUBROUTINE: GRAD1S
C---------------------------------------------------------------------
C FUNCTION: COMPUTES GRADIENT OF THE GIVEN LIAPUNOV
C FUNCTION OF THE ij-th SUBSYSTEM ANO
C FOR THE GIVEN SUBSYSTEM STATE VECTOR
C---------------------------------------------------------------------
C INPUT VARIABLES:
C IJ - the order number of the subsystem
C ox - the subsystem state vector
C V - value of the subsystem Liapunov'S function
C for the given state vector OX
C NI(ij) - order of the ij-th subsystem
C RK(3,3,IJ) -Liapunov's matrix for the ij-th
C subsystem
C---------------------------------------------------------------------
C OUTPUT VARIABLES:
C DGX - the gradient of the Liapunov's function
C of the ij-th subsystem for the given OX
C---------------------------------------------------------------------
C SUBROUTINE REQUIRED:
C GMPRO - SSP subroutine for matrix multiplication
455
C---------------------------------------------------------------------
SUBROUTINE GRADlS(DX,DGX,IJ,V)
C
DIMENSION DX(3),DGX(3),HL(3,3)
COMMON/ACTORD/ NI(6)
COMMON/SUBLIA/ RK(4,4,6)
C---------------------------------------------------------------------
C
C put the Liapunov's matrix in the auxiliary matrix HL
C
NN=NI(IJ)
DO 1 I=l,NN
DO 1 J=l,NN
1 HL(I,J)=RK(I,J,IJ)
C
C multiplication of the Liapunov's matrix by the value
C of the subsystem state vector DX
C
CALL GMPRD(HL,DX,DGX,NN,NN,I)
C
C multiplication of DGX by l./V
C
IF(V.LT.O.OOOOOl) THEN
v=O.OOOOOl
END IF
DO 2 I=l,NN
2 DGX(I)=DGX(I)/V
RETURN
END
C---------------------------------------------------------------------
C SUBROUTINE: SMMINV
C---------------------------------------------------------------------
C FUNCTION: AUXILIARY SUBROUTINE WHICH CALLS THE
C SSP SUBROUTINE MINV FOR THE MATRIX
C INVERSION (for various matrix dimen-
C sions)
C Note: This subroutine is not obligatory
C it could be omitted if matrix H is dimen-
C sioned in different way - depending
C on the FORTRAN compiler
C---------------------------------------------------------------------
C INPUT VARIABLES:
C N - the matrix order
C HPOM - the matrix to be inverted
C---------------------------------------------------------------------
C OUTPUT VARIABLES:
C HPOM3 - inverse of the matrix HPOM
C---------------------------------------------------------------------
C SUBROUTINE REQUIRED:
C MINV - SSP subroutine for the matrix inversion
C---------------------------------------------------------------------
SUBROUTINE SMMINV(HPOM,HPOM3)
C
456
COMMON/ORDGLB/ NUK,N
DIMENSION HPOM3(N,N),HPOM(6,6)
DIMENSION LL(6),MM(6)
C
DO 1 I=l,N
DO 1 J=l,N
1 HPOM3(I,J)=HPOM(I,J)
C
CALL MINV(HPOM3,N,D,LL,MM)
C
DO 2 I=1,N
DO 2 J=1,N
2 HPOM(I,J)=HPOM3(I,J)
RETURN
END
C
C INCLUDE FILE
C 'DL1:[107,21]SMCOM.COM'
C
C Fail includes COMMON - areas
C
COMMON/SUBSYS/ A(3,3,6),B(3,6),F(3,6)
COMMON/ORDGLB/NUK,N
COMMON/ACTORD/ NI(6),KI(6)
C
COMMON/SUBSHM/ AHM(3,3,6),BHM(3,6),FHM(3,6)
COMMON/HMAX/ HMAX(6)
COMMON/HMIN/ HMIN(6)
C
COMMON/STDGIM/ ALFAI(6),ALFAIM
C
COMMON/INTINT/ DINT
C
COMMON/OPTION/IOPTOR(6),IOPTV(6),IOPTI(6),IOPTG(6)
COMMON/OPTION/IOPTGF(6),IOPTGG(6),10PTGH(6),10PT1N(6)
COMMON/SUBCRT/ QQ(3,3,6),R1(6),Q1(6)
COMMON/GAINS/ PK1(6),PK2(6),PK3(6),PKG(6),PK4(6)
COMMON/UMAX/ UMAX(2,6),UMAX1(6)
COMMON/UM/ UQMAX(2,6),UDMAX(2,6)
COMMON/SUBL1A/ RK(4,4,6)
COMMON/CTIM1N/ T1M1N(60),ITM1N
C
COMMON/STIN1T/ YSINT(18)
Fig. 1 1m Fig. 2 1m
I I
I I
I I
I I
I I
S3 I *S2 : I
-*-{j-------+-----*-----+--> --------{j-----+-----*----+-->
S1=S2 I Re *S3 :wO S1 I Re
I I
6 ; defauld data
3
.OOOOOE 00 .10000E 01 .OOOOOE 00 ;auxiliary data
.OOOOOE 00 -.11320E 02 .47S00E 02 ion actuators
.OOOOOE 00 -.11333E 04 -.66178E 02
.OOOOOE 00 .OOOOOE 00 .74900E 02
.OOOOOE 00 -.03140E 02 .OOOOOE 00
3
.OOOOOE 00 .10000E 01 .OOOOOE 00
.OOOOOE 00 -.11320E 02 .47S00E 02
.OOOOOE 00 -.11333E 04 -.66178E 02
.OOOOOE 00 .OOOOOE 00 .74900E 02
.OOOOOE 00 -.188S0E 01 .OOOOOE 00
3
.OOOOOE 01 .!OOOOE 01 .OOOOOE 00
.OOOOOE 00 -.97700E 01 .4l040E 02
.OOOOOE 00 -.8S000E 03 -.49629E 02
.OOOOOE 00 .OOOOOE 00 .S6100E 02
.OOOOOE 00 -.32S00E 00 .OOOOOE 00
3
.OOOOOE 00 .10000E 01 .OOOOOE 00
.OOOOOE 00 -.16600E 03 .BOOOOE 03
.OOOOOE 00 -.30000E 03 -.BOOOOE 02
.OOOOOE 00 .OOOOOE 00 .BOOOOE 02
.OOOOOE 00 -.33000E 03 .OOOOOE 00
3
.OOOOOE 00 .10000E 01 .OOOOOE 00
.OOOOOE 00 -.16600E 03 .BOOOOE 03
.OOOOOE 00 -.30000E 03 -.BOOOOE 02
.OOOOOE 00 .OOOOOE 00 .BOOOOE 02
.OOOOOE 00 -.33000E 03 .OOOOOE 00
3
.OOOOOE 00 .10000E 01 .OOOOOE 00
.OOOOOE 00 -.16600E 03 .BOOOOE 03
.OOOOOE 00 -.30000E 03 -.BOOOOE 02
.OOOOOE 00 .OOOOOE 00 .BOOOOE 02
.OOOOOE 03 -.33000E 03 .OOOOOE 00
.10000E 01 ;weighting matrix Q
.10000E 00 ;for optimal regulator
.10000E-01
.10000E 00 .SOOOOE 01 .SOOOOE 01 ;weighting elements
.SOOOOE 01 . SOOOOE 01 .SOOOOE 01 ;by control for reg .
.00000E-04 .00000E-02 .10000E-04 ;weighting elemnst
.10000E-04 . 10000E-04 .10000E-04 ;by integral coord .
1 ;options on feedback
1 ;loops
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
A· ~xample - input - file QMSPR.DAT
458
3
0.000000 itype of joint- KSI2 1
0.000000 i joint unit axis- ei (x) 1
0.000000 ijoint unit axis- ei (y) 1
1.000000 ijoint unit axis- ei (z) 1
0.000000 ii+1 joint unit axis- ei, +1 (x) 1
0.000000 ii+1 joint unit axis- ei, +1 (y) 1
1. 000000 ii+1 joint unit axis- ei, +1 (z) 1
0.300000 i1ink vectors- Rii (x) 1
0.000000 ilink vectors- Rii (y) 1
0.000000 ilink vectors- Rii (z) 1
-0.300000 ilink vectors- Ri,i+1 (x) 1
0.000000 ilink vectors- Ri,i+1 (y) 1
0.000000 ilink vectors- Ri,i+1 (z) 1
0.000000 ispec. vect. for lin. j.- ui (x) 1
0.000000 ispec. vect. for lin. j .- ui (y) 1
0.000000 ispec. vect. for lin. j .- ui (z) 1
0.000000 ispec. vect. for lin. j.- ui,i+1 (x) 1
0.000000 ispec. vect. for lin. j .- ui,i+1 (y) 1
0.000000 ispec. vect. for lin. j.- ui,i+1 (z) 1
0.000000 itype of joint- KSI2 2
0.000000 ijoint unit axis- eii (x) 2
0.000000 ijoint unit axis- eii (y) 2
1.000000 ijoint unit axis- eii (z) 2
0.000000 ii+1 joint unit axis- ei, +1 (x) 2
0.000000 ii+1 joint unit axis- ei, +1 (y) 2
1. 000000 ii+1 joint unit axis- ei, +1 (z) 2
0.000000 ilink vectors- Rii (x) 2
0.000010 i1ink vectors- Rii (y) 2
0.200000 ilink vectors- Rii (z) 2
0.000000 ilink vectors- Ri,i+1 (x) 2
0.000000 ilink vectors- Ri,i+1 (y) 2
-0.300000 ilink vectors- Ri,i+1 (z) 2
0.000000 ispec. vect. for lin. j .- uii (x) 2
0.000000 ispec. vect. for lin. j.- uii (y) 2
0.000000 ispec. vect. for lin. j.- uii (z) 2
0.000000 ispec. vect. for lin. j.- ui,i+1 (x) 2
0.000000 ispec. vect. for lin. j .- ui,i+1 (y) 2
0.000000 ispec. vect. for lin. j.- ui,i+1 (z) 2
1.000000 itype of joint- KSI2 3
0.000000 ijoint unit axis- eii (x) 3
0.000000 ijoint unit axis- eii (y) 3
1.000000 ijoint unit axis- eii (z) 3
0.000000 ii+1 joint unit axis- ei,i+1 (x) 3
0.000000 ii+1 joint unit axis- ei,i+1 (y) 3
0.000000 ii+1 joint unit axis- ei,i+1 (z) 3
0.000000 ilink vectors- Rii (x) 3
0.200000 ilink vectors- Rii (y) 3
0.300000 ilink vectors- Rii (z) 3
0.000000 ilink vectors- Ri,i+1 (x) 3
-0.200000 ilink vectors- Ri,i+1 (y) 3
0.000000 ilink vectors- Ri,i+1 (z) 3
1.000000 ispec. vect. for lin. j.- uii (x) 3
0.000000 ispec. vect. for lin. j .- uii (y) 3
0.000000 ispec. vect. for lin. j .- uii (z) 3
1. 000000 ispec. vect. for lin. i .- ui,i+1 (x) 3
DC DC DC
2.000000 ;Act.model order
1.500000 ;Mechanical constant
1.430000 ;E1ectromotor constant
0.000030 ;Rotor moment of inertia
0.005829 ;Viscous coefficient
1.600000 ;Rotor resistance
24.000000 ;Input amplitude constraint-upp. bound
24.000000 ;Input amplitude constraint-low bound
31.000000 ;Gear speed ratio
31.000000 ;Gear torque ratio
0.002300 ;Rotor inductivity
20.000000 ;Max. torque
10.000000 ;Motor power
0.000000 ;Auxiliary variable
0.000000 ;Auxiliary variable
2.000000 ;Act. model order
1.500000 ;Mechanical constant
1. 430000 ;Electromotor constant
0.000030 ;Rotor moment of inertia
0.005800 ;Viscous coeficient
1.600000 ;Rotor resistance
24.000000 ;Input amplitude constraint-upp. bound
24.000000 ;Input amplitude constraint-low bound
31.170000 ;Gear speed ratio
31.170000 ;Gear torque ratio
Subsystem: 2
Subsystem matrix A:
0.00000 1.00000
0.00000 -7.11780
Subsystem vector b:
0.00000
4.95604
Subsystem vector f:
0.00000
-5.28644
Subsystem: 3
Subsystem matrix A:
0.00000 1.00000
0.00000 -44.98249
Subsystem vector b:
0.00000
0.37326
Subsystem vector f:
0.00000
-0.00478
Time: 0.39998[s)
No. of joint 1 2 3
Deviations of the actuator state coordinates
Angles [rad) or [m]:-0.889E-02 0.672E-03-0.339E-04
Velocit.[rad/s-m/s): 0.404E-01 0.206E-02 0.761E-03
Current/pressure[A):
Driving torques[Nm]:-0.189E+01-0.454E+00-0.393E+02
Control signals [V):-0.196E+Ol 0.876E-OI-0.456E+00
Time: 0.49997[s]
No. of joint 1 2 3
Deviations of the actuator state coordinates
Angles [rad) or [m]:-0.558E-02 0.682E-03-0.349E-05
Velocit.[rad/s-m/s]: 0.264E-01-0.144E-02 0.801E-04
Current/pressure[A):
Driving torques[Nm]:-0.166E+01-0.423E+00-0.392E+02
Control signals [V]:-0.174E+01-0.202E+00-0.497E+00
Time: 0.59999[s]
No. of joint 1 2 3
Deviations of the actuator state coordinates
Angles [rad) or [m]:-0.346E-02 0.508E-03-0.344E-06
Velocit.[rad/s-m/s): 0.166E-01-0.195E-02 0.801E-05
Current/pressure[A):
Driving torques[Nm]:-0.150E+01-0.398E+00-0.392E+02
Control signals [V):-0.158E+01-0.495E+00-0.502E+00
WARNING*** End of simulation
135.12567
43.60567
0.00000
0.00000
126.10879
8.65252
0.00000
0.00000
1674.42932
13.44234
0.00000
0.00000
Subject Index
Introduction
to Robotics
With contributions by M. Djurovic,
D. Hristic, B. Karan, M. Kircanski,
N. Kircanski, D. Stokic, D. Vuijic,
M. Vukobratovic
1989.228 figures. XIV, 301 pp.
Hardcover ISBN 3-540-17452-4
Applied Dynamics
of Manipulation Robots
Modelling, Analysis and Examples
1989. Approx. 495 pp. 176 figs. Hardcover
ISBN 3-540-51468-6