Existence Judgment Algorithm for the Internal Force Concurrent Polygon in Three-Fingered Dexterous Robotic Hands

The stable and precise manipulation of objects is a fundamental goal in robotics, and the multi-fingered dexterous robotic hand is a key platform for achieving this. Among these, the three-fingered dexterous robotic hand offers a compelling balance between mechanical complexity and functional capability. With only three contact points, it can achieve force-closure grasps on a wide variety of object shapes, provided the contacts are frictional. The ability to adjust internal forces is crucial for maintaining stability under external loads and disturbances. This article presents a comprehensive analysis and a definitive algorithm for judging the existence of a specific geometrical construct—the internal force concurrent polygon—which is a prerequisite for the existence of useful, self-balancing internal forces in a three-fingered grasp.

For a stable grasp using a dexterous robotic hand, the contact forces applied by the fingertips must satisfy three conditions: they must be compressive (directed into the object), lie within the friction cone at each contact point to prevent slip, and balance any external wrench acting on the object. A common approach decomposes the total contact force at each fingertip into two components: a manipulation force and an internal force. The manipulation forces are responsible for equilibrating the external load. The internal forces form a self-equilibrating force system—they sum to zero force and torque, thus not affecting the object’s force balance. However, their primary role is to “adjust” the total contact force vectors, ensuring that both the unidirectional (compressive) and frictional constraints are satisfied simultaneously. Therefore, determining whether suitable internal forces exist is a critical first step in grasp planning and force optimization for a dexterous robotic hand.

This investigation focuses on the point contact model with friction (also known as “hard-finger” contact). For a three-fingered dexterous robotic hand, the three non-collinear contact points define a plane, known as the contact plane. The friction cone at each contact point, when intersected by this contact plane, forms a planar region called a frictional sector. For internal forces to be viable, they must lie within their respective frictional sectors and, because they must be in equilibrium, their lines of action must converge at a single point. This point of concurrency must lie within the common intersection area of all three frictional sectors. This common area is termed the internal force concurrent polygon. Consequently, the existence of a non-trivial, useful set of internal forces is equivalent to the existence of a non-empty concurrent polygon. This paper derives the precise geometrical conditions for this polygon’s existence and formulates a general algorithm for its judgment.

Geometrical Model and Frictional Sector Definition

Consider a three-fingered dexterous robotic hand grasping a rigid object. Let $O_c$ be an object-fixed coordinate frame. The position vectors of the three contact points $C_i$ ($i=1,2,3$) in this frame are denoted by $\mathbf{r}_i$. The three points form a contact triangle $\triangle C_1 C_2 C_3$, which lies on the contact plane $S$. The unit normal vector to this plane, pointing in a chosen positive direction (e.g., outward from the object’s interior), is defined as:

$$
\mathbf{K} = \frac{(\mathbf{r}_2 – \mathbf{r}_1) \times (\mathbf{r}_3 – \mathbf{r}_2)}{\| (\mathbf{r}_2 – \mathbf{r}_1) \times (\mathbf{r}_3 – \mathbf{r}_2) \|}
$$

At each contact point $C_i$, the unit inward surface normal of the object is $\mathbf{n}_{bi}$. The angle between this inward normal and the contact plane’s normal $\mathbf{K}$ is given by:

$$
\lambda_i = \arccos(\mathbf{K} \cdot \mathbf{n}_{bi}) \quad \in [0, \pi]
$$

Let $\alpha = \arctan \mu$ be the half-angle of the friction cone, where $\mu$ is the coefficient of friction. For the friction cone to intersect the contact plane, forming a finite frictional sector, the inward normal must not be too steep relative to the contact plane. Specifically, the condition for the existence of a frictional sector at $C_i$ is that the angle $\delta_i = |\pi/2 – \lambda_i|$ is less than the friction cone angle $\alpha$:

$$
\delta_i = |\frac{\pi}{2} – \lambda_i| < \alpha
$$

If this condition holds, the intersection of the friction cone with plane $S$ is a sector with a half-angle $\psi_i$. This angle can be derived from spatial geometry as:

$$
\psi_i = \arcsin \left( \frac{\sqrt{\sin^2 \alpha – \cos^2 \alpha \tan^2 \delta_i}}{\cos \delta_i} \right) = \arcsin\left( \sqrt{1 – \frac{\tan^2 \delta_i}{\tan^2 \alpha}} \right)
$$

The projection of the inward normal $\mathbf{n}_{bi}$ onto the contact plane defines the central axis of the frictional sector. Its direction is given by the unit vector:

