Keywords

1 Introduction

The force/moment capability of a parallel mechanism is defined as the maximum force/moment that can be generated at its moving platform. Such capability varies significantly with the pose of the moving platform and the direction it moves. Kokkinis and Paden [1] first proposed the concept of force polytope to analyze the force capability of manipulators. The boundary of the polytope defined the maximum force that a manipulator can apply. As the force/moment polytope characterizes the force/moment capability, researchers proposed different methods to generate the polytope for analyzing the force/moment capability. There were two classes of methods for generating the polytope. One is based on calculating the maximum force/moment in any given directions. The other is based on linear transformation.

Nokleby et al. [2] proposed an optimization-based method to find the maximum force in a given direction using scaling factors. The force polytope was generated by the maximum force in any given directions. Zibil et al. [3] pointed out that the optimization-based method was not efficient in the case that the mechanisms have more cables than the minimum. They presented an explicit method to improve efficiency and accuracy. Garg et al. [4] extended both the optimization-based and the explicit methods to 6-DOF mechanisms. For both the methods, the accuracy and efficiency depend on the resolution of direction discretization.

In the linear transformation based methods, the force/moment polytope can be considered as the projection of a linear transformation from cable tension space to wrench space. A hyper cuboid defines the boundary of the cable tension space. When the dimension of the force/moment polytope is equal to the dimension of the hyper cuboid, the projections of the vertices, edges and faces of the hyper cuboid by linear transformation are also the vertices, edges and faces of the force/moment polytope [5]. However, when the dimension of the force/moment polytope is smaller than that of the hyper cuboid, there is no such simple relation. Some vertices of the hyper cuboid are projected into the force/moment polytope, no longer the vertices, as are some edges and faces of the hyper cuboid. Hwang et al. [6] proposed a recursive dimension-growing method to eliminate the vertices inside the polytope. Firmani et al. [7, 8] analyzed which actuator torques should be set to their limits in order to define a vertex, edge and face of the polytope. They used conventional method developed in computational geometry to identify the vertices and faces of the polytope. Carretero et al. [9] extended Firmani’s method to computing the vertices of a 6-DOF wrench polytope. Bouchard et al. [10] used the quick hull method [12] to get the \(\mathcal{V}\)-presentation of the polytope, and proposed a hyper plane shifting method to get the \(\mathcal{H}\)-presentation of the polytope which can be used to verify if an available wrench set includes the task wrench set required for a given task. The advantage of using the algorithms well developed in computational geometry is that one can generate the polytope in a very accurate and efficient way. These algorithms take a set of points as an input to generate a polytope. Physical relationships between the points are not considered.

In this paper we intend to explore the relationship between the polytope and the structure of cable driven parallel mechanisms. To this end, we proposed a new method to identify vertices and faces of the force/moment polytope. The method first calculates all possible vertices of the polytope, and then identifies vertices and faces step by step utilizing the inherent relationships between all possible vertices. The method reveals the relationship between the polytope and the structure of cable driven parallel mechanisms.

The remainder of the paper is organized as follows: Sect. 2 define sun-prescribed force/moment polytope. Section 3 proposes a new method to identify the vertices, edges and faces of the un-prescribed force/moment polytope by using the inherent relationships between all possible vertices. Relationships between the un-prescribed force/moment polytope and cable direction are revealed in Sect. 4. Conclusions are made in Sect. 5.

2 Definition of Un-Prescribed Force/Moment Polytope

Figure 1 shows a general cable driven parallel mechanism [11]. Define \({\varvec{w}} = [{\varvec{f^{T}}} ,{\varvec{m}^{T}} ]^{\user2 T}\) as the wrench consisting of the external force \({\varvec{f}} \in \Re^{3}\) and moment \({\varvec{m}} \in \Re^{3}\) applied on the moving platform. Let \({\varvec{t}} = \left[ {{\user2 t}_{{{\mathbf{1}}}},\, {\user2 t}_{{{\mathbf{2}}}}, \ldots ,{\user2 t}_{\user2 m} } \right]\) denoting the cable tension vector, where m is the number of cables. The static equilibrium equation is

