WO2023200428A1 - Robotic gripper geometries - Google Patents

Robotic gripper geometries Download PDF

Info

Publication number
WO2023200428A1
WO2023200428A1 PCT/US2022/024366 US2022024366W WO2023200428A1 WO 2023200428 A1 WO2023200428 A1 WO 2023200428A1 US 2022024366 W US2022024366 W US 2022024366W WO 2023200428 A1 WO2023200428 A1 WO 2023200428A1
Authority
WO
WIPO (PCT)
Prior art keywords
fingerpad
geometries
geometry
robotic gripper
grasp
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/US2022/024366
Other languages
French (fr)
Inventor
Joyce Xin Yan LIM
Quang-Cuong PHAM
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanyang Technological University
Hewlett Packard Development Co LP
Original Assignee
Nanyang Technological University
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanyang Technological University, Hewlett Packard Development Co LP filed Critical Nanyang Technological University
Priority to PCT/US2022/024366 priority Critical patent/WO2023200428A1/en
Publication of WO2023200428A1 publication Critical patent/WO2023200428A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Program-controlled manipulators
    • B25J9/16Program controls
    • B25J9/1612Program controls characterised by the hand, wrist, grip control
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of program data in numerical form
    • G05B19/4097Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of program data in numerical form characterised by using design data to control NC machines, e.g. CAD/CAM
    • G05B19/4099Surface or curve machining, making three-dimensional [3D] objects, e.g. desktop manufacturing
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35189Manufacturing function, derive gripper position on workpiece from cad data
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35194From workpiece data derive tool data
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39409Design of gripper, hand
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39514Stability of grasped objects

