1 Introduction

Structures realized as or inspired by origami interested several researchers in different fields [1]. For example, architectural applications were presented in [2,3,4], including smart origami-based solar facades [5, 6], while metamaterial applications were described in [7,8,9]. In addition, light-activated origami folding was proposed in [10,11,12], and actuation by uniform heating was achieved in [13].

For this reason, the exploration of design principles and form-finding methodologies for origami-inspired structures has garnered significant attention within the engineering community [14, 15], as confirmed by recent contributions. To name a few, Lu et al. [16] developed an algorithmic method for the spatial form finding of four-fold origami structures; Chen et al. [17] introduced a unified inverse design and optimization workflow tailored for origami structures, specifically focusing on ring-shaped origamis; Sareh [18] explored the least symmetric crystallographic derivative of the developable double corrugation surface.

The physical realization of transformable origami-like structures requires, in addition to kinematical considerations for the folding/deploying process, reliable predictions regarding stiffness and strength under external loads, as well as taking into account the effect of imperfections. Numerous studies addressed these tasks for thin origami structures [19], i.e., those obtained by folding a thin continuum layer of material: simulation procedures for rigid and non-rigid origami folding were proposed by several authors [20,21,22,23,24], while mechanical models adopting various stick-and-spring idealizations [25] were proposed in [7, 26,27,28,29,30,31].

In order to apply origami design principles to load-bearing structures, thickness cannot be ignored. In contrast to thin origami structures, thick origami structures are assembled from a certain number of polygonal panels, hinge-connected to each other along their edges, according to a given crease pattern. Thick origami structures are typically overconstrained, that is, they are statically indeterminate structures, or, in other words, they possess several self-stress states. This poses the problem of the likelihood of unwanted self-balanced internal actions induced by manufacturing imperfections. At the same time, the choice of constitutive relations for the internal actions associated with well-defined strain measures is a nontrivial issue. For these reasons, the structural design of these systems is a challenging task.

In this work, we detail a strategy for reducing the degree of static indeterminacy of thick origami structures, possibly bringing it down to zero, in order to make them isostatic structures. We take advantage of the introduction of sliding hinges, in addition to conventional door hinges, in a rigid origami model. Sliding hinges provide an additional degree of freedom with respect to door hinges, in that they permit the relative translation between adjacent panels along the shared hinge axis, other than the relative rotation between the two panels about the same axis. The literature on the use of sliding hinges in thick origami is scarce. We are aware of just one application, proposed in [32], and reported in [33], for accommodating thickness in physical realizations. The point we wish to stress here is that by replacing a door hinge by a sliding hinge, either one degree of static indeterminacy is removed or one degree of kinematic indeterminacy is added. This fact is indeed reflected in our findings: we identified several noteworty cases in which the present strategy is successful in making a thick origami structure isostatic, so that the internal actions can be uniquely computed for any choice of the external loads. Preliminary result of our procedure were presented in [34] for the case of a Yoshimura crease pattern. Here, other than providing the details of the modeling equations and the simulation algorithm, we present results concerning the statics of thick Miura-ori, Yoshimura, and Kresling origami.

In the following, after recalling useful counting rules for the degrees of kinemaic and static indeterminacy (Sect. 2), we give an exact finite kinematic description of the motion of rigid origami structures with door hinges and sliding hinges, together with the infinitesimal counterpart (Sects. 3.13.3). Folding/deployment simulations can then be performed by numerical integration of the exponential map, by the procedure outlined in Sect. 3.4. The equilibrium equations relating external loads and internal actions are obtained by duality (Sect. 4.1). Afterward, the equilibrium equations are solved numerically for selected examples to demonstrate the effectiveness of our method (Sect. 4.2). We close by discussing the obtained results and future extensions (Sect. 5).

2 Counting mechanisms and self-stress states

In this section, some handy results on the number of internal mechanisms and self-stress states of rigid origami structures, which corresponds respectively to the degrees of kinematic and static indeterminacy, are reviewed for later use (cf. [34]).

A starting point is provided by the convex triangulated polyhedron theorem [35]. The theorem states that a pin-jointed bar framework constructed on a convex triangulated polyhedron, by placing the bars and pins of the framework on the edges and vertices of the polyhedra, is isostatic. Then, by removing one edge from such a framework, an internal mechanism is produced, while the four edges surrounding the removed edge form the boundary of a so-called hole [36]. Next, by removing one of those four edges, a bigger five-edge hole is formed and another internal mechanism is introduced. Hence, the number of mechanisms introduced by a hole bounded by \(E_b\) edges is \(E_b-3\). By observing that a origami with a triangulated crease pattern has the same edge-vertex connectivity of a convex triangulated polyhedron possessing one hole with a number of boundary edges equals to the number of boundary edges of the origami, one can conclude that a pin-jointed framework constructed on a triangulated origami crease pattern, in a non-singular configuration, has \(E_b-3\) independent internal mechanism.

In order to determine the number of self-stress states, one can consider again a framework built on a convex triangulated polyhedron and add one edge between the two distant vertices of two adjacent triangles. In this case, the four vertices of the two adjacent triangles form a so-called block, and the framework acquires one self-stress state. By matching the polygonal panels of the origami with the blocks of the pin-connected framework, it is easy to see that each polygonal panel of the origami with V vertices corresponds to \(V-3\) independent self-stress states in the framework.

By considering the kinematics of a panel-hinge model, in which only the relative rotation about the common edge between adjacent panels is permitted, one can arrive at the same conclusions of the bar framework model. However, the predictions regarding the statics differ in the two models. In fact, it is easy to see that the panel-hinge model gives a higher number of self-stress states. In particular, it was shown in [34] that \(S_{PH}\,=\,S_{BF}\,+\,3\,V_i\), with \(S_{PH}\) and \(S_{BF}\) the degree of static indeterminacy computed according to the panel-hinge and bar-framework models, respectively, and \(V_i\) the number of the internal vertices of the origami. Figure 1 illustrates these quantities for the square twist origami.

Fig. 1
figure 1

The square twist origami a and the corresponding bar framework idealization b. There are \(P=9\) panels, \(H=12\) hinge edges (solid light gray lines), and \(E_b=8\) boundary edges (solid black lines). Each of the five quadrilateral panels is triangulated with one additional edge (dashed light gray line) and transformed into a block by adding one more edge (dashed black line). There are \(V_i=4\) internal vertices (black dots). The bar framework model of this origami has \(S_{BF}=1\) self-stress state, and the panel-hinge model has \(S_{PH}=13\), while \(M=1\) in both models

We conclude this section by observing that, in principle, prestressing can confer first-order geometric stiffness to the mechanisms of the structure [37]; however, to determine whether this is feasible or not, a second-order analysis is required. As such analysis fall outside the scope of this study, we will leave it as the object of future work.

3 Kinematics

In this section, we first derive the exact constraint equations for sliding hinges and door hinges between adjacent panel-shaped bodies, together with the corresponding linearized versions. Then we give them an equivalent description by composition of point slider and spherical hinge constraints. After that we present an integration procedure of the kinematic equations based on the Newton–Raphson algorithm. In the following, we consider the motion of a body \(\mathcal {B}\) in the Euclidean space with respect to a fixed reference frame as described by the rigid motion \(g=({\varvec{R}},{\varvec{u}})\) in terms of a rotation tensor \({\varvec{R}}\in \textrm{Orth}^+\) and a translation vector \({\varvec{u}}\in V\).

Let \(\mathcal {B}_1\) and \(\mathcal {B}_2\) be two bodies connected to each other by a hinge with axis r in the reference configuration, and let \(r_1\) and \(r_2\) the images of r in the rigid motions \(g_1=({\varvec{R}}_1,{\varvec{u}}_1)\) and \(g_2=({\varvec{R}}_2,{\varvec{u}}_2)\) of \(\mathcal {B}_1\) and \(\mathcal {B}_2\) respectively:

$$\begin{aligned} r_1&=\{{\varvec{R}}_1({\varvec{p}}+s_1 {\varvec{t}})+{\varvec{u}}_1, \, s_1\in \mathbb {R}\}\,,\\ r_2&=\{{\varvec{R}}_2({\varvec{p}}+s_2 {\varvec{t}})+{\varvec{u}}_2 ,\, s_2\in \mathbb {R}\}\,, \end{aligned}$$

with \({\varvec{p}}\) is the position vector of a point P on r, and \({\varvec{t}}\) is the unit vector parallel to r.

3.1 Sliding hinges

In case of a sliding hinge, we have that \(r_1=r_2\), that is, \(\forall s_1\in \mathbb {R}, \exists s_2\in \mathbb {R}\), or \(\forall s_2\in \mathbb {R}, \exists s_1\in \mathbb {R}\), such that

$$\begin{aligned} {\varvec{R}}_1({\varvec{p}}+s_1 {\varvec{t}})+{\varvec{u}}_1={\varvec{R}}_2({\varvec{p}}+s_2 {\varvec{t}})+{\varvec{u}}_2\,, \end{aligned}$$
(1)

