Aligning Parts for Micro Assemblies

Orienting parts that measure only a few micrometers in diameter introduces several challenges that need not be considered at the macro‐scale. First, there are several kinds of sticking effects due to Van der Waals forces and static electricity, which complicate hand‐off motions and release of a part. Second, the degrees of freedom of micro‐manipulators are limited. This paper proposes a pair of manipulation primitives and a complete algorithm that addresses these challenges. We will show that a sequence of these two manipulation primitives can uniquely orient any asymmetric part while maintaining contact without sensing. This allows us to apply the same plan to many (identical) parts simultaneously. For asymmetric parts we can find a plan of length O(n) in O(n) time that orients the part, where n is the number of vertices.


Introduction
Increased miniaturization of mass-produced consumer and industrial products such as disk drives, cameras, displays, and sensors will require fundamental innovations in parts handling. Conventional "pick-and-place" techniques do not work well at the micro-scale where sticking affects dominate. We will use the term 'sticking effects' to describe the combined effect of Van der Waals forces, electrostatic surface charges and other attractive forces that occur at the micro-level. Due to these sticking effects parts can stick to a manipulator without being grasped. To manipulate micro-parts, we propose a manipulation strategy that consists of applying simple operations requiring no more than two degrees of freedom. These operations are executed by a parallel jaw gripper. During an operation one degree of freedom will be active and the other will be compliant in order to maintain contact with the part. The gripper maintains complete control over the part's orientation. Eventually the gripper will have to release the part. This can be done, for instance, by chemically bonding the part to the assembly.
We present an algorithm that orients polygonal parts using a fixed sequence of mechanical operations that do not require sensing. At the micro-scale, sensing can be expensive and suffer from low signal-to-noise ratio. Orienting without sensors is particularly appealing in a micro-assembly setting where many identical parts need to be oriented simultaneously.
With each step of a plan produced by the algorithm the number of possible orientations of a part is reduced or stays the same. Figure 1 illustrates a plan that orients a part of a combdrive by rolling and squeezing it between two horizontal micro-scale jaws. Note that for this type of manipulation we only need to consider the convex hull of the part. Initially the part can be in any orientation, but after execution of the plan the part will be in one of two orientations. The state transitions after each operation are indicated by the arrows.

Micromanipulation
For a more complete overview of micromanipulation see, e.g., (Böhringer et al., 1999b). When parts are smaller than one millimeter the effect of adhesive forces becomes significant. Fearing (1995) gives an overview of all the different adhesive forces that occur at this scale. Arai et al. (1995) describe how these forces can be minimized. Many researchers have worked on reliable pick and place operation of micro-scale object. Miyazaki and Sato (1996) and Saito et al. (1999) describe a system where a needle is used to assemble 3D structures composed of particles ranging from 10nm to 1µm in size. The sticking effects enable the needle to pick up a particle. By translating along a so-called shearing trajectory the needle releases the particle. A human operator controls the manipulator, while a scanning electron microscope (SEM) provides the visual feedback. Koyano and Sato (1996) describe a similar system for pick-and-place operations. They use two different sized needles and define different part release motions. One motion consists of clamping the part onto a surface with a thin needle, while the large needle releases the part. The sticking effects are not large enough to make the part stick to the thin needle. Another part release motion consist of rotating the needle around the part to minimize the contact area.
One problem with a human-controlled micromanipulation system is that the microscope only gives a twodimensional slice of a three-dimensional object. Arai et al. (2001) address this problem by letting the human operator manipulate the part in a 3D virtual reality environment. Zesch and Fearing (1998) explore how one can orient parts by pushing them with an AFM cantilever equipped with a force sensor. The force sensor is used to detect obstacles and changing contact conditions. In (Shimada et al., 2000) a system is described consisting of two orthogonal one degree-of-freedom tweezers. The tweezers are equipped with force sensors. Shimada et al. describe two different ways to orient the part with these tweezers: one way is to roll the part between them, another is to pivot the part around a fixture. A similar approach is taken by (Maeda et al., 2001), who analyze the finger forces required to manipulate a planar micro-scale part with two circular fingers. To plan a path from a start to a goal configuration Maeda et al. construct a graph where the nodes are configurations, and the edges correspond to push, tumble and regrasp operations.