Definitions

  • Robotic devices are used in many applications.
  • robotic grippers may be used to manipulate objects.
  • objects may be generated in a fabrication process.
  • Three-dimensional (3D) printing is an additive printing process used to make three-dimensional solid objects from a digital model. 3D printing is often used in rapid product prototyping, mold generation, mold master generation, and short run manufacturing. Some 3D printing techniques are considered additive processes because they involve the application of successive layers of material.
  • a robotic gripper may be used to grasp objects fabricated using 3D printing.
  • Fig. 1 illustrates a robotic device with robotic grippers, according to an example.
  • FIG. 2 is a flow diagram illustrating a pipeline for determining robotic gripper geometries, according to an example.
  • Fig. 3 illustrates determining a number of stable poses for an object, according to an example.
  • Fig. 4 illustrates grasp sampling of an object, according to an example.
  • Fig. 5 illustrates feasibility checks of the grasp sampling, according to an example.
  • Fig. 6 illustrates fingerpad customization without a filter, according to an example.
  • Fig. 7 illustrates examples of fingerpad customization with a filter, according to an example.
  • Fig. 8 is an illustration of volume ratios (R) for four geometries, according to an example.
  • Fig. 9 illustrates fingerpad customization with a filter, according to an example.
  • Fig. 10 is a flow diagram illustrating a method for determining robotic gripper geometry, according to an example.
  • Fig. 11 is a flow diagram illustrating another method for determining robotic gripper geometry, according to an example.
  • Fig. 12 depicts a non-transitory machine-readable storage medium for determining robotic gripper geometries, according to an example of the principles described herein.
  • robotic grippers may be used to grasp and manipulate objects.
  • a robotic gripper may grasp objects that are produced in a fabrication process.
  • 3D Printing and digital manufacturing can produce intricate printed objects in small batches or by mass production. For example, technologies such as multi jet fusion (MJF), metal jet printing (Metaljet), or elastomer printing can quickly print different types of objects with different geometries.
  • the 3D-printed (3DP) objects may be further subjected to post-printing processes.
  • these post-printing processes include cleaning, painting, surface finishing, and quality inspection. In some examples, these post-printing processes are conducted manually.
  • Robotics may provide dexterity through robot manipulators, which enable better part handling, and aid material flow such that end-to-end post-production treatments can be achieved.
  • grasping and manipulation of these 3DP parts can vary greatly.
  • manufacturing industries that are moving towards robotics automation may still use manual designing and grasp planning of manipulators. This specification introduces an end-to-end system to automatically customize fingerpads for robotic grippers, and to plan grasp locations for objects.
  • Precision and versatility are two objectives of robotic grasping.
  • the relative pose between the object and the robotic gripper may be tightly constrained. This is particularly desired when grasping is followed by such operations as high-precision assembly, high-precision loading, or quality control.
  • the robotic gripper may be able to grasp the same object from different initial poses, or different objects, without changing the gripper.
  • a gripper that is customized to grasp an object very precisely may not be able to grasp other objects with the same precision.
  • versatile grippers such as soft grippers or suction cups, may not be able to achieve high- precision grasping.
  • examples are described to customize robotic grippers.
  • fingerpads may be mounted on robotic grippers with multiple fingers (e.g., 2, 3, 4, etc.). The fingerpads may achieve precise, yet versatile grasping. These examples provide (i) methods based on set operators to synthesize gripper surfaces that can conform to multiple different local shapes; and (ii) methods to evaluate the grasp quality of the synthesized gripper surfaces. Once mounted on a physical robotic gripper, the described fingerpads are able to grasp multiple different objects at multiple grasp points, all with tightly constrained grasps.
  • the present specification describes examples of a method.
  • the example method determining a plurality of stable poses for an object based on a design file of the object.
  • the example method also includes determining a plurality of grasp locations on the object based on the plurality of stable poses for the object.
  • the example method further includes determining geometry for a robotic gripper based on the plurality of grasp locations for grasping the object.
  • the example method also includes printing the robotic gripper with a three- dimensional (3D) printer.
  • the present specification describes another example method that includes determining a plurality of stable poses for a plurality of objects.
  • the example method also includes determining a plurality of grasp locations on the plurality of objects based on the plurality of stable poses for the plurality of objects.
  • the example method further includes determining a plurality of fingerpad geometries for a robotic gripper based on the plurality of grasp locations.
  • the example method also includes selecting a final fingerpad geometry for the robotic gripper from among the plurality of fingerpad geometries.
  • the present specification also describes a non-transitory computer-readable storage medium comprising instructions executable by a processor to determine a plurality of stable poses for an object based on a design file of the object.
  • the processor is to determine a plurality of grasp locations on the object based on the plurality of stable poses for the object and an approach direction for a robotic gripper.
  • the approach direction can differ for every stable pose. For example, if two stable poses were selected, a user may select to approach along the Z-direction in a first pose and approach along the X-direction in a second pose.
  • the processor is to also extract surface geometry of the object at the plurality of grasp locations.
  • the processor is to determine a plurality of fingerpad geometries for the robotic gripper based on the extracted surface geometry.
  • the processor is to select a final fingerpad geometry for the robotic gripper from among the plurality of fingerpad geometries.
  • the processor is to also generate a robotic gripper design file based on the final fingerpad geometry.
  • processor may be a processor resource, a controller, an applicationspecific integrated circuit (ASIC), a semiconductor-based microprocessor, a central processing unit (CPU), and a field-programmable gate array (FPGA), and/or other hardware device that executes instructions.
  • ASIC applicationspecific integrated circuit
  • CPU central processing unit
  • FPGA field-programmable gate array
  • the term “memory” may include a non-transitory computer-readable storage medium, where the computer-readable storage medium may contain, or store computer-usable program code for use by or in connection with an instruction execution system, apparatus, or device.
  • the memory may take many types of memory including volatile memory (e.g., RAM) and non-volatile memory (e.g., ROM).
  • Fig. 1 illustrates a robotic device 102 with robotic grippers 104, according to an example. It is to be understood that the robotic device 102 may include additional components and that some of the components described herein may be removed and/or modified. Furthermore, components of the robotic device 102 depicted in Fig. 1 may not be drawn to scale and thus, the robotic device 102 may have a different size and/or configuration other than as shown therein.
  • the robotic device 102 includes a pair of robotic grippers 104.
  • Each robotic gripper 104 includes a fingerpad 106 to grasp an object 108.
  • the examples described herein provide for determining the geometry (e.g., the shape) of the fingerpad 106 to facilitate grasping the object 108 in a number of different poses.
  • the term “pose” refers to the orientation of the object 108 with reference to the robotic device 102.
  • the geometry of the fingerpad 106 of a robotic gripper 104 may be determined for grasping a single object 108.
  • the geometry of the fingerpad 106 of a robotic gripper 104 may be determined for grasping a plurality of objects 108 with different shapes.
  • the present specification provides for aspects to determine the geometry of the fingerpad 106 of a robotic gripper 104.
  • a plurality of stable poses for the object 108 may be determined based on a design file of the object 108. Examples of the stable pose determination are described in Fig. 3.
  • geometry for a fingerpad 106 of a robotic gripper 104 is determined based on the plurality of plurality of stable poses for the object 108. Examples of the fingerpad geometry determination are described in Figs. 4-9.
  • a robotic device 102 may include a gripper with more than two fingers.
  • the examples described herein for determining fingerpad geometry may be applied to a three-finger gripper, a four-finger gripper, etc.
  • the described examples may return a single fingerpad geometry, multiple fingerpads may be fabricated with the single fingerpad geometry. These fingerpads may be mounted onto a finger model of three-finger grippers, four-finger grippers, etc.
  • multiple (e.g., 2, 3, 4, etc.) finger grippers the process flow described herein may be applied: determining stable poses, sampling grasp locations, customizing fingerpads, and selecting a final (e.g., best) fingerpad geometry.
  • Fig. 2 is a flow diagram illustrating a pipeline for determining robotic gripper geometries.
  • a design file e.g., an STL file
  • a configuration file with user-defined parameters is created. These user-defined parameters may include the paths of the design file, and robotic gripper specifications (e.g., opening size, desired fingerpad size).
  • the stable pose generator may output selected stable poses 207. Resting positions (i.e., the stable poses) of the objects and their probabilities of landing are calculated.
  • the stable pose generator enables versatility as multiple positions and approach directions can be selected to obtain a customized fingerpad that can grasp at all selected positions.
  • the approach direction is the manner in which the gripper approaches the objects.
  • the process of determining the stable poses is further described in Fig. 3.
  • the stable poses may be provided to a grasp sampler. For every stable pose, sampling is conducted along the geometry of the object according to the desired approach direction to return feasible grasp locations. The feasibility may be determined by running collision checks and ensuring the robotic gripper opening is large enough to accommodate the object.
  • the grasp sampler may output, at 211 , valid grasp surfaces (also referred to herein as grasp locations). The grasp sampling is further described in Figs. 4 and 5.
  • a fingerpad customization module receives the plurality of stable poses and the valid grasp surfaces. Local geometries at the valid grasp surfaces are extracted using set operators.
  • Commutative operations enable the addition of new grasp locations (for example, due to the addition of new objects or resting positions).
  • the number of fingerpads returned depends on the amount of feasible grasp locations.
  • the fingerpad customization module outputs fingerpad geometries. The fingerpad customization is further described in Figs. 6-9.
  • the stable poses and fingerpad geometries may be provided to a grasp quality evaluator.
  • the grasps of the fingerpads are subjected to quantitative evaluation of their geometric quality using the contact surfaces. Quality is computed across grasp locations for every fingerpad by a min-max approach to return the best fingerpad that can securely grasp multiple objects at different resting poses.
  • the grasp quality evaluation is further described in Fig. 9.
  • the grasp quality evaluator may output the best grasp surfaces.
  • the grasp quality evaluator may output a final (e.g., best) fingerpad geometry.
  • a finger model (e.g., a flat finger model) may be provided to a finger design module.
  • the finger design module mounts the fingerpad onto the finger model of the robotic grippers to obtain a print-ready design file (e.g., an STL model) of the customized robotic grippers.
  • the finger design module outputs the robotic gripper design file.
  • the finger design module outputs a single, symmetric finger design to be mounted on parallel grippers that can grasp at multiple positions per object.
  • FIG. 3 this example illustrates determining a number of stable poses 31 Oa-c for an object 308.
  • the process described in Fig. 3 may be implemented on a computing device having a processor and memory.
  • the processor may implement a stable pose generator to determine the stable poses 31 Oa-c.
  • the stable pose generator may determine resting positions of the object 308 and probabilities of landing on a planar surface.
  • the stable pose generator may enable versatility of a fingerpad as multiple positions and approach directions can be selected to obtain a customized fingerpad that can grasp at all selected positions of the object 308.
  • the approach direction is the manner in which the robotic gripper approaches the objects.
  • the stable poses 31 Oa-c may be determined through an interactive approach.
  • a user may select the stable poses 31 Oa-c of the object 308 that a robotic gripper is to grasp.
  • the stable poses 31 Oa-c may be resting positions of the object 308 on a planar surface.
  • the stable poses 31 Oa-c may define the approach directions of the robotic gripper, where an approach direction indicates the direction where the gripper approaches the object 308 in order to grasp it.
  • a top- down approach is used as there will be no restrictions caused by a potential collision of the robotic gripper (or other components of a robotic device) on a surface table, as compared to approaching from the object 308 from the side.
  • the flexibility of choosing the approach direction from the side is available.
  • the stable pose generator may receive a design file (e.g., an STL file) of the object 308.
  • the design file may be a digital representation of the object 308.
  • the stable pose generator may analyze the design file of the object 308.
  • the stable pose generator may generate a plurality of poses for the object 308 based on the design file analysis. For example, the stable pose generator return a set of possible resting positions of the object 308. These possible poses may be presented in an interface (e.g., a graphical user interface) for the user to select poses that are considered stable.
  • the interactive approach may be used so that the fingerpads of robotic grippers obtained can achieve better grasps at selected positions of the object 308. Furthermore, orientations of the object 308 that are less feasible or unlikely to occur in real world may be discarded.
  • the stable pose generator may compute stable orientations of a mesh and quasi-static probabilities of the mesh.
  • the stable pose generator may sample the location of the center of mass from a multivariate Gaussian, with the mean at the center of mass and a covariance equal to an identity matrix multiplied by sigma.
  • the stable pose generator may compute the stable resting poses of the mesh on a planar workspace and evaluates the probabilities of landing in each pose if the object 308 is dropped onto the table randomly by using a toppling graph.
  • the stable poses 310a-c returned are the 4x4 homogeneous transformation matrices that place the mesh against the planar surface. Illustration of generated stable poses 310a-c on a planar surface are shown in Fig. 3.
  • the number of selected stable poses is defined as Np.
  • the approach direction is defined as the axis in which the robotic gripper approaches the object 308, which depends on the coordinate system as depicted in Fig. 3. For example, the robotic gripper may approach the object 308 in a top-to-bottom manner if the Z-axis is chosen.
  • the computing device may determine the geometry of the fingerpad.
  • the fingerpad geometry may be determined in an automated fashion. During the fingerpad geometry determination, a fingerpad design and grasping locations may be determined for every selected stable pose.
  • the fingerpad geometry determination may use design file of the object 308, user-defined parameters selected stable poses, and a model of the gripper.
  • User-defined parameters include the path of the STL file on the computer, gripper specifications such as opening size, desired fingertip size, max allowable depth of penetration into object 308.
  • the gripper model may include a flat finger model. Examples of fingerpad geometry determination are now described in Figs. 4-9.
  • Fig. 4 illustrates grasp sampling of an object 408.
  • the process described in Fig. 4 may be implemented on a computing device having a processor and memory.
  • the processor may implement a grasp sampler to determining a plurality of grasp locations 412a-n, 414a-n on the object 408 based on the plurality of stable poses (e.g., Fig. 3, 310a-c) for the object 408.
  • sampling is conducted along the geometry of the object 408 according to the desired approach direction to return feasible grasp locations.
  • the feasibility is determined by running collision checks and ensuring the gripper opening is large enough to accommodate the object.
  • the aim of the grasp sampler is to obtain locations of feasible grasp surfaces and return rectangular samples (S) at these locations.
  • the grasp sample may sample grasp surfaces along the geometry of the object mesh at a stable pose, based on the desired approach direction of the robot gripper.
  • this sampling method employs a sliding window along the model of the object 408.
  • the size of a rectangular window may be the sized of fingerpad.
  • the sampling is conducted by sliding the fingerpad along the bounding box of the object 408, and then translating the sample onto the nearest intersection of the object 408.
  • the size of the rectangular fingerpad, or the sliding window is defined by the user. Feasible grasps are determined by running collision checks and whether the gripper opening is large enough to fit the object 408 at these surfaces. This sampling method may consider all surfaces on the object 408.
  • the grasp sampler samples potential grasp surfaces along the geometry of the object 408 at a resting pose according to the given approach directions.
  • the grasp sampler returns the grasp locations with respect to the local frame of the object 408 and rectangular fingerpad samples (S) at these locations.
  • the samples are returned as a pair because a parallel two-finger gripper is used. Illustrations on the fingerpad samples can be seen in Fig. 4, where identical colors represent a pair.
  • the size of the rectangular fingerpad, or the sliding window is defined by the user.
  • the thickness (T) also has to be specified in addition to the length (L) and width (W) of the sample.
  • the penetration depth (D) may be defined as the amount of penetration of the fingerpad sample into the object mesh, and 0 ⁇ D ⁇ T.
  • the approach directions selected by a user may determine the orientations of the gripper and the fingerpads.
  • the approach direction is along the Z-axis.
  • the fingerpads there are two possible directions for the fingerpads: (1 ) along the X-axis, and (2) along the Y-axis.
  • the grasp sampler samples potential grasp locations along the X-axis, where the stride of the samples is equivalent to L.
  • the grasp sampler samples all potential samples as a pair in both directions (e.g., along the X-axis and along the Y-axis), where the stride of the samples is equivalent to L/2.
  • the feasibility of these samples are determined by conducting the following checks.
  • the validity of the surface may be checked to ensure that a sufficiently large surface of the object 408 would be covered by the fingerpad. Collision may be checked to ensure that no collision occurs between the object 408 and any part of the gripper at grasp surfaces.
  • the gripper opening size may be checked where the object thickness at each grasp location is smaller than the specified gripper opening.
  • a sample pair or grasp location, would be considered as valid once the sample pair fulfills the conditions above.
  • Fig. 5 illustrates an example 510a of a collision 516, where the location of fingerpad 506a samples results in a collision between the gripper base 514a and the object 508.
  • Fig. 5 illustrates an example 510b of a valid pair of fingerpads 506b, where the object 508 does not collide with the gripper base 514b.
  • the grasp sampler may be executed for each selected stable pose to obtain a set of valid pairs for each stable pose.
  • Fig. 6 illustrates fingerpad customization without a filter. The process described in Fig. 6 may be implemented on a computing device having a processor and memory.
  • the processor may implement a fingerpad geometry analyzer to determine geometry for a robotic gripper based on the plurality of grasp locations for grasping the object.
  • the aim of the fingerpad geometry analyzer is to return fingertip geometries that can grasp the object at the selected stable poses of the object.
  • the geometries of the object are extracted using the fingerpad size specifications and the grasp locations (e.g., as determined in Figs. 4 and 5).
  • a good fingerpad geometry would conform well to the object without intersections.
  • a good fingerpad geometry does not protrude into the object, indicating that the fingerpad geometry follows strictly along the surface contour of the object.
  • the geometries at the grasping surface are to be extracted.
  • the extracted geometries of the first stable pose are combined with the geometries of the subsequent stable poses.
  • extracting the surface geometry of the plurality of objects includes determining a combination of set operators for surface geometry of the plurality of objects at the plurality of grasp locations.
  • the fingerpad geometry extraction may include the combination of Boolean intersections, unions, and subtractions with a volume threshold filter to differentiate 'good' and 'bad' geometries.
  • the number of geometries to be extracted may be defined as /V and rectangular fingerpad sample, S.
  • the customized fingerpad obtained is defined as P.
  • FIG. 6 A three-step approach to create P without the automatic filter is shown in Fig. 6, which illustrates the Boolean operations on a pair of fingerpads.
  • Fig. 6 illustrates the Boolean operations on a pair of fingerpads.
  • independent Boolean intersections (/ «) 611 a-b are determined from the intersection of every valid rectangular fingerpad sample (S) 607a-b and Gn, which is the nth geometry of the mesh bounded by the S.
  • the samples are obtained in the grasp sampler, as described above.
  • the intersections (In) 611a- b may be expressed as
  • the Boolean union (MN 613 may be expressed as
  • a Boolean subtraction of S 615 and MN 613 may be determined to obtain the fingerpad (P) 617 that has a shape which conforms to the mesh at Gn.
  • the fingerpad (P) 617 may be expressed as
  • Fig. 7 illustrates examples of fingerpad customization with a filter.
  • a volume threshold filter may be used that automatically differentiates ‘good’ and ‘bad’ geometries obtained from the set intersections of Fig. 6 by using a threshold (th), that can be user-defined.
  • Good geometries may be defined as shapes that will lead to fingerpads that can better restrict the object during grasping, while bad geometries will be less likely to restrict the object.
  • An example of a good geometry is a zig-zag geometry 719a or a deep bowl shape 719b.
  • a bad geometry is a relatively flat surface 719c.
  • the combination 701 of the good zig-zag geometry 719a and deep bowl shape 719b results in a good 717a.
  • the remaining combinations 703, 705, 707 illustrate the absorption of the zigzag shape 719a (e.g., good geometry) or deep bowl shape 719b in the presence of a relatively flat shape 719c (e.g., bad geometry) results in a P 717b, 717c, 717d with a shape that is unlikely to restrict the object.
  • the geometries may be evaluated using a volume ratio (P).
  • the differentiation between finger pad geometries may be determined using a volume threshold (t/?).
  • the volume ratio, R (VB ⁇ VI )/VB, where VB is the extents of the bounding box of In, and Vi is the volume of In. If P > th, this indicates that the geometry is good, and if P ⁇ th, this indicates that the geometry is bad.
  • This method is effective as it is also capable of filtering geometries that are relatively flat, such as edges with fillets because for these geometries, (VB - Vi ) ⁇ 0, which results in a smaller Rs.
  • Fig. 8 is an illustration of the respective volumes used in P for four geometries 818a-d.
  • the bounding box of S coincides with the bounding box of In.
  • the fingerpad has a thickness (T) 822.
  • the sample for a fingerpad has a depth (D) 820 of penetration.
  • examples 818a-d the corresponding extracted depths of the shape of interest (dn) are labeled as 824a-d.
  • Examples 818a and 818b return a large P (e.g., good geometries) while example 818c returns R « 0 (e.g., bad geometry).
  • Example 818d in Fig. 8 demonstrates the reasoning behind using the bounding box of intersection rather than the bounding box of the rectangle sample, so that the empty regions at both ends can be omitted.
  • the surface of the mesh is at an angle, this may result in excess volume in those empty regions of the bounding box, which increases R.
  • These scenarios may involve the edges of the mesh.
  • the surface normals of In may be clustered into groups with similar vector angles. If the largest cluster has a vector perpendicular to S, this indicates a flat geometry which is a bad geometry. If not, Gn is considered as a good geometry. The filtering is complete as every Gn is either labeled as ‘good’ or ‘bad’.
  • Fig. 9 illustrates fingerpad customization with a filter, according to an example.
  • the creation of P has three possible cases depending on the labels of every Gn.
  • P includes good geometries.
  • the determination follows the procedure in Fig. 6.
  • An illustration is Example 901 in Fig. 9.
  • good geometries 919a and 919b are combined resulting in the fingerpad geometry 917a.
  • P includes bad geometries.
  • a flat rectangular fingerpad with a thickness of (T- D) is obtained, as shown in Example 903 in Fig. 9.
  • S penetrates a rectangular block.
  • the intersection in this case will be also rectangular with dimensions L * W* D.
  • the subtraction will lead to a rectangular fingerpad 917b with thickness of (T - D).
  • P includes a mixture of good and bad geometries. To ensure that P conforms to both good and bad geometries, the first two steps in Fig. 6 may be amended.
  • intersections are applied for good geometries
  • a flat rectangle block B is included during the union to account for the bad geometries, as shown in Examples 905 and 907 in Fig. 9.
  • the flat rectangular block B may be added to the extracted surface geometry to flatten mixed surface geometries (e.g., both good and bad surface geometries).
  • the depth of the flat rectangular block (de) depends on dn, and dn * 0 if the geometries are good.
  • dB min( i , d2, ..., dn) * K, where K is a user-defined constant that affects that degree of ‘flatness’ of P.
  • a quantitative measure may be used to evaluate the grasp quality of the synthesized fingerpad geometry as numerous customized fingerpads may be obtained.
  • the grasp quality measurement may emphasize the geometric quality of the grasp by using the contact surfaces.
  • a variation of contact normal may be determined.
  • the concept of the geometric grasp quality is to immobilize objects by caging grasps.
  • the contact surfaces of a pair of gripper fingers would represent every surface normal of the sphere.
  • the variation of contact surface normals is a parameter that may be used to define the geometric quality of the fingerpads.
  • a wider variation would indicate a better grasp as curved fingerpads will achieve a better grasping of a sphere compared to flat fingerpads.
  • every surface contact normal on a pair of fingerpads may be mapped into a point on a unit sphere.
  • the quantitative evaluation may be defined as the Radius of the Largest Empty Sphere (RLES).
  • RLES Radius of the Largest Empty Sphere
  • the RLES may be computed using a combination of Voronoi vertices and Delaunay triangulation in 3D.
  • the convex hull of the input points is equivalent to their Delaunay triangulation on the surface of the sphere.
  • a solution for the largest empty circle in 2D may be obtained by using Voronoi vertices, as the edges of the Voronoi regions are also defined as the circumcenters of the triangles generated by Delaunay.
  • the spherical Voronoi vertices are possible centers of an empty sphere that intersects any Delaunay triangle at its three ends.
  • a search using KD-trees may be conducted to compute the RLES.
  • total surface contact area may be determined.
  • the variation of surface normals alone may be insufficient for the selection of the best customized fingerpad.
  • Another factor is the total surface area in contact with the object (A).
  • the total surface area is the sum of the contact areas, or grasping areas, of a fingerpad pair.
  • a small grasping area may indicate unstable grasping, even if there is large variation of surface normals.
  • An example is the grasping area of a tiny bump.
  • this grasp surface might be considered as higher quality when compared with a slightly larger grasping area with a small variation of surface normals, (e.g., a flat grasping area). This implies that the total surface area alone is also insufficient to quantify geometric grasp quality as these two factors both illustrate grasp quality.
  • E effective area
  • the contact surface and quality at each stable pose would vary.
  • the quality of the i th fingerpad geometry is the worst (e.g., minimum) possible grasp quality at the m th stable pose:
  • Qi min(Ei,i, Ei,2, ..., Ei,m).
  • the geometric quality of the best fingerpad geometry is then defined as
  • Qmax max(Qy, Q2, ..., Q/).
  • the min-max concept where the minimum was taken before the maximum, may be used to weed out cases that encompass both ends of the spectrum, i.e. a fingerpad that returns very small E and very large E together.
  • the best customized fingerpad and its corresponding grasp locations for every pose can be obtained. As such, a single fingerpad geometry that can securely grasp the several objects at different resting positions is achieved.
  • the fingerpad may be merged with a robotic gripper.
  • the fingerpad may be mounted onto a flat finger model to obtain a print-ready design file (e.g., STL model) of customized robotic grippers.
  • a processor may implement a finger design module to obtain print-ready fingers that can be directly attached to the robotic gripper.
  • the flat finger model is used in this section.
  • the designed fingertip geometry may be merge onto the flat finger model to obtain the gripper design.
  • Fig. 10 is a flow diagram illustrating a method 1000 for determining robotic gripper geometry, according to an example.
  • the method 1000 may be performed by a computing device that includes a processor and memory.
  • a plurality of stable poses may be determined for an object based on a design file of the object. This may be accomplished as described in Fig. 3.
  • the design file of the object may be analyzed.
  • a plurality of poses for the object may be generated based on the design file analysis.
  • a selection of the plurality of stable poses from the generated plurality of poses may be received.
  • a plurality of grasp locations on the object may be determined based on the plurality of stable poses for the object. This may be accomplished as described in Figs. 4 and 5. In some examples, multiple surfaces of the object may be sampled for each of the stable poses. In some examples, grasp surfaces on the object may be sampled at the plurality of stable poses based on an approach direction of the robotic gripper.
  • geometry for a robotic gripper may be determined based on the plurality of grasp locations for grasping the object. This may be accomplished as described in Figs 6-9.
  • the geometry of a fingerpad may be determined to grasp the object while in the plurality of stable poses.
  • the robotic gripper may include a plurality of fingerpads having indentations customized to the plurality of grasp locations.
  • the geometry for the robotic gripper is based further on an opening size for the robotic gripper, a fingerpad size of the robotic gripper, and a maximum allowable depth of penetration of the robotic gripper into the object.
  • the geometry of the fingerpad may be merged with a finger model (e.g., a flat finger model) to generate a model of the robotic gripper. This model may be saved as a design file for the robotic gripper.
  • the robotic gripper may be printed with a three-dimensional (3D) printer.
  • the robotic gripper may be printed using the design file that that merges the fingerpad geometry with the finger model.
  • Fig. 11 is a flow diagram illustrating another method 1100 for determining robotic gripper geometry, according to an example.
  • the method 1100 may be performed by a computing device that includes a processor and memory.
  • a plurality of stable poses may be determined for a plurality of objects. This may be accomplished as described in Fig. 3. It should be noted that the methods of Fig. 3 may be applied to multiple different objects to determine multiple stable poses for each object. For example, the design file of each object may be analyzed. A plurality of poses for each object may be generated based on the design file analysis. A selection (e.g., a user selection) of the plurality of stable poses may be received for each object.
  • a plurality of grasp locations on the plurality of objects may be determined based on the plurality of stable poses for the plurality of objects. This may be accomplished as described in Figs. 4 and 5 for each of the plurality of objects.
  • a plurality of fingerpad geometries for a robotic gripper may be determined based on the plurality of grasp locations. This may be accomplished as described in Figs 6-9.
  • a final fingerpad geometry for the robotic gripper may be selected from among the plurality of fingerpad geometries. For example, selecting the final fingerpad geometry for the robotic gripper may be based on a surface-contact geometric grasp quality measurement for each of the plurality of fingerpad geometries.
  • the surface-contact grasp quality measurement includes variation of contact surface normals for the plurality of fingerpad geometries; and a total surface contact area for the plurality of fingerpad geometries.
  • Fig. 12 depicts a non-transitory machine-readable storage medium 1230 for determining robotic gripper geometries, according to an example of the principles described herein.
  • a computing device 1226 includes various hardware components. Specifically, the computing device 1226 includes a processor 1228 and a machine-readable storage medium 1230. The machine-readable storage medium 1230 is communicatively coupled to the processor 1228. The machine-readable storage medium 1230 includes a number of instructions 1232, 1234, 1236, 1238, 1240, 1242 for performing a designated function. In some examples, the instructions may be machine code and/or script code.
  • the machine-readable storage medium 1230 causes the processor 1228 to execute the designated function of the instructions 1232, 1234, 1236, 1238, 1240, 1242.
  • the machine-readable storage medium 1230 can store data, programs, instructions, or any other machine-readable data that can be utilized to determine robotic gripper geometries.
  • Machine-readable storage medium 1230 can store machine readable instructions that the processor 1228 of the computing device 1226 can process, or execute.
  • the machine-readable storage medium 1230 can be an electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions.
  • Machine-readable storage medium 1230 may be, for example, Random-Access Memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage device, an optical disc, etc.
  • the machine-readable storage medium 1230 may be a non-transitory machine-readable storage medium 1230.
  • stable pose instructions 1232 when executed by the processor 1228, cause the processor 1228 to determine a plurality of stable poses for an object based on a design file of the object.
  • Grasp location instructions 1234 when executed by the processor 1228, cause the processor 1228 to determine a plurality of grasp locations on the object based on the plurality of stable poses for the object and an approach direction for a robotic gripper.
  • Surface geometry instructions 1236 when executed by the processor 1228, cause the processor 1228 to extract surface geometry of the object at the plurality of grasp locations.
  • Fingerpad geometry instructions 1238 when executed by the processor 1228, also cause the processor 1228 to determine a plurality of fingerpad geometries for the robotic gripper based on the extracted surface geometry.
  • Fingerpad selection instructions 1240 when executed by the processor 1228, cause the processor 1228 to select a final fingerpad geometry for the robotic gripper from among the plurality of fingerpad geometries.
  • Robotic gripper design instructions 1242 when executed by the processor 1228, cause the processor 1228 to generate a robotic gripper design file based on the final fingerpad geometry.
  • the instructions 1238 to determine the plurality of fingerpad geometries for the robotic gripper include instructions executable by the processor 1228 to 1) determine a plurality of Boolean intersections for surface geometry of the object at the plurality of grasp locations; 2) determine a Boolean union of the plurality of Boolean intersections; and 3) determine a Boolean subtraction of the Boolean union from a volume.
  • the instructions 1238 to determine the plurality of fingerpad geometries for the robotic gripper include instructions executable by the processor 1228 to filter the plurality of fingerpad geometries based on an ability of the plurality of fingerpad geometries to restrict the object when grasped by the robotic gripper at the plurality of grasp locations.
  • the instructions 1238 to determine the plurality of fingerpad geometries for the robotic gripper include instructions executable by the processor 1228 to add a flat rectangular block to the extracted surface geometry to flatten mixed surface geometries.
  • the final fingerpad geometry is selected from among the plurality of fingerpad geometries based on a determination that the final fingerpad geometry is to restrict the object more than other fingerpad geometries.

