530 likes | 1.61k Views
Week 8: Robot Control & Programming 1) Robot control - first and second generation robots 2) Forward and inverse kinematics 3) Path control (point to point, continuous) 4) Robot programming (task levels, example of VAL II) 5) Off-line Programming (OLP) and simulations Tutorial questions
E N D
Week 8: Robot Control & Programming1) Robot control - first and second generation robots2) Forward and inverse kinematics3) Path control (point to point, continuous)4) Robot programming (task levels, example of VAL II)5) Off-line Programming (OLP) and simulations Tutorial questions
Robot Classification by Control Method: Robots can be classified by two different types of control methods: • Non-Servo Controlled Robots • Classic manipulators • Servo-Controlled Robots • First and second generation systems • Point-to-point Robots • Continous-path Robots
Non-Servo Controlled Robots : Also known as ‘limited sequence robots’ or ‘classic manipulators’. There are only two positions for each individual axis; travel continues until the end-stops are reached (open loop control) Programming is difficult to change.
Characteristics of Non-Servo Controlled Robot Systems : • Relatively high speed • Low cost • Easy to operate and maintain • Repeatibility of about +/- 0.01" • Limited flexibility with respect to positioning and programming
Servo Controlled Robots: • So called ‘first and second generation’ robot systems • Information about the position and velocity are continuously monitored and fed back to the control system associated with each joint • Controller can perform the transform from real world coordinates to joint angles (i.e. inverse kinematics) • Coordinated motion of multiple axes is possible (joint interpolation) • Reprogramming is easier • Higher degree of complexity, therefore more expensive and potentially less reliable • Most systems feature electric motor drives • Path control can be continuous, or point to point.
1st generation system positional feedback of joint angles Simplified Servo Control Strategy : • Obtain actual position of all joints • Compare actual and desired positions and generate an error signal to drive the joints • Manipulator moves and the error signal changes • When the error signals for all axes are null, the robot is at its destination servo control
sensor controlsystem sensor systems 2nd Generation Robot Systems: • Hierarchical, multi-processor computer controlled • Flexibly programmable by using ‘Off-Line’ simulations • Integration of sensor outputs and high level decision making into the control strategy and path generation • Integration with ‘networked’ systems such as FMS • Capable of moderate speeds.
Functional parts of robot servo control : • kinematic calculations • trajectory generation • dynamics calculations For the scope of this course: path control involves kinematics and trajectory generation.
ForwardKinematic Equations Forward and inverse kinematics : • Robot kinematic calculations deal with the relationship between joint positions and an external fixed Cartesian coordinate frame. • Dynamics, force, momentum etc. are not considered. Cartesianspace (x,y,z,O,A,T) Joint space (J1,J2 ..) InverseKinematic Equations
Y 2-dimensional manipulator Forward kinematics : • Position of end-effector can be determined using the joint angles and mechanical structure of the manipulator. • A Kinematic model maps an eligible joint vector into a corresponding position and orientation of the end-effector (called the robot pose). J2 TCP ? J3 J1 X
task motion definition z world y x
Y (x,y,z,o,a,t)desired Inverse kinematics : • No single generic procedure exists for calculating the inverse kinematics of an arm. • There are often multiple solutions for a given position and orientation. • For a 6 DOF robot, there may be as many as 16 solutions. Which is the correct robot pose ? X
Y 2-dimensional manipulator (x,y,z,o,a,t)desired Inverse kinematics : • First of all: the position/orientation must be reachable. • Joint angles must be monitored if they are approaching limits - ‘singularities’ can occur J2 J3 J1 X
Inverse kinematics in computer graphics : • Inverse kinematics are used extensively in computer graphics animation programming. • One particular area is in the 3D games industry when the inverse kinematics of characters (humanoids, animals etc.) or parts of characters (e.g. hands => end effectors) can be used to achieve smooth motion between two different positions. • The characters themselves are constructed out of skeletons which resemble the articulated structures found in robotics. • Synthetic actors can be used to produce a more natural looking animation of human figures, which can even provide suggestions of feelings and emotions • This can be achieved in real time without the use of ‘key-frame’ techniques.
Trajectory in joint space Path Trajectoryplanner Trajectory planning : • Moving from A to B the robot traverses a space curve or ‘path’. • It is normally necessary to achieve a smooth path both at individual joints and the end effector. • A path becomes a trajectory when temporal information is added. Trajectory in cartesian space Constraints speedprofile otherparameters
Point to point servo control : • Teach initial and final points; intermediate path is not critical and is computed by the controller • Applications: Moving of parts, spot welding, machine loading • Continuous Path Servo-Controlled Robots: • Used when there is a need to follow a complex path through 3-D space, possibly at high speeds (spray painting, welding, polishing) • Points taught by manual lead through with high speed automatic sampling • Therefore requires that the controller stores a good deal of data in its memory.
Point to point motion : • There are 3 ways a manipulator can move from point to point: • slew motion • joint interpolated motion • straight line motion • In slew motion all joints move to their required new position as quickly as possible. All axes therefore begin motion at the same time but arrive at their destination at different times. This generally results in joint wear and unpredictable arm motions. • Joint interpolated motion requires the controller to calculate which joint will take the longest to arrive at its destination and slow other joints down accordingly. A separate velocity is calculated for each axis. Manipulator motion is generally smooth and wear is reduced. • Straight line motion is, of course, a particular case of continuous path motion.
Continuous path motion : • For either straight line or continuous pre-defined (i.e. either off-line programmed or taught) motion the robot will have a number of intermediate points stored in memory. • These points are either calculated as a straight line between the start and destination, or stored during teach mode. • The points are often stored in Cartesian NOT joint space therefore inverse kinematic calculations are required. • A number of intermediate joint transformations along the path require computation. • These transforms are a certain distance apart: the distance determined to allow enough time to do the joint interploation caculations, arm kinematic calculations, service any sensors etc. • Update rate of most industrial robots is between 10-50Hz. • For standard 6 DoF manipulators continuous path motion is computationally expensive - composite translations and rotations in 3D are usually performed using 4-tuple, or quaternion, representations.
Continuous Path or Point to Point Control ? • seam welding • spot welding • paint spraying • joint glueing • machine loading • sheep shearing • laboratory testing • laser cutting • open heart surgery • table tennis playing • security (shooting things)
Robot programming: • teach and learn, guiding etc. • computer programming methods • programming levels : • task level • object level • manipulator level • joint level • example programming language - VAL II • robot simulations and OLP
“Teach and Show” Programming: • One of the simplest programming methods involves leading the robot through the desired motions, and recording the joint motions for later playback. • The robot motions can be input by physically moving the robot end effector manually, or by moving the robot using a hand-held teach pendant. • The robot joint positions can be either recorded automatically at some sampling rate (eg. for continuous motions such as arc welding), or recorded manually by the operator (eg. for pick-and-place tasks). • Once the motions have been saved, the controller simply plays them back by using the recorded joint values as the control inputs. • Lead-through programming has the advantage of being relatively simple. However, this approach is not well suited to complex tasks, and the programs are difficult to modify without starting over.
Teach-in Programming: • This is the most popular teaching method and is applied to all types of robots. • Under this method, a manual teach pendant or teach box is used by an operator to move the robot through a series of points. • During programming, the switches on the manual teach pendent are depressed by an operator. This in turn causes the end effector to move to the desired point. • As the end effector reaches the desired point, the record push-button is pressed. The position of the joints and the status of the end effector will be recorded by the controller. • Significant disadvantage is that the operator has to divert his/her attention away from the movement of the robot during programming in order to locate the appropriate push-button to move the robot. • A joy-stick can go some way to solving this problem
Teach-through (teach-by-show) Programming: • This method is similar to the teaching-in method in that the robot is also manually moved along the desired path. • However, this method requires the joints of the robot to be moved by the operator instead of the robot's motors. • During programming, the joint positions are constantly recorded by the controller. This is done by sampling or taking readings at fixed intervals of time. • This method has two limitations. Firstly, the controller must have sufficient memory to store information on the data points (usually both joint and cartesian space). • Secondly, as the robot motor is inoperative, the operator must overcome the weight of the motor as well as the friction that exits in the arm joints and gears. • These limitations make this method unsuitable for medium-size or larger size robots.
Improvements to Teach-through Programming: TEACHING THROUGH USING A FORCE SENSOR • This method is substantially the same as the normal teach-through method, except that it has a force sensor attached to the end effector. • During the arm motion, force is exerted at the end effector causing the sensor to translate the exerted force into electrical signals. These signals are then used to activate the robot motors. • This method is superior to the teach-through as little effort is required to move the robot and thus, a higher degree of precision can be achieved. • Despite this, this method is not widely used and its application is limited to experimental models. TEACHING THROUGH USING POSITION/ORIENTATION SENSORS • During the learning process, the operator brings the robot to the starting point of the path and the teaching is then carried out automatically with the help of the sensor.
Programming languages: • Robot tasks can also be specified by a sequence of instructions in a robot programming language. Many proprietary robot languages have been developed by different vendors. • These languages typically incorporate many of the features of general-purpose computer languages along with specific robot commands. • Using a programming language, the logic and sequence of robot tasks can be defined off-line. • However, the robot locations specified in the program must still be defined on-line using the robot. For example, an instruction in the program may be • move B which instructs the robot to move from its current location to location B. The controller cannot execute this instruction until the physical location of B has been defined using the robot itself.
Example Programming Language: VAL II • developed by Unimation in the 1970’s - incorporated by other manufacturers (e.g. Adept) into their robot systems. • typical commands: • where: display current robot position (joint and world space) • here: define a position • move: move to a specified location • delay: pause for a number of seconds • calibrate: calibrate the robot • execute: run a propram • typical program: A move PT1 delay (10) move PT2 goto A [see pages 96-99 of course notes]
Levels of robot programming : • robots are programmed in joint motions - the real world isn’t !
Task level programming : • ideally this is the way ALL robots would be progammed using simple high level languages • the user would describe a task (task specification) in terms of objects and composite actions (e.g. make me a cup of tea) • a task planner would then consult a database (real world model) and transform the task specification into a robot-level program (robot program synthesis) • programming and operator training times are vastly reduced • unfortunately task level and object level programming are still largely confined to the research lab. • most programming of industrial robots remains stuck at the robot level or even joint level
Robot level programming : Typical program development steps :- • workspace is set up and its components (robot, feeders, conveyoys, jigs etc.) are fixed • the location (orientation AND position) of the workspace components are defined using the data structure provided by the programming language • the task is partitioned into a sequence of actions which can be implemented by the programming language (e.g. move, pause, repeat etc) • the program is refined and debugged
Robot workcell simulations and Off-Line Programming (OLP) : • several interactive, 3D graphic simulation packages for designing, evaluating, and off-line programming robotic workcells are available including IGRIP (Deneb), GRASP (BYG), Workspace (CSL Ltd). • actual robotic/device geometry, motion attributes, kinematics, clamps, fixtures, and I/O logic are incorporated to produce extremely accurate simulations. • systems feature interactive 3D graphics in which to verify production concepts, workcell designs and manufacturing processes before implementing them on the shop floor. • after verification is completed, automated factory floor devices, such as robots and turntables, can be programmed off-line based on the CAD data for the part being processed.
Robot workcell simulations and Off-Line Programming (OLP) : • The software includes built-in libraries of robots, common production equipment, and application-specific options that include tooling such as spot weld guns, and even paint spraying tools. • These libraries, an integrated CAD system, and data translators for IGES, DXF, Pro/ENGINEER and other file formats support the rapid development of accurate simulation models. • Simulation and analysis functions include automatic collision and near-miss detection, and automatic adjustment of a robot work envelope for tool offsets and joint limits.
Robot workcell simulations and Off-Line Programming (OLP) : screenshot of IGRIP, by Deneb.
Benefits of OLP:- • production stops due to new program creation are minimized • reduced costs due to incorrect equipment purchases • much faster program creation and modification compared to on-line programming • optimized programs due to the powerful analysis tools • always correct orientation of the used tool • no unexpected collisions • easy program editing and modifying • the quality of the programs is often better compared to programs created on-line • Drawbacks of OLP:- • software and host computers (usually UNIX) are expensive • systems are not easy to use unless operators are trained • training can be long and costly
Week 8: Robot Control & Programming - summary1) Robot control first and second generation robots servo and non-servo control2) Forward and inverse kinematics relationship between joint angles and world coords difficulties associated with inverse kinematics3) Path control trajectory generation point to point motion + applications continuous path motion + applications4) Robot programming Teach and show Programming languages Task levels5) Off-line Programming (OLP) and simulationsTutorial questions...
Non-Servo Controlled Robots : Also known as ‘limited sequence robots’ or ‘classic manipulators’. There are only two positions for each individual axis; travel continues until the end-stops are reached (open loop control) Programming is difficult to change.
1st generation system positional feedback of joint angles Simplified Servo Control Strategy : • Obtain actual position of all joints • Compare actual and desired positions and generate an error signal to drive the joints • Manipulator moves and the error signal changes • When the error signals for all axes are null, the robot is at its destination servo control
sensor controlsystem sensor systems 2nd Generation Robot Systems: • Hierachical, muti processor computer controlled • Flexibly programmable by using ‘Off-Line’ simulations • Integration of sensor outputs and high level decision making into the control strategy and path generation • Integration with ‘networked’ systems such as FMS • Capable of moderate speeds.
Point to point servo control : • Teach initial and final points; intermediate path is not critical and is computed by the controller • Applications: Moving of parts, spot welding, machine loading • Continuous Path Servo-Controlled Robots: • Used when there is a need to follow a complex path through 3-D space, possibly at high speeds (spray painting, welding, polishing) • Points taught by manual lead through with high speed automatic sampling • Therefore requires that the controller stores a good deal of data in its memory.
ForwardKinematic Equations Forward and inverse kinematics : • Robot kinematic calculations deal with the relationship between joint positions and an external fixed Cartesian coordinate frame. • Dynamics, force, momentum etc. are not considered. Cartesianspace (x,y,z,O,A,T) Joint space (J1,J2 ..) InverseKinematic Equations
Robot programming: • teach and learn, guiding etc. • computer programming methods • programming levels : • task level • object level • manipulator level • joint level • example programming language - VAL II • robot simulations and OLP
Levels of robot programming : • robots are programmed in joint motions - the real world isn’t !
Benefits of OLP:- • production stops due to new program creation are minimized • reduced costs due to incorrect equipment purchases • much faster program creation and modification compared to on-line programming • optimized programs due to the powerful analysis tools • always correct orientation of the used tool • no unexpected collisions • easy program editing and modifying • the quality of the programs is often better compared to programs created on-line • Drawbacks of OLP:- • software and host computers (usually UNIX) are expensive • systems are not easy to use unless operators are trained • training can be long and costly
Robot level programming : Typical program development steps :- • workspace is set up and its components (robot, feeders, conveyoys, jigs etc.) are fixed • the location (orientation AND position) of the workspace components are defined using the data structure provided by the programming language • the task is partitioned into a sequence of actions which can be implemented by the programming language (e.g. move, pause, repeat etc) • the program is refined and debugged
Next Week: Robot kinematics calculationsYou should read Chapter 8 of the course notes before next weeks lecture.You should also know how to do simple matrix algebra (addition, multiplication etc.). Further reading on rigid body 2D rotations and translations is also recommended.Any good Engineering Maths books (e.g. Stroud or Weltner et al) will contain such material.