Intelligent Computation in Manufacturing Engineering - 4 HOW TO INVESTIGATE CONSTRAINTS AND MOTIONS IN ASSEMBLIES BY SCREW THEORY S. Gerbino*, F. Arrichiello** * Dept. of Industrial Engineering Design and Management (DPGI), Univ. of Naples, Federico II, P.le Tecchio 80, 80125 Naples, Italy ** Dept. of Automation, Electromagnetism, Information Engineering and Industrial Mathematics (DAEIMI), Univ. of Cassino, Via Di Biasio 43, 03043 Cassino (FR), Italy Abstract The use of the screw theory to do constraint analysis is described. Screw theory uses a matrix representation to describe, for any mating features, the part's degrees of freedom (twist-matrix) and the directions along which the constraint reacts (wrench-matrix). From these screw-matrices it is possible to individuate the exact constraint conditions of parts into the assembly. Starting from the basics of this theory, how to get screw parameters (constrained directions and degrees of freedom) from screw-matrices is analyzed and how to make the constraint analysis for several serial and parallel constraint configurations is described. Finally, a MATLAB algorithm to analyze possible constraints and motions in assemblies with any complexity is presented. Keywords: Constraint Analysis, Kinematic Motion, Screw Theory, Assembly Feature 1 INTRODUCTION In the design stage, motion and constraint analysis of all the parts of the assembly is an important task to avoid fitup problems during the assembly process. The importance of this kind of analysis is related not only to the kinematic analysis of the object but, generally speaking, to the wide considerations that it permits to do in the different design stages and assembly analysis. From a design point of view, the constraint analysis permits to point out undesirable under-constraints or overconstraints. Under-constraints, which occur when the mating parts have some degrees of freedom (dofs), could generate undesirable motions of some parts and bring to particular configurations of the assembly that do not permit the product to work correctly. The search for underconstraints, in the assembly process, has to be done not only to evaluate the presence (required or not) of kinematics but also to correctly plan assembly sequences and to perform a suitable design of fixtures. Over-constraints, which occur when more than one constraint locks the same dof, could bring to different kind of problems. At first, it could generate mechanical stresses that could cause deformation or failure of parts. In the second place, over-constraints do not let the individualization of univocal tolerance chains (the real tolerance chain depends on the real local contact that is not definable a priori). Another kind of problems due to over-constraints could be met during the robotic assembly operations. In this case, over-constraints in the contact between the manipulated object and the environment make difficult the interpretation of the information from force sensors. In this paper, motion and constraint analysis will be dealt with the aid of the screw theory. Most significant related works will be outlined in the next paragraph. In the third section, the fundamentals and the properties of the screw theory will be shown. In the fourth section, examples of screw-matrices and how to interpret them will be illustrated. In the fifth paragraph, how to obtain the screw-matrix when the parts are all connected in serial or parallel way will be pointed out. In the sixth and in the seventh sections, an algorithm to obtain the screwmatrices when the parts are connected in a generic way will be described. Finally some considerations about overconstraints will be pointed out. 2 PREVIOUS RELATED WORKS The application of Screw Theory to kinematic field started with the studies of Waldron [1] and Davies [2]. In [3] different types of contact in robotic field were characterized by screw theory. Baker [4] developed screw system algebra to solve for the mobility and degree of redundancy in both planar and spatial mechanisms. 17 types of constraints spanning the set of all possible constraint configurations were defined in [5] for robot assembly. From this feature library, Konkar [6] introduced screw system representation of assembly mating features, and outlined the calculation of the possible finite rigid body motions in simple mechanisms. In [7] and [8] the screw theory was successfully applied both for constraint and motion analysis. [9] extended the Konkar's method to more complex assemblies. An extended overview of the screw theory very recently appeared in [10]. 3 PROPERTIES AND DEFINITIONS Screw theory, already known at the beginning of XX century, is particularly suitable to the kinetostatic analysis of a rigid body. This theory is based on the well-known theorems of Chasle and Poinsot. Chasle’s theorem: a motion of a rigid body can be represented by a rotation of the body around an instantaneous screw axis and a translation along the same axis. Poinsot’s theorem: any system of forces and moments (generalized forces) acting on a rigid body can be uniquely replaced by one force and one moment. This force will be located along the same instantaneous screw axis around which the moment acts. Twist and Wrench, fundamental concepts of the screw theory, will be introduced to describe motion and force. A twist is a screw (see below), which describes to first order the instantaneous motion of a rigid body. It is a unified representation of the translational and rotational velocity. The first triplet represents the angular velocity (ω) of the body with respect to a global reference frame. The second triplet represents the linear velocity (ν), in the global reference frame, of the point of the body that is instantaneously superimposed to the origin of the global reference frame: ν = r×ω; T = [ωx ωy ωz vx vy vz]. For only linear motion, the first linear entries are zero, while, if the rotation axis passes through the global reference frame, the second triplet entries are zero. A wrench is a screw, which describes the resultant force and moment of force system acting on the rigid body. The first triplet represents the resultant force in a global reference frame, while the second triplet represents the resultant moment of the force system about the origin of the global frame. mi = ri × fi ; f = fi ; m= mj ; ∑ i ∑ j W = fx fy fz mx my mz . Due to the affinity between twist and wrench, the concept of screw will be introduced. A screw is an ordered set of two triplets and represents indistinctly a twist or a wrench. This unified representation can be realized thanks to the structural similitude of twists and wrenches: the first triplet (angular velocity/force) represents a linear vector (rotation axis direction/ force acting line); the second triplet (linear velocity/moment) represents a free vector. The only point associated to the screw is that whose velocity is represented in the twist or that to which the moment is evaluated. A twist-matrix is a matrix representation of a set of n twists, each one represented by a row of the matrix. The matrix has dimension (n×6), while its image has dimension equal to the matrix rank. From a physic point of view the matrix image is the set of all the independent motions that the body or the joint can support. In the same way a wrench-matrix can be defined. Reciprocity is the most useful property of the screw theory. A twist T = [ω | ν] and a wrench W = [f | m] are reciprocal if: m·ω + f·ν = 0, that is, the virtual work of the wrench along the directions of the twist is null (mathematically speaking, the twist-matrix is the complementary space of the wrench-matrix). If two constrained parts are rigid, if the surface contact is frictionless, and if the contact between the parts does not break, then twist and wrench associated to the constraint are reciprocal. This property permits to move easily from the twist-matrix image to the wrench-matrix image and vice versa. The calculation of the reciprocal of a screw-matrix consists in two operations: (I) calculating the transpose matrix of the null of the screw-matrix, (II) changing the first three elements with the second three (flip operation). This operation is necessary in order for the elements of the resulting wrench to come out in the order [f | m]. The resultant sum of the dimensions of both the screw-matrices is equal to 6: dim(screw) + dim(recip(screw)) = 6. For a set of screw-matrices, two different operations can be defined: union and intersection. The union of a set of screw-matrices is the operation of concatenation to make a matrix in which every screw is a row: s1 Union ( s1, s2 ,..., sn ) = s2 ... sn The intersection of a set of screws s1, s2, …, sn is the set of screws common to all of them. From a mathematical point of view, this operation has a complex resolution but this problem can be avoid using the reciprocity property as developed by Konkar: n Intersection ( s1 ,s2 ,...,sn ) = reciprocal reciprocal ( si ) i =1 U reciprocal ( s1 ) = reciprocal reciprocal ( s2 ) . ... reciprocal ( s ) n 4 EXAMPLES AND INTERPRETATION OF A SCREWMATRIX The screw theory lends itself to the description of the instantaneous motion of a constrained rigid body and of the force that it can exchange with the constraint. The twist-matrix building process, relatively to a rigid body constrained to a fixed body through a frictionless joint, will be showed. Figure 1 depicts some elementary mating joints. [11] [12] Prismatic joint. A prismatic joint permits only a translation along a specific direction of the space, leaving to the body one degree of freedom. Its twist-matrix is made only by a row in which the first triplet (angular velocity) is null, while the second triplet represents the unit vector components of the translation direction. T = [0 0 0 a b c] or easily T = [ 0 | v ]. The wrench-matrix can be calculated using the reciprocity property and it will have five rows (rank=5). Every row of the wrench-matrix represents a vector of the base of the reciprocal space of the twist. The easiest structure is d e f 0 0 0 g h i 0 0 0 W = 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 where vectors [a b c], [d e f] and [g h i] are mutually orthogonal. Rotational joint. A rotational joint permits only a rotation around a specific axis in the space, leaving only one rotational dof to the body. Then, the twist-matrix is made only by a row. Supposing that the vector r = [p1 p2 p3] represents a point of the rotational axis and that ω = [a b c] represents the unit vector of the axis, the twist matrix will be: T=[ ω | v], where v = r × ω = [d e f ]. The corresponding wrench-matrix will be: 1 0 W = 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 g 0 0 −d 0 −e 0 −f 0 h i f where [g 0 h], [0 i f] and [a b c] vectors are mutually orthogonal. Cylindrical joint. A cylindrical joint permits two independent kinematical motions: a translation and a rotation around the same axis. So this joint leaves two independent dofs. Then, the twist-matrix has two rows, one representing the rotational motion, the other one representing the translational motion. The translational axis is coincident with the rotational one (ω) and the matrix is: T = ω | v , where v = r × ω, and r is the positional 0 | ω vector of a point of the axis. The wrench-matrix has a structure like: W = A B , where the block A(2x3) is made of two vectors 0 A which are orthogonal each other and with ω; the block B(2x3) has two columns with null elements; the block 0(2x3) has all null elements. Intelligent Computation in Manufacturing Engineering - 4 union of the set: n TSerial = UTi . i =1 Theorem 4: The resultant of the wrench transmitted to the terminal part of a simple chain of n serial constraints is the intersection of the set: n WSerial = IWi . i =1 Figure 1: Examples of assembly features. 4.1 Interpretation The interpretation of a screw matrix is the process through which, analyzing the matrix, one may find constraint conditions and dofs out [13]. This interpretation becomes necessary to evaluate the results of a motion or constraint analysis process for a part or an assembly. To understand the meaning of a screw-matrix, is necessary to analyze the environment in which it is inserted. Is it a wrench or a twist? Which is the reference system? Which part or feature is the matrix associated to? Once analyzed the context, it is possible to begin the numerical analysis. The matrix has to be analyzed row by row, after simplifying it with the rref (row-reduced echelon form) operation (some elements are scaled to unity). Moreover, if it has not a full rank, the rows which are linear combination of others should be eliminated, thus the final rows represent a minimal basis of the screw space. For a twist-matrix each row represents one dof (rotational, prismatic or helical). The resultant instantaneous movement is a linear combination of all the dofs represented by the rows. For wrench-matrices, equivalent considerations can be done. 5 DIFFERENT COMBINATION OF CONSTRAINTS An assembly is made up of several parts everyone of them is constrained, through one or more assembly features, to one or more parts. To carry out a kinetostatic analysis of the assembly parts, to find a procedure that permits to calculate the twist- or wrench-matrix for a generic constraint structure is necessary. This procedure foresees a correct combination of serial and parallel constraints properties. So four theorems will be enunciated [6]. Theorem 1: The resultant of a set of n wrenches acting in parallel on a body is the union of the set: n WParallel = UWi . i =1 Theorem 2: The resultant of a set of n twists acting separately on a body through multiple constraints is the intersection of the set: n TParallel = ITi . i =1 Theorem 3: The resultant motion, which the terminal part of a simple chain of n serial constraints can perform, is the The criteria for a generic structure of constraints derive from these four theorems. The different constraint conditions, that can occur, are called over-constrained, under-constrained or properlyconstrained and have to be analyzed in the different screw space directions. A part is over-constrained along a direction of the screw space if more than one constraint lock the same motion along that direction. A part is under-constrained along a direction if no constraint locks the motion along that direction. If the motion along a direction is locked only with the minimum number of constraints the part is called properlyconstrained along that direction. Several researchers ([7] [8] [14] [15]) have shown how to analyze constraints when features or parts act in serial or parallel way, as in Figure 2. Y Y Z Z Z X X X f1 Y Y f2 Y (a) (b) Figure 2: (a) Parallel assembly features and (b) serial parts. For the chosen combination of features in (a), there will be no motion and over-constraints along Z axis, and around X and Y axes. Its resultant wrench-matrix is: [0 0 0 –1 0 0; 0 0 0 0 –1 0; 0 0 1 0 0 0]). Rarely an assembly is made up of only serial or parallel constraints, so it is necessary to find out a procedure to study assembly with generic structure of constraints. On this topic, some studies have been done from different researchers [6] [16], but several mistakes make the proposed algorithms useful only for simple assemblies. Some examples of serial and parallel features in over-, under- and properly-constrained can be easily found in literature (see [7] and [9]) In the following section an algorithm that can be used also for complex assemblies will be presented. 6 ALGORITHM On the basis of all the above considerations, in this work the authors present an algorithm, implemented in MATLAB® environment, to calculate the twist-matrix of a generic part of an assembly with any complexity. Using a feature-based approach, the assembly can be considered as a set of parts linked by assembly features. These features, on the basis of their different typology, lock several dofs and can be characterized by their relative twist- or wrench-matrices. The first part of the algorithm consists in an appropriate description of the assembly. The structure (or skeleton) of the assembly can be described by a matrix representing the Liaison Diagram (LD) [17] or the Datum Flow Chain (DFC) [18] by the location of the features with respect to the part co-ordinate frame, and by the twist-matrices of all the assembly features. The DFC is a directed acyclic graphical representation of an assembly with nodes representing parts or fixtures and arcs (with arrows) representing mates between them. A DFC may be mathematically represented by a matrix in which each row is related to one part, and each column is related to an existing link between two mating parts. Each element of the matrix can be 0 or 1 (+1 for constraining part, and –1 for constrained part). The LD is similar to the DFC but arcs are not oriented (no arrows). See [18] for more detail on DFC. Thus, in the program, the first step is to insert the DFC matrix and the twist-matrices of all the mating features of the assembly (opportunely chosen by a graphical interface). After inserting data, the algorithm starts the analysis. The first elaboration regards the individualization of all the paths linking the fixed parts to that one of which the twistmatrix calculation is of interest. This operation can be realized analyzing and decomposing the DFC matrix to calculate all the paths from two selected parts (Figure 3) (the path decomposition can starts from LD; in the algorithm the DFC is used to locate mating-features with respect to one of the mating parts). results made by six parts 0,1’,1’’,2,3,4 where 1’ and 1’’ are geometrically superimposed, but can move independently (Figure 4). The assumption loses the information that 1’ and 1’’ are the same part or, equally, that the parts have to make the same movements. The link E is common to the paths and it has to be considered during the computation. 4 2 4 4 3 2 3 3 B 1 2 C A D 1 1 1' E 0 0 0 Figure 4: Assembly and Liaison Diagram. This example shows how important is to distinguish between links common or not to several paths. The twist-matrix related to the combination of two paths can be calculated by the union of the twist of the links common to the paths with the twist calculated as the intersection of the twist of the sub-paths without common links. 4 1 3 4 4 2 1 1 3 3 2 Figure 5: Example of Liaison Diagram. Decomposition and re-composition process. 2 4 1 1 2 3 2 4 4 4 1 3 2 3 2 Figure 3: Path search by using LD. Once the paths have been find out, the algorithm has to mathematically combine the twists of the paths or subpaths to correctly calculate the final twist-matrix. Several algorithms in literature made mistakes calculating twist-matrices for complex parts, using wrongly the serial/parallel properties of screw-matrix. For example in [6], from a mathematical point of view a wrong property was supposed. Konkar supposed that the twist matrix obtained as T=((TA∪TB)∩(TC∪TD))∪TE was equivalent to T=(TA∪TB∪TE)∩(TC∪TD∪TE). As shown by Shukla, with this assumption the twist-matrix loses important information. In fact, when calculating the twist-matrix of part 4 of the assembly shown in Figure 4, considering part 0 fixed, Konkar’s algorithm fails. In this example, the two paths linking parts 0 to 4 are {A,B,E} and {C,D,E}. With the previous assumption, the assembly Links common to all the paths are utilized to find the subgroups that need successive decompositions. In the example shown in Figure 5, twist-matrix can be calculated as the union of the twists of common links (bold line) with the twists of the two sub-groups (each subgroup’s twist is the intersection of sub-paths’ twists). When all the paths linking two parts are found out, all the paths that include a same link are grouped. The twistmatrix of each group has to be separately calculated and intersected with the twist-matrices of other groups. The link/s common to the paths of the group has/have to be considered as in the previous example and eventually. If the common links are in the middle of some paths, they separate the group in sub-groups. Each sub-group is recursively decomposed until it is made only by one link. Once all the sub-groups are decomposed, it is necessary to operate correctly with unions and intersections. So during the decomposition all the operations are registered. The last operation is the correct re-composition. The numerical calculation can start only after the end of all the decompositions and it has to be executed starting from the last levels of the decomposition. The algorithm, which is applicable to any generic assembly, works in a recursive way and, during the decomposition, it needs a particular organization of the Intelligent Computation in Manufacturing Engineering - 4 necessary information for successive decompositions and for final re-compositions. This computational complexity is necessary for assemblies with a branched link structure. For practical realization, MATLAB’s multi-dimensional structured arrays have been utilized. During each decomposition level, all the paths, including parts, and the operation to be executed at this level, as well as the information about successive levels, are opportunely registered. These results show that parts one and two have some dofs. Considering that the structure is planar, the only movement locked is the instantaneous translation along Y axis. Example n°2 4 7 EXAMPLES In this section two examples of assemblies analyzed with the described algorithm will be shown. 3 5 Example n°1 2 6 1 11 4 Y 7 1 1 1 0 3 X One f3 Two f1 f2 f4 Figure 8: Example n°2. 4 X PCS2 PCS1 2 Three GCS≡PCS3 Y Figure 6: Example n°1. The assembly depicted in Figure 8 is a planar structure of six parts linked by rotational joints. This example shows that algorithm works also for more complex link structures. The parts are linked as shown by the DFC in Figure 9. 0 The assembly shown in Figure 6 is made by three parts mutually linked and with DFC shown in Figure 7. 6 1 1 a a b 2 c 3 b c 1 1 0 1 2 − 1 1 0 3 0 − 1 − 1 5 2 3 4 01 1-1 20 30 40 50 60 0 0 0 0 1 0 1 -1 1 0 0 1 0 0 0 0 0 0 0 0 -1 0 0 -1 1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 1 0 0 -1 0 0 1 0 Figure 7: DFC and DFC-matrix of the example n°1. Figure 9: DFC and DFC-matrix of the example n°2. Each part position (and orientation) is described through the Part Coordinate System (PCS) position, measured in a Global Coordinate System (GCS). In the algorithm, each Coordinate System is inserted as a vector of six elements, three representing the origin position, three representing the orientation in term of Euler angles XYZ (in degree). PCS1 = (2 4 0 0 0 0 ) PCS2 = (2 1 0 0 0 0 ) PCS3 = (0 0 0 0 0 0 ). Each feature is located with respect to the co-ordinate system (PCS) of the part signed as 1 in the DFC. In the example, feature f1 represents a pin-hole planar joint (1dof; rotational joint), f2-f3-f4 represent pin-slot planar joints (2 dofs: one rotation and one translation). Their location in the relative PCS are: f1 = (2 1 0 0 0 0) f2 = (2 4 0 0 0 0) f3 = (2 1 0 0 0 -90) f4 = (2 7 0 0 0 0). If the link between two parts is made by more than one feature, as between parts one and two, the algorithm has to calculate the resultant twist-matrix of the link. Tw1-2 =[0 0 1 1 -2 0]. Once asked for fixed parts, the algorithm elaborates the data and gives the results. Considering fixed the part three, the twist-matrices of parts one and two are: T2 = 0 0 1 0 −4 0 ; T1 = 0 0 1 0 −4 0 . 0 0 0 1 0 0 0 0 0 1 0 0 The location of the PCSs are: PCS0 = (0 0 0 0 0 0) PCS1 = (0 .5 0 0 0 90) PCS2 = (-.5 1.5 0 0 0 -45) PCS3 = (.5 1.5 0 0 0 45) PCS4 = (0 2 0 0 0 0) PCS5 = (-1 1 0 0 0 45) PCS6 = (-.5 .5 0 0 0 -45). Each link between two parts is made only by one feature, localized with respect to the PCS of the parts signed as 1 in the DFC. f1-2= (.5 0 0 0 0 0) f0-1= (0 0 0 0 0 0) f1-3= (.5 0 0 0 0 0) f2-4= ( − 2 2 0 0 0 0 0) f3-4= ( 2 2 0 0 0 0 0) f0-6= (0 0 0 0 0 0) f6-5= ( − 2 2 0 0 0 0 0) f5-2= ( 2 2 0 0 0 0 0). Considering fixed the part zero, the twist matrices of some parts are: 0 0 1 0 0 0 0 0 1 0 0 0 TW 3 = TW 5 = 0 0 0 1 0 0 0 0 0 1 1 0 TW 6 = 0 0 1 0 0 0 . These results show that the part 6 can only rotate around Z axis; part 3 can rotate around Z and translate along X, but it cannot translate along Y; part 5 can rotate around Z and translate along [1 1 0] direction, but it cannot translate along [1 -1 0] direction. For parts with multiple dofs (i.e. Part 3 and 5) all linear combinations of twist-matrix rows are allowed. 8 OVER-CONSTRAINTS The algorithm presented in the previous section permits to calculate the twist matrix of a generic part for a generic links structure. This matrix represents the underconstrained directions (along which the motion is allowed). The over-constraints condition analysis is more complex. These conditions can occur when two or more features (or when two or more links chain) locking the same dof. The over-constraint analysis among features of the link between two parts is relatively easier because features act in parallel. The problem consists only in the evaluation of if the intersection among their wrench matrices are null sets or not. Over-constraints can occur not only among all the features of the link but also among a part of them. Thus, the intersection has to be calculated among all the possible combination of feature (Figure 10). Increasing the number of features, this operation becomes more computational complex. A B D C Figure 10: Intersections among sets. In [16] an algorithm to simplify these operations is presented, even though it loses information about which features present the non-null intersections. To find over-constraints out in a link structure is extremely complex. Over-constraints can occur in a circular path or in a closed net path. Except for simpler cases in which link chains can be considered as of sub-chains acting in parallel (figure 11.A), the individuation of intersections among paths is not yet resolvable (figure 11.B). 1 A 2 1 B 3 5 4 2 3 4 6 7 5 6 7 Figure 11: Link structures. 9 CONCLUSIONS Screw theory provides a complete method for determining the mathematically exact kinematic state of assemblies. It can be used to analyze the state of motion and constraint in assemblies joined by arbitrary combinations of assembly features. Through both twist-matrix and wrench-matrix it is possible to individuate the exact constraint conditions of parts into the assembly. How to make the constraint analysis for several serial and parallel constraint configurations has been described, and a MATLAB algorithm to analyze possible constraints and motions in assemblies with any complexity has been presented. Starting from the graphical representation of the assembly described by a Datum Flow Chain, the search for all the real paths existing between two any parts of the assembly, and how to combine them to get the final twist-matrix has been described. Some final considerations about the applicability of such a method assemblies has been finally outlined. on over-constraint 10 REFERENCES [1] Waldron, K.J., 1966, The Constraint Analysis of Mechanisms, Journal of Mechanisms, Vol. 1, pp. 101-114. [2] Davies, T.H., 1981, Kirchoff's Circulation Law Applied to Multi-Loop Kinematic Chains, Mechanism and Machine Theory, Vol. 16, pp. 171-183. [3] Mason, M.T., Salisbury, J.K., 1985, Robot Hands and the Mechanics of Manipulation, MIT Press, Cambridge, MA. [4] Baker, J.E., 1980, Screw System Algebra Applied to Special Linkage Configurations, Mechanism and Machine Theory, Vo1. 15, pp. 255-265. [5] Kim, M.G., Wu, C.H., 1994, Modeling of part mating strategies for automating assembly operations for robots, IEEE Transactions on Systems, Man, and Cybernetics, vol. 24, no. 7, pp. 1065-1074. [6] Konkar, R., 1993, Incremental kinematic analysis and symbolic synthesis of mechanisms, Ph.D. Dissertation, Stanford University, Stanford, CA 94305, USA. [7] Adams, J., Whitney, D.E., 1999, Application of screw theory to constraint analysis of assemblies of rigid parts, Proceedings of the 1999 IEEE International Symposium on Assembly and Task Planning (ISATP), Port, Portugal July 1999. [8] Adams, J., Gerbino, S., Whitney, D. E., 1999, Application of screw theory to motion analysis of assemblies of rigid parts, Proceedings of the 1999 IEEE International Symposium on Assembly and Task Planning (ISATP), Port, Portugal July 1999. [9] Shukla, G., Whitney, D.E., 2001, Systematic evaluation of constraint properties of Datum Flow Chain, IEEE ISATP, Fukuoka, Japan. [10] Whitney D.E., 2004, Mechanical Assemblies: their Design, Manufacture, and Role in Product Development, Oxford University Press, New York. [11] Smith, D., 2001, Constraint analysis of assemblies using screw theory and tolerance sensitivities, Master of Science Thesis, Dept of Mechanical Engineering, Brigham Young University. [12] Bruyninckx, H., 1995, Kinematic Models for Robot Compliant Motion with Identification of Uncertainties, Ph.D. Thesis, Dept of Mechanical Engineering, Katholieke Universiteit Leuven, Belgium. [13] Arrichiello, F., 2003, Il ruolo degli assemblaggi meccanici nella progettazione e nelle operazioni robotizzate, MS Thesis (in Italian) in Mechanical Engineering, University of Naples, May 2003. [14] Adams, J.D., 1998, Feature Based Analysis of Selective Limited Motion in Assemblies, M.S. Thesis, Mechanical Engineering. Cambridge, MIT, February. [15] Whitney, D.E., Matripragada, R., Adams, J.D., Rhee, S.J., 1999, Designing Assemblies, Research in Engineering Design, 11: 229-253. [16] Shukla, G., 2001, Augmenting Datum Flow Chain Method to Support the Top-Down Design Process for Mechanical Assemblies, MS Thesis, MIT Cambridge MA, June 2001. [17] Bourjault A., 1984, Contribution a une approche méthodologique de l’assemblage automatise: élaboration automatique des sequnces opératoires. Ph.D. Dissertation, Université de Franche-Comté. [18] Matripragada, R., Whitney, D.E., 1998, The Datum Flow Chain: A systematic approach to assembly design and modeling. Research in Engineering Design, 10: 150-165.

© Copyright 2018