1 Introduction

Lower kinematic pairs (Reuleaux pairs) are mechanical generators of \(SE\,(3)\) subgroups, and the instantaneous joint screws form a basis for the corresponding \(se\,(3)\) subalgebras. The finite joint motion is found from the instantaneous motion via the exponential mapping on the Lie group \(SE\,(3)\). When studying the kinematics of linkages with lower kinematic pairs, it is thus convenient and common practice to express the kinematics in terms of joint screw coordinates and joint parameters. This is known as the product of exponentials (POE) formulation [1] for the kinematic mapping of a kinematic chain, where relative motions due to lower pairs are expressed as exponential of joint screw coordinates. The same applies to the closure constraints of kinematic loops. This gives rise to explicit algebraic relations of the derivatives of the kinematic mapping, and hence of the derivatives of the loop closure constraints for lower pair linkages. These higher-order constraints were employed to the mobility analysis of lower pair linkages [5, 6, 11, 18, 20, 22]. In [17] a generally applicable computational method for mobility analysis using higher-order approximations was presented. The Lie group setting further allows for mobility estimation without resorting to higher-order approximation but rather considering intersection of motion spaces [7, 8, 12, 21].

Higher kinematic pairs do not represent mechanical generators of motion subgroups of \(SE\,(3)\), and can in general not be represented by combination of such. Hence a screw-based formulation of the kinematics and loop constraints is not available. However, frequently mechanisms comprise lower as well as higher pairs. In particular, the majority of mechanisms possess kinematic loops comprising only a few higher pairs. Such mechanisms were for instance addressed in [30]. For the special case where each loop contains no more than one higher pair, a recursive formulation is presented in this paper making use of the POE formulation. To this end, the higher pair joint is removed from the loop. The motion of the two bodies connected by the higher pair is expressed by a POE. The constraints are then imposed on the relative motion of the bodies. Since the higher pair is cut open and replaced by the corresponding constraints, this is referred to as the ’cut-joint’ of the loop, and this approach is known as cut-joint formulation of constraints [15, 28]. This is also applicable to lower pair mechanisms. Based on the constraint formulation a computational method for the higher-order mobility analysis is introduced in the following.

The paper consists of two parts. In the first part the higher-order loop constraints are presented that are employed for mobility and singularity analysis in the second part. In Sect. 2 the geometric constraints for a single kinematic loop are introduced. The corresponding higher-order constraints are derived in Sect. 3. The extension to multi-loop mechanisms is presented in Sect. 4. This rests on the topological graph and the identification of topologically independent fundamental cycles. The application of these constraints to the mobility and singularity analysis is presented in Sect. 5. Throughout the paper, \({\mathbf {u}}_{1}=\left( 1,0,0\right) ^{T}\), \({\mathbf {u}}_{2}=\left( 0,1,0\right) ^{T}\) and \({\mathbf {u}}_{3}=\left( 0,0,1\right) ^{T}\) denote the standard unit basis vectors.

2 Geometric constraints for a kinematic loop

2.1 Cut-joint versus cut-body formulation

The relative configuration of adjacent bodies is determined by the configuration of the connecting joint. The latter is determined by the joint variables (angles/dis-placements) that are referred to as relative coordinates. In terms of relative coordinates, the closure constraints for a kinematic loop can be formulated in two different ways: the cut-body formulation [9, 23] and the cut-joint formulation [28]. The cut-body approach is commonly used to model the kinematics of lower pair linkages, whereas the cut-joint approach is the standard approach to derive dynamic motion equations of multibody systems (MBS) in relative coordinates. In the cut-body formulation the relative configurations of all adjacent bodies are successively combined. That is, the constraints involve all joint variables of the loop. This approach can be interpreted as cutting one body in two parts, and the reassembly of the body yields the closure condition. In the cut-joint approach, one joint (called the cut-joint) is removed and the remaining two open kinematic chains are subjected to closure constraints according to the cut-joint. The kinematic model, for a loop with n joints and bodies, thus comprises only the joint variables of the remaining \(n-1\) joints.

It is to be mentioned that elimination of the cut-joint may lead to artifacts. For instance consider the planar 4-bar mechanisms in Fig. 1a where joint 4 is used as cut-joint. In the shown configuration the model is in a singular configuration since the axes of joint 1, 2, and 3 are coplanar, and thus the constraint Jacobian drops rank. If joint 2 would be used as cut-joint (Fig. 1b), the Jacobian would have full rank 2. Apparently this singularity is due to the model rather than being a kinematic phenomenon of the mechanisms. The reason is that, by eliminating the cut-joint, only a \(n-1\) dimensional subspace of the configuration space is considered. This is, however, often ignored in MBS modeling.

Fig. 1
figure 1

Two choices of cut-joint for a 4-bar mechanism

Also from a computational point of view, the cut-body formulation is advantageous since the closure condition simply requires that the configuration of the virtual cut-body is the identity. In the cut-joint approach, the constraints are specific to the cut-joint. Since this is the standard approach in MBS dynamics using relative coordinates, details on the constraints for various joints can be found in the relevant literature [26, 28].

The main advantage of using relative coordinates to express the configuration of lower pair joints is that they can be expressed in terms of joint screws via the exponential mapping on \(SE\,(3)\). This has been employed for mobility analysis in [5, 6, 17, 20, 22]. The crucial point is that the derivatives of the constraints are available explicitly in terms of joint screws. This is not possible for higher pair joints. However, if a loop comprises only one higher pair joint, this can be used as cut-joint, which yields a lower pair linkage with two open kinematic chains whose kinematics can be modelled in terms of the remaining joint screws. This is presented in the following.

2.2 Relative configurations of adjacent bodies

Consider a kinematic loop, connected to the ground (indexed with 0), comprising n lower pair joints and one higher pair joint. W.l.o.g. the lower pairs are assumed to have 1 DOF, i.e. could be revolute, prismatic, or screw joint. This is valid since any lower pair (and generally, any mechanical generator of motion subgroups) can be represented as combination of these. Then, denote with \({\mathbf {q}}\in {{\mathbb {V}}}^{n}\) the vector of joint variables of the lower pairs. The higher pair is removed from the loop and serves as cut-joint of the loop, as indicated in Fig. 2. The two bodies connected by the higher pair represent the terminal bodies of the remaining two open kinematic chains, and are indexed with \(k^{\prime }\) and \(l^{\prime \prime }\), respectively. The 1-DOF lower pair joints of the respective open kinematic chain from the ground towards bodies \(k^{\prime }\) and \(l^{\prime \prime }\) are indexed with \(1^{\prime },\ldots ,k^{\prime }\) and \(1^{\prime \prime },\ldots ,l^{\prime \prime }\).

The configuration of a body is represented by the configuration of a body-fixed reference frame (RFR) relative to a spatial reference frame \({\mathcal {F}}_{0}\). This configuration is represented by a \(4\times 4\) homogenous transformation matrix \({\mathbf {C}}\in SE\, (3)\) (Appendix). The configurations of the bodies \(k^{\prime }\) and \(l^{\prime \prime }\), i.e. of the frame \({\mathcal {F}}_{k^{\prime }}\) and \({\mathcal {F}}_{l^{\prime \prime }}\), are determined by \({\mathbf {C}}_{k^{\prime }}=f_{k^{\prime }}\left( {\mathbf {q}}\right)\) and \({\mathbf {C}}_{l^{\prime \prime }}=f_{l^{\prime \prime }}\left( {\mathbf {q}}\right)\), with the POE formulae (Appendix)

$$\begin{aligned} f_{k^{\prime }}\left( {\mathbf {q}}\right)\, {:=}&\exp ({\mathbf {Y}}_{1^{\prime }}q_{1^{\prime }})\cdot \ldots \cdot \exp ({\mathbf {Y}}_{k^{\prime }}q_{k^{\prime }}){\mathbf {A}}_{k^{\prime }}\nonumber \\ f_{l^{\prime \prime }}\left( {\mathbf {q}}\right)\, {:=}&\exp ({\mathbf {Y}}_{1^{\prime \prime }}q_{1^{\prime \prime }})\cdot \ldots \cdot \exp ({\mathbf {Y}}_{l^{\prime \prime }}q_{l^{\prime \prime }}){\mathbf {A}}_{l^{\prime \prime }}. \end{aligned}$$
(1)

Here \({\mathbf {A}}_{k^{\prime }}\) and \({\mathbf {A}}_{l^{\prime \prime }}\) is the respective reference configuration of body \(k^{\prime }\) and \(l^{\prime \prime }\) at the zero reference configuration \({\mathbf {q}}={\mathbf {0}}\) of the mechanism, and \({\mathbf {Y}}_{i}=\left( {\mathbf {e}}_{i},{\mathbf {s}}_{i}\times {\mathbf {e}}_{i}+h_{i}{\mathbf {e}}_{i}\right) ^{T}\) is the screw coordinate vector of the lower pair joint i w.r.t. to a global reference frame \({\mathcal {F}}_{0}\) at \({\mathbf {q}}={\mathbf {0}}\). Therein, \({\mathbf {e}}_{i}\) is a unit vector along the axis of joint i, and \({\mathbf {s}}_{i}\) is the position vector to any point on that axis, both expressed in the global reference frame [24].

Fig. 2
figure 2

Loop with a higher pair joint as cut-joint

The relative motion of body \(l^{\prime \prime }\) w.r.t. to body \(k^{\prime }\) is thus given by \({\mathbf {C}}_{k^{\prime }}^{-1}{\mathbf {C}}_{l^{\prime \prime }}\). The cut-joint constrains this relative motion. For higher pair joints this is not a screw motion, in contrast to lower pairs where it can be expressed by the exponential of a cut-joint screw.

2.3 Translation constraints for higher pairs

The translation constraints restrict the relative displacement of a point on body \(k^{\prime }\) and a point on body \(l^{\prime \prime }\). In order to express this condition, the point coordinates must be expressed in a common reference frame. The location of a point is represented by homogenous point coordinates.