that is

$$s_2(s_1) {\varvec{R}}_2 {\varvec{t}}- s_1 {\varvec{R}}_1 {\varvec{t}}+ {\varvec{R}}_2 {\varvec{p}}+ {\varvec{u}}_2 - {\varvec{R}}_1 {\varvec{p}}- {\varvec{u}}_1 = {\varvec{0}},$$

or

$$s_2 {\varvec{R}}_2 {\varvec{t}}- s_1(s_2) {\varvec{R}}_1 {\varvec{t}}+ {\varvec{R}}_2 {\varvec{p}}+ {\varvec{u}}_2 - {\varvec{R}}_1 {\varvec{p}}- {\varvec{u}}_1 = {\varvec{0}},$$

with \(s_1 \mapsto s_2(s_1)\) and \(s_2 \mapsto s_1(s_2)\) and \(s_1 \circ s_2\) the identity. By differentiating with respect to the parameter \(s_1\) the first of these two equivalent relations, we get \(s_2^\prime {\varvec{R}}_2 {\varvec{t}}- {\varvec{R}}_1 {\varvec{t}}= {\varvec{0}} ,\) so that \({s_2}^\prime = \pm 1\) and \({\varvec{R}}_2 {\varvec{t}}= \pm {\varvec{R}}_1 {\varvec{t}}\). Assuming that at time \(t_0\), \({\varvec{R}}_2(t_0) {\varvec{t}}= {\varvec{R}}_1(t_0) {\varvec{t}}\), the continuity of the motion implies that

$${\varvec{R}}_2 {\varvec{t}}= {\varvec{R}}_1 {\varvec{t}}= {\varvec{\alpha }},$$

with \({\varvec{\alpha }}\) an arbitrary vector. Then, substitution in (1) yields

$${\varvec{\alpha }}\ \times \ ({\varvec{p}}_2-{\varvec{p}}_1) = {\varvec{0}} ,$$

where \({\varvec{p}}_1\) and \({\varvec{p}}_2\) denote the image of the position vector \({\varvec{p}}\) under the rigid motios \(g_1\) and \(g_2\) of the two bodies:

$${\varvec{p}}_1={\varvec{R}}_1 {\varvec{p}}+ {\varvec{u}}_1,\quad {\varvec{p}}_2={\varvec{R}}_2 {\varvec{p}}+ {\varvec{u}}_2.$$

The constraints (1) can be realized, for example, by the scalar equations

$$\begin{aligned} {\varvec{R}}_2 {\varvec{t}}\cdot {\varvec{R}}_1 {\varvec{m}}=0\,,\> {\varvec{R}}_2 {\varvec{t}}\cdot {\varvec{R}}_1 {\varvec{n}}=0\,,\> ({\varvec{p}}_2-{\varvec{p}}_1) \cdot {\varvec{R}}_1 {\varvec{m}}=0\,,\> ({\varvec{p}}_2-{\varvec{p}}_1) \cdot {\varvec{R}}_1 {\varvec{n}}=0\,, \end{aligned}$$

or, by the scalar equations,

$$\begin{aligned} {\varvec{R}}_1 {\varvec{t}}\cdot {\varvec{R}}_2 {\varvec{m}}=0\,,\> {\varvec{R}}_1 {\varvec{t}}\cdot {\varvec{R}}_2 {\varvec{n}}=0\,,\> ({\varvec{p}}_2-{\varvec{p}}_1) \cdot {\varvec{R}}_2 {\varvec{m}}=0\,,\> ({\varvec{p}}_2-{\varvec{p}}_1) \cdot {\varvec{R}}_2 {\varvec{n}}=0\,, \end{aligned}$$

where \({\varvec{n}}, {\varvec{m}}\) are two linearly independent unit vectors orthogonal to \({\varvec{t}}\).

We choose as constraint equations the arithmetic mean of equations of the two groups. Consequently, the constraint functions are

$$\begin{aligned} c_1= & {} \frac{1}{2}( {\varvec{t}}_1 \cdot {\varvec{m}}_2 + {\varvec{t}}_2 \cdot {\varvec{m}}_1), \\ c_2= & {} \frac{1}{2}( {\varvec{t}}_1 \cdot {\varvec{n}}_2 + {\varvec{t}}_1 \cdot {\varvec{n}}_2), \\ c_3= & {} \frac{1}{2}( ({\varvec{p}}_2-{\varvec{p}}_1) \cdot {\varvec{m}}_1 + ({\varvec{p}}_2-{\varvec{p}}_1) \cdot {\varvec{m}}_2) , \\ c_4= & {} \frac{1}{2}( ({\varvec{p}}_2-{\varvec{p}}_1) \cdot {\varvec{n}}_1 + ({\varvec{p}}_2-{\varvec{p}}_1) \cdot {\varvec{n}}_2),\> \end{aligned}$$

with \({\varvec{m}}_i = {\varvec{R}}_i {\varvec{m}}\), \({\varvec{n}}_i = {\varvec{n}}\), \({\varvec{t}}_i = {\varvec{R}}_i {\varvec{t}}\), \(i=1,2\). The time derivatives of the constraints functions have the expressions

$$\begin{aligned} \dot{c}_1= & {} {\varvec{W}}_1 {\varvec{t}}_1 \cdot {\varvec{m}}_2 + {\varvec{t}}_1 \cdot {\varvec{W}}_2 {\varvec{m}}_2 + {\varvec{W}}_2 {\varvec{t}}_2 \cdot {\varvec{m}}_1 + {\varvec{t}}_2 \cdot {\varvec{W}}_1 {\varvec{m}}_1 \nonumber \\= & {} ({\varvec{W}}_1 - {\varvec{W}}_2) {\varvec{t}}_1 \cdot {\varvec{m}}_2 + ({\varvec{W}}_2 - {\varvec{W}}_1) {\varvec{t}}_2 \cdot {\varvec{m}}_1 , \nonumber \\ \dot{c}_2= & {} {\varvec{W}}_1 {\varvec{t}}_1 \cdot {\varvec{n}}_2 + {\varvec{t}}_1 \cdot {\varvec{W}}_2 {\varvec{n}}_2 + {\varvec{W}}_2 {\varvec{t}}_2 \cdot {\varvec{n}}_1 + {\varvec{t}}_2 \cdot {\varvec{W}}_1 {\varvec{n}}_1 \nonumber \\= & {} ({\varvec{W}}_1 - {\varvec{W}}_2) {\varvec{t}}_1 \cdot {\varvec{n}}_2 + ({\varvec{W}}_2 - {\varvec{W}}_1) {\varvec{t}}_2 \cdot {\varvec{n}}_1 , \nonumber \\ \dot{c}_3= & {} ({\varvec{W}}_2 {\varvec{p}}_2 - {\varvec{W}}_1{\varvec{p}}_1 + {\varvec{w}}_2 -{\varvec{w}}_1) \cdot {\varvec{m}}_1 + ({\varvec{p}}_2-{\varvec{p}}_1 ) \cdot {\varvec{W}}_1 {\varvec{m}}_1 \nonumber \\{} & {} \quad + ({\varvec{W}}_2 {\varvec{p}}_2 - {\varvec{W}}_1{\varvec{p}}_1 + {\varvec{w}}_2 -{\varvec{w}}_1) \cdot {\varvec{m}}_2 + ({\varvec{p}}_2-{\varvec{p}}_1 ) \cdot {\varvec{W}}_2 {\varvec{m}}_2 , \nonumber \\= & {} ({\varvec{W}}_2 -{\varvec{W}}_1) {\varvec{p}}_2 \cdot {\varvec{m}}_1 + ({\varvec{W}}_2 - {\varvec{W}}_1) {\varvec{p}}_1 \cdot {\varvec{m}}_2 + ({\varvec{w}}_2 -{\varvec{w}}_1) \cdot ( {\varvec{m}}_1+ {\varvec{m}}_2), \nonumber \\ \dot{c}_4= & {} ({\varvec{W}}_2 {\varvec{p}}_2 - {\varvec{W}}_1{\varvec{p}}_1 + {\varvec{w}}_2 -{\varvec{w}}_1) \cdot {\varvec{n}}_1 + ({\varvec{p}}_2-{\varvec{p}}_1 ) \cdot {\varvec{W}}_1 {\varvec{n}}_1 \nonumber \\{} & {} \quad + ({\varvec{W}}_2 {\varvec{p}}_2 - {\varvec{W}}_1{\varvec{p}}_1 + {\varvec{w}}_2 -{\varvec{w}}_1) \cdot {\varvec{n}}_2 + ({\varvec{p}}_2-{\varvec{p}}_1 ) \cdot {\varvec{W}}_2 {\varvec{n}}_2 , \nonumber \\= & {} ({\varvec{W}}_2 -{\varvec{W}}_1) {\varvec{p}}_2 \cdot {\varvec{n}}_1 + ({\varvec{W}}_2 - {\varvec{W}}_1) {\varvec{p}}_1 \cdot {\varvec{n}}_2 + ({\varvec{w}}_2 -{\varvec{w}}_1) \cdot ( {\varvec{n}}_1+ {\varvec{n}}_2) . \end{aligned}$$
(2)

