Download presentation
Presentation is loading. Please wait.
1
Robot Programming
2
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.”
3
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.
4
General robot programming paradigm
5
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.
6
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
7
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.
8
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.
9
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.
10
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.
11
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.
12
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.
13
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.
14
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.
15
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.
16
Advantages and Disadvantages
• 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).
17
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, ...).
18
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.
19
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.
20
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.
21
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
22
1. MH1 (Mechanical Hand One)
The first robot language capable of describing operations with programmable commands, developed at MIT by H. A. Ernst in 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
23
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.
24
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.
25
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.
26
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.
27
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.
28
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).
29
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
30
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.
31
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.
32
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.
33
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.
34
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.
35
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.
36
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.
37
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 system.
38
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.
39
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.)
40
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.
41
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.
42
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: Specify and transform the coordinates of positioning points both in a Cartesian system and joint angles. Edit robot programs written in VAL. Manage the execution of user programs.
43
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.
44
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.
45
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
46
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.
47
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
48
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.
49
Example of Robot Programming in VAL
3 2 4 8 9 7 6 Write Program to write above letters by robot in VAL language
50
Program MOVE SAFE SIGNAL 6 MOVE INTER MOVE LOC1 MOVE LOC2 MOVE LOC3
51
Program cont. MOVE INTER 1 MOVE SAFE SIGNAL 5 WAIT 12 SIGNAL 6
MOVE LOC6
52
Program cont. MOVE LOC7 MOVE LOC8 MOVE LOC9 MOVE LOC10 MOVE LOC11
MOVE INTER 2 MOVE SAFE SIGNAL 5 END
53
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.
54
Figure Workspace for VAL programming example.
55
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
56
Palletizing problem(PTP system)
OPENI SET B = DEPOSIT SETI COUNT = 0 10 APPROS PICKUP, MOVES PICKUP CLOSEI DEPARTS APPRO B, MOVES B
57
Palletizing problem(PTP system)
OPENI DEPARTS 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.
58
Palletizing problem(PTP system)
SHIFT B BY 0.00, 0.00, 50.00 GOTO 10 20 SPEED 50 ALWAYS READY END
59
Palletizing problem(PTP system)
LlSTL X/JT1 Y/JT Z/JT O/JT4 A/JT T/JT6 DEPOSIT PICKUP EXEC STACK COUNT = 1 COUNT = 2 COUNT = 3 COUNT = 4 COUNT = 5 COUNT = 6
60
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.
61
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.
62
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.
63
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.
64
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
65
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.
66
Computer Aided Robotics (CAR)
Software requires: – Postprocessor – Calibration – RCS module – A competent user • Software is: – Expensive – Usually not faster to program with
67
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
68
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.
69
Off-line – examples
70
Robot Simulation
71
Many different products
RobCad/WorkPlace IGRIP/Ultra Arc WorkSpace RobotStudio RoboPlan Camelot Thor
72
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
73
The future • Cheaper systems • New technologies: – Automatic collision avoidance – Automatic process planning
74
Some New methods of Programming
Movement Imitation:Linking Perception and Action Programming By Demonstration (PbD) Speech and Dialog Programming
75
Movement Imitation - Example
76
Imitation: Linking Perception and Action
semantic world (objects, actions) Perception Imitation Action realm of raw-data (pixels, muscles activation)
77
Movement Imitation Procedure for Movement Imitation:
Extract hand (end-point) movements. Perform Vector-Quantization to get invariant representation.
78
Movement Imitation Classify movement to primitives (line, arc, circle). Group adjacent similar primitives.
79
Movement Imitation Determine primitives parameters.
Project to ego-centric space. Reconstruct Motion. Train Robot
80
Movement Imitation
81
Programming by Demonstration (PbD)
Three Approaches for PbD Symbolic Control-Based Statistical
82
Symbolic Approach for PbD
Analyze observed actions in terms of sub-goals. Match actions needed to fulfill these sub-goals. Create a symbolic description of the environment ( ”object A is above object B” ) Learn a series of symbolic if-then rules ( ”if object A is above object B then grasp-object[ object B ]” )
83
Example: Symbolic Approach for PbD
84
Control-Based Approach for PbD
No symbolic parsing of perceived actions Assume a pre-defined control policy Acquire needed parameters from observation
85
Control-Based Approach Inverse Models
Sometime assume known inverse models (converting desired effect to needed commands) motor commands joint angles end-effector position Forward Models Inverse Models
86
Example: Control-Based Approach for PbD
87
Statistical Approach for PbD
No prior assumption on used control policy Statistically match perception and action
88
Example: Statistical Approach for PbD
PCA
89
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)}
90
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 Making the problem easier: A specific task Limited visual input (e.g., only one model) A Helpful teacher
91
PbD – Application Example
Playing Air-Hockey
92
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
93
Controller Diagrams Specifies a complete control program
Uses hardware + simple code (green) All inputs are connected All parameters are set Specifies an action for any input PID Sensor Motor
94
Dynamic Creation of Controllers
(You) Follow the red ball. (Required for action) BallTracker Follow red Motor
95
“Follow the red ball quickly while avoiding objects”
Speed kP Dist X BallTracker Follow AvoidObjects Motor T T Y Distance R R Found Computation Component Hardware Component Filter Component
96
Controller in Speech and Dialog Programming
97
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.
98
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.
99
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.
100
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.
101
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
102
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.
103
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.
104
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.
105
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.
106
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.
107
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.
108
Trajectory Planning Trajectory Planning is classified into two types of moves, Continuous path type (CPATH type) VIA path type (VIA type)
109
A) CPATH type B) VIA type
Trajectory Planning KNOTS ٱ PATH A) CPATH type B) VIA type
110
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.
111
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.
112
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.
113
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.
114
Example of Trajectory planning by simulation
115
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.
116
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.
117
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
118
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.
119
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.
120
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.
121
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.
122
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.
123
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.
124
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.
125
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.
126
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.
127
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.
128
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.
129
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
130
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.
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.