Abstract
The mobility analysis of mechanisms rests on an adequate formulation of the constraints defining its configuration space (cspace). Whereas there is no general method for a global analysis, the higherorder mobility analysis, which locally approximates the cspace, is applicable to general mechanisms. It requires an efficient method for the evaluation of higherorder constraints, i.e. constraints on velocity, acceleration, jerk, etc. Such a method is known for linkages comprising lower pair joints only. In this paper a method for the efficient evaluation of higherorder constraints for mechanisms comprising higher pair joints is proposed. The method builds on the results for the lower pair linkages. It leads to a computationally simply recursive algorithm. This is applied to the mobility analysis that allows to determine the local finite mobility, to detect singularities, and to identify shaky mechanisms.
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 higherorder 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 higherorder approximations was presented. The Lie group setting further allows for mobility estimation without resorting to higherorder 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 screwbased 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 ’cutjoint’ of the loop, and this approach is known as cutjoint formulation of constraints [15, 28]. This is also applicable to lower pair mechanisms. Based on the constraint formulation a computational method for the higherorder mobility analysis is introduced in the following.
The paper consists of two parts. In the first part the higherorder 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 higherorder constraints are derived in Sect. 3. The extension to multiloop 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.
Geometric constraints for a kinematic loop
Cutjoint versus cutbody 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/displacements) 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 cutbody formulation [9, 23] and the cutjoint formulation [28]. The cutbody approach is commonly used to model the kinematics of lower pair linkages, whereas the cutjoint approach is the standard approach to derive dynamic motion equations of multibody systems (MBS) in relative coordinates. In the cutbody 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 cutjoint approach, one joint (called the cutjoint) is removed and the remaining two open kinematic chains are subjected to closure constraints according to the cutjoint. The kinematic model, for a loop with n joints and bodies, thus comprises only the joint variables of the remaining \(n1\) joints.
It is to be mentioned that elimination of the cutjoint may lead to artifacts. For instance consider the planar 4bar mechanisms in Fig. 1a where joint 4 is used as cutjoint. 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 cutjoint (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 cutjoint, only a \(n1\) dimensional subspace of the configuration space is considered. This is, however, often ignored in MBS modeling.
Also from a computational point of view, the cutbody formulation is advantageous since the closure condition simply requires that the configuration of the virtual cutbody is the identity. In the cutjoint approach, the constraints are specific to the cutjoint. 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 cutjoint, 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.
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 cutjoint 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 1DOF 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 bodyfixed 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)
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].
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 cutjoint 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 cutjoint screw.
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 bodyfixed 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)
Since the joint is fixed to the bodies, the components of the relative translation to be constrained can be identified when expressed in a bodyfixed RFR. In the RFR \({\mathcal {F}}_{k^{\prime }}\) at body \(k^{\prime }\), for instance, the displacement vector is
(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
This accounts for general bilateral contact conditions like surfacesurface, pointsurface, or curvepoint 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)\).
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
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 2DOF higher kinematic pair representing a Cardanic suspension (Fig. 3). It cannot be a lower kinematic pair since there is no 2dim 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 bodyfixed frames are usually oriented so that \({\mathbf {e}}_{k^{\prime }}\) is along the 1axis of the bodyfixed RFR \({\mathcal {F}}_{k^{\prime }}\) on body \(k^{\prime }\), and \({\mathbf {e}}_{l^{\prime \prime }}\) is along the 2axis 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, 2entry 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 bodyfixed 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.
Example 2
(PininSlot Joint) A pininslot joint is a 2DOF 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 singleloop mechanism containing a pininslot and two revolute joints. The pininslot joint is used as cutjoint. The remaining \(n=2\) joint angles defined the parameter space \({{\mathbb {V}}}^{n}=T^{2}\). The pininslot joint connects the coupler link \(l^{\prime \prime }=2\) of the 4bar 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
and the reference configuration \(A_{2}=({\mathbf {I}},(b,d,0)^{T})\) w.r.t. the world frame. The pivot point of the pininslot 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.)
is the relative displacement vector expressed in the RFR \({\mathcal {F}}_{0}\) on link \(k^{\prime }=0\). The motion along the 1axis 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
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 3axes of both bodies, \(k^{\prime }=0\) and \(l^{\prime \prime }=2\) to be parallel. According to (5) the two constraints are
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\).
Higherorder 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 cutjoint 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 cutjoint constraints of higher pairs.
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]
with
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
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
It was shown in [16] that the derivatives of \({\mathsf {S}}_{k^{\prime }}^{\nu }\) admit the following recursive expression
together with the derivatives of the screw coordinates
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 higherorder 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 }\).
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
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
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
and analogously for \({\mathbf {C}}_{l^{\prime \prime }}\).
The vector in (18) is expressed in the spatial frame. In order to formulate the higherorder 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 ithorder constraints are then of the form
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).
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 }\)
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
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 cutjoint imposes translation constraints, so that the relations (22) and (23) do not have to be evaluated.
Extension to multiloop linkages
Linkage topology
Most mechanisms comprise multiple kinematic loops. The above formulation of higher pair cutjoint constraints for a single loop can be directly adopted to multiloop 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 nondirect 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 :=JB+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 twoloop 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 cutjoint 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.
In \({\mathcal {G}}\) there is a unique path from any vertex (body) \(B_{\alpha }\) to \(B_{0}\) (ground). For a given \({\mathcal {G}}\), a rootdirected 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 treejoint. 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=i1\). Joint \(J_{j}\) is a predecessor of \(J_{i}\), if there is a finite k, such that \(j=i11\ldots 1\) (k times). This is expressed as \(j=ik\). Being a predecessor is indicated by \(j<i\).
The treejoint 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
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
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 cutjoint \(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 cutjoint \(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
The system of \(m\le 3\) translation constraints for the cutjoint \(J_{l}=\left( B_{\beta },B_{\alpha }\right)\) then attains the form
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
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 cutjoint \(J_{l}\).
Example 3
(PininSlot Joint, cont.) The mechanism in Fig. 5 comprises two FCs, \(\varLambda _{3}\) and \(\varLambda _{5}\) with cutjoints \(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
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}\)
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].
Higherorder constraints
Relative twists The spatial twist of \(B_{\alpha }\) is again a linear combination of the instantaneous joints screws in terms of joint rates
where now the treejoints in the path from \(B_{\alpha }\) to \(B_{0}\) are involved, so that
The instantaneous joints screws are now
with
The relative spatial twist of \(B_{\alpha }\) and \(B_{\beta }\) connected by cutjoint \(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
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.
Higherorder mechanism analysis
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 higherorder, 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 cutjoint \(J_{l}\), and with \(h\left( {\mathbf {q}}\right) ={\mathbf {0}}\) the overall system of all cutjoint constraints. The cspace of a multiloop mechanism is the analytic variety
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 firstorder 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 cspace. 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 higherorder 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, higherorder 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 higherorder constraints now allow for a higherorder 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).
Computational procedure
The basic idea is to identify subsets of firstorder motions that satisfy the constraints up to order i. With increasing i, this yields the set of firstorder motion that correspond to finite motions satisfying the geometric constraints. To this end, introduce the following mappings
The constraints of order i are hence
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 firstorder motions is
The set of vectors \({\mathbf {x}}\in K_{{\mathbf {q}}}^{1}\) satisfying the constraints up to order i is
For certain order \(\kappa\), this sequence terminates with the tangent cone,
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 cspace (an analytic variety) is locally replaced by a loworder algebraic variety.
The following remarks are in order:

