100% found this document useful (1 vote)
231 views

Robot Programming

Robot programming involves teaching robots tasks through online or offline programming. Common robot programming methods include teach-by-guiding where a person guides the robot arm through motions, teach-by-teach box where a pendant is used to manually move and record positions, and offline programming where programs are written in advance using robot languages. Robot programming aims to accurately, quickly, and repeatedly perform tasks through various training paradigms and programming languages that have evolved with robot technology.

Uploaded by

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

Robot Programming

Robot programming involves teaching robots tasks through online or offline programming. Common robot programming methods include teach-by-guiding where a person guides the robot arm through motions, teach-by-teach box where a pendant is used to manually move and record positions, and offline programming where programs are written in advance using robot languages. Robot programming aims to accurately, quickly, and repeatedly perform tasks through various training paradigms and programming languages that have evolved with robot technology.

Uploaded by

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

Robot Programming

Robot Programming

 Robot programming:
“Robot Programming is a art of teaching a robot
online or offline a series of tasks to be
performed with required accuracy, velocity and
repeatability.”
Robot Programming

 The development of robot programming


concepts is almost as old as the development of
robot manipulators itself.
 A characteristic feature of robot programming is
that usually it is dealing with two different worlds,
as shown in figure,
1)The real physical world to be manipulated.
2) Abstract models representing this world in a
functional or descriptive manner by programs
and data.
General robot programming
paradigm
Methods of Training Robots
1. Lead through programming used for servo-
controlled robots
Teach-by-guiding
Teach by teach- box methods
a. Point-to-point
- Move robot to each point in task and
record it.
b. Continuous-path
- Move robot through entire task at
normal speed while the robot records its
position many times a second.
Methods of Training Robots

3. Off-line programming used for servo-controlled


robots
a. Transfer from another robot that already
knows how to do task.
b. operators write the task programs with step-
by-step procedure in some programming
language

4. Robot Simulation
Teach by guiding

 It is some times also called as lead through


programming. Primarily this method is highly
suitable for programming the continuous path
robots.
 It can be done with simple equipment and
controls. Also, the teaching is performed quickly
and is immediately useful.
 In the playback mode, the robot repeats the path
and operations that were stored in memory
during the teach operation.
Teach by guiding

 In some systems, it is possible to play back at


different speeds than the speed that was used in
the teach mode.
 Each movement is recorded into the memory for
the playback during production.
Teach by guiding

 A person doing the programming has physical contacts with


the robot arm, actually gains control and walks the robot's arm
through the desired positions.
Teach by guiding

 The main concern is on achieving the correct


positioning sequences. Cycle time and speed can
be changed later, when necessary.
 A dead man’s control should be fitted for the safety
reason.
 Every operator motion is recorded and played back
in the same manner, including unintended motions.
Teach by guiding

Disadvantages to teach-by-guiding:
 It is difficult to incorporate sensory information.
 It cannot be used in some hazardous situations.
 It is not practical in handling large robots.
 Since teaching is performed manually, high
precision in generating paths con not be
achieved.
 Synchronization with other
operations/device/external sensor may be
difficult.
Teaching by teach - box method
(Teaching and pendant control)

 Teaching the robot


via teach pendants
that has toggle
switches or contact
buttons for
controlling the
movement of the
robot.
Teaching by teach - box method
(Teaching and pendant control)
 Moving the robot arm to each specific point
manually and pressing a button to record the
coordinates of that point do teaching in point-to-
point systems.
 Encoders, potentiometers, or other means does
position measurement.
 Large robot arms are often counterbalanced to
make manual movement easier. Some large
robots have an auxiliary lightweight arm that can
be used for training or guidance.
Teaching by teach - box method
(Teaching and pendant control)
 The teach pendant can control all axes of the
robot arm in terms of position and movement
velocity.
 Pendant controls are especially useful for large
robots that might otherwise be difficult to take
through the training cycle.
 They are also useful in applications in
dangerous environments.
Teaching by teach - box method
(Teaching and pendant control)
 In addition, they are more convenient for many
purposes other than manual movement, so the
use of pendant control has increased in the last
few years.
 The main disadvantage of this method is that the
