Structure and kinematics of the mechanism
Since applications of multibody methods to robotics have always been interesting to us [7, 9, 22], a mobile robot was a natural candidate to serve as an example in this paper. The constraint reaction solvability method was utilized to analyze a simplified model of a four-wheel mobile robot connected with a one-wheel trolley (Fig. 1). The system is modeled as a planar mechanism, in which wheels are replaced by semicircular knife edges. Edges W
1 and W
2 can change their inclinations with respect to the robot platform 1, whereas edges W
3 and W
4 are rigidly attached to the platform. The linkage consisting of bodies 2, 3, 4, 5, and 6, driven in joint H, is used to rotate edges W
1 and W
2 in a synchronized manner. Due to appropriately chosen linkage dimensions, it is possible to change the wheel inclination by ±90°. The edge W
5 is rigidly attached to the trolley platform 7. The trolley is connected to the robot via revolute joint A.
A global inertial reference frame π
0=x
0
y
0 is established on the ground 0, and body-fixed local reference frames π
i
=x
i
y
i
are embedded in the moving bodies (Fig. 1). The absolute Cartesian coordinates that describe the mechanism form vector q:
$$ \mathbf{q} = \left [ \begin{array}{c@{\quad }c@{\quad }c@{\quad }c@{\quad }c@{\quad }c@{\quad }c} \mathbf{q}_{1}^{T} & \mathbf{q}_{2}^{T} & \mathbf{q}_{3}^{T} & \mathbf{q}_{4}^{T} & \mathbf{q}_{5}^{T} & \mathbf{q}_{6}^{T} & \mathbf{q}_{7}^{T} \end{array} \right ]^{T},\qquad \mathbf{q}_{i} = \left [ \begin{array}{c@{\quad }c} \mathbf{r}_{i}^{T} & \varphi_{i} \end{array} \right ]^{T}, $$
(28)
where \(\mathbf{r}_{i} = [ \begin{array}{c@{\ }c} x_{i} & y_{i} \\ \end{array} ]^{T}\) represents the position of the local reference frame π
i
origin with respect to the global frame π
0, and φ
i
is the angle of the local frame π
i
rotation with respect to the global frame π
0.
Seven revolute joints (A, B, C, D, E, F, G) and one translational joint (H) are described by holonomic (geometric) constraints. Appropriate equations are presented in the Appendix. Driving constraints (represented by holonomic and rheonomic constraints, described in the Appendix) and are imposed on relative motion in joint H. The time history of the displacement d(t) of body 6 with respect to body 1 is presented in Fig. 2. The steering is chosen so that the robot, which initially is moving along x
0 axis, firstly turns right, then travels forward, and finally turns left and starts to move along a line parallel to x
0.
The holonomic constraints imposed on the modeled multibody system can be written jointly as a set of m=17 nonlinear algebraic equations:
$$ \boldsymbol{\varPhi} ( \mathbf{q},t ) = \left [ \begin{array}{c@{\quad }c@{\quad }c@{\quad }c@{\quad }c@{\quad }c@{\quad }c@{\quad }c@{\quad }c} \boldsymbol{\varPhi}_{A}^{r^T} & \boldsymbol{\varPhi}_{B}^{r^T} & \boldsymbol{\varPhi}_{C}^{r^T} & \boldsymbol{\varPhi}_{D}^{r^T} & \boldsymbol{\varPhi}_{E}^{r^T} & \boldsymbol{\varPhi}_{F}^{r^T} & \boldsymbol{\varPhi}_{G}^{r^T} & \boldsymbol{\varPhi}_{H}^{t^T} & \varPhi_{H}^{d} \end{array} \right ]^{T} = \mathbf{0}_{17 \times 1}. $$
(29)
Formulas for the constraint Jacobian matrix Φ
q
and for vector Φ
t
(see Eq. (2)) as well as for Γ vector (see Eq. (9)) are presented in the Appendix.
The ground-wheel interactions are represented by knife-edge Pfaffian constraints. The knife-edge constraint equation can be derived by requiring that linear velocity at the point of contact is parallel to the edge. The following scalar equation, linear in velocities, is obtained:
$$ \mathbf{n}_{K}^{(0)^T}\mathbf{v}_{K}^{(0)} = \bigl( \mathbf{R}_{i}\mathbf{n}_{K}^{(i)} \bigr)^{T} \bigl(\dot{\mathbf{r}}_{i} + \boldsymbol{\varOmega} \mathbf{R}_{i}\mathbf{s}_{K}^{(i)}\dot{ \varphi}_{i} \bigr) = \left [ \begin{array}{c@{\quad }c} ( \mathbf{R}_{i}\mathbf{n}_{K}^{(i)})^{T} & \mathbf{n}_{K}^{(i)^T}\boldsymbol{\varOmega} \mathbf{s}_{K}^{(i)} \end{array} \right ]\left [ \begin{array}{c} \dot{\mathbf{r}}_{i} \\ \dot{\varphi}_{i} \end{array} \right ] = \boldsymbol{\varPsi}^{K}\dot{ \mathbf{q}}_{i} = 0, $$
(30)
where \(\mathbf{v}_{K}^{(0)}\) is the linear velocity at contact point K, and \(\mathbf{n}_{K}^{(0)}\) is a unit vector perpendicular to the allowed direction of motion (the components of both vectors are expressed in the global frame π
0). The other symbols (\(i, \boldsymbol{\varOmega},\mathbf{R}_{i},\mathbf{s}_{K}^{(i)}\)) are explained in the Appendix (note that \(\mathbf{R}_{i}^{T}\boldsymbol{\varOmega}\mathbf{R}_{i} = \boldsymbol{\varOmega}\)). The components of vectors are presented in Table 1 (dimensions of the robot are presented in the Appendix).
Table 1 Geometric parameters of knife-edge constraints
In the case of knife-edge constraint defined by Eq. (30), Γ is a scalar given by the following formula:
$$ \varGamma^{K} = - \bigl( \boldsymbol{\varOmega} \mathbf{R}_{i}\mathbf{n}_{K}^{(i)} \bigr)^{T} \dot{\mathbf{r}}_{i}\dot{\varphi}_{i}. $$
(31)
Constraint reactions solvability analysis
Detailed formulas for constraint Jacobian entries are provided in the Appendix. There are m =17 holonomic constraint equations and n=21 coordinates, thus the Jacobian matrix Φ
q
has 17 rows and 21 columns.
The nonholonomic constraints are present due to h=5 knife-edge kinematic pairs, thus Eq. (30) can be used to calculate the nonzero entries of the Pfaffian constraints matrix for the whole system:
$$ \boldsymbol{\varPsi} = \left [ \begin{array}{c@{\quad }c@{\quad }c@{\quad }c@{\quad }c@{\quad }c@{\quad }c} \mathbf{0} & \boldsymbol{\varPsi}^{B} & \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} \\ \mathbf{0} & \mathbf{0} & \boldsymbol{\varPsi}^{C} & \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} \\ \boldsymbol{\varPsi}^{L} & \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} \\ \boldsymbol{\varPsi}^{M} & \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} \\ \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} & \boldsymbol{\varPsi}^{N} \\ \end{array} \right ]_{5 \times 21}. $$
(32)
Appending the Pfaffian constraints matrix to the Jacobian matrix gives the constraint matrix C:
$$ \mathbf{C} = \left [ \begin{array}{c} \boldsymbol{\varPhi}_{\mathbf{q}} \\ \boldsymbol{\varPsi} \end{array} \right ]_{22 \times 21}. $$
(33)
Let q
0 denote the vector of coordinates representing the mechanism configuration shown in Fig. 1:
where a=0.05 (m), d
x
=c
x
/2, d
y
=c
y
/2−b
y
, and quantities c
x
, c
y
, b
y
are defined in the Appendix.
It can be calculated that
$$ \mathrm{rank}\bigl( \boldsymbol{\varPhi}_{\mathbf{q}}\bigl( \mathbf{q}^{0}\bigr) \bigr) = 17,\qquad \mathrm{rank}\bigl( \boldsymbol{\varPsi} \bigl(\mathbf{q}^{0}\bigr) \bigr) = 4,\qquad r = \mathrm{rank}\bigl( \mathbf{C}\bigl(\mathbf{q}^{0}\bigr) \bigr) = 20 < 17 + 4. $$
(35)
Matrix Φ
q
is a full-rank matrix, whereas Ψ is rank-deficient. Obviously, the constraint matrix C is rank-deficient as well. The same results can be obtained for any other nonsingular configuration q of the mechanism. This indicates that the considered multibody system is overconstrained. The degree of redundancy (see Eq. (7)) can be calculated as
$$ p = m + h - r = 17 + 5 - 20 = 2. $$
(36)
Dependency of constraints was detected, thus the constraint reaction solvability analysis was performed prior to dynamic simulations. Firstly, QR decomposition of the constraint matrix C was calculated (see Eq. (21)). Then matrix C was divided into fourteen submatrices, corresponding to seven revolute joints, one translational joint, one driving constraint equation, and five knife-edge constraints, respectively. Similarly, matrix Q was divided into fourteen submatrices:
$$ \mathbf{C}_{22 \times 21} = \left [ \begin{array}{c} {[} \mathbf{C}_{\mathrm{rev}A} ]_{2 \times 21} \\ \vdots\\ {[} \mathbf{C}_{\mathrm{rev}G} ]_{2 \times 21} \\ {[} \mathbf{C}_{\mathrm{tra}H} ]_{2 \times 21} \\ {[} \mathbf{C}_{\mathrm{drvng}} ]_{1 \times 21} \\ {[} \mathbf{C}_{\mathrm{ed}W_{1}} ]_{1 \times 18} \\ \vdots\\ {[} \mathbf{C}_{\mathrm{ed}W_{5}} ]_{1 \times 21} \\ \end{array} \right ],\qquad \mathbf{Q}_{22 \times 22} = \left [ \begin{array}{c} {[} \mathbf{Q}_{\mathrm{rev}A} ]_{2 \times 22} \\ \vdots\\ {[} \mathbf{Q}_{\mathrm{rev}G} ]_{2 \times 22} \\ {[} \mathbf{Q}_{\mathrm{tra}H} ]_{2 \times 22} \\ {[} \mathbf{Q}_{\mathrm{drvng}} ]_{1 \times 22} \\ {[} \mathbf{Q}_{\mathrm{ed}W_{1}} ]_{1 \times 22} \\ \vdots\\ {[} \mathbf{Q}_{\mathrm{ed}W_{5}} ]_{1 \times 22} \\ \end{array} \right ]. $$
(37)
Next, Eq. (27) was utilized to calculate eleven matrices B
X
(note that degree of redundancy p=2, thus only two last columns of Q
X
matrices were used to build corresponding \(\mathbf{Q}_{X}^{\mathrm{col}}\) matrices):
Matrices corresponding to knife-edge kinematic pairs W
1–W
4 as well as matrices corresponding to revolute joints B and C have nonzero elements, thus constraint reactions in these pairs cannot be uniquely determined using the rigid body model. Matrices corresponding to revolute joints A, D, E, F, and G, to translational joint H, and to the driving constraint equation consist of zeros only, thus related reactions can be uniquely determined. This concludes the constraint reactions solvability analysis.
Simulated motion of the mechanism
Masses of mechanism bodies and their central moments of inertia are presented in Table 2. In each moving part, the center of its mass coincides with the local reference frame origin.
Table 2 Masses and central moments of inertia
Equations of motion for the investigated mechanism can be written in the form of Eq. (11), with no external forces applied to the system (note that the edge-ground forces are modeled as constraint reactions), with M
21×21=diag(m
1,m
1,J
1,…,m
7,m
7,J
7), and with terms C and Γ discussed previously.
The mechanism is overconstrained, therefore, the leading matrix in the equations of motion is singular. The constraints elimination method (see Sect. 3.1) was chosen to handle the redundancy problem. Redundant constraints may be selected in many ways, thus several variants of dynamic simulations were carried out. In each simulation, the equations of motion were integrated (the fourth-fifth order Runge–Kutta formula [6], implemented in MATLAB® as ode45 function, was used) with the initial configuration given by q
0 (see Eq. (34)) and initial velocity \(\dot{\mathbf{q}}^{0}\):
Diverse joint reactions were calculated for different selections of redundant constraints, however, in each case the same mechanism motion (to within numerical precision) was obtained. This illustrates that—as it was discussed in Sect. 2.2—in the case of an overconstrained mechanism with frictionless kinematic pairs, the individual reactions are non-unique but their resultant effect (when motion is concerned) is unique.
The trajectory of robot platform center of mass as well as the trajectories of knife-edge contact points, observed during simulations, are presented in Fig. 3.
Calculated constraint reactions
Three variants (out of several other possible) of redundant equations elimination were studied and presented here. Since the degree of redundancy equals two, in each possible variant two constraint equations need to be eliminated.
In the first variant, scalar constraint equations no. 6 and 21 were eliminated from the set of constraints at velocity level, i.e., from Eq. (4). Appropriate elimination of matrix C (see Eq. (33)) rows no. 6 and 21, as well as vector Γ elements no. 6 and 21, was performed. Consequently, the Lagrange multipliers associated with the neglected equations were canceled, and a reduced set of equations of motion (Eq. (11)), with nonsingular leading matrix, was obtained. Note that the eliminated constraint equation no. 6 represents revolute joint C, thus—as a result of the elimination process—the y component of joint C reaction was arbitrarily set to zero. Constraint equation no. 21 represents knife-edge kinematic pair W
4, thus reaction in this pair was set to zero as well.
In the second variant of redundant equations elimination, constraints no. 18 and 21, representing knife-edges W
1 and W
4, respectively, were eliminated. In the third variant, constraint equations no. 19 and 21, associated with knife-edges W
2 and W
4, respectively, were deleted. Again, appropriate reactions were set to zero due to purely mathematical operations, not supported by the physics of the system.
For all three variants of redundant constraints elimination, dynamic simulations were carried out and constraint reactions were observed (as it was mentioned earlier, simulated motion was the same in all cases). Reactions observed in joints A, D, E, F, G, H, the steering force associated with driving constraints, and knife-edge W
5 reaction had the same time histories in all simulations, whereas reactions in joints B and C, as well as knife-edges W
1–W
4 reactions, were different in each case. The results of simulations corroborate correctness of constraint reactions solvability analysis performed in Sect. 4.2.
Global x and y components of revolute joint B reaction force and perpendicular to the edge component of the knife-edge W
3 reaction are presented in Fig. 4 as examples of nonunique reactions. In the same Fig. 4, components of revolute joint D reaction force and the knife-edge W
5 reaction are shown as examples of uniquely solvable reactions.
The alternatively eliminated constraint equations are associated with kinematic pairs C, W
1, W
2, and W
4. It is worth noting that in each case elimination affected, among others, reactions in pairs B and W
3. This result shows that the process of elimination influences not only reactions of neglected constraints but also reactions of constraints remaining in the mathematical model.
It should be mentioned that the redundant constraints elimination method can be seen as a substitution of the original mechanism by a kinematically equivalent mechanism without redundant constraints. The problem is that—when reactions are concerned—there is no equivalent model without redundant constraints. Elimination of a constraint results in setting its reaction to zero, which is unlikely to be observed in the original mechanism.