1.
The firstorder 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 cspace 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 cspace 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.
The cone \(K_{{\mathbf {q}}}^{i}\) consists of feasible ithorder motions. The dimension \(\dim K_{{\mathbf {q}}}^{i}\) is referred to as the i thorder 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.
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}}}^{i1}\). 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 \(i1\) 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
(PininSlot Joint, cont.) The planar mechanism in Fig. 5 is considered as the first example. The mechanism consists of a 4bar linkage (bodies 0, 1, 2, 3) whose coupler point (at center of link 2) is restricted by the pininslot higher pair joint so to move on a straight line. The geometry of the 4bar 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 treetopology 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 cutjoints 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
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
The velocity constraints follow, with the time derivatives of the geometric constraints, in terms of the firstorder 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
They define the firstorder cone
The secondorder polynomials are found by the recursive evaluation of (18) and (34)
defining the secondorder 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
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 0dimensional. 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 1dimensional 5thorder 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 nullspace of the constraint Jacobian. This result was to be expected since the coupler curve of the 4bar linkage is a sextic and the pin of the pininslot 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].
Example 5
(Spherical mechanism with ‘inline’ joint) The last example is the singleloop mechanism in Fig. 7. It consists of three revolute (lower pair) joints and an higher pair ’inline’ 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 inline joint 4 is used as cutjoint connecting bodies \(k^{\prime }=2\) and \(l^{\prime \prime }=3\). The cutjoint 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
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
denoting \(s_{1}:=\sin q_{1},s_{12}:=\sin \left( q_{1}+q_{2}\right) ,s_{12}:=\sin \left( q_{1}q_{2}\right)\), etc. The system of two geometric constraints defining the cspace V are then \(h\left( {\mathbf {q}}\right) ={\mathbf {0}}\), with
The system of two ithorder constraints is then
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 thirdorder, etc. determined by (18), in the reference configuration \({\mathbf {q}}_{0}={\mathbf {0}}\), are shown in (46).
The firstorder cone defined by these constraints is
Evaluating the second and thirdorder cone shows that \(K_{{\mathbf {q}}_{0}}^{1}=K_{{\mathbf {q}}_{0}}^{2}=K_{{\mathbf {q}}_{0}}^{3}\). Furthermore, all higherorder 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 onedimensional 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 inline joint the mechanism is not overconstrained. This is in contrast to the spherical 4bar 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.
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 higherorder constraints, i.e. the time derivatives of the geometric constraints (acceleration, jerk, jounce, etc. constraints). Approaches to the higherorder 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 higherorder constraints are determined recursively by means of screw products of the instantaneous joint screws.
In this paper the higherorder 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 higherorder 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 multiloop 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 5thorder infinitesimal motion and to a spherical mechanism comprising an inline higher pair joint, as examples. It should finally be mentioned that the higherorder mobility analysis in Sect. 5 is a selfcontained concept applicable as long as the higherorder constraints are available (not necessarily using the recursive formulation in Sect. 3).
Abbreviations
 n :

