Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

1 Introduction

This paper presents a systematic coordinate-free approach to formulate the no-slip condition for wheeled robot models. The no-slip condition ensures that the contact point between a wheel and a ground has zero velocity. To calculate the velocity of the contact point in a coordinate-free fashion, the wheel displacement and rotations are defined as reference frame isomorphisms over time. This provides constraint equations that can be calculated in any chosen coordinate system in the state manifold.

Based on this general geometric interpretation, explicit formulas for nonholonomic constraints are derived. The final calculations of the constraint equations are realized in Maxima, a computer algebra system. The general no-slip condition formulation is validated via the direct derivation of nonholonomic constraint equations for well-known robotic systems. Presented calculations are symbolically realized in the computer algebra system Maxima [9]. LaTeX formulas are automatically generated.

The novelty of the approach relies in the use of the symmetric properties of the wheel geometry. The final nonholonomic equations which are obtained are equivalent to the classical well-known equations [1, 2, 48]. However, they provide a considerable improvement in symbolical and numerical calculations for complex system models.

Nonholonomic constraint equations are the basis for the derivation of kinematic control models for wheeled robots and car-like vehicles. Most of these constraints are related to the no-slip condition of the contact point between wheels and the ground. The constraint equations are formulated using selected reference frames and coordinate systems. For multi-wheeled robots or wheeled vehicles of complex designs, the formulation and validation of the resulting constraint equations are not automated and it leads to many mistakes, and it is difficult to verify and debug the final model formulation; additionally the transformations between a global and a wheel reference frames are not shown explicitly; see, e.g., [1, 2, 48]. In the case of linearization of the nonholonomic constraints, they require transformations [10]. Also, there are vehicle models derived automatically by computer codes; see, e.g., [11] and references therein. In [11] the code AutoSim was used to generate a variety of linear and nonlinear bicycle models in symbolic forms. Yet, they are not standard in the kinematic model derivations. The validation of models like in [11] requires the verification of the mapping between handmade formulas and computer model descriptions. In the absence of systematic tools for developing the constraint equations, there exist many models derived under special assumptions that make the constraint formulation viable. This approach, in turn, leads to models of the same mechanical systems that are difficult to compare and adopt for other applications.

A coordinate-free formulation of nonholonomic constraints presented in the paper does not require any special assumptions about a mechanical system model and the resulting constraint equations are easily verifiable and repeatable by other users.

2 Notation

It is assumed that the center of the wheel coincides with the origin of the wheel reference frame. The constant r is the wheel radius. Let k be the global reference frame and K the wheel reference frame. The wheel reference frame motion is defined in terms of a translation:

$$\displaystyle{ T: k \rightarrow k,\quad T(a):= a +\varrho \quad \varrho \in \mathbb{R}^{3} }$$
(1)

and a rotation B ∈ SO(3)—the 3D rotation group:

$$\displaystyle{ B: K \rightarrow k. }$$
(2)

Rotation transformations are defined using the base

$$\displaystyle\begin{array}{rcl} \varOmega _{x}(a):= \left (\begin{array}{*{10}c} 1&0& 0\\ 0 &\cos a &-\sin a \\ 0&\sin a& \cos a\\ \end{array} \right ),\varOmega _{y}(a):= \left (\begin{array}{*{10}c} \cos a&0&-\sin a\\ 0 &1 & 0 \\ \sin a&0& \cos a\\ \end{array} \right ),\varOmega _{z}(a):= \left (\begin{array}{*{10}c} \cos a&-\sin a&0\\ \sin a & \cos a &0 \\ 0& 0 &1\\ \end{array} \right ).& & {}\\ \end{array}$$

The translation transformation T is uniquely defined by the displacement vector \(\varrho \in \mathbb{R}^{3}\). We use this relation to identify the space of translations in \(\mathbb{R}^{3}\).

Vectors in the global reference frame k are denoted by lower case letters and the corresponding vectors in the wheel reference frame K are denoted by upper case letters. This means that for A ∈ K the corresponding a ∈ k is

$$\displaystyle{a = B(A).}$$

Displacement D = TB is defined as