Denote with \({\mathbf {p}}_{k^{\prime }}\) and \({\mathbf {p}}_{l^{\prime \prime }}\) the position vector of a point fixed on the respective body expressed in the body-fixed reference frame \({\mathcal {F}}_{k^{\prime }}\) and \({\mathcal {F}}_{l^{\prime \prime }}\) (Fig. 2), and with \({{\overline{{\mathbf {p}}}}}_{k^{\prime }}=({\mathbf {p}}_{k^{\prime }}^{T},1)^{T}\) and \({{\overline{{\mathbf {p}}}}}_{l^{\prime \prime }}=({\mathbf {p}}_{l^{\prime \prime }}^{T},1)^{T}\) their homogenous point coordinates. The homogenous coordinates expressed in the global frame \({\mathcal {F}}_{0}\) are \({\mathbf {C}}_{k^{\prime }}{\overline{{\mathbf {p}}}}_{k^{\prime }}\) and \({\mathbf {C}}_{l^{\prime \prime }}{\overline{{\mathbf {p}}}}_{l^{\prime \prime }}\).

Remark 1

The mapping \(\varepsilon _{{\mathbf {p}}}:{\mathbf {C}}\in SE\, (3) \mapsto {\mathbf {C{\overline{\mathbf {p}}}}}\in E^{3}\) is the evaluation mapping of \(SE\, (3)\) that describes how the transformation group \(SE\, (3)\) acts on the Euclidean space, i.e. how point coordinates transform under rigid body motion.

The relative displacement vector of the two points, expressed in the global frame, is thus with (1)

$$\begin{aligned} {\overline{{\mathbf {d}}}}\left( {\mathbf {q}}\right) :={\mathbf {C}}_{l^{\prime \prime }}{\overline{{\mathbf {p}}}}_{l^{\prime \prime }}-{\mathbf {C}}_{k^{\prime }}{\overline{{\mathbf {p}}}}_{k^{\prime }}=f_{l^{\prime \prime }}\left( {\mathbf {q}}\right) {\overline{{\mathbf {p}}}}_{l^{\prime \prime }}-f_{k^{\prime }}\left( {\mathbf {q}}\right) {\overline{{\mathbf {p}}}}_{k^{\prime }}. \end{aligned}$$
(2)

Since the joint is fixed to the bodies, the components of the relative translation to be constrained can be identified when expressed in a body-fixed RFR. In the RFR \({\mathcal {F}}_{k^{\prime }}\) at body \(k^{\prime }\), for instance, the displacement vector is

$${\mathbf {d}}_{k^{\prime }}\left( {\mathbf {q}}\right) :={\mathbf {R}}_{k^{\prime }}^{T}\left( {\mathbf {q}}\right) {\mathbf {d}}\left( {\mathbf {q}}\right)$$
(3)

(the difference of two point coordinates is a vector). The system of \(m\le 3\) (scleronomic) translation constraints can now be written in the from

$${\mathbf {0}}=F\left( {\mathbf {d}}_{k^{\prime }}\left( {\mathbf {q}}\right) \right) =F\left( {\mathbf {q}}\right) .$$
(4)

This accounts for general bilateral contact conditions like surface-surface, point-surface, or curve-point contact. A simple constraint for technical joints is, for instance, that the relative motion along a certain direction (which is fixed w.r.t. the body) is prohibited. Let \({\mathbf {e}}_{k^{\prime }}\) be a unit vector along this direction, expressed in the RFR \({\mathcal {F}}_{k^{\prime }}\), then the corresponding constraint is \(0={\mathbf {e}}_{k^{\prime }}^{T}{\mathbf {d}}_{k^{\prime }}\left( {\mathbf {q}}\right)\).

2.4 Orientation constraints for higher pairs

The orientation of a body w.r.t. the global frame is represented by the rotation part \({\mathbf {R}}\in SO\left( 3\right)\) of its configuration \(C=\left( {\mathbf {R}},{\mathbf {r}}\right) \in SE\, (3)\). The relative rotation constraint of the two bodies \(k^{\prime }\) and \(l^{\prime \prime }\) can be expressed as

$$0=\left( {\mathbf {R}}_{k^{\prime }}{\mathbf {e}}_{k^{\prime }}\right) \cdot \left( {\mathbf {R}}_{l^{\prime \prime }}{\mathbf {e}}_{l^{\prime \prime }}\right) ={\mathbf {e}}_{k^{\prime }}^{T}{\mathbf {R}}_{k^{\prime }}^{T}{\mathbf {R}}_{l^{\prime \prime }}{\mathbf {e}}_{l^{\prime \prime }},$$
(5)

where \({\mathbf {e}}_{k^{\prime }}\) and \({\mathbf {e}}_{l^{\prime \prime }}\) is a unit vector fixed at body \(k^{\prime }\) and \(l^{\prime \prime }\), respectively. Here \({\mathbf {R}}_{k^{\prime }}^{T}{\mathbf {R}}_{l^{\prime \prime }}\) is the relative rotation of body \(l^{\prime \prime }\) w.r.t. body \(k^{\prime }\). The constraint (5) enforces the two unit vectors to be perpendicular. In general, the unit vectors \({\mathbf {e}}\) can depend on the configuration C. In total \(m\le 3\) such rotation constraints can be introduced. An exhaustive list of constraints for various joints can be found e.g. in [25, 26]. Clearly the above constraint formulations are also applicable to lower pair joints.

Example 1

(Hook Joint) A hook (or universal) joint is a 2-DOF higher kinematic pair representing a Cardanic suspension (Fig. 3). It cannot be a lower kinematic pair since there is no 2-dim motion subgroup. It could actually be modeled as combination of two (lower pair) revolute joints, but it is here considered as higher pair. The joint imposes one orientation constraint (5): the two rotation axis must remain perpendicular. By convention, the body-fixed frames are usually oriented so that \({\mathbf {e}}_{k^{\prime }}\) is along the 1-axis of the body-fixed RFR \({\mathcal {F}}_{k^{\prime }}\) on body \(k^{\prime }\), and \({\mathbf {e}}_{l^{\prime \prime }}\) is along the 2-axis of the RFR \({\mathcal {F}}_{l^{\prime \prime }}\) on body \(l^{\prime \prime }\) [25, 26]. Then \({\mathbf {e}}_{k^{\prime }}={\mathbf {u}}_{1}\) and \({\mathbf {e}}_{l^{\prime \prime }}={\mathbf {u}}_{2}\), and the constraint requires the 1, 2-entry of the relative rotation matrix \({\mathbf {R}}_{k^{\prime }}^{T}{\mathbf {R}}_{l^{\prime \prime }}\) to vanish: \({\mathbf {u}}_{1}^{T}{\mathbf {R}}_{k^{\prime }}^{T}{\mathbf {R}}_{l^{\prime \prime }}{\mathbf {u}}_{2}=0\). The hook joint constrains the origin of the body-fixed frames to coincide. That is, \({\mathbf {p}}_{k^{\prime }}\) and \({\mathbf {p}}_{l^{\prime \prime }}\) are the location vectors of the intersection point of the joint axes. The \(m=3\) translation constraints (4) are thus simply \({\mathbf {d}}_{k\prime }\left( {\mathbf {q}}\right) ={\mathbf {0}}\). In total the hook joint imposes 4 constraints.

Fig. 3
figure 3

Reference frames assigned to a hook joint

Fig. 4
figure 4

Pin-in-Slot joint connecting the ground \(k^{\prime }=0\) with link \(l^{\prime \prime }=2\)

Example 2

(Pin-in-Slot Joint) A pin-in-slot joint is a 2-DOF higher kinematic pair restricting the relative motion of two bodies to a line while allowing for a relative rotation about a constant axis. Figure 4 shows a planar single-loop mechanism containing a pin-in-slot and two revolute joints. The pin-in-slot joint is used as cut-joint. The remaining \(n=2\) joint angles defined the parameter space \({{\mathbb {V}}}^{n}=T^{2}\). The pin-in-slot joint connects the coupler link \(l^{\prime \prime }=2\) of the 4-bar mechanism with the ground body \(k^{\prime }=0\). The global reference frame \({\mathcal {F}}_{0}\) is located at ground as shown in Fig. 4. The configuration of the ground is of course \({\mathbf {C}}_{0}\equiv {\mathbf {I}}\). The configuration \({\mathbf {C}}_{2}\) of link 2 is determined by \(f_{2}\left( {\mathbf {q}}\right) =\exp ({\mathbf {Y}}_{1}q_{1})\exp ({\mathbf {Y}}_{2}q_{2}){\mathbf {A}}_{2}\) with the joint screw coordinates

$${\mathbf {Y}}_{1}=(0,0,1,0,a,0)^{T},\quad {\mathbf {Y}}_{2}=\left( 0,0,1,d,-b,0\right) ^{T}$$
(6)

and the reference configuration \(A_{2}=({\mathbf {I}},(-b,d,0)^{T})\) w.r.t. the world frame. The pivot point of the pin-in-slot joint is the coupler point of link 2. Its position expressed in the RFR \({\mathcal {F}}_{2}\) on link 2, shown in Fig. 4, is \({\mathbf {p}}_{2}=\left( b,0,0\right) ^{T}\). This point is restricted to move on the horizontal line fixed to the ground, and any point on the joint’s sliding axis can be used as reference point on the ground. The center of the slot is used as reference point, and its coordinate vector expressed in the ground RFR (world frame) is \({\mathbf {p}}_{0}=\left( 0,d,0\right) ^{T}\). The relative displacement vector expressed in the spatial frame is \({\overline{{\mathbf {d}}}}=f_{2}({\mathbf {q}}) {\overline{{\mathbf {p}}}}_{2}-{\overline{{\mathbf {p}}}}_{0}\). This is already expressed in the RFR \({\mathcal {F}}_{k^{\prime }}\) on link \(k^{\prime }=0\) (ground). Hence with (3), \({\mathbf {d}}_{k^{\prime }}={\mathbf {d}}_{0}={\mathbf {d}}\), (denoting \(s_{1}:=\sin q_{1},s_{12}:=\sin \left( q_{1}+q_{2}\right)\) etc.)

$${\mathbf {d}}_{0}\left( {\mathbf {q}}\right) =\left( \begin{array}{c} (a+b)c_{1}-bc_{12}-ds_{1}-a\\ (a+b)s_{1}+dc_{1}-bs_{12}-d\\ 0\end{array}\right)$$
(7)

is the relative displacement vector expressed in the RFR \({\mathcal {F}}_{0}\) on link \(k^{\prime }=0\). The motion along the 1-axis of the RFR \({\mathcal {F}}_{0}\) of link \(k^{\prime }=0\) is the unconstrained joint motion. The two translation constraints require the vanishing of the second and third component of \({\mathbf {d}}_{k^{\prime }}\). These are

