UNIT-5
Programming of Robots
Safety considerations of Robot
As industrial robots become more popular, many customers wonder whether robots are safe to
implement in their facility. Although an industrial robot will improve the ergonomic conditions
in a production area, there is a perception that the robot will create an unsafe work environment.
This perception is fueled by the robots open programmability in terms of speed and direction,
which appears impossible to control.
Human Errors
Human error occurs in day-to-day activity and this is no different with regard to a robotic work
cell. Whether it is programming, preventative maintenance, or teach pendant control, operators
have the potential to place themselves in hazardous positions due to over familiarity or lack of
knowledge of the robot’s motion path.
Control Errors
Errors in the controls software and hardware can lead to hazards within a robotic work cell. If
the controls system faults, the system response may lead to a dangerous working environment
if it is closely coupled with human interaction.
Unauthorized Access
Access by an unauthorized operator into a safeguarded robotic work cell. If an operator is
unfamiliar with the safety hardware associated with the robotic work cell, they can find
themselves in a dangerous and potentially fatal area.
Mechanical Failures
During the design and programming stages, mechanical part failure is not always taken into
account. When an unexpected failure occurs, this can lead to a potentially hazardous situation
for the operator.
Environmental Sources
Outside factors and communication interference can create an undesirable effect on a robotic
work cell. Unsuppressed power surges or power loss can lead to injury if they are not planned
for during the initial stages of the project.
Power Systems
Power sources that have communication to the robotic cell can be disrupted and lead to
undesired actions. This can produce a release of energy, creating a hazardous environment for
an operator.
Improper Installation
Any time an industrial robot is installed it is vital to the success of the project and safety of the
operators that the system is installed correctly before it is fully operational. If the robotic work
cell is incorrectly setup, future hazards may occur due to variance from the original design.
Programming Environment
ACT is a system designed to plan and to monitor robot motions using a geometric
representation of the environment. ACT is based on the esperieiice acquired by several
members of our team during the nialiing of similar systems: Rhomeo [l], IIandey [SI and Sharp
[ll].Our goal was to use this knowledge to desigil a imv and possibly better system which could
be used ill industrial applications as well as a software basis to develop new robot programming
techniques in the academic environment. In the sequel we will present the technical choices we
made to achieve our goals arid the most technically innovative part of the system.
ACT can be used either as an on-line or as an off-line programming system. In the off-line
mode, Act can be seen as a classical robot simulator with various motion planners. In the
current version of the system two motion planners have been implemented: one uses a local
method which can plan paths for robots with many degree of freedom, the other uses a global
representation of the configuration space. The robot simulator includes a geometric modeler to
model the robot environment and functions to simulate the motions of the robots on an ltigli
speed graphic display.
In the on-line mode Act is connected to a dedicated robot controller running Kali [lo] through
an Etliernet link. Synchronisation mechanisms insure the coherence between the display and
the actual scene. In this mode it is possible to monitor an actual motion of arms on the screen,
and, to execute a path while it is computed by the local motion planner. ACT is written in C, it
runs on Silicon Graphics with GL as the graphic interface. A connection to a real-time robot
controller has been implemented. The robot controller is made of 4 CPU boards plugged on
VME bus with WIND as the real time operating system. VxWorks has been used as a
development system and KALI as the library of functions to control the arnis. The connection
between the work start ion iind lie robot controller is made through TCP/IP.
ACT can be considered as a shell to implement robot planers since it allows to build any model
of the environment dedicated to a particular planner from a general lierne. This kernel includes
several types of geometric representation to describe parts. It allows to model complex robot
architectures. Using this facility two planners have already been implemented within ACT: a
local path planner and a global path planner.
Robot Programming Methods
Programming an industrial robot is no longer just about coding instructions using a low-level
programming language. As the technology behind robotics continues to evolve, new
programming methods meant to make it easier for end-users have emerged. Today, three main
methods are used to issue instructions to modern robots, namely:
The Teach Method
This method involves using a teach pendant to guide the robot through a series of points and
having it store them in memory. The process of guiding and recording these points or
coordinates in space is called teaching in robotics.
A majority of modern industrial robots in the market today come with a teach pendant that
allows even non-engineers to guide the robot and program it to perform a set of functions as
desired. Modern teach pendants are just custom applications loaded into a special tablet or
touchscreen device. It is the most intuitive and preferred way to program and reprogram
industrial robots today.
Some of the reasons why this method is preferred to others include:
Precision- The operator can input very precise points or coordinates into the teaching pendant
thus making it easier to ensure that the robot arm works as expected.
Safety- As a result of the precision, it’s easier to ensure that the robot arm and other moving
parts will stay within a predefined space for safety purposes. This is especially important for
robots that have safety stop or collision detection as a feature.
Intuitiveness- Modern tablet-operated teaching systems are quite intuitive that robotics
engineers may not be required to program or reprogram the industrial robots.
Teaching pendants may have evolved but they have been around in different forms over the
lifetime of industrial robots. This means operators have an easier time programming a modern
industrial robot using the teaching method as compared to others.
The only downside to using the teaching method is the limited number of instructions you can
issue to a robot. The method restricts you from teaching the robot a predefined set of
movements and does not allow for additional instructions to improve efficiency or react to
changing situations.
2. Hand Guiding/Lead-Through Programming
Hand hiding or lead-through programming involves physically moving the robot arm over a
series of points and axis to “teach” it how to perform a desired function. For instance, an
operator can guide a robot on how to reach for a tool on a workstation and use it to do some
operation. After the instructions have been recorded by the robot’s memory, it will continue
following the same path on its own.
Hand guiding is especially preferred for smaller modern robots that are designed to work
alongside human operators. These robots can be taught to do very complex tasks such as
painting, sorting items, precision welding, engraving, etc.
Some of the advantages of lead-through or hand guiding include:
Intuitiveness
Safety
Collaboration
Great for complex tasks or movements
However, hand guiding fails as a programming method when precision is required. It is also
not practical to use this method for large industrial robots that are not designed to work
alongside humans. The method is the most preferred for modern collaborative robots used in
smaller industrial setups.
3. Offline Robot Programming
As the name suggests, this robot programming method involves writing instructions on a
separate system and using virtual models of an industrial robot for testing. After the instructions
have been written and tested, they are uploaded to the robot’s memory. This method is
preferred where a lot of instructions need to be written and tested before being deployed in real
life.
Some of the advantages of offline programming include:
Allows for more complexity
Can lead to more efficient robot operation
Supports precision
Guarantees safety
Offline programming can be technical and therefore not suitable for non-engineers who do not
understand low-level robotics programming or coding. All programming methods are very
much in use today in most industries. The method you choose may come down to the type of
robot you are programming and what you want to do with it.
Robot Language Structure
Ref: Mikell and Groover, Industrial Robotics – Technology, Programming and Applicatio
S . I N
T U N OTE
K
Diagrammatic representation of robotic system 8
Downloaded from [Link]
Operating Systems
• Operating system is a mechanism that allows the user
to
write a new program or edit an existing program or to
execute a program.
• It facilitate the operation of the robot by the user and
to
maximize the performance and efficiency and
associated E S . I N
U N O T
peripheral devices. K T
It must contain 3 basic modes of operation:
1. Monitor Mode – Supervisory
2. Run Mode – Execution of program
3. Edit Mode – Debugging
9
Downloaded from [Link]
• Monitor mode is used to accomplish overall supervisory
control.
• It also known as supervisory mode.
• In this mode, the user can define the location in space using
the
teach pendant.
• user can set the speed, store programs, transfer programs
from
storage memory to control O E
memoryS . I N
and switch between
U N T
other K T
modes such as edit or run modes.
• Run mode is for Execution of a robot program which is
already
written.
• The robot will be performing certain tasks through a
sequence of 10
instructions. Downloaded from [Link]
• Edit Mode provides an instruction set that allows the user
to
write new programs or to edit the existing programs.
• The editing will be based of the debugging done during the
run
mode.
• Editing includes adding of new instructions, deleting or
changing . I N
the parameter values etc. O T E S
KTU N
• The robot languages can be processed using either an
Interpreter or by a compiler.
Interpreter: Line by line execution of source program: E.g.
VAL
Compiler: Execute the source program as a whole: E.g. MCL
• Processing by interpreter is more easy to debug and edit11
Downloaded from [Link]
Robot Language Elements & Functions
Various basic elements and function that should be
incorporated into the language to enable the robot to perform
tasks:
• Constants, Variables & other Data Objects
• Motion Commands
• End Effectors & Sensor Commands
• Computations & Operations
E S . I N
• Program Control &T U N O T
Subroutines
K
• Communications & Data Processing
• Monitor Mode Commands
12
Downloaded from [Link]
Constants, Variables & Other Data Objects
• Constant: Value that does not change during the
execution of a program
• Variable: It is a symbol or symbolic name whose value
does changes during the execution of the program
• Constants & Variables are real numbers
• Range of values depends O onT E
the S . I N
computer/language
• The bit capacity K T U N
of the CPU determines the range
• String: Sequence of 8 bit alphanumeric characters or
symbols surrounded by a marker ‘ ’
E.g. ‘robot’
13
Downloaded from [Link]
Aggregates & Location Variables
• Aggregate: An ordered set of constants or variables
E.g. In AML language, aggregate is written inside <>
symbol and each element is separated by comma
<50.232, 56.211, sample>
<‘hai’, ‘class’, ‘work’ >
S . I N
• TUN
Mainly used to specify OTE
joint coordinate values in robots
K
14
Downloaded from [Link]
Defining Points in workspace
• For the movement of robot in workspace, programmer
has to define the coordinate points.
• This can be done using the teach pendant and writing
commands in the program.
DEFINE A1 = POINT<50.32, 56.1, 14.2,IN
2.5, 56.7>
T E S .
HERE A1 U N O
KT
DEFINE : For defining the point with name A1. First three
values defines the position of wrist w.r.t to x,y and z
axes and the remaining represents the rotation
HERE : For moving the robot to the defined point A1
15
Downloaded from [Link]
Path and Frame
• Several points can be connected together to define a path
in workspace.
DEFINE PATH1 = PATH(A1, A2,A3, A4)
MOVE PATH1
• For using the points A1, A2,A3 and A4, it should be
previously defined using the POINT function.
S . I N
• Defining movementT U N
w.r.t
OTE
to a frame
K
DEFINE FRAME1 = FRAME(A1, A2,A3)
16
Downloaded from [Link]
Motion Commands
• Used for controlling the movement of the manipulator arm.
• Uses “MOVE” Command
• MOVES: S in the command is to move in straight line
• This causes the end effecter to move from present
position to the defined position (Absolute Move)
MOVE A1 VIA A2
• The command tells the robot to move . I its arm to point A1
N
through the point A2. O T E S
K T U N
• APPRO: Used to move the end effector to the vicinity of
the
point along z axis.
• DEPART: Used to move end effector away from the point
A1.
17
Downloaded from [Link]
• Sample Program: Pick and Place application
APPRO A1, 50
MOVES A1
SIGNAL (to close gripper)
DEPART 50
• Incremental Move: Required to define
E S . I Ndirection and
distance to U N O T
move. K T
Eg:
DMOVE(1,10) joint 1 is moved 10 units
DMOVE(<4,5,6>,<30,-60,90>) move on axes 4,5 and 6 by
o o o
30 , -60 , 90 respectively
DMOVE: IncrementalDownloaded
or Deltafrom
move
[Link]
18
Speed Control
• Speed command is used to define the velocity of the
robotic
arm movement.
SPEED 60 IPS
Speed of the end effector should be 60 inch per second
S . I N
T
• If no unit is specifiedU N OTE
K for the speed
SPEED 60
Robot will move at a speed of 60% of its normal speed of
operation
19
Downloaded from [Link]
End Effector & Sensor Commands
End effector commands for Grippers
• OPEN and CLOSE commands are used to control the
end effector. Happens during execution of next motion.
• OPENI and CLOSEI, used to control it immediately.
E.g.
• Closing the gripper to an opening of . I 40mm
N
T E S
CLOSE 40 MMTUNO
K
• Closing the gripper to an opening of 1.575 inch
CLOSE 1.575 IN
• Grippers with force sensors can be used to provide a
particular force to the object using command
CLOSE 3.0 LB
Here 3LB gripping force is applied
20
Downloaded from [Link]
End effector commands for Tools
• Used when powered tools are connected as end effector
instead of grippers.
• OPERATE statement is used for controlling the tool.
Example: powered screw driver
1. OPERATE TOOL (SPEED = 125 RPM)
2. OPERATE TOOL (TORQUE = 5 IN LB)
3. OPERATE TOOL (TIMET=E5S .IN
SEC)
U N O
KTtells the tool to rotate at speed of 125
The first statement
rotation per minute.
Second statement tells it to rotate at a torque of 5 inch lb
Third statement is for rotating the tools for 5 seconds,
after that the operation will terminate.
21
Downloaded from [Link]
Sensor Operation
• Statements that are used to get the output from sensors
and to
out the signals from microcontroller.
SIGNAL: instruct the robot controller to output a signal
WAIT: instruct the robot to wait at its current location until
it N
S . I
receives a signal. NOTE
K T U
It can be used for getting the feedback signal
E.g. 1
1. Different ports or lines of the robot controller can be
turned ON or OFF using the signal command.
SIGNAL 3, ON output port 3 is turned ON
------------------- execution of different command
------------------- Downloaded from [Link] 22
E.g. 2:
Setting analog voltages at the ports of the controller.
For this separate ports has to assigned on the controller.
SIGNAL 105, 4.5
This command will set a 4.5 volt analog signal at the 105th
S . I N
port of the controller. NOTE
KTU
23
Downloaded from [Link]
• It is possible to define the port number using variable
names for easy understanding.
E.g. Port 5 is set as output port and is connected to a
motor and port 15 is set as input port and is connected
to get signal from a sensor.
DEFINE MOTOR1 = OUTPORT 5
DEFINE SENSOR1 = INPORT 15
SIGNAL MOTOR1, ON OTE S . I N
K ONT U N
WAIT SENSOR1,
----------------------------------------
----------------------------------------
SIGNAL MOTOR1, OFF
WAIT SENSOR1, OFF
24
Downloaded from [Link]