To obtain these expressions we have used the differentiation rules

$$\begin{aligned} \dot{\varvec{p}}_i = {\varvec{W}}_i {\varvec{p}}_i+{\varvec{w}}_i \,,\> \dot{\varvec{t}}_i = {\varvec{W}}_i {\varvec{t}}_i \,, \> \dot{\varvec{m}}_i = {\varvec{W}}_i {\varvec{m}}_i \,,\> \dot{\varvec{n}}_i = {\varvec{W}}_i {\varvec{n}}_i \,,\quad i=1,2\,, \end{aligned}$$

with \({\varvec{W}}_i = \dot{\varvec{R}}_i {\varvec{R}}_i^T\) and \({\varvec{w}}_i = \dot{\varvec{u}}_i - {\varvec{W}}_i {\varvec{u}}_i\). By introducing the angular velocities \({\varvec{\omega }}_i\) as the axial vectors of \({\varvec{W}}_i\), \(i=1,2\), (2) are expressed as follows

$$\begin{aligned} \dot{c}_1= & {} ( {\varvec{t}}_1 \times {\varvec{m}}_2 + {\varvec{t}}_2 \times {\varvec{m}}_1) \cdot ( {\varvec{\omega }}_2 - {\varvec{\omega }}_1) , \\ \dot{c}_2= & {} ({\varvec{t}}_1 \times {\varvec{n}}_2 + {\varvec{t}}_2 \times {\varvec{n}}_1) \cdot ( {\varvec{\omega }}_2 - {\varvec{\omega }}_1) , \\ \dot{c}_3= & {} ( {\varvec{p}}_2 \times {\varvec{m}}_1 + {\varvec{p}}_1 \times {\varvec{m}}_2) \times ( {\varvec{\omega }}_2 - {\varvec{\omega }}_1) + ({\varvec{w}}_2 -{\varvec{w}}_1) \cdot ({\varvec{m}}_1+ {\varvec{m}}_2) , \\ \dot{c}_4= & {} ( {\varvec{p}}_2 \times {\varvec{n}}_1 + {\varvec{p}}_1 \times {\varvec{n}}_2) \times ( {\varvec{\omega }}_2 - {\varvec{\omega }}_1) + ({\varvec{w}}_2 -{\varvec{w}}_1) \cdot ( {\varvec{n}}_1+ {\varvec{n}}_2) . \end{aligned}$$

Then, the first order approximation of the constraint system in the neighborhood of the configuration \(({\varvec{R}}_1 \,, {\varvec{u}}_1\,,{\varvec{R}}_2 \,, {\varvec{u}}_2)\), has the expression

$$\begin{aligned} {\varvec{c}}_0 + {\varvec{C}}{\varvec{\delta }}= {\varvec{0}} , \end{aligned}$$
(3)

with \({\varvec{c}}= (c_1, c_2, c_3, c_4)\), \({\varvec{c}}_0 = {\varvec{c}}({\varvec{R}}_1 \,, {\varvec{u}}_1\,,{\varvec{R}}_2 \,, {\varvec{u}}_2)\), \({\varvec{\delta }}= (\delta {\varvec{\omega }}_1\,, \delta {\varvec{w}}_1\,, \delta {\varvec{\omega }}_2\,, \delta {\varvec{w}}_2)\), and

$$\begin{aligned} {\varvec{C}}= \frac{1}{2} \left( \begin{array}{cccc} \scriptstyle -({\varvec{t}}_1 \times {\varvec{m}}_2 + {\varvec{t}}_2 \times {\varvec{m}}_1)^T &{} \scriptstyle {\varvec{0}} &{} \scriptstyle ( {\varvec{t}}_1 \times {\varvec{m}}_2 + {\varvec{t}}_2 \times {\varvec{m}}_1)^T &{} \scriptstyle {\varvec{0}} \\ \scriptstyle -({\varvec{t}}_1 \times {\varvec{n}}_2 + {\varvec{t}}_2 \times {\varvec{n}}_1)^T &{} \scriptstyle {\varvec{0}} &{} \scriptstyle ({\varvec{t}}_1 \times {\varvec{n}}_2 + {\varvec{t}}_2 \times {\varvec{n}}_1)^T &{} \scriptstyle {\varvec{0}} \\ \scriptstyle - ( {\varvec{p}}_2 \times {\varvec{m}}_1 + {\varvec{p}}_1 \times {\varvec{m}}_2)^T &{} \scriptstyle -({\varvec{m}}_1+ {\varvec{m}}_2)^T &{} \scriptstyle ( {\varvec{p}}_2 \times {\varvec{m}}_1 + {\varvec{p}}_1 \times {\varvec{m}}_2)^T &{} \scriptstyle ({\varvec{m}}_1+ {\varvec{m}}_2)^T \\ \scriptstyle -( {\varvec{p}}_2 \times {\varvec{n}}_1 + {\varvec{p}}_1 \times {\varvec{n}}_2)^T &{} \scriptstyle -( {\varvec{n}}_1+ {\varvec{n}}_2)^T &{} \scriptstyle ( {\varvec{p}}_2 \times {\varvec{n}}_1 + {\varvec{p}}_1 \times {\varvec{n}}_2)^T &{} \scriptstyle ( {\varvec{n}}_1+ {\varvec{n}}_2)^T \end{array} \right) \,. \end{aligned}$$
(4)

3.2 Door hinges

For door hinges we start with the condition

$$\forall s\in \mathbb {R}, \quad {\varvec{R}}_1({\varvec{p}}+s {\varvec{t}})+{\varvec{u}}_1={\varvec{R}}_2({\varvec{p}}+s {\varvec{t}})+{\varvec{u}}_2.$$

With the notation used in the previous section,

$$\begin{aligned}&{\varvec{t}}_2 - {\varvec{t}}_1 ={\varvec{0}}\quad \mathrm {(as\ in\ the\ case\ of\ a\ sliding\ hinge)}\,,\\&{\varvec{p}}_2 - {\varvec{p}}_1={\varvec{0}}\,. \end{aligned}$$

Then the constraint function are

$$\begin{aligned} c_1= & {} ( {\varvec{t}}_1 \cdot {\varvec{m}}_2 + {\varvec{t}}_2 \cdot {\varvec{m}}_1 ) , \\ c_2= & {} ( {\varvec{t}}_1 \cdot {\varvec{n}}_2 + {\varvec{t}}_1 \cdot {\varvec{n}}_2 ) , \\ {\varvec{c}}_3= & {} {\varvec{p}}_2-{\varvec{p}}_1 . \end{aligned}$$

The time derivatives of the constraints functions have the expressions

$$\begin{aligned} \dot{c}_1= & {} {\varvec{W}}_1 {\varvec{t}}_1 \cdot {\varvec{m}}_2 + {\varvec{t}}_1 \cdot {\varvec{W}}_2 {\varvec{m}}_2 + {\varvec{W}}_2 {\varvec{t}}_2 \cdot {\varvec{m}}_1 + {\varvec{t}}_2 \cdot {\varvec{W}}_1 {\varvec{m}}_1 \\= & {} ({\varvec{W}}_1 - {\varvec{W}}_2) {\varvec{t}}_1 \cdot {\varvec{m}}_2 + ({\varvec{W}}_2 - {\varvec{W}}_1) {\varvec{t}}_2 \cdot {\varvec{m}}_1 , \\ \dot{c}_2= & {} {\varvec{W}}_1 {\varvec{t}}_1 \cdot {\varvec{n}}_2 + {\varvec{t}}_1 \cdot {\varvec{W}}_2 {\varvec{n}}_2 + {\varvec{W}}_2 {\varvec{t}}_2 \cdot {\varvec{n}}_1 + {\varvec{t}}_2 \cdot {\varvec{W}}_1 {\varvec{n}}_1 \\= & {} ({\varvec{W}}_1 - {\varvec{W}}_2) {\varvec{t}}_1 \cdot {\varvec{n}}_2 + ({\varvec{W}}_2 - {\varvec{W}}_1) {\varvec{t}}_2 \cdot {\varvec{n}}_1 , \\ \dot{\varvec{c}}_3= & {} ({\varvec{W}}_2 {\varvec{p}}_2 + {\varvec{w}}_2 - {\varvec{W}}_1{\varvec{p}}_1 - {\varvec{w}}_1) , \end{aligned}$$

or, in terms of angular velocities,