equipment is tied up in the programming stage.
 However because of simplicity this method is
widely accepted in industry, especially in PTP
applications such as machine loading and
unloading, spot welding, simple assembly tasks.
Advantages and Disadvantages

 Advantages:
• Shop personnel can readily learn it, does not
require deeper programming experience
• Logical way to learn

 Disadvantages:
– Production must be interrupted
– Teach pendant have limitations in the amount of
decision making logic that can be incorporated
into the program
– No interface to other computer subsystems in
the factory (no CIM).
Offline programming
􀂃 The programming
for the required
sequence of functions
and positions is written
on a remote computer
console. Then transfer
to the robot controller.
􀂃 The robot
programming
language is to make it
easy for this purpose
(ADA, VAL, ...).
Offline programming

 Teaching by teach boxes has been used in all of


these areas. But this method cannot provide the
close control needed in many cases.
 When sensory information is required to assist in
robot control, there is a further problem of
transferring the sensory information to the robot.
 For these reasons ,it is desirable and often
essential that computer programming done in
advance control robots. This is called off-line
programming or preprogramming to differentiate
it from the programming that occurs during
teaching.
Offline programming

 Offline programming and preprogramming are


synonymous, and indicates that the
programming is done in advance by the use of a
robot programming language rather than being
done in a teaching mode.
Present Robot offline Programming
Languages and their features
A robot offline programming languages should
meet the following criteria:

(1) It should enable the human operator to utilize


all of the capabilities designed into the robot, its
sensor systems, external storage, etc.
(2) It should be such that the human operator will
have to use a clear and simple style when
programming robot motions.
Present Robot offline Programming
Languages and their features
(3) Its syntax must be easy to learn so that a
nonprofessional programmer could readily
memorize the language and as readily write
programs, and read them.
This section will review the evolution of robot
languages like MH1, WAVE, VAL, PAL, RAIL,
HELP, JARS, RPL and MCL
1. MH1 (Mechanical Hand One)

 The first robot language capable of describing


operations with programmable commands,
developed at MIT by H. A. Ernst in1960-1961.
 The available language commands are:
MOVE - indicating a direction and speed
UNTIL - operate until a specific sensor
condition occurs
IF GOTO - branch to a new location in the program
on a specific condition
IF CONT - branch to continue action on a specific
condition
2. WAVE
 WAVE, developed at Stanford University, was the
first general purpose robot programming system.
 The most important features were:
1. Specification of compliance capability in Cartesian
coordinates.
2. Coordination of joint motions to provide for
continuity of velocities and accelerations through
trajectory turning points or via points.
2. WAVE

3. Description of end effector positions in


Cartesian coordinates.
4. Guarded move capability, so that sensory
information could be used to terminate a move
when the end effector touched something.
3. AL (Assembly Language)
 AL is a high-level programming system for
specification of manipulator tasks such as
automatic assembly in production line
manufacturing.
 AL has a considerable effect on other languages
and has emerged as one of the leading
contenders for a common robotic language.
 It was developed at Stanford University in 1974
and has been improved and tested since then.
3. AL (Assembly Language)

 It has an ALGOL-like source language, a


translator to convert programs into run
able code, and a runtime system for
controlling manipulators and other
devices. Trajectory calculations are done
at compile time and are modified during
runtime as necessary.
 Two or more objects can be handled as one by
the use of AFFIX commands that cause them to
appear as one object.
3. AL (Assembly Language)
 Force sensing and compliance are implemented
by a number of subroutines and by condition
monitor statements in the syntax of the
language.
 There are signal statements and wait statements
available when one process must wait for the
completion of another process. These and other
statements make possible the coordinated
operation of two or more robot arms.
 Arm and hand movement commands are
available to control moves, velocities, forces,
and torques.
3. PLAW (Programming Languages for Arc
Welding).
 A robot manufacturing company, Komatsu
developed it for its series RW Cartesian robots,
equipped with arc current and television.
 This is a low-level language specifically
developed to program an adaptive welding
robot. It primarily serves to simplify the
programming of complex operations.
 In contrast to AL, this language does not call for