Landscapes

  • Engineering & Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)

Abstract

The present specification describes examples of a method. The example method determining a plurality of stable poses for an object based on a design file of the object. The example method also includes determining a plurality of grasp locations on the object based on the plurality of stable poses for the object. The example method further includes determining geometry for a robotic gripper based on the plurality of grasp locations for grasping the object. The example method also includes printing the robotic gripper with a three-dimensional (3D) printer.

Description

ROBOTIC GRIPPER GEOMETRIES
BACKGROUND
[0001] Robotic devices are used in many applications. For example, robotic grippers may be used to manipulate objects. In some examples, objects may be generated in a fabrication process. Three-dimensional (3D) printing is an additive printing process used to make three-dimensional solid objects from a digital model. 3D printing is often used in rapid product prototyping, mold generation, mold master generation, and short run manufacturing. Some 3D printing techniques are considered additive processes because they involve the application of successive layers of material. In some examples, a robotic gripper may be used to grasp objects fabricated using 3D printing.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] The accompanying drawings illustrate various examples of the principles described herein and are part of the specification. The illustrated examples are given merely for illustration, and do not limit the scope of the claims.
[0003] Fig. 1 illustrates a robotic device with robotic grippers, according to an example.
[0004] Fig. 2 is a flow diagram illustrating a pipeline for determining robotic gripper geometries, according to an example.
[0005] Fig. 3 illustrates determining a number of stable poses for an object, according to an example. [0006] Fig. 4 illustrates grasp sampling of an object, according to an example.
[0007] Fig. 5 illustrates feasibility checks of the grasp sampling, according to an example.
[0008] Fig. 6 illustrates fingerpad customization without a filter, according to an example.
[0009] Fig. 7 illustrates examples of fingerpad customization with a filter, according to an example.
[0010] Fig. 8 is an illustration of volume ratios (R) for four geometries, according to an example.
[0011] Fig. 9 illustrates fingerpad customization with a filter, according to an example.
[0012] Fig. 10 is a flow diagram illustrating a method for determining robotic gripper geometry, according to an example.
[0013] Fig. 11 is a flow diagram illustrating another method for determining robotic gripper geometry, according to an example.
[0014] Fig. 12 depicts a non-transitory machine-readable storage medium for determining robotic gripper geometries, according to an example of the principles described herein.
[0015] Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements. The figures are not necessarily to scale, and the size of some parts may be exaggerated to more clearly illustrate the example shown. Moreover, the drawings provide examples and/or implementations consistent with the description; however, the description is not limited to the examples and/or implementations provided in the drawings.
DETAILED DESCRIPTION
[0016] The present disclosure is drawn to robotic grippers. In some examples, robotic grippers may be used to grasp and manipulate objects. For example, a robotic gripper may grasp objects that are produced in a fabrication process. [0017] 3D Printing and digital manufacturing can produce intricate printed objects in small batches or by mass production. For example, technologies such as multi jet fusion (MJF), metal jet printing (Metaljet), or elastomer printing can quickly print different types of objects with different geometries. With these fabrication processes, the 3D-printed (3DP) objects may be further subjected to post-printing processes. In some examples, these post-printing processes include cleaning, painting, surface finishing, and quality inspection. In some examples, these post-printing processes are conducted manually. However, exposure to potentially hazardous agents may pose safety hazards to operators. Furthermore, manual labor may increase manufacturing costs associated with part breakage due to mishandling. Thus, robotics automation may provide a safer and more effective post-processing. Robotics may provide dexterity through robot manipulators, which enable better part handling, and aid material flow such that end-to-end post-production treatments can be achieved. [0018] Due to unique and varying geometries of objects, grasping and manipulation of these 3DP parts can vary greatly. Thus, manufacturing industries that are moving towards robotics automation may still use manual designing and grasp planning of manipulators. This specification introduces an end-to-end system to automatically customize fingerpads for robotic grippers, and to plan grasp locations for objects.
[0019] Precision and versatility are two objectives of robotic grasping. With regard to precision, the relative pose between the object and the robotic gripper may be tightly constrained. This is particularly desired when grasping is followed by such operations as high-precision assembly, high-precision loading, or quality control. With regard to versatility, the robotic gripper may be able to grasp the same object from different initial poses, or different objects, without changing the gripper.
[0020] A gripper that is customized to grasp an object very precisely may not be able to grasp other objects with the same precision. Conversely, versatile grippers, such as soft grippers or suction cups, may not be able to achieve high- precision grasping. In this specification, examples are described to customize robotic grippers. In some examples, fingerpads may be mounted on robotic grippers with multiple fingers (e.g., 2, 3, 4, etc.). The fingerpads may achieve precise, yet versatile grasping. These examples provide (i) methods based on set operators to synthesize gripper surfaces that can conform to multiple different local shapes; and (ii) methods to evaluate the grasp quality of the synthesized gripper surfaces. Once mounted on a physical robotic gripper, the described fingerpads are able to grasp multiple different objects at multiple grasp points, all with tightly constrained grasps.
[0021] The present specification describes examples of a method. The example method determining a plurality of stable poses for an object based on a design file of the object. The example method also includes determining a plurality of grasp locations on the object based on the plurality of stable poses for the object. The example method further includes determining geometry for a robotic gripper based on the plurality of grasp locations for grasping the object. The example method also includes printing the robotic gripper with a three- dimensional (3D) printer.
[0022] In another example, the present specification describes another example method that includes determining a plurality of stable poses for a plurality of objects. The example method also includes determining a plurality of grasp locations on the plurality of objects based on the plurality of stable poses for the plurality of objects. The example method further includes determining a plurality of fingerpad geometries for a robotic gripper based on the plurality of grasp locations. The example method also includes selecting a final fingerpad geometry for the robotic gripper from among the plurality of fingerpad geometries.
[0023] In yet another example, the present specification also describes a non-transitory computer-readable storage medium comprising instructions executable by a processor to determine a plurality of stable poses for an object based on a design file of the object. The processor is to determine a plurality of grasp locations on the object based on the plurality of stable poses for the object and an approach direction for a robotic gripper. In some examples, the approach direction can differ for every stable pose. For example, if two stable poses were selected, a user may select to approach along the Z-direction in a first pose and approach along the X-direction in a second pose. The processor is to also extract surface geometry of the object at the plurality of grasp locations. The processor is to determine a plurality of fingerpad geometries for the robotic gripper based on the extracted surface geometry. The processor is to select a final fingerpad geometry for the robotic gripper from among the plurality of fingerpad geometries. The processor is to also generate a robotic gripper design file based on the final fingerpad geometry.
[0024] As used in the present specification and in the appended claims, the term “processor” may be a processor resource, a controller, an applicationspecific integrated circuit (ASIC), a semiconductor-based microprocessor, a central processing unit (CPU), and a field-programmable gate array (FPGA), and/or other hardware device that executes instructions.
[0025] As used in the present specification and in the appended claims, the term “memory” may include a non-transitory computer-readable storage medium, where the computer-readable storage medium may contain, or store computer-usable program code for use by or in connection with an instruction execution system, apparatus, or device. The memory may take many types of memory including volatile memory (e.g., RAM) and non-volatile memory (e.g., ROM).
[0026] Turning now to the figures, Fig. 1 illustrates a robotic device 102 with robotic grippers 104, according to an example. It is to be understood that the robotic device 102 may include additional components and that some of the components described herein may be removed and/or modified. Furthermore, components of the robotic device 102 depicted in Fig. 1 may not be drawn to scale and thus, the robotic device 102 may have a different size and/or configuration other than as shown therein.
[0027] The robotic device 102 includes a pair of robotic grippers 104. Each robotic gripper 104 includes a fingerpad 106 to grasp an object 108. The examples described herein provide for determining the geometry (e.g., the shape) of the fingerpad 106 to facilitate grasping the object 108 in a number of different poses. As used herein, the term “pose” refers to the orientation of the object 108 with reference to the robotic device 102. [0028] In some examples, the geometry of the fingerpad 106 of a robotic gripper 104 may be determined for grasping a single object 108. In some examples, the geometry of the fingerpad 106 of a robotic gripper 104 may be determined for grasping a plurality of objects 108 with different shapes.
[0029] The present specification provides for aspects to determine the geometry of the fingerpad 106 of a robotic gripper 104. In a first aspect, a plurality of stable poses for the object 108 may be determined based on a design file of the object 108. Examples of the stable pose determination are described in Fig. 3. In a second aspect, geometry for a fingerpad 106 of a robotic gripper 104 is determined based on the plurality of plurality of stable poses for the object 108. Examples of the fingerpad geometry determination are described in Figs. 4-9.
[0030] It should be noted that in the examples described herein, a two-finger gripper approach is described. However, in other examples, a robotic device 102 may include a gripper with more than two fingers. For instance, the examples described herein for determining fingerpad geometry may be applied to a three-finger gripper, a four-finger gripper, etc. For example, the described examples may return a single fingerpad geometry, multiple fingerpads may be fabricated with the single fingerpad geometry. These fingerpads may be mounted onto a finger model of three-finger grippers, four-finger grippers, etc. For examples with multiple (e.g., 2, 3, 4, etc.) finger grippers, the process flow described herein may be applied: determining stable poses, sampling grasp locations, customizing fingerpads, and selecting a final (e.g., best) fingerpad geometry.
[0031] Fig. 2 is a flow diagram illustrating a pipeline for determining robotic gripper geometries. At 201 , a design file (e.g., an STL file) of an object may be provided to a stable pose generator 203. At 205, a configuration file with user- defined parameters is created. These user-defined parameters may include the paths of the design file, and robotic gripper specifications (e.g., opening size, desired fingerpad size). At 207, the stable pose generator may output selected stable poses 207. Resting positions (i.e., the stable poses) of the objects and their probabilities of landing are calculated. The stable pose generator enables versatility as multiple positions and approach directions can be selected to obtain a customized fingerpad that can grasp at all selected positions. The approach direction is the manner in which the gripper approaches the objects. The process of determining the stable poses is further described in Fig. 3. [0032] At 209, the stable poses may be provided to a grasp sampler. For every stable pose, sampling is conducted along the geometry of the object according to the desired approach direction to return feasible grasp locations. The feasibility may be determined by running collision checks and ensuring the robotic gripper opening is large enough to accommodate the object. The grasp sampler may output, at 211 , valid grasp surfaces (also referred to herein as grasp locations). The grasp sampling is further described in Figs. 4 and 5. [0033] At 213, a fingerpad customization module receives the plurality of stable poses and the valid grasp surfaces. Local geometries at the valid grasp surfaces are extracted using set operators. Commutative operations enable the addition of new grasp locations (for example, due to the addition of new objects or resting positions). The number of fingerpads returned depends on the amount of feasible grasp locations. At 215, the fingerpad customization module outputs fingerpad geometries. The fingerpad customization is further described in Figs. 6-9.
[0034] At 217, the stable poses and fingerpad geometries may be provided to a grasp quality evaluator. The grasps of the fingerpads are subjected to quantitative evaluation of their geometric quality using the contact surfaces. Quality is computed across grasp locations for every fingerpad by a min-max approach to return the best fingerpad that can securely grasp multiple objects at different resting poses. The grasp quality evaluation is further described in Fig. 9. At 219, the grasp quality evaluator may output the best grasp surfaces. At 221 , the grasp quality evaluator may output a final (e.g., best) fingerpad geometry.
[0035] At 223, a finger model (e.g., a flat finger model) may be provided to a finger design module. At 225, the finger design module mounts the fingerpad onto the finger model of the robotic grippers to obtain a print-ready design file (e.g., an STL model) of the customized robotic grippers. At 227, the finger design module outputs the robotic gripper design file. In some examples, the finger design module outputs a single, symmetric finger design to be mounted on parallel grippers that can grasp at multiple positions per object.
[0036] Turning now to Fig. 3, this example illustrates determining a number of stable poses 31 Oa-c for an object 308. The process described in Fig. 3 may be implemented on a computing device having a processor and memory. In some examples, the processor may implement a stable pose generator to determine the stable poses 31 Oa-c.
[0037] In some examples, the stable pose generator may determine resting positions of the object 308 and probabilities of landing on a planar surface. The stable pose generator may enable versatility of a fingerpad as multiple positions and approach directions can be selected to obtain a customized fingerpad that can grasp at all selected positions of the object 308. The approach direction is the manner in which the robotic gripper approaches the objects.
[0038] In some examples, the stable poses 31 Oa-c may be determined through an interactive approach. In this interactive approach, a user may select the stable poses 31 Oa-c of the object 308 that a robotic gripper is to grasp. The stable poses 31 Oa-c may be resting positions of the object 308 on a planar surface. The stable poses 31 Oa-c may define the approach directions of the robotic gripper, where an approach direction indicates the direction where the gripper approaches the object 308 in order to grasp it. In some examples, a top- down approach is used as there will be no restrictions caused by a potential collision of the robotic gripper (or other components of a robotic device) on a surface table, as compared to approaching from the object 308 from the side. However, the flexibility of choosing the approach direction from the side is available.
[0039] In some examples, the stable pose generator may receive a design file (e.g., an STL file) of the object 308. The design file may be a digital representation of the object 308. The stable pose generator may analyze the design file of the object 308. The stable pose generator may generate a plurality of poses for the object 308 based on the design file analysis. For example, the stable pose generator return a set of possible resting positions of the object 308. These possible poses may be presented in an interface (e.g., a graphical user interface) for the user to select poses that are considered stable. The interactive approach may be used so that the fingerpads of robotic grippers obtained can achieve better grasps at selected positions of the object 308. Furthermore, orientations of the object 308 that are less feasible or unlikely to occur in real world may be discarded.
[0040] In some examples, the stable pose generator, extracted from a trimesh library, may compute stable orientations of a mesh and quasi-static probabilities of the mesh. In some examples, the stable pose generator may sample the location of the center of mass from a multivariate Gaussian, with the mean at the center of mass and a covariance equal to an identity matrix multiplied by sigma. The stable pose generator may compute the stable resting poses of the mesh on a planar workspace and evaluates the probabilities of landing in each pose if the object 308 is dropped onto the table randomly by using a toppling graph. The stable poses 310a-c returned are the 4x4 homogeneous transformation matrices that place the mesh against the planar surface. Illustration of generated stable poses 310a-c on a planar surface are shown in Fig. 3.
[0041] After obtaining the stable placements, selection of desired poses and corresponding approach directions may be conducted. The number of selected stable poses is defined as Np. The approach direction is defined as the axis in which the robotic gripper approaches the object 308, which depends on the coordinate system as depicted in Fig. 3. For example, the robotic gripper may approach the object 308 in a top-to-bottom manner if the Z-axis is chosen.
[0042] Once the plurality of stable poses 310a-c are selected, the computing device may determine the geometry of the fingerpad. In some examples, the fingerpad geometry may be determined in an automated fashion. During the fingerpad geometry determination, a fingerpad design and grasping locations may be determined for every selected stable pose. The fingerpad geometry determination may use design file of the object 308, user-defined parameters selected stable poses, and a model of the gripper. User-defined parameters include the path of the STL file on the computer, gripper specifications such as opening size, desired fingertip size, max allowable depth of penetration into object 308. In some examples, the gripper model may include a flat finger model. Examples of fingerpad geometry determination are now described in Figs. 4-9.
[0043] Fig. 4 illustrates grasp sampling of an object 408. The process described in Fig. 4 may be implemented on a computing device having a processor and memory. In some examples, the processor may implement a grasp sampler to determining a plurality of grasp locations 412a-n, 414a-n on the object 408 based on the plurality of stable poses (e.g., Fig. 3, 310a-c) for the object 408.
[0044] For every stable pose, sampling is conducted along the geometry of the object 408 according to the desired approach direction to return feasible grasp locations. The feasibility is determined by running collision checks and ensuring the gripper opening is large enough to accommodate the object. [0045] The aim of the grasp sampler is to obtain locations of feasible grasp surfaces and return rectangular samples (S) at these locations. The grasp sample may sample grasp surfaces along the geometry of the object mesh at a stable pose, based on the desired approach direction of the robot gripper. In some examples, this sampling method employs a sliding window along the model of the object 408. The size of a rectangular window may be the sized of fingerpad. In this case, the sampling is conducted by sliding the fingerpad along the bounding box of the object 408, and then translating the sample onto the nearest intersection of the object 408. In some examples, the size of the rectangular fingerpad, or the sliding window, is defined by the user. Feasible grasps are determined by running collision checks and whether the gripper opening is large enough to fit the object 408 at these surfaces. This sampling method may consider all surfaces on the object 408.
[0046] In some examples, the grasp sampler samples potential grasp surfaces along the geometry of the object 408 at a resting pose according to the given approach directions. The grasp sampler returns the grasp locations with respect to the local frame of the object 408 and rectangular fingerpad samples (S) at these locations. In some examples, the samples are returned as a pair because a parallel two-finger gripper is used. Illustrations on the fingerpad samples can be seen in Fig. 4, where identical colors represent a pair.
[0047] In an implementation, the size of the rectangular fingerpad, or the sliding window, is defined by the user. The thickness (T) also has to be specified in addition to the length (L) and width (W) of the sample. The penetration depth (D) may be defined as the amount of penetration of the fingerpad sample into the object mesh, and 0 < D < T.
[0048] In some examples, the approach directions selected by a user may determine the orientations of the gripper and the fingerpads. In Fig. 4, the approach direction is along the Z-axis. Hence, there are two possible directions for the fingerpads: (1 ) along the X-axis, and (2) along the Y-axis. In example 410a, the grasp sampler samples potential grasp locations along the X-axis, where the stride of the samples is equivalent to L. In example 410b, the grasp sampler samples all potential samples as a pair in both directions (e.g., along the X-axis and along the Y-axis), where the stride of the samples is equivalent to L/2.
[0049] After obtaining the samples, the feasibility of these samples are determined by conducting the following checks. The validity of the surface may be checked to ensure that a sufficiently large surface of the object 408 would be covered by the fingerpad. Collision may be checked to ensure that no collision occurs between the object 408 and any part of the gripper at grasp surfaces. The gripper opening size may be checked where the object thickness at each grasp location is smaller than the specified gripper opening.
[0050] In some examples, a sample pair, or grasp location, would be considered as valid once the sample pair fulfills the conditions above. Fig. 5 illustrates an example 510a of a collision 516, where the location of fingerpad 506a samples results in a collision between the gripper base 514a and the object 508. Fig. 5 illustrates an example 510b of a valid pair of fingerpads 506b, where the object 508 does not collide with the gripper base 514b.
[0051] For every object, the grasp sampler may be executed for each selected stable pose to obtain a set of valid pairs for each stable pose. The number of valid sample pairs for the mth pose is Ns,m, where m = 1 , 2, ... , Np. [0052] Fig. 6 illustrates fingerpad customization without a filter. The process described in Fig. 6 may be implemented on a computing device having a processor and memory. In some examples, the processor may implement a fingerpad geometry analyzer to determine geometry for a robotic gripper based on the plurality of grasp locations for grasping the object.
[0053] The aim of the fingerpad geometry analyzer is to return fingertip geometries that can grasp the object at the selected stable poses of the object. The geometries of the object are extracted using the fingerpad size specifications and the grasp locations (e.g., as determined in Figs. 4 and 5). In some examples, a good fingerpad geometry would conform well to the object without intersections. In other words, a good fingerpad geometry does not protrude into the object, indicating that the fingerpad geometry follows strictly along the surface contour of the object. Thus, the geometries at the grasping surface are to be extracted. To create a generic fingerpad for multiple stable poses, the extracted geometries of the first stable pose are combined with the geometries of the subsequent stable poses.
[0054] In some examples, extracting the surface geometry of the plurality of objects includes determining a combination of set operators for surface geometry of the plurality of objects at the plurality of grasp locations. For instance, the fingerpad geometry extraction may include the combination of Boolean intersections, unions, and subtractions with a volume threshold filter to differentiate 'good' and 'bad' geometries.
[0055] To obtain a contact surface that can snugly fit into different shapes, combinations of set operators may be used with an automatic filter that groups geometries using a volume threshold. The addition of new geometries can be easily performed due to commutative operations. In some examples, the Boolean operations are conducted using Blender.
[0056] The number of geometries to be extracted may be defined as /V and rectangular fingerpad sample, S. The nth geometry bounded by S and the mesh is Gn, where n = 1 , 2,
Figure imgf000014_0001
In is the Boolean intersection of S with Gn and the union of /V intersections is MN. The customized fingerpad obtained is defined as P.
[0057] A three-step approach to create P without the automatic filter is shown in Fig. 6, which illustrates the Boolean operations on a pair of fingerpads. At 601 of Fig. 6, independent Boolean intersections (/«) 611 a-b are determined from the intersection of every valid rectangular fingerpad sample (S) 607a-b and Gn, which is the nth geometry of the mesh bounded by the S. The samples are obtained in the grasp sampler, as described above. The intersections (In) 611a- b may be expressed as
(S n Gn = ln), n = 1, 2, ... , N.
[0058] At 603, the Boolean union MN) 613 of N intersections is determined.
The Boolean union (MN 613 may be expressed as
Figure imgf000015_0001
[0059] At 605, a Boolean subtraction of S 615 and MN 613 may be determined to obtain the fingerpad (P) 617 that has a shape which conforms to the mesh at Gn. The fingerpad (P) 617 may be expressed as
S - MN = P.
[0060] Fig. 7 illustrates examples of fingerpad customization with a filter. To enhance the robustness of the fingerpad customization, a volume threshold filter may be used that automatically differentiates ‘good’ and ‘bad’ geometries obtained from the set intersections of Fig. 6 by using a threshold (th), that can be user-defined. Good geometries may be defined as shapes that will lead to fingerpads that can better restrict the object during grasping, while bad geometries will be less likely to restrict the object. An example of a good geometry is a zig-zag geometry 719a or a deep bowl shape 719b. A bad geometry is a relatively flat surface 719c. It should be noted that bad geometries such as flat surfaces are supersets of all possible geometries, i.e. any geometry Gn can be subtracted from a flat rectangular pad. This also indicates that all intricate geometries will be absorbed away by a flat rectangular pad. Thus, if any In is flat, MN would also be flat, which results in a flat fingerpad, P, which is undesirable.
[0061] As illustrated in Fig. 7, the combination 701 of the good zig-zag geometry 719a and deep bowl shape 719b results in a good 717a. However, the remaining combinations 703, 705, 707 illustrate the absorption of the zigzag shape 719a (e.g., good geometry) or deep bowl shape 719b in the presence of a relatively flat shape 719c (e.g., bad geometry) results in a P 717b, 717c, 717d with a shape that is unlikely to restrict the object. This demonstrates the impact of differentiating between geometries as the gripper would be unable to properly grasp the zig-zag surface with the combinations 717b, 717c, 717d.
[0062] To identify and avoid bad combinations of geometries, the geometries may be evaluated using a volume ratio (P). The differentiation between finger pad geometries may be determined using a volume threshold (t/?). The volume ratio, R = (VB ~VI )/VB, where VB is the extents of the bounding box of In, and Vi is the volume of In. If P > th, this indicates that the geometry is good, and if P < th, this indicates that the geometry is bad.
[0063] This method is effective as it is also capable of filtering geometries that are relatively flat, such as edges with fillets because for these geometries, (VB - Vi ) ~ 0, which results in a smaller Rs.
[0064] Fig. 8 is an illustration of the respective volumes used in P for four geometries 818a-d. In many cases, the bounding box of S coincides with the bounding box of In. In these examples, the fingerpad has a thickness (T) 822. The sample for a fingerpad has a depth (D) 820 of penetration.
[0065] The volume of various sections used in P and the extracted depth of the shape of interest (dn) is illustrated in the four geometries 818a-d examples.
In examples 818a-d, the corresponding extracted depths of the shape of interest (dn) are labeled as 824a-d. Examples 818a and 818b return a large P (e.g., good geometries) while example 818c returns R « 0 (e.g., bad geometry).
Although d4 = D in example 818d, the value of P is considered valid as P = 0 (e.g., bad geometry). Example 818d in Fig. 8 demonstrates the reasoning behind using the bounding box of intersection rather than the bounding box of the rectangle sample, so that the empty regions at both ends can be omitted. [0066] When the surface of the mesh is at an angle, this may result in excess volume in those empty regions of the bounding box, which increases R. These scenarios may involve the edges of the mesh. Hence, the depth of the shape of interest (dn) for each Gn is extracted and if dn = D, this implies that there could be empty regions. In this case, the value of R obtained could be invalid. If d = D, R is valid if R = 0 (e.g., Example 818d of Fig. 8). Thus, to handle cases where R could be invalid, the surface normals of In may be clustered into groups with similar vector angles. If the largest cluster has a vector perpendicular to S, this indicates a flat geometry which is a bad geometry. If not, Gn is considered as a good geometry. The filtering is complete as every Gn is either labeled as ‘good’ or ‘bad’.
[0067] T o summarize, Gn is bad if (1 ) R ~ 0 or (2) if dn = D, the largest surface normal cluster is perpendicular to S. Gn is good if (1) R > th or (2) if dn = D, the largest surface normal cluster is not perpendicular to S. Any values of d is valid if Gn is good. If Gn is bad, dn = 0.
[0068] Fig. 9 illustrates fingerpad customization with a filter, according to an example. With the addition of the filter, the creation of P has three possible cases depending on the labels of every Gn. In a first case, P includes good geometries. In this case, the determination follows the procedure in Fig. 6. An illustration is Example 901 in Fig. 9. In Example 901 , good geometries 919a and 919b are combined resulting in the fingerpad geometry 917a.
[0069] In a second case, P includes bad geometries. A flat rectangular fingerpad with a thickness of (T- D) is obtained, as shown in Example 903 in Fig. 9. Suppose that S penetrates a rectangular block. The intersection in this case will be also rectangular with dimensions L * W* D. Thus, the subtraction will lead to a rectangular fingerpad 917b with thickness of (T - D). [0070] In a third case, P includes a mixture of good and bad geometries. To ensure that P conforms to both good and bad geometries, the first two steps in Fig. 6 may be amended. In the first step, intersections are applied for good geometries, while in the second step, a flat rectangle block B is included during the union to account for the bad geometries, as shown in Examples 905 and 907 in Fig. 9. Thus the flat rectangular block B may be added to the extracted surface geometry to flatten mixed surface geometries (e.g., both good and bad surface geometries). The depth of the flat rectangular block (de) depends on dn, and dn * 0 if the geometries are good. As such, dB = min( i , d2, ..., dn) * K, where K is a user-defined constant that affects that degree of ‘flatness’ of P. The minimum is considered rather than the maximum so that shallow complex geometries will not be absorbed away by B. In this approach, feedback is present across both good and bad geometries, which would increase the robustness of fingerpad customization and the quality of P (e.g., 917c, 917d) obtained.
[0071] To reiterate, new geometries can be added due to commutative operations. Hence, to obtain a customized fingerpad that is capable of grasping objects at multiple stable placements, a pair of fingerpads in each pose can be combined with another pair of fingerpads in the next pose (i.e., N = 4) as there are four geometries. This can be extended to multiple objects because the method is dependent on the number of geometries and not the number of objects.
[0072] The number of combinations (C), or customized fingerpads, depends on the number of valid pairs of fingerpads that is obtained as described in Fig.
4, and the number of stable poses that was selected (Np) in Fig. 3. For example, if Np = 2 and the first stable pose has three valid pairs of grasp surfaces (Ns, 1 = 3) while the second stable pose has four valid pairs of grasp surfaces (Ns, 2 = 4), this would result in C = Ns, 1 * Ns, 2 = 3*4 = 12, meaning that there are 12 possible customized fingerpads. [0073] In some examples, a quantitative measure may be used to evaluate the grasp quality of the synthesized fingerpad geometry as numerous customized fingerpads may be obtained. The grasp quality measurement may emphasize the geometric quality of the grasp by using the contact surfaces. [0074] In a first aspect of the grasp quality measurement, a variation of contact normal may be determined. The concept of the geometric grasp quality is to immobilize objects by caging grasps. For example, to fully immobilize a sphere, the contact surfaces of a pair of gripper fingers would represent every surface normal of the sphere. Thus, the variation of contact surface normals is a parameter that may be used to define the geometric quality of the fingerpads. A wider variation would indicate a better grasp as curved fingerpads will achieve a better grasping of a sphere compared to flat fingerpads. To quantify the variation, every surface contact normal on a pair of fingerpads may be mapped into a point on a unit sphere. The quantitative evaluation may be defined as the Radius of the Largest Empty Sphere (RLES). A larger variation of normals would result in more points on the unit sphere, which leads to a smaller RLES. Thus, a smaller RLES would indicate a better grasp.
[0075] The RLES may be computed using a combination of Voronoi vertices and Delaunay triangulation in 3D. The convex hull of the input points is equivalent to their Delaunay triangulation on the surface of the sphere. A solution for the largest empty circle in 2D may be obtained by using Voronoi vertices, as the edges of the Voronoi regions are also defined as the circumcenters of the triangles generated by Delaunay. Hence, the spherical Voronoi vertices are possible centers of an empty sphere that intersects any Delaunay triangle at its three ends. A search using KD-trees may be conducted to compute the RLES.
[0076] In a second aspect of the grasp quality measurement, total surface contact area may be determined. The variation of surface normals alone may be insufficient for the selection of the best customized fingerpad. Another factor is the total surface area in contact with the object (A). The total surface area is the sum of the contact areas, or grasping areas, of a fingerpad pair. A small grasping area may indicate unstable grasping, even if there is large variation of surface normals. An example is the grasping area of a tiny bump. On the other hand, this grasp surface might be considered as higher quality when compared with a slightly larger grasping area with a small variation of surface normals, (e.g., a flat grasping area). This implies that the total surface area alone is also insufficient to quantify geometric grasp quality as these two factors both illustrate grasp quality.
[0077] As the RLES tends to vary by small decimals, it may be difficult to quantify the difference in degree of quality across geometries using small values. To also combine the variation of contact normal and the total surface contact area, the RLES may be used as a weight in determining the effective area (E), which is the geometric quality of the ith customized fingerpad at the mth stable pose, while accounting for the total surface contact area at m: Ei,m = ( RLES) * Am, where / = 1 , 2, ...,C and m = 1 , 2, ...,Np. A larger E depicts a better quality as it indicates a larger A and smaller RLES.
[0078] With customized fingerpads capable of grasping the object at multiple poses, the contact surface and quality at each stable pose would vary. Thus, the quality of the ith fingerpad geometry is the worst (e.g., minimum) possible grasp quality at the mth stable pose: Qi = min(Ei,i, Ei,2, ..., Ei,m). The geometric quality of the best fingerpad geometry is then defined as
Qmax = max(Qy, Q2, ..., Q/).
[0079] The min-max concept, where the minimum was taken before the maximum, may be used to weed out cases that encompass both ends of the spectrum, i.e. a fingerpad that returns very small E and very large E together. After evaluation, the best customized fingerpad and its corresponding grasp locations for every pose can be obtained. As such, a single fingerpad geometry that can securely grasp the several objects at different resting positions is achieved.
[0080] Once the fingerpad geometry is determined, the fingerpad may be merged with a robotic gripper. For example, the fingerpad may be mounted onto a flat finger model to obtain a print-ready design file (e.g., STL model) of customized robotic grippers. In some examples, a processor may implement a finger design module to obtain print-ready fingers that can be directly attached to the robotic gripper. The flat finger model is used in this section. The designed fingertip geometry may be merge onto the flat finger model to obtain the gripper design.
[0081] Fig. 10 is a flow diagram illustrating a method 1000 for determining robotic gripper geometry, according to an example. In some examples, the method 1000 may be performed by a computing device that includes a processor and memory.
[0082] At 1002, a plurality of stable poses may be determined for an object based on a design file of the object. This may be accomplished as described in Fig. 3. For example, the design file of the object may be analyzed. A plurality of poses for the object may be generated based on the design file analysis. A selection of the plurality of stable poses from the generated plurality of poses may be received.
[0083] At 1004, a plurality of grasp locations on the object may be determined based on the plurality of stable poses for the object. This may be accomplished as described in Figs. 4 and 5. In some examples, multiple surfaces of the object may be sampled for each of the stable poses. In some examples, grasp surfaces on the object may be sampled at the plurality of stable poses based on an approach direction of the robotic gripper.
[0084] At 1006, geometry for a robotic gripper may be determined based on the plurality of grasp locations for grasping the object. This may be accomplished as described in Figs 6-9. For example, the geometry of a fingerpad may be determined to grasp the object while in the plurality of stable poses. The robotic gripper may include a plurality of fingerpads having indentations customized to the plurality of grasp locations. In some examples, the geometry for the robotic gripper is based further on an opening size for the robotic gripper, a fingerpad size of the robotic gripper, and a maximum allowable depth of penetration of the robotic gripper into the object. In some examples, the geometry of the fingerpad may be merged with a finger model (e.g., a flat finger model) to generate a model of the robotic gripper. This model may be saved as a design file for the robotic gripper.
[0085] At 1008, the robotic gripper may be printed with a three-dimensional (3D) printer. For example, the robotic gripper may be printed using the design file that that merges the fingerpad geometry with the finger model.
[0086] Fig. 11 is a flow diagram illustrating another method 1100 for determining robotic gripper geometry, according to an example. In some examples, the method 1100 may be performed by a computing device that includes a processor and memory.
[0087] At 1102, a plurality of stable poses may be determined for a plurality of objects. This may be accomplished as described in Fig. 3. It should be noted that the methods of Fig. 3 may be applied to multiple different objects to determine multiple stable poses for each object. For example, the design file of each object may be analyzed. A plurality of poses for each object may be generated based on the design file analysis. A selection (e.g., a user selection) of the plurality of stable poses may be received for each object.
[0088] At 1104, a plurality of grasp locations on the plurality of objects may be determined based on the plurality of stable poses for the plurality of objects. This may be accomplished as described in Figs. 4 and 5 for each of the plurality of objects.
[0089] At 1106, a plurality of fingerpad geometries for a robotic gripper may be determined based on the plurality of grasp locations. This may be accomplished as described in Figs 6-9. For example, the plurality of fingerpad geometries for the robotic gripper may include extracting the surface geometry of the plurality of objects at the plurality of grasp locations. Extracting the surface geometry of the plurality of objects may include determining a combination of set operators for surface geometry of the plurality of objects at the plurality of grasp locations.
[0090] At 1108, a final fingerpad geometry for the robotic gripper may be selected from among the plurality of fingerpad geometries. For example, selecting the final fingerpad geometry for the robotic gripper may be based on a surface-contact geometric grasp quality measurement for each of the plurality of fingerpad geometries. In some examples, the surface-contact grasp quality measurement includes variation of contact surface normals for the plurality of fingerpad geometries; and a total surface contact area for the plurality of fingerpad geometries.
[0091] Fig. 12 depicts a non-transitory machine-readable storage medium 1230 for determining robotic gripper geometries, according to an example of the principles described herein. To achieve its desired functionality, a computing device 1226 includes various hardware components. Specifically, the computing device 1226 includes a processor 1228 and a machine-readable storage medium 1230. The machine-readable storage medium 1230 is communicatively coupled to the processor 1228. The machine-readable storage medium 1230 includes a number of instructions 1232, 1234, 1236, 1238, 1240, 1242 for performing a designated function. In some examples, the instructions may be machine code and/or script code.
[0092] The machine-readable storage medium 1230 causes the processor 1228 to execute the designated function of the instructions 1232, 1234, 1236, 1238, 1240, 1242. The machine-readable storage medium 1230 can store data, programs, instructions, or any other machine-readable data that can be utilized to determine robotic gripper geometries. Machine-readable storage medium 1230 can store machine readable instructions that the processor 1228 of the computing device 1226 can process, or execute. The machine-readable storage medium 1230 can be an electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. Machine-readable storage medium 1230 may be, for example, Random-Access Memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage device, an optical disc, etc. The machine-readable storage medium 1230 may be a non-transitory machine-readable storage medium 1230.
[0093] Referring to Fig. 12, stable pose instructions 1232, when executed by the processor 1228, cause the processor 1228 to determine a plurality of stable poses for an object based on a design file of the object. Grasp location instructions 1234, when executed by the processor 1228, cause the processor 1228 to determine a plurality of grasp locations on the object based on the plurality of stable poses for the object and an approach direction for a robotic gripper. Surface geometry instructions 1236, when executed by the processor 1228, cause the processor 1228 to extract surface geometry of the object at the plurality of grasp locations. Fingerpad geometry instructions 1238, when executed by the processor 1228, also cause the processor 1228 to determine a plurality of fingerpad geometries for the robotic gripper based on the extracted surface geometry. Fingerpad selection instructions 1240, when executed by the processor 1228, cause the processor 1228 to select a final fingerpad geometry for the robotic gripper from among the plurality of fingerpad geometries. Robotic gripper design instructions 1242, when executed by the processor 1228, cause the processor 1228 to generate a robotic gripper design file based on the final fingerpad geometry.
[0094] In some examples, the instructions 1238 to determine the plurality of fingerpad geometries for the robotic gripper include instructions executable by the processor 1228 to 1) determine a plurality of Boolean intersections for surface geometry of the object at the plurality of grasp locations; 2) determine a Boolean union of the plurality of Boolean intersections; and 3) determine a Boolean subtraction of the Boolean union from a volume.
[0095] In some examples, the instructions 1238 to determine the plurality of fingerpad geometries for the robotic gripper include instructions executable by the processor 1228 to filter the plurality of fingerpad geometries based on an ability of the plurality of fingerpad geometries to restrict the object when grasped by the robotic gripper at the plurality of grasp locations.
[0096] In some examples, the instructions 1238 to determine the plurality of fingerpad geometries for the robotic gripper include instructions executable by the processor 1228 to add a flat rectangular block to the extracted surface geometry to flatten mixed surface geometries.
[0097] In some examples, the final fingerpad geometry is selected from among the plurality of fingerpad geometries based on a determination that the final fingerpad geometry is to restrict the object more than other fingerpad geometries.

