Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

1 Introduction

In this book, we focus on the grasping problem, consisting of determining the grasp required to carry out certain manipulation tasks on an object.

Definition 2.1

A grasp is commonly defined as a set of contacts on the surface of the object, which purpose is to constrain the potential movements of the object in the event of external disturbances [14].

For a specific robotic hand, different grasp types are planned and analysed in order to decide which one to execute. A contact model should be defined to determine the forces or torques that the robot manipulator must exert on the contact areas. Most of the work in robotics assume point contacts, and larger areas of contact are usually discretized to follow this assumption [2]. Two main problems can be distinguished in robotic grasping: analysis and synthesis [5].

Definition 2.2

Grasp analysis consists on finding whether the grasp is stable using common closure properties, given an object and a set of contacts. Then, quality measures can be evaluated in order to enable the robot to select the best grasp to execute.

Definition 2.3

Grasp synthesis is the problem of finding a suitable set of contacts given an object and some constraints on the allowable contacts.

In the following sections, a detailed description of the contact models and the most common approaches for grasp analysis and synthesis are presented. The definitions of the terminology and notation are mainly taken from [3, 6] where the reader is referred to find a complete overview of the modelling of contact interfaces and an introduction of the fundamental models of grasp analysis.

2 Contact Modelling

2.1 Contact Kinematics

Consider a manipulator contacting a rigid body whose position and orientation is specified by the location of the origin of a coordinate frame \(\{O\}\) fixed to the object and the orientation of this coordinate frame relative to an inertial frame \(\{W\}\) fixed in the world (see Fig. 2.1). Let \(p \in \mathbb R ^{3}\) be the position of the object and \(c_i \in \mathbb R ^{3}\) the location of a contact point \(i\) relative to \(\{W\}\). At this contact point, we define a frame \(\{C\}_i\) with axis \(\{\hat{n}_i,\hat{t}_i,\hat{o}_i\}\) where \(\hat{n}_i\) is the unit normal to the contact tangent plane and is directed toward the object. The other two unit vectors are orthogonal and lie in the tangent plane of the contact. For readers’ convenience, a list of notations is given in Table 2.1.

Table 2.1 Notations
Fig. 2.1
figure 1

Notation for an object in contact with a manipulator

Definition 2.4

A twist is the representation of the spacial velocity of the object and can be written as \(t \in \mathbb R ^{6}\):

$$\begin{aligned} t = \left( \begin{array}{l} \upsilon \\ \omega \\ \end{array} \right) \end{aligned}$$
(2.1)

where \(\upsilon \in \mathbb R ^3\) is the linear velocity of point \(p\) and \(\omega \in \mathbb R ^3\) is the angular velocity of the object in the world frame \(\{W\}\).

Definition 2.5

A contact can be defined as a joint between the finger and the object. The shape of the contacting surfaces and the stiffness and frictional characteristics of the contacting bodies define the nature of this joint [5].

A point contact acting on the object provides a unilateral constraint which prevents the object from locally moving against the contact normal [6].

Definition 2.6

The force applied by a finger at the contact point generates a wrench on the object with force and torque components, represented by vector \(w_i \in \mathbb R ^{6}\):

$$\begin{aligned} w_i = \left( \begin{array}{ll} f_i\\ \tau _i\\ \end{array} \right) = \left( \begin{array}{l l} \hat{n}_i \\ (c_i-p)\times \hat{n}_i\\ \end{array} \right) \end{aligned}$$
(2.2)

where \(f_i \in \mathbb R ^3\) is the force applied to the object at the point \(c_i\) and \(\tau _i \in \mathbb R ^3\) the resulting moment at point \(p\).

As forces and torques are dimensionally different, a parameter \(\rho \) is introduced:

$$\begin{aligned} w_i = \left( \begin{array}{ll} f_i\\ \tau _i/\rho \\ \end{array} \right) \end{aligned}$$
(2.3)

