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

Unit-4

Robot programming involves defining a series of actions for robots to perform tasks autonomously, with key concepts including degrees of freedom, end-effectors, and configurations. Various programming techniques such as online, lead-through, walk-through, offline, and task-level programming are utilized, each with its advantages and disadvantages. Additionally, robot programming languages fall into three categories: specialized languages, general-purpose languages with robot libraries, and extensions of existing languages, enabling robots to interact with their environment and execute commands.

Uploaded by

Shubh Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1 views

Unit-4

Robot programming involves defining a series of actions for robots to perform tasks autonomously, with key concepts including degrees of freedom, end-effectors, and configurations. Various programming techniques such as online, lead-through, walk-through, offline, and task-level programming are utilized, each with its advantages and disadvantages. Additionally, robot programming languages fall into three categories: specialized languages, general-purpose languages with robot libraries, and extensions of existing languages, enabling robots to interact with their environment and execute commands.

Uploaded by

Shubh Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 66

Robot Programming

§ Programming is the identification and


specification of a series of basic actions which,
when executed in the specified order, achieve
some specific task or realize some specific
process.
§ Robot Programming is the defining of desired
motions so that the robot may perform them
without human intervention.
Robot Programming

Review: Some Definitions


§ D o F : T h e d e g re e s o f f re e d o m [ d e g r e e s o f
mobility] of the robot will be numbered as q1, q2, q3
etc.
§ Usually industrial robot arms have between 4
and 6 degrees of freedom, one at each joint.
§ End-effector: The end of the robot arm, where
the gripper or other tool that the robots uses is
located, we will define as the end-point (Pe) of the
robot.
Robot Programming

§ If, for example, the robot has a two finger gripper, to pick
things up with, we usually define Pe to be a point between
the two fingers, so that when this point is geometrically
inside some object to be picked up, all the robot has to do
is to close the fingers of its gripper to grasp the object. It
can then move away with the object between its fingers.
Robot Programming

Pose: both the position of Pe in space, and


its orientation
§ It is not sufficient for Pe just to be defined as a
point, we also need to attach or (conceptually)
fix a coordinate system to it, so that we can
define both the position of P e in space, and its
orientation (together they define the object
pose).
Robot Programming

Base Frame: The position and orientation of P e must be


defined with respect to some global frame of reference, some
global coordinate system. For this we usually use a frame of
reference fixed to the base of the robot, which should not
move.
§ NOTE: The position and orientation of Pe in the work space
of the robot are determined by the values of the joint
positions of the arm—q1, q2, q3,etc.
Robot Programming

Configuration: Any particular positio n an d


orientation of Pe in space, and so any particular set
of joint values, is called a configuration of the
robot arm.
Robot Programming

Robot Programming is the defining of


desired motions so that the robot may
perform them without human intervention.
§ identifying and specifying the robot
configurations (i.e. the pose of the end-effector,
Pe, with respect to the base-frame)
§ A robot program can be defined as a path in space to
be followed by the manipulator, combined with
peripheral actions that support the work cycle.
§ The process of robot programming includes teaching it
the task to be performed, storing the program,
executing the program, and debugging it.
Robot Programming Techniques

§ A number of different techniques are used to program


robots. The principal task of robot programming is to
control the motions and actions of the manipulator.
§ A robot is programmed by entering the programming
commands into its controller memory. The methods of
entering the commands are:
1. Online programming
2. Lead-through programming
3. Walk-through programming
4. Offline programming
5. Task programming
ONLINE PROGRAMMING

§ Online programming takes


place at the site of
production itself and involves
the workcell.
§ Online programming
systems uses a teach
pendant to direct the robot’s
movement.
§ Position data and functional
information are “taught” to
the robot, and a new
program is written.
§ Taught data is stored in the
pendant’s memory then
transferred to the robot’s
controller.
ONLINE PROGRAMMING

Advantages
§ Easily accessible.
§ The robot is programmed in concordance with the actual position
of equipment and pieces.

Disadvantages
§ Unavailability of robot for production during programming phase.
§ Slow movement of the robot while programming.
§ Time consuming process.
§ Program logic and calculations are hard to program.
§ Suspension of production while programming.
§ Cost equivalent to production value.
§ Inefficient in flexible manufacturing system.
The Teach Pendant (Manual Control
Pendant)