$$0= {\mathbf {u}}_{2}^{T}{\mathbf {d}}_{0}\left( {\mathbf {q}}\right) =(a+b)s_{1}+dc_{1}-bs_{12}-d$$
(8)
$$0= {\mathbf {u}}_{3}^{T}{\mathbf {d}}_{0}\left( {\mathbf {q}}\right) \equiv 0$$
(9)

with unit vectors \({\mathbf {u}}_{2}=\left( 0,1,0\right) ^{T}\) and \({\mathbf {u}}_{3}=\left( 0,0,1\right) ^{T}\). The constraint (9) is apparently dispensable. The rotation constraints require the 3-axes of both bodies, \(k^{\prime }=0\) and \(l^{\prime \prime }=2\) to be parallel. According to (5) the two constraints are

$${\mathbf {u}}_{3}^{T}{\mathbf {R}}_{2}{\mathbf {u}}_{1}=0,\quad {\mathbf {u}}_{3}^{T}{\mathbf {R}}_{2}{\mathbf {u}}_{2}=0,$$
(10)

where \({\mathbf {R}}_{2}\) is the rotation matrix of body \(l^{\prime \prime }=2\). Since the example is a planar mechanism these constraints are also dispensable, and their detailed expression is omitted here. Hence, the system of geometric constraints (4) consists of the single Eq. (8).

Remark 2

It should be noticed that the solution of the \(m\le 3\) orientation constraints constructed with (5) is not unique. This is because the orthogonality relations do not enforce a specific direction of the unit vectors. These constraints are sufficient though as long as an admissible configuration is used for a local mobility analysis, or as initial configuration for the time integration in MBS dynamics. But when assembly configurations are determined numerically, it is common practice to impose \(m+1\le 4\) constraints. For instance, the additional constraint for the hook joint is \({\mathbf {u}}_{3}^{T}{\mathbf {R}}_{2}{\mathbf {u}}_{3}=1\).

3 Higher-order constraints for a kinematic loop

Repeated time derivatives of the constraints yield the corresponding constraints on the acceleration, jerk, jounce, etc. The above formulation of cut-joint constraints requires the time derivatives of the kinematic mappings (1) of the two lower pair chains. They become very complex. In order to handle this complexity a recursive formulation was presented in [16]. In this section they are employed to derive recursive formulations for the cut-joint constraints of higher pairs.

3.1 Time derivatives of the twist of the terminal bodies \(k^{\prime }\) and \(l^{\prime \prime }\)

The time derivative of the geometric constraints yields the velocity constraints for higher pairs. The orientation constraints (5) only involve the relative rotation matrix, whereas the translation constraints (4) involve the translation and orientation of the two interconnected bodies. This reflects the semidirect product structure of \(SE\,(3)\), meaning that derivatives of (5) involve only angular velocities, and those of (4) involve the complete relative twist. The recursive relations for the derivative of the relative twists are briefly summarized in the following.

The spatial twist of a body is defined as \(\widehat{{\mathbf {V}}}={\dot{{\mathbf {C}}}}{\mathbf {C}}^{-1}\in se\, (3)\) (Appendix). With the forward kinematic mapping (1), the twist of body \(k^{\prime }\) at configuration \({\mathbf {q}}\) is given in terms of the joint rates \({\dot{{\mathbf {q}}}}\) by [13]

$$\begin{aligned} {\mathbf {V}}_{k^{\prime }}= & {} {\mathbf {S}}_{1^{\prime }}\left( {\mathbf {q}}\right) {\dot{q}}_{1^{\prime }}+\cdots +{\mathbf {S}}_{k^{\prime }}\left( {\mathbf {q}}\right) {\dot{q}}_{k^{\prime }}\nonumber \\= & {} {\mathsf {S}}_{k^{\prime }}^{1}\left( {\mathbf {q}},{\dot{{\mathbf {q}}}}\right) , \end{aligned}$$
(11)

with

$${\mathsf {S}}_{k^{\prime }}^{\nu }({\mathbf {q}},{\mathbf {q}}^{\left( \nu \right) }):=\sum _{1^{\prime }\le i^{\prime }\le k^{\prime }}{\mathbf {S}}_{i^{\prime }}q_{i^{\prime }}^{(\nu )}$$
(12)

and \(q_{i^{\prime }}^{(\nu )}=\frac{d^{\nu }}{dt^{\nu }}q_{i}\). Therein, the vector of instantaneous screw coordinates of joint \(i^{\prime }\) is determined by

$${{\mathbf {S}}_{i^{\prime }}}={\mathbf {Ad}}_{g_{i^{\prime }}}{\mathbf {Y}}_{i^{\prime }}$$
(13)

where \({\mathbf {Ad}}_{g_{i^{\prime }}}\) is the frame transformation of the screw coordinate vectors from the zero reference configuration \({\mathbf {q}}={\mathbf {0}}\) to the current configuration, with

$$g_{i^{\prime }}\left( {\mathbf {q}}\right) =\exp ({\mathbf {Y}}_{1^{\prime }}q_{1^{\prime }})\cdot \ldots \cdot \exp ({\mathbf {Y}}_{i^{\prime }}q_{i^{\prime }}).$$
(14)

It was shown in [16] that the derivatives of \({\mathsf {S}}_{k^{\prime }}^{\nu }\) admit the following recursive expression

$$D^{(k)}{\mathsf {S}}_{i^{\prime }}^{\nu }=\sum _{j^{\prime }\le i^{\prime }}\sum _{r=0}^{k-1}\left( \begin{array}{c} {k-1}\\ {r}\end{array}\right) D^{(k-r)}{\mathbf {S}}_{j^{\prime }}q_{j^{\prime }}^{(k+r)}+D^{(k-1)}{\mathsf {S}}_{i^{\prime }}^{\nu +1}$$
(15)

together with the derivatives of the screw coordinates

$$D^{\left( k\right) }{\mathbf {S}}_{i^{\prime }}=\sum _{r=0}^{k-1}\left( \begin{array}{c} {k-1}\\ {r}\end{array}\right) \left[ D^{(r)}{\mathsf {S}}_{i^{\prime }}^{1},D^{(k-r-1)}{\mathbf {S}}_{i^{\prime }}\right]$$
(16)

where \(D^{(i)}:=\frac{d^{i}}{dt^{i}}\), and \(\left[ \cdot ,\cdot \right]\) is the screw product (Lie bracket on \(se\, (3)\)), see [24] and Appendix. The higher-order time derivatives of \({\mathsf {S}}_{k^{\prime }}^{1}\), and thus of the twist (11), are hence determined recursively by very simple algebraic operations. This applies analogously the other terminal body \(l^{\prime \prime }\).

3.2 Translation constraints for higher pairs

The time derivative of the relative displacement vector \({\overline{{\mathbf {d}}}}\), i.e. the relative translational velocity, expressed in the spatial frame \({\mathcal {F}}_{0}\) is

$$\begin{aligned} {\dot{{\overline{{\mathbf {d}}}}}}= & {} {\dot{{\mathbf {C}}}}_{l^{\prime \prime }} {\overline{{\mathbf {p}}}}_{l^{\prime \prime }}-{\dot{{\mathbf {C}}}}_{k^{\prime }} {\overline{{\mathbf {p}}}}_{k^{\prime }}\nonumber \\= & {} \widehat{{\mathbf {V}}}_{l^{\prime \prime }}{\mathbf {C}}_{l^{\prime \prime }}{\overline{{\mathbf {p}}}}_{l^{\prime \prime }}-\widehat{{\mathbf {V}}}_{k^{\prime }}{\mathbf {C}}_{k^{\prime }}{\overline{{\mathbf {p}}}}_{k^{\prime }}\nonumber \\= & {} \widehat{{\mathsf {S}}}_{l^{\prime \prime }}^{1}{\mathbf {C}}_{l^{\prime \prime }}{\overline{{\mathbf {p}}}}_{l^{\prime \prime }}-\widehat{{\mathsf {S}}}_{k^{\prime }}{\mathbf {C}}_{k^{\prime }}{\overline{{\mathbf {p}}}}_{k^{\prime }} \end{aligned}$$
(17)

where the position vectors \({\mathbf {p}}_{k^{\prime }}\) and \({\mathbf {p}}_{l^{\prime \prime }}\), expressed in the respective RFR \({\mathcal {F}}_{k^{\prime }}\) and \({\mathcal {F}}_{l^{\prime \prime }}\), are assumed to be constant. This relative velocity expressed, for instance, in the RFR on body \(k^{\prime }\) is \({\mathbf {R}}_{k^{\prime }}^{T}{\dot{{\mathbf {d}}}}\), with \({\mathbf {R}}_{k^{\prime }}\) the rotation matrix in \({\mathbf {C}}_{k^{\prime }}\) (48).

Starting from the first expression in (17), higher time derivatives of \({\overline{{\mathbf {d}}}}\) are given as

$$\begin{aligned} D^{\left( i\right) }{\overline{{\mathbf {d}}}}= & {} D^{\left( i-1\right) }{\dot{{\overline{{\mathbf {d}}}}}}\nonumber \\= & {} D^{\left( i\right) }{\mathbf {C}}_{l^{\prime \prime }}{\overline{{\mathbf {p}}}}_{l^{\prime \prime }}-D^{\left( i\right) }{\mathbf {C}}_{k^{\prime }}{\overline{{\mathbf {p}}}}_{k^{\prime }},\ i\ge 1. \end{aligned}$$
(18)

They involve the derivatives of the configurations. These follow immediately from \({\dot{{\mathbf {C}}}}_{k^{\prime }}=\widehat{{\mathbf {V}}}_{k^{\prime }}{\mathbf {C}}_{k^{\prime }}\) and (11) as

$$\begin{aligned} D^{\left( i\right) }{\mathbf {C}}_{k^{\prime }}= & {} D^{\left( i-1\right) }{\dot{{\mathbf {C}}}}_{k^{\prime }}\nonumber \\= & {} \sum _{r=0}^{i-1}\left( \begin{array}{c} {i-1}\\ {r}\end{array}\right) D^{\left( r\right) }\widehat{{\mathsf {S}}}_{k^{\prime }}^{1}D^{\left( i-r-1\right) }{\mathbf {C}}_{k^{\prime }},\ i\ge 1 \end{aligned}$$
(19)

and analogously for \({\mathbf {C}}_{l^{\prime \prime }}\).

The vector in (18) is expressed in the spatial frame. In order to formulate the higher-order constraints, they are transformed to the RFR on body \(k^{\prime }\) as \({\mathbf {R}}_{k^{\prime }}^{T}D^{\left( i\right) }{\overline{{\mathbf {d}}}}\). The ith-order constraints are then of the form