$$\displaystyle{ D: K \rightarrow k,\quad D(\cdot ):= T(B(\cdot )). }$$
(3)

For a mechanical system equipped with a wheel, let a state manifold be defined by Φ and a state variable q ∈ Φ. The wheel reference frame location will be specified with respect to the system state, i.e.,

$$\displaystyle{ B:\varPhi \rightarrow SO(3),\quad T:\varPhi \rightarrow \mathbb{R}^{3}. }$$
(4)

For velocity calculation the following notations are used:

$$\displaystyle{\dot{q}:= \frac{d} {dt}q,}$$
$$\displaystyle{\dot{B}(q,\dot{q}):= \frac{d} {dt}B(q) = \frac{\partial } {\partial q}B(q) \frac{d} {dt}q,}$$
$$\displaystyle{\dot{\varrho }(q,\dot{q}):= \frac{d} {dt}\varrho (q) = \frac{\partial } {\partial q}\varrho (q) \frac{d} {dt}q.}$$

3 Geometric Formulation of the No-Slip Condition

The no-slip condition states that a contact point between a wheel and a ground has zero velocity. In this section a detailed formulation of the no-slip condition is presented. It is based upon the geometric transformation between the ground and the wheel reference frames.

3.1 Contact Point Location

Define a contact point between the wheel and the ground as the lowest located point with respect to the ground normal direction.

The contact point definition uniquely identifies a point on the wheel, and it is independent from the fact that the wheel center location must match specific conditions to ensure that the contact point in global coordinates is located in the ground plane. Thanks to this property, the contact point for any system state q is well defined and depends only on the rotation B(q).

Following the upper/lower case letter convention described in Sect. 2, define vectors (see Fig. 1):

  • c, C is the vector pointing to the contact point position from the wheel center.

  • p, P is the normal vector to the ground plane.

  • n, N is the normal vector to the wheel plane.

Fig. 1
figure 1

The ground normal vector P and the wheel normal vector N in wheel reference frame

Figure 1 shows the wheel normal vector N and the ground normal vector P in the wheel reference frame. The following properties uniquely identify the contact point vector C:

  • It is located in the wheel plane: C ⋅ N = 0.

  • It is aligned with N, P: C ∈ span{P, N}.

  • It is directed to the ground: C ⋅ P < 0.

  • It is located on the wheel circumference: \(\|C\| = r\).

There is a singular case when the wheel lies on the floor, P = N. The presented equations are not well defined in this case. In practice, such positions are strongly unfortunate and should be avoided. This is why we do not discuss them.

The first approach to find C may be to project P on the place \(\{N\}^{\perp }\) and normalize it using the wheel radius r

$$\displaystyle{C = -r\frac{P - (P \cdot N)N} {\|P - (P \cdot N)N\|}.}$$

This solution is correct, but the term \(\|P - (P \cdot N)N\|\) does not behave well during the equation simplification.

The best approach seems to be the use of the following equation:

$$\displaystyle{ C = rN \times (\frac{N \times P} {\|N \times P\|}). }$$
(5)

Equation (5) is a direct consequence of the contact point geometric properties. The intermedium vector \(X:= \frac{N\times P} {\|N\times P\|}\) is a unitary vector perpendicular to N and P, located in the wheel plane. The contact point is then perpendicular to N and X simultaneously. As N and X are unitary and perpendicular, we obtain equation (5).

Equation (5) exhibits better behavior during its symbolic simplifications. It is due to the fact that in the ground reference frame the vector \(p = u_{z}:= (0,0,1)^{T}\) and, in the wheel reference frame, the vector \(N = u_{y}:= (0,1,0)^{T}\). Then, the term \(\|N \times P\|\) is much simpler than \(\|P - (P \cdot N)N\|\). Note that vectors P and N in the wheel reference frame are given by \(P = B^{-1}u_{z}\) and N = u y . Then, equation (5) expands to

$$\displaystyle{ C = ru_{y} \times (\frac{u_{y} \times B^{-1}u_{z}} {\|u_{y} \times B^{-1}u_{z}\|}). }$$
(6)

Finally, note that for any vector \(v:= (v_{x},v_{y},v_{z})^{T}\) the calculation