Number of 1DOF joints in a linkage
 \({\mathbf {q}}\in {{\mathbb {V}}}^{n}\) :

Vector of joint variables
 \(\delta _{\mathrm{loc}}\left( {\mathbf {q}}\right)\) :

Local DOF at \({\mathbf {q}}\)
 \(\delta _{\mathrm{diff}}\left( {\mathbf {q}}\right)\) :

Differential DOF at \({\mathbf {q}}\)
 \(V\subset {{\mathbb {V}}}^{n}\) :

Configuration space (cspace) of a linkage
 h :

Constraint mapping for a higher pair cutjoint in a kinematic loop
 \(h_{l}\) :

Constraint mapping for a higher pair cutjoint in the fundamental cycle \(\varLambda _{l}\)
 \(f_{i^{\prime }}\) :

Forward kinematic mapping of the open chain with terminal body \(i^{\prime }\) obtained by removing the cutjoint from loop
 \(f_{\alpha }\) :

Forward kinematic mapping of the open chain with terminal body \(B_{\alpha }\) obtained by removing the cutjoint from the FC \(\varLambda _{l}\) of which the higher pair joint \(J_{l}\) connects to \(B_{\alpha }\)
 \({\mathbf {Y}}_{i}\) :

Screw coordinate vector of joint i in the zero reference configuration \({\mathbf {q}}={\mathbf {0}}\)
 \({\mathbf {S}}_{i}\) :

Instantaneous screw coordinate vector of joint i
 \({\mathbf {V}}_{i}\) :

Spatial twist vector of body i
 \(\varGamma\) :

Topological graph
 \({\mathcal {G}}\), \({\mathcal {H}}\) :

Spanning tree, and cotree in \(\varGamma\)
 \(\gamma\) :

Number fundamental loops of \(\varGamma\)
 \(\varLambda _{l}\) :

Fundamental Loop (FL) of \(\varGamma\) assigned to cotree edge \(l\in {\mathcal {H}}\)
References
 1.
Brockett RW (1984) Robotic manipulators and the product of exponentials formula. In: Mathematical theory of networks and systems. Lecture notes in control and information sciences, vol 58. pp 120–129
 2.
CervantesSánchez JJ et al (2009) The differential calculus of screws: theory, geometrical interpretation, and applications. Proc Inst Mech Eng Part C J Mech Eng Sci 223:1449–1468
 3.
Chen C (2011) The order of local mobility of mechanisms. Mech Mach Theory 46:1251–1264
 4.
Davies TH (1981) Kirchhoff’s circulation law applied to multiloop kinematic chains. Mech Mach Theory 16(3):171–183
 5.
de Bustos IF et al (2012) Second order mobility analysis of mechanisms using closure equations. Meccanica 47(7):1695–1704
 6.