the use of a large computer (it can well be
implemented with a microcomputer).
3. PLAW (Programming Languages for Arc
Welding).
 PLAW includes the following instructions:
-Robot motion control (point-to-point, using various
interpolation techniques)
-Control of welding equipment
-Control of peripherals (by turning ON and OFF the
respective channels)
-Control of sensor systems
-Service instructions
-Conditional and unconditional jump instructions.
Conditional jump instructions check the status of
flags and perform the respective branch action
4. AML (A Manufacturing Language)

 AML was developed in 1976 at IBM’s T.J.


Watson Research Labs for assembly related
tasks.
 AML provides a systems environment in which
different user robot programming interfaces may
be built.
 It supports joint space trajectory planning,
subject to position and velocity constraints.
Relative and absolute motion can be handled,
and sensor monitoring can interrupt motions as
necessary.
4. AML (A Manufacturing Language)

 The most unique capability of AML is its


operations on data aggregates, so that many
operations on vectors, rotations, and coordinate
frames can be handled as multiple operations in
one command. This capability makes the
language more difficult to understand but
simplifies programming and control.
5. PASCAL
 It is a standard programming language
developed by Blazie Pascal for data processing
that uses structured statements to organize the
program in a modular and efficient way.
 The structured statements force the program
into separate modules to reduce the number of
branches.
 Each module is self-contained and can be
entered only at the top and exited only at the
bottom, so that errors due to branching mistakes
are easier to catch and eliminate.
5. PASCAL

 Data types are the descriptors that identify


elements in the language such as INTEGERS,
REAL NUMBERS, and CHARACTERS.
 It is a well-known and widely used language,
and was chosen as the basis for several robot
languages.
6. PAL

 Richard Paul, added capabilities to PASCAL to


WAVE and the AL language provide a new type
of programming language PAL.
 This allowed them to take advantage of the
proven, well-known PASCAL language and yet
provide new capability.
 In the PAL data structure, the relationship
between the arm and the object can be given
explicitly by the use of homogeneous matrix
transforms. Every motion statement in PAL
causes the manipulator position and orientation
to be specified in an equation representing a
closed kinematic chain.
6. PAL

 An interesting and potentially valuable capability


of PAL is the ease with which unknown points
can be picked up from a task and incorporated
into the program. Every motion statement in PAL
causes the solution of homogeneous equations
that represent the position of the kinematic chain
of links and joints in the arm.
7. MCL

 MCL was developed in 1978 by McDonnell-


Douglas in conjunction with Cincinnati Milacron for
an Air Force ICAM Project.
 This language is based on APT, the control
language for numerically controlled (NC) machine
tools used in CAM.
 One of its advantages is that a large number of
programmers already use APT in CAM
applications.
 APT has specific constructs to specify POINTS,
LINES, PATTERNS, and so on, which are useful
in enabling robots to communicate and cooperate
with machine tools.
8. RAIL

 It was developed by Automatix Inc., for the


control of both vision and manipulation.
 It contains a large subset of PASCAL commands
and can handle a variety of data types.
 An interpreter is used to convert the language
constructions to machine language commands.
Inspection, arc welding and vision operations
are supported by language capabilities. It is run
on a powerful Motorola 68000 system.
9. RPL

 RPL was designed at SRI (Stanford Research


Institute) specifically for unskilled programmers,
factory production engineers, line foremen, and
so on.
 It is a low level language.
 It has a compiler to produce interpretable code
from programs and an interpreter for that code.
The language is implemented as subroutine
calls, so that it is modular and flexible in use.
9. RPL

 It has been used to control a Unimation PUMA


500 arm and the Machine Intelligence
Corporation (MIC) vision module.
 Some of the ideas of the LISP language are
used but are organized into a FORTRAN-like
syntax. (LISP is a language designed for
artificial intelligence use. It is primarily recursive
and is especially well adapted to handling lists of
information.)
10. ADA

 ADA was developed by Ada Lovelace for the


Department of Defense (DOD) in 1978.
 It has been specified by DOD as the sole system
implementation language for the programming of
real-time embedded systems.
 Chief advantages of ADA are the powerful data
structures provided the ability to separate control
operations from data operations, and the
inherent capability for concurrent operation of
many tasks.
10. ADA

 Concurrent operation is an important