$$
\mathbf{n}_{si} = \frac{\mathbf{n}_{bi} – (\mathbf{n}_{bi} \cdot \mathbf{K})\mathbf{K}}{\|\mathbf{n}_{bi} – (\mathbf{n}_{bi} \cdot \mathbf{K})\mathbf{K}\|} = \frac{\mathbf{n}_{bi} – \cos\lambda_i \mathbf{K}}{\sin \lambda_i}
$$

The two boundary vectors of the frictional sector (the “positive” sector corresponding to inward forces) are then:

$$
\mathbf{n}_{i1} = \frac{\cos\psi_i \, \mathbf{n}_{si} + \sin\psi_i \, (\mathbf{K} \times \mathbf{n}_{si})}{\|\cdot\|}, \quad \mathbf{n}_{i2} = \frac{\cos\psi_i \, \mathbf{n}_{si} – \sin\psi_i \, (\mathbf{K} \times \mathbf{n}_{si})}{\|\cdot\|}
$$

We denote the frictional sector at $C_i$, bounded by rays along $\mathbf{n}_{i1}$ and $\mathbf{n}_{i2}$, as $\nabla C_i$. The following table summarizes the key parameters for a frictional sector.

Symbol Description Definition/Formula
$\mathbf{n}_{bi}$ Unit inward surface normal at $C_i$ Given by object geometry
$\lambda_i$ Angle between $\mathbf{n}_{bi}$ and $\mathbf{K}$ $\lambda_i = \arccos(\mathbf{K} \cdot \mathbf{n}_{bi})$
$\delta_i$ Deviation from orthogonality to plane $S$ $\delta_i = |\pi/2 – \lambda_i|$
$\alpha$ Friction cone half-angle $\alpha = \arctan \mu$
Sector Existence Condition $\delta_i < \alpha$
$\psi_i$ Half-angle of the planar frictional sector $\psi_i = \arcsin\left( \sqrt{1 – \frac{\tan^2 \delta_i}{\tan^2 \alpha}} \right)$
$\mathbf{n}_{si}$ Central axis of sector on plane $S$ $\mathbf{n}_{si} = (\mathbf{n}_{bi} – \cos\lambda_i \mathbf{K}) / \sin \lambda_i$
$\mathbf{n}_{i1}, \mathbf{n}_{i2}$ Boundary unit vectors of sector $\nabla C_i$ $\mathbf{n}_{i1,2} = (\cos\psi_i \, \mathbf{n}_{si} \pm \sin\psi_i \, (\mathbf{K} \times \mathbf{n}_{si}))$

Existence Condition for the Internal Force Concurrent Polygon

The internal force concurrent polygon is the intersection region of the three frictional sectors: $\nabla C_1 \cap \nabla C_2 \cap \nabla C_3$. For this polygon to be non-empty and useful (i.e., having a finite area, not just a single point or a line segment), the sectors must overlap significantly. The vertices of this polygon are intersection points of the boundary lines of the sectors. Therefore, analyzing the intersections of pairs of sector boundaries relative to the third sector provides the key to an existence condition.

Let $L_{ix}$ denote the boundary line of sector $\nabla C_i$ along direction $\mathbf{n}_{ix}$ ($x=1,2$). Consider the intersection points between the four boundary lines of two sectors, say $\nabla C_i$ and $\nabla C_j$. These intersections include points like $C_i$ and $C_j$ themselves if they lie on the other sector’s boundary. Relative to the third sector $\nabla C_k$ (where ${i, j, k}$ are distinct indices), these intersection points can be in one of three mutually exclusive states:

  1. Strictly External: All intersection points lie strictly outside $\nabla C_k$ (not on its boundaries). In this case, no common vertex exists, and the concurrent polygon is empty.
  2. Strictly Internal: At least one intersection point lies strictly inside $\nabla C_k$. This guarantees a non-empty intersection region, as this point can serve as a vertex of the concurrent polygon, which will have a finite area.
  3. On the Boundary: $m$ ($m \ge 1$) intersection points lie exactly on the boundary lines of $\nabla C_k$, with all others strictly external. This case requires further analysis:
    • If $1 \le m \le 2$, the available points are insufficient to form a polygon with finite area (they form a point or a line segment). For practical grasp stability, such critical configurations are considered undesirable and are treated as if the concurrent polygon does not exist.
    • If $m \ge 3$, these boundary points can form the vertices of a polygon that lies exactly on the boundary of $\nabla C_k$, resulting in a non-empty, albeit potentially degenerate, concurrent polygon.

From this analysis, we can state the fundamental Existence Condition for the Internal Force Concurrent Polygon in a three-fingered dexterous robotic hand grasp:

For every permutation of indices $(i, j, k)$ from $\{1,2,3\}$, among the intersection points of the boundary lines of sectors $\nabla C_i$ and $\nabla C_j$, either at least one point lies strictly inside sector $\nabla C_k$, or at least three points lie on the boundary of sector $\nabla C_k$.

This condition must be checked for all three cyclic permutations of the indices to ensure mutual overlap of all three sectors.

General Algorithm for Concurrent Polygon Existence Judgment

Based on the derived condition, we now formulate a step-by-step computational algorithm to judge the existence of a viable internal force concurrent polygon for a given grasp configuration of a three-fingered dexterous robotic hand.

Input: Contact point positions $\mathbf{r}_1, \mathbf{r}_2, \mathbf{r}_3$, their corresponding inward surface normals $\mathbf{n}_{b1}, \mathbf{n}_{b2}, \mathbf{n}_{b3}$, and the coefficient of friction $\mu$.

Output: Boolean result: TRUE if a non-trivial concurrent polygon exists; FALSE otherwise.

Step 1: Check Frictional Sector Existence

  1. Compute the contact plane normal $\mathbf{K}$ using Eq. (1).
  2. For each contact point $i = 1, 2, 3$:
    • Calculate $\lambda_i = \arccos(\mathbf{K} \cdot \mathbf{n}_{bi})$.
    • Calculate $\delta_i = |\pi/2 – \lambda_i|$.
    • Set $\alpha = \arctan(\mu)$.
    • If $\delta_i \ge \alpha$, then sector $\nabla C_i$ does not exist. Return FALSE.
  3. If all three sectors exist, proceed to Step 2.

Step 2: Compute Sector Parameters and Boundaries

  1. For each existing sector $i$, compute:
    • Central axis direction $\mathbf{n}_{si}$ using Eq. (5).
    • Sector half-angle $\psi_i$ using Eq. (4).
    • Boundary direction vectors $\mathbf{n}_{i1}$ and $\mathbf{n}_{i2}$ using Eqs. (6) and (7).
  2. Define the boundary line $L_{ix}$ as the ray starting at $\mathbf{r}_i$ in direction $\mathbf{n}_{ix}$.

Step 3: Find Intersection Points of Sector Boundary Lines

For each unordered pair of sectors $\{\nabla C_i, \nabla C_j\}$:

  • Compute the intersection point $\mathbf{p}$ between every line $L_{ix}$ ($x=1,2$) and $L_{jy}$ ($y=1,2$). A robust method solves for a point $\mathbf{p}$ that satisfies:
    $$(\mathbf{p} – \mathbf{r}_i) \times \mathbf{n}_{ix} = 0 \quad \text{(point lies on $L_{ix}$)}$$
    $$(\mathbf{p} – \mathbf{r}_j) \times \mathbf{n}_{jy} = 0 \quad \text{(point lies on $L_{jy}$)}$$
    This is a standard 2D line intersection problem within the contact plane.
  • Collect all such intersection points $\mathbf{p}$ for the pair $(i,j)$. Denote this set as $P_{ij}$.

Step 4: Judge Position Relative to the Third Sector

This is the core of the algorithm. For each cyclic permutation $(i, j, k)$ of $(1, 2, 3)$:

  1. Initialize counters: $m_{k}^{\text{inside}} = 0$, $m_{k}^{\text{boundary}} = 0$.
  2. For each intersection point $\mathbf{p}$ in set $P_{ij}$:
    • Compute the vector from the third contact point: $\mathbf{v} = \mathbf{p} – \mathbf{r}_k$.
    • Project this vector onto the contact plane (if not already planar). Compute the angle $\phi$ between $\mathbf{v}$ and the sector’s central axis $\mathbf{n}_{sk}$:
      $$\phi = \arccos\left( \frac{ (\mathbf{v} \cdot \mathbf{n}_{sk}) }{\|\mathbf{v}\|} \right) \quad \in [0, \pi]$$
      where $\mathbf{v}$ is considered as a vector in the contact plane.
    • Determine the location of $\mathbf{p}$ relative to $\nabla C_k$:
      • If $\phi < \psi_k$, the point lies strictly inside the sector. Increment $m_{k}^{\text{inside}}$.
      • If $\phi = \psi_k$ (within a small numerical tolerance $\epsilon$), the point lies on the boundary of the sector. Increment $m_{k}^{\text{boundary}}$.
      • Otherwise ($\phi > \psi_k$), the point is strictly outside.
  3. Apply the existence condition for this permutation:
    • If $m_{k}^{\text{inside}} \ge 1$, the condition for this $(i,j,k)$ is satisfied. Proceed to check the next permutation.
    • Else if $m_{k}^{\text{boundary}} \ge 3$, the condition is satisfied. Proceed to check the next permutation.
    • Else, the condition fails. Return FALSE.