Selecting \(\rho \) to have length units, allows all the components of \(w\) to have units of force. Two approaches to define \(\rho \) have been presented in [7]. One approach considers \(\rho \) as the largest distance from the object’s centre of mass to any point of the object. This restricts the maximum torque to the maximum applied force, which is typically considered unitary. The other approach considers \(\rho \) as the radius of gyration of the object. It has a physical meaning in terms of energy but is less used and more complex to calculate.

If there are multiple contacts acting on an object, the total set of wrenches \(w_o\) that can be transmitted to the object through the \(n_c\) contacts is the linear combination of all individual wrenches:

$$\begin{aligned} w_o = \sum _{i=1}^{n_c}w_i \end{aligned}$$
(2.4)

To prevent a grasp from slipping, the forces in the contacts (and their corresponding wrenches \(w_i\)) and any disturbing force or wrench \(w_{ext}\) have to be in equilibrium:

$$\begin{aligned} w_o + w_{ext} = 0 \end{aligned}$$
(2.5)

This equation is valid always that the contact forces satisfy the contact constrains described in the next section.

2.2 Contact Models

A contact model maps the forces that can be transmitted through the contact to the resultant wrenches \(w_i\) relative to the object. This map is determined by the geometry of the contacting surfaces and the material properties of the objects, which dictate friction and possible contact deformation [6]. The object’s centre of mass is commonly used as the reference point \(p\) in the object.

Fig. 2.2
figure 2

Contact models commonly used in robotics: a Contact without friction, b Contact with friction and c Soft-finger contact

Salisbury [8] proposed a taxonomy of eight contact models. Among these, the most common contact models used in robotic grasping (see Fig. 2.2) are the point contact model with and without friction and the soft-finger contact model [9]. Point contact models, also named rigid-body contact models, assume rigid-body models for the hand and the grasped object while the soft-finger contact models, also called compliant or regularised models, assume that the hand is a deformable element grasping a rigid body [6]. The former models assume the collision to be an instantaneous and discontinuous phenomenon (discrete event) and the equations of motion are derived by balancing the system’s momenta before and after the impact. In contrast, compliant models describe the normal and tangential compliance relations over time.

Point contact without friction

A point contact without friction can only transmit forces along the normal to the object surface at the contact point. No deformations are allowed at the points of contact between the two bodies and, instead, contact forces arise from the constraint of incompressibility and impenetrability between the rigid bodies. This model is used when the contact patch is very small and the surfaces of the hand and object are slippery [3]. It does not represent the real contact situations that appear in robotic manufacturing operations [10, 11] and, when used, the machine accuracy is negatively affected. Moreover, they are not capable of predicting the individual contact forces of a multiple-contact fixture [12, 13].

Point contact with friction

A point contact with friction is used when there is significant contact friction, but the contact patch is small so that no appreciable friction moment exists [3]. Therefore, it can transmit forces in the normal and tangential directions to the surface at the contact point but non of the moment components are transmitted.

A number of models have been developed which attempt to capture the essence of the complicated friction phenomena [14]. The classical model, called Coulomb friction, is based on the idea that friction opposes motion and that its magnitude is independent of the velocity and contact area. It is an empirical model that asserts that the allowed tangential force is proportional to the applied normal force by \(f_t\le \mu f_n \), where \(\mu \) is called the friction coefficient of the contacting materials. The friction forces can be represented geometrically as a friction cone where the set of all forces that can be applied is constrained to be inside a cone centred about the surface normal (see Fig. 2.3) with half-angle \(\beta = tan^{-1}(\mu )\). In the spacial case, the friction cone is a circular cone, defined by

$$\begin{aligned} \sqrt{f_{t_i}^2+f_{o_i}^2}\le \mu f_{n_i}, f_{n_i}\ge 0. \end{aligned}$$
(2.6)