Claims

CLAIMS What is claimed is:
1. A method, comprising: determining a plurality of stable poses for an object based on a design file of the object; determining a plurality of grasp locations on the object based on the plurality of stable poses for the object; determining geometry for a robotic gripper based on the plurality of grasp locations for grasping the object; and printing the robotic gripper with a three-dimensional (3D) printer.
2. The method of claim 1 , wherein the robotic gripper comprises a plurality of fingerpads having indentations customized to the plurality of grasp locations.
3. The method of claim 1 , wherein determining the plurality of stable poses for the object comprises: analyzing the design file of the object; generating a plurality of poses for the object based on the design file analysis; and receiving a selection of the plurality of stable poses from the generated plurality of poses.
4. The method of claim 1 , wherein the geometry for the robotic gripper is based further on an opening size for the robotic gripper, a fingerpad size of the robotic gripper, and a maximum allowable depth of penetration of the robotic gripper into the object.
5. The method of claim 1 , further comprising sampling grasp surfaces on the object at the plurality of stable poses based on an approach direction of the robotic gripper.
6. A method, comprising: determining a plurality of stable poses for a plurality of objects; determining a plurality of grasp locations on the plurality of objects based on the plurality of stable poses for the plurality of objects; determining a plurality of fingerpad geometries for a robotic gripper based on the plurality of grasp locations; and selecting a final fingerpad geometry for the robotic gripper from among the plurality of fingerpad geometries.
7. The method of claim 6, wherein determining the plurality of fingerpad geometries for the robotic gripper comprises extracting surface geometry of the plurality of objects at the plurality of grasp locations.
8. The method of claim 7, wherein extracting the surface geometry of the plurality of objects comprises determining a combination of set operators for surface geometry of the plurality of objects at the plurality of grasp locations.
9. The method of claim 6, wherein selecting the final fingerpad geometry for the robotic gripper is based on a surface-contact geometric grasp quality measurement for each of the plurality of fingerpad geometries.
10. The method of claim 9, wherein the surface-contact grasp quality measurement comprises: variation of contact surface normals for the plurality of fingerpad geometries; and total surface contact area for the plurality of fingerpad geometries.
11. A non-transitory computer-readable storage medium comprising instructions executable by a processor to: determine a plurality of stable poses for an object based on a design file of the object; determine a plurality of grasp locations on the object based on the plurality of stable poses for the object and an approach direction for a robotic gripper; extract surface geometry of the object at the plurality of grasp locations; determine a plurality of fingerpad geometries for the robotic gripper based on the extracted surface geometry; select a final fingerpad geometry for the robotic gripper from among the plurality of fingerpad geometries; and generate a robotic gripper design file based on the final fingerpad geometry.
12. The non-transitory computer-readable storage medium of claim 11 , wherein the instructions to determine the plurality of fingerpad geometries for the robotic gripper comprise instructions executable by the processor to: determine a plurality of Boolean intersections for surface geometry of the object at the plurality of grasp locations; determine a Boolean union of the plurality of Boolean intersections; and determine a Boolean subtraction of the Boolean union from a volume.
13. The non-transitory computer-readable storage medium of claim 11 , wherein the instructions to determine the plurality of fingerpad geometries for the robotic gripper further comprise instructions executable by the processor to: filter the plurality of fingerpad geometries based on an ability of the plurality of fingerpad geometries to restrict the object when grasped by the robotic gripper at the plurality of grasp locations.
14. The non-transitory computer-readable storage medium of claim 11 , wherein the instructions to determine the plurality of fingerpad geometries for the robotic gripper comprise instructions executable by the processor to: add a flat rectangular block to the extracted surface geometry to flatten mixed surface geometries.
15. The non-transitory computer-readable storage medium of claim 13, wherein the final fingerpad geometry is selected from among the plurality of fingerpad geometries based on a determination that the final fingerpad geometry is to restrict the object more than other fingerpad geometries.
PCT/US2022/024366 2022-04-12 2022-04-12 Robotic gripper geometries Ceased WO2023200428A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2022/024366 WO2023200428A1 (en) 2022-04-12 2022-04-12 Robotic gripper geometries

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2022/024366 WO2023200428A1 (en) 2022-04-12 2022-04-12 Robotic gripper geometries