The teach pendant has


the following primary
functions:
§ Serve as the primary
point of control for
initiating and
m o n i t o r i n g
operations.
§ Guide the robot or
motion device, while
teaching locations.
§ Support application
programs.
The Teach Pendant (Manual Control
Pendant)
LEADTHROUGH PROGRAMMING

§ Leadthrough programming requires the operator to


move the robot arm through the desired motion path
during a teach procedure, thereby entering the program
into the controller memory for subsequent playback.
§ There are two methods of performing the leadthrough
teach procedure:
1) Powered leadthrough
2) Manual leadthrough
The difference between the two is the manner in which the
manipulator is moved through the motion cycle.
LEADTHROUGH PROGRAMMING

Advantages
§ Easy to program: shop personnel can readily learn it and does not
require deeper programming experience.

Disadvantages
§ Interruption in production.
§ Teach pendant have limitations in the amount of decision making
logic that can be incorporated in the program.
§ No interface to other computer subsystems in the factory.
WALK-THROUGH PROGRAMMING

§ In walk-through programming, the teacher physically moves


(“walks”) the robot through the desired positions within the robot’s
working envelope.
§ During this time, the robot’s controller may scan and store
coordinate values on a fixed-time interval basis.
§ These values and other functional information are replayed in the
automatic mode. This may be at a different speed than that used in
the walk-through.
WALK-THROUGH PROGRAMMING

Advantages
§ This type of walk-through programming uses triggers on manual
handles that move the robot. When the trigger is depressed the
controller remembers the position.

Disadvantages
§ With the walk-through method of programming, the person doing
the teaching is in a potentially hazardous position because the
operational safeguarding devices are deactivated or inoperative.
OFFLINE PROGRAMMING

§ Offline programming is
accomplished on computers
located away from the robot
station.
§ Using simulation software,
data is generated and then
sent to the robot’s controller
where it is translated into
instructions.
§ The advantage of this
programming method is that
programming can be done
whil e t he r obot i s s t i l l i n
production on the preceding
job.
OFFLINE PROGRAMMING

Advantages
§ Effective programming of program logics and calculations with
state of the art debugging facilities.
§ Locations are built according to models and this can mean that
programmers will have to fine tune programs online or utilize
sensors.
§ Effective programming of locations.
§ Verification of program through simulation and visualization.
§ Well documented through simulation model with appropriate
programs.
§ Reuse of existing CAD data.
§ Cost independent of production. Production can continue while
programming.
§ Process support tools, for instance, selection of welding
parameters.
OFFLINE PROGRAMMING

Disadvantages
§ Demands investment in an offline programming system.
§ Needs extensive training.
TASK LEVEL PROGRAMMING

§ Task level programming requires specifying goals for


the position of objects, rather than the motions of a
robot needed to achieve those goals.
§ A task level specification is meant to be totally robot
independent, no positions or paths that depend on robot
geometry are specified by the user.
§ Task level programming systems requires complete
geometric models of the environment and of the robot
as input.
MOTION PROGRAMMING

§ Motion programming with today’s robot languages


requires a combination of textual statements and
leadthrough techniques. Accordingly, this method of
programming is sometimes referred to as online/offline
programming.
§ The textual statements are used to describe the motion,
and the leadthrough methods are used to define the
position and orientation of the robot during and/or at the
end of the motion.
Robot Programming Techniques

§ Offline:
§ write a program using a text-based robot programming language
§ does not need access to the robot until its final testing and
implementation
§ On-line:
§ Use the robot to generate the program
§ Teaching/guiding the robot through a sequence of motions that
can then be executed repeatedly
§ Combination Programming:
§ Often programming is a combination of on-line and off-line
§ on-line to teach locations in space
§ off-line to define the task or “sequence of operations"
WAIT, SIGNAL & DELAY COMMANDS

§ All industrial robots are instructed to send signals or


wait for signals
§ These signals are called interlocks
§ Common form is to actuate end effectors
§ In grippers, its on or off or Binary
§ Grippers involve 2 interlocks – open & close
§ Feedback might be added to verify actuation
§ Communication with other devices is important.
WAIT, SIGNAL & DELAY COMMANDS

§ Example of unloading from press