GallardoAlvarado J, RicoMartinez JM (2001) Jerk influence coefficients, via screw theory, of closed chains. Meccanica 36(2):213–228
 7.
Hervé JM (1978) Analyse structurelle des mécanismes par groupe des déplacements. Mech Mach Theory 13:437–450
 8.
Hervé JM (1982) Intrinsic formulation of problems of geometry and kinematics of mechanisms. Mech Mach Theory 17(3):179–184
 9.
Hiller M (1995) Multiloop kinematic chains. In: Angeles J, Kecskemethy A (eds) Kinematics and dynamics of multibody systems, CISM COURSES AND LECTURES No. 360, pp 75–166
 10.
Jank W (1978) Symmetrische Koppelkurven mit sechspunktig ber ührendem Scheitelkrümmungskreis. Z Angew Math Mech (ZAMM) 58:37–43
 11.
Lerbet J (1999) Analytic geometry and singularities of mechanisms. ZAMM Z Angew Math Mech 78(10b):687–694
 12.
Müller A (2009) Generic mobility of rigid body mechanisms. Mech Mach Theory 44(6):1240–1255
 13.
Müller A (2014) Higher derivatives of the kinematic mapping and some applications. Mech Mach Theory 76:70–85
 14.
Müller A (2014) Derivatives of screw systems in bodyfixed representation. In: Lenarcic J, Khatib O (eds) Advances in robot kinematics (ARK). Springer, Berlin, pp 123–130
 15.
Müller A (2015) Representation of the kinematic topology of mechanisms for kinematic analysis. Mech Sci 6:1–10
 16.
Müller A (2016) Recursive higherorder constraints for linkages with lower kinematic pairs. Mech Mach Theory 100:33–43
 17.
Müller A (2016) Local kinematic analysis of closedloop linkages–mobility, singularities, and shakiness. ASME J Mech Robot 8:041013–1
 18.
Müller A, Rico JM (2008) Mobility and higher order local analysis of the configuration space of singleloop mechanisms. In: Lenarcic JJ, Wenger P (eds) Advances in robot kinematics. Springer, Berlin, pp 215–224
 19.
Müller A, Zlatanov D (2015) Kinematic singularities of mechanisms revisited. In: IMA conference on mathematics of robotics (IMAR), Oxford, UK, 9–11 September 2015
 20.
Rico JM, CervantesSánchez JJ, Gallardo J (2008) Velocity and acceleration analyses of lower mobility platforms via screw theory. In: 32nd ASME mechanisms and robotics conference, Brooklyn, NY, 3–6 August 2008
 21.
Rico Martinez JM, Ravani B (2003) On mobility analysis of linkages using group theory. ASME J Mech Des 135:70–80
 22.
Rico JM, Gallardo J, Duffy J (1999) Screw theory and higher order kinematic analysis of open serial and closed chains. Mech Mach Theory 34(4):559–586
 23.
Samin JC, Fisette P (2003) Symbolic modeling of multibody systems. Springer, Netherlands
 24.
Selig J (2005) Geometric fundamentals of robotics (monographs in computer science series). Springer, New York
 25.
Shabana AA (2005) Dynamics of multibody systems, 3rd edn. Cambridge University Press, Cambridge
 26.
Uicker JJ, Ravani B, Sheth PN (2013) Matrix methods in the design analysis of mechanisms and multibody systems. Cambridge University Press, Cambridge
 27.
Whitney H (1965) Local properties of analytic varieties, differential and combinatorial topology. Princeton University Press, Princeton
 28.
Wittenburg J (2008) Dynamics of multibody systems, 2nd edn. Springer, Berlin
 29.
Wohlhart K (2010) From higher degrees of shakiness to mobility. Mech Mach Theory 45(3):467–476
 30.