requirement for the efficient use of multiple
robots and other equipment.
 The ADA is well suited to the control of
manufacturing cells using robots.
 In addition, ADA is expected to provide code
that is easily transferred between computers and
can be easily maintained.
11. VAL
 Another language developed by augmentation
of an existing language (BASIC) is VAL,
developed by Victor Scheinman for the
Unimation Corporation in the year 1975.
 VAL uses simple words to describe operations
to be performed by the robot which leads to real
time programming as given below:
1. Specify and transform the coordinates of
positioning points both in a Cartesian system
and joint angles.
2. Edit robot programs written in VAL.
3. Manage the execution of user programs.
11. VAL

 VAL provides for speed control, grasping, arm


movement, and signaling in a simple, easy-to-
understand framework. Of course, all of these
routines are implemented by subroutines written
in BASIC and translated by an interpreter.
 Higher efficiency could be obtained by the use of
a compiled BASIC if necessary, but usually it is
sufficient to call precompiled subroutines.
 The need for a signal to other robots and
machines is handled effectively by the use of the
interlock commands such as WAIT, SIGNAL and
DELAY, which take action on the occurrence of
specific events.
11. VAL

 VAL is a low level language and calls there fore


for detailed planning of all actions.
 VAL provides the executing commands suitable
for PUMA robot for the applications in assembly,
arc welding, spray painting and material
handling.
 In VAL, both teaching (Interlock commands) and
offline programming can be used in an effective
way.
 This language is modified into VAL II by adding
some more instructions for the operator
convenience.
Motion Programming – Statements (VAL)
(example)
 MOVE P1 // move to variable P1
 LEARN P1 //(236,158,65,0,0,0) recorded
coordinates
 MOVES P1 //(straight line motion) - e.g.
MoveL
 DMOVE (4, 125) // incremental move joint
4, 125 mm
Motion Programming- Statements (VAL)
(example)
 DEFINE PATH123 = PATH(P1,P2,P3)
 MOVE PATH123
 Initial statements:
– SPEED 0.5 MPS
– EXECUTE PROGRAM1
 SPEED 75 –( 75 %) – ARLA H75%, Rapid
v xxx.
Other Programming Statements (example)

 Interlock and sensor commands


– WAIT 20, ON // wait until signal on port 20 is ON
– SIGNAL 10, ON // switch signal 10 ON
– SIGNAL 10, 6.0 // switch signal 10 analog to 6
volts
– OPEN
– CLOSE // open and close gripper
 Computations and program logic
– GO TO 150
– IF (logical expression) GO TO 150
Welding instructions (VAL) (example)

 WSET command set the speed, welding voltage


and current as a welding condition identified by
a number 1 to 4
 WSTART starts welding under present welding
condition and weaving condition.
 WEND inactivates a welding start signal. For
example, WEND 0.5 means the welding stops
for 0.5 seconds.
 CRATERFILL instruction is used when crater
filling is required at a welding end of the
weldment.
Example of Robot Programming in VAL
2 4 7 6

3 8 9

1 5 11 10

 Write Program to write above letters by robot in


VAL language
Program
 MOVE SAFE
 SIGNAL 6
 MOVE INTER
 MOVE LOC1
 MOVE LOC2
 MOVE LOC3
 MOVE LOC4
 MOVE LOC3
 MOVE LOC5
Program cont.

 MOVE INTER 1
 MOVE SAFE
 SIGNAL 5
 MOVE SAFE
 WAIT 12
 SIGNAL 6
 MOVE INTER 2
 MOVE LOC6
Program cont.

 MOVE LOC7
 MOVE LOC8
 MOVE LOC9
 MOVE LOC10
 MOVE LOC11
 MOVE INTER 2
 MOVE SAFE
 SIGNAL 5
 END
Palletizing problem(PTP system)

 Assume that it is desired to pick up identical


objects from a known location and then stack
the objects on top of each other to a maximum
of six. Figure shows the application. The object
is a cube of 50 mm length. The robot’s origin is
to be assumed at shoulder joint. The approach
distance to pickup point is 100 mm. Write a
program in VAL.
Figure Workspace for VAL programming example.
Palletizing problem(PTP system)

 PROGRAM STACK
 REMARK
 REMARK THIS PROGRAM PICKS UP PARTS