$$F^{\left( i\right) }\left( {\mathbf {q}},{\dot{{\mathbf {q}}}},\ldots ,{\mathbf {q}}^{\left( i\right) }\right) ={\mathbf {0}}.$$
(20)

In summary, the relation (18), together with (19), (15) and (16), provide a recursive algebraic expression for the ith time derivative of the relative displacement vector \({\mathbf {d}}_{k^{\prime }}\). This allows for a recursive determination of time derivatives of the constraints (4). The basic operation is the Lie bracket in (16).

3.3 Orientation constraints for higher pairs

Time derivatives of the orientation constraints (5) yield the constraints on the relative angular velocities of bodies \(k^{\prime }\) and \(l^{\prime \prime }\). This require time derivatives of the relative rotation matrix. The ith time derivative is given by derivatives of the rotation matrices of body \(k^{\prime }\) and \(l^{\prime \prime }\)

$$D^{\left( i\right) }({\mathbf {R}}_{k^{\prime }}^{T}{\mathbf {R}}_{l^{\prime \prime }})=\sum _{r=0}^{i}\left( \begin{array}{c} {i}\\ {r}\end{array}\right) D^{\left( r\right) }{\mathbf {R}}_{k^{\prime }}^{T}D^{\left( i-r\right) }{\mathbf {R}}_{l^{\prime \prime }}.$$
(21)

The relations \({\dot{{\mathbf {R}}}}_{k^{\prime }}^{T}=-{\mathbf {R}}_{k^{\prime }}^{T}\widehat{{\mathbf {\omega }}}_{k^{\prime }}\) and \({\dot{{\mathbf {R}}}}_{l^{\prime \prime }}=\widehat{{\mathbf {\omega }}}_{l^{\prime \prime }}{\mathbf {R}}_{l^{\prime \prime }}\) yield

$$\begin{aligned} D^{\left( i\right) }{\mathbf {R}}_{k^{\prime }}^{T}= & {} D^{\left( i-1\right) }{\dot{{\mathbf {R}}}}_{k^{\prime }}^{T}\nonumber \\= & {} -\sum _{r=0}^{i-1}\left( \begin{array}{c} {i-1}\\ {r}\end{array}\right) D^{\left( r\right) }{\mathbf {R}}_{k^{\prime }}^{T}D^{\left( i-r-1\right) }\widehat{{\mathbf {\omega }}}_{k^{\prime }} \end{aligned}$$
(22)
$$\begin{aligned} D^{\left( i\right) }{\mathbf {R}}_{l^{\prime \prime }}= & {} D^{\left( i-1\right) }{\dot{{\mathbf {R}}}}_{l^{\prime \prime }}\nonumber \\= & {} \sum _{r=0}^{i-1}\left( \begin{array}{c} {i-1}\\ {r}\end{array}\right) D^{\left( r\right) }\widehat{{\mathbf {\omega }}}_{l^{\prime \prime }}D^{\left( i-r-1\right) }{\mathbf {R}}_{l^{\prime \prime }}. \end{aligned}$$
(23)

Here, \({\mathbf {\omega }}_{k^{\prime }}\) and \({\mathbf {\omega }}_{l^{\prime \prime }}\) are the angular velocity of the spatial twists \({\mathbf {V}}_{k^{\prime }}\) and \({\mathbf {V}}_{l^{\prime \prime }}\). Hence, their derivatives are known from the angular part of the derivative of \({\mathsf {S}}_{k^{\prime }}^{1}\) and \({\mathsf {S}}_{l^{\prime \prime }}^{1}\), using (15). That is, the latter are determined already if the cut-joint imposes translation constraints, so that the relations (22) and (23) do not have to be evaluated.

4 Extension to multi-loop linkages

4.1 Linkage topology

Most mechanisms comprise multiple kinematic loops. The above formulation of higher pair cut-joint constraints for a single loop can be directly adopted to multi-loop mechanisms. To this end, topologically independent loops must be identified. The kinematic mechanism topology refers to the arrangement of links and joints. This is naturally described by a linear non-direct graph referred to as the topological graph, denoted \(\varGamma \left( B,J\right)\) [4, 15, 28]. The vertex set B represents the bodies, and the set of edges J represents the joints. In the following the basic description is recalled from [15], which provides a systematic approach. This serves to identify the kinematic loops for which the above constraints must be formulated.

Denote with \({\mathcal {G}}\subset \varGamma\) a spanning tree on \(\varGamma\), and with \({\mathcal {H}}=\varGamma \backslash {\mathcal {G}}\) its complement—the cotree. A fundamental cycle (FC) is a closed path containing exactly one edge of the cotree \({\mathcal {H}}\). The number of FCs is the cyclomatic number \(\gamma :=|J|-|B|+1\), with |J| being the of number joints, and |B| the number of bodies. In particular, \(|J|=n\) when assuming that all joints have 1 DOF. The \(\gamma\) FCs constitute a system of topologically independent loops for which closure constraints are to be introduced.

Bodies are indexed with \(\alpha ,\beta ,\ldots\) and denoted with \(B_{\alpha }\in B\). The ground is denoted \(B_{0}\). Joints are indexed with \(i,j,\ldots\) and denoted \(J_{i}\in J\). Each FC contains exactly one cotree edge. The FC containing the cotree edge \(J_{l}\in {\mathcal {H}}\) is denoted with \(\varLambda _{l}\). Figure 5 shows a two-loop mechanism, and its topological graph \(\varGamma\).

In order to apply the formulation introduced in the previous section, no FC must comprise more than one higher pair. Consequently, the FCs on \(\varGamma\) must be introduced accordingly. If this is not possible, the method is not applicable. In other words, the higher pair cut-joint necessarily corresponds to the cotree edge \(J_{l}\) of \(\varLambda _{l}\). This is \(J_{3}\) in the example in Fig. 5. Furthermore, the two bodies connected by \(J_{l}\) are the terminal bodies of two kinematic chains. Now, adoption of (1) requires a predecessor relation.

Fig. 5
figure 5

a 2-Loop mechanism with a Pin-in-Slot higher pair joint. Joint numbers are encircled; body numbers are shown with surrounding box. b Topological graph. c Spanning tree and chosen fundamental cycles (FC) \(\varLambda _{3}\) and \(\varLambda _{5}\). d Oriented graph. e Oriented spanning tree

In \({\mathcal {G}}\) there is a unique path from any vertex (body) \(B_{\alpha }\) to \(B_{0}\) (ground). For a given \({\mathcal {G}}\), a root-directed tree is introduced, denoted with \({\mathcal {\mathbf {G}}}_{0}\), such that all edges are oriented away from the ground (see Fig. 5e). Edges of \({\mathcal {\mathbf {G}}}_{0}\) are directed and represented by ordered pairs of vertices, i.e. bodies.

Let \(B_{\alpha }\) and \(B_{\beta }\) be connected by a tree-joint. Then body \(B_{\beta }\) is the direct predecessor of \(B_{\alpha }\), if \(\left( B_{\beta },B_{\alpha }\right) \in {\mathcal {\mathbf {G}}}_{0}\). \(B_{\beta }\) is the source and \(B_{\alpha }\) the target of the edge. This is denoted as \(\beta =\alpha -1\). Joint \(J_{j}\) is the direct predecessor of \(J_{i}\), if the target of \(J_{j}\) is the source of \(J_{i}\), i.e. \(J_{j}=\left( \cdot ,B_{\alpha }\right) \in {\mathcal {\mathbf {G}}}_{0}\) and \(J_{i}=\left( B_{\alpha },\cdot \right) \in {\mathcal {\mathbf {G}}}_{0}\). This is denoted as \(j=i-1\). Joint \(J_{j}\) is a predecessor of \(J_{i}\), if there is a finite k, such that \(j=i-1-1\ldots -1\) (k times). This is expressed as \(j=i-k\). Being a predecessor is indicated by \(j<i\).

The tree-joint that connects \(B_{\alpha }\) with its predecessor is denoted with \(J\left( \alpha \right)\). The last joint of the chain from \(B_{\alpha }\) within the tree that connects to the ground \(B_{0}\) is denoted with \(J_{\mathrm{root}}\left( \alpha \right)\).

An edge of \(\varGamma\) is a tuple \(J_{i}=\left( B_{a},B_{b}\right)\) indicating that joint i connects bodies a and b. To indicate orientation of the joints, i.e. the meaning of relative joint motions, an oriented graph \(\mathbf {\varGamma }\) is introduced. If \(J_{i}=\left( B_{\beta },B_{\alpha }\right) \in \mathbf {\varGamma }\), then joint \(J_{i}\) determines the motion of \(B_{\alpha }\) w.r.t. \(B_{\beta }\), and \(B_{\alpha }\) is the target and \(B_{\beta }\) the source of the arc. This is represented by an arrow as in Fig. 5d.

Finally, the joint orientation must be related to the orientation of \({\mathcal {\mathbf {G}}}_{0}\). To this end, introduce an indicator function for \(J_{i}=\left( \beta ,\alpha \right) \in \varGamma\) as

