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.