FROM A FIXED
 REMARK LOCATION CALLED PICKUP, THEN
DEPOSITS THEM AT A
 REMARK LOCATION CALLED B. IT IS
ASSUMED THAT 6 PARTS
 REMARK ARE TO BE STACKED ON TOP OF
ONE ANOTHER
Palletizing problem(PTP system)

 OPENI
 SET B = DEPOSIT
 SETI COUNT = 0
 10 APPROS PICKUP, 100.00
 MOVES PICKUP
 CLOSEI
 DEPARTS 100.00
 APPRO B, 100.00
 MOVES B
Palletizing problem(PTP system)

 OPENI
 DEPARTS 100.00
 SETI COUNT = COUNT + 1
 TYPEI COUNT
 REMARK COUNT INDICATES THE TOTAL
NUMBER OF ITEMS STACKED. HERE IT
IS SIX
 IF COUNT EQ 6 THEN 20
 REMARK MOVE THE LOCATION OF B UP BY
50 TO STACK.
Palletizing problem(PTP system)

 SHIFT B BY 0.00, 0.00, 50.00


 GOTO 10
 20 SPEED 50 ALWAYS
 READY
 END
Palletizing problem(PTP system)

LlSTL X/JT1 Y/JT2 Z/JT3 O/JT4 A/JT5 T/JT6


DEPOSIT -445.03 130.59 -448.44 -87.65 88.89 -180.00
PICKUP 163.94 433.84 -448.38 178.00 88.89 -180.00
EXEC STACK
COUNT = 1
COUNT = 2
COUNT = 3
COUNT = 4
COUNT = 5
COUNT = 6
The advantages of offline programming

1. It can prepare programs without using the robot,


so that the robot is available for other uses.

2. Previously worked-out procedures and routines


can be incorporated in the program.

3. Layout and cycle time of the operations can be


optimized in advance.
The advantages of offline programming

4. Sensors can be used to interact with external


environment, and appropriate action can be
taken in response.

5. Existing Computer Aided Design (CAD) and


Computer Aided Manufacturing (CAM)
information can be incorporated into the control
functions through proper interfacing.
The advantages of offline programming

7. Robots can be used to manufacture individual


units by calling on previously developed
routines. It would be impractical to do this by
guiding and attempting to match different paths.

8. Programs can be run in advance to simulate the


movements actually programmed without
incurring the risk of damage.
Limitations of programming languages

 Existing robot programming languages often have


limited ability to use subroutines and do logic testing
 Some of the early generation controllers lack the
memory capacity to hold such large programs.
 Languages are difficult to learn.
 Languages change radically over time. Probably the
biggest problem with robot programming languages
is that Robot manufacturers constantly obsolete
their existing languages when they introduce new
generations of robot controllers.
Simulation & Off-line Programming

 There is another method of programming called


simulation.

 The trouble with lead through methods and


textual programming is that the robot must be
taken out of production for certain length of time
to accomplish the programming
Simulation & Off-line
Programming

Difference between offline


and simulation:
– Off-line means only that
you program (including
robot poses) with out
using the robot.
– Simulation means that
you test a possible robot
application either virtually
or physically.
– CAR- Computer Aided
Robotics.
Computer Aided Robotics (CAR)

 Software requires:
– Postprocessor
– Calibration
– RCS module
– A competent user
• Software is:
– Expensive
– Usually not faster to
program with
CAR
 Differences between the digital world and reality
– Hardware differences (robot, equipment etc.)
– Software differences (control algorithm,
trajectory
planer, etc.)
 No standard robot language for different
systems
 Simulation systems use one of two strategies:
– Work with target language during programming
– Translate to target language before download
CAR
 Computer-Aided Robotics (CAR)