Parts Orienting
The problem of how to bring parts into a desired orientation has been well studied at the macro-scale. It is not necessary to grasp an object to orient it. Mason (1982Mason ( , 1985 showed how to orient parts by pushing them. This can be used to design a sequence of fences over a conveyor belt (Peshkin and Sanderson, 1988;Wiegley et al., 1996;Berretty et al., 1998). Akella et al. (2000) showed that instead of a sequence of fences one can also use one fence with one rotational degree of freedom. Erdmann and Mason (1988) developed a tray-tilting sensorless manipulator that can orient planar parts in the presence of friction. If it is not possible to bring a part into a unique orientation, the planner would try to minimize the number of final orientations. In (Erdmann et al., 1993) it is shown how (with some simplifying assumptions) three-dimensional parts can be oriented using a tray-tilting manipulator. In particular, for polyhedral parts with n faces a sequence of 'tilts' of length O(n) can be found in O(n 3 ) time. Zumel (1997) used a variation of the tray tilting idea to orient planar parts. Zumel used two actuated arms connected at a hinge to tilt parts from one arm to the other. Goldberg (1993) showed that it is possible to orient any polygonal part with a frictionless parallel-jaw gripper without sensors. Goldberg proved that for every n-sided polygonal part, a sequence of 'squeezes' can be computed in O(n 2 log n) time that will orient it up to symmetry. The length of such a sequence is bounded by O(n 2 ). Chen and Ierardi (1995) improved this bound to O(n) and showed that the algorithm runs in O(n 2 ). Van der Stappen et al. (2000) extended the results to non-polygonal parts and showed that for many parts only a constant number of operations are required to orient them. Parts are oriented by a sequence of fences on a conveyor belt. Akella and Mason (1999) showed that with partial sensor information the length of this sequence can be reduced to O(m), where m is the maximum number of states with the same sensor value. In the model of Akella and Mason the sensor returns the diameter of the part, which can be used to distinguish one state from another. Recently, Rusaw et al. (2001) proposed a different model where sensors only give information about state transitions. Rusaw et al. present algorithms using sensors that measure rotation direction and force as a part aligns with the fence. For certain part classes their algorithms result in shorter worst-case plan lengths than those returned by the algorithms of Van der Stappen et al. and Akella and Mason. Bicchi and colleagues showed that by rolling an object between the two hands of a parallel-jaw gripper it is possible to orient and position polyhedral parts (Ceccarelli et al., 2000;Marigo et al., 1997) and smooth 3D parts . The jaws are equipped with tactile sensors, which allows the system to reconstruct the shape of unknown smooth objects as well (Bicchi et al., 1999).
In (Rao et al., 1995) an algorithm is described to orient polyhedral parts using so-called pivot grasps. A part is grasped with two hard finger contacts and is then free to rotate around the axis formed by the contacts.
Another way to orient parts is to design a manipulator shape specifically for a given part. This approach was first considered for the Sony APOS system (Hitakawa, 1988). The design was done mainly by ad-hoc trial and error. Later, Moll and Erdmann (2001) explored a way to automate this process.
In recent years a lot of work has been done on programmable force fields to orient parts (Böhringer et al., 2000a(Böhringer et al., , 1999aKavraki, 1997;Reznik et al., 1999) The idea is that an abstract force field (implemented using e.g. MEMS actuator arrays) can be used to push the part into a certain orientation. Böhringer et al. used Goldberg's algorithm (1993) to define a sequence of 'squeeze fields' to orient a part. They also gave an example how programmable vector fields can be used to simultaneously sort different parts and orient them. Kavraki (1997) presented a vector field that induced two stable configurations for most parts. In 2000, Böhringer et al. proved a long-standing conjecture that the vector field proposed in (Böhringer et al., 1996) is a universal feeder/orienter device, i.e., it induces a unique stable configuration for most parts. Recently, Sudsang and Kavraki (2001) introduced another vector field that has that property.

Two Micro-Manipulation Primitives
We are trying to solve the problem of orienting micro-scale parts without sensing using limited degree-of-freedom manipulators. In this section we will state our assumptions and introduce the basic manipulation primitives. In the next section we will explain how the primitives can be composed to solve the parts orienting problem.
We manipulate parts with a pair of parallel jaw grippers. We assume there is no slip between the jaws and the part. We also assume both jaws will always be in contact with the part and that there are no sudden changes in the pose of the part due to sticking effects. We only make this qualitative assumption about the sticking effects, because the exact magnitude of the attractive forces is almost impossible to predict. The upper jaw can translate in the horizontal direction, the lower jaw can translate in the vertical direction. With each pair of grippers we can perform the following two operations: Squeeze We close the jaws by moving the lower jaw closer to the upper jaw and, simultaneously, allow the upper jaw to move compliantly until a stable grasp is reached. This is equivalent to a frictionless jaw grasp (Goldberg, 1993).

Roll
We translate the upper jaw in the horizontal direction by a given amount and allow the lower jaw to move compliantly. To make sure that the part is always in one of a finite number of orientations, we automatically follow each roll by a squeeze.
These two operations are illustrated in figure 2. The squeeze operation has been successfully implemented at the macro-scale (Goldberg, 1990(Goldberg, , 1993. Shimada et al. (2000) described a system with two orthogonal jaws that can rotate planar parts. We expect their system can be modified to implement our roll operation. It follows that the operations on the part are deterministic, so that after each manipulation step the uncertainty regarding the part's orientation is either reduced or stays the same. These operations can be defined more formally as functions that map orientations to orientations. Let S 1 be the set of orientations in the plane. Consider the diameter function d : S 1 → R, which, given a part orientation, returns the distance between the jaws when they just touch the part in this orientation. We define the squeeze function, s : S 1 → S 1 , such that if θ is the initial part orientation, s(θ) is the orientation after the squeeze is completed. Note that for any θ , s(θ) is a local minimum of the diameter function.
For the roll operation we can define a parametrized family of functions, r x : S 1 → S 1 , such that if θ is the initial part orientation, r x (θ ) is the orientation after the upper jaw has been translated by x and the part has been squeezed. We define a local frame such that if x is greater than 0, the jaw moves to the left. A roll function corresponds roughly to a shifted squeeze function. Figure 3 shows these functions for a rectangular part. Suppose that during a roll the contact points do not change. For a given translation x of the upper jaw the change in orientation is then equal to α = cos −1 (cos β − x/d) − β, where d is the distance between the contact points and β the angle between the x-axis and the line through the contact points. See figure 4. Note that x and α always have the same sign. If the contact points do change during a roll, we divide the roll into smaller steps (without squeezing) such that during each step the contact points do not change. The total change in orientation is simply the sum of changes during each step. It is not hard to see that for a given amount of translation the roll function is monotone in the orientation. We will use this property later. squeeze squeeze roll Figure 2: A sequence of micro-manipulation primitives, from left to right. We automatically follow each roll by a squeeze. The small arrows indicate in which direction the jaws have moved during each operation. The black arrows indicate a controlled motion, the gray arrows indicate a compliant motion. Note that parts always remain in contact with both gripper jaws.

Planning Algorithm
Define a state as a pair [e, j], where e = 0, . . . , n − 1 is the edge index and j = 0, 1 is the jaw index. In state [e, j] edge e is aligned with jaw j. Since there are two jaws, an n-sided polygon can be in 2n states. The squeeze and roll primitives are closed under the set of part states: any primitive will map from any state to another state in the set. For each state we compute the minimum and maximum amount of translation needed to make a clockwise and counterclockwise transition to the next stable edge. If the upper jaw translates less than the minimum, a subsequent squeeze brings the part to the original state. If the upper jaw translates any amount between the minimum and maximum, the subsequent squeeze will bring the part into the neighboring state. Translating more than the maximum can bring the part to any state. So these minima and maxima correspond to critical points where the outcome of a roll operation will change. Now consider the sorted list of all critical points for all states. To determine the possible outcomes of a roll operation applied to a set of states, it is sufficient to look up the outcomes at all the midpoints between consecutive critical points. In other words, even though we can roll a part by any continuous value, we only need to consider a finite set of O(n) roll functions. This is not immediately obvious. Suppose we have only three critical points: two small ones and one that is larger than the sum of the first two. Then there exists at least one more critical point between the large critical points and the small ones. As we will show below, we are still able to orient the part with just the O(n) roll functions above. The roll and squeeze functions induce a labeled graph on the states, where each edge is labeled with the appropriate function. Figure 5 shows an example of such a graph for a given part.
Based on the roll and squeeze functions we can also construct a graph where the nodes are sets of states, which we will call hyperstates. There exists an edge from node v to v if and only if v is the forward projection of v for a given operation (Erdmann and Mason, 1988). In other words, v is the smallest set such that this operation maps each element of v into v . Each edge is labeled with the corresponding operation. The goal is now to find a path in this graph from the set of all states to a set with as few elements as possible. The goal set will always have at least two elements, because we can not distinguish any two orientations that are 180 degrees apart.
We are interested in finding the shortest paths from the node representing all states to nodes with a minimal number of states. These paths correspond to plans that orient a part with the smallest number of operations. Natarajan (1989) was the first to analyze the complexity of this problem. He showed that given k functions a plan can be found, if one exists, in time O(kn 4 ). Eppstein (1990) presented an algorithm that given k monotone functions finds the shortest plan in O(kn 2 ) time. Goldberg (1993) and Chen and Ierardi (1995) improved on this bound for the special case where functions correspond to squeezes in a finite number of directions. In this case a plan of length O(n) can be found in time O(n 2 ). Recently, Berretty et al. (1998) analyzed another monotone function called the push function. The push function, p α : S 1 → S 1 , when given an orientation θ returns the orientation of the part p α (θ ) after it has been pushed from direction α by a fence orthogonal to the push direction. With a sequence of different push operations it is possible to uniquely orient a part. Berretty et al. presented an O(n 3 log n) algorithm to find the shortest plan.
Since we have O(n) roll functions and one squeeze function, k = O(n) and with Eppstein's algorithm we can find a plan in O(n 3 ). Below we prove that for asymmetric parts the final hyperstate always contains exactly two states, but first we will explain briefly how the algorithm works. The key idea of the algorithm is to change the definition of a hyperstate from being a set of states to being an interval of states. The orientation of a part in each state imposes a cyclic order on the states. An interval of states can be defined as a sequence of states that are adjacent under the cyclic order. Now the number of possible hyperstates is O(n 2 ), whereas with sets of states the number of hyperstates is O(2 n ). We can construct a hypergraph as described before, but with sets replaced by intervals. This hypergraph will have size O(kn 2 ). Using breadth first we can find the shortest path. It can be shown that the shortest path corresponds to the shortest plan to orient a part. The proof depends on the monotonicity of the transfer functions (i.e., the roll and squeeze functions).
It is possible that there exist many paths of the same length that lead to nodes with the same number of states. We can impose additional constraints to find the 'best' path. For instance, we might prefer squeeze operations over roll operations. Or we can minimize the total amount of translation required by a plan. Finally, we can select the path that is the most robust to errors in the jaw positions.
It is possible to orient a polygonal part by repeatedly applying the same operation. Consider the set of minimal distances such that a counter-clockwise roll with this distance as parameter will cause a transition to another state. Let d be a distance between the second largest and largest elements of that set. If we perform a roll operation with distance d n − 1 times, the part will be in the state corresponding to the largest element of the set. So we can compute a plan of length n − 1 that will orient a part in linear time. An advantage of this method is that it is easy to compute and possibly easier to implement. A disadvantage, though, is that it always requires n − 1 operations, whereas if we search for the shortest path we are often able to find a sequence of operations that orients the parts in very few steps. In the next section we explore the average number of steps needed to orient a part in more detail. Note that at least one of the midpoints between critical points satisfies the constraints on d. Therefore Eppstein's algorithm will also find a path to a node representing two states, in the case of asymmetric parts.

Random Polygonal Parts
To find out what kinds of polygons take many operations to orient, we tested the algorithm on a set of random convex polygons. Following (Lambert, 1994), we generate random convex polygons in the following way. We can Figure 6: For parts with many stable grasps many operations are needed to orient it. The plan used in this figure is the following sequence of roll operations: r 2.44 , r 1.97 , r 1.18 , r 3.53 .
regard a convex n-sided polygon as a set of n vectors subject to the constraint that the vectors add up to the zero vector. We pick the x-coordinates (and y-coordinates) of the vectors as follows: we pick a uniformly random point inside a n − 1 dimensional hypersphere and rotate the resulting point (padded with a zero to make its length n) to lie in the hyperplane defined by n i=1 x i = 0. The vectors can be computed in O(n) time. To create a polygon we need to sort the vectors by angle, causing the overall run time to be O(n log n).
In figure 6 an example is shown of a 5-sided polygon that requires 4 operations to orient it. The polygon is squeezed first, followed by three roll transitions. In general, the more stable grasps a part has, the more operations will be needed to orient it. If all states correspond to stable grasps, squeezing the part has no effect and only roll operations can be used to orient it.
Under the probability distribution function induced by the algorithm described above, we found that almost all random polygonal part shapes can be oriented in less than four operations. In figure 7 is shown the cumulative distribution function of the number of operations required to orient a random polygon. This function is computed by sampling 5000 polygons for a given number of vertices. From this figure it can be concluded that the expected number of operations needed is small and increases slowly with the number of vertices.

Discussion
We proposed a solution for the problem of orienting micro-scale parts without sensing using limited degree-offreedom manipulators. At the micro-scale attractive forces tend to dominate, which causes parts to stick to the manipulator. Our solution relies on two manipulation primitives that address the sticking effects: the squeeze and the roll. These primitives can be written as transfer functions that map orientations to orientations. We have presented a complete algorithm that computes a plan using these transfer functions to orient a polygonal part at the micro-scale. Figure 8 shows the kinematics of a gripper that can perform the squeeze and roll microassembly primitives. Future work is required to implement these kinematics in a micro-scale gripper. The recent paper by (Shimada et al., 2000) suggests that micro-scale prismatic joints can be approximated by bending movements of relatively long cantilevered jaws. If the bending of the jaw occurs sufficiently far away from where the jaw touches the part, it can be approximated by a pure translation at the contact point.
The algorithm has useful applications in the assembly and mass production of MEMS devices. Since the algorithm does not rely on sensing, we can apply a plan to many (identical) parts at the same time. Although we can not use one pair of jaw grippers for all parts, there are some jaw motions that will be the same for each part, regardless of their orientation. For instance, during a roll, the upper jaw is controlled and translates by the same amount for each part. In the mechanical design of an array of parallel jaw grippers one might be able to take advantage of this.