Publications (1)

Publication Number Publication Date
WO2023200428A1 true WO2023200428A1 (en) 2023-10-19

Family

ID=81448353

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2022/024366 Ceased WO2023200428A1 (en) 2022-04-12 2022-04-12 Robotic gripper geometries

Country Status (1)

Country Link
WO (1) WO2023200428A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10275543B1 (en) * 2014-12-03 2019-04-30 X Development Llc End-of-arm fingertip pipeline
US20190152058A1 (en) * 2017-11-17 2019-05-23 The Hong Kong University Of Science And Technology Robotic fingertip design and grasping on contact primitives
US20210308866A1 (en) * 2020-04-03 2021-10-07 Fanuc Corporation Adaptive grasp planning for bin picking

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10275543B1 (en) * 2014-12-03 2019-04-30 X Development Llc End-of-arm fingertip pipeline
US20190152058A1 (en) * 2017-11-17 2019-05-23 The Hong Kong University Of Science And Technology Robotic fingertip design and grasping on contact primitives
US20210308866A1 (en) * 2020-04-03 2021-10-07 Fanuc Corporation Adaptive grasp planning for bin picking

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SCHROEFFER ANDREAS ET AL: "An Automated Design Approach for Task-Specific two Finger Grippers for Industrial Applications", 2019 IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND BIOMIMETICS (ROBIO), IEEE, 6 December 2019 (2019-12-06), pages 184 - 189, XP033691557, DOI: 10.1109/ROBIO49542.2019.8961500 *