– Stop robot entering before press is open
– Remove gripper before press closes
§ To do this we have 2 commands
SIGNAL M – instructs to O/P signal through M
WAIT N – robot should wait until I/P through N
WAIT, SIGNAL & DELAY
COMMANDS

Example of loading and


unloading
§ 8,8 – press
§ 1,8 – tote bin or collecting
tray
§ 1,1 & 8,1 will be safe
locations for waiting
§ Controller por t 1- 10 =
Output lines (SIGNAL)
§ 4-actuate press, 5 & 6 –
OPEN/CLOSE gripper
§ Controller port 11-20 =
Input lines (WAIT)
§ 11- indicates gripper is
open
WAIT, SIGNAL & DELAY
COMMANDS
WAIT, SIGNAL & DELAY
COMMANDS

§ DELAY
DELAY X SEC
Robot should wait X
seconds before going
into next step
BRANCHING/ SUBROUTINES

§ BRANCHING
• Controllers allow dividing a program into one or more
branches.
• Al l o w s p r o g r a m t o b e s u b d i vi d e d i n t o co n v e n i e n t
segments.
• It is also subroutines and can be identified by a name.
• Allows incoming signal to invoke branch.
• Usage of interrupt.
BRANCHING/ SUBROUTINES
BRANCHING/ SUBROUTINES
BRANCHING/ SUBROUTINES
BRANCHING/ SUBROUTINES
BRANCHING/ SUBROUTINES
BRANCHING/ SUBROUTINES
BRANCHING/ SUBROUTINES
Robot Programming Languages

§ Virtually all robots are programmed with some


kind of robot programming language. These
programming languages are used to command
the robot to move to certain locations, signal
outputs, and read inputs.
§ The programming language is what gives a robot
its flexibility and allows a robot to react to its
environment (through the use of sensors), and to
make decisions.
Robot Programming Languages

§ Robot programming languages fall into three basic


categories:
1) Specialized robot languages
These languages have been developed specifically for
robots. The commands found in these languages are mostly
motion commands with minimal logic statements available.
VAL is an example of this category.
2) Robot library for a new general-purpose language
These languages were created by first creating a new
general_x0002_purpose programming language and then
adding robot-specific commands to it.
KAREL language is an example of this type category.
Robot Programming Languages

3) Robot library for an existing computer language


These languages are developed by creating extensions to
popular computer programming languages. Consequently,
these languages closely resemble traditional computer
programming languages, and benefit from the power of
existing, widely used languages.
Robot script is an example of this type of language.
Robot Programming Languages

Generally, all the robot programs have three basic modes of


operation. They are:
§ Monitor mode: In this mode, the user defines the various
positions to be used in the program. These positions will
be taught using the teach pendant and stored into the
memory to be used in the program.
§ Editor mode: This mode is used by the user to write new
programs and edit the existing ones. In this mode, the
syntax checking will be done.
§ Run mode: This is the mode in which the robot is actually
executing the program. The robot is actually performing
the sequence of motions in the run mode.
Robot Programming Languages-
Types

The earliest methods for training a robot like mechanical


setup, point to-point path recording, and task lead through
did not use word-based languages.
Some of the high-level computer languages now used to
program robots are: Wave, AL, ACL, AML, APT, ARCL,
ZDRL, HELP, Karel, CAP1, MML, RIPL, MCL, RAIL, RPL,
ARMBASIC, Androtext, VAL, IBL, and Ladder Logic.
Robot Languages

WAVE (World Actions Visually Expressed)


W a ve w a s t h e f i r s t h i g h - l e v e l l a n g u a g e c r e a t e d f o r
programming a robot. Standford Artificial Laboratory
developed it in 1973.
AL (Arm Language)
The AL (Arm Language) high-level programming language
was developed at the robotics research center of Stanford
University.
ACL
The Advanced Command Language (ACL) is a robot
language that employs a user-friendly conversational
command environment. Yaskaua robots use it.
Robot Languages

AML (A Manufacturing Language)


AML is the programming language used for the control of
robots produced by IBM. AML is intended to provide a
complete interpreted computer language along with all of the
programming support typically associated with high-level
programming languages.
APT
The Automatically Programmed Tools (APT) language is a
computer language dealing with motion. Electronic Systems
Laboratory of MIT developed it in 1956.
Robot Languages