$$\begin{aligned} \dot{c}_1= & {} ( {\varvec{t}}_1 \times {\varvec{m}}_2 + {\varvec{t}}_2 \times {\varvec{m}}_1) \cdot ( {\varvec{\omega }}_2 - {\varvec{\omega }}_1) , \\ \dot{c}_2= & {} ({\varvec{t}}_1 \times {\varvec{n}}_2 + {\varvec{t}}_2 \times {\varvec{n}}_1) \cdot ( {\varvec{\omega }}_2 - {\varvec{\omega }}_1) , \\ \dot{\varvec{c}}_3= & {} {\varvec{\omega }}_2 \times {\varvec{p}}_2 + {\varvec{w}}_2 - {\varvec{\omega }}_1 \times {\varvec{p}}_2 - {\varvec{w}}_1. \end{aligned}$$

Then, the first order approximation of the the constraint system in the neighborhood of the configuration \(({\varvec{R}}_1 \,, {\varvec{u}}_1\,,{\varvec{R}}_2 \,, {\varvec{u}}_2)\), has the expression

$$\begin{aligned} {\varvec{c}}_0 + {\varvec{C}}{\varvec{\delta }}= {\varvec{0}} \,, \end{aligned}$$
(5)

with \({\varvec{c}}= (c_1, c_2, {\varvec{c}}_3)\), \({\varvec{c}}_0 = {\varvec{c}}({\varvec{R}}_1 \,, {\varvec{u}}_1\,,{\varvec{R}}_2 \,, {\varvec{u}}_2)\), \({\varvec{\delta }}= (\delta {\varvec{\omega }}_1\,, \delta {\varvec{w}}_1\,, \delta {\varvec{\omega }}_2\,, \delta {\varvec{w}}_2)\), and

$$\begin{aligned} {\varvec{C}}= \frac{1}{2} \left( \begin{array}{cccc} \scriptstyle -({\varvec{t}}_1 \times {\varvec{m}}_2 + {\varvec{t}}_2 \times {\varvec{m}}_1)^T &{} \scriptstyle {\varvec{0}} &{} \scriptstyle ( {\varvec{t}}_1 \times {\varvec{m}}_2 + {\varvec{t}}_2 \times {\varvec{m}}_1)^T &{} \scriptstyle {\varvec{0}} \\ \scriptstyle -({\varvec{t}}_1 \times {\varvec{n}}_2 + {\varvec{t}}_2 \times {\varvec{n}}_1)^T &{} \scriptstyle {\varvec{0}} &{} \scriptstyle ({\varvec{t}}_1 \times {\varvec{n}}_2 + {\varvec{t}}_2 \times {\varvec{n}}_1)^T &{} \scriptstyle {\varvec{0}} \\ \scriptstyle *{\varvec{p}}_1 &{} \scriptstyle -{\varvec{I}}&{} \scriptstyle -\,*{\varvec{p}}_2 &{} \scriptstyle {\varvec{I}}\end{array} \right) \,, \end{aligned}$$
(6)

with \(*{\varvec{p}}_i\) the axial tensors of \({\varvec{p}}_i\), \(i=1,2\), and \({\varvec{I}}\) the identity tensor.

3.3 Point constraints

We express here the hinge constraint between two bodies in terms of point constraints, that is, a sliding hinge is obtained with two sliders located on the hinge axis, a door hinge is obtained as a fixed point and a slider located on the hinge axis.

3.3.1 Single point slider

Let the axis of the guide be described in the reference configuration by the line r solidal to \(\mathcal {B}_1\) that passes through the points \(O +{\varvec{p}}\) and \(O +{\varvec{q}}\); and let \(O + {\varvec{q}}\) be the point of \(\mathcal {B}_2\) constrained to slide on the guide. Under the motion of the two bodies the vector positions \({\varvec{p}}\), \({\varvec{q}}\) are transported to the vectors

$$\begin{aligned}&{\varvec{p}}_i = {\varvec{R}}_i{\varvec{p}}+{\varvec{u}}_i\,, \\&{\varvec{q}}_i={\varvec{R}}_i{\varvec{q}}+{\varvec{u}}_i \,, \end{aligned}$$

and the line r to the lines

$$\begin{aligned} r_i= \{ O+ {\varvec{R}}_i({\varvec{p}}+s{\varvec{t}})+{\varvec{u}}_i\,,\ s\in \mathbb {R}\} \,, \end{aligned}$$
(7)

with \({\varvec{t}}= \mathop {\text {vers}}({\varvec{q}}-{\varvec{p}})\) and \(i=1,2\). The constraint imposes that the point \({\varvec{p}}_2\) be the position vector of a point of \(r_1\), that is

$${\varvec{p}}_2 - {\varvec{p}}_1 \quad || \quad \ r_1.$$

It follows that the constraint equations are

$$\begin{aligned} c_1({\varvec{R}}_1, {\varvec{u}}_1, {\varvec{R}}_2, {\varvec{u}}_2)= & {} ({\varvec{p}}_2 - {\varvec{p}}_1)\cdot {\varvec{m}}_1 , \\ c_2({\varvec{R}}_1, {\varvec{u}}_1, {\varvec{R}}_2, {\varvec{u}}_2)= & {} ({\varvec{p}}_2 - {\varvec{p}}_1)\cdot {\varvec{n}}_1 , \end{aligned}$$

with \({\varvec{m}}_1 = {\varvec{R}}_1 {\varvec{m}}\) and \({\varvec{n}}_1 = {\varvec{R}}_1 {\varvec{n}}\). The derivatives with respect to time of these functions have the expressions

$$\begin{aligned} \dot{c}_1= & {} ({\varvec{W}}_2 {\varvec{p}}_2 + {\varvec{w}}_2 - {\varvec{W}}_1 {\varvec{p}}_1- {\varvec{w}}_1) \cdot {\varvec{m}}_1 + ({\varvec{p}}_2 - {\varvec{p}}_1) \cdot {\varvec{W}}_1 {\varvec{m}}_1 \\= & {} \left( ({\varvec{W}}_2 - {\varvec{W}}_1) {\varvec{p}}_2 + {\varvec{w}}_2 - {\varvec{w}}_1 \right) \cdot {\varvec{m}}_1 \\= & {} \left( ({\varvec{W}}_2 - {\varvec{W}}_1) {\varvec{p}}_2 + {\varvec{w}}_2 - {\varvec{w}}_1 \right) \cdot {\varvec{m}}_1 \\= & {} {\varvec{p}}_2 \times {\varvec{m}}_1 \cdot ({\varvec{\omega }}_2 - {\varvec{\omega }}_1) + {\varvec{m}}_1 \cdot ({\varvec{w}}_2 - {\varvec{w}}_1), \\ \dot{c}_2= & {} ({\varvec{W}}_2 {\varvec{p}}_2 + {\varvec{w}}_2 - {\varvec{W}}_1 {\varvec{p}}_1- {\varvec{w}}_1) \cdot {\varvec{n}}_1 + ({\varvec{p}}_2 - {\varvec{p}}_1) \cdot {\varvec{W}}_1 {\varvec{n}}_1 \\= & {} \left( ({\varvec{W}}_2 - {\varvec{W}}_1) {\varvec{p}}_2 + {\varvec{w}}_2 - {\varvec{w}}_1 \right) \cdot {\varvec{n}}_1 \\= & {} \left( ({\varvec{W}}_2 - {\varvec{W}}_1) {\varvec{p}}_2 + {\varvec{w}}_2 - {\varvec{w}}_1 \right) \cdot {\varvec{n}}_1 \\= & {} {\varvec{p}}_2 \times {\varvec{n}}_1 \cdot ({\varvec{\omega }}_2 - {\varvec{\omega }}_1) + {\varvec{n}}_1 \cdot ({\varvec{w}}_2 - {\varvec{w}}_1). \end{aligned}$$

Then, the first order approximation of the constraint equations in the neighborhood of the configuration \(({\varvec{R}}_1 \,, {\varvec{u}}_1\,,{\varvec{R}}_2 \,, {\varvec{u}}_2)\), has the expression

$$\begin{aligned} {\varvec{c}}_0 + {\varvec{C}}{\varvec{\delta }}= 0 \,, \end{aligned}$$
(8)

with \({\varvec{c}}= (c_1, c_2)\), \({\varvec{c}}_0 = {\varvec{c}}({\varvec{R}}_1 \,, {\varvec{u}}_1\,,{\varvec{R}}_2 \,, {\varvec{u}}_2)\), \({\varvec{\delta }}= (\delta {\varvec{\omega }}_1\,, \delta {\varvec{w}}_1\,, \delta {\varvec{\omega }}_2\,, \delta {\varvec{w}}_2)\), and

$$\begin{aligned} {\varvec{C}}= \left( \begin{array}{cccc} \scriptstyle -({\varvec{p}}_2 \times {\varvec{m}}_1)^T &{} \scriptstyle - {\varvec{m}}_1^T &{} \scriptstyle ({\varvec{p}}_2 \times {\varvec{m}}_1)^T &{} \scriptstyle {\varvec{m}}_1^T \\ \scriptstyle -({\varvec{p}}_2 \times {\varvec{n}}_1)^T &{} \scriptstyle - {\varvec{n}}_1^T &{} \scriptstyle ({\varvec{p}}_2 \times {\varvec{n}}_1)^T &{} \scriptstyle {\varvec{n}}_1^T \end{array} \right) \,. \end{aligned}$$