$$\displaystyle{u_{y} \times v = (v_{z},0,-v_{x})^{T}}$$

is just a simple permutation and a sign change. This makes equation (6) easy to use.

Note that equation (6) is independent of any state manifold coordinate selection. It is then the general formulation of the vector C pointing to the contact point position.

3.2 Velocity of Wheel Fixed Points

In a given position of a mechanical system, the contact point is a fixed point in the wheel reference frame. It means that the contact point position depends only on the wheel position and not on velocity.

Location of the contact point in the global reference frame is given by

$$\displaystyle{ p(q):= D(C(q)) = B(q)C(q) +\varrho (q). }$$
(7)

Then, the velocity in the global frame is

$$\displaystyle{ \dot{p}(q,\dot{q}) =\dot{\varrho } (q,\dot{q}) +\dot{ B}(q,\dot{q})C(q), }$$
(8)

where the term \(B(q)\dot{C}(q,\dot{q})\) is not present as the vector C points to the instantaneous contact point between the wheel and the ground.

Expressing the contact point position in terms of the global reference frame \(C = B^{-1}(c)\), the contact point velocity vector can be written as

$$\displaystyle{ \dot{p}(q,\dot{q}) =\dot{\varrho } (q,\dot{q}) +\dot{ B}(q,\dot{q})B^{-1}(c(q)). }$$
(9)

This leads to the well-known formula

$$\displaystyle{ \dot{p}(q,\dot{q}) = v_{o}(q,\dot{q}) +\omega (q,\dot{q}) \times c(q), }$$
(10)

where \(v_{o} =\dot{\varrho }\) is the linear velocity of the wheel reference frame, operator \(\omega (q,\dot{q}) \times (\cdot ):=\dot{ B}(q,\dot{q})B^{-1}(\cdot )\) is the angular velocity of the wheel reference frame, and c(q) = B(q)C(q) is the position of the contact point with respect to the global reference frame orientation.

Then, the formula (10) and the no-slip condition lead to the nonholonomic constraint formulation as

$$\displaystyle{ 0 = v_{o}(q,\dot{q}) +\omega (q,\dot{q}) \times c(q). }$$
(11)

Equation (11) is the desired nonholonomic constraint equation. Note that it is not related to any coordinate selection for the manifold Φ.

3.3 Final Formulation of the No-Slip Condition

Using the constraint equation (11) and the contact point location equation (6), we can obtain a general formula for nonholonomic constraint equations for wheeled vehicle models. It is of the form

$$\displaystyle{ 0 = v_{o}(q,\dot{q}) +\dot{ B}(q,\dot{q})B^{-1}(q)\left (rB(q)(u_{ y} \times (\frac{u_{y} \times B^{-1}(q)u_{z}} {\|u_{y} \times B^{-1}(q)u_{z}\|}))\right ). }$$
(12)

It can be simplified to

$$\displaystyle{ 0 = v_{o}(q,\dot{q}) + r\dot{B}(q,\dot{q})(u_{y} \times (\frac{u_{y} \times B^{-1}(q)u_{z}} {\|u_{y} \times B^{-1}(q)u_{z}\|})). }$$
(13)

Since B(q) ∈ SO(3), the calculation of B −1(q) is straightforward; in the matrix representation \(B^{-1}(q) = B^{T}(q)\).

Equation (13) is expressed in terms of the rotation B(q) ∈ SO(3). It is independent of any coordinate selections, and it does not need any additional assumptions about the model adopted for a mechanical system. Equation (13) presents the no-slip condition and it is the nonholonomic constraint for the wheel.

4 Examples—No-Slip Condition Validation for Robotic Models

Using equation (13) nonholonomic constraints can be calculated for models of well-known wheeled vehicles. The vertical and falling disk constraints calculated using (13) match the equations in [3]. Note that to match the signs in the final constraint equations as in [3], counterclockwise rotations have been adopted. Models presented in [3] do not define the global to the wheel reference frame transformation explicitly.

4.1 Vertical Rolling Disk