ARCL
ARCL (A Robot Control Language) was based on Pascal-like syntax. It
was a compiled language and the developed cross-compiler required
three passes before the executable code was ready to be downloaded
and executed in a robot.
An example of an ARCL-language command is MOVA (GRIP, HI, CONT,
MED), which opens the gripper on the robot.
ZDRL
ZDRL (Zhe Da Robot Language) was a motion-oriented robot language.
It was an interpretative system and the language was composed of
system commands and program instructions. ZDRL included 32 system
commands and 37 program instructions, and it contained capabilities for
program editing, file management, location-data teaching,program
executing, and program debugging.
Robot Languages

HELP
HELP is a high-level programming language developed for use with
General Electric’s Allegro assembly robot.
Karel
Karel, Karel 2, and Karel 3 are robot control languages used by some
FANUC robot controllers.
CAP 1
The Conversational Auto Programming 1 (CAP 1) robot language is used
by the FANUC 32-18-T Robot Controller.
Robot Languages

MML
§ MML was a model-based mobile robot language that was developed
at the University of California. It is a high-level offline programming
language, which contains functions for high-level sensor functions,
geometric model description and path planning, and others.
§ This language contains an important concept of slow and fast
functions, which architecture is essential for real-time control of robots.
A slow function is executed sequentially, while a fast function is
executed immediately.
§ The second important concept is the separation of the reference and
current posture, which makes precise and smooth motion control and
dynamic posture correction possible.
Robot Languages

RIPL
§ RIPL (Robot Independent Programming Language) is based on an
object-oriented Robot Independent Programming Environment [RIPE].
§ The RIPE computing architecture consists of a hierarchical
multiprocessor approach, which employs distributed general and
special-purpose processors.
§ This architecture enables the control of diverse complex subsystems
in real time while co-coordinating reliable communications between
them.

MCL
MCL is short for Manufacturing Control Language and was developed by
McDonnell Douglas for the U.S. Air Force’s ICAM project.
Robot Languages

RAIL
RAIL is a high-level programming language developed by Automatix for
use with robots and vision systems.
RPL
RPL is a high-level programming language developed by SRI and is used
to configure automated manufacturing systems.
ARMBASIC
ARMBASIC is an extension of the hobbyist computer language BASIC. It
was used with the Microbot Mini-Mover 5 educational robot.
Androtext
Androtext is a high-level computer language developed by Robotronic
Corporation to make commanding a personal robot easier.
Robot Languages

VAL
VAL stands for Variable Assembly Language. VAL is a high-level
programming language developed for PUMA lines of robots. The
programming language is similar to BASIC. It has a complete set of
vocabulary words for writing and editing robot programs.
IBL
§ IBL (Instruction Based Learning) is a method to train robots using
natural language instructions. IBL uses unconstrained language with a
learning robot system.
§ A robot is equipped with a set of primitive sensory motor procedures
such as turn left or follow the road that can be regarded as an
execution-level command language. The user’s verbal instructions are
converted into a new procedure and that procedure becomes a part of
the knowledge that the robot can use to learn increasingly complex
procedures.
Robot Languages

Ladder Logic
§ Ladder logic is a programming language designed to be
used by electricians. It closely resembles the relay logic
that appears on the inside lids or doors of dishwashers
and washing machines.
§ The only robots that use ladder logic programming are
those that come without a controller or with a
programmable logic controller.
Generations of Robotic Languages

First Generation Languages


§ Uses command statement and teach pendant
§ Manipulator motion, straight line interpolation, branching,
elementary sensor commands
§ Low to medium complexity
§ Example: VAL
Generations of Robotic Languages

Second Generation Languages


§ Also called structured program language
§ Example: AML, RAIL, VAL II
§ Make use of teach pendant to define location
§ Motion control
§ Advanced sensor capabilities
§ Limited intelligence
§ Communication and data processing
Generations of Robotic Languages

Future Generation Languages


§ Future-generation robot languages allow world modeling, i.e., they
should be model-based or task-based languages, rather than
specifying the details of every action the robot has to perform.
§ Here, the programmer will be able to include instructions in the
application program at a higher level than in an explicit robot-program
language.
§ The robot should have the knowledge of the environment and should
be able to develop a step-by-step procedure to perform a task based
on a stated objective of what needs to be achieved by a robot.
§ For example, the robot must understand a command like Tighten a
nut. For this command, the robot must find the nut and the spanner,
pick them up, and place them in an orderly fashion. Finally, it should
tighten the nut with the spanner.
Robot Language Structure
Robot Language Structure- Operating
system

