The invention relates in general to the field of robots. More particularly, the invention relates to a method for designing a common end effector for a robotic arm, which is capable of grasping plurality of parts, each having its own shape geometry.
In the industry of today, a mass production in assembly lines and manufacturing plants relies on robotics and automation lines. Robot arms that are equipped with end-effectors are key components to carry out myriad number of critical automation tasks such as material handling, paint operations, assembling, etc. A typical robot comprises one or more arms, each arm being in turn provided with an end effector. An end effector is a structure on which one or more grippers are provided at specific locations, for gripping and manipulating the respective part.
Typically, each robotic end-effector of the prior art is designed, built and optimized to carry out specific actions on a specific part. This makes them very inflexible in terms of variations of objects and tasks. Current automatic solutions to enhance the flexibility of robots involve either the adding of active elements to end-effectors in order to adapt them to different parts geometries, or simply providing additional end-effectors in proximity of the robot that can be replaced via a robot-interface plate. These solutions require, however, more factory space, and thus they are very costly. The design, build and testing phases of a typical end-effector consume considerable amounts of engineering times, and add additional costs to the final products.
It is therefore an object of the present invention to provide a method for designing an end effector which is common for handling plurality of parts, each having its own geometry.
It is still another object of the present invention to provide such an end effector design which is more efficient and reliable compared to existing design methods.
It is still another object of the present invention to provide an end effector design which enables a significant saving production time and space.
It is still another object of the present invention to enable a significant reduction in the costs of various final products.
Other objects and advantages of the present invention will become apparent as the description proceeds.
The invention relates to a method for determining a grasp set of n gripping points for a common end effector of a robot, said end effector being used for grasping a plurality of parts, each part having its own geometry, the method comprises: (a) providing said plurality of parts in a CAD form; (b) meshing each of said parts; (c) determining for each of said parts all the possible grasps that are capable of holding the respective part by any k-contacts points end effector; (d) calculating a quality measure for each of said determined grasps; (e) calculating an allowable range for said calculated quality measures; (f) for each part, parametrizing each of its grasps that are found to be within said allowable range, by a feature vector; (g) performing a cross-part intersection between said grasps that are found to be within said allowable range, and determining those grasps that are intersected between parts; and (h) from among said intersected grasps, selecting a single grasp having a highest quality measure, said selected grasp is used for grasping said plurality of parts by said end effector.
Preferably, the method further comprises a step of meshing reduction, which reduces the mesh to edges regions within each part respectively.
Preferably, said mesh reduction also involves definition of forbidden zones.
Preferably, said calculation of the allowable range is performed by means of a distribution graph.
Preferably, each of said feature vectors comprises 5n−6 elements for an n-points grasp.
Preferably, when said intersection step results in a null number of grasps, repeating the method for an increased number of gripping points n=n+1.
Preferably, each of said cross-part intersections is considered within a predefined range.
Preferably, said quality measure relies on the distribution of the projection of the gripping points on a plane fitted to these points, while the quality measure is defined as an area of a convex polygon formed by said projection.
Preferably, a larger area defines a higher quality measure and a better grasp.
Preferably, if no common grasp is found for all said plurality of parts, classifying the parts, and applying plurality of common grasps, each grasp to a specific class of parts.
In the drawings:
The present invention provides a method for finding an optimal configuration of a common end-effector which is capable of grasping given parts, each part having its own shape, which is different from the others. More specifically, the method of the invention teaches how to determine where and how to position the gripping points of the end effector, in a manner which is suitable for grasping all the said parts, one at a time.
The above procedure of
The present invention provides a method for finding an optimal configuration of a simple end-effector which is capable of grasping a set of q sheets of metal parts. More specifically, given a set of q CAD models of the sheet metal parts (step 200 of
As will be further shown, the method of the present invention parameterizes for each part all the possible force-closure grasps, and it uses this parameterization to classify the metal sheet parts with respect to these grasps. In a first stage of the process (i.e., method), a Force Closure Grasp Set (FCGS) is constructed for each part by sampling all the possible force-closure grasps, and then filtering out all those with low grasp quality measure. The possible grasps are represented as feature vectors in a high-dimensional space. Each feature vector is constructed in a unique form to injectively define the grasp invariant to any reference frame. The feature vector implies for the configuration of the end-effector based on the common grasp. The next step of the procedure is a “similarity join” step, which finds pairs of common feature vectors in the FCGS of all the objects. The similarity join stage is based on a search for a nearest-neighbor, and it finds, for each pair of FCGS sets, all those pairs of points that are within a predefined distance. The search for nearest-neighbor utilizes a binary tree representation of the high-dimensional space (termed kd-tree), and it performs an efficient search by reducing the number of inspections and by keeping the feature vectors sorted at each instance. The mean point of each pair that is found is then inserted into a registry set and associated to a possible FCGS. Finally, a classification stage is performed to determine those minimal feature vectors that cover the whole set of parts.
Forces and torques can be represented as a wrench vector in the wrench space. A wrench is a 6-dimensional vector (in the case of 3D parts) and is denoted as w=(f τ)T∈6 where f∈3 is the force vector and τ∈3 is the torque vector. Furthermore, a wrench applied at a contact point, pi, can be described as wi=(f pi×fi)T where pi is represented in the part coordinate frame. A friction which exists between the fingertips of the end-effector and the surface of the object can be represented by a simple Coulomb friction model
where f1i is the normal component, f2i and f3i are the tangential components of the contact point, and μ is the coefficient of friction. In this model, forces exerted in the contact point must lie within a cone which is centered about the normal of the surface. This is known as the Friction Cone (FC). The FC can be linearized with an s-sided convex cone and the force exerted within the FC can be represented by a linear combination of the unit vectors {circumflex over (f)}ik (primitive forces) constructing the cone,
fi=Σk=1saik{circumflex over (f)}ik,aik≤0 (2)
where aik are nonnegative constants. The associated wrenches can be expressed by the primitive forces as
where wik are the primitive wrenches associated with the primitive forces. An n-finger grasp can be represented by the position vectors of all the contact points P=(p1, . . . , pn). Equivalently, the grasp can represented using the matching wrenches that are applied at the contact points that are in turn represented in the part coordinate frame W=(w1, . . . , wn). If the friction is considered by cones, the wrench set can be expressed by the primitive wrenches W=(w11, w12, . . . w1s, . . . , wn1, wn2, . . . , wns). However, as it is desired that the end effector will grasp a set of sheet metals, the grasp model should be modified accordingly. According to the present invention, the clamping of a sheet metal is performed by means of 2-point contact sheet gripper 101, such as the one shown in
Therefore, for n pairs of gripping elements 102 that are positioned on the surface of the sheet metal, there are in fact 2n contact points. Each gripping element exerts two opposing forces at the respective contact point. Thus, in practice, it is necessary to calculate 2n gripping contact points. In this manner a coupling constraint is added between each two contact points, a constraint which is the model of the clamping device (gripper) of the present invention.
The CAD of the sheet metal 25 is a surface feature with no thickness. Therefore, each point normal is duplicated in the opposing direction.
wi=Σk=1saikwik,∀i=1, . . . ,n (3)
where wik is a primitive wrench constructing the friction cone of wi. The compatible opposing primitive wrench is
w′ik=−wik. (4)
Thus, the wrench set W constructing the convex hull of the grasp will be
W=(w11−w11 . . . w1s−w1sw21−w21 . . . wns−wns)1×2ns. (5)
As previously noted, a grasp is defined to be force-closure when it is possible to apply wrenches at the contacts such that any external force or torque that acts on the part can be counter-balanced. A system of wrenches can achieve a force-closure condition when any external load can be balanced by a non-negative combination of wrenches.
Definition: A Convex Hull (CH) of a system S of vectors s1, . . . , sn is the set of all non-negative convex combinations of the subsets of points from S. In other words, the CH is the minimal convex set containing S and is defined as
CH(W)={Σi=1naiwi:wi∈W,Σi=1nai=1,ai≤0} (6)
where ai is the linear combination coefficient bounded to be positive in order to ensure positive grip (non-sticky fingers).
The convex hull of the system of contact wrenches is denoted as the Grasp Wrench Set (GWS).
Theorem 1: A necessary and sufficient condition for a system of n·s wrenches W=(w11, w12, . . . w1s, . . . , wn1, wn2, . . . , wns) to be force-closure is that the origin of k lies in the interior of the convex hull of the contact wrenches. Meaning,
0∈interior(CH(W)) (7)
Assuming that a given grasp is well spread along the sheet metal, meaning the n contact points are not concentrated in a same point (n>2), before duplicating the normal directions to their opposite direction respectively, they at least span a cone which lies at one half space. After duplicating the normals as shown in
As it is known that a grasp is force closure, and it can resist external loads, it is desirable to quantify how much external load it can resist, or in other terms, how much resources are required to apply in order to resist an external load. The quality measure, as defined by the present invention, measures how much a grasp can resist an external wrench without the gripping elements loosing contact or begin to slip. A higher quality measure reduces object deformations and actuator resources. The quality measure, as defined herein, is used as a grasp criterion for the process which is discussed later on, and this criterion provides a comparison tool between various grasps. There are several quality measures, most of them are based on a task wrench set (TWS). The TWS is a wrench set of all external wrenches that need to be applied during execution of a prescribed task. The most common quality measure is the one termed largest ball criterion.
However, as mentioned above, a grasp of a sheet metal is always force closure, and its ability to resist external load can be measured by the spread of the gripping elements across the part surface. Therefore, a new quality measure which is denoted Projected Area Quality Measure (PAQM) is defined, and this quality measure will be discussed later on in this application.
The method of the invention involves generation of a set of all possible n-finger grasps for each of the given parts (step 204 of
An n-finger grasp of a part B can be defined by a set of n contact points on the part B surface,
P={pi: pi∈3 f or i=1, . . . ,n} (8)
and the normals to the objects' surface at each point respectively:
N={{circumflex over (n)}i:{circumflex over (n)}i∈3f or i=1, . . . , n}. (9)
The procedure defines a transformation map T, which maps each grasp j into a d-dimensional feature vector, injectively representing the grasp,
T:{Pj,Nj}→ej∈d (10)
where ej is a d-sized feature vector ej=(u1 . . . ud)T. This transformation enables the procedure to map all the possible grasps as feature vectors in the FCGS, and to intersect them later on.
Next, the method involves a step of triangulation. A triangulation of a set P is a partition of it into simplices, where the vertices of each are points of P such that the union of them equals P. Given a set of contact points p1, . . . pn, a triangulation of the set can be made in order to form a polytope in which the contact points are its vertices (see
The novel feature vector of the invention is in fact divided into two parts, a first part which contains the constraints that define the polytope shape, and a second part which contains the constraints that define the contact point normals relative to the polytope geometry. It has been determined by the inventors (hereinafter, “proposition 1”) that for an n-vertex polytope, there are 3n−6 degrees of freedom which determine the polytope's shape.
Proof. For an n-vertex polytope, there are e=3n−6 edges and f=2n−4 facets. Each of the n vertices can be varied with three degrees of freedom (DOF), with a total of 3n degrees of freedom. However, from the total of 3n DOF, three degrees of freedom correspond to translation, and three degrees of freedom correspond to a rotation of the polytope; Therefore, there are 3n−6 degrees of freedom for the polytope's shape.
There are many possible representations for the polytope, some of them depend on the order in which the procedure parameterizes its triangles (step 207 of
Algorithm 1 first parameterizes the triangle with the largest area, and moves on to the one adjacent to it with the edge defined by γ1. As mentioned above in proposition 1, three constraints are required to parameterize a triangle with total of 3n−6 constraints for the entire polytope, therefore it is necessary to constrain
triangles of the polytope to fully parameterize it. The parameterization moves on a chain of n−2 adjacent triangles, each with 3 parameters. Moreover, the algorithm describes the normals at the contact points relative to the polytope. Each normal needs 2 constraints in order to describe it, therefore 2n more parameters are required. Thus, the dimensionality of the feature vector is:
d=3n−6+2n=5n−6 (11)
The procedure for constructing a d=5n−6 dimensional feature vector for an n-finger grasp and its operation is as follows. The begins with the construction (step 1 of algorithm 1) of a triangles table (like the one in
A 4-finger grasp can be described by a tetrahedron (4 facet polytope—see
d1=∥p1−p2∥ (12)
and the two angles adjacent to the edge
The next two angles are the angles of the adjacent triangle t2=Δp2p3p4, which is adjacent to the shared edge
and the angle between the two triangles
ϑ2=cos−1(n4f−n1f). (17)
As there are n=4 contact points, it is necessary to parameterize only n−2=2 triangles, i.e., t1 and t2.
The representation of the normals direction is given by
ϕi1=cos−1({circumflex over (n)}i−n4f),i=1,2,3,4, (18)
ϕi2=cos−1({circumflex over (n)}i−n1f),i=1,2,3,4 (19)
Therefore, the resulting feature vector is
e=(γ11γ12d1γ21γ22ϑ2ϕ11ϕ12ϕ21ϕ22ϕ31ϕ32ϕ41ϕ42)T. (20)
A 3-finger grasp of object B is described by a single triangle having 3 vertices. An example of such configuration of a grasp is illustrated in
ϕi=cos−1({circumflex over (n)}−{circumflex over (n)}f),i=1,2,3 (14)
and angle ϑi is the angle of the normal's projection on the triangle surface with the adjacent triangles edge, given by the following Equation 15:
The feature vector for the 3-finger grasp is therefore a 9-dimensional vector:
e=(γ1γ2d1ϕ1ϕ2ϕ3ϑ1ϑ2ϑ3)T (23)
As in a preferable embodiment the clamping apparatus of the invention is designed to clamp only near the boundaries of the sheet metal part, there is no need for the inner triangles mesh, which is in fact excessive and causes tremendous calculation runtime. Therefore, the use of an algorithm for omitting the inner mesh triangles is preferred.
The meshing, step 201 of
The mesh reduction of step 202 of
The following algorithm 2 may be used to obtain a reduced mesh, based on the procedure above:
The Projected Area Quality Measure (PAQM) is a grasp quality measure which is particularly defined by the inventors for sheet metal, and is used to filter out inappropriate grasps according to a heuristic condition, as will be described in more details below. The defining of the PAQM is based on a projection of the clamping points on a plane calculated according to least square fitting. The area of the polygon formed by the points on the plane is the forms the basis for the quality measure. The larger the area is relative to the maximum area possible, the better the grasp is.
Given n clamp points j=(p1, . . . , pi, . . . , pn), where pi=(xi, yi, zi), a plane z=ax+by +c can be found, which best fits the points. The plane is calculated by least square fitting, where the sum of squared errors of the vertical distance between zi and the plane is minimized. The sum of square errors is given by:
S(a,b,c)=Σi=1n[(axi+byi+c)−zi]2 (24)
In order to minimize S, its gradient is equalized to 0. This leads to a system of
where its solution provides the coefficients for the desired plane. The projection point pi, =(xi, yi, zi,) of point pi on the plane is given by:
Next, a set of points ′j=(p1′, . . . , pn′) on the plane are acquired. If the points are rotated (using rotation matrices) on the plane to be parallel to the xy-plane, the points will be planar pi″=(xi″, yi″, 0). It is now possible to generate a polygon affiliated to grasp j of object i formed by the points and to calculate its area:
For each sheet metal, the procedure goes through all possible combinations of n clamping points, and finds the largest area of the projected polygon they construct among all sheet metals, denoted as Amax. The area calculated is a measure of how much the grasp is distributed across the sheet metal. Therefore, this procedure defines a novel quality measure for grasp j of sheet metal parts i,
Prior to the generation of the FCGS, a distribution graph of the quality measures is built for each sheet metal part, as shown, for example, in
where j is the size of each set. The minimum limit of the measure Qmin is defined by a maximum number β of points in a set. Therefore, Qmin is chosen to be:
such that each Qmini maintains the condition:
where fi (Qi) is a polynomial fit of the distribution points acquired previously. The choice of the number of points β within the set has direct effect on the runtime, and therefore is chosen accordingly. The more points are chosen, the effect is the runtime increases exponentially with the number of gripping points.
As noted, according to a preferred embodiment of the invention, the FCGS (Force Closure Grasp Set) is generated by exhaustive search for substantially all, or most of the possible grasps of each part B. This is done by using algorithm 2 which has been provided above, and by filtering out all grasps that are not bounded between Qmax and Qmini. The following algorithm receives a 3D mesh of the original sheet metal part, consisting a set of points ∈3 and a set of normals at each point ∈3. The algorithm 3 goes over all possible n-finger grasps—steps 203 and 204 of
For the q query objects B1, . . . , Bq, Algorithm 3 is applied and it generates the FCGS ε1, . . . , εq for all the parts.
The following description explains steps 208 and 209 of
Given q sets of vectors of the FCGS (ε1, . . . , εq)⊂d×q, one for each part, a similarity algorithm is used by the present invention in order to find common vectors of the sets, in which the distance between them is smaller than a predefined tolerance. This is done using Nearest-Neighbor search and classification as described in more details below.
In one embodiment of the invention, a database structure known as a kd-tree is used. Each FCGS set is represented as a d-dimensional binary tree thereby constructing an organized data structure which enables efficient nearest-neighbor search. The kd-tree data representation is based on dimension partitioning. Several algorithms for nearest neighbor search which operates on kd-tree are known. They take advantage of the kd-tree structure for the search of a point in one set, which is the closest to a query point in a different set. It should be noted that preferably, the nearest neighbor search algorithm of the invention uses Euclidean distance criterion. However, due to the structure of the feature vector, the d-dimensional space is not homogenous and the Euclidean distance does not reflect the grasping demands. Therefore, preferably another metric which better meets the requirement is used. The method of the invention is not bounded to the use of the specific closest point to another, so, if a custom distance criteria fails, the second closest point may be used, or else the next one. Therefore, in one embodiment a k-nearest-neighbor search which can determine up to k closest points to a query point, is preferably used by the present invention.
Preferably, a similarity join algorithm is used to pair points in each two d-dimensional sets εi, εj. For example, the following Algorithm 4 may be used:
= RearrangeReg( )
Algorithm 4 receives the grasp sets ε1, . . . , εq∈d, and for each two sets, it performs a nearest neighbor (NN) search (implemented, for example, by MATLAB's knnsearch function) to find for each vector in one set the closest one in the other. The function NearestNeighbor, which is called from within JoinFCGS, receives two FCGS sets εi, εj and outputs two parallel sets ,which are stored in such a manner that each vector ak∈ is the closest one to bk∈. As the d-dimensional space is not homogenous, each pair of vectors that are found cannot be considered as the same vector with only the Euclidean distance. Therefore, a custom distance metric is added, wherein this metric is varied according to the properties of the grasp, e.g., coefficient of friction, part manufacturing tolerances, etc. Therefore, a custom metric between the two vectors x∈εi and y∈εi is defined:
|xi−yi|≤εi, f or i=1, . . . ,3n−6 (32)
where, ε1, . . . , ε3n−6 are predefined tolerances. This means that the two feature vectors (only the shape part) are to be inside a hyper-rectangle with edge lengths of ε1, . . . , ε3n−6. Moreover, it is demanded that each two respective normals ({circumflex over (n)}ix from feature vector x and {circumflex over (n)}iy from feature vector y) at the contact points (represented in feature vector ej as ϕi1, ϕi2—for example, equation (20)) to be both within a friction cone, satisfying:
cos−1({circumflex over (n)}ix−{circumflex over (n)}iy)≤2α·tan−1μ,0<α≤1 (33)
where α is a safety factor. This condition insures that the angle between each two respective normals is smaller then the friction cone angle multiplied by a predefined safety factor. Conditions (32) and (33) are implemented by the following function IsSimilar (Algorithm 5):
Algorithm 5 receives two feature vectors and returns true or false for satisfying the conditions (32) and (33) or not, respectively. In the first loop, the algorithm checks whether condition (32) is satisfied for the first part of the feature vector (i.e, the shape part). Next, the algorithm restores the normal vectors according to the angles given in each feature vector and then compares them according to condition (33).
When two vectors from two different sets are close enough to be considered the same, they are inserted to a registry set ∈d and store a pointer to their original grasp. The set is a d-dimensional database (one for each part) of the vectors taken from ε1, . . . , εq. The vectors that are inserted to are the ones that are common to two or more sets of ε1, . . . , εq. Let assume that q is a q-dimensional vector space of binary values, i.e., containing q-sized vectors of 0's and 1's. Each common vector vi∈d added to is coupled to a compatible vector {tilde over (v)}i∈q. Component r of vector {tilde over (v)}i denotes whether the vector is in the set εr if labeled “1”, and “0” if not. Therefore, two vectors, ei∈εi and ej∈εj that are considered to be the same, are the input to the following procedure InsertToZ (Algorithm 6):
Algorithm 6 takes the mean vector vi,j of the pair and checks whether it already exists in registry set (using IsSimilar). If it finds that vector u is the same as vi,j, it sets ũi and ũj to 1, meaning, the point exists in εi and εj. If, however, it does not find the point in , it adds it and than mark it to the compatible grasp sets.
After the construction of registry set , function RearrangeReg at the end of algorithm 4 extracts the original vectors that constructed the vectors in from their affiliated FCGS. They are extracted according to the coupled binary vectors which denote in which FCGS they exist. This function recalculates each vector vi in to be the mean vector of the original ones extracted from the FCGS. In such a manner, the vectors in denote more accurately the original grasps in which they are originated from.
After acquiring a set of vectors that are common to two or more of the sets ε1, . . . , εq, a classification procedure is performed in order to determine the minimal number of grasp configurations that can grasp subsets of the parts. This is done using a classification algorithm, as discussed below.
As registry set ∈d has already been acquired, the method proceeds to classify the set of objects to a minimal number of subsets, where each subset can be grasped by its respective grasp configuration.
Definition 2: A subset of vectors ⊆ is said to cover all the primitive sets ε1, . . . , εq, if there exists u1, . . . , uσ∈ such that for each εi, where i=1, . . . , q, there exist at least one uj∈εi for some j∈[1, σ].
The d-dimensional registry set acquired in the previous algorithms contains the vectors u1, . . . , um∈ that are common to two or more sets of ε1, . . . , εq. A compatible set ũ1, . . . , ũm∈q affiliates the vectors in to the FCGS which they exist in. ũi is a q sized binary vector consisting “one” in component j if ui exists in εj and “zero” if not. The next step is to classify all the vectors in set to get a minimum subset of vectors ⊆ which covers all the primitive sets ε1, . . . , εq. That is, classify the objects to a minimal number of subsets with its compatible common grasp for each subset.
Given that a vector ui∈ and its compatible binary vector ũi∈q consisting one's or zero's, it can be said that a subset ⊆ where u1, . . . , uσ∈, covers ε1, . . . , εq if:
Vj=1σũj=({right arrow over (1)})q×1 (34)
It is in fact desired to find a minimal number of binary vectors where their unification equals to a vector of ones. That is, a minimal number of grasps that can grasp all the various parts 120 (of
Given that registry set contains five feature vectors u1, . . . , u5∈q that are common to two or more sets of ε1, ε2, ε3, ε4 (q=4 parts). After the performance of function JoinFCGS on ε1, . . . , ε4, each vector uj is affiliated to a binary vector ũj. For example, the five outputted binary vectors are shown in (35).
For instance, binary vector ũ1 has 1's in the first and fourth position. Therefore, the respective feature vector u1 exists in FCGS ε1 and ε4, meaning that the corresponding grasp configuration can grasp objects 1 and 4. Binary vector ũ5 equals to ({right arrow over (1)}) and therefore, it corresponds to grasp configuration which can grasp all the objects. If such a single binary vector ũ5 which satisfies condition (33) does not exist, it would be desired to search for the minimal set of binary vectors satisfying the condition. In this example, vectors ũ2 and ũ4 are taken, where their union results in ({right arrow over (1)}). Therefore, classify the set of objects are classified to subsets, grasp 2 corresponds to grasp configuration u2 and will grasp objects 2 and 4. Grasp 4 corresponds to grasp configuration u4 and will grasp objects 1 and 3. Moreover, overlapping may occur, such as the union of and ũ3 which in fact results in the possibility of both grasp configurations to grasp object 4. In such a case, object 4 will be grasped by the highest quality grasp of the two. In the classification process the parts are divided into classes, where each class has its own grasp configuration.
The main algorithm for finding common grasp of a set of objects is given in Algorithm 8:
= Classification( ) using Algorithm 7.
Algorithm 8 begins with meshing of each of the existing parts, and by marking of forbidden zones by the user. After the mesh is completed, the generation of the FCGS procedure is performed, for example, according to Algorithm 3. Next, the similarity join is performed according to Algorithm 4 in order to build the registry set . Finally, the classification procedure is performed, for example, according to Algorithm 7, which in turn outputs the best grasp or grasps that are common to all of the objects.
Upon completion of the method of the invention, if a solution of a single common grasp or a set of common grasps at the vertices of the objects' meshes exists, the algorithm finds it. If, however, no solution exists, the method reports that no common grasp points exit for all the existing parts. Obviously, in order to overcome this latter case, one or more grasp points may be added to the existing solution, or the method may be repeated by increasing the available number n of gripping points.
As shown, the method of the present invention maps all the possible grasps (up to mesh size) to determine only the feasible ones. The feasible grasps are those that are force-closure and has a quality measure greater than a pre-defined lower bound. The feasible grasps are parameterized to a feature vector in the feature space, injectively representing the grasp configuration as a polytope with no reference to any coordinate frame. The feature vectors are added to a set denoted as FCGS of the compatible part. Once all feasible grasps of all parts are mapped to the FCGS sets, a Nearest Neighbor Search is performed to find pairs of common vectors among the sets. Those pairs that are found are checked to satisfy tolerance demands, and are further added to a registry set of common vectors. A classification procedure is then performed to find the minimum set of vectors from the registry set that covers all of the FCGS sets. The set of feature vectors found in fact provides those common grasps of subsets that are suitable to all the parts. The algorithm aims to find a single vector which exists in all of the FCGS or a minimal set of vectors for subsets of parts. The vectors found are in fact the grasp configurations that are able to grasp the compatible subset of parts. As the method of the invention goes through all the possible n-finger grasp combinations (up to the mesh size), the method certainly results in the determination of a common grasp or a set of common grasps if such exist. Thus, if a single grasp for all given parts or a set of grasps for subsets of the parts exist, the method of the invention will result in determination of them.
Simulation
A simulation of the method of the invention was implemented in Matlab on an Intel-Core i7-2620M 2.7 GHz laptop computer with 8 GB of RAM. The running of the algorithm was performed using MATLAB parallel computing toolbox in order to decrease runtime. The following simulations present an example of the algorithm operation on 3-clamping frictional grasps of four sheet metal doors.
Four sheet metal parts that are marked as (a), (b), (c), and (d) on
For the similarity search algorithm, the tolerances of the triangles shape ε1[mm], ε2 [mm], ε3 [°] were chosen so that the edges will not extend more than 4% of their original length. The parameters to compare (with condition (33)) normals at the contact points are α=0.8 (80% of the friction angle) and μ=0.6. The search algorithm provided 6 grasps that are common to all parts. The output of the algorithm was one grasp of the 6 with the highest quality measure.
While some embodiments of the invention have been described by way of illustration, it will be apparent that the invention can be carried out with many modifications variations and adaptations, and with the use of numerous equivalents or alternative solutions that are within the scope of persons skilled in the art, without departing from the spirit of the invention or exceeding the scope of the claims.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/IL2013/050767 | 9/11/2013 | WO | 00 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2014/041538 | 3/20/2014 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
20060012198 | Hager | Jan 2006 | A1 |
20060250401 | Pannese et al. | Nov 2006 | A1 |
Entry |
---|
“A new solution to design polyvalent gripper systems for industrial applications”. ©1994 IEEE. |
Chang, Lillian, Joshua R. Smith, and Dieter Fox. “Interactive singulation of objects from a pile.” Robotics and Automation (ICRA), 2012 IEEE International Conference on. IEEE, 2012. |
Bajaj, Chandrajit L., and Daniel R. Schikore. “Error-bounded reduction of triangle meshes with multivariate data.” Electronic Imaging: Science & Technology. International Society for Optics and Photonics, 1996. |
Coelho, Jefferson, Justus Piater, and Roderic Grupen. “Developing haptic and visual perceptual categories for reaching and grasping with a humanoid robot.” Robotics and Autonomous Systems 37.2 (2001): 195-218. |
International Search Report dated Jan. 6, 2014 for PCT/IL2013/050767. |
Avishai Sintov, Srinivas Raghothama, Roland Menassa and Amir Shapiro, “A Common 3-finger grasp Search Algorithm for a Set of Planar Objects”, Aug. 24, 2012. |
Avishai Sintov, Roland Menassa and Amir Shapiro, “A Common n-finger grasp Search Algorithm for a Set of 3D Objects”, Dec. 31, 2012. |
Maximo Roa and Raul Suarez, “Frictionless grasp with 7 fingers on discretized 3D objects” Jun. 30, 2006. |
A. Sahbani, S. El-Khoury and P. Bidaud, “An Overview of 3D Object Grasp Synthesis Algorithms”, UPMC Univ Paris 06, Sep. 12, 2012. |
Number | Date | Country | |
---|---|---|---|
20150242540 A1 | Aug 2015 | US |
Number | Date | Country | |
---|---|---|---|
61700346 | Sep 2012 | US |