For computational purposes, the friction cone can be approximated by an inscribed regular polyhedral cone with \(m\) faces, as shown in Fig. 2.3b. The largest the \(m\) the better the approximation, but also the larger the computational cost. The wrenches generated by forces along the edge of the discretized friction cone are referred to as primitive wrenches.

Fig. 2.3
figure 3

Friction cone: a Spacial representation and b approximation as an inscribed polyhedral cone

Many other friction models have been developed as aggregate models of complex microscopic behaviour with different functional dependencies on factors such as the speed of sliding and the duration of the static contact before sliding. For example, the LuGre friction model [15] later used in Sect. 3.4 to model the behaviour of tactile sensors, accounts for both static and sliding phenomena based on a bristle deflection interpretation.

In this contact model, contact forces arise from two sources: the rigid-body model assumption for both the hand and the object, and the frictional forces. The use of this contact model in the manipulation planning problem has led to some interesting conclusions. There may be multiple solutions to a particular problem (ambiguity) or there may be no solutions (inconsistency) [16]. This kind of contact models have been used for analysing the tip-over problem of a planar object that is being pushed by a finger from a quasistatic point of view, i.e. neglecting the dynamic properties of the robot and the object [1719].

Soft-finger contact

Finally, the soft contact model is used when the surface friction and the contact patch are large enough to generate significant friction forces and a friction moment about the contact normal. It is used to model the contact between a soft finger and a rigid object allowing the finger to apply an additional torsional moment with respect to the normal at the contact point [2025].

In order to model the pressure distribution in the contact area different models have been developed that fall into three main categories: analytical elasticity-based models, elastic foundation models (EFM) and finite element models (FEM) [26]. Analytical models are based on theoretical formulations of elasticity calculating contact areas and stresses on both the surface and the sub-surface of the contacting bodies, but are restricted to simple geometries. The classical Hertz contact model [27, 28] and others derived from it are part of this category. However, robotic fingertips are made of nonlinear elastic materials. For that reason, the Hertzian contact model does not accurately represent this type of contact. EFMs were developed in order to allow a simple discrete contact calculation in more general surface geometries modelling the deformable part of the contact as a layer over a rigid base, and a series of discrete and independent springs in the contact normal direction. An application of this category of models is presented in Sect. 3.4  where it is used to create a simulation of a general tactile sensor and validated in robot grasping applications. FEMs have been increasingly used over recent years given that they supply information about the sub-surface stresses and strain in volumetric finite elements. However, they are excessively time consuming for fast simulation in dynamic grasping and manipulation models. Therefore, simplified numerical models are interesting alternatives.

These soft contact models have been used in robotic applications. Xydas et al. [29, 30] presented a power-law theory for modelling nonlinear elastic contacts present in robotic fingers. More realistic and complicated models have been developed in the last few years that better represent the contact mechanics for soft fingers [20, 21, 31]. A soft contact model based on that of Ciocarlie et al. (2005) was used in this work to model the contact between objects and the human hand (Sect. 5.5.4).

Despite being the soft contact model the more accurate, it is the hard finger contact with friction the one that is used more often in robotics given the complexity and time-consuming restrictions to simulate real activities.

2.3 Selection Matrices

Each one of the previous contact models selects components of the contact twists to transmit between the hand and the object. This is done by equating a subset of the components of the hand and object twist at each contact [3].

Definition 2.7

A particular contact model is defined through the selection matrix \(B_i \in \mathbb R ^{l_i\times 6}\), which works like a filter selecting \(l_i\) components of the relative contact twist and sets them to zero.

$$\begin{aligned} B_i (t_{i,hand} - t_{i,obj}) = 0 \end{aligned}$$
(2.7)

\(B_i\) and \(l_i\) can be defined for each contact model as:

Point contact without friction

$$\begin{aligned} l_i = 1, B_i = \left[ \begin{array}{llllll} 1&0&0&0&0&0 \end{array} \right] \end{aligned}$$
(2.8)