Following [3], the configuration space for the vertical rolling disk is \(Q = \mathbb{R}^{2} \times S^{1}\,\times \,S^{1}\) and it is parametrized by the coordinates q = (x, y, θ, ϕ), where:

  • x, y is the projection of the center of the wheel in the xy-plane,

  • θ is the roll angle of the disk, and

  • ϕ is the heading angle of the disk.

The ground to the wheel transformation of reference frames is given by

$$\displaystyle{B_{v}(q) = \varOmega _{z}\left (\varphi \right ) \cdot \varOmega _{y}\left (-\theta \right ).}$$

Then

$$\displaystyle{B_{v}(q)^{-1}u_{ z} = \left (\begin{array}{*{10}c} -\sin \theta \\ 0\\ \cos \theta \\ \end{array} \right )}$$

and

$$\displaystyle{u_{y}\times B_{v}^{-1}(q)u_{ z} = \left (\begin{array}{*{10}c} \cos \theta \\ 0\\ \sin \theta \\ \end{array} \right ).}$$

Since u y and B v (q)u z are perpendicular, then

$$\displaystyle{\|u_{y} \times B_{v}(q)u_{z}\| = 1.}$$

Then, we obtain

$$\displaystyle{ C_{v} = ru_{y}\times (\frac{u_{y} \times B_{v}(q)u_{z}} {\|u_{y} \times B_{v}(q)u_{z}\|}) = r\left (\begin{array}{*{10}c} \sin \theta \\ 0 \\ -\cos \theta \\ \end{array} \right ). }$$
(14)

This is correct because in the global coordinates the contact point is always below the center of the wheel and

$$\displaystyle{c_{v} = B_{v}C_{v} = B_{v}\left (\begin{array}{*{10}c} \sin \theta \\ 0 \\ -\cos \theta \\ \end{array} \right ) = \left (\begin{array}{*{10}c} 0\\ 0 \\ -1\\ \end{array} \right ).}$$

Nonholonomic constraints (13) for the vertical rolling disk are

$$\displaystyle{ 0 = v_{v}+\omega _{v}\times c_{v} = v_{v}+\dot{B}_{v}(q,\dot{q})(C_{v}) = \left (\begin{array}{*{10}c} \dot{x}\\ \dot{y} \\ \dot{z} \end{array} \right )+r\left (\begin{array}{*{10}c} -\cos \varphi \,\dot{\theta }\\ -\sin \varphi \,\dot{\theta } \\ 0\\ \end{array} \right ). }$$
(15)

4.2 The Falling Rolling Disk

Following [3], the configuration space for the falling rolling disk is \(Q = \mathbb{R}^{3} \times S^{1} \times S^{1} \times S^{1}\), and it is parametrized by the coordinates \(q = (x,y,z,\theta,\varphi,\psi )\) where:

  • x, y, z are the position coordinates of the center of the disk in the global reference frame,

  • θ is the angle between the plane of the disk and the vertical axis,

  • \(\varphi\) is the heading angle, and

  • ψ is the roll angle.

In [3], the coordinates are that of the contact point. Later we will change the coordinate system to check that the constraints calculated in this paper match the previous result.

The ground to the wheel transformation of reference frames is given by

$$\displaystyle{B_{f}(q) = \varOmega _{z}\left (\varphi \right ) \cdot \varOmega _{x}\left (\theta \right ) \cdot \varOmega _{y}\left (-\psi \right ).}$$

Then

$$\displaystyle{B_{f}(q)^{-1}u_{ z} = \left (\begin{array}{*{10}c} -\sin \psi \,\cos \theta \\ \sin \theta \\ \cos \psi \,\cos \theta \\ \end{array} \right )}$$

and

$$\displaystyle{u_{y}\times B_{f}^{-1}(q)u_{ z} = \left (\begin{array}{*{10}c} \cos \psi \,\cos \theta \\ 0\\ \sin \psi \,\cos \theta \\ \end{array} \right ).}$$

Note that

$$\displaystyle{\|u_{y} \times B_{f}^{-1}(q)u_{ z}\| = abs(\cos \theta ).}$$

Since \(\theta \in (-\frac{\pi }{2}, \frac{\pi } {2})\)

