Automatic reteach of manipulators for ... - Semantic Scholar

Report 2 Downloads 44 Views
AUTOMATIC RETEACH OF MANIPULATORS FOR MANUFACTURING MULTIPLE PRODUCT LINES Louis J. Everett

James C. Colson

Mechanical Engineering Texas A&M University College Station, Texas 77843-3123

IBM Incorporated Austin, Texas 78759

ABSTRACT

designed fixtures, devices and tooling. As a result, it is rare to be able t o construct multiple products using one set of tools and/or fixtures. Ordinarily, a robot workspace has insufficient room to allow the setup of multiple applications simultaneously. As a result, it is common practice to use modular fixtures which hold the workpiece while the robot performs one of the applications. When the product line is t o be changed, the fixture is replaced. The feasibility of modular fixtures to support multiple applications on a single robot depends partially on the amount of setup time required. When considering setup time, the most time consuming process is reteaching ("tweeking" the data points used in the application program. n most applications, the fixtures cannot be relocated with sufficient repeatability and hence the robot must be reprogrammed. If setup time is to be reduced, reteach must be automated. To enable automatic reprogramming of the robot, it is necessary to measure the pose of the fixture relative to the manipulator. There are a variety of techniques for performing this task. These include vision, force sensors proximity sensors. These techniques are well documented in the literature. After the fixture location is measured, it is necessary to update the robot position data to accommodate the change in fixture position. This amounts to a coordinate transformation being applied to each data point. Unfortunately the seemingly simple task becomes quite complicated when the manipulator has been taught near a singular point or a joint limit. The contribution of the discussed work is to deal with problems that occur when automatically updating application data. The algorithms discussed in this paper provide a method for generating modified goal data for a manipulator automatically according to additional, application driven, constraints on the manipulator. The method described in the paper can be applied to fixtures that experience large changes in position, however, collection of accurate fixture position data will then require either an external measurement device or an accurate robot. Provided the manipulator has sufficient accuracy in the area of expected deviation of fixture movement (ie. precision in the computation of forward and inverse kinematic solutions the technique allows programs taught on one manipu ator

Ordinarily, a robot workspace has insufficient room to allow the setup of multiple applications simultaneously. As a result, it is common practice to use modular fixtures which hold the workpiece while the robot performs one of the applications. When the product line is to be changed, the fixture is replaced. Doing this generally requires reprogramming the manipulator. When performing this reprogramming operation, several problems such as out of bound positions, and collisions with the fixture occur when the manipulator is near singular points. Although one might expect that these problems occur infrequently, this is not necessarily so. For example, using a Cartesian robot with a yaw, pitch, roll wrist the most "natural" pose for performing applications are frequently a t or very near the singular point. The transformation methods described in this paper were developed t o handle some problems in reteach by performing inverse kinematics, according to application constraints, by allowing suboptimal solutions. The method has been applied with success on two manipulators assembling meshing gears.

INTRODUCTION

1

a

Typical robot tasks are medium lot sizes [ l . In generating robot applications, most of the go s for the robot are taught manually. Because of this and the high costs of fixturing and tooling, robot programming is too extensive for low volume production. Also, robot motion speed is too slow for single robots to perform high volume production. For higher volume production requirements, most robot applications are replicated several times. At the lower production rates, it is often necessary to utilize a robot station to perform a variety of similar tasks to justify the robot. This results in the transportation of various tooling stations to and from the manipulator envelope. Like machine tools, eg. lathes or mills, part presentation is normally handled with jigs and/or fixtures. Unlike machine tools however, robots do not have a standard presentation device. Therefore robot applications often require specially

1

OThis work was supported in part by a grant from IBM Corporation, Austin Texas

474

1050-4729/93$3.00 0 1993 IEEE

to be ported to another. This copy process has been successfully performed in a laboratory environment.

MEASUFUNG FIXTURE POSITIONS We will assume the desired robot pose relative t o the fixture holding the parts is constant. For example, if we are drilling a hole dead center in the fixture, we will always want the hole dead center. This implies that the part mating t o the fixture is pr& (if it were not, then the robot could not be taught in the first place) and the tools are constant sizes and shapes. With these assumptions, the measurement problem reduces to determining the fixture location in the robot workspace. Because fixture position has six degrees of freedom, three translation and three orientation values must be measured. These values are determined from measuring the positions of three non-colinear points on the fixture. Fixture motion is determined via:

T, = Ti'Tb

T, is a transformation matrix representing the mution of the fixture, Tb and ' T are the fixture positions

before and after it has moved. Typically, only small relative displacements of the fixture need be measured; therefore, the manipulator can be used to collect the necessary position data. In this application, the measuring system consisted of three rigid posts mounted conveniently on the fixture and a single LED transmitter/receiver mounted between the gripper fingers of the robot. The LED device is constructed such that light strikes the receiver unless blocked by an object placed between the fingers of the gripper, see figure 1. By servoing the manipulator, while thresholding the LED, the edges of each post are determined by recording the joint positions when the LED beam is tripped by a post. The post center is computed by averaging the post edge positions. This technique is described in [2]. Suppose the positions of the three posts are given in robot coordinates by the vectors 'PI, 'P2, 'Ps. Each of these is a four by one matrix, the fourth element being one. The problem is t o use these positions t o compute the 4 by 4 matrix T =' [noaplf representing the fixture position/orientation with respect to robot coordinates. If we select the first, second, and third positions t o lie respectively at the origin, along the x axis and in the xy plane of the fixture pose, we can describe the pose of the fixture as:

(Port diameter 0.5 in. minimum)

Figure 1: Schematic of the Sensor Used to Measure Fixture pose.

'pf = 'PI

K'of = ('P3

- 'P') - [('P3 - 'P') - 'n fl'nf raf ='nf

x 'of

After the manipulator measures all three of the posts, the operator is required t o position the manipulator "above" the fixture. After positioning above the

475

measured fixture position at the time of programming is given by the matrix I.TAand the fixture position after changeover is rTB. The taught joint positions are converted t o a transformation matrix by computing the forward kinematic solution producing a point relative to the robot coordinate system. This point will be expressed aa rPt. The desired oint in robot coordinates (after the fixture is moved7 is expressed as rPd. These points are related through:

fixture, the robot’s coordinates are expressed relative to the fixture frame. If the robot t o fixture z value is positive, a plus one is stored, otherwise a negative is stored. At this point, all application points which are rigidly attached t o the fixture are stored relative to the fixture transform.

Correlating Post Numbers After fixture motion, measurement of the three posts is repeated. However, the operator is not required t o measure the posts in the same order as during the teach phase. Hence, the posts might not be numbered in the original sequence. To determine the correct fixture motion, it is necessary t o determine the correct relationship of posts to measurements. Let the fixture during tea& (located by the post numbering chosen by the operator) be denoted as frame A, and the corres onding fixture frame after changeover as frame B. !uppose a post is numbered i in frame A and j in frame B, its position in B is related t o A as:

BTAApi = ’Pj

rpd = r ~ B B ~ A A ~ r r p t

n o m this transformation, the inverse kinematic solution is obtained t o give the appropriate set of joint values. Thus, to deal with a workspace with multiple fixtures, one need only store positions of each fixture and the association of each point with a fixture.

CONSTRAINED OPTIMAL SOLUTIONS FOR SINGULAR POINTS

(1)

The fundamental problem encountered when the taught or updated position is near a singular point is that exact positioning of the manipulator requires large changes in joint positions. If the robot has protrusions such as a motor housing, these protrusions may interfere with tooling when swept through a large change merely to elicit a small end point charge. To prevent large robot motion, we compute a position uclosen t o the desired pose which is within specified constraints. Two constraint types are important. The first type are called joint change constraints. A joint change constraint specifies the allowable differential joint values. Two purposes of this type of constraint are: (1)to reduce the risk of collision between manipulator parts and objects attached t o the fixture, and (2) to preserve the cycle time of the manipulator. Obviously, if the joints change a lar e amount from it’s original taught value, the manipufator becomes more likely to interfere with objects on the fixture. Also, if the joint motion is allowed to be large, it is possible for the joints t o travel a greater distance over the entire cycle of the task and hence require more time for motion. The second type of constraint is a Cartesian position constraint. This type of constraint specifies how much error is allowed in the new tool pose [3]. This type of constraint directly opposes the joint change constraints. Cartesian error consists of both position and orientation. Position error is represented as a sphere with a specified radius. The orientation error is represented as a cone. To specify these constraints, the operator chooses an allowable radius and cone angle for tool errors on each pose. These are relatively easy concepts, and frees the operator from thinking in terms of vectors and transformations. Tight Cartesian position constraints imply a precise point. The optimization algorithm attempts to minimize Cartesian error while not violating joint constraints. The index of performance was defined as a combination of orientation error and translation error. Let the desired pose for the tool be given as: “Td= r[noap]d

Obviously if j = i for all three points, then = I, however the problem is, given i determine i and Equation 1 can be expressed in one of six possible ways. The six possible descriptions are: B TA [A P

(3)

I ~ P ~=~(BPjEPkEP,] P ~ ] for j # k # 1

(2) One need only determine which of these six possibilities are correct. has no z components for any 1, the Because (3,3) element of BTAis fl. A further implication and the third is that the third row of [AP1AP2AP3] column of can be discarded. After discarding these terms, along with the corresponding parts of the right hand side, one can post multiply equation 2 by [AP1AP2AP~] -’. This matrix will be nonsingular provided the posts are not colinear. By imposing the condition that the first two columns on the left have unit magnitude, one can eliminate all but two of the possibilities (assuming the posts are not located at the corners of an equilateral triangle). One of the two solutions represents a right handed coordinate system, and the other is left. To distinguish the two, one can compare the robot pose which is “above” the fixture. The robot pose z coordinates of the fourth point in both fixture frames should have the same sign. After determining the correct numbering for the posts, one can return to the original equation 2 and determine all of matrix BTA.Matrix is not fixture motion, it merely accounts for discrepancies arising from post numbering differences.

ORDINARY COMPENSATION FOR FIXTURE MOTIONS Once the position of the fixture is determined, it is possible t o update all taught positions. For nonsingular points, this is done as follows. Suppose the

476

and the achieved pose given as: T"= r[noap]a.The translation error is defined as llpd pall. The orientation error is then defined as Tr[I Td-'Ta]. Where T r represents trace, I is an identity matrix and Td-'T" represents the dot product between the desired and achieved coordinate directions. As one coordinate approaches the other, this product will a p p r o d an identity matrix. The objective is t o compute the minimum of the performance index which lies within the joint constraints. An iterative algorithm was used to find the optimal pose. First a set of joint values were assumed and the performance index computed. Based upon the index and its gradient, a new and hopefully better estimate of the optimal joint values result. If the new joint value violates a joint displacement constraint, its value is truncated t o the constraint value. Although secant methods can be employed for determining the gradient, the implemented algorithm uscd an analytically derived gradient. This gradient is manipulator dependent and therefore will not be discussed here. The interested reader should refer t o Paul [4]. After the optimization process, the Cartesian position error must be computed. This is done by comparing the final pose error against the specified constraints. The orientation error is checked by computing the maximum angle between any of the three coordinate axes and comparing it t o the orientation constraint. At this point, if either of these constraints is violated, the operator is informed and requested t o assist. The operator may choose to reteach the point or reposition the fixture. To reduce the required operator interaction during teach, default constraints arc applied t o most points. For example, many points use moderate values for constraints and hence avoid the iterative algorithm. Other points axe designated by the operator as precision poiiits and incorporate tight Cartesian constraints and lax joint constraints. Via points, where collisions are a concern, axe just the opposite. When reasonable constraints are used, operator intervention is seldom required. Obviously, problems arise when collision points are also precision points. The risk of this can be reduced through proper design of fixturing and initial programming.

is near a singularity), the optimization algorithm was applied. A task of installing two mating gears onto shafts was programmed. The task was indicative of a typical assembly. After teaching, most of the points were at the singular point. The fixture was then tilted and translated. The algorithm discussed here was applied t o the application and the gears were assembled as before. The application required the specification of both precision and collision points. Currently this algorithm is only applied t o taught end points of an application. The path traversed between points may still violate some physical constraint. A simple extension t o this algorithm would be to generate some "safe" number of intermediate points to represent the path and apply the same a l g e rithm to each. If any constraints are violated, then a new path would be necessary. Given sufficient computer power, this algorithm could be implemented as an extension to the set point generator of a control system.

IMPLEMENTATION

References

-

-

The method described was implemented on both an IBM 7565 and an Enterprise manipulator. These manipulators have three prismatic primary axes. The wrist has three revolutes in the common roll, pitch, and yaw configuration. The wrist singular point is the most natural pose of the machine, hence it is common for operators to teach application points at the singular point. Programs were stored via the taught joint values. After changeover, the required positions were computed via equation 3 using the existing kinematic software. Provided the differential joint values were not in violation of the constraints, the process continued with the next point. In this case there would be zero (theoretically) Cartesian error. If the differential joint values are not within tolerance (the manipulator

CONCLUSIONS A method for automatically reteaching robot tasks has been described. Reteaching is necessary in many advanced applications of manipulators, for example, when software is copied from one manipulator to another. The method also allows tooling fixtures t o be moved without requiring excessive manual reteach operations. This enables one manipulator to economically assemble multiple products even though the fixtures for only a single product will fit within the manipulator workspace at a time. Contributions have been made in dealing with problems associated with reteach when the original points are near a singularity. Problems with points near singularities include excessive joint motion, and obstacle avoidance. These problems have been solved by introducing tolerances on joint motion and pose error. The method has been successfully implemented on two industrial manipulators. A gear assembly was taught via a pendant, the tooling fixture moved and the assembly program retaught automatically without intervention. The inputs required for the technique are simp!e enough t o be generated by production line operators unfamiliar with manipulator kinematics.

U. Jiun Fan, Product Design Analysis for Robotic

Assembly Using Eztended Group Technology. PhD thesis, Texas A&M University, August 1988.

A Manufacturing Language Concepts and User's Guide. IBM Incorporated, first ed., December

1983. J. C. Colson, Performance Measures for Robotic Systems. Master's thesis, University of Texas at Austin, December 1984.

R. P. Paul, Robot Manipulators: Mathematics, Pmgmmming and ControL MIT Press, 1981.