3.3.2 Sliding hinge as a double point slider

With the notation introduced previously, the constraint imposes that the points \({\varvec{p}}_2\) and \({\varvec{q}}_1\) be the position vector of a point of \(r_1\) and \(r_2\), respectively; then

$$\begin{aligned}{} & {} {\varvec{p}}_2 - {\varvec{p}}_1 \quad || \quad \ r_1 , \end{aligned}$$
(9)
$$\begin{aligned}{} & {} {\varvec{q}}_1 - {\varvec{q}}_2 \quad || \quad \ r_2 . \end{aligned}$$
(10)

It follows that the constraint equations are

$$\begin{aligned} c_1({\varvec{R}}_1, {\varvec{u}}_1, {\varvec{R}}_2, {\varvec{u}}_2)= & {} ({\varvec{p}}_2 - {\varvec{p}}_1)\cdot {\varvec{m}}_1 , \\ c_2({\varvec{R}}_1, {\varvec{u}}_1, {\varvec{R}}_2, {\varvec{u}}_2)= & {} ({\varvec{p}}_2 - {\varvec{p}}_1)\cdot {\varvec{n}}_1 , \\ c_3({\varvec{R}}_1, {\varvec{u}}_1, {\varvec{R}}_2, {\varvec{u}}_2)= & {} ({\varvec{q}}_1 - {\varvec{q}}_2)\cdot {\varvec{m}}_2 , \\ c_4({\varvec{R}}_1, {\varvec{u}}_1, {\varvec{R}}_2, {\varvec{u}}_2)= & {} ({\varvec{q}}_1 - {\varvec{q}}_2)\cdot {\varvec{n}}_2 , \end{aligned}$$

with \({\varvec{m}}_i = {\varvec{R}}_i {\varvec{m}}\) and \({\varvec{n}}_i = {\varvec{R}}_i {\varvec{n}}\), \(i=1,2\). The time derivatives of these functions have the expressions

$$\begin{aligned} \dot{c}_1= & {} {\varvec{p}}_2 \times {\varvec{m}}_1 \cdot ({\varvec{\omega }}_2 - {\varvec{\omega }}_1) + {\varvec{m}}_1 \cdot ({\varvec{w}}_2 - {\varvec{w}}_1), \\ \dot{c}_2= & {} {\varvec{p}}_2 \times {\varvec{n}}_1 \cdot ({\varvec{\omega }}_2 - {\varvec{\omega }}_1) + {\varvec{n}}_1 \cdot ({\varvec{w}}_2 - {\varvec{w}}_1), \\ \dot{c}_3= & {} {\varvec{q}}_1 \times {\varvec{m}}_2 \cdot ({\varvec{\omega }}_1 - {\varvec{\omega }}_2) + {\varvec{m}}_2 \cdot ({\varvec{w}}_1 - {\varvec{w}}_2), \\ \dot{c}_4= & {} {\varvec{q}}_1 \times {\varvec{n}}_2 \cdot ({\varvec{\omega }}_1 - {\varvec{\omega }}_2) + {\varvec{n}}_2 \cdot ({\varvec{w}}_1 - {\varvec{w}}_2). \end{aligned}$$

Then, the first order approximation of the the constraint equations in the neighborhood of the configuration \(({\varvec{R}}_1 \,, {\varvec{u}}_1\,,{\varvec{R}}_2 \,, {\varvec{u}}_2)\), has the expression

$$\begin{aligned} {\varvec{c}}_0 + {\varvec{C}}{\varvec{\delta }}= 0 \,, \end{aligned}$$
(12)

with \({\varvec{c}}= (c_1, c_2, c_3, c_4)\), \({\varvec{c}}_0 = {\varvec{c}}({\varvec{R}}_1 \,, {\varvec{u}}_1\,,{\varvec{R}}_2 \,, {\varvec{u}}_2)\), \({\varvec{\delta }}= (\delta {\varvec{\omega }}_1\,, \delta {\varvec{w}}_1\,, \delta {\varvec{\omega }}_2\,, \delta {\varvec{w}}_2)\), and

$$\begin{aligned} {\varvec{C}}= \left( \begin{array}{cccc} \scriptstyle -({\varvec{p}}_2 \times {\varvec{m}}_1)^T &{} \scriptstyle - {\varvec{m}}_1^T &{} \scriptstyle ({\varvec{p}}_2 \times {\varvec{m}}_1)^T &{} \scriptstyle {\varvec{m}}_1^T \\ \scriptstyle -({\varvec{p}}_2 \times {\varvec{n}}_1)^T &{} \scriptstyle - {\varvec{n}}_1^T &{} \scriptstyle ({\varvec{p}}_2 \times {\varvec{n}}_1)^T &{} \scriptstyle {\varvec{n}}_1^T \\ \scriptstyle -({\varvec{q}}_1 \times {\varvec{m}}_2)^T &{} \scriptstyle - {\varvec{m}}_2^T &{} \scriptstyle ({\varvec{q}}_1 \times {\varvec{m}}_2)^T &{} \scriptstyle {\varvec{m}}_2^T \\ \scriptstyle -({\varvec{q}}_1 \times {\varvec{n}}_2)^T &{} \scriptstyle - {\varvec{n}}_2^T &{} \scriptstyle ({\varvec{q}}_1 \times {\varvec{n}}_2)^T &{} \scriptstyle {\varvec{n}}_2^T \end{array} \right) \,. \end{aligned}$$
(13)

3.3.3 Spherical hinge

For a spherical hinge we start with the conditions

$${\varvec{R}}_1 {\varvec{p}}+ {\varvec{u}}_1={\varvec{R}}_2 {\varvec{p}}+{\varvec{u}}_2,$$

or, with the notation used in the previous section,

$${\varvec{p}}_2 - {\varvec{p}}_1={\varvec{0}}.$$

Then, the constraint function is

$${\varvec{c}}= ({\varvec{R}}_1- {\varvec{R}}_2) {\varvec{p}}+ {\varvec{u}}_1 - {\varvec{u}}_2 ,$$

with derivatives with respect to time

$$\dot{\varvec{c}}= {\varvec{W}}_1 {\varvec{p}}_1 - {\varvec{W}}_2 {\varvec{p}}_2 + {\varvec{w}}_1 - {\varvec{w}}_2 .$$

or, in terms of angular velocities,

$$\dot{\varvec{c}}= - {\varvec{p}}_1 \times {\varvec{\omega }}_1 + {\varvec{p}}_2 \times {\varvec{\omega }}_2 + {\varvec{w}}_1 - {\varvec{w}}_2.$$

Thus, the corresponding form of the \({\varvec{C}}\) operator is

$$\begin{aligned} {\varvec{C}}=\left( \begin{array}{cccc} - *{\varvec{p}}_1&\ \ {\varvec{I}}&\ \ *{\varvec{p}}_2&\ \ -{\varvec{I}}\end{array} \right) \,. \end{aligned}$$
(14)

3.3.4 Door hinge as a point slider and a spherical hinge

The operators corresponding to a point slider and to a spherical hinge can be composed together to give that of a door hinge:

$$\begin{aligned} {\varvec{C}}= \left( \begin{array}{cccc} \scriptstyle -({\varvec{q}}_1 \times {\varvec{m}}_2)^T &{} \scriptstyle - {\varvec{m}}_2^T &{} \scriptstyle ({\varvec{q}}_1 \times {\varvec{m}}_2)^T &{} \scriptstyle {\varvec{m}}_2^T \\ \scriptstyle -({\varvec{q}}_1 \times {\varvec{n}}_2)^T &{} \scriptstyle - {\varvec{n}}_2^T &{} \scriptstyle ({\varvec{q}}_1 \times {\varvec{n}}_2)^T &{} \scriptstyle {\varvec{n}}_2^T \\ \scriptstyle - *{\varvec{p}}_1 &{} \scriptstyle {\varvec{I}}&{} \scriptstyle *{\varvec{p}}_2 &{} \scriptstyle -{\varvec{I}}\\ \end{array} \right) \,. \end{aligned}$$
(15)

3.4 Integration of the kinematic-compatibility equations

Let E be the Euclidean group. The elements of E are the pair \(({\varvec{R}},{\varvec{u}})\) with \({\varvec{R}}\in \textrm{Orth}^+\) the rotation and \({\varvec{u}}\in V\) the translation. The group operation on E is defined by

$$\begin{aligned} ({\varvec{R}}, {\varvec{u}})\circ ({\varvec{R}}',{\varvec{u}}') = ({\varvec{R}}{\varvec{R}}', {\varvec{R}}{\varvec{u}}' + {\varvec{u}}) \,, \end{aligned}$$
(16)