$$\displaystyle{\|u_{y} \times B_{f}^{-1}(q)u_{ z}\| =\cos \theta.}$$

Then, we obtain that

$$\displaystyle{C_{f} = ru_{y}\times (\frac{u_{y} \times B_{f}(q)u_{z}} {\|u_{y} \times B_{f}(q)u_{z}\|}) = r\left (\begin{array}{*{10}c} \sin \psi \\ 0 \\ -\cos \psi \\ \end{array} \right ).}$$

Global coordinates of the contact point are

$$\displaystyle{ rB_{f}\left (\begin{array}{*{10}c} \sin \psi \\ 0 \\ -\cos \psi \\ \end{array} \right ) = r\left (\begin{array}{*{10}c} -\sin \varphi \,\sin \theta \\ \cos \varphi \,\sin \theta \\ -\cos \theta \\ \end{array} \right ). }$$
(16)

Nonholonomic constraints (13) for the falling rolling disk are

$$\displaystyle\begin{array}{rcl} & 0 = v_{f} +\omega _{f} \times c_{f} = v_{f} +\dot{ B}_{f}(q,\dot{q})(C_{f}) = \left (\begin{array}{*{10}c} \dot{x}\\ \dot{y} \\ \dot{z} \end{array} \right )+& \\ & r\left (\begin{array}{*{10}c} -\sin \varphi \,\cos \theta \,\dot{\theta }-\cos \varphi \,\dot{\varphi }\,\sin \theta -\dot{\psi }\,\cos \varphi \\ \cos \varphi \,\cos \theta \,\dot{\theta }-\sin \varphi \,\dot{\varphi }\,\sin \theta -\dot{\psi }\,\sin \varphi \\ \sin \theta \,\dot{\theta }\\ \end{array} \right ). &{}\end{array}$$
(17)

Equation (17) is not as simple as expected. This is because the constraints are calculated assuming that (x, y, z) are the coordinates of the center of the wheel. Assume now that the coordinates of the contact point are used as provided by (16). They yield