§ Some means of permitting the user to determine the action


§ Monitor mode - supervisory control, speed control, store
program, transfer program, change mode
§ Run mode – execute robot program
§ Edit mode – write new program and edit existing program
§ Interpreter – a program in OS, executes each instruction
of source program
§ Compiler – passes through the entire program and pre-
translates all instructions into machine level code, that can
be read and executed by robot controller
Robot Language Elements and
Function

§ Constants and variables


• Character, string
• Numerical constants – integers and real numbers
• Aggregates and location variables
Robot Language Elements and
Function

§ Definition of points in the workspace


• Through Teach Pendant
– HERE A1

• Through typing
Robot Language Elements and
Function

§ Paths and frames


• DEFINE PATH1 = PATH(A1,A2,A3,A4)
• MOVE PATH1
• MOVES PATH1 (using straight line interpolation)
• DEFINE FRAME1 = FRAME(A1,A2,A3)
• DEFINE ROUTE:FRAME1=PATH(P1,P2,P3,P4,P5,P6,P7)
• MOVES ROUTE:FRAME1
Robot Language Elements and
Function

§ Motion command
MOVE and related statements
• MOVE A1 (move to point A1)
• MOVES A1 (with straight line interpolation)
• MOVE A1 VIA A2 (moves to A1 thru A2)
• APPRO A1, 20 (approach at axial offset)
• MOVES A1
• SIGNAL (to close gripper)
• DEPART 50
DMOVE (incremental move)
• DMOVE (1,10) {link 1 moves through 10 units}
• DMOVE (<4,5,6>,<30,-60,90>)
• MOVE ARM2 TO A1
Robot Language Elements and
Function

§ SPEED control
• SPEED 60 IPS {60 inches per sec}(defines speed unit
directly)
• SPEED 75 (defines speed as a % of max speed)
Robot Language Elements and
Function

§ END EFFECTOR AND SENSOR COMMANDS


End Effector command – Gripper
• OPEN or CLOSE (wait for next motion)
• OPENI or CLOSEI (immediate)
• CLOSE 40 MM or CLOSE 1.575 IN (int opening)
• CLOSE 3.0 LB (gripping force)
• CENTER (doesn’t move the object)
End Effector command – Tools
• OPERATE TOOL(SPEED = 125RPM)
• OPERATE TOOL (TORQUE = 5 IN LB)
• OPERATE TOOL (TIME = 10 SEC)
Robot Language Elements and
Function

§ SENSOR OPERATION
• SIGNAL 3, ON (binary output)
• SIGNAL 3, OFF (binary output)
• SIGNAL 105, 4.5 (analog voltage output)
Robot Language Elements and
Function
Example 1 of VAL II Program

§ Develop a program in VAL II to command a PUMA robot


to unload a cylindrical part of 10 mm diameter from
machine 1 positioned at point P1 and load the part on
machine 2 positioned at P2. The speed of robot motion is
40 in./s. However, because of safety precautions, the
speed is reduced to 10 in./s while moving to a machine for
an unloading or loading operation.
§ Solution
1. SIGNAL 5
2. SPEED 40 IPS
3. OPEN 100
4. APPRO PI, 50
Example 1 of VAL II Program

5. SPEED 10 IPS
6. MOVE PI
7. GRASP 10, 100
8. DEPART P1, 50
9. SPEED 40 IPS
10. APPRO P2, 50
11. SPEED 10 IPS
12. MOVEP2
13. BELOW
14. OPENI 100
15. ABOVE
16. DEPART P2, 50
17. STOP
Example 2 of VAL II Program

§ Suppose we want to drill 16 holes according to the pattern shown in


the Figure. The pendant procedure can be used to teach the 16
locations, but this would be quite time consuming and using the same
program in different robot installations would require all points to be
taught at each location. VAL II allows location adjustment under
computer control. Write VAL II program for this case.
Example 2 of VAL II Program

§ Solution
The program allows all holes to be drilled given just one location, called
STA at the bottom right-hand corner of the diagram. Actually, two
programs are required, since one will be a subroutine.

You might also like