the inverse of \(({\varvec{R}},{\varvec{u}})\) is \(({\varvec{R}}^{-1}, -{\varvec{R}}^{-1}{\varvec{u}})\), and the unit element of the group is the pair \(({\varvec{I}}, {\varvec{0}})\). This makes E the semidirect product of \(\textrm{Orth}^+\) and V.

The Lie algebra \(\mathfrak {e}\) of E is given by the semi-direct product of the Lie algebras \(\textrm{Skw}\) and V. The exponential map \(\exp : \mathfrak {e}\rightarrow E\) transforms the pair \(({\varvec{W}},{\varvec{w}})\in \mathfrak {e}\) in the pair \(({\varvec{R}}, {\varvec{u}})\in E\), with

$$\begin{aligned} {\varvec{R}}= & {} {\varvec{I}}+ \sin (\theta ) {\varvec{W}}+ \frac{ (1-\cos (\theta )) }{\theta ^2} {\varvec{W}}^2 , \end{aligned}$$
(17)
$$\begin{aligned} {\varvec{u}}= & {} {\varvec{A}}{\varvec{w}}, \end{aligned}$$
(18)

here \(\theta\) denotes the norm of the axial \({\varvec{\omega }}\) of \({\varvec{W}}\) and \({\varvec{A}}\) the operator

$$\begin{aligned} {\varvec{A}}= {\varvec{I}}+ \frac{(1-\cos (\theta )) }{\theta ^2} {\varvec{W}}+ \frac{1}{\theta ^2} (1- \frac{\sin (\theta )}{\theta }) {\varvec{W}}^2 \,. \end{aligned}$$
(19)

Let G be the direct product group of N copies of E, that is \(G = \overbrace{E\times \cdots \times E}^{ N-\textrm{times}}\). In components, the elements g of G are written \((g_1, g_2, \dots , g_N)\), with \(g_i = ({\varvec{R}}_i , {\varvec{u}}_i) \in E\). The i-th component \(g_i\) of g defines the rigid transport of the i-th body. Then the Lie algebra \(\mathfrak {g}\) of G is the direct product of N copies of the Lie algebra \(\mathfrak {e}\) of E, and the exponential map \(\exp : \mathfrak {g}\rightarrow G\) is the map that transforms \({\varvec{v}}=({\varvec{v}}_1, {\varvec{v}}_2, \dots , {\varvec{v}}_N) \in \mathfrak {g}\) in \(g = (g_1, g_2, \dots , g_N)\in G\), with \(g_i\) the image of \({\varvec{v}}_i\) under the exponential map of the Euclidean group E.

3.4.1 Newton–Raphson method on \(\mathbb {R}^n\)

To introduce the notation adopted, we briefly recall here the well-known Newton–Raphson method on \(\mathbb {R}^n\). Given a map \(f: \mathbb {R}^n \rightarrow \mathbb {R}^m\), we consider the problem of solving the nonlinear equation

$$\begin{aligned} f(x) = 0 \,. \end{aligned}$$
(20)

The iteration of the Newton–Raphson method for solving this equation is defined by

$$\begin{aligned}{} & {} f(x_n) + \nabla f (x_n) \delta x = 0 , \end{aligned}$$
(21)
$$\begin{aligned}{} & {} x_{n+1} = x_{n} + \delta x . \end{aligned}$$
(22)

Let \(p_{x_n}\) the function defined by \(p_{x_n} (\delta x) = x_n + \delta x\,,\) and let \(\hat{f}\) the composed function \(\hat{f} = f \circ p_{x_n}\). Then

$$\begin{aligned} \hat{f}({\varvec{v}}) = f(x_n+\delta x ) \,,\quad \quad \nabla \hat{f}(\delta x) = \nabla f(x_n+\delta x) \nabla p_{x_n}(\delta x) = \nabla f(x_n+\delta x) \,, \end{aligned}$$
(23)

as \(\nabla p_{x_n} = I\); in particular, for \(\delta x = 0\), we have

$$\begin{aligned} \hat{f}(0) = f(x_n ) \,,\quad \quad \nabla \hat{f}(0) = \nabla f(x_n) \nabla p_{x_n}(0) = \nabla f(x_n) \,. \end{aligned}$$
(24)

It follows that the Newton–Raphson iteration can be rewritten in the form

$$\begin{aligned}{} & {} \hat{f}(0) + \nabla f (x_n) \nabla p_{x_n}(0) \delta x = 0 , \end{aligned}$$
(25)
$$\begin{aligned}{} & {} x_{n+1} = p_{x_n}(\delta x) . \end{aligned}$$
(26)

3.4.2 Newton–Raphson method on Lie groups

Let G be a Lie group. For every \(h\in G\), the right translation is the map \(R_{g_n}:G \rightarrow G\) defined by

$$\begin{aligned} R_{g_n}(h) = h \, g_n \,. \end{aligned}$$
(27)

Given a map \(f: G \rightarrow \mathbb {R}^m\), we consider the problem of solving the nonlinear equation

$$\begin{aligned} f(g) = 0 \,, \end{aligned}$$
(28)

in which g is the collection of rotations and translations of all bodies, \(({\varvec{R}}_i,{\varvec{u}}_i)\), \(i~=~1,\ldots ,N\), and f is the collection of all constraint functions \({\varvec{c}}\) that we detailed in the previous subsections for each type of constraint.

Let \(\hat{f}\) be the composed function \(\hat{f} = f \circ R_{g_n}\circ \exp ({\varvec{v}})\), with \(\exp : \mathfrak {g}\rightarrow G\) the exponential map. Then \(\hat{f}({\varvec{v}}) = f( \exp ({\varvec{v}})\, g_n)\) and

