1 Introduction

Mobile robots usually are equipped with wheels, legs, tracks, propellers and other external devices that interact with the outer environment. On the other hand, there exists a possibility to organize the movement of a body in a resistive medium by means of special vibrational motions of internal masses contained inside the moving body. Such mobile systems are sometimes called vibro-robots or capsubots; they consist of a main body and one or several bodies moving inside it. The principle of movement based on internal motions does not require that the main body should have any external devices; this body can be hermetic. This type of mobile robots can be useful for motions inside hazardous or vulnerable media, inside tubes, and in other cases where traditional mobile systems are undesirable.

Of course, the principle of motion based upon internal moving masses is implementable only inside a resistive medium, i.e., in the presence of resistance forces acting upon the main body. Various types of resistance forces are considered: linear and quadratic forces, depending on the velocity, dry friction forces, obeying Coulomb’s law, and more complicated resistance laws, both isotropic and anisotropic. In this paper, we restrict ourselves to dry friction forces only.

Mobile systems whose movement is based on motions of internal masses were considered in [13]. This principle of motion was used for micro- and nano-positioning [46]. The same idea was applied to micro-robots moving inside tubes [7].

Optimization problems for systems consisting of a main body and movable internal masses were considered in [813]. In these papers, optimal periodic motions were designed that correspond to either maximum average speed of the system as a whole or its maximum displacement for a given time period. Various constraints were imposed on the displacement of the internal mass relative to the main body, relative velocity or acceleration of this mass. Experimental data presented in [14, 15] confirm the obtained theoretical results.

In all papers mentioned above, only rectilinear translational motions of the system containing internal moving masses along a horizontal line were considered. In this paper, we discuss two-dimensional motions of such system along a horizontal plane in the presence of dry friction forces acting between the system and the plane. It is shown that, under certain assumptions, the system controlled by special motions of internal masses can be brought from any initial position to any prescribed terminal position in the plane.

2 Mechanical system

Consider a rigid body P of mass \(m_{1}\) that can slide along a fixed horizontal plane OXY. Axis OZ of the Cartesian coordinate system OXYZ is directed vertically upwards. Body P contacts plane OXY at three support points \(A_{i}, i=1,2,3\). Note that in the case of three contact points the mechanical system is statically determinate; hence, normal reactions \(N_{i}, i=1,2,3\), can be found univalently.

Dry friction forces \(\mathbf {F}_{i}\) acting between points \(A_{i}\) and the plane OXY obey Coulomb’s law with friction coefficient f. If the support point \(A_{i}\) slides along the plane OXY with velocity \(\mathbf {v}_{i}\), the friction force is defined by equations

$$\begin{aligned} \mathbf {F}_{i} &= -fN_{i}\mathbf {v}_{i}/v_{i}, \quad v_{i}=|\mathbf {v}_{i}|, \quad {\text{ if }} \quad {v}_{i}\ne 0,\nonumber \\ |\mathbf {F}_{i}| &\le f N_{i}, \quad {\text{ if }} \quad v_{i}=0,\quad i=1,2,3. \end{aligned}$$
(1)

Two additional bodies are associated with the main body P, namely, point Q of mass \(m_{2}\) and rotor R of mass \(m_{3}\). Rotor R is a rigid body that can rotate about the vertical axis \(BZ'\) which is parallel to OZ and passes through the point B of body P. Rotor R is dynamically symmetric with respect to axis \(BZ'\); its moment of inertia about this axis is equal to I. A horizontal line directed along the unit vector \(\mathbf {e}\) is connected with rotor R. The point mass Q can move along this line; the displacement BQ is denoted by \(\xi\) (Fig. 1).

Fig. 1
figure 1

Mechanical system