$$\begin{aligned} \sigma \left( i\right) =\left\{ \begin{array}{ll} 1, &{} B_{\beta }\,{\text{is direct predecessor of}}\, B_{\alpha } \\ -1, &{} B_{\alpha }\,{\text{is direct predecessor of}}\, B_{\beta } \\ 0, &{} J_{i}\,{\text{is not a tree-joint}}, \end{array}\right. \end{aligned}$$

4.2 Geometric constraints

As in (1), the configuration of body \(\alpha\) is determined by the relative configurations of the preceding lower pairs in the chain towards the ground as \({\mathbf {C}}_{\alpha }=f_{\alpha }\left( {\mathbf {q}}\right)\), with the forward kinematic mapping

$$\begin{aligned} f_{\alpha }\left( {\mathbf {q}}\right) {:=}&\exp (\sigma \left( r\right) {\mathbf {Y}}_{r}q_{r})\cdot \ldots \nonumber \\&\cdot \exp (\sigma \left( i- 1\right) {\mathbf {Y}}_{i-1}q_{i-1})\cdot \exp (\sigma \left( i\right) {\mathbf {Y}}_{i}q_{i}){\mathbf {A}}_{\alpha }\nonumber \\ {\text{with}}&{{\ r=J_{\mathrm{root}}\left( \alpha \right) ,i=}J}\left( \alpha \right) \end{aligned}$$
(24)

where \({\mathbf {A}}_{\alpha }\in SE\, (3)\) is the reference configuration of \(B_{\alpha }\). The same applies to \(B_{\beta }\), so that the relative configuration of the two bodies connected by cut-joint \(J_{l}=\left( B_{\beta },B_{\alpha }\right) \in {\mathcal {H}}\) is known.

Translation constraints Denote with \({\mathbf {p}}_{l,\alpha }\) and \({\mathbf {p}}_{l,\beta }\) the position vector of points at \(B_{\alpha }\) and \(B_{\beta }\), respectively expressed in \({\mathcal {F}}_{\alpha }\) and \({\mathcal {F}}_{\beta }\), whose relative displacement is constrained by the cut-joint \(J_{l}\). The relative displacement expressed in the global frame is \({\overline{{\mathbf {d}}}}_{l}:={\mathbf {C}}_{\alpha }{\overline{{\mathbf {p}}}}_{l,\alpha }-{\mathbf {C}}_{\beta }{\overline{{\mathbf {p}}}}_{l,\beta }\). Transformed into the RFR on \(B_{\beta }\) this is

$${\mathbf {d}}_{l,\beta }\left( {\mathbf {q}}\right) :={\mathbf {R}}_{\beta }^{T}\left( {\mathbf {q}}\right) {\mathbf {d}}_{l}\left( {\mathbf {q}}\right) .$$
(25)

The system of \(m\le 3\) translation constraints for the cut-joint \(J_{l}=\left( B_{\beta },B_{\alpha }\right)\) then attains the form

$$F_{l}\left( {\mathbf {d}}_{l,\beta }\left( {\mathbf {q}}\right) \right) =F_{l}\left( {\mathbf {q}}\right) ={\mathbf {0}}.$$
(26)

Orientation constraints An orientation constraint for \(J_{l}\) imposes a restriction on the relative rotation. Denote with \({\mathbf {e}}_{l,\alpha }\) and \({\mathbf {e}}_{l,\beta }\), specified unit vectors, fixed at \(B_{\alpha }\) and \(B_{\beta }\) and represented in \({\mathcal {F}}_{\alpha }\) and \({\mathcal {F}}_{\beta }\), respectively. The constraint is introduced as

$${\mathbf {e}}_{l,\beta }^{T}{\mathbf {R}}_{l,\beta }^{T}{\mathbf {R}}_{\alpha }{\mathbf {e}}_{l,\alpha }={\mathbf {0}}$$
(27)

where \({\mathbf {R}}_{\alpha }\) and \({\mathbf {R}}_{\beta }\) are the rotation matrices of the two bodies. Up to three independent constraints can be introduced for the cut-joint \(J_{l}\).

Fig. 6
figure 6

The lower pair revolute joint 5 and the higher pair pin-in-slot joint 3 are used as cut-joints

Example 3

(Pin-in-Slot Joint, cont.) The mechanism in Fig. 5 comprises two FCs, \(\varLambda _{3}\) and \(\varLambda _{5}\) with cut-joints \(J_{3}\) and \(J_{5}\), respectively. The remaining \(n=3\) joint angles \(q_{1},q_{2},q_{4}\) define the parameter space \({{\mathbb {V}}}^{n}=T^{3}\). The joint orientations (indicated by \(\mathbf {\varGamma }\) in Fig. 5d) are such that \(\sigma \left( i\right) =1\) for all i. This is in accordance with Example 2. The higher pair \(J_{3}=\left( B_{0},B_{2}\right)\) connects \(B_{0}\) and \(B_{2}\), and the corresponding constraints are formulated in terms of \({\mathbf {C}}_{0}\) and \({\mathbf {C}}_{3}\) (Fig. 6). The translation and orientation constraints are thus the two constraints (8) and (10), determined with \({\mathbf {C}}_{0}={\mathbf {I}}\) and \(f_{2}\left( {\mathbf {q}}\right)\) in Example 2. The lower pair revolute joint \(J_{5}=\left( B_{0},B_{3}\right)\) connects \(B_{0}\) and \(B_{3}\). For sake of simplicity, the RFR \({\mathcal {F}}_{3}\) on link \(B_{3}\) is located at the axis of \(J_{5}\) so that \(A_{3}=({\mathbf {I}},(a,0,0)^{T})\). The configuration of \(B_{3}\) is determined by \(f_{3}\left( {\mathbf {q}}\right) =\exp ({\mathbf {Y}}_{1}q_{1})\cdot \exp ({\mathbf {Y}}_{2}q_{2})\cdot \exp ({\mathbf {Y}}_{4}q_{4}){\mathbf {A}}_{3}\) with the joint screw coordinates in (6) and

$${\mathbf {Y}}_{4}=(0,0,1,d,b,0)^{T}.$$
(28)

The position vector to the revolute joint axis, expressed in the RFR \({\mathcal {F}}_{3}\) on \(B_{3}\), is \({\mathbf {p}}_{5,3}={\mathbf {0}}\). The position vector of the axis expressed in the RFR \({\mathcal {F}}_{0}\) at \(B_{0}\) is \({\mathbf {p}}_{5,0}=\left( a,0,0\right) ^{T}\). Thus, \({\overline{{\mathbf {d}}}}_{5}=f_{3}({\mathbf {q}}) {\overline{{\mathbf {p}}}}_{5,3}-{\overline{{\mathbf {p}}}}_{5,0}\) yields the relative translation vector \({\mathbf {d}}_{5,0}={\mathbf {d}}_{5}\) expressed in the RFR \({\mathcal {F}}_{0}\) at \(B_{0}\)

$$\begin{aligned} {\mathbf {d}}_{5,0}=\left( \begin{array}{c} (a+b)c_{1}- 2bc_{12}- 2a+ (a+b)c_{124}- ds_{1} + ds_{124}\\ dc_{1}-dc_{124}+(a+b)s_{1}-2bs_{12}+(a+b)s_{124}\\ 0\end{array} \right) \end{aligned}$$
(29)

where \(c_{124}=\cos (q_{1}+q_{2}+q_{4})\), etc. The revolute joint constraints require all three components to vanish. The third component is identically zero, and thus dispensable, for this planar mechanism. The overall system of constraints (26) consists of the Eq. (8) and the first two equations in (29).

Remark 3

The FC \(\varLambda _{5}\) only contains lower pairs. The constraints for fundamental cycles only comprising lower pairs can be formulated using the POE formulation reported in [16] and the mobility analysis be pursued correspondingly [17].

4.3 Higher-order constraints

Relative twists The spatial twist of \(B_{\alpha }\) is again a linear combination of the instantaneous joints screws in terms of joint rates

$${\mathbf {V}}_{\alpha }={\mathsf {S}}_{\alpha }^{1}\left( {\mathbf {q}},{\dot{{\mathbf {q}}}}\right) ,$$
(30)

where now the tree-joints in the path from \(B_{\alpha }\) to \(B_{0}\) are involved, so that

$$\begin{aligned} {\mathsf {S}}_{\alpha }^{\nu }({\mathbf {q}},{\mathbf {q}}^{\left( \nu \right) }):=\sum _{i\le k}{\mathbf {S}}_{i}({\mathbf {q}})q_{i}^{(\nu )},\quad {\text{with}}\quad k=J\left( \alpha \right) . \end{aligned}$$
(31)

The instantaneous joints screws are now

$$\begin{aligned} {{\mathbf {S}}_{i}}=\sigma \left( i\right) {\mathbf {Ad}}_{g_{i}}{\mathbf {Y}}_{i} \end{aligned}$$
(32)

with

$$\begin{aligned} g_{i}\left( {\mathbf {q}}\right)= \,& {} \exp (\sigma \left( r\right) {\mathbf {Y}}_{r}q_{r})\cdot \ldots \cdot \exp (\sigma \left( i\right) {\mathbf {Y}}_{i}q_{i})\nonumber \\ r=\, & {} {{J_{\mathrm{root}}\left( \alpha \right) ,\ \ r<\cdots }}<i \end{aligned}$$
(33)

The relative spatial twist of \(B_{\alpha }\) and \(B_{\beta }\) connected by cut-joint \(J_{l}\) is thus known. Its derivatives are available adopting (15) and (16). This is straightforward, and omitted here.

Translation constraints The relations of Sect. 3.2 are directly applicable. The time derivative of the relative position vector is

$$\begin{aligned} {\dot{{\overline{{\mathbf {d}}}}}}_{l}={\dot{{\mathbf {C}}}}_{\alpha }{\overline{{\mathbf {p}}}}_{l,\alpha }-{\dot{{\mathbf {C}}}}_{\beta }{\overline{{\mathbf {p}}}}_{l,\beta } \end{aligned}$$
(34)

and in the RFR on \(B_{\beta }\) it is \({\dot{{\mathbf {d}}}}_{l,\beta }={\mathbf {R}}_{\beta }^{T}{\dot{{\mathbf {d}}}}_{l}\). Higher derivatives follow by adapting the results in Sect. 3.2.

Orientation constraints The relations for the orientation constraints in Sect. 3.3 can also be adopted directly and are omitted here.

Remark 4

Finally it must be remarked that the FCs are not unique. Using different systems of FCs results in different loop constraints. The FCs must be introduced such that each FC contains at most one higher pair.

5 Higher-order mechanism analysis

5.1 Problem statement

The motivation for deriving the above recursive relations for the time derivatives is to provide a computationally efficient means for the local kinematic analysis of mechanisms comprising lower pairs and one higher pair per FC. This allows to investigate the mobility, identify singularities and motion bifurcation and reconfiguration, and to assess the shakiness of a mechanism. A local analysis aims at determining the higher-order, and eventually the finite, mobility of a mechanism in a given configuration.

Denote with \(h_{l}\left( {\mathbf {q}}\right) ={\mathbf {0}}\) the system consisting of the translation constraints (26) and the orientation constraints (27) for the cut-joint \(J_{l}\), and with \(h\left( {\mathbf {q}}\right) ={\mathbf {0}}\) the overall system of all cut-joint constraints. The c-space of a multi-loop mechanism is the analytic variety

$$\begin{aligned} V= \,& {} h^{-1}\left( {\mathbf {0}}\right) =\bigcap \limits _{l\in {\mathcal {H}}}h_{l}^{-1}\left( {\mathbf {0}}\right) \\ =\, & {} \left\{ {\mathbf {q}}\in {{\mathbb {V}}}^{n}|h_{l}\left( {\mathbf {q}}\right) ={\mathbf {0}},l\in {\mathcal {H}}\right\} . \end{aligned}$$

A configuration \({\mathbf {q}}\in V\) is a feasible assembly. The local geometry of V at a configuration \({\mathbf {q}}\in V\) reveals the finite local mobility. A local analysis hence attempts to approximate the local geometry of V. The first-order approximation of V is its tangent space \(T_{{\mathbf {q}}}V\). This is indeed sufficient if V is a smooth manifold, i.e. \({\mathbf {q}}\) is a regular point of V. At any general (singular or regular) point \({\mathbf {q}}\in V\), the best local approximation is the tangent cone [27], denoted with \(C_{{\mathbf {q}}}V\). Whereas \(T_{{\mathbf {q}}}V\) consists of tangent vectors to V, the tangent cone consists of tangent vectors to curves in V through \({\mathbf {q}}\). It is hence the restriction of tangent vectors \({\mathbf {x}}\in T_{{\mathbf {q}}}V\) to those that are tangent to finite motions represented by curves in the c-space. It thus provides a local model of V, and in particular its local dimension \(\delta _{\mathrm{loc}}\left( {\mathbf {q}}\right) :=\dim _{{\mathbf {q}}}V=\dim C_{{\mathbf {q}}}V\) is the local DOF at \({\mathbf {q}}\in V\).

The concept of tangent cone has been first applied to the analysis of lower pair linkages in [11] that was continued in [18]. There the tangent cone was introduced via higher-order closure constraints, which allows for its actual determination thanks to lower pair loop constraints using the POE formulation. A summary of the computational procedure can be found in [17]. While the tangent cone provides a mathematical framework, higher-order constraints have been used for mobility analysis without resorting to this concept, e.g. [3, 5]. In particular, the closed form expressions of derivatives in term of Lie brackets for linkage with lower pairs have been reported and applied in [2, 6, 22]. Mechanisms with higher pair joints have not yet been addressed. The above higher-order constraints now allow for a higher-order analysis of mechanisms with higher pairs while exploiting the recursive form of the derivatives of lower pair chains. It is common practice to assign the variables \({\mathbf {q}}={\mathbf {0}}\) to the configuration to be analyzed. Then, \({\mathbf {C}}_{l^{\prime \prime }}={\mathbf {A}}_{l^{\prime \prime }}\) and \({\mathbf {C}}_{k^{\prime }}={\mathbf {A}}_{k^{\prime }}\) in (2) and (17), and the instantaneous joint screw coordinates in (15), (16), and (19) are simply the joint screw coordinates in the reference configuration, i.e. \({{\mathbf {S}}_{i^{\prime }}}={\mathbf {Y}}_{i^{\prime }}\), respectively in (31).

5.2 Computational procedure

The basic idea is to identify subsets of first-order motions that satisfy the constraints up to order i. With increasing i, this yields the set of first-order motion that correspond to finite motions satisfying the geometric constraints. To this end, introduce the following mappings

$$\begin{aligned} H^{\left( 1\right) }\left( {\mathbf {q}},{\dot{{\mathbf {q}}}}\right)\, {:=}\,&\frac{d}{dt}h\left( {\mathbf {q}},{\dot{{\mathbf {q}}}}\right) \nonumber \\ H^{\left( 2\right) }\left( {\mathbf {q}},{\dot{{\mathbf {q}}}},{\ddot{{\mathbf {q}}}}\right) \,{:=}\,&\frac{d^{2}}{dt^{2}}h\left( {\mathbf {q}},{\dot{{\mathbf {q}}}}\right) \nonumber \\ \cdots&\nonumber \\ H^{\left( i\right) } \left( {\mathbf {q}},{\dot{{\mathbf {q}}}},\ldots ,{\mathbf {q}}^{\left( i\right) }\right) \,{:=}\,&D^{\left( i\right) }h\left( {\mathbf {q}},{\dot{{\mathbf {q}}}}\right) . \end{aligned}$$
(35)

The constraints of order i are hence

$$\begin{aligned} H^{\left( i\right) } \left( {\mathbf {q}},{\dot{{\mathbf {q}}}},\ldots ,{\mathbf {q}}^{\left( i\right) }\right) ={\mathbf {0}}. \end{aligned}$$
(36)

These are polynomials in \({\dot{{\mathbf {q}}}},\ldots ,{\mathbf {q}}^{\left( i\right) }\). Therewith the velocity constraints read \(H^{\left( 1\right) }\left( {\mathbf {q}},{\dot{{\mathbf {q}}}}\right) ={\mathbf {0}}\), and the vector space of feasible first-order motions is

$$\begin{aligned} K_{{\mathbf {q}}}^{1}:=\left\{ {\mathbf {x}}\in {{\mathbb {R}}}^{n}|H^{\left( 1\right) }\left( {\mathbf {q}},{\mathbf {x}}\right) \right\} . \end{aligned}$$
(37)

The set of vectors \({\mathbf {x}}\in K_{{\mathbf {q}}}^{1}\) satisfying the constraints up to order i is

$$\begin{aligned}&K_{{\mathbf {q}}}^{i}\,{:=}\,\left\{ {\mathbf {x}}|\exists {\mathbf {y}},{\mathbf {z}},\ldots \in {{\mathbb {R}}}^{n}: H^{\left( 1\right) }\left( {\mathbf {q}},{\mathbf {x}},{\mathbf {y}}\right) ={\mathbf {0}},\right. \nonumber \\&\qquad \qquad \qquad \qquad \qquad H^{\left( 2\right) }\left( {\mathbf {q}},{\mathbf {x}},{\mathbf {y}}\right) ={\mathbf {0}},\nonumber \\&\qquad \qquad \qquad \qquad \qquad H^{\left( 3\right) }\left( {\mathbf {q}},{\mathbf {x}},{\mathbf {y}},{\mathbf {z}}\right) ={\mathbf {0}}, \nonumber \\&\qquad \qquad \qquad \qquad \qquad {\cdots }\nonumber \\&\left. \qquad \qquad \qquad \qquad \qquad {H^{\left( i\right) }\left( {\mathbf {q}},{\mathbf {x}},{\mathbf {y}},{\mathbf {z,\ldots }}\right) ={\mathbf {0}} }\right\}. \end{aligned}$$
(38)

For certain order \(\kappa\), this sequence terminates with the tangent cone,

$$\begin{aligned} K_{{\mathbf {q}}}^{1}\supset {K_{{\mathbf {q}}}^{2}}\supset {K_{{\mathbf {q}}}^{3}}\supset \cdots \supset K_{{\mathbf {q}}}^{\kappa }={C_{{\mathbf {q}}}V.} \end{aligned}$$
(39)

Tangent vectors to finite curves belong to \({C_{{\mathbf {q}}}V}\) and thus to all \(K_{{\mathbf {q}}}^{i}\). Each \(K_{{\mathbf {q}}}^{i}\) is a cone in \({\mathbf {x}}\), i.e. if \({\mathbf {x}}\in K_{{\mathbf {q}}}^{i}\) then also \(a{\mathbf {x}}\in K_{{\mathbf {q}}}^{i}\) for \(a\in {{\mathbb {R}}}\). The tangent cone is an algebraic variety of order \(\kappa\). That is, the c-space (an analytic variety) is locally replaced by a low-order algebraic variety.

The following remarks are in order:

  1. 1.

    The first-order cone \(K_{{\mathbf {q}}}^{1}\) (null space of the constraint Jacobian) is not necessarily the tangent space to V at \({\mathbf {q}}\). The tangent space is equal to the tangent cone if and only if, \({\mathbf {q}}\in V\) is a regular point of V. The tangent space is known once the tangent cone is determined, since

    $$\begin{aligned} T_{{\mathbf {q}}}V={\mathrm {span}}\,\, C_{{\mathbf {q}}}V. \end{aligned}$$
    (40)

    A configuration \({\mathbf {q}}\) is a c-space singularity iff V is not a manifold at \({\mathbf {q}}\), i.e. iff \(T_{{\mathbf {q}}}V\ne C_{{\mathbf {q}}}V\). Since in general \(T_{{\mathbf {q}}}V\subset K_{{\mathbf {q}}}^{1}\), this cannot be deduced by comparing \(K_{{\mathbf {q}}}^{1}\) and \(C_{{\mathbf {q}}}V\). However, once the tangent cone is available, also the tangent space is known. Moreover, with (40), \({\mathbf {q}}\in V\) is a c-space singularity iff \(C_{{\mathbf {q}}}V\ne {\mathrm {span}}~C_{{\mathbf {q}}}V\). This can actually be checked with the proposed computational method. For completeness it should be mentioned that (in contrast to the common belief) even in regular points \({\mathbf {q}}\) of V the dimension \(\dim K_{{\mathbf {q}}}^{1}\) may not be locally constant (i.e. \({\mathbf {q}}\) is a constraint singularity [19]). That is, the number of independent constraints may drop at \({\mathbf {q}}\) even if V is locally a smooth manifold at \({\mathbf {q}}\) (see the Goldberg 6R example in [17]).

  2. 2.

    The cone \(K_{{\mathbf {q}}}^{i}\) consists of feasible ith-order motions. The dimension \(\dim K_{{\mathbf {q}}}^{i}\) is referred to as the i th-order DOF of the mechanism at \({\mathbf {q}}\) [17]. This is an infinitesimal DOF, iff \(K_{{\mathbf {q}}}^{i}\ne {C_{{\mathbf {q}}}V}\). If \({C_{{\mathbf {q}}}V}=K_{{\mathbf {q}}}^{\kappa }\) for \(\kappa >1\), then the linkage is called shaky of order \(i=\kappa -1\) at \({\mathbf {q}}\in V\). If \({\mathbf {q}}\) is a regular configuration, the mechanism is called underconstrained.

  3. 3.

    The inclusion in (39) is not strict. This is a critical point for the actual analysis since it is consequently not sufficient to increase the order until \(K_{{\mathbf {q}}}^{i}=K_{{\mathbf {q}}}^{i-1}\). Moreover, the sufficient order \(\kappa\) for a general mechanism is yet unknown.

Remark 5

A remark on the actual computation is in order. The mappings \(H^{\left( i\right) }\left( {\mathbf {q}},{\mathbf {x}},{\mathbf {y}},\ldots \right)\) in (38) are polynomials of order i in \({\mathbf {x}}\), of order \(i-1\) in \({\mathbf {y}}\), etc. The \({\mathbf {x}}\) satisfying the conditions in (38) are determined by eliminating \({\mathbf {y}},{\mathbf {z}},\ldots\), etc. This is easily achieved symbolically invoking computer algebra software (e.g. Mathematica, Maple, Maxima). This is the actual advantage of the proposed method since the variety is locally replaced an algebraic variety of low degree.

Example 4

(Pin-in-Slot Joint, cont.) The planar mechanism in Fig. 5 is considered as the first example. The mechanism consists of a 4-bar linkage (bodies 0, 1, 2, 3) whose coupler point (at center of link 2) is restricted by the pin-in-slot higher pair joint so to move on a straight line. The geometry of the 4-bar linkage is set according to the parameters \(a=3,b=1,d=4\sqrt{3}\). Then its coupler curve is a sextic [10], i.e. it approximates a straight line up to order 5. Restricting the vertical coupler motion to the horizontal line yields an immobile but shaky linkage. The two FCs are chosen as in Fig. 5c. The configuration of the tree-topology system is described by the \(n=3\) joint angles \(q_{1},q_{2},q_{4}\). The corresponding geometric constraints were derived in Sects. 2 and 3. The cut-joints only impose translation constraints. For the FC \(\varLambda _{3}\) the geometric constraint is (8), with constraint mapping \(h_{3}\left( {\mathbf {q}}\right) :=(a+b)s_{1}+dc_{1}-bs_{12}-d\). The first two equations in (29) are the constraints for the FC \(\varLambda _{5}\) with constraint mapping

$$\begin{aligned} h_{5}\left( {\mathbf {q}}\right) {:=}&\left( \begin{array}{c} h_{5,1}\left( {\mathbf {q}}\right) \\ h_{5,2}\left( {\mathbf {q}}\right) \end{array}\right) \\ =&\left( \begin{array}{c} (a+b)c_{1}- 2bc_{12}- 2a + (a+b)c_{124}- ds_{1} + ds_{124}\\ dc_{1}-dc_{124}+(a+b)s_{1}-2bs_{12}+(a+b)s_{124}\end{array}\right) . \end{aligned}$$

They are summarized in the overall system of constraints \(h\left( {\mathbf {q}}\right) ={\mathbf {0}}\).

The joint screw coordinates in the reference configuration \({\mathbf {q}}_{0}={\mathbf {0}}\) in Fig. 5a, expressed in the world frame on \(B_{0}\), are

$$\begin{aligned} {\mathbf {Y}}_{1}= & {} (0,0,1,-4\sqrt{3},3,0)^{T},\quad {\mathbf {Y}}_{2}=(0,0,1,0,-1,0)^{T}\nonumber \\ {\mathbf {Y}}_{3}= & {} (0,0,1,0,1,0)^{T},\quad {\mathbf {Y}}_{4}=(0,0,1,-4\sqrt{3},-3,0)^{T}. \end{aligned}$$
(41)

The velocity constraints follow, with the time derivatives of the geometric constraints, in terms of the first-order constraint mappings \(H_{3}^{\left( 1\right) }:=\frac{d}{dt}h_{3}\) and \(H_{5}^{\left( 1\right) }:=\frac{d}{dt}h_{5}\). Invoking (18) and (34) these are

$$\begin{aligned} H_{3}^{\left( 1\right) } \left( {\mathbf {q}}_{0},{\mathbf {x}}\right)= & {} 3x_{1}-x_{2}\\ H_{5,1}^{\left( 1\right) } \left( {\mathbf {q}}_{0},{\mathbf {x}}\right)= & {} 4\sqrt{3}(x_{2}+x_{4})\\ H_{5,2}^{\left( 1\right) } \left( {\mathbf {q}}_{0},{\mathbf {x}}\right)= & {} 2(3x_{1}+x_{2}+2x_{4}). \end{aligned}$$

They define the first-order cone

$$\begin{aligned} K_{{\mathbf {q}}_{0}}^{1}=\left\{ {\mathbf {x}}\in {{\mathbb {R}}}^{3}|x_{2}+x_{4}=0,3x_{1}-x_{2}=0\right\} \subset {{\mathbb {R}}}^{3}. \end{aligned}$$
(42)

The second-order polynomials are found by the recursive evaluation of (18) and (34)

$$\begin{aligned} H_{3}^{\left( 2\right) } \left( {\mathbf {q}}_{0},{\mathbf {x}}\right)= & {} -4\sqrt{3}x_{1}^{2}+3y_{1}-y_{2} \\ H_{5,1}^{\left( 2\right) } \left( {\mathbf {q}}_{0},{\mathbf {x}},{\mathbf {y}}\right)= & {} -2(3x_{1}^{2}+2x_{1}x_{2}+x_{2}^{2}+4(x_{1}+x_{2})x_{4}\\&\ \ \ \ +2x_{4}^{2})+4\sqrt{3}(y_{2}+y_{4})\\ H_{5,2}^{\left( 2\right) } \left( {\mathbf {q}}_{0},{\mathbf {x}},{\mathbf {y}}\right)= & {} 2(2\sqrt{3}(x_{2}+x_{4})(2x_{1}+x_{2}+x_{4})\\&\ \ \ +3y_{1}+y_{2}+2y_{4}) \end{aligned}$$

defining the second-order cone \(K_{{\mathbf {q}}_{0}}^{2}=K_{{\mathbf {q}}_{0}}^{1}\). The higher order polynomials are omitted as they become rather lengthy. It turns out that

$$\begin{aligned} K_{{\mathbf {q}}_{0}}^{1}= & {} K_{{\mathbf {q}}_{0}}^{2}=K_{{\mathbf {q}}_{0}}^{3} =K_{{\mathbf {q}}_{0}}^{4}=K_{{\mathbf {q}}_{0}}^{5}\nonumber \\ K_{{\mathbf {q}}_{0}}^{6}= & {} C_{{\mathbf {q}}_{0}}V=\{{\mathbf {0}}\}. \end{aligned}$$
(43)

The following can be concluded. The differential DOF is \(\delta _{\mathrm{diff}}\left( {\mathbf {q}}_{0}\right) =\dim K_{{\mathbf {q}}_{0}}^{1}=1\). The (finite) local DOF is \(\delta _{\mathrm{loc}}\left( {\mathbf {q}}_{0}\right) =\dim C_{{\mathbf {q}}_{0}}V=0\), i.e. the mechanism is immobile. The tangent space \(T_{{\mathbf {q}}_{0}}V={\mathrm {span}}~C_{{\mathbf {q}}_{0}}V=C_{{\mathbf {q}}_{0}}V\) is 0-dimensional. Hence the reference configuration \({\mathbf {q}}_{0}={\mathbf {0}}\) is regular (generally any configuration \({\mathbf {q}}\in V\) with \(\dim _{{\mathbf {q}}}V=0\) is by definition regular). The mechanism can perform 1-dimensional 5th-order motions according to (42) while being immobile. That is, it is shaky with order 5. Since \({\mathbf {q}}_{0}\) is regular and \(\delta _{\mathrm{diff}}\left( {\mathbf {q}}_{0}\right) \ne \delta _{\mathrm{loc}}\left( {\mathbf {q}}_{0}\right)\) the mechanism is underconstrained. This is an example where \(K_{{\mathbf {q}}_{0}}^{1}\ne T_{{\mathbf {q}}_{0}}V\), i.e. where the tangent space is not simply the null-space of the constraint Jacobian. This result was to be expected since the coupler curve of the 4-bar linkage is a sextic and the pin of the pin-in-slot joint performs a straight line motion up to order 5, but is confined by the higher pair so to move on a straight line. More on shakiness can be found in [17, 29].

Fig. 7
figure 7

Single loop mechanism with an in-line higher pair joint connecting the bodies \(k^{\prime }=2\) \(l^{\prime \prime }=3\)

Example 5

(Spherical mechanism with ‘in-line’ joint) The last example is the single-loop mechanism in Fig. 7. It consists of three revolute (lower pair) joints and an higher pair ’in-line’ joint. The latter constraints the relative translation to a line while not constraining the relative rotation. The three revolute joint axes intersect in one point so that the kinematic chain formed by joints 1, 2, 3 is a spherical linkage. The in-line joint 4 is used as cut-joint connecting bodies \(k^{\prime }=2\) and \(l^{\prime \prime }=3\). The cut-joint joint constraints are imposed on the remaining joint variables \({\mathbf {q}}=\left( q_{1},q_{2},q_{3}\right)\). The RFRs \({\mathcal {F}}_{k^{\prime }}\) and \({\mathcal {F}}_{l^{\prime \prime }}\) are at the center of the respective link as shown in Fig. 7. Shown is the reference configuration with \({\mathbf {q}}={\mathbf {0}}\). All four links have the same length L. The world frame \({\mathcal {F}}_{0}\) is located at the center of link 0, which is regarded as ground. The screw coordinates of the revolute joints represented in \({\mathcal {F}}_{0}\) are

$$\begin{aligned} {\mathbf {Y}}_{1}= \frac{1}{\sqrt{3}}\left( \begin{array}{c} 1\\ 1\\ 1\\ \frac{L}{2}\\ 0\\ -\frac{L}{2}\end{array}\right) ,{\mathbf {Y}}_{2}= \frac{1}{\sqrt{3}}\left( \begin{array}{c} -1\\ 1\\ 1\\ \frac{L}{2}\\ L\\ -\frac{L}{2}\end{array}\right) ,{\mathbf {Y}}_{3}= \frac{1}{\sqrt{3}}\left( \begin{array}{c} 1\\ -1\\ 1\\ -\frac{L}{2}\\ 0\\ \frac{L}{2}\end{array}\right) . \end{aligned}$$

The respective reference configuration of the two bodies is \({\mathbf {A}}_{k^{\prime }}=({\mathbf {I}},\left( -\frac{L}{2},0,0\right) ^{T})\) and \({\mathbf {A}}_{l^{\prime \prime }}=({\mathbf {I}},\left( 0,-\frac{L}{2},0\right) ^{T})\). The configurations of the two bodies are determined by \(f_{k^{\prime }}\left( {\mathbf {q}}\right) =\exp ({\mathbf {Y}}_{1}q_{1})\exp ({\mathbf {Y}}_{2}q_{2}){\mathbf {A}}_{k^{\prime }}\) and \(f_{l^{\prime \prime }}\left( {\mathbf {q}}\right) =\exp ({\mathbf {Y}}_{3}q_{3}){\mathbf {A}}_{l^{\prime \prime }}\). The location vectors to the contact line defining the higher pair joint, expressed in the respective RFR, are \({\mathbf {p}}_{k^{\prime }}=(0,-\frac{L}{2},0)^{T},{\mathbf {p}}_{l^{\prime \prime }}=(-\frac{L}{2},0,0)^{T}\). The translation constraints imposed by the higher pair require the 1 and 3 component of the relative translation vector \({\mathbf {d}}_{k^{\prime }}\) in (3) to vanish giving rise to two geometric constraints. They are easily evaluated with (1). The two components of the constraint mapping (4) are

$$\begin{aligned} F_{1}= \,& {} \frac{L}{27}\left( 13+2c_{1}-c_{12}+2c_{2}+2c_{12}-2\sqrt{3}s_{1}\right. \\&+\,\sqrt{3}s_{1-2}-2c_{3}\left( -1+c_{2}\left( 4+\sqrt{3}s_{1}\right) \right. \\&\left. +\,2s_{1}\left( \sqrt{3}-3s_{2}\right) +c_{1}\left( 4+2c_{2}+3\sqrt{3}s_{2}\right) \right) \\&\left. -\,2\sqrt{3}s_{12}+2\sqrt{3}\left( 1-4c_{2}+c_{1}\left( 2+c_{2}\right) -3s_{1}s_{2}\right) s_{3}\right) \\ F_{2}= \,& {} \frac{L}{27}\left( -13-2c_{1}+c_{1-2}+c_{2}+4c_{12}+2\sqrt{3}s_{1}\right. \\&+\,\sqrt{3}s_{1-2}+\sqrt{3}s_{2}+c_{3}\left( -2-c_{2}\left( 4+7\sqrt{3}s_{1}\right) \right. \\&-\,\left. 4\sqrt{3}s_{2}+s_{1}\left( 4\sqrt{3}+3s_{2}\right) +c_{1}\left( 8+7c_{2}-5\sqrt{3}s_{2}\right) \right) \\&-\,\left( 2\sqrt{3}\left( 1+2c_{1}\right) -c_{2}\left( -4\sqrt{3}+\sqrt{3}c_{1}+9s_{1}\right) \right. \\&\left. \left. +\,3\left( 4-c_{1}+\sqrt{3}s_{1}\right) s_{2}\right) s_{3}\right) \end{aligned}$$

denoting \(s_{1}:=\sin q_{1},s_{12}:=\sin \left( q_{1}+q_{2}\right) ,s_{1-2}:=\sin \left( q_{1}-q_{2}\right)\), etc. The system of two geometric constraints defining the c-space V are then \(h\left( {\mathbf {q}}\right) ={\mathbf {0}}\), with

$$\begin{aligned} h\left( {\mathbf {q}}\right) :=\left( \begin{array}{c} F_{1}\left( {\mathbf {q}}\right) \\ F_{2}\left( {\mathbf {q}}\right) \end{array}\right) . \end{aligned}$$
(44)

The system of two ith-order constraints is then

$$\begin{aligned} H^{\left( i\right) } \left( {\mathbf {q}}_{0},{\mathbf {x}},{\mathbf {y}},\ldots \right) ={\mathbf {0}},\quad {\text{with}}\quad H^{\left( i\right) }=\left( \begin{array}{c} H_{1}^{\left( i\right) }\\ H_{2}^{\left( i\right) }\end{array}\right) . \end{aligned}$$
(45)

Note that the index of \(H_{1}^{\left( i\right) }\) and \(H_{2}^{\left( i\right) }\) refers to the constraint component rather than to the FC as in the previous example. The two components of the constraint mapping of first, second, and third-order, etc. determined by (18), in the reference configuration \({\mathbf {q}}_{0}={\mathbf {0}}\), are shown in (46).

$$\begin{aligned} H_{1}^{\left( 1\right) } \left( {\mathbf {q}}_{0},{\mathbf {x}}\right)= \,& {} -L(x_{1}+x_{2})/\sqrt{3},\nonumber\\ H_{2}^{\left( 1\right) } \left( {\mathbf {q}}_{0},{\mathbf {x}}\right) =\,&-L(x_{2}+x_{3})/\sqrt{3} \nonumber \\ H_{1}^{\left( 2\right) } \left( {\mathbf {q}}_{0},{\mathbf {x}},{\mathbf {y}}\right)=\, & {} L\left( {x_{1}^{2}}+2{x_{1}}{x_{2}}+{x_{2}^{2}}+2{x_{3}^{2}}-\sqrt{3}{y_{1}} -\sqrt{3}{y_{2}}\right) /3 \nonumber \\ H_{2}^{\left( 2\right) } \left( {\mathbf {q}}_{0},{\mathbf {x}},{\mathbf {y}}\right)= \,& {} L\left( -2{x_{1}^{2}}+2{x_{1}}{x_{3}}-{x_{2}^{2}}-2{x_{2}}{x_{3}}-{x_{3}^{2}} -\sqrt{3}{y_{2}}-\sqrt{3}{y_{3}}\right) /3 \nonumber \\ H_{1}^{\left( 3\right) } \left( {\mathbf {q}}_{0},{\mathbf {x}},{\mathbf {y}}, {\mathbf {z}}\right)=\, & {} \frac{L}{3}\left( \sqrt{3}{x_{1}^{3}} +\sqrt{3}{x_{1}^{2}}(3{x_{2}}-2{x_{3}})\right. \nonumber \\&+\,{x_{1}}\left( \sqrt{3} \left( {x}_{2}^{2}-4{x_{2}}{x_{3}}+2{x_{3}^{2}}\right) +3({y_{1}}+{y_{2}})\right) \nonumber \\&+\,\sqrt{3}{x_{2}^{3}}+2\sqrt{3}{x_{2}^{2}x_{3}} +{x_{2}}\left( 2\sqrt{3}{x_{3}^{2}}+3({y_{1}}+{y_{2}})\right) \nonumber \\&\left. +\,\,6{x_{3}}{y_{3}}-\sqrt{3}({z}_{{1}}+{z}_{{2}})\right) \nonumber \\ H_{2}^{\left( 3\right) } \left( {\mathbf {q}}_{0}, {\mathbf {x}},{\mathbf {y}},{\mathbf {z}}\right)=\, & {} \frac{L}{3} \left( \sqrt{3}{x_{1}^{2}}(2{x_{2}}+{x_{3}})+{x_{1}}{\left( \sqrt{3}\left( 2{x_{2}^{2}}-2{x_{2}}{x_{3}}+{x_{3}^{2}}\right) -6{y_{1}}+3{y_{3}}\right) } \right. \nonumber \\&+\,\sqrt{3}{x_{2}^{3}}+\sqrt{3}{x_{2}^{2}x_{3}} +3{x_{2}}\left( \sqrt{3}{x_{3}^{2}}-{y_{2}}-{y_{3}}\right) \nonumber \\&\left. +\,\sqrt{3}{x_{3}^{3}}+3{x_{3}}({y_{1}}-{y_{2}}-{y_{3}}) -\sqrt{3}({z}_{{2}}+{z}_{{3}})\right) \end{aligned}$$
(46)

The first-order cone defined by these constraints is

$$\begin{aligned} K_{{\mathbf {q}}_{0}}^{1}=\left\{ {\mathbf {x}}\in {{\mathbb {R}}}^{3}|x_{1}+x_{2}=0,x_{2}+x_{3}=0\right\} . \end{aligned}$$
(47)

Evaluating the second- and third-order cone shows that \(K_{{\mathbf {q}}_{0}}^{1}=K_{{\mathbf {q}}_{0}}^{2}=K_{{\mathbf {q}}_{0}}^{3}\). Furthermore, all higher-order cones are equal to \(K_{{\mathbf {q}}_{0}}^{1}\), and the tangent cone is \(C_{{\mathbf {q}}_{0}}V=K_{{\mathbf {q}}_{0}}^{1}\). This is the one-dimensional tangent vector space to V, and \({\mathbf {q}}_{0}\) is a regular configuration. The local mobility of the mechanism is thus \(\delta _{\mathrm{loc}}\left( {\mathbf {q}}_{0}\right) =\dim C_{{\mathbf {q}}_{0}}V=1\). This mechanism merely functions as a spherical mechanism despite the presence of a higher pair joint. Moreover, with the in-line joint the mechanism is not overconstrained. This is in contrast to the spherical 4-bar linkage (replacing the higher pair by another revolute joint whose axis intersects at the same point as the three revolute axes) that can be considered as being overconstrained since the closure constraints are redundant.

6 Conclusion

Any approach to determine the mobility of a holonomic mechanism requires the geometric constraints that the bodies are subjected to. Moreover, they must be formulated such that they can be evaluated efficiently. Since there is no general method to establish the global mobility, or to make global statements about the local finite mobilities, the mobility determination must generally resort to a local analysis. This relies on the higher-order constraints, i.e. the time derivatives of the geometric constraints (acceleration, jerk, jounce, etc. constraints). Approaches to the higher-order local mobility analysis for linkages comprising lower pair joints have been reported, and recently a recursive method was introduced that applies to general lower pair linkages. For such linkages the geometric loop constraints are given by the product of exponentials (POE), and the velocity constraints in terms of the instantaneous joint screws. Also the higher-order constraints are determined recursively by means of screw products of the instantaneous joint screws.

In this paper the higher-order mobility determination and the necessary constraints have been addressed for mechanisms with higher kinematic pairs. The formulation applies to general higher kinematic pairs defining bilateral geometric constraints. The formulation accounts for general higher pairs defining bilateral constraints, including cams. A recursive formulation for the time derivatives of the loop constraints is introduced for kinematic loops that contain one higher pair. To this end, the higher pair is removed and corresponding constraints are imposed. The remaining open kinematic chains contain only lower pairs. This gives rise to a recursive and computationally simple formulation of higher-order constraints. The basic operation involved is the screw product (Lie bracket), which is an extremely simple algebraic operation. For better accessibility, the formulation is first derived for a single loop and then generalized to multi-loop mechanisms.

This provides the basis for the local mobility analysis of higher pair mechanisms. A computational approach is introduced using the recursive constraint formulation. It allows for determination of the finite local mobility as well as for singularity analysis. This generally applicable approach complements the existing method for lower pair linkages. The method is applied to an immobile but shaky planar mechanism exhibiting 5th-order infinitesimal motion and to a spherical mechanism comprising an in-line higher pair joint, as examples. It should finally be mentioned that the higher-order mobility analysis in Sect. 5 is a self-contained concept applicable as long as the higher-order constraints are available (not necessarily using the recursive formulation in Sect. 3).