Point contact with friction

$$\begin{aligned} l_i = 3, B_i = \left[ \begin{array}{l@{}l@{}l@{}l@{}l@{}l} 1 &{} 0 &{} 0 &{} 0 &{} 0 &{} 0\\ 0 &{} 1 &{} 0 &{} 0 &{} 0 &{} 0\\ 0 &{} 0 &{} 1 &{} 0 &{} 0 &{} 0\\ \end{array} \right] \end{aligned}$$
(2.9)

Soft-Finger contact

$$\begin{aligned} l_i = 4, B_i = \left[ \begin{array}{l@{}l@{}l@{}l@{}l@{}l} 1 &{} 0 &{} 0 &{} 0 &{} 0 &{} 0\\ 0 &{} 1 &{} 0 &{} 0 &{} 0 &{} 0\\ 0 &{} 0 &{} 1 &{} 0 &{} 0 &{} 0\\ 0 &{} 0 &{} 0 &{} 1 &{} 0 &{} 0\\ \end{array} \right] . \end{aligned}$$
(2.10)

After choosing a particular contact model for each contact, the selection matrix \(B\) for all \(n_c\) contacts can be calculated as:

$$\begin{aligned} B = \textit{Blockdiag}(B_1, \ldots , B_{n_c}) \in \mathbb R ^{l\times 6n_c} \end{aligned}$$
(2.11)

where the total number of twist components \(l\) transmitted through the \(n_c\) contacts is given by:

$$\begin{aligned} l = \sum _{i=1}^{n_c} l_i \end{aligned}$$
(2.12)

3 Grasp Analysis

Once the contact model has been established, it can be used to study tasks involving multiple contacts. The set of contacts defining each grasp can be analysed in order to test the grasp’s ability to resist disturbances and its dexterity properties. As it is presented afterwards, the grasps that can be maintained for every possible disturbing load are known as closure grasps. However, there is usually more than one grasp that fulfils this condition. That is why many metrics and approaches have been proposed to evaluate the dexterity of the selected grasps and determine which one is the best to be executed.

3.1 Grasp Matrix and Hand Jacobian

There are two matrices used in grasp analysis: the grasp matrix \(G\) and the hand Jacobian \(J\). They define the relevant velocity kinematics and force transmission properties of the contacts. They are introduced here, but a complete explanation can be found in [3].

Partial Grasp Matrix The transpose of the partial grasp matrix \(\tilde{G}_i \in \mathbb R ^{6\times 6}\) maps the object twist from \(\{W\}\) to the contact frame:

$$\begin{aligned} t_{i,obj} = \tilde{G}^T_it \end{aligned}$$
(2.13)

where \(t\) and \(t_{i,obj}\) denote the object twist related to \(\{W\}\) and to \(\{C\}_i\), respectively.

\(\tilde{G}_i\) can be calculated as:

$$\begin{aligned} \tilde{G}_i = \left( \begin{array}{lll} R_i &{} &{} 0\\ S(c_i-p)R_i &{} &{} R_i\\ \end{array} \right) \end{aligned}$$
(2.14)

where \(R_i \in \mathbb R ^{3\times 3}\) represents the rotation matrix of the \(\{C\}_i\) contact frame with respect to \(\{W\}\), \(c_i\) the position of the contact point, p the position of the object and \(S(c_i-p)\) is the cross-product matrix, that given a three-vector \(r=[r_x,r_y,r_z]^T\), \(S(r)\) is defined as:

$$\begin{aligned} S(r) = \left( \begin{array}{lll} 0 &{} -r_z &{} r_y\\ r_z &{} 0 &{} -r_x\\ -r_y &{} r_x &{} 0\\ \end{array} \right) \end{aligned}$$
(2.15)

Complete Grasp Matrix The complete grasp matrix \(\tilde{G} \in \mathbb R ^{6 \times 6n_c}\) is the combination of the partial grasp matrices for each of the \(n_c\) contact points.