Zhou YB, Buchal RO, Fenton FG, Tan FR (1995) Kinematic analysis of certain spatial mechanisms containing higher pairs. Mech Mach Theory 30(5):705–720
Acknowledgments
Open access funding provided by Johannes Kepler University Linz. The author acknowledges partial support of this work by the Austrian COMETK2 program of the Linz Center of Mechatronics (LCM).
Author information
Affiliations
Corresponding author
Appendix: rigid body motions—Lie group \(SE\,(3)\)
Appendix: rigid body motions—Lie group \(SE\,(3)\)
The configuration of a bodyfixed reference frame \({\mathcal {F}}_{1}\) relative to a global frame \({\mathcal {F}}_{0}\) is represented by
where \({\mathbf {R}}\in SO\left( 3\right)\) transforms the bodyfixed representation of vector coordinates to their spatial representation, and \({\mathbf {r}}\in {{\mathbb {R}}}^{3}\) is the position vector of the origin of the bodyfixed frame expressed in the spatial frame. These matrices represent frame transformations. They also transform homogenous point coordinates from bodyfixed RFR to global frame. let \({\mathbf {p}}\in {{\mathbb {R}}}^{3}\) be the coordinate vector of a point expressed in the bodyfixed frame, and let \({\overline{{\mathbf {p}}}}=\left( {\mathbf {p}},1\right) ^{T}\) be its homogeneous coordinates vector. Then the homogeneous coordinates of the point expressed in the global frame is \({\overline{{\mathbf {s}}}}={\mathbf {C}}{\overline{{\mathbf {p}}}}\). Indeed the corresponding vector is \({\mathbf {s}}={\mathbf {Rp}}+{\mathbf {r}}\). Whenever convenient the alternative notation \(C=\left( {\mathbf {R}},{\mathbf {r}}\right) \in SE\, (3)\) is used. Details on the Lie group \(SE\, (3)\) can be found in [24].
A general rigid body motion is a screw motion (Chasles theorem). Let \({\mathbf {e}}\in {{\mathbb {R}}}^{3}\) be unit vector along the instantaneous screw axis, and \({\mathbf {p}}\in {{\mathbb {R}}}^{3}\) the position vector of a point on that axis, both expressed in the world frame. The screw coordinate vector is then \({\mathbf {Y}}=\left( {\mathbf {e}},{\mathbf {p}}\times {\mathbf {e}}+h{\mathbf {e}}\right) ^{T}\). The finite motion corresponding to a screw motion about the axis \({\mathbf {e}}\) with angle \(\varphi\) and pitch h is determined as \({\mathbf {C}}=\exp (\varphi {\mathbf {Y}})\) where
Here \(\exp (\varphi {\mathbf {e}})\) is the Euler–Rodrigues formula for the rotation about the axis \({\mathbf {e}}\) with angle \(\varphi\). \({\mathbf {Y}}\) is referred to as the screw coordinate vector. The exp mapping (49) yields the finite rigid body motion corresponding to the motion of the instantaneous screw.
If \({\mathbf {C}}\in SE\, (3)\) describes the frame transformation from frame \(F_{1}\) to \(F_{2}\), and if \({\mathbf {X}}\) is the coordinate vector of a screw expressed in \(F_{1}\) then the screw coordinates expressed in \(F_{2}\) are determined by the Adjoint transformation \({\mathbf {Ad}}_{{\mathbf {C}}}{\mathbf {X}}\) with
where \(\widehat{{\mathbf {r}}}\) is the skew symmetric matrix associated to \({\mathbf {r}}\).
Writing screw coordinates as vector \({\mathbf {Y}}=\left( {\mathbf {\xi }},{\mathbf {\eta }}\right) ^T\), the screw product of two screws is
This defines the Lie bracket on \(se\, (3)\).
To a screw coordinate vector \({\mathbf {X}}\in {{\mathbb {R}}}^{6}\) is associated the matrix
The spatial twist corresponding to a rigid body motion \({\mathbf {C}}\left( t\right)\) is determined by
and in vector notation \({\mathbf {V}}=\left( {\mathbf {\omega }},{\dot{{\mathbf {r}}}}\widehat{{\mathbf {\omega }}}{\mathbf {r}}\right) ^{T}\). Here \({\mathbf {\omega }}\) is the angular velocity of the body expressed in the world frame, and \({\dot{{\mathbf {r}}}}\widehat{{\mathbf {\omega }}}{\mathbf {r}}\) is the translational velocity of a point on the body that is instantaneously traveling through the origin of the world frame.
Rights and permissions
Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.
About this article
Cite this article
Müller, A. Higherorder constraints for higher kinematic pairs and their application to mobility and shakiness analysis of mechanisms. Meccanica 52, 1669–1684 (2017). https://doi.org/10.1007/s110120160496x
Received:
Accepted:
Published:
Issue Date:
Keywords
 Higher kinematic pairs
 Kinematic loops
 Geometric constraints
 Higherorder constraints
 Mobility
 Singularities
 Shakiness
 Screws
 Lie groups