Step 5: Final Result

If the condition in Step 4 is satisfied for all three cyclic permutations of $(1,2,3)$, then a non-trivial internal force concurrent polygon exists for this grasp. Return TRUE.

The following flowchart summarizes the decision logic of the algorithm, which is essential for the planning and control of a dexterous robotic hand.

Step Action Success Criteria Failure Action
1 Check sector existence for all $i$ $\delta_i < \alpha$ for $i=1,2,3$ Return FALSE
2 Compute sector boundaries (Geometry calculation)
3 Find boundary line intersections $P_{ij}$ (Geometry calculation)
4 Judge $P_{ij}$ vs. $\nabla C_k$ for all permutations $(i,j,k)$ For each perm: $m^{\text{inside}}_k \ge 1$ OR $m^{\text{boundary}}_k \ge 3$
5 Final Result All permutations passed Return TRUE

Application Example and Discussion

To illustrate the algorithm, consider a three-fingered dexterous robotic hand grasping an ellipsoidal object. The ellipsoid surface is defined by $(x/3)^2 + (y/4)^2 + (z/3)^2 = 1$. The friction coefficient is $\mu = \tan(20^\circ)$. We analyze three different contact configurations (a, b, c) with coordinates given in the table below.

Config Contact $C_1$ Contact $C_2$ Contact $C_3$
a $(2, 4\sqrt{5}/3, 0)$ $(-\sqrt{3}/2, 2\sqrt{3}, 0)$ $(0, -4, 0)$
b $(1, 2, 2\sqrt{2})$ $(1, -3.5, 1.05)$ $(-3, 0, 0)$
c $(1, 2\sqrt{3}, \sqrt{5}/2)$ $(-1, 2\sqrt{3}, -\sqrt{5}/2)$ $(0, 2\sqrt{3}, 1.5)$

Applying the judgment algorithm:

  • Configuration (a): All three contact points satisfy $\delta_i < 20^\circ$. The boundary lines of the sectors intersect such that for every pair $(i,j)$, the intersection set $P_{ij}$ contains points that lie strictly inside the third sector $\nabla C_k$. Therefore, the concurrent polygon exists (a triangular area), and the algorithm returns TRUE. This indicates that a dexterous robotic hand can find useful internal forces to achieve a stable, force-closure grasp in this configuration.
  • Configuration (b): Calculation shows that only the contact point $C_2$ satisfies the condition $\delta_2 < 20^\circ$. For $C_1$ and $C_3$, $\delta_i \ge \alpha$. Thus, in Step 1, the algorithm identifies that frictional sectors do not exist at $C_1$ and $C_3$ and returns FALSE immediately.
  • Configuration (c): For all three contact points, $\delta_i \ge 20^\circ$. No frictional sectors exist. The algorithm returns FALSE in Step 1.

This example demonstrates the algorithm’s effectiveness. It performs an early rejection in configurations (b) and (c) based on the simple sector existence condition (Step 1), saving computational effort. Only for promising configurations like (a) does it proceed with the more detailed geometric intersection analysis.

Conclusion

The ability to regulate internal forces is a cornerstone of robust grasping with a dexterous robotic hand. For a three-fingered dexterous robotic hand employing frictional point contacts, the existence of a self-balancing internal force system that also ensures contact force admissibility is geometrically equivalent to the existence of a non-empty internal force concurrent polygon. This polygon is the common intersection of the three planar frictional sectors derived from the spatial friction cones at the contact points.

This paper has rigorously established the conditions for its existence. First, a frictional sector exists at a contact point if and only if the angle between the inward surface normal and the contact plane is less than the friction cone angle ($\delta_i < \alpha$). Second, the concurrent polygon exists (as a finite area) if and only if for every pair of sectors, their boundary line intersections relative to the third sector satisfy a specific condition: either at least one intersection lies strictly inside the third sector, or at least three intersections lie on its boundary.

Based on these conditions, a general, computationally tractable algorithm has been formulated. This algorithm provides a definitive TRUE/FALSE judgment regarding the existence of a viable internal force basis for a given three-point grasp. This judgment is a critical precursor to any subsequent force optimization routine. By quickly identifying infeasible grasp configurations, it enhances the efficiency of grasp planning for a three-fingered dexterous robotic hand. The method’s validity was confirmed through a numerical example involving the grasp of an ellipsoid. In summary, this work provides a fundamental geometric tool for analyzing and planning stable force-closure grasps with a three-fingered dexterous robotic hand.

Scroll to Top