$$\begin{aligned} & {\varvec{{A}t}} = {\varvec{w}} \\ & {\varvec{ A}} = \left[ \begin{aligned} {\varvec{A}}_{1} \hfill \\ {\varvec{A}}_{2} \hfill \\ \end{aligned} \right],{\varvec{w}} = \left[ \begin{aligned} {\varvec{f}} \hfill \\ {\varvec{m}} \hfill \\ \end{aligned} \right] \\ \end{aligned}$$
(1)

where

$$\begin{aligned} & {\varvec{A}}_{1} = \left[ {{\varvec{u}}_{1} ,{\varvec{u}}_{2} , \ldots {\varvec{u}}_{m} } \right] \in \Re^{3 \times m} \\ & {\varvec{A}}_{2} = \left[ {{\varvec{r}}_{1} \times {\varvec{u}}_{1} ,{\varvec{r}}_{2} \times {\varvec{u}}_{2} , \ldots {\varvec{r}}_{m} \times {\varvec{u}}_{m} } \right] \in \Re^{3 \times m} \\ & {\varvec{u}}_{i} = {{\overrightarrow {{{P}_{i} {B}_{i} }} } \mathord{\left/ {\vphantom {{\overrightarrow {{{P}_{i} {B}_{i} }} } {\left| {{P}_{i} {B}_{i} } \right|}}} \right. \kern-0pt} {\left| {{P}_{i} {\text{B}}_{\text{i}} } \right|}},{\varvec{r}}_{i} = \overrightarrow {{PP_{i} }} \\ \end{aligned}$$
Fig. 1
figure 1

A cable driven parallel mechanism

The pose of the moving platform with respect to the fixed coordinate system O is described as \({\user2 X} = \left[ {x, y, z, \alpha, \beta, \gamma } \right]^{T}\), where \(x, y, z\) are the coordinates of the point P, and \({\alpha} ,{\beta} ,{\gamma }\) are the ZYX Euler angles.

The tension vector \(\user2 t\) satisfies the following nonnegative constraint due to the fact that cables can only pull and not push:

$${\mathbf{0}} \le {\underline{\user2 t}} \le {\user2 t} \le \overline{\user2 t}$$
(2)

where \({\varvec{\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{t} }}\) and \({\bar{\varvec{t}}}\) are vectors whose components are the minimum and maximum tensions in each cable, i.e. \({\mathbf{0}} \le \underline{\user2 t}_{\user2 i} \le t_{\user2 i} \le \overline{\user2 t}_{\user2 i}\) \((i = 1,2, \ldots ,m)\). \(\overline{\user2 t}_{\user2 i}\) is determined by the torque limit of the corresponding actuator. In practice, a minimum tension larger than zero is often required to ensure the stiffness of the mechanism. Therefore, the bounded region of cable tension vector is a hyper cuboid defined as

$${\varvec{CT}} = \left\{ {{\varvec{t}}\left| {{\varvec{t}} = \left[ {t_{1}, t_{2}, \ldots ,t_{m} } \right]^{T} \in \Re^{m} .s.t. \, t_{i,} \left[ {\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{t}_{i} ,\bar{t}_{i} } \right],i = 1,2 \ldots m} \right.} \right\}$$
(3)

Define