The field of computer-aided robotics (CAR) uses
electronic computers in the design, manufacture,
installation, and programming of robots.
ROBOCAM is a CAR system that ran on the Apollo
family of CAD/CAM workstations.
The CimStation by SILMA corporation is a CAR
system that ran on Apollo computer or on an IBM PC.
Off-line – examples
Robot Simulation
Many different products

 RobCad/WorkPlace
 IGRIP/Ultra Arc
 WorkSpace
 RobotStudio
 RoboPlan
 Camelot
 Thor
Hybrid programming:

 Combines on and off-line e.g:


– Offline:
• Program logics
• Simulation
• major part of movement commands (reuse of
CAD data).
– On-line:
• Movements near the workpiece
• Process data
The future

• Cheaper systems
• New technologies:
– Automatic collision
avoidance
– Automatic process
planning
Some New methods of Programming

 Movement Imitation:Linking Perception and


Action
 Programming By Demonstration (PbD)
 Speech and Dialog Programming
Movement Imitation - Example
Imitation: Linking Perception and Action

semantic world (objects, actions)


Imitation

Action
Perception

realm of raw-data (pixels, muscles activation)


Movement Imitation

Procedure for Movement Imitation:


• Extract hand (end-point) movements.

• Perform Vector-Quantization to get invariant


representation.
Movement Imitation

3. Classify movement to primitives (line, arc, circle).

4. Group adjacent similar primitives.


Movement Imitation

5. Determine primitives parameters.


6. Project to ego-centric space.
7. Reconstruct Motion.
8. Train Robot
Movement Imitation
Programming by Demonstration (PbD)

Three Approaches for PbD


 Symbolic

 Control-Based

 Statistical
Symbolic Approach for PbD

o Analyze observed actions in terms of sub-


goals.
o Match actions needed to fulfill these sub-
goals.
o Create a symbolic description of the
environment
( ”object A is above object B” )
o Learn a series of symbolic if-then rules
( ”if object A is above object B
then grasp-object[ object B ]” )
Example: Symbolic Approach for PbD
Control-Based Approach for PbD

 No symbolic parsing of perceived


actions
 Assume a pre-defined control policy
 Acquire needed parameters from
observation
Control-Based Approach
Inverse Models
Sometime assume known inverse models
(converting desired effect to needed commands)

Forward Models

motor joint end-effector


commands angles position

Inverse Models
Example: Control-Based Approach for PbD
Statistical Approach for PbD

 No prior assumption on used control policy

 Statistically match perception and action


Example: Statistical Approach for PbD

PCA
Example: Statistical Approach for PbD
Learning:
• Perform random action A(i)
• Record resulted optical flow f(i)
• Compute principal-component p1(i), p2(i)
• Learn the connection A(i) – {p1(i), p2(i)}
Programming By Demonstration (PbD)
Applications
 Navigation
 Locomotion
 Playing air-hockey
 Manipulating blocks
 Balancing a pole
 Hitting a tennis-serve
 Grasping unfamiliar objects
 Imitating dancing movement
PbD – Application Example
Playing Air-Hockey
Speech and Dialog Programming

 Limited natural language task description


 “Follow the red ball quickly while avoiding objects. ”

 Generate a controller to solve the task


 Execute the controller
 Respond to feedback
 “Turn more aggressively”, “Drive faster”

 Improve performance by learning


 Use the generated controller to provide examples
Controller Diagrams
 Specifies a complete
control program
 Uses hardware +
simple code (green)
Sensor PID Motor  All inputs are
connected
 All parameters are set
 Specifies an action for
any input
Dynamic Creation of Controllers

(You) Follow the red ball.


(Required for action)

red

BallTracker Follow Motor


“Follow the red ball quickly while
avoiding objects”
RED Speed kP Dist

X
T T
Y
BallTracker Distance Follow R AvoidObjects R Motor
Found

Computation Component
Hardware Component
Filter Component
Controller in Speech and Dialog Programming
Speech and Dialog Programming

 Systems with logical data base and natural


language parsing (CHAT)
 Conversation Systems that use Neural Nets.
 Model of the robot, model of the user, scenario
of the situation, history of the dialog
 Use of word spotting.
 Avoiding “I do not know”, “I do not understand”
answers from the robot.
 Use of generalization and analogy in dialog.
Functions Performed by Programming
 A robot controller program must control the