Similar Documents

Publication Publication Date Title
CN109685848B (en) A neural network coordinate transformation method for 3D point cloud and 3D sensor
CN112836558A (en) Manipulator end adjustment method, device, system, equipment and medium
Dharmara et al. Robotic assembly of threaded fasteners in a non-structured environment
CN115922738B (en) Electronic component grabbing method, device, equipment and medium in stacking scene
US11775699B2 (en) Extracting grasping cues from tool geometry for digital human models
CN112435297A (en) Target object pose determining method and device, storage medium and electronic equipment
Zapata-Impata et al. Using Geometry to Detect Grasping Points on 3D Unknown Point Cloud.
CN115035195B (en) Point cloud coordinate extraction method, device, equipment and storage medium
KR101670270B1 (en) System and method for locating fiducials with known shape
CN115409805A (en) Workpiece weld joint identification method and device, computer readable medium and electronic equipment
Figueiredo et al. Robust cylinder detection and pose estimation using 3D point cloud information
Liu et al. A novel path planning method of robotic grinding for free-form weld seam based on 3D point cloud
Lieberman Model-driven vision for industrial automation
Arents et al. Construction of a smart vision-guided robot system for manipulation in a dynamic environment
Raible et al. Automatic path planning for robotic grinding and polishing tasks based on point cloud slicing
Trivedi et al. Sensor-driven intelligent robotics
JP2018185812A (en) Highly parallelizable algorithm for detecting intersection of shape
CN119115625A (en) A high-precision CNC machine tool workpiece positioning system based on machine vision
CN118744422A (en) A three-dimensional vision-based automatic gluing method and system
CN111687829A (en) Anti-collision control method, device, medium and terminal based on depth vision
Filaretov et al. The method of cutting of flexible parts using manipulators and information multiplexing from 3D vision system and CAD model
Pyo et al. Precise pose estimation using landmark feature extraction and blob analysis for bin picking
Kim et al. An analysis of factors affecting point cloud registration for bin picking
CN117162128B (en) A method for capturing pose estimation and related equipment
Peng et al. An improved algorithm for detection and pose estimation of texture-less objects

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22720202

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22720202

Country of ref document: EP

Kind code of ref document: A1