21-10-2016, 09:34 AM
1460258111-01Robotics.pdf (Size: 800.6 KB / Downloads: 11)
INTRODUCTION
1.1. General principles of robot control
A robot is the main component of a flexible production system (FPS). Other components of
this system are machine tools, transport machines, control devices, and different auxiliary
elements. A flexible production system is an automatically operating production system that
can be easily reprogrammed and adapted to manufacture different products. Robot centered
modules of FPS, called robot modules or robot systems are intended for specified
technological operations like welding, surface coating, packaging, etc. The robot module
includes one or more robots (with manipulators and control devices), pallets for details or
products, auxiliary positioning, transport devices, etc. Therefore, robot control means control
of a complete robot module and a certain part of the production process. Fig. 1.1 shows main
hardware and software components of the IRB1600 robot from ABB.
Hardware of the control system of the robot IRB 1600 is a multiprocessor system with
different types of memory, e.g. reprogrammable Flash memory and hard disc memory.
Because of higher reliability for the power supply of this system, an uninterruptible power
supply (UPS) device is used.
Software used for robot control has an object oriented structure. For ABB robots the
RobotWare software products and high level programming language RAPID is used.
4
The control device of the ABB IRB robot, IRC5 is located in a separate cabinet, that can be
completed with one or more drive modules or a technological control module. For example,
Fig. 1.2 shows the robot’s system consisting of three manipulators, controlled by three drive
modules and a central control module. Fig. 1.3 shows the robot control cabinet with a spot
welding control section.
Control Module contains all electronic control devices for the control of a robot system
including the main control computer of a robot or a central controller.
Drive Module contains power electronics of electrical drives. In the case of multimanipulator
or so called Multi-Move system, several drive modules will be used.
RobotWare software is stored on a CD-disk memory and consists of software components
needed for robot adjustment, control and maintenance.
Robot documentation is the electronically stored technical information on a CD-disk,
consisting of installation, application and safety information for robot users.
Robot system software is stored in the controller memory and will be used for operation
control of a robot system. Software can be loaded to the controller memory from the server
computer via the local area network (LAN).
FlexPendant is connected to the robot’s controller and used for robot manual programming
and control. FlexPendant has a color touch screen, a joystick and only 8 hardware push
buttons for robot control.
RobotStudio Online is the multi-functional base software package for a personal computer,
used for robot control in combination with hardware control from FlexPendant. This package
can be installed in an ordinary personal computer and it complies with Windows 2000 or later
versions. Normally it will be installed a first to a notebook computer and then to the network
server. It is used for initial configuration of a robot system and for loading of all software
components to the central controller. Mainly, RobotStudio Online is used for text based
programming and control of a robot system. The software helps to compose complex
programs with a high number of complex logical structures.
Calibrating data are stored to disk memory and used for the adjustment of absolute positions
of the manipulator and the full robot system in the case of special technological options
(absolute accuracy option only).
Network server is used for storage and maintenance of software (e.g. RobotWare) and
documentation files of a robot system. A server computer duplicates the functions of a
notebook computer and in some cases one computer can be used for both. A robot system can
operate without a server computer if there is no data exchange between the server and the
controller. Normally a server computer is connected via Ethernet network to one or more
controller adapters. The software of a robot system can be stored and used for programming
with the help of a notebook computer as well as with a server computer.
RobotWare license key is a special code defined and used by a robot producer. Without this
code the use of a robot is impossible.
6
1.2. The description of robot motion
The main function of a robot control software (e.g. RobotWare) is the motion control of a
robot. The motion of robot’s manipulator joints, the tool or the gripper can be described in
different coordinate systems. These coordinate systems are used for the realization of several
control functions, including off-line programming, program adjustment, coordination of the
motion of several robots or a robot and additional servodrives, jogging motion, copy of
programs from one robot to another, etc.
The main coordinate systems used to describe the motion of a robot are shown in Fig. 1.4. In
the motion control the control of the gripper or tool motion is the most important. Because
different types of grippers and tools have different dimensions, a special point, not depending
on the type of the tool and called tool centre point (TCP) is selected. This point is the origin
point of the tool coordinate system. A similar point can be used to describe the gripper or the
wrist coordinate system. The mutual connections of a tool,
The position of the robot and its movements are always related to the tool centre point
(TCP). This point is normally defined as being somewhere on the tool, e.g. on top of the
welding electrode or at the centre of a gripper. When a position is recorded, it is the position
of the TCP that is recorded. This is also the point that moves along a given path at a given
velocity.
7
If the robot holding a work object and is working on a stationary tool, a stationary TCP is
used. If that tool is active, the programmed path and speed are related to the work object.
Tool coordinate system The orientation of a tool at a programmed position is given by the
orientation of the tool coordinate system. The tool coordinate system refers to the wrist
coordinate system, defined at the mounting flange on the wrist of the robot. The tool mounted
on the mounting flange of the robot often requires its own coordinate system to enable the
definition of its TCP, which is the origin of the tool coordinate system (Fig. 1.5, a). The tool
coordinate system can also be used to get appropriate motion directions when jogging the
robot. If a tool is damaged or replaced, the tool coordinate system must be redefined.
Wrist coordinate system In a simple application, the wrist coordinate system can be used to
define the orientation of the tool; here the z-axis is coincident with axis 6 of the robot (Fig.
1.5, b). The wrist coordinate system cannot be changed and is always the same as the
mounting flange of the robot in the following respects: The origin is situated at the centre of
the mounting flange (on the mounting surface). The x-axis points in the opposite direction,
towards the control hole of the mounting flange. The z-axis points outwards, at right angles to
the mounting flange.
Programmed motion of a robot
A robot has the following types of programmed movements:
- Joint motion (joint interpolation) is the independent movements of joints to the destination
position. Reaching the position happens at the same time moment.
- Linear motion (linear interpolation). The TCP is moving along a straight line.
- Circle motion (circular interpolation). The tool centre point is moving along a circle.
Joint interpolation
When the accuracy of the path is not too important, this type of motion is used to move the
tool quickly from one position to another. Joint interpolation also allows an axis to move from
any location to another within its working space in a single movement. All axes move from
the start point to the destination point at constant axis velocity. The velocity of the tool centre
point is expressed in mm/s (in the object coordinate system). As interpolation takes place
axis-by-axis, the velocity will not be exactly the programmed value.
During interpolation, the velocity of the limiting axis, i.e. the axis that travels fastest relative
to its maximum velocity in order to carry out the movement, is determined. Then the
velocities of the remaining axes are calculated so that all axes reach the destination point at
12
the same time. All axes are coordinated in order to obtain a path that is independent of the
velocity. Acceleration is automatically optimized to the max performance of the robot.
Linear interpolation
During linear interpolation, the TCP travels along a straight line between the start and
destination points. To obtain a linear path in the object coordinate system, the robot axes must
follow a non-linear path in the axis space. The more non-linear the configuration of the robot
is, the more accelerations and decelerations are required to make the tool move in a straight
line and to obtain the desired tool orientation. If the configuration is extremely non-linear (e.g.
in the proximity of wrist and arm singularities), one or more of the axes will require more
torque than the motors can give. In this case, the velocity of all axes will automatically be
reduced.
The orientation of the tool remains constant during the entire movement unless a reorientation
has been programmed. If the tool is re-orientated, it is rotated at constant velocity. A
maximum rotational velocity (in degrees per second) can be specified when rotating the tool.
If this is set to a low value, reorientation will be smooth, irrespective of the velocity defined
for the tool centre point. If it is a high value, the reorientation velocity is only limited by the
maximum motor speeds. As long as no motor exceeds the limit for the torque, the defined
velocity will be maintained. If, on the other hand, one of the motors exceeds the current limit,
the velocity of the entire movement (with respect to both the position and the orientation) will
be reduced. All axes are coordinated in order to obtain a path that is independent of the
velocity. Acceleration is optimized automatically.
Circular interpolation
The trajectory circular interpolation is used for tool motion as well as for interpolation near
the intermediate via points of nonlinear trajectory. A circular path is defined using three
programmed positions that define a circle segment. The first point to be programmed is the
start of the circle segment. The next point is a support point (circle point) used to define the
curvature of the circle, and the third point denotes the end of the circle. The three
programmed points should be dispersed at regular intervals along the arc of the circle to make
this as accurate as possible. The orientation defined for the support point is used to select
between the short and the long twist for the orientation from the start to the destination point.
If the programmed orientation is the same relative to the circle at the start and the destination
points, and the orientation at the support is close to the same orientation relative to the circle,
the orientation of the tool will remain constant relative to the path.
Soft servo
In some applications there is a need for a servo, which acts like a mechanical spring. This
means that the force from the robot on the work object is a function of the distance between
the programmed position and the contact position (e.g., distance between the robot tool and
work object).
The relationship between the position deviation and the force is defined by a parameter called
softness. The higher the softness parameter, the larger the position deviation required to
obtain the same force.
The softness parameter is set in the program and it is possible to give softness values for all
joint drives, including additional servo drives of robot system. The use of the softness
parameter gives the flexibility to the robot hand and excludes the break of the tool or
workpiece in the case of collision. With high softness values there is a risk that the servo
13
position deviations may be so large that the axes will move outside the working range of the
robot.
Jogging is a low speed manually controlled motion. The jogging motion of a robot can be
manually controlled in the following ways:
− motion axis-by-axis, i.e. one axis at a time
− linear motion. The tool centre point is moving linearly in the coordinate system
− modified motion around the tool centre
In the case of incremental jogging the step size can be selected. The incremental jogging
movement allows an exact positioning of the TCP because during manual control by the
joystick of the robot the manipulator moves very slowly with very short steps.
During manual control with FlexPendant, location information can be displayed for the
manipulator as well as for additional servos of the robot system.
Singularities
Some positions in the robot working space can be attained using an infinite number of robot
configurations to position and orient the tool. These positions, known as singular points
(singularities), constitute a problem when calculating the robot arm angles based on the
position and orientation of the tool.
Generally, a robot has two types of singularities: arm singularities and wrist singularities. Arm
singularities are all configurations where the wrist centre (the intersection of axes 4, 5, and 6)
ends up directly above axis 1 (Fig. 1.11). Wrist singularities are configurations where axes 4
and 6 are on the same line, i.e. axis 5 has an angle equal to 0.
Operation with high inertia
Using the dynamical modeling and the dynamic model of a manipulator drive helps us to
work if the load has high inertia. The drive parameter is to be adjusted accordingly to the load
inertia. This function helps us also in the case of transportations of large resilient objects. The
adjustment of drive’s dynamical parameters allows one to avoid mechanical oscillations
during the transportation of resilient objects. The dynamic modeling is based on automatic
load detection.
A robot has the function of automatic load identification that allows adjusting parameters of
drive’s dynamic model according to the load torques and forces. As the result of using this
function, the robot system has higher reliability and life time. During the installation of the
robot there is no need to have detailed measurements or calculations of the load. For example,
the function of automatic load detection is used to control different ABB robots (IRB 140,
1400, 1600, 2400, 4400, 6400RF, etc).
Motion supervision function is activated only in the case of a moving robot. Otherwise, the
function is deactivated.
Additional degrees of freedom (DOF) and additional motors
Additional servos giving additional degrees of freedom for robot operation can be added to
the robot system. The robot’s control system can control additional servo drives of added
mechanisms. The motion of a robot and additional mechanisms will be coordinated by
common programming.
Development environment for robotics - virtual robotics
High speed of operation and large memory capacities of modern computers allow generating
and using of virtual environments for industry automation. These virtual environments
include virtual programming and operation of machine tools and robots. The operation of
virtual robots in a virtual environment is based on the same software and on the same
programs as the operation of real robots in a real environment. The programming of different
production operations, for example, arc welding, spot welding, assembly, cleaning, spraying,
cutting, deburring, gravity die casting, grinding, polishing, machine tending, handling,
painting, packing or palletizing will be made in a virtual environment for virtual robots. After
the transfer of programs from a virtual to a real environment the real robots will start to work.
That kind of virtual robotics environment allows the development of new robot systems,
selecting and programming robots long before the real robot system will be developed,
transported and installed. The composition of programs and their debugging in a virtual
environment cuts sufficiently the time for preparing the robot system and guarantees higher
reliability of the system.
An example of the virtual robotics development environment is the COSIMIR (cell oriented
simulation of industrial robots) used for robot simulation in flexible manufacturing system
(FMS) (http://www.cosimir). Development environment COSIMIR is used for the
simulation of Festo robots, but it is also used by other companies. Similar to the COSIMIR
simulation environment are also Camelot ROPSIM, developed in Denmark, and Robot
Studio Online, developed by ABB Company (Fig. 1.13). The upper part of the figure shows
the Festo COSIMIR environment and the lower part the ABB RobotStudio environment.
Development software COSIMIR, Camelot ROPSIM and RobotStudio are be considered to the
new field of robotics - virtual robotics. In the virtual robotics environment different complex
production systems with several robots can be developed and programmed. For example, with
the help of ABB RobotStudio MultiMove system motion planning, programming and
operating of multi-robot system from one controller are possible.
In the case of automation of an arc welding operation using robot, the geometry of welding
trajectory is defined first. In the second phase, technological parameters, such as the slope of
the welding electrode, parameters of welding junction, angles of turning, conditions of
starting and finishing are determined.
Modern robotics software includes standard technological packages for production tasks. For
example, ABB has a software package ArcWeld PowerPac that automatically generates
welding programs based on geometrical dimensions of trajectory and welding objects
(technological documentation), defines right directions for the welding electrode during the
welding process as well as during starting and finishing of this. It is taking into consideration
all the limitations of manipulator motion (including singularities) and will inform the user
about possible problems during the technological process.
Programming of robots and robot programming languages
All robot programming methods can be divided into two groups: manual and automatic
programming methods. The manual programming of robots (Fig. 1.15) can be divided into
text-based programming and graphical programming methods. Text based programming is the
programming in robot programming languages that can be divided in relation to language
structure and commands. Robot program is based on the sequence of robot commands. The
program algorithm includes different subroutines, cycles and branches of command
sequences. In terms of the character of robot commands and program structure, robot
programming languages are divided into device-based, procedure-based and behaviour-based
languages. To create better images of robot technological operation and more convenient
programming, during last years, more attention has been paid to graphical programming
methods. In this case the program is given with algorithm flow diagrams, graph schemes, or
functional schemes. In many cases, the graphical programming, comparison with text based
programming, needs shorter time for learning and program generation.
The automatic programming of robots is based on learning systems, demonstration systems or
instructive systems. As the result of automatic programming robot generates work program
for robot action. In the case of industrial robots, the programming by demonstration, using
teach pendant, is more common. The demonstrated by operator reference trajectory for the
manipulator, will be automatically stored to robot’s memory and will be later exactly
executed by the programmed control of the robot.
Robot’s programming languages
The robot system development environment COSIMIR® Professional supports programming
in different robot languages. Some of the languages are specialized for a defined type of a
robot, but others are universal languages and allow programming of several robot types.
Examples of robot programming languages are: Industrial Robot Language (shortly IRL),
VAL developed by Unimation Company, Kuka Robot Language (KRL) developed by Kuka
Company, RAPID developed by ABB, Movemaster Command (MRL) and MELFA Basic,
Bosch Automatisierungsprogrammiersprache (BAPS), developed by Bosch Company, and
robot languages Simple Robot Programming Language (SRPL), V+ etc.
In the Laboratory of Industry Automation of the Department of Electrical Drives and Power
Electronics at Tallinn University of Technology, the programming languages Movemaster
Command (MRL) and MELFA Basic for programming of Mitsubishi robots are used. For
programming of an ABB robot, in the Laboratory of Robotics, the robot language RAPID is
used.
Work planning
Work operations are planned in the first stage of robot programming
general planning of the production task and the determination of robot’s role
description of the production process with flow diagrams to specify the concrete working
tasks for the robot and other machines in the robot system, including:
− decomposition of the working process and definition of detailed working operations
− definition of position
− definition of input and output signals
− composition of algorithm diagrams, subroutines, routines and program modules for
a robot
For robot programming the following software objects are defined:
Program module
Each program module contains data and routines for a certain purpose. The program is
divided into modules mainly to enhance overview and facilitate handling of the program.
Each module typically represents one particular robot action or a similar one. All program
modules will be removed when deleting a program from the controller program memory.
Program modules are usually written by the user.
Data
Data are values and definitions set in the program or system modules. The data are refined to
by the instructions in the same module or in a number of modules (availability depending on
data type).