motions of the manipulator and end effector to
carry out a task in the specific workspace.
Control of the manipulator involves computing
the motion path or trajectory, and avoiding
collision with objects in the workspace.
 Robot systems perform complex, coordinated
tasks requiring the planning of movements,
sensing of internal and external conditions,
and continuous control of the motions of
individual elements.
Functions Performed by Programming

 Coordination of movements is required to


ensure that elements work together properly.
 It is also necessary to make frequent checks to
ensure that operations are performed properly
and safely.
 Data processing functions are necessary to
maintain suitable records and communicate with
the control hierarchy in a factory or other
organization.
Functions Performed by Programming

 Interfacing is required between system elements


such as manipulator arms, vision cameras,
conveyors, and devices external to the system.
Suitable programming and control languages must
have provisions to carry out all of these tasks
accurately and efficiently.
Functions Performed by Programming

 Robot Motion control


 Trajectory Planning
 Obstacle Avoidance
 Velocity and Acceleration Control
 Force and Torque Control
 End Effector Control
 Motion Coordination with other components
Robot Motion control

 Robot Motion Control is required because we


are not only interested in the target points to be
reached by the end effector while traveling from
one point to another but also the path followed
by the arm
 Robot motions can be controlled by any of the
four types, namely,
a) Sequential joint control,
b) Slewing or uncoordinated joint control,
c) Joint interpolated control
d) Straight-line control.
Robot Motion control

a) Sequential joint control means that the joints are


moved separately, in a prescribed sequence.
There is no interaction between movements.
b) Slewing all joints at the same time is faster, but
the path of the end effector is not controlled and
depends on the relative velocity of the individual
joints. This motion is called as slew motion.
Robot Motion control

c) joint Interpolated control ensures that all of the


joints start and finish together. Thus, the path is
contained within a small volume, but the motion
is erratic and not suitable for some tasks. This
motion also known as joint interpolated motion.
d) Straight-line control is slower because of the
need to move the arm at the speed limited by
the slowest joint, but is required for tasks such
as welding along a seam.
Robot Motion control

 Programming languages often provide separate


commands for interpolated joint control and
straight-line control so that the faster move can
be used when straight-line control is not
necessary. The slew move and sequential
moves are seldom used.
Trajectory Planning

 Trajectory planning deals with the planning of


the motion while it is moving from one position to
another position.
 In case of pick and place and point to point the
path is not so important and their trajectory
planning is simple. But in continuous path type it
is a difficult task to generate the controlled path.
Trajectory Planning

 Typically the trajectory information input to a


program is in the form of starting coordinates,
coordinates of the intermediate points on the
path or trajectory, and ending coordinates.
 The intermediate points, called vias are those
through which the trajectory must pass to meet
the requirements of the task.
Trajectory Planning

 Trajectory Planning is classified into two types of


moves,
 Continuous path type (CPATH type)
 VIA path type (VIA type)
Trajectory Planning
KNOTS

‫ٱ‬

‫ٱ‬ ‫ٱ‬

‫ٱ‬

‫ٱ‬

PATH ‫ٱ‬

PATH

‫ٱ‬ ‫ٱ‬

A) CPATH type B) VIA type


Continuous path type (CPATH type)

 The continuous path commands cause the robot


to move through a sequence of locations
(knots).

 During continuous path motions, the user may


select if the motion will be optimized for joint
motion or constant velocity.
Continuous path type (CPATH type)

 In joint optimized continuous path, the speed of


the robot is determined automatically by
optimizing Joint speed through the path.

 In constant speed mode, the speed of the robot


will remain constant throughout the path.
VIA path type (VIA type)

 The VIA command moves the arm close to the


knot not actually through a series of locations. It
allows the arm to deviate slightly depending on
speed and acceleration rates during the motion

 In the case of the VIA command, the user may


select if the motion will be optimized for joint
motion or world motion.
VIA path type (VIA type)

 In joint optimized VIA command, the arm moves


in PTP form along the path without stopping at
each intermediate point.

 In world optimized VIA, all motions are in straight


line form between each location.
Example of Trajectory planning by
simulation
Obstacle Avoidance

 A major problem in the control of robots is