The motion of the system is controlled by two independent actuators that can move the internal bodies R and Q relative to the main body P. One of them controls the rotation of rotor R applying to it the torque about the axis \(BZ'\). The second actuator applies the force to the point mass Q and controls its motion along the movable line directed along the vector \(\mathbf {e}\).

The system of internal movable bodies can be implemented in different ways.

Instead of two bodies—rotor R and point mass Q, one can consider rotor \(R'\) and pendulum \(Q'\). Rotor \(R'\) is identical to rotor R. The pendulum \(Q'\) of length l and mass \(m_{2}\) can swing about the horizontal axis \(\mathbf {n}\) perpendicular to the vector \(\mathbf {e}\). The pendulum moves in a small vicinity of its vertical equilibrium position, either lower or upper one. Note that the latter version (oscillations of the pendulum about the upper equilibrium position) was implemented in the experiment [14] on control of motion by means of internal movable mass. In case of small oscillations of the pendulum, the system \(P+Q'+R'\) with a pendulum is equivalent to the system \(P+Q+R\) with a point mass; linear displacement \(\xi\) of point Q along the direction \(\mathbf {e}\) corresponds to the quantity \(l\varphi\) where \(\varphi\) is the angle of deflection of the pendulum from the vertical.

Replacing rotor \(R'\) and pendulum \(Q'\) by one rigid body \(R''\) with two degrees of freedom relative to body P, we obtain another version of the system. We assume that body \(R''\) can rotate about the vertical axis \(BZ'\) and also perform small oscillations about the axis \(\mathbf {n}\) in the vicinity of one of two vertical equilibrium positions. Thus, body \(R''\) is a physical pendulum; its center of mass is situated at a distance l from its axis of swinging, and this axis \(\mathbf {n}\) can rotate about the axis \(BZ'\).

Since all three versions of the system \((P+Q+R, P+Q'+R', P+R'')\) are equivalent to each other, we will consider below the first one \((P+Q+R)\).

3 Control problem

Let us consider the following control problem. Suppose that the system \(P+Q+R\) is at rest at the initial time instant \(t=0\), the support points \(A_{i}\) are in positions \(A^{0}_{i}, i=1,2,3\), in the plane OXY, vector \(\mathbf {e}\) and the displacement \(\xi\) of point Q are \(\mathbf {e}=\mathbf {e}^{0}\) and \(\xi =0\), respectively.

By controlling the motion of internal bodies Q and R, it is required to transfer the system \(P+Q+R\) from the initial state of rest to the terminal state of rest, where the support points \(A_{i}\) are in prescribed positions \(A^{1}_{i}, i=1,2,3\), in the plane OXY, vector \(\mathbf {e}\) is in a prescribed position \(\mathbf {e}=\mathbf {e}^{1}\), and the displacement \(\xi\) is zero.

The problem stated above will be considered under two substantial assumptions that simplify significantly the equations of motion.

First, the triangle \(A_{1}A_{2}A_{3}\) is equilateral.

Second, the center of mass C of the whole system \(P+Q+R\) with zero displacement \(\xi =0\) of point Q is situated at equal distances from points \(A_{i}, i=1,2,3\). In other words, the projection \(C_{*}\) of the center of mass C onto the plane OXY lies in the center of the triangle \(A_{1}A_{2}A_{3}\).

The assumptions made allow to present an explicit analytical solution to the control problem stated above. In the general case, numerical calculations are necessary.

Denote by \(B_{*}\) the projection of point B onto the plane OXY. Points B and C as well as their projections \(B_{*}\) and \(C_{*}\) are rigidly connected with body P and the triangle \(A_{1}A_{2}A_{3}\). Hence, the prescribed initial and terminal positions of the system correspond to the fixed initial and terminal positions \(B^{0}, C^{0}\) and \(B^{1}, C^{1}\) of points B,C, respectively, as well as to fixed initial and terminal projections \(B^{0}_{*}, C^{0}_{*}\) and \(B^{1}_{*}, C^{1}_{*}\) of these points \(B^{0}, C^{0}\) and \(B_{1}, C_{1}\) onto the plane OXY.

The solution of the problem stated above will consist of three stages (Fig. 2).

  1. 1.

    At the first stage, point Q stays in its initial state B, so that \(\xi \equiv 0\). Rotor R rotates, and, as a result, body P rotates too about the fixed vertical axis \(C_{*}C\) passing through the center of mass C of the system. Point C does not move. The rotation ends at the state of rest, in which the projection \(B_{*}\) of point B lies on a line \(C^{0}_{*}C^{1}_{*}\) that connects the projections of the initial and terminal positions of the center of mass C. At the end of the stage, vector \(\mathbf {e}\) should be parallel to the same line \(C^{0}_{*}C^{1}_{*}\).

  2. 2.

    At the second stage, rotor R stays fixed relative to body P, while the point mass Q moves rectilinearly along vector \(\mathbf {e}\) that keeps its direction. As a result of the motion of mass Q, the main body P moves translationally along the line \(C^{0}_{*}C^{1}_{*}\). The motion stops when the center of mass C reaches its prescribed terminal position. At the end of the second stage, we obtain \(C_{*}=C^{1}_{*}, \xi =0\), and the whole system comes to the rest.

  3. 3.

    At the third stage, as at the first one, the point mass Q stays at the point B with \(\xi =0\). Due to the rotation of rotor R, body P rotates about the fixed vertical axis \(C_{*}C\) passing through the center of mass C that stays immovable \((C_{*}=C^{1}_{*})\). The rotation ends at the state of rest, in which the support points \(A_{i}\) come to their fixed terminal positions \(A^{1}_{i}, i=1,2,3\), the projection \(B_{*}\) of point B comes to the prescribed position \(B^{1}_{*}\), and vector \(\mathbf {e}\) comes to its prescribed position \(\mathbf {e}^{1}\).

Fig. 2
figure 2

Stages of displacement

As a result, the control problem stated above will be solved. We will show that, under certain conditions, realization of all three stages is feasible.

4 Equations of motion

Let us make up equations of motion for all thee stages.

At the first and third stages, the center of mass C of the system is at rest. Velocity \(\mathbf {v}_{i}\) of each point \(A_{i}\) is given by

$$\begin{aligned} \mathbf {v}_{i}=\varvec{\omega } \times \mathbf {r}_{i}, \quad \mathbf {r}_{i}=\overrightarrow{C_{*}A_{i}}, \quad i=1,2,3, \end{aligned}$$
(2)

where \(\varvec{\omega }\) is the angular velocity of body P. Equating to zero the vector sum of all external forces acting upon the system \(P+Q+R\) and using Eqs. (1) and (2), we obtain

$$\sum _{i\,=\,1}^{3}N_{i}= mg, \quad m=m_{1}+m_{2}+m_{3},$$
(3)
$$\begin{aligned} \sum _{i=1}^{3}\mathbf {F}_{i}= & {} -f\varvec{\omega } \times \biggl ( \sum _{i=1}^{3}N_{i}\mathbf {r}_{i}/v_{i} \biggl )=0 \end{aligned}$$
(4)

Here, g is the acceleration of gravity. The projection \(C_{*}\) of the center of mass C is at equal distances from all support points \(A_{i}, i=1,2,3\); denote this distance by r. Hence, by virtue of (2), the values of velocities \(v_{i}\) are also equal to one another. On the strength of (4), we have

$$\begin{aligned} \sum _{i=1}^{3}N_{i}\mathbf {r}_{i}=0. \end{aligned}$$
(5)

Scalar Eq. (3) and the two-dimensional vector Eq. (5) make up a system of three linear algebraic equations for normal reactions \(N_{i}\). This system has an obvious unique solution

$$\begin{aligned} N_{1}=N_{2}=N_{3}=mg/3 \end{aligned}$$
(6)

which is valid because \(\mathbf {r}_{1}+\mathbf {r}_{2}+\mathbf {r}_{3}=0\) for the equilateral triangle \(A_{1}A_{2}A_{3}\).

Let us form the equation of moment of momentum for the system \(P+Q+R\) about the axis \(C_{*}C\):

$$\begin{aligned} J\dot{\omega }+I\dot{\varOmega }=\sum _{i=1}^{3}(\mathbf {r}_{i}\times \mathbf {F}_{i})\mathbf {k}. \end{aligned}$$
(7)

Here, J is the moment of inertia of the system \(P+Q+R\) (with \(\xi =0\)) about the axis \(C_{*}C, \varOmega\) is the angular velocity of rotor R relative to body P, and \(\mathbf {k}\) is the unit vector of axis OZ. Substituting expressions for \(\mathbf {F}_{i}\) from (1) and for \(\mathbf {v}_{i}\) from (2) into Eq. (7) and taking into account that the values of vectors \(\mathbf {r}_{i}\) and \(\mathbf {v}_{i}\) for different i are equal to each other, we obtain

$$\begin{aligned} J\dot{\omega }+I\dot{\varOmega }=-fr\sum _{i=1}^{3}N_{i} \mathrm {sign}\,\omega . \end{aligned}$$
(8)

By virtue of Eq. (6), we have from (8):

$$\begin{aligned} J\dot{\omega }=-fmgr \mathrm {sign}\,\omega -I\dot{\varOmega } \qquad (\omega \ne 0). \end{aligned}$$
(9)

Equation (9) holds, if the support points slide along the plane OXY with non-zero velocity, i.e., if \(\omega \ne 0\). If body P is at rest and \(\omega =0\), one should use inequalities (1) for \(v_{i}=0\). In this case, instead of (9), we obtain

$$\begin{aligned} I|\dot{\varOmega }|\le fmgr \qquad (\omega = 0). \end{aligned}$$
(10)

Equations (9) and (10) should be supplemented by kinematic equations

$$\begin{aligned} \dot{\psi }=\omega ,\quad \dot{\theta }=\varOmega , \end{aligned}$$
(11)

where \(\psi\) is the absolute angle of rotation of the main body P about the vertical axis \(C_{*}C\), and \(\theta\) is the angle of rotation of rotor R about its axis \(B_{*}B\) relative to body P.

Both at first and third stages, the main body P and rotor R are to rotate by given angles, while the whole system should be at rest at the beginning and the end of motion. Hence, the following boundary conditions must be satisfied:

$$\begin{aligned} \psi (0) &= \theta (0)=\omega (0)=\varOmega (0)=0,\nonumber \\ \psi (\tau ) &= \psi _{1},\quad \theta (\tau )=\theta _{1},\quad \omega (\tau )=\varOmega (\tau )=0. \end{aligned}$$
(12)

Here, the initial time instant as well as the initial values of the angles \(\psi\) and \(\theta\) are, without loss of generality, taken equal to zero; \(\tau\) is the terminal time instant which is not fixed; and \(\psi _{1}\) and \(\theta _{1}\) are prescribed values of the angles of rotation.

Thus, at the first and third stages, it is required to choose the motion of rotor R, i.e., the angular velocity \(\varOmega (t)\) on the interval \([0,\tau ]\), so that Eqs. (9)–(11) and boundary conditions (12) be satisfied.

At the second stage, the main body P with rotor R move translationally along the line \(C_{*}^{0}C_{*}^{1}\). The velocities of all support points \(A_{i}\) are equal to the velocity \(v'\) of the main body. Denoting by \(u'\) the velocity of the point mass Q relative to body P, we make up the equations of motion for body P (together with rotor R) and mass Q as follows

$$\begin{aligned} (m_{1}+m_{3})\dot{v}'= & {} -F+\sum _{i=1}^{3}F_{i},\nonumber \\ m_{2}(\dot{v}'+\dot{u}')= & {} F \qquad (v'\ne 0). \end{aligned}$$
(13)