$$\begin{aligned} \nabla \hat{f}({\varvec{v}}) = \nabla f(\exp ({\varvec{v}}) g_n) \circ \nabla R_{g_n}(\exp ({\varvec{v}})\circ \nabla \exp ({\varvec{v}}) \,; \end{aligned}$$
(29)

because the exponential of \({\varvec{0}}\in \mathfrak {g}\) is the identity \({\varvec{e}}\in G\), and the differential of the exponential map at zero is the identity of \(\mathfrak {g}\),

$$\begin{aligned} \exp ({\varvec{0}}) = {\varvec{e}}\,,\quad \quad \nabla \exp (0) = I\,, \end{aligned}$$
(30)

we have

$$\begin{aligned} \hat{f}({\varvec{0}}) = f(g_n ) \,,\quad \quad \nabla \hat{f}({\varvec{0}}) = \nabla f(g_n) \circ \nabla R_{g_n}({\varvec{e}}) \,. \end{aligned}$$
(31)

It follows the Newton–Raphson iteration on Lie group

$$\begin{aligned}{} & {} \hat{f}({\varvec{0}}) + \nabla f (g_n) \circ \nabla R_{g_n} \delta {\varvec{v}}= 0, \end{aligned}$$
(32)
$$\begin{aligned}{} & {} g_{n+1} = R_{g_n} \circ \exp (\delta {\varvec{v}}) = \exp (\delta {\varvec{v}}) g_n, \end{aligned}$$
(33)

in which \(\delta {\varvec{v}}\) is the collection of all the increments \((\delta {\varvec{\omega }}_i,\delta {\varvec{w}}_i)\), \(i~=~1,\ldots ,N\).

3.4.3 Folding example

As the present work is mainly focused on the study of isostatic thick origami structures, we present just one folding example. We apply the above-described procedure to fold the triangular portion of Yoshimura pattern shown in Fig. 2a.

This triangulated origami structure is composed by isosceles triangles with a long side of 1.8 units and two equal angles of 22.5 degrees. The assembly has \(P=30\) panels with \(H=35\) hinge lines. The number of edges on the boundary is \(E_b=20\). Hence, the number of internal independent mechanisms is \(M=E_b-3=17\). We consider all hinges to be door hinges. The folding process is prescribed by imposing the relative angular velocities at the 15 vertical hinges to be equal to 0.005 rad/s, while maintaining vertex 6 fixed in space, the vertices 2, 4, 8, 10, 12, 13, 14, 15, 16 moving only along the x axis, and the motion of vertex 14 blocked along the x and y direction.

Figure 2b shows the configuration reached after 200 s of simulation time. Figure 2c shows snapshots of the folding process taken every 100 s of simulation time.

It is worth remarking that, in order to exclude singularities and path bifurcations, we have verified that the rank of the kinematic-compatibility operator does not decrease during the folding process. In any case, should a bifurcation occur along the path, it is possible to switch to a different fold-angle parameter to select a particular branch.

Fig. 2
figure 2

Folding of a triangular portion of Yoshimura origami. a Initial configuration in the \(x-z\) plane. b Partially folded configuration. c Snapshot of the folding process

To keep our treatment simple, in the examples we consider, we assume that hinge lines intersect at a single point. This assumption is suitable for thick origami made using tapered panels [33], assembled as in Fig. 3, which are foldable to a certain degree. Nevertheless, our numerical procedure can also be applied to situations where hinge lines do not converge at a single point, such as in some fully-foldable origami structures [38].

Fig. 3
figure 3

Hypothesis of thickness accommodation by utilizing paired panels, with panel edges offset on the valley side. a Connection between two panels in flat and partially folded configuration. b Front and back views of a portion of a Yoshimura pattern, solid lines correspond to mountain lines, dotted lines to valley lines

4 Static analyses

In this section, we first list the internal constraint reactions for each type of constraint, and then we report our analyses regarding the Miura-ori, the Yoshimura, and the Kresling crease patterns.

4.1 Internal constraint reactions

We recall that in Sect. 3, the first-order approximation of the internal constraint equation were obtained in the form

$$\begin{aligned} {\varvec{c}}_0 + {\varvec{C}}{\varvec{\delta }}= 0 \,, \end{aligned}$$

with \({\varvec{c}}_0\) the constraint functions, \({\varvec{\delta }}\) the increment of angular and translational velocities, and \({\varvec{C}}\) an operator whose form depend on the considered constraint.

By assuming the constraints to be ideal, the vector \({\varvec{r}}= ( {\varvec{m}}_1\,, {\varvec{f}}_1\,, {\varvec{m}}_2\,, {\varvec{f}}_2)\) of the reactive internal actions at hinges, with \({\varvec{m}}_i,\,{\varvec{f}}_i\), \(i=1,2\), the internal couple and the internal force exchanged at a hinge and reduced to the origin of the reference frame, is given by

$$\begin{aligned} {\varvec{r}}= {\varvec{B}}{\varvec{\lambda }}\,, \end{aligned}$$
(34)

with \({\varvec{\lambda }}\) the vector of internal actions expressed as Lagrange multipliers and \({\varvec{B}}= {\varvec{C}}^T\). We detail below the form of the \({\varvec{B}}\) operator for each constraint type.

For a sliding hinge, from (4), we have \({\varvec{\lambda }}= (\lambda _1\,, \lambda _2\,, \lambda _3\,, \lambda _4)\) and

$$\begin{aligned} {\varvec{B}}= \frac{1}{2} \left( \begin{array}{cccc} \scriptstyle - ({\varvec{t}}_1 \times {\varvec{m}}_2 + {\varvec{t}}_2 \times {\varvec{m}}_1) &{} \scriptstyle -({\varvec{t}}_1 \times {\varvec{n}}_2 + {\varvec{t}}_2 \times {\varvec{n}}_1) &{} \scriptstyle - ( {\varvec{p}}_2 \times {\varvec{m}}_1 + {\varvec{p}}_1 \times {\varvec{m}}_2) &{} \scriptstyle - ( {\varvec{p}}_2 \times {\varvec{n}}_1 + {\varvec{p}}_1 \times {\varvec{n}}_2) \\ \scriptstyle 0 &{} \scriptstyle 0 &{} \scriptstyle -({\varvec{m}}_1+ {\varvec{m}}_2) &{} \scriptstyle - ( {\varvec{n}}_1+ {\varvec{n}}_2) \\ \scriptstyle {\varvec{t}}_1 \times {\varvec{m}}_2 + {\varvec{t}}_2 \times {\varvec{m}}_1 &{} \scriptstyle {\varvec{t}}_1 \times {\varvec{n}}_2 + {\varvec{t}}_2 \times {\varvec{n}}_1 &{} \scriptstyle {\varvec{p}}_2 \times {\varvec{m}}_1 + {\varvec{p}}_1 \times {\varvec{m}}_2 &{} \scriptstyle {\varvec{p}}_2 \times {\varvec{n}}_1 + {\varvec{p}}_1 \times {\varvec{n}}_2 \\ \scriptstyle 0 &{} \scriptstyle 0 &{} \scriptstyle {\varvec{m}}_1+ {\varvec{m}}_2 &{} \scriptstyle {\varvec{n}}_1+ {\varvec{n}}_2 \\ \end{array} \right) \,; \end{aligned}$$

for a sliding hinge as a double point slider, from (13), we have instead

$$\begin{aligned} {\varvec{B}}= \left( \begin{array}{cccc} \scriptstyle -({\varvec{p}}_2 \times {\varvec{m}}_1) &{} \scriptstyle -({\varvec{p}}_2 \times {\varvec{n}}_1) &{} \scriptstyle -({\varvec{q}}_1 \times {\varvec{m}}_2) &{} \scriptstyle -({\varvec{q}}_1 \times {\varvec{n}}_2) \\ \scriptstyle - {\varvec{m}}_1 &{} \scriptstyle - {\varvec{n}}_1 &{} \scriptstyle - {\varvec{m}}_2 &{} \scriptstyle - {\varvec{n}}_2 \\ \scriptstyle ({\varvec{p}}_2 \times {\varvec{m}}_1) &{} \scriptstyle ({\varvec{p}}_2 \times {\varvec{n}}_1) &{} \scriptstyle ({\varvec{q}}_1 \times {\varvec{m}}_2) &{} \scriptstyle ({\varvec{q}}_1 \times {\varvec{n}}_2) \\ \scriptstyle {\varvec{m}}_1 &{} \scriptstyle {\varvec{n}}_1 &{} \scriptstyle {\varvec{m}}_2 &{} \scriptstyle {\varvec{n}}_2 \end{array} \right) \,. \end{aligned}$$

For a door hinge, from (6), we have \({\varvec{\lambda }}= (\lambda _1\,, \lambda _2\,, {\varvec{\lambda }}_3)\) and

$$\begin{aligned} {\varvec{B}}= \frac{1}{2} \left( \begin{array}{cccc} \scriptstyle - ({\varvec{t}}_1 \times {\varvec{m}}_2 + {\varvec{t}}_2 \times {\varvec{m}}_1) &{} \scriptstyle - ({\varvec{t}}_1 \times {\varvec{n}}_2 + {\varvec{t}}_2 \times {\varvec{n}}_1) &{} \scriptstyle -\,*{\varvec{p}}_1 \\ \scriptstyle 0 &{} \scriptstyle 0 &{}\scriptstyle -{\varvec{I}}\\ \scriptstyle {\varvec{t}}_1 \times {\varvec{m}}_2 + {\varvec{t}}_2 \times {\varvec{m}}_1 &{} \scriptstyle {\varvec{t}}_1 \times {\varvec{n}}_2 + {\varvec{t}}_2 \times {\varvec{n}}_1 &{} \scriptstyle *{\varvec{p}}_2 \\ \scriptstyle 0 &{} \scriptstyle 0 &{}\scriptstyle {\varvec{I}}\\ \end{array} \right) \,; \end{aligned}$$

for a door hinge as a point slider and a spherical hinge, from (15), we have instead

$$\begin{aligned} {\varvec{B}}= \left( \begin{array}{cccc} \scriptstyle -({\varvec{q}}_1 \times {\varvec{m}}_2) &{} \scriptstyle -({\varvec{q}}_1 \times {\varvec{n}}_2) &{} \scriptstyle *{\varvec{p}}_1 \\ \scriptstyle - {\varvec{m}}_2 &{} \scriptstyle - {\varvec{n}}_2 &{} \scriptstyle {\varvec{I}}\\ \scriptstyle ({\varvec{q}}_1 \times {\varvec{m}}_2) &{} \scriptstyle ({\varvec{q}}_1 \times {\varvec{n}}_2) &{} \scriptstyle -\,*{\varvec{p}}_2 \\ \scriptstyle {\varvec{m}}_2 &{} \scriptstyle {\varvec{n}}_2 &{} \scriptstyle -{\varvec{I}}\\ \end{array} \right) \,. \end{aligned}$$

The equilibrium equations of the whole origami structure are obtained by imposing, for each body, the resultant of all the internal constraint reaction and the external loads applied to it, and the resultant moment of the same with respect to a fixed pole, to be null.

4.2 Examples

In order to report the results of the static analyses, we reduce the constraints reactions to the mid points of the corresponding edges shared by adjacent panels, and project them along the directions of a right-handed local frame \(\{{\varvec{n}},{\varvec{t}},{\varvec{m}}\}\) attached to one of the two panels, with \({\varvec{n}}\) the outward normal to the edge in the panel plane, \({\varvec{t}}\) the tangent to the edge, and \({\varvec{m}}\) the normal to the panel. In this way, the internal force and couple applied to a panel by the adjacent one are described by the triplets \((N, T_P,T_O)\) and \((M_T,M_P,M_O)\), respectively, with N the normal force, \(T_P\) the parallel shear force, \(T_O\) the orthogonal shear force, \(M_T\) the twisting moment, \(M_P\) the parallel moment, and \(M_O\) the orthogonal moment, as illustrated in Fig. 4. The parallel moment is always null, while the parallel shear force is null for sliding hinges.

Fig. 4
figure 4

Two panels connected by a door hinge a and by a sliding hinge b. Representations of the internal actions applied to a panel edge. The parallel moment \(M_P\) is always null; the parallel shear force \(T_P\) is null for sliding hinges

We introduce our gallery of examples by describing the simple case of a panel ring formed by four rectangular panels connected by four door hinges, which is shown in Fig. 5a. The kinematics of this assembly is analogous to that of a planar four-bar linkage and therefore there is just one internal mechanisms, \(M=1\). Since there are no internal vertices, the number of self-stress states is \(S=3\), according to both the bar-framework model and the panel-hinge model. In addition, it is easy to check by straightforward equilibrium calculations that the internal actions N and \(T_O\) must be null for all panel hinges. Then, by taking as parameters the parallel shear force, the twisting moment, and the orthogonal moment at one hinge, one can compute explicitly the internal actions for the three self-stress states, which are represented in Fig. 5b–d. It is easy to check that panel rings with more than four panels, \(P>4\), always have \(S=3\) and \(M=P-3\).

It is worth noticing that by replacing door hinges by sliding hinges it is only possible to eliminate the self-stress state with nonzero parallel shear T (Fig. 5b). The introduction of more than one sliding hinge would generate additional internal mechanisms without affecting the other two independent self-stress states.

Fig. 5
figure 5

A four-panel origami ring a and a representation of its three self-stress states b, c, d

4.2.1 Miura-ori patches

Similar to the case of the four-panel ring, the single-vertex Miura-ori origami shown in Fig. 6(left) has \(M=1\) and \(S_{PH}=3\), when all the four hinges are door hinges. However, by performing numerical calculations with the proposed formulation, we checked that at non-singular configurations the replacement of any three door hinges with three sliding hinges makes the degree of static indeterminacy equal to zero.

Fig. 6
figure 6

Left: a single-vertex Miura-ori origami with null degree of static indeterminacy. There are three sliding hinges and one door hinge (dashed line). Right: sequential assembly of isostatic Miura-ori origami. There is just a single door hinge (dashed line), all the other hinges are sliding hinges. At each step, two panels and three sliding hinges are added

Fig. 7
figure 7

An isostatic Miura-ori cantilever loaded at the tip. Flat configuration before folding a. Cantilevered structure b

Regular Miura-ori origami structures always possess just one internal mechanisms, no matter the number of panels they are composed of. Therefore, the degree of static indeterminacy always increases with the size of the Miura-ori patch. We found in our analyses that that there is a class of Miura-ori patches whose degree of static indeterminacy can be made equal to zero. The elements of this class can be constructed sequentially, by starting from a single-vertex Miura-ori analogous to the one just described, and by iteratively adding two panels and three sliding hinges, as indicated in Fig. 6(right).

We now give an example of calculation of internal actions for the case of the cantilevered Miura-ori beam shown in Fig. 7. Each panel has the shape of a right trapezoid with height of 2 units, and bases of 1 and 2 units. The configuration in Fig. 7b is obtained by folding the initially flat configuration in Fig. 7a so that the angle between the normals to panels 2 and 3 is equal to \(27.4^{\circ }\). Table 1 in the Appendix reports the corresponding vertex coordinates. In the configuration of Fig. 7b, two corner vertices on the short side of the assembly are pinned to the ground , and the middle vertex on the same side is constrained not to move along the longitudinal direction. At the other end of the assembly, a vertical point loads of unit magnitude is applied. The assembly has one door hinge (dashed line in Fig. 7), and the remaining hinges are sliding hinges. The resulting internal and external constraint reactions are shown in Tables 2 and  3 in the Appendix, respectively.

4.2.2 Yoshimura wedges

We pass now to the Yoshimura origami structure described in Sect. 3.4.3. We consider the configuration shown in Fig. 2b and reassign vertex constraints as follows. All base vertices, those on the plane \(z=0\), are fixed in the y and z direction, with vertex 6 constrained also in the x direction. We checked that with this set of vertex constraints, there are no internal mechanisms, \(M=0\). This origami structure has 6 internal vertices. When all hinges are door hinges, the degree of static indeterminacy is \(S_{PH} = 3 V_i = 18\). We verified that by replacing three door hinges at each internal vertex with three sliding hinges (cf. Fig. 8) a isostatic structure is obtained. We considered the case of a vertical unit load applied to the tip of the structure, as shown in Fig. 8. Table 4 in the Appendix lists the nodal coordinates of the analyzed configuration, while Tables 5 and  6 report the internal and external reactions, respectively.

Fig. 8
figure 8

A Yoshimura origami wedge shaped as a cantilevered arch loaded at the tip. Door hinges are denoted by dashed white lines, the rest of them are sliding hinges

We checked that it is possible to obtain similar isostatic Yoshimura wedges with any number of base elements in an anologous way by constraining all base vertices in the transversal (y) and vertical (z) directions, with one of them constrained also in the folding direction (x), and by replacing three door hinges with sliding hinges at each internal vertex.

4.2.3 Kresling columns

We now pass to consider multimodular Kresling columns with triangular base. Each module of a Kresling column is composed by \(P=6\) triangular panels connected by \(H=6\) door hinges in a three-fold cyclic-symmetric configuration, as shown in Fig. 9. The bottom and top horizontal bases of a module appear rotated relatively to each other by a certain twist angle \(\theta \in (\pi /3,\pi )\). We remark that given the panels of a Kresling module, it is possible to assemble them into two distinct configurations with opposite handedness, mirror image of each other.

A one-module assembly has no internal vertices, and we found that it is always isostatic (\(M=0,\,S=0\)), except for values of the twist angle equal to \(\frac{\pi }{6}\), or to \(-\frac{5}{6}\pi\). These angles determine two mirror-symmetric configurations, both of which are singular and admit one internal mechanism and one self-stress state (\(M=1,\,S=1\)). Figure 9a shows the configuration of a Kresling module with height 20 units, bases inscribed in a circle with diameter of 20 units, and twist angle \(\theta =\frac{\pi }{6}\). The corresponding vertex coordinates are listed in Table 7 in the Appendix. We computed the values of the internal actions in the self-stress state reported in Table 8. Figure 9b shows a (isostatic) configuration with same height and base dimensions, and \(\theta =\frac{\pi }{9}\), simply supported at the bottom base, and subjected to three vertical unit loads applied to the top vertices. Table 9 in the Appendix lists the vertex coordinates, while Tables 10 and  11 reports the internal and external reactions, respectively.

A two-module column obtained by juxtaposition of two modules with same dimensions and opposite handedness is shown in Figure 10 (a). In addition to the hinges belonging to each individual module, three more hinges realize the junction between the two modules. This origami structure possesses three internal vertices and therefore has \(S_{PH}=9\) degrees of static indeterminacy in non-singular configurations, while \(M=0\). We checked that by realizing all hinges as sliding hinges, except for those belonging to one of the two modules, realized as door hinges, the assembly is isostatic. Isostatic multimodular Kresling columns can be obtained in a similar way. Figure 10b shows the case of a three-module tower. Tables 12 and 13 in the Appendix show the internal actions of the simply supported structures in Fig. 10a and b, respectively, resulting from a vertical loading by three unit forces on the top vertices.

Fig. 9
figure 9

Two different versions of a Kresling module with triangular base. All hinges are door hinges in both (dashed white lines). Configuration a is singular with one infinitesimal mechanism and one self-stress state; configuration b is isostatic. Configuration b is simply supported on the ground, and subjected to vertical unit forces

Fig. 10
figure 10

Two isostatic Kresling towers with two a and three b modules. Six hinges on one of the modules are door hinges (dashed white lines)

We remark that polygonal-base columns of this type were found to exhibit multistability properties [39, 40], and to share the geometry of assemblies of tensegrity and tensegry-like prisms [41, 42]. We expect that, in analogy with tensegrity prisms, Kresling modules in singular configuration realize a first-order infinitesimal mechanism [43], and that their self-stress state, depending on its sign, may impart positive or negative stiffness to the mechanism.

5 Conclusions

We presented a design strategy aimed at obtaining isostatic thick origami structures by making use of sliding hinges to replace conventional hinges. This strategy can effectively reduce the degree of static indeterminacy, and in many cases it can successfully make certain types of origami structures isostatic. We provided exact and linearized kinematic constraint equations and a numerical procedure to simulate the folding process by controlling the relative angular velocities at some creases of the origami. Equilibrium equations relating the external loads to the internal actions exchanged by adjacent panels were obtained by duality. We analyzed a series of noteworthy examples of isostatic thick origami structures. We showed that Miura-ori crease patterns in a certain class admit an isostatic realization. We found that Yoshimura wedges can always be made isostatic. Finally, we demonstrated isostatic multimodular Kresling origami, and determined the self-stress of a Kresling module in its singular configuration. The present method can be employed to discover, investigate, and design other types of isostatic thick origami structures and aid in the determination of self-stress states when this is not possible.