obstacle avoidance.
 In order to incorporate obstacle avoidance in it’s
programming, it must either have a model of its
environment or some type of sensory
information that gives it information about its
environment.
 Moving objects require more complex modeling
rather than stationary objects. Both the robot's
movements and that of surrounding objects
must be predicted.
Obstacle Avoidance

We will discuss three classes of algorithms that


have been developed to plan for obstacle
avoidance:
 Hypothesize and test
 Penalty function
 Explicit free space.
Hypothesize and test
This algorithm has four steps to be followed:
(a) Hypothesize a possible path between the initial
and final position and configuration of the robot
arm
(b) Test a selected set of configurations along the
path for possible collisions
(c) If a collision possibility is found, devise a way to
avoid it by examining the shape and position of
the obstacles
Hypothesize and test

(d) If no collision-free path is found, it is necessary


to hypothesize a new path until a clear path is
found or no additional paths are possible.
This method is suitable for one or two obstacles
that can be encountered in its workspace. If the
workspace has many obstacles, this method will
become complex.
Penalty function

 Penalty functions are suitable for applications that


require only a small modification to a known path, but
can lead to situations in which no further progress can
be made.

 Figure above illustrates the use of the penalty function.


This is a drawing of the penalty function for a simple
circular robot and for a two-link manipulator.
Penalty function

 A penalty is assigned for approaching an object.


 The penalty becomes infinite if the object is
encountered and drops off rapidly with distance
from the object.
 The total penalty function for the path is found by
adding the penalties from the individual obstacles.
In some algorithms there is a penalty for deviating
from the shortest path.
Penalty function

 Entire problem is to optimize the penalty function


which compromises between the short distance
to be moved from the start position to the end
position and the lowest total penalty value.

 This method is highly suitable for any number of


obstacles in the workspace.
Explicit free space

 Instead of listing obstacles in workspace, here


we list available free space.
 One way to do this is to break up the volume
into cubes or parallelepipeds (rectangular
boxes) of varying sizes, and to store the
coordinates of their corners.
 The free space is the space where the robot
can go without any collusion with the obstacle.
Explicit free space

 The path is then searched from start point to the


end point, which is a sequence of positions of
the free space.
 In this way it is possible to approximate the
available free space to any desired degree.
 Free space methods can be used to guarantee
that a path will be found if one exists.
Explicit free space

 The disadvantage is more cost of computation.


 Graphic and grid methods can also be used to
list free space.
 Vision, acoustic, and tactile sensors may also be
used to detect obstacles, so that a workspace
model is not necessary.
Velocity and Acceleration Control

 Often it is desirable for the robot arm to move at a


specified velocity or to accelerate and decelerate at
controlled rates.
 These capabilities can be provided in the program in
several ways: as overall (global) specifications that
apply to all joints or limits set for each joint, or as
specified starting and ending accelerations and
maximum velocities.
Velocity and Acceleration Control

 In the robot language VAL, there is a provision in


each type of MOVE command to specify speed,
acceleration, deceleration, and settling time, so that
the velocity profile of each point or the overall
velocity profile of the end effector may be specified.
 Acceleration control may be necessary to reduce
the force on the arms or on the objects being
carried.
Force and Torque Control

 When an unexpected obstacle is encountered or


when a part is being fitted to another part, it is
desirable that the amount of force exerted by the
robot arm be controllable.
 Torque control is required for tightening bolts,
joints and similar tasks.
Force and Torque Control

 The programming language should be able to


specify forces and torques in three orthogonal
directions to provide the necessary capability.
 Their control is affected by varying the
voltage/current for the drivers based on the
sensor information.
End Effector Control

 Measurement of the opening in the gripper of


the end effector is necessary so that it can be
opened to pick up an object.
 If a vacuum pickup is being used, it is desirable
at times to control the effective vacuum in order
to pick up objects selectively.
 Other end effectors may have similar control
requirements
Motion Coordination with other
components

 Multiple robot arms, conveyors, feeders, and so


on must operate together to carry out a task or
many related tasks.
 Each robot arm may have a separate computer
with an overall computer to coordinate the
operations.
 Signals are required to allow the multiple devices
to report status and coordinate functions.

You might also like