Here, F is the force of interaction between body P and mass Q created by the actuator installed on body P. On the strength of Eqs. (1), (3) and \(v_{i}=v'\), we obtain

$$\begin{aligned} \sum _{i=1}^{3}F_{i}=-f\sum _{i=1}^{3}N_{i} \mathrm {sign}\,v'=-fmg \mathrm {sign}\,v'. \end{aligned}$$
(14)

Summing up Eq. (13) and taking account of Eq. (14), we have

$$\begin{aligned} m\dot{v}'=-fmg \mathrm {sign}\,v'-m_{2}\dot{u}'\qquad (v'\ne 0). \end{aligned}$$
(15)

For the state of rest \((v'=0)\), Eq. (15) should be replaced by the inequality similar to (10):

$$\begin{aligned} m_{2}|\dot{u}'| \le fmg. \end{aligned}$$
(16)

Equations (15) and (16) should be supplemented by kinematic equations:

$$\begin{aligned} \dot{s}=v', \quad \dot{\xi }=u'. \end{aligned}$$
(17)

Here, s is the displacement of body P along the line \(C_{*}^{0}C_{*}^{1}\).

At the beginning and the end of motion, the boundary conditions similar to (12) should hold:

$$\begin{aligned} s(0)= & {} \xi (0)=v'(0)=u'(0)=0,\nonumber \\ s(\tau )= & {} s_{1},\quad \xi (\tau )=v'(\tau )=u'(\tau )=0. \end{aligned}$$
(18)

Here, \(s_{1}\) is the total displacement of body P equal to the distance \(C_{*}^{0}C_{*}^{1}\).

At the second stage, it is required to choose the motion of the point mass Q, i.e., its velocity \(u'(t)\) relative to body P for the time interval \([0,\tau ]\), so that Eqs. (15)–(17) and boundary conditions (18) be satisfied.

5 Design of control

It is obvious that Eqs. (15)–(18) for the second stage are identical to Eqs. (9)–(12) for the first and third stages. The difference lies only in the notation: variables \(v',u',s,\xi\) in Eqs. (15)–(18) correspond to variables \(\omega ,\varOmega ,\psi ,\theta\) in Eqs. (9)–(12). Also, there is evident correspondence between the constants in these equations.

Let us introduce normalized variables

$$\begin{aligned} \psi &= ax, \quad \theta =ay, \quad \omega =av, \quad \varOmega =au,\nonumber \\ a &= fmgr/J, \quad \mu =I/J \end{aligned}$$
(19)

in Eqs. (9)–(12) and variables

$$\begin{aligned} s= & {} bx, \quad \xi =by, \quad v'=bv, \quad u'=bu,\nonumber \\ b= \,& {} fg, \quad \mu =m_{2}/m \end{aligned}$$
(20)

in Eqs. (15)–(18). After that, the both groups of equations of motion (9)–(11) and (15)–(17) take the same form

$$\begin{aligned} \,\dot{x}= & {} v, \quad \dot{y}=u, \quad \dot{u}=w, \quad \dot{v}=-\mathrm {sign}\,v-\mu w \quad {\text{ if }} \quad v\ne 0,\nonumber \\ |w|\le & {} \mu ^{-1} \quad {\text{ if }} \quad v=0. \end{aligned}$$
(21)

The boundary conditions (12) and (18) for both cases become

$$\begin{aligned} x(0)= & {} v(0)=y(0)=u(0)=0,\nonumber \\ x(\tau )= & {} x_{1}, \quad y(\tau )=y_{1}, \quad v(\tau )=u(\tau )=0, \end{aligned}$$
(22)

where \(x_{1}\) and \(y_{1}\) are given values. The time moment \(\tau\) is not fixed.

Hence, the control problems for all three stages are reduced to the normalized problem of control for system (21) with boundary conditions (22) that describes the controlled motion of a body with an internal movable mass along a line. Here, x and v are the displacement and absolute velocity of the main body, y,u and \(\omega\) are the relative displacement, velocity and acceleration of the internal mass, respectively. The constant \(\mu\) is the ratio of the internal mass to the total mass of the system.

The control problem described by Eq. (21) and boundary conditions (22) was considered in [811] under different assumptions and constraints. Depending on the type of actuators controlling relative motions of internal masses, constraints can be imposed on the normalized relative velocity u(t)

$$\begin{aligned} |u(t)|\le U \end{aligned}$$
(23)

and/or normalized relative acceleration

$$\begin{aligned} |w(t)|\le W. \end{aligned}$$
(24)

More complicated constraints can also be considered.

It is natural also to impose constraints on the range of relative displacements:

$$\begin{aligned} |y(t)|\le L. \end{aligned}$$
(25)

In inequalities (23)–(25), U,W and L are given constants.

In particular, optimal piecewise constant controls [9] for the relative velocity u(t) [under constraints (23) and (25)] and for the relative acceleration w(t) [under constraints (24) and (25)] can be used. These controls provide the maximum average speed of the periodic motion

$$\begin{aligned} V=x(T)/T \rightarrow {\text{ max }} \end{aligned}$$
(26)

under the boundary conditions

$$\begin{aligned} x(0)=v(0)=y(0)=u(0)=0, \quad x(T)=v(T)=y(T)=u(T)=0. \end{aligned}$$
(27)

Here, T is the period of motion that is not a priori fixed and is determined in the process of constructing of the optimal solutions.

Using these solutions, one can obtain the control for system (21) with boundary conditions (22) under constraints (23) and (25) or (24) and (25). To do this, we represent the total displacement \(x_{1}\) from conditions (22) as follows:

$$\begin{aligned} |x_{1}|=nVT+\varDelta , \quad 0\le \varDelta < VT, \end{aligned}$$
(28)

where n is an integer, V and T are optimal values obtained in [9].

The required motion for system (21) will, according to (28), consist of n periods of the optimal periodic solution and an additional interval with the displacement \(\varDelta\). For the latter interval, the constant L in constraint (25) should be replaced by a smaller value \(L_{1}<L\). Since the displacement x(T) for the period of optimal solution depends on L continuously and monotonically, such value \(L_{1}\) for the interval \(\varDelta\) can always be chosen. Thus, all boundary conditions (22), besides the condition \(y(\tau )=y_{1}\), will be satisfied. To take into account this last condition, we note that, according to (21), under the condition \(v=0\), the internal mass can move arbitrarily, if only

$$\begin{aligned} |w|=|\ddot{y}| \le \mu ^{-1}. \end{aligned}$$
(29)

Hence, when the main body reaches its prescribed terminal state and stops, the internal mass can continue its motion subject to condition (29) and reach the condition \(y(\tau )=y_{1}\) at some non-fixed instant of time \(\tau\).

Let us present some explicit formulas from [9] for the case of bounded relative displacement and acceleration, i.e., for constraints (24) and (25). All formulas are given in normalized dimensionless variables (19), (20). This solution is valid under the condition

$$\begin{aligned} W>\mu ^{-1}. \end{aligned}$$
(30)

The optimal periodic acceleration w(t) has three intervals of constancy with durations \(\tau _{i}, i=1,2,3.\) The values of \(\tau _{i}\) and the total period T are given by

$$\begin{aligned} \tau _{1}= & {} \tau _{3}= \mu \left( \frac{2LW}{1+\mu W} \right) ^{1/2}, \quad \tau _{2}=2 \left[ \frac{2L}{W(1+\mu W)}\right] ^{1/2},\nonumber \\ T= & {} \tau _{1}+\tau _{2}+\tau _{3}=2 \left[ \frac{2L(1+\mu W)}{W}\right] ^{1/2}. \end{aligned}$$
(31)

The optimal acceleration is defined by

$$\begin{aligned} w(t)= & {} \mu ^{-1}, \quad {\text{ if }} \quad t\in (0,\tau _{1}) \quad {\text{ and} } \quad t\in (\tau _{1}+\tau _{2},T),\nonumber \\ w(t)= & {} -W, \quad {\text{ if} } \quad t\in (\tau _{1}, \tau _{1}+\tau _{2}). \end{aligned}$$
(32)

The optimal average speed (26) is given by

$$\begin{aligned} V=\left[ \frac{L}{2W(1+\mu W)}\right] ^{1/2}(\mu W-1). \end{aligned}$$
(33)

Using formulas (30)–(33) and notation (19), (20), one can construct motions of our system for all three stages.

6 Conclusions

It is shown that the mechanical system \(P+Q+R\) described above and consisting of a main body and two internal bodies can be, under certain conditions, transferred in a finite time from any initial state of rest to any prescribed terminal state of rest on a horizontal plane. The control of the system can be provided by special motions of internal bodies. The resulting motion consists of three stages described in the paper. The conditions required for the desired transfer as well as the upper estimate on the time of the transfer can be obtained using previous results for the corresponding type of constraints imposed on the internal motions.