$$\left\{ \begin{aligned} &{\varvec{\varOmega}}_{{\varvec{f}}} = \left\{ {{\varvec{f}}\left| {{\varvec{f}} = {\varvec{A}}_{1} {\varvec{t}},{\varvec{f}} \in \Re^{3} ,s.t. \, {\varvec{t}} \in {\varvec{CT}}} \right.} \right\} \hfill \\ &{\varvec{\varOmega}}_{{\varvec{m}}} = \left\{ {{\varvec{m}}\left| {{\varvec{m}} = {\varvec{A}}_{2} {\varvec{t}},{\varvec{m}} \in \Re^{3} ,s.t. \, {\varvec{t}} \in {\varvec{CT}}} \right.} \right\} \hfill \\ \end{aligned} \right.$$
(4)

\({\varvec{\varOmega}}_{{\varvec{f}}}\) and \({\varvec{\varOmega}}_{{\varvec{m}}}\) are noted as un-prescribed force and moment polytopes respectively. They are all convex and bounded due to the property of linear transformation and the convex bounded hyper cuboid CT.

3 Determination of Un-Prescribed Force/Moment Polytope

In this section we discuss how to generate the un-prescribed force polytope \({\varvec{\varOmega}}_{{\varvec{f}}}\). The same method applies to the un-prescribed moment polytope \({\varvec{\varOmega}}_{{\varvec{m}}}\).

The hyper cuboid CT has 2m vertices which are noted as \({\varvec{T}}_{\varvec{j}}\), j = 1, 2, …, 2m. The corresponding cable tension vector \({\varvec{t}}_{\varvec{j}}\) of each vertex \({\varvec{T}}_{\varvec{j}}\) is defined as

$${\varvec{t}}_{j} = \left[ {t_{j1} ,t_{j2} , \ldots ,t_{jm} } \right]^{T} ,t_{jk} = (1 - e_{jk} )\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{t}_{i} + e_{jk} \bar{t}_{i} ,k = 1,2, \ldots ,m$$
(5)

where \(e_{jk} = 0{\text{ or 1}}\) and \(j = 0{\text{be}}_{jm} {\text{e}}_{j(m - 1)} \ldots {\text{e}}_{j1}\) in binary code. The projection of vertex \({\user2 {T}_{\user2 j}}\) by linear transformation \(\mathcal{A}_{1}\) defined by matrix \({\varvec{A}}_{1}\) is \({\varvec{W}}_{\varvec{j}}\).

$${\user2 W}_{\user2 j} = {\mathcal{A}}_{1} ({\user2 T}_{\user2 j} )$$
(6)

The convex hull that fully contains all these points \({\varvec{W}}_{\varvec{j}}\), j = 1, 2, …, 2m is the un-prescribed force polytope \({\varvec{\varOmega}}_{{\varvec{f}}}\). The points \(W_{j}\), j = 1, 2, …, 2m are noted as characteristic points of \({\varvec{\varOmega}}_{{\varvec{f}}}\). Quick hull algorithm [12] can be used to identify the vertices and faces of the polytope that fully contains all the characteristic points. This method takes all characteristic points as a set of points without considering the relationship between them. In the following, we analyze the inherent relationships between all the characteristic points to identify the vertices and faces, and reveal the relationships between the polytope and the mechanism structure.

Because the dimension of \({\varvec{\varOmega}}_{{\varvec{f}}}\) is smaller than that of CT, some vertices of CT would be projected inside \({\varvec{\varOmega}}_{{\varvec{f}}}\). Consequently, some characteristic points of \({\varvec{\varOmega}}_{{\varvec{f}}}\) are not the vertices. There are four possibilities that a characteristic point locates on the polytope: (1) it is a vertex; (2) it is on an edge; (3) it is in a face; (4) it is inside the polytope. But for any vertice V j of \({\varvec{\varOmega}}_{{\varvec{f}}}\), there must be a corresponding vertice T j of CT satisfying \(\mathcal{A}_{ 1} ({\user2 T}_{\user2 j} ) = {\user2 V}_{\user2 j}\). Similarly, the projection of a 1-dimensional edge of hyper cuboid CT may not be the edge of \({\varvec{\varOmega}}_{{\varvec{f}}}\), it may be on an edge, on a face or inside the polytope. However, for any edge \(L_{{{\varvec{\varOmega}}_{{\varvec{f}}} }}\) of polytope \({\varvec{\varOmega}}_{{\varvec{f}}}\), there must be one corresponding 1-dimensional edge \(L_{{{\varvec{CT}}}}\) of CT satisfying

$$\mathcal{A}_{ 1} ({\user2 L}_{{{\varvec{CT}}}} ) = {\user2 L}_{{{\varvec{\varOmega}}_{{\varvec{f}}} }} {\varvec{or}}\mathcal{A}_{ 1} ({\user2 L}_{{{\varvec{CT}}}} ) \subset {\user2 {L}}_{{{\varvec{\varOmega}}_{{\varvec{f}}} }}$$
(7)

In Eq. (7), \(\mathcal{A}_{ 1} (L_{{{\varvec{CT}}}} ) \subset L_{{{\varvec{\varOmega}}_{{\varvec{f}}} }}\) means the projections of some 1-dimensional edges of CT are collinear and overlap somehow in special cases. This leads to more than two characteristic points being on one edge of \({\varvec{\varOmega}}_{{\varvec{f}}}\). And also, for any face \(S_{{{\varvec{\varOmega}}_{{\varvec{f}}} }}\) of \({\varvec{\varOmega}}_{{\varvec{f}}}\), there must be one corresponding 2-dimensional face \(S_{{{\varvec{CT}}}}\) of CT that satisfy

$$\mathcal{A}_{ 1} (S_{{{\varvec{CT}}}} ) = S_{{{\varvec{\varOmega}}_{{\varvec{f}}} }} or\mathcal{A}_{ 1} (S_{{{\varvec{CT}}}} ) \subset S_{{{\varvec{\varOmega}}_{{\varvec{f}}} }}$$
(8)

In Eq. (8), \(\mathcal{A}_{ 1} (S_{{{\varvec{CT}}}} ) \subset S_{{{\varvec{\varOmega}}_{{\varvec{f}}} }}\) means projections of some 2-dimensional faces of CT are coplanar and overlap somehow. This causes some characteristic points being in the faces of \({\varvec{\varOmega}}_{{\varvec{f}}}\) and those coplanar projections form one face of \({\varvec{\varOmega}}_{{\varvec{f}}}\).

For any vertex of the hyper cuboid CT, cable tensions are at the maximum or minimum. For any edge \({\user2 T}_{\user2 h} {\user2 T}_{\user2 l}\) of CT, only one cable tension varies between the minimum and the maximum. Therefore, only one component of the corresponding cable tension vectors t h , t l of these two endpoints T h , T l is different (e.g. only the ith cable tensions are different and other cable tensions are the same). The endpoints T h and T l of an edge of the hyper cuboid CT satisfies

$${\text{XOR}}\,({\varvec{h,l}}) = 2^{i} ,{\user2 i} \in \left[ {0,{\user2 m} - 1} \right]$$
(9)

where \({\text{XOR}}\) denotes the bitwise exclusive OR operation. Each vertex of CT is directly connected with other m vertices to form the m edges of CT. Therefore, each characteristic point of \({\varvec{\varOmega}}_{{\varvec{f}}}\) can be connected with other m characteristic points to generate possible edges of \({\varvec{\varOmega}}_{{\varvec{f}}}\), which is the projection from an edge of CT. So any two characteristic points W h and W l satisfying Eq. (9) can generate a possible edge. For any characteristic point W r , the m characteristic points satisfying Eq. (9) are noted as its directly connectable characteristic points.

Each vertex of the polytope is a characteristic point and each edge of the polytope is the projection of an edge of \(CT\). So, each vertex can only be connected with some of its m directly connectable characteristic points to generate the edges of \({\varvec{\varOmega}}_{{\varvec{f}}}\) and it cannot form an edge with any other characteristic points. Therefore, for any vertex of \({\varvec{\varOmega}}_{{\varvec{f}}}\), it should be unenclosed by its m directly connectable characteristic points due to the convexity of the polytope. Therefore, it is feasible to determine whether a characteristic point W r is inside \({\varvec{\varOmega}}_{{\varvec{f}}}\) by checking if it is enclosed by its m directly connectable characteristic points. Conversely, if it is unenclosed, it is a vertex of \({\varvec{\varOmega}}_{{\varvec{f}}}\). The term “enclosed” here means that there is no plane, which passes through the characteristic point W r and divides the 3-dimensional space into two subspaces that would make the all m directly connectable characteristic points be in one subspace or on that plane. In other words, for any plane passing through the characteristic point W r , there is at least one directly connectable characteristic point in any subspace. The term “unenclosed” means there is a plane passing through W r that would make its m directly connectable characteristic points be in one subspace or on that plane, in other words, there is no directly connectable characteristic point in one of the two subspaces at least. Assuming the m directly connectable characteristic points of W r are points W 1 r , W 2 r ,…, W m r , then the algorithm to determine whether a characteristic point \(W_{r}\) is enclosed by its m directly connectable characteristic points is:

$$\begin{aligned} & if\,\exists a,\,b,\,c,\,d \\ & s.t. \, a^{2} + b^{2} + c^{2} = 1 \\ & \quad aW_{rx} + bW_{ry} + cW_{rz} + d = 0 \\ & \quad aW_{rx}^{h} + bW_{ry}^{h} + cW_{rz}^{h} + d \ge 0,h = 1,2, \ldots ,m \\ & \Rightarrow W_{r} \,{\text{is}}\,{\text{not}}\,{\text{enclosed}}\,{\text{and}}\,{\text{it}}\,{\text{is}}\,{\text{a}}\,{\text{vertex}}\,{\text{of}}\,{\varvec{\varOmega}}_{{\varvec{f}}} \\ \end{aligned}$$
(10)

So the plane with equation \(ax + by + cz + d = 0\) is the corresponding dividing plane, and its directly connectable characteristic points are located in one subspace of this plane. An enumeration method can be used to solve this problem. Randomly picking up 2 directly connectable characteristic points of W r to generate a plane with W r , and check whether this plane satisfy Eq. (10). If so, W r is a vertex; if not, then pick up other 2 directly connectable characteristic points and check again. For each characteristic point, if it is enclosed by its m directly connectable characteristic points, it is inside \({\varvec{\varOmega}}_{{\varvec{f}}}\); otherwise, it is a vertex of polytope \({\varvec{\varOmega}}_{{\varvec{f}}}\). Figure 2a shows that a characteristic point is enclosed by its m directly connectable characteristic points. Figure 2b shows that a characteristic point is unenclosed by its m directly connectable characteristic points. The black dot is the judged characteristic point, the black circles are the m directly connectable characteristic points, and the lines are possible edges.

Fig. 2
figure 2

Relationship between a characteristic point and its m directly connectable characteristic points. a Enclosed characteristic point. b Unenclosed characteristic point

The next step is to identify the edges and facets of \({\varvec{\varOmega}}_{{\varvec{f}}}\). If and only if the two endpoints of a line are vertices of \({\varvec{\varOmega}}_{{\varvec{f}}}\), this line is an edge of \({\varvec{\varOmega}}_{{\varvec{f}}}\). Based on Eq. (9) and all determined true vertices of \({\varvec{\varOmega}}_{{\varvec{f}}}\), all edges of \({\varvec{\varOmega}}_{{\varvec{f}}}\) are easily determined.

Assume the four vertices of a facet S CT of CT are T V1, T V2, T V3, T V4, and the projections of these four vertices by linear transformation \(\mathcal{A}_{1}\) are W V1, W V2, W V3, W V4. Obviously, if those four characteristic points are not in one line, they are coplanar because they are projected from the vertices of a facet and form a parallelogram. If W V1, W V2, W V3, W V4 are all vertices of \({\varvec{\varOmega}}_{{\varvec{f}}}\), then this parallelogram can be a face or part of a face of \({\varvec{\varOmega}}_{{\varvec{f}}}\). We call such parallelograms characteristic parallelograms of \({\varvec{\varOmega}}_{{\varvec{f}}}\). Based on Eq. (9), the index V1, V2, V3, V4 of these four characteristic points should satisfy

$${\varvec{V}}4 = {\varvec{V}}2 + {\varvec{V}}3 - {\varvec{V}}1$$
(11)

If W V1 W V2, W V1 W V3 are the edge of this parallelograms.

In summary, there are four steps to generate the un-prescribed force polytope:

  1. 1.

    Calculate all characteristic points \(W_{j}\),j = 1, 2, …, 2m by Eq. (6)

  2. 2.

    Generate all possible edges by Eq. (9)

  3. 3.

    Identify whether each characteristic point is a vertex by Eq. (10)

  4. 4.

    Generate the faces of the un-prescribed force polytope by Eq. (11)

The method to determine the un-prescribed moment polytope \({\varvec{\varOmega}}_{\varvec{m}}\) is similar to the above. The only difference is that the linear transformation is \(\mathcal{A}_{2}\) defined by matrix \({\varvec{A}}_{2}\).

4 Relationship Between Un-prescribed Force/Moment Polytope and Cable Directions

In terms of the Eq. (9), assume W V1, W V2 are the endpoints of an edge of \({\varvec{\varOmega}}_{{\varvec{f}}}\), where \(V1 = 0{\text{b}}e_{m} \ldots e_{i} \ldots e_{j} \ldots e_{1}\),\(V2 = 0{\text{b}}e_{m} \ldots \overline{{e_{i} }} \ldots e_{j} \ldots e_{1}\), and \(\overline{{e_{i} }}\) is the complement of \(e_{i}\), then

$${\user2 W}_{{{\user2 V}2}} = {\user2 W}_{{{\user2 V}1}} + {\varvec{u}}_{\user2 i} \Updelta {\user2 t}_{\user2 i} ,\Updelta {\user2 t}_{\user2 i} = \pm \left(\bar{\user2 t}_{\user2 i} - \underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{t}_{i}\right)$$
(12)

Therefore, edge W V1 W V2 is parallel to the force unit vector u i , which represents the direction of the ith cable. In general, each edge of the polytope is parallel to one of the cable directions.

Generally, each face of \({\varvec{\varOmega}}_{{\varvec{f}}}\) is a characteristic parallelogram. However, there are two special cases: (1) The characteristic parallelogram degenerates to a line segment to be part of an edge; (2) There is more than one characteristic parallelogram coplanar to forma face of \({\varvec{\varOmega}}_{{\varvec{f}}}\) together. These two special cases are shown in Fig. 3. Figure 3a is the diagram of a 5-cable driven 3-DOF mechanism. Assume the maximum and minimum tensions of each cable are the same. The cables connecting points at the frame B2, B4, B5 are at the middle of the corresponding edges. When the endpoint P is in the center of the baseframe, cables PB1, PB3, PB5 are coplanar and cables PB2, PB4 are collinear. In this case, the line segments W V1 W V2, W V1 W V3 are collinear, and the corresponding characteristic parallelogram degenerates to a line. Due to the same tension limits of all cables, the vertex W V1 overlaps with W V4. Cables PB1, PB3, PB5 are coplanar resulting in the two dark black hexagons which are composed of several coplanar characteristic parallelograms and four characteristic points shown in black asterisks are located in the hexagons. Also, two circles which are the characteristic points of force polytope locate inside of it.

Fig. 3
figure 3

The 5-cable driven mechanism and its force polytope at \(\varvec{X }= \left[ {0,0,0} \right]^{T}\). a Mechanism diagram. b Force polytope

In summary, characteristic points locate on the edges of the polytope when two cables are parallel and the related characteristic parallelograms degenerate to line segments; Characteristic points locate in the faces of the polytope when at least three cables are coplanar, and the related characteristic parallelograms turn to be coplanar to generate a polygon as one face of the polytope. If two cables are not collinear, then no characteristic points locate on the edge and no characteristic parallelograms degenerate to line segments. If three or more cables are not coplanar, then no characteristic points are in the face, and all the faces are parallelograms.

5 Conclusions

This paper proposes a new algorithm to determine the un-prescribed force/moment polytope for a general m-cable driven mechanism, which depends on the mechanism structure, the pose of the moving platform and the limits of cables tensions. The algorithm involves two steps: (1) To calculates all characteristic points, which are the projections of vertices of the hyper cuboid. (2) To determine the vertices of the polytope by checking whether each characteristic point is unenclosed by all its m connectable characteristic points. The relationships between un-prescribed force/moment polytope and the directions of driven cables are revealed. These relationships are potentially useful for the design of cable driven parallel mechanisms. The proposed method is applicable to general parallel mechanisms, both redundant and non-redundant.

Future work will focus on analyzing the relationships between the prescribed force/moment polytope and the structures of parallel mechanisms. In addition, how to design cable driven mechanisms to optimize the output force/moment capability in global workspace will be further studied.