$$\displaystyle{ \left (\begin{array}{*{10}c} x'\\ y' \\ z' \end{array} \right ) = \left (\begin{array}{*{10}c} x\\ y \\ z \end{array} \right )+r\left (\begin{array}{*{10}c} -\sin \varphi \,\sin \theta \\ \cos \varphi \,\sin \theta \\ -\cos \theta \\ \end{array} \right ), }$$
(18)

then

$$\displaystyle{ \left (\begin{array}{*{10}c} \dot{x}'\\ \dot{y}' \\ \dot{z}' \end{array} \right ) = \left (\begin{array}{*{10}c} \dot{x}\\ \dot{y} \\ \dot{z} \end{array} \right )+r\left (\begin{array}{*{10}c} -\sin \varphi \,\cos \theta \,\dot{\theta }-\cos \varphi \,\dot{\varphi }\,\sin \theta \\ \cos \varphi \,\cos \theta \,\dot{\theta }-\sin \varphi \,\dot{\varphi }\,\sin \theta \\ \sin \theta \,\dot{\theta }\\ \end{array} \right ) }$$
(19)

and equation (17) can be then rewritten as

$$\displaystyle{ \left (\begin{array}{*{10}c} \dot{x'}\\ \dot{y'} \\ \dot{z'} \end{array} \right )+r\left (\begin{array}{*{10}c} -\dot{\psi }\,\cos \varphi \\ -\dot{\psi }\,\sin \varphi \\ 0\\ \end{array} \right ) = 0. }$$
(20)

4.3 Tricycle Robot

A tricycle robot is presented in Fig. 2. The geometry of the tricycle is used to define the state manifold and to illustrate the use of generalized coordinates. Note that calculations of the nonholonomic constraints are realized based on equation (13), i.e., using T(q) and B(q) only. Any change of a coordinate system will only affect the translation T(q) and rotation B(q) mappings. The final calculation of the nonholonomic constraints is automatic so that it can be performed symbolically by any computer algebra system; in this paper Maxima [9] has been used.

Fig. 2
figure 2

Tricycle model

The configuration space is parametrized by the coordinates \(q = [x,y,\theta,\beta,\phi _{l},\phi _{r},\phi _{f}]^{T}\):

  • x, y—position of the rare axis center,

  • θ—heading angle of the tricycle body,

  • β—heading angle of the front wheel,

  • ϕ l —left wheel roll angle,

  • ϕ r —right wheel roll angle, and

  • ϕ f —front wheel roll angle.

The ground to wheel transformations are denoted by

  • T l , B l —left wheel translation and rotation,

  • T r , B r —right wheel translation and rotation, and

  • T f , B f —front wheel translation and rotation.

Rotation transformations are as

$$\displaystyle\begin{array}{rcl} B_{l}(q)& =& \varOmega _{z}\left (\theta \right ) \cdot \varOmega _{y}\left (\phi _{l}\right ), {}\\ B_{r}(q)& =& \varOmega _{z}\left (\theta \right ) \cdot \varOmega _{y}\left (\phi _{r}\right ), {}\\ B_{f}(q)& =& \varOmega _{z}\left (\theta +\beta \right ) \cdot \varOmega _{y}\left (\phi _{f}\right ), {}\\ \end{array}$$

and translation transformations as

$$\displaystyle\begin{array}{rcl} T_{l}(q)& =& (x,y,0)^{T} +\varOmega _{ z}(\theta )(0,d,0)^{T}, {}\\ T_{r}(q)& =& (x,y,0)^{T} +\varOmega _{ z}(\theta )(0,-d,0)^{T}, {}\\ T_{f}(q)& =& (x,y,0)^{T} +\varOmega _{ z}(\theta )(l,0,0)^{T}. {}\\ \end{array}$$

The final result for the nonholonomic constraints is presented. These formulas are calculated symbolically in Maxima, and the LaTeX equations are generated automatically. The z component is omitted, as it is just 0 = 0.

Nonholonomic constraints (13) for the front wheel are

$$\displaystyle\begin{array}{rcl} \left (\begin{array}{*{10}c} \dot{x} - l\,\sin \theta \,\dot{\theta } +\dot{\phi } _{f}\,\cos \left (\theta +\beta \right ) \\ \dot{y} + l\,\cos \theta \,\dot{\theta } +\dot{\phi } _{f}\,\sin \left (\theta +\beta \right )\\ \end{array} \right ) = \left (\begin{array}{*{10}c} 0\\ 0\\ \end{array} \right ).& &{}\end{array}$$
(21)

Nonholonomic constraints (13) for the left wheel are

$$\displaystyle\begin{array}{rcl} \left (\begin{array}{*{10}c} \dot{x} - d\,\cos \theta \,\dot{\theta } +\dot{\phi } _{l}\,\cos \theta \\ \dot{y} - d\,\sin \theta \,\dot{\theta } +\dot{\phi } _{l}\,\sin \theta \\ \end{array} \right ) = \left (\begin{array}{*{10}c} 0\\ 0\\ \end{array} \right ).& &{}\end{array}$$
(22)

Nonholonomic constraints (13) for the right wheel are

$$\displaystyle\begin{array}{rcl} \left (\begin{array}{*{10}c} \dot{x} + d\,\cos \theta \,\dot{\theta } +\dot{\phi } _{r}\,\cos \theta \\ \dot{y} + d\,\sin \theta \,\dot{\theta } +\dot{\phi } _{r}\,\sin \theta \\ \end{array} \right ) = \left (\begin{array}{*{10}c} 0\\ 0\\ \end{array} \right ).& &{}\end{array}$$
(23)

The systematic approach to nonholonomic constraint equation derivation presented herein can be applied to any wheeled robotic system like the one presented in [7, 8]. This approach allows a straightforward derivation of kinematic control models for them.

5 Conclusions

The paper presents a systematic coordinate-free approach for the formulation of the no-slip condition for wheeled robot models. Based upon this one formulation, nonholonomic constraint equations can be derived for many wheeled robotic system models in a unified, verifiable, comparable, and repeatable way. The constraint equations, which are the basis for the derivation of kinematic control models for the robotic systems, help in their derivation in a more systematic and simpler way.