Mechatronics & RoboticsLecture 9: Robot control and programming Dr Vesna Brujic-Okretic Room: 11cBC03 or MSRR Lab. Ext.: 9676 or 9681 Email: firstname.lastname@example.org
Week 9: 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 • Continuous-path Robots
Non-Servo Controlled Robots (classic manipulators): • Carry out simple tasks, such as loading and unloading, in a fixed sequence. • Information concerning positions of the arms is confined to reading limit switches usually placed at fixed locations (to record the completion of an event). • The work-cycle of a manipulator can only be changed with difficulty but, with good design, very high speeds are possible. • Also known as ‘limited sequence robots’ or ‘classic manipulators’.
Non-Servo Controlled Robots : • 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 • 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 • Microprocessor (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 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 positional feedback of joint angles servo control
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. sensor controlsystem sensor systems
2nd Generation Robot Systems: • Normal practice is to use position encoders to digitally measure the rotation of each joint. • High resolution is required for angular transducers in order that the control system can detect very small lateral deflections of the robot end-effector. • Most industrial robot control systems can provide very good system repeatability (that is, the ability of a programmed arm to reproduce the same position in space many times over). • the programming flexibility of such machines is achieved in the vast majority of cases through what is known as teach mode. • This is achieved by literally leading the robot through its duty cycle recording all the important co-ordinate information in the process. • The disadvantage of this approach is that the work-cell down-time is significant and costly during the reprogramming of the robot.
2nd Generation Robot Systems: • The desired approach is to use off-line programming techniques • They are similar to the remote programming of modern CNC machine tools in which the desired trajectory of the robot is expressed in external or world co-ordinates. • The second-generation robot must then calculate, knowing the geometric characteristics of the robot arm, what is known as the inverse transformation of the data from world co-ordinates to machine co-ordinates in order to determine the command values. • Path control of the trajectory assumes that the manipulator passes through a succession of equilibrium states, which is approximately true if the actuator is powerful and velocities are low. • Geometric control determines desired values of the machine co-ordinates whilst kinematic control determines desired values of the rate of change of machine co-ordinates.
Main Features – Summary: 1.Multi-microprocessor control system with hierarchical structure. 2.Flexibly programmable by 'off-line' methods. 3.Adaptable features in the control system using sophisticated sensing. 4.Capable of integration into flexible machining centres, assembly stations, etc. 5.Capable of moderate speeds. Improved accuracy.
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.
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. • In order to program the robot motion, the relationship between the joint variables and the position and the orientation of the end-effector must be established. ForwardKinematic Equations Cartesianspace (x,y,z,O,A,T) Joint space (J1,J2 ..) InverseKinematic Equations
Y Forward kinematics : • Position of end-effector can be determined using the joint angles and mechanical structure of the manipulator. • It provides the relationship which explicitly shows the dependence of the end-effector configuration on the joint variables. • A Kinematic model maps an eligible joint vector into a corresponding position and orientation of the end-effector (called the robot pose). 2-dimensional manipulator J2 TCP ? J3 J1 X
Inverse kinematics : • The most important benefit provided by the solution of the forward kinematics problem is that it lays a foundation for solving a related problem, the inverse kinematics problem. • In many cases, robot tasks are described in the workcell space (Cartesian space). • However, since the actual control of a robot's movement is carried out in the joint space, the conversion from the Cartesian space to the joint space is inevitable in a robot application. • This mapping from the Cartesian space to a robot's joint space is referred to as the inverse kinematics problem • The inverse kinematics problem is in general more difficult than the forward kinematics problem. • Unlike the forward kinematics problem, which gives a unique answer to a given set of joint variables, the inverse kinematics problem normally has multiple solutions for a given position and orientation. It is ill-defined by its nature. • Therefore, extra constraints are needed to uniquely define an inverse kinematics solution for a given robot pose.
Y 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. (x,y,z,o,a,t)desired Which is the correct robot pose ? X
Inverse kinematics : • First of all: the position/orientation must be reachable. • Joint angles must be monitored if they are approaching limits - ‘singularities’ can occur Y 2-dimensional manipulator (x,y,z,o,a,t)desired J2 J3 J1 X
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 at the end-effector. • A path becomes a trajectory when temporal information is added. Trajectory in joint space Path Trajectoryplanner 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, automated loading and unloading of machines; pick-and-place motions • 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 : • This type of motion control usually only needs simple point-to-point smooth trajectory with a few constraints on the lift-off and set-down positions. • 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.
Point-to-point motion • Figure 7.6: Trajectory in joint space for a pick-and-place operation • Figure 7.6 gives an illustrative description of the joint-based trajectory for the ith joint of a robot that is performing a pick-and-place task.
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 gluing • 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 joystick can overcome this problem to a degree
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 VAL-II is a robot oriented programming language system designed by Unimation Inc. It has been used for a number of industrial robots. • Incorporated by other manufacturers (e.g. Adept) into their robot systems. • to provide a sophisticated programming language providing a very easy-to-use system for those accustomed to simplicity and convenience of teach-and-repeat robots. • VAL-II allows application programs which communicate with the operator via: • the manual control unit, • a standard computer terminal, or • dedicated push buttons and switches. • When such programs are distributed with robot systems, end-users are provided with easy-to-use systems which are customised for their special needs. [see pages 96-99 of course notes]
Example Programming Language: VAL II • 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 programmed 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 level programming : Consider the task of inserting a bolt into a hole as shown in figure 7.8. This requires moving the bolt from the parts feeder into one of the holes in the beam. Typically, the steps taken to develop the program are: 1. The workspace is set up and the parts are fixed by the use of fixtures and feeders. 2. The location (orientation and position) of the parts (feeder, beam, etc.) and their features (beam bore, bolt grasp, etc.) are defined using the data structure provided by the language. 3. The assembly task is partitioned into a sequence of actions such as moving the robot, grasping objects, and performing an insertion. 4. The program is debugged and refined by repeating steps 2 and 3.
Robot level programming : • The important characteristics in the above steps are position specification (step 2) and motion specification (step 3). • For the position specified in the previous figure, a motion specification that accomplish the assembly task is illustrated in the following figure.
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 9: 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...
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.