$$\begin{aligned} \tilde{G}^T = \left( \begin{array}{l} \tilde{G}^T_1\\ \vdots \\ \tilde{G}^T_{n_c}\\ \end{array} \right) \end{aligned}$$
(2.16)

It maps the object twist from {W} to {C}:

$$\begin{aligned} t_{c,obj} = \tilde{G}^{Tt} \end{aligned}$$
(2.17)

where \(t_{c,obj} \in \mathbb R ^{6n_c}\) is a vector containing all the twist of the object in the contact frames:

$$\begin{aligned} t_{c,obj} = (t_{1,obj}^T \ldots t_{n_c,obj}^T)^{T} \end{aligned}$$
(2.18)

Partial Hand Jacobian The partial hand Jacobian \(\tilde{J}_i \in \mathbb R ^{6\times {n_q}}\) maps the manipulator joint velocities \(\dot{q}\) to the contact twists on the hand \(t_{i,hand}\), expressed in the contact frame \(\{C\}_i\):

$$\begin{aligned} t_{i,hand} = \tilde{J}_i\dot{q} \end{aligned}$$
(2.19)

where \(q ={[q_1 \ldots q_{n_q}]}^T\) represents the vector of joint displacements and \(n_q\) the number of hand joints.

\(\tilde{J}_i\) can be calculated as:

$$\begin{aligned} \tilde{J}_i = R_{i} \left( \begin{array}{l l l} d_{i,1} &{} \ldots &{} d_{i,n_q}\\ l_{i,1} &{} \ldots &{} l_{i,n_q}\\ \end{array} \right) \end{aligned}$$
(2.20)

where:

$$\begin{aligned} d_{i,j} = \left\{ \begin{array}{l@{\quad }l} 0_{3\times 1} &{} \text{ if } \text{ contact } \text{ i } \text{ does } \text{ not } \text{ affect } \text{ the } \text{ joint } \text{ j }\\ S(c_i-\zeta _{j})^T \hat{z}_j &{} \text{ if } \text{ joint } \text{ j } \text{ is } \text{ revolute }\\ \end{array}\right. \end{aligned}$$
(2.21)
$$\begin{aligned} l_{i,j} = \left\{ \begin{array}{l@{\quad }l} 0_{3\times 1} &{} \text{ if } \text{ contact } \text{ i } \text{ does } \text{ not } \text{ affect } \text{ the } \text{ joint } \text{ j }\\ \hat{z}_j &{} \text{ if } \text{ joint } \text{ j } \text{ is } \text{ revolute }\\ \end{array}\right. \end{aligned}$$
(2.22)

being \(\zeta _{j}\) the origin of the coordinate frame associated with the j-th joint and \(\hat{z}_j\) the unit vector in the direction of the rotational axis for the revolute joint, expressed in \(\{W\}\).

Complete Hand Jacobian \(\tilde{J}\) The complete hand Jacobian \(\tilde{J} \in \mathbb R ^{6n_c\times {n_q}}\) is the combination for each of the \(n_c\) contact points:

$$\begin{aligned} \tilde{J} = \left( \begin{array}{l} \tilde{J}_1\\ \vdots \\ \tilde{J}_{n_c}\\ \end{array} \right) \end{aligned}$$
(2.23)

It maps the joint velocities to the twists of the hand expressed in the contact frames:

$$\begin{aligned} t_{c,hand} = \tilde{J}\dot{q} \end{aligned}$$
(2.24)

where \(t_{c,hand} \in \mathbb R ^{6n_c}\) is a vector containing all the twist of the hand in the contact frames:

$$\begin{aligned} t_{c,hand} = (t_{1,hand}^T \ldots t_{n_c,hand}^T)^T \end{aligned}$$
(2.25)

Grasp Matrix G and Hand Jacobian J After choosing a transmission model for each contact, as explained in Sect. 2.2.2, the contact constraint equations (Eq. 2.7) for all \(n_c\) contacts can be written in compact form as:

$$\begin{aligned} B(t_{c,hand} - t_{c,obj} ) = 0 \end{aligned}$$
(2.26)

By substituting into this equation \(t_{c,hand}\) (Eq. 2.24) and \(t_{c,obj}\) (Eq. 2.17) one obtains:

$$\begin{aligned} B(\tilde{J}\dot{q} - \tilde{G}^{T}t ) = 0 \end{aligned}$$
(2.27)

Defining the grasp matrix \(G\) and hand Jacobian \(J\) as:

$$\begin{aligned} G^T = B\tilde{G}^T \end{aligned}$$
(2.28)
$$\begin{aligned} J = B\tilde{J}, \end{aligned}$$
(2.29)

the contact constraint equations for all \(n_c\) contacts can be written as:

$$\begin{aligned} (J - G^T)\left( \begin{array}{l} \dot{q}\\ t \end{array} \right) = 0 \end{aligned}$$
(2.30)

or:

$$\begin{aligned} J\dot{q} = t_{cc,hnd} = t_{cc,obj} = G^Tt \end{aligned}$$
(2.31)

where \(t_{cc,hnd}\) and \(t_{cc,obj}\) contain only the components of the twist that are transmitted by the contacts.

Grasp Jacobian The grasp Jacobian \(G_J\) is the transformation from the joint velocities to the velocity of the object being grasped [32]:

$$\begin{aligned} t = G_J\dot{q} \end{aligned}$$
(2.32)

It takes into account the transformations for each finger from joint velocities to fingertip Cartesian velocity (\(J\)), the contact relationships and the transformations from the contact frames of reference to the object frame of reference (\(G\)). Thus, it is a function of the hand posture and the lengths of the finger segments.

$$\begin{aligned} G_J = (G^+)^T J \end{aligned}$$
(2.33)

with \(G^+\) being the generalized inverse of G. Figure 2.4 summarizes the relationships between velocities in a multi-fingered grasp.

Fig. 2.4
figure 4

Diagram of relationships between velocities for a multi-fingered grasp

3.2 Disturbance Resistance

The first test for evaluating a grasp consists of determining its ability to constrain the motions of the manipulated object and to apply arbitrary contact forces on the object without violating friction constraints at the contacts [33]. Two commonly used properties have been proposed to ensure this condition: force and form closure.

Definiton 8

A grasp is in force-closure if the fingers can apply, through the set of contacts, arbitrary wrenches on the object, which means that any motion of the object is resisted by the contact forces [34].

Definiton 9

A grasp is in form-closure if the location of the contact points on the object ensures its immobility [33].

Form closure is a stronger condition than force closure and it is mostly used when executing power grasps [3]. Force closure is possible with fewer contacts, making it suitable for executing precision grasps, but it requires the ability to control internal forces.

The analysis of form closure is intrinsically geometric. [35] stated that a necessary and sufficient condition for form-closure is that the contact wrenches of the grasp positively span the whole wrench space.

Definiton 10

A grasp wrench space (\(G\!W\!S\)) is the space of wrenches that can be applied to the object at each contact point.

The boundary of the wrench space can be calculated as a convex hull. Form-closure then can be equivalently determined verifying if the origin of the wrench space lies inside this convex hull [36]. Based on the above necessary and sufficient conditions, many tests that have been proposed by [34, 37, 38]. Ferrari and Canny [39] is the most widely-used. They proposed to calculate the radius of the largest ball inscribed in the convex hull centred in the origin and verify that it is larger than zero. Zhu and Wang [40] developed a numerical test which measures the scaling factor for the maximum compact set inscribed in the \(G\!W\!S\) with centre in the origin.

Assessing the force-closure property of a robotic grasp is much more difficult because of the nonlinear nature of the Coulomb friction cone [40]. [41] formulated the force-closure test as 12 nonlinear programming problems. Trinkle [42] formalized the force closure condition as a linear programming problem. [33] observed that the force-closure problem is equivalent to the stability of an ordinary differential equation. [43] reformulated the force closure condition as a ray-shooting problem by linearizing the friction cones and proposed a clean-cut test for force closure grasps. [44] proposed a force-closure test representing the nonlinear friction cone constraints as linear matrix inequalities, for which efficient algorithms are now available. With the linearization of the friction cone, most of the existing form-closure tests can be generalized to force-closure analysis. [45] proposed a numerical criterion for 3-D grasps with frictional point contacts or soft contacts, formulated as a convex constrained optimization problem without linearization of the friction cone. More recently, [46] proposed an algorithm for computing the distance between a point and a convex cone in \(n\)-dimensional space that can be applied to force-closure test and improve their efficiency.

3.3 Optimal Contact Forces Computation

The actual finger forces for a given grasp will be obtained by considering that they have to satisfy the dynamic equilibrium of the grasped object. Since the number of contacts is usually more than necessary, there is not a unique set of forces that ensures the equilibrium. Therefore the problem, referred to as grasping force optimization problem, needs to be solved computing the optimal finger forces that satisfy some optimization criterion, such as minimizing the magnitudes or inclination angles of contact forces [47].

It is a constrained optimization problem, for which a variety of general optimization methods are applicable. There have been a number of algorithms proposed in the last two decades aiming to solve it [43, 44, 4853]. Recently Zheng et al. have proposed new algorithms to improve the computation efficiency since it is desirable to obtain the contact force distribution in real-time [47, 54].

4 Grasp Synthesis

Given an object, grasp synthesis algorithms should provide a suitable set of contacts on the object surface and determine an appropriate hand configuration. Usually these algorithms take the geometry of the object as an input to select optimal force-closure contact locations or whole regions that yield force closure. These contacts are the starting point for grasp analysis and dexterous manipulation methods. Some approaches give only information about the finger contact locations on the object without considering the hand constraints. They can result in stable grasps that are not reachable in practice by the robot hand. Moreover, even if they are reachable, it is difficult to position the fingers precisely on the contact points because there will be always unavoidable errors locating the end-effector [55].

A number of force-closure test have been proposed based on specific geometric conditions for a given number of fingers. [34] proposed a geometric method for computing maximal independent two-finger grasps on polygons. [56] proposed an approach for synthesizing a three-fingered grasp on polygonal objects, and later extended to a four-fingered grasp on polyhedral objects [57], based on the concept of independent contact regions. [58] developed an algorithm for calculating all force-closure grasp configurations on polygons using the computational geometry technique. However these approaches are not suitable for the generic problem of planning an optimal force-closure grasps on general three-dimensional objects with any number of contact points.

Alternative approaches, called knowledge-based approaches, have considered the configuration of the hand by generating the grasp with a predefined set of hand postures. The idea of hand preshapes started with studies of the human prehension capabilities [59] that introduced the distinction between power and precision grasps. Following this work, [10] created a taxonomy in which details of the task and the object geometry are taken into account. Since then, several papers have adopted this approach for grasping [55, 60, 61]. [62] used the GraspIt! simulator [63] to test the set of hand preshapes on a 3D model of the object. Using a simulator has many advantages, including the ability to plan grasps in complex environments involving obstacles and also to check the reachability constraints of the robot arm. More recently OpenRAVE, a planning architecture that has a more flexible design, has been proposed to automate this process [64]. Examples of the generation of grasps hypotheses for several robot hands can be seen in Fig. 2.5.

Fig. 2.5
figure 5

Testing the set of hand preshapes for several robot hands using OpenRAVE

Grasp synthesis is presented and used in detail in Chaps. 3 and 4 for different robotic grasp applications.