1 Introduction

Cooperative manipulation or transportation of multiple agents is often seen in natural world [1, 2] and artificial world [36]. In this paper, we consider the problem of controlling a planar rigid body through the interaction forces applied by multiple attached actuators or thrusters. The manipulation of a rigid body using multiple thrusters or mobile robotic agents is a challenging problem with a number of applications. For example, tethered towing [79], grasping [1012], pushing and caging [13, 14], satellite control with thrusters [15], object transportation [14], and other problems all can be made to fit within the paradigm of cooperative manipulation.

Manipulation and/or transportation of a rigid body has been investigated by many researchers. Lynch and Mason investigated the non-prehensile manipulation in [16]. Lynch investigated controllability of a rigid body with the minimal number of unilateral thrusters [15]. Spong [17] and Partridge and Spong [18] investigated control of a rigid body with impacts, i.e., impulsive manipulation. Forni, etc., considered tracking and state-estimation of a bouncing ball with impacts [19]. In [13, 1519], the rigid body is controlled by applying unilateral forces. The object transportation by the “object closure” of multiple ground robots was investigated in [14], and transportation of a payload by multiple aerial robots was considered in [7, 8]. Esposito [20] considered control of a rigid body with lateral forces of attached robots for velocity tracking and followed by an “approach” (i.e., agents approach to the perimeter of the body) investigated in [21].

Generally, the type of the forces of agents applied to the manipulated rigid body can be (i) all bilateral, or (ii) all unilateral or (iii) the mixed (i.e., some forces applied are bilateral while others are unilateral). To be specific, a bilateral force on the body can be pull or push, but at different time in the manipulation process, while a unilateral force, applied through unilateral contact, can be either pull or push, at all the time, without switch between pull or push. The zero force is trivial and can be regarded as either a bilateral force or an unilateral pull or push force. Additionally, the unilateral forces of multiple thrusters can be divided into three categories: (1) The forces are all pull at all the time, for example, when tethered towing or using the unilateral thrusters directed to the outer of the body; (2) the forces are all push at all the time, for example, when grasping or pushing or using the unilateral thrusters directed to the inner of the body; (3) the mixed, i.e., some forces are pull and others are push. Following the scenarios of multi-actuator or multi-thruster manipulation, we consider the cooperative manipulation of a planar rigid body with multiple unilateral thrusters that are attached to the body. The directions of the thrusters (i.e., the directions of the applied forces) can be all fixed or swing, and the forces generated by the thrusters are unilateral, either all pull or all push, on the body.

Generally, a rigid body has nonlinear translation and rotation dynamics when manipulated with uncoordinated forces and thus is not easily made small-time locally controllable (STLC) [15], and the design of the forces for certain tasks (e.g., trajectory tracking of the rigid body) may be complex.

In contrast to previous work on the manipulation and transportation methodologies mentioned above, the main contributions of this paper are summarized as follows: (1) We consider two types of the attached unilateral thrusters to the body for the manipulation, i.e., the thrusters with (i) all fixed directions and (ii) all non-fixed (i.e., swing) directions, respectively. (2) In this context of the unilateral-thruster-control, we aim to control the body that is easily STLC, and as a result, the rigid body can easily achieve the desired trajectory of the configuration (i.e., position and orientation states) of the rigid body, not merely to transport it to a target location, as compared with the object transportation mentioned above. (3) Moreover, we aim to develop two decomposition frameworks, each of which allows the controllers for translational control and rotational control that can be designed separately and trivially, with a unified control policy of the forces for either all pull or all push, which may provide a convenient and alternative methodology for design of a physical system with a quick estimation of the manipulated forces required.

To achieve these results, we emphasize (i) how to design the forces applied to the body to be all unilateral in the manipulation? and (ii) how to ensure the linear and angular (i.e., translational and rotational) accelerations of the body to be decoupled and linear? Item (i) is for the physical constraint of unilateral thrusters. For Item (ii), if it can be achieved, then the rigid body is STLC and thus can be easily controlled which provides much convenience for designing control laws.

This paper considers two decomposition frameworks that are denoted as Frameworks I and II, each with its advantages, on the structure of the forces and control policy.

In Framework I: for attached thrusters with all fixed directions, we arrange the thrusters into two categories with heterogeneous roles: One category is for pure translational control and has no influence on the rotational dynamics of the body; another is for pure rotational control and has no influence on the translational dynamics of the body. As an example, we design the control policy of the thrusters for rotational control in an alternative working manner to ensure the desired trajectory tracking of the body. In this case, the framework is efficient in the sense that, for a large number of thrusters, there is less portion of force canceling effect, but the workload for individual thrusters may be not balanced depending on what type of trajectory tracking.

In Framework II: for the attached thrusters with all non-fixed directions, based on the proper attached locations of the thrusters, we design the applied force of every thruster with threefold decomposition terms, each with a different role, to control (i) rotation and (ii) translation and (iii) the overall applied force to be unilateral, respectively, and without coupling. To be specific, for the threefold decomposition terms of all forces: (1) the components of the forces that control rotation of the body are balanced, i.e., the composition of these forces’ components is zero, and consequently, they have no influence on translation of the body; (2) the components of the forces that control translation of the body have balanced moments, i.e., the composition of the moments of the forces is zero so that they have no influence on rotation of the body; (3) the components of the third structure are used to make the forces to be all unilateral (pull or push), which are balanced with balanced moments, and thus have no influence on the rotation and translation of the body. Moreover, under this framework, the control policy for pull or push is unified, i.e., it has the same mathematical form for pull or push and can be easily switched, and the closed-loop dynamics of the body is linear with respect to both rotation and translation. Examples are given to illustrate the notions. In this framework, the workload for individual thrusters is generally roughly balanced, but it is less efficient in the sense that there may be a larger portion of force canceling effect than the case in Framework I.

Although in Framework II, the perfect placement of the thrusters is required, this framework nevertheless provides many useful insights for controlling a rigid body in a simple and linear formulation such that the rigid body is easily STLC and easily implemented, as opposed to developing possibly sophisticated nonlinear control techniques which are not easy to satisfy both the unilateral restriction and the STLC requirement together with easy implementation. The possible non-perfect placement of thrusters in physical applications is not unsolvable, either by a careful calibration of the placement or compensation (possibly by an additional thruster that will be investigated). Some future considerations (e.g., the compensation of non-perfect placement, as well as inaccurate measurements, fuel consumption of thrusters, etc.) are listed in Conclusion.

The remainder of the paper is organized as follows. Section 2 is the problem description. Section 3 is the assumptions and definitions. Section  4 is the control design of unilateral thrusters with fixed directions, with examples given in Sect. 5. Section 6 designs the framework on the structure of the forces and the control policy for the thrusters with non-fixed directions. As a result, the control of the rigid body in each of the frameworks becomes trivial, as examples illustrated in Sect. 7. Section 8 is the conclusion and suggestions for possible future work. Table 1 lists some notations used in this paper for convenience of reference.

Table 1 Notations used in this paper

2 Problem description

2.1 Manipulation of rigid body

Consider the \(n\) unilateral thrusters attached to a planar rigid body in the two-dimensional Euclidean space [15, 20], as shown in Fig. 1, the directions of the thrusters can be all fixed or all swing, with the constraints that all the thrusters direct to the outer or inner of the body (i.e., the thrusters can only apply pull or push forces to the body). Assume that a body-fixed reference frame is attached to the mass center of the body and we denote by \(x(t) \in \mathbb {R}^2\) and \(R(\psi (t))\in SO(2)\) the position, respectively, orientation of the body in an inertial frame, \(\psi (t)\in \mathbb {R}\). Without loss of generality, assume the body-fixed frame has its initial orientation as the inertial frame, i.e., \(\psi (0)=0\). The linear and angular velocities of the body are denoted as \(\dot{x}(t)\) and \(\dot{\psi }(t)\), respectively. Then, the dynamics of the body can be described by the equations in the inertial frame:

$$\begin{aligned} m \ddot{x}(t)&= \sum _{k=1}^n f_k(t) \end{aligned}$$
(1)
$$\begin{aligned} I \ddot{\psi }(t)&= \sum _{k=1}^n M_k(t) \end{aligned}$$
(2)

where \(m\) is the mass of the bodyFootnote 1 and \(I\) is the moment of inertia about the mass center of the body; \(f_k(t)\in \mathbb {R}^2\) and \(M_k(t)\in \mathbb {R}\) are the force and moment of thruster \(k\) applied to the body, respectively, and since the body is on the plane, here for simplicity, we denote the moment \(M_k(t)\) as a scalar and denote \(M_k(t)>0\) when it generates angular acceleration on the body counterclockwise, with its magnitude defined as

$$\begin{aligned} |M_k(t)|:=||f_k(t)\times R(\psi (t))\tilde{r}_k|| \end{aligned}$$
(3)

where \(\times \) means the cross product, \(\tilde{r}_k\in \mathbb {R}^2\) is the location vector that from the mass center to the attached location of agent \(k\) in the body-fixed frame and thus is a constant, \(|\cdot |\) and \(||\cdot ||\) represent the absolute value of a scalar and the norm of a vector, respectively. The rotation matrix \(R(\cdot )\) is defined as follows:

$$\begin{aligned} R(\theta ):= \left( \begin{array}{cc} \cos \theta &{} -\sin \theta \\ \sin \theta &{} \cos \theta \\ \end{array} \right) \end{aligned}$$

where \(\theta \in \mathbb {R}\) is the parameter of the rotation matrix.

Fig. 1
figure 1

Illustration of the manipulation of a planar rigid body, the circles represent the thrusters attached to the rigid body, the dotted arrows denote the forces on the body generated by the thrusters

The dynamics Eqs. (1) and (2) of the rigid body is generally nonlinear with uncoordinated control forces, with its linear and angular (i.e., translational and rotational) accelerations coupled, which make the rigid body not STLC and the control not easy.

2.2 Notations in the body-fixed and inertial frames

There are two reference frames, i.e., the body-fixed frame and the inertial frame. In this paper, express a variable with a tilde when in the body-fixed frame, and express the corresponding variable without a tilde in the inertial frame. For example, \(\tilde{f}_k(t)\) is the applied force \(f_k(t)\) of thruster \(k\) when expressed in the body-fixed frame; the constant location vector \(\tilde{r}_k\), when viewed in the initial frame, is a variable, denoted as \(r_k(\psi (t))\), where \(r_k(\psi (t))= R(\psi )\tilde{r}_k\).

2.3 Definitions of unilateral forces

Definition 1

Thruster \(k\) attached to the perimeter of the body applies a pull force to the body if

$$\begin{aligned} \tilde{f}_k(t) \cdot \tilde{n}_k >0 \end{aligned}$$
(4)

(notation \(\cdot \) means the dot product) and a push force if

$$\begin{aligned} \tilde{f}_k(t) \cdot \tilde{n}_k <0 \end{aligned}$$
(5)

where \(\tilde{n}_k \in \mathbb {R}^2\) is the normal vector of the perimeter of the body at location of agents \(k\) in the body-fixed frame, as illustrated in Fig. 2.

Fig. 2
figure 2

Illustration of the unilateral force on the body. \(\tilde{n}_k\) is the norm vector of the perimeter of the body at the location of agent \(k\)

2.4 Main Considerations

In this paper, we consider the problem: how to design a framework and the forces of the thrusters to achieve that

  1. (1)

    the forces are unilateral and the rigid body is STLC with \(n\ge 2\) (note that it is not STLC with only one thruster),Footnote 2 moreover

  2. (2)

    the linear and angular accelerations of the body are decoupled and controlled independently,

  3. (3)

    the control that ensures the forces to be unilateral is independent from the linear and angular accelerations, and

  4. (4)

    the closed-loop dynamics of the body is linear with respect to both the linear and angular accelerations (which implies that the body is STLC).

As a result, the rigid body can be easily controlled and the design of control laws for manipulation becomes trivial.

3 Assumptions and definitions

3.1 Assumptions

For the shape of the body at the attached locations, since we need to parametrize the attachment location by an angle, we assume the shape of the body is diffeomorphic to a circle (although for simplicity, in the following figures, the shape of the body is illustrated as a circle). Denote \(\vartheta _k\) as the angle between the norm vector \(\tilde{n}_k\) and the location vector \(\tilde{r}_k\), then

$$\begin{aligned} 0\le \vartheta _k <\pi /2, \ k=1,2,\ldots ,n. \end{aligned}$$
(6)

as illustrated in Fig. 2.

Remark 1

For a special case, when the body’s shape is a regular circle with the mass center at the center of the body, then \(\vartheta _k=0\) for all agents \(k\).

3.2 Definitions

Denote \(0\le \tilde{\theta }_k<2\pi \) as the attached angle of thruster \(k\) in the body-fixed frame.

Definition 2

(Placement of the thrusters that positively span the plane): For the placement of the \(n\) thrusters that positively span the plane, we mean that the angles \(\tilde{\theta }_k, k=1,2,\ldots ,n\), are distributed more or less uniformly, with

$$\begin{aligned} \left\| \sum _{k=1}^{n} e^{\text {i}\tilde{\theta }_k} \right\| \ll n. \end{aligned}$$
(7)

where the notion \(\text {i}=\sqrt{-1}\) means the imaginary unit.

Definition 3

The perfect placement of the thrusters is that: the angles \(\tilde{\theta }_k, k=1,2,\ldots ,n\), are distributed more or less uniformly, with

$$\begin{aligned} \sum _{k=1}^{n} e^{\text {i}\tilde{\theta }_k}=\mathbf {0}. \end{aligned}$$
(8)

Remark 2

Note that when \(n>3\), the perfect placement of the thrusters does not necessarily mean their angles \(\tilde{\theta }_k\), \(k=1,2,\ldots ,n\), are uniformly distributed on the circle. For example, when \(n=4, \tilde{\theta }_1=0\), \(\tilde{\theta }_2=2\pi /3, \tilde{\theta }_3=\pi \), \(\tilde{\theta }_4=5\pi /3\).

Remark 3

Figure 3 illustrates the positively-spanning-placement (Definition 2) and the perfect placement (Definition 3).

Fig. 3
figure 3

Illustration of the placement of the thrusters attached to a rigid body, the circles represent the thrusters attached on the rigid body, for simplicity, assume the shape of the rigid body is a circle, the mass center is at the center of the circle. (i) The thrusters positively span the plane. (ii) The thrusters do not positively span the plane. (iii) The uniformly perfect placement of the thrusters

Remark 4

To derive one instance of each of the \(n\) values for two placements defined above, one may use, for example, the protocol of Proposition 6 in [22] which convergence is asymptotic. Then one instance of the \(n\) values of the angles in Definition 3 (or Definition 2) is then derived, if the protocol in Proposition 6 in [22] is allowed to converge sufficiently (or the evolution of the protocol is just interrupted before sufficient convergence).

Remark 5

The positively-spanning-placement allows the thrusters located in a more general configuration and is thus a mild assumption. The constraint of the perfect placement (e.g., condition (8) can be achieved by simply assigning \(\tilde{\theta }_k=\phi _0+\frac{(k-1)2\pi }{n_k}, k=1,2,\ldots ,n\), \(\phi _0\in \mathbb {R}\)) is rigorous and will provide much convenience in the design of the controller; however, this is likely not possible to do perfectly in physical systems, but through careful calibration, the error can be made neglected in application.

4 Decomposition framework and control design of unilateral thrusters with fixed directions

Considering the \(n\ge 5\) unilateral thrusters attached to the rigid body with all fixed directions, this section designs the attached directions and the magnitudes of the applied forces of the thrusters. Without loss of generality, here assume the thrusters apply only pull forces on the body. (Note that, for the \(n\le 3\) unilateral thrusters with all fixed directions, the body cannot be STLC, which is implied in [15]. For \(n=4\), it is less likely feasible in this framework.)

In this section, divide the thrusters into two categories with:

$$\begin{aligned} n=n_t+n_r \end{aligned}$$
(9)

where

  • the \(n_t\) thrusters are used for translational control, with the placement of the thrusters on the perimeter of the body that positively span the plane, \(n_t\ge 3\), the directions of the thrusters point out of the body and pass through the mass center, thus with no influence on the rotation of the body, and

  • the \(n_r\) thrusters are used for rotational control and form \(\frac{n_r}{2}\) couples with zero net force which have no influence on the translation of the body, where \(n_r\ge 2\) is an even number.

Without loss of generality, we number the \(n_t\) thrusters as \(1,2,\ldots ,n_t\) counterclockwise.

4.1 Thrusters for translational control

Assume \(f_r(t)\in \mathbb {R}^2\) is an arbitrary reference force in the inertial frame:

$$\begin{aligned} f_r(t) = c(t) \left( \begin{array}{c} \cos \theta (t) \\ \sin \theta (t) \\ \end{array} \right) , \end{aligned}$$
(10)

where \(c(t)\ge 0\) and \(\theta (t)\in \mathbb {R}\) are the magnitude and orientation (in the inertial frame) of the force \(f_r(t)\), respectively. Thus the force \(f_r(t)\) in the body-fixed frame, denoted as \(\tilde{f}_r(t)\), has the orientation \(\theta (t)-\psi (t)\).

For the \(n_t\) thrusters and current orientation \(\psi (t)\) of the rigid body, the direction of the thruster \(k\) is \(\psi (t)+\tilde{\theta }_k\) in the inertial frame, \(k=1,2,\ldots ,n_t\). Denote the magnitude of the force (i.e., one of the control inputs, since the directions are fixed) of the thruster \(k\) as \(c_k(t)\ge 0, k=1,2,\ldots ,n_t\). In the following, we design \(c_k(t)\) such that

$$\begin{aligned} \sum _{k=1}^{n_t} c_k(t) R(\psi (t)) \left( \begin{array}{c} \cos \tilde{\theta }_k \\ \sin \tilde{\theta }_k \\ \end{array} \right) = f_r(t), \end{aligned}$$
(11)

in the inertial frame, or equivalently,

$$\begin{aligned} \sum _{k=1}^{n_t} c_k(t) \left( \begin{array}{c} \cos \tilde{\theta }_k \\ \sin \tilde{\theta }_k \\ \end{array} \right) = R(-\psi (t)) f_r(t), \end{aligned}$$

in the body-fixed frame.

Note that \(\theta (t)-\psi (t)\) is the direction of force \(R(-\psi (t)) f_r(t)\) in the body-fixed reference frame. To achieve constraint (11), just select two adjacent thrusters \(k\) and \(k+1\) at current state in the body-fixed reference frame, such that

$$\begin{aligned} \hbox {mod}(\theta (t)-\psi (t),2\pi ) \in [\tilde{\theta }_k, \tilde{\theta }_{k+1}), \end{aligned}$$
(12)

where \(\hbox {mod}(\cdot ,\cdot )\) is the modulus function. The selection is illustrated in Fig. 4. The interval \([\tilde{\theta }_k, \tilde{\theta }_{k+1})\) with \(k=n_t\) means the interval \([\tilde{\theta }_{n_t}-2\pi , \tilde{\theta }_{1})\). For simplicity, denote the left term of (12) as

$$\begin{aligned} \vartheta (t):=\hbox {mod}(\theta (t)-\psi (t),2\pi ). \end{aligned}$$
(13)

Proposition 1

Select \(k,k+1\) using the rule (12), and let

$$\begin{aligned} c_k(t) \!&=\!\frac{\sin (\tilde{\theta }_{k+1}\!-\!\vartheta (t))}{\sqrt{\sin ^2( \tilde{\theta }_{k+1}\!-\!\vartheta (t)) \!+\!\sin ^2(\vartheta (t)\!-\!\tilde{\theta }_k) \!-\!2 e(t)}} c(t) \\ c_{k+1}(t) \!&=\!\frac{\sin (\vartheta (t)\!-\!\tilde{\theta }_k)}{\sqrt{\sin ^2( \vartheta (t)\!-\!\tilde{\theta }_k) \!+\! \sin ^2(\tilde{\theta }_{k+1}\!-\!\vartheta (t)) \!-\!2 e(t)}}c(t) \\ c_i(t)&= 0, \ i\ne k,k+1 \end{aligned}$$

where

$$\begin{aligned} e(t)&:= \sin (\tilde{\theta }_{k+1}-\vartheta (t))\sin (\vartheta (t)-\tilde{\theta }_k)\\&\times \cos (\pi -\,\tilde{\theta }_{k+1}+\tilde{\theta }_k). \end{aligned}$$

Then, the composition of the forces of thrusters \(k\) and \(k+1\) is \(f_r(t)\), and all other thrusters apply no forces, thus (11) holds.

Remark 6

Note that if \(\vartheta (t)=\tilde{\theta }_k\) at current time \(t\), then from Proposition 1, one can easily get:

$$\begin{aligned} c_k(t) = c(t), \ c_{k+1}(t) = 0; \end{aligned}$$

as \(\vartheta (t)\rightarrow \tilde{\theta }_{k+1}\), then

$$\begin{aligned} c_k(t) \rightarrow 0, \ c_{k+1}(t) \rightarrow c(t). \end{aligned}$$

Proof of Proposition 1

\(c_k(t)\) and \(c_{k+1}(t)\) are computed from the following two equations (refer to Fig. 4):

$$\begin{aligned}&\frac{c_{k+1}(t)}{\sin (\vartheta (t)-\tilde{\theta }_k)} = \frac{c_k(t)}{\sin (\tilde{\theta }_{k+1}-\vartheta (t))},\end{aligned}$$
(14)
$$\begin{aligned}&c^2(t) = c^2_k(t) + c^2_{k+1}(t)\nonumber \\&\qquad \qquad -2 c_k(t) c_{k+1}(t) \cos (\pi -\tilde{\theta }_{k+1}+\tilde{\theta }_k). \end{aligned}$$
(15)

Then, we have

$$\begin{aligned}&c_k(t) \!=\! \frac{c(t)}{\sqrt{1\!+\!\frac{\sin ^2(\vartheta (t)-\tilde{\theta }_k)}{ \sin ^2(\tilde{\theta }_{k+1}-\vartheta (t))} \!-\!2 \frac{\sin (\vartheta (t)-\tilde{\theta }_k)\cos (\pi -\tilde{\theta }_{k+1}+\tilde{\theta }_k)}{\sin (\tilde{\theta }_{k+1}-\vartheta (t))} }} \\&c_{k+1}(t) \! = \!\frac{c(t)}{\sqrt{1\!+\! \frac{\sin ^2(\tilde{\theta }_{k+1} -\vartheta (t))}{\sin ^2(\vartheta (t)-\tilde{\theta }_k)} \!-\!2 \frac{\sin (\tilde{\theta }_{k+1}-\vartheta (t))\cos (\pi -\tilde{\theta } _{k+1}+\tilde{\theta }_k)}{\sin (\vartheta (t)-\tilde{\theta }_k)}}}\\ \end{aligned}$$

the above results hold.\(\square \)

Fig. 4
figure 4

Illustration of the magnitudes and angles in the body-fixed frame

Remark 7

The \(n_t\) thrusters are designed to work in an alternative manner, refer to Fig. 7.

Remark 8

The larger number \(n_t\) of the thrusters used for translation means that the difference of \(\tilde{\theta }_{k+1}-\tilde{\theta }_k\) generally decreases, and thus the more efficiency of the forces of the working thrusters (since the canceling effect of the working thrusters decreases).

4.2 Thrusters for rotational control

For the \(n_r\) thrusters, \(n_r\) is an even number, \(n_r\ge 2\), we place them as \(\frac{n_r}{2}\) couples, as illustrated in Fig. 5, the thrusters in each couple have parallel but opposite direction, and the distance is denoted as \(d_1,d_2,\ldots ,d_{\frac{n_r}{2}}>0\), respectively, in each couple of the thrusters. For simplicity, assume all \(n_r\) thrusters exert the forces with the same magnitude \(\alpha (t)\ge 0\). Then, the overall moment of the \(n_r\) thrusters on the body is \((d_1+d_2+\cdots +d_{\frac{n_r}{2}})\alpha (t)\), which controls the body in counterclockwise (for additional clockwise acceleration control, simply reverse the directions of one or more couples of unilateral thrusters or use bilateral thrusters which is trivial and omitted here).

Fig. 5
figure 5

Illustration of the \(\frac{n_r}{2}\) couples of the thrusters. The two thrusters in each couple have parallel but opposite direction, the distance is denoted as \(d_1,d_2,\ldots ,d_{\frac{n_r}{2}}>0\), respectively, in each couple of the thrusters

4.3 Dynamics of rigid body

It follows immediately from the above analysis that the dynamics (1)–(2) of the body reduce to

$$\begin{aligned} m\ddot{x}(t)&= f_r(t), \end{aligned}$$
(16)
$$\begin{aligned} I\ddot{\psi }(t)&= (d_1+d_2+\cdots +d_{\frac{n_r}{2}})\alpha (t). \end{aligned}$$
(17)

5 Examples for thrusters with fixed directions

Assume the desired trajectories of the body are given by \(x_d(t)\) and \(\psi _d(t)\) (in this section, for clarity, \(x_d(t), x(t)\), \(\psi _d(t)\) and \(\psi (t)\) are abbreviated as \(x_d, x, \psi _d\) and \(\psi \), respectively).

5.1 Pure translational control

For the pure translation of the rigid body, assume \(m{=}1\),

$$\begin{aligned} x_d(t)=[\cos (t),\sin (t)]^T, \ \psi (t)\equiv \psi (0) \end{aligned}$$

The initial condition: \(x(0)=[0.4,-0.2]^T, \dot{x}(0)=\mathbf {0}\). Let:

$$\begin{aligned} f_r(t) = m[k_p (x_d-x) + k_d (\dot{x}_d - \dot{x}) + \ddot{x}_d] \end{aligned}$$
(18)

then \(x(t)\rightarrow x_d(t), \dot{x}(t)\rightarrow \dot{x}_d(t)\).

Assume there are \(n_t=4\) thrusters with the attached angles \(\tilde{\theta }_1=0, \tilde{\theta }_2=\frac{2}{3}\pi \), \(\tilde{\theta }_3=\pi , \tilde{\theta }_4=\frac{5}{3}\pi \) in the body-fixed frame. When \(k_p=k_d=1\), the dynamics of the body and \(f_r(t)\) are illustrated in Fig. 6. The applied forces \(c_k(t), k=1,2,3,4\), of the thrusters are illustrated in Fig. 7, with initial orientation \(\psi (0)=0\) and \(\psi (0)=-\frac{\pi }{4}\), respectively. The thrusters work in an alternative manner.

Fig. 6
figure 6

Illustration of dynamics of the rigid body and \(f_r(t)\) in the inertial frame, respectively, in the \(x-y\) plane

Fig. 7
figure 7

Illustration of magnitudes of the forces (the control inputs) \(c_k(t), k=1,2,3,4\), of the thrusters, with \(\psi (0)=0\) and \(\psi (0)=-\frac{\pi }{4}\), respectively

5.2 Both translational and rotational control

Assume \(m=1, I=1\),

$$\begin{aligned} x_d(t)=[\cos (t),\sin (t)]^T, \ \psi _d(t)=t+\frac{\pi }{2} \end{aligned}$$

The initial condition: \(x(0)=[0.4,-0.2]^T, \dot{x}(0)=\mathbf {0}\), \(\psi (0)=-\frac{\pi }{4}, \dot{\psi }(0)=0\). \(f_r(t)\) is given in (18) with \(k_p=k_d=1\).

Assume there are \(n_t=4\) thrusters with the attached angles \(\tilde{\theta }_1=0, \tilde{\theta }_2=\frac{2}{3}\pi \), \(\tilde{\theta }_3=\pi , \tilde{\theta }_4=\frac{5}{3}\pi \) in the body-fixed frame four translational control (as in Sect. 5.1), and another two thrusters for rotational control with \(d_1=1\), and

$$\begin{aligned} \alpha (t) = \kappa _p(\psi _d-\psi ) +\kappa _d(\dot{\psi }_d-\dot{\psi }) +\ddot{\psi }_d \end{aligned}$$

where \(\kappa _p,\kappa _d>0\). Then, \(x(t)\rightarrow x_d(t)\), \(\dot{x}(t)\rightarrow \dot{x}_d(t)\), and \(\psi (t)\rightarrow \psi _d(t), \dot{\psi }(t)\rightarrow \dot{\psi }_d(t)\). Figure 8 illustrates the dynamics of the configuration of the rigid body (\(\kappa _p=\kappa _d=1\)).

Fig. 8
figure 8

Dynamics of the rigid body in the \(x-y\) plane. The endpoint of each arrow denotes the mass center \(x(t)\) of the rigid body, with the direction of the arrow denotes \(\psi (t)\) or \(\dot{x}(t)\)

The magnitudes of the applied forces (the control inputs) are illustrated in Fig. 9, where \(\alpha (t)\) converges to zero, and \(c_3(t),c_4(t)\) converge to nonzero values, \(c_1(t)\) converges to zero, and \(c_2(t)\) is always zero.

6 Decomposition framework and control design of unilateral thrusters with non-fixed directions

In this section, we consider a decomposition framework and the unified control policy of unilateral thrusters with non-fixed directions. All the \(n\) thrusters are used to control both rotation and translation of the body, and in the meanwhile, to ensure the unilateral forces (all pull or all push) of all the thrusters.

In this section, \(n\ge 2\). Denote the attached location \(\tilde{r}_k=\ell _k [\cos \tilde{\theta }_k,\sin \tilde{\theta }_k]^T\) of thruster \(k=1,2,\ldots ,n\), in the body-fixed frame, here \(\ell _k:=||\tilde{r}_k||>0, \tilde{r}_k\) and \(\ell _k\) are determined by the shape of the body and attached angle of thruster \(k\). Generally, the attached location of each thruster is different from the location of the body’s mass center, thus \(\ell _k>0\), \(k=1,2,\ldots ,n\). Define the constant vector \(\varepsilon \in \mathbb {R}^2\) as follows:

$$\begin{aligned} \varepsilon := \left( \begin{array}{c} \sum \nolimits _{k=1}^n \cos \tilde{\theta }_k \\ \sum \nolimits _{k=1}^n \sin \tilde{\theta }_k \\ \end{array} \right) . \end{aligned}$$
(19)
Fig. 9
figure 9

Illustration of the magnitudes of the applied forces (the control inputs) of the thrusters \(\alpha (t)\), and \(c_k(t), k=1,2,3,4\)

6.1 Decomposition structure of applied forces

Design \(f_k(t)\) with the threefold decomposition terms:

$$\begin{aligned} f_k(t)=f^r_k(t)+f^t_k(t)+f^u_k(t), \ k=1,2,\ldots ,n, \end{aligned}$$
(20)

where the superscripts “r, t, u” are the initial letters of “rotation, translation, unilateral,” respectively, as illustrated in Fig. 10.

Fig. 10
figure 10

Illustration of the decomposition of \(f_k(t)\) in the inertial frame

Denote the moments generated by the components of \(f^r_k(t)\), \(f^t_k(t), f^u_k(t)\) as \(M^r_k(t), M^t_k(t), M^u_k(t)\), respectively.

6.2 Control policy of applied forces

This section designs the structures of \(f_k^r(t)\) and \(f^u_k(t)\) in the body-fixed frame, that denoted as \(\tilde{f}_k^r(t)\) and \(\tilde{f}^u_k(t)\), respectively, while designs \(f_k^t(t)\) directly in the inertial frame.

  1. (1)

    Based on the locations of agents, simply specify \(\tilde{f}_k^r(t)\):

    $$\begin{aligned} \tilde{f}_k^r(t)=a(t) R(\theta _0) \left( \begin{array}{c} \cos \tilde{\theta }_k \\ \sin \tilde{\theta }_k \\ \end{array} \right) , \end{aligned}$$

    where \(a(t)\in \mathbb {R}, 0<\theta _0<\pi \). \(\tilde{f}_k^r(t)\) generates positive moment (\(M_k(t)>0\)) on the body when \(a(t)>0\). For \(\theta _0=\frac{\pi }{2}, \tilde{f}_k^r(t)\) is most efficient for generating the moment since \(M^r_k(t) = a(t)\ell _k\sin (\theta _0)=a(t)\ell _k\), so in the following, we take \(\theta _0=\frac{\pi }{2}\), i.e.,

    $$\begin{aligned} \tilde{f}_k^r(t)&= a(t)\left( \begin{array}{cc} 0 &{} -1 \\ 1 &{} 0 \\ \end{array} \right) \left( \begin{array}{c} \cos \tilde{\theta }_k \\ \sin \tilde{\theta }_k \\ \end{array} \right) ,\nonumber \\&k=1,2,\ldots ,n. \end{aligned}$$
    (21)

    In this case,

    $$\begin{aligned} \sum _{k=1}^n \tilde{f}_k^r(t)&= a(t) \left( \begin{array}{cc} 0 &{} -1 \\ 1 &{} 0 \\ \end{array} \right) \varepsilon ,\\ \sum _{k=1}^n M^r_k(t)&= a(t) \sum _{k=1}^n \ell _k. \end{aligned}$$
  2. (2)

    Next choose the structure of the second force \(f_k^t(t)\)

    $$\begin{aligned} f_k^t(t)=b_k g(t), ~ k=1,2,\ldots ,n \end{aligned}$$
    (22)

    in the inertial frame, where \(b_k\in \mathbb {R}\), and \(g(t)\in \mathbb {R}^2\) is an arbitrary reference force. The forces \(f_k^t(t), k=1,2,\ldots ,n\), are parallel. For the coefficient \(b_k\), considering the attached locations of the thrusters, simply select \(b_k\) to satisfy

    $$\begin{aligned} b_k = 1 / \ell _k, \ k=1,2,\ldots ,n \end{aligned}$$
    (23)

    in which case,

    $$\begin{aligned} \sum _{k=1}^n f_k^t(t)&= g(t) \sum _{k=1}^n \frac{1}{\ell _k},\\ \sum _{k=1}^n M^t_k(t)&= \sum _{k=1}^n f_k^t(t)\times R(\psi (t))\tilde{r}_k \\&= \sum _{k=1}^n g(t)\times R(\psi (t))\frac{\tilde{r}_k}{\ell _k} \\&= g(t)\times R(\psi (t)) \varepsilon . \end{aligned}$$
  3. (3)

    Design the structure of the force \(\tilde{f}^u_k(t)\) as follows:

    $$\begin{aligned} \tilde{f}^u_k(t)= u(t) \left( \begin{array}{c} \cos \tilde{\theta }_k \\ \sin \tilde{\theta }_k \\ \end{array} \right) , \ k=1,2,\ldots ,n \end{aligned}$$
    (24)

    where \(u(t)\in \mathbb {R}\) is the unilateral control input, then \(\tilde{f}^u_k(t), k=1,2,\ldots ,n\), are almost balanced and have zero moments:

    $$\begin{aligned} \sum _{k=1}^n \tilde{f}^u_k(t)&= u(t) \varepsilon ,\\ \sum _{k=1}^n M^u_k(t)&= \sum _{k=1}^n \tilde{f}^u_k(t) \times \tilde{r}_k = \mathbf {0}. \end{aligned}$$

In application, one can make a careful calibration of the perfect placement of the thrusters such that \(\varepsilon \approx \mathbf {0}\) can be neglected. Then, under this condition, these forces subject to the following three constraints:

  1. (1)

    the forces \(f_k^r(t), k=1,2,\ldots ,n\), are balanced, i.e.,

    $$\begin{aligned} \sum _{k=1}^n f_k^r(t) = \mathbf {0} \end{aligned}$$
    (25)

    (these forces are used to control the rotation of the body),

  2. (2)

    \(f_k^t(t), k=1,2,\ldots ,n\), have balanced moments, i.e.,

    $$\begin{aligned} \sum _{k=1}^n f_k^t(t) \times R(\psi (t))\tilde{r}_k =\mathbf {0} \end{aligned}$$
    (26)

    (these forces are used to control translation of the body),

  3. (3)

    \(f^u_k(t), k=1,2,\ldots ,n\), are balanced with balanced moments (thus for any control \(u(t)\), the dynamics of the body is unaffected), i.e.,

    $$\begin{aligned} \sum _{k=1}^n f_k^u(t) = \mathbf {0}, \ \sum _{k=1}^n f_k^u(t) \times R(\psi (t))\tilde{r}_k =\mathbf {0} \end{aligned}$$
    (27)

    (\(f^u_k(t)\) is to make overall force \(f_k(t)\) to be unilateral),

then, (i) the linear and angular accelerations of the rigid body are completely decoupled, and (ii) the unilateral control is independent from the linear and angular accelerations of the body.

6.3 Control policy for unilateral forces

In (24), \(\tilde{f}^u_k(t)\) is pull when \(u(t)>0\) and push when \(u(t)<0\). Then, using the control input \(u(t)\), the overall forces \(\tilde{f}_k(t), k=1,2,\ldots ,n\), can be easily made to be pull or push, for the simplest, make \(u(t)\) large (positive) or small (negative) enough. Proposition 2 is just one example.

Proposition 2

The applied forces \(f_k(t), k=1,2,\ldots ,n\), are all pull forces (4) to the rigid body when

$$\begin{aligned} u(t)=\left\{ \begin{array}{ll} -u_1(t)+\varepsilon _0, &{} u_1(t)\le 0 \\ 0, &{} u_1(t)> 0 \end{array} \right. \end{aligned}$$
(28)

where \(\varepsilon _0>0\), and

$$\begin{aligned} u_1(t) := \min _{k\in \{1,2,\ldots ,n\}} \frac{\left( \tilde{f}^r_k(t)+\tilde{f}^t_k(t) \right) \cdot \tilde{n}_k}{\cos (\vartheta _k)} \in \mathbb {R}. \end{aligned}$$

Similarly, \(f_k(t), k=1,2,\ldots ,n\), are all push forces (5) when

$$\begin{aligned} u(t)&= \left\{ \begin{array}{ll} -u_2(t)-\varepsilon _0, &{} u_2(t)\ge 0 \\ 0, &{} u_2(t)<0 \end{array} \right. \\ u_2(t)&:= \max _{k\in \{1,2,\ldots ,n\}} \frac{\left( \tilde{f}^r_k(t)+\tilde{f}^t_k(t) \right) \cdot \tilde{n}_k}{\cos (\vartheta _k)} \in \mathbb {R}.\nonumber \end{aligned}$$
(29)

Remark 9

If the shape of the rigid body is a circle with its mass center at the center of the circle, then \(\vartheta _k\) reduces to be \(\vartheta _k=0\), and if \(\theta _0=\frac{\pi }{2}\), then \(\tilde{f}^r_k(t)\cdot \tilde{n}_k=0, k=1,2,\ldots ,n\). Then, in this case, \(u_1(t)\) and \(u_2(t)\) reduce to be: \(u_1(t) = \min _{k\in \{1,2,\ldots ,n\}} \tilde{f}^t_k(t) \cdot \tilde{n}_k\), and \(u_2(t) = \max _{k\in \{1,2,\ldots ,n\}} \tilde{f}^t_k(t) \cdot \tilde{n}_k\).

6.4 Dynamics of rigid body

Proposition 3

It follows immediately from the above analysis that the dynamic (1)–(2) reduce to

$$\begin{aligned} m\ddot{x}(t)&= \left( \frac{1}{\ell _1}+\frac{1}{\ell _2}+\cdots +\frac{1}{\ell _n}\right) g(t) \end{aligned}$$
(30)
$$\begin{aligned} I\ddot{\psi }(t)&= (\ell _1+\ell _2+\cdots +\ell _n)\sin (\theta _0) a(t) \end{aligned}$$
(31)

and, hence, the control of translation and the control of rotation of the body are completely decoupled and linear, and independent from the unilateral control \(u(t)\). Therefore, the body is STLC and can be easily controlled by suitable choice of \(g(t), a(t)\) as control inputs in the inertial frame. As a result, the control of the rigid body becomes trivial.

The discussion on external forces is given in “Appendix B.”

7 Examples for thrusters with non-fixed directions

7.1 Example of trajectory tracking

Assume the desired trajectory of the configuration of the body are given by \(x_d(t)\) and \(\psi _d(t)\) (for clarity, \(x_d(t), x(t)\), \(\psi _d(t)\) and \(\psi (t)\) are abbreviated as \(x_d, x, \psi _d\) and \(\psi \) respectively). Let:

$$\begin{aligned} g(t)&= m_0[k_p (x_d-x) + k_d (\dot{x}_d - \dot{x}) + \ddot{x}_d]\\ a(t)&= I_0 [\kappa _p(\psi _d-\psi ) +\kappa _d(\dot{\psi }_d-\dot{\psi }) +\ddot{\psi }_d] \end{aligned}$$

where \(k_p,k_d,\kappa _p,\kappa _d>0\). Then, \(x(t)\rightarrow x_d(t)\), \(\dot{x}(t)\rightarrow \dot{x}_d(t)\), and \(\psi (t)\rightarrow \psi _d(t), \dot{\psi }(t)\rightarrow \dot{\psi }_d(t)\).

Remark 10

The closed-loop error \(x_e(t) := x_d(t)-x(t)\) satisfies \(\ddot{x}_e(t)+k_d \dot{x}_e(t) + k_p x_e(t)=\mathbf {0}\), and consequently \(x(t)\rightarrow x_d(t), \dot{x}(t)\rightarrow \dot{x}_d(t)\). Similarly, \(\psi _e(t):=\psi _d(t)-\psi (t)\) satisfies \(\ddot{\psi }_e(t)+\kappa _d \dot{\psi }_e(t)+ \kappa _p \psi _e(t)=0\), \(\psi (t)\rightarrow \psi _d(t), \dot{\psi }(t)\rightarrow \dot{\psi }_d(t)\).

7.2 Illustration of applied forces

In the above example, assume the desired trajectory of the configuration given as follows:

$$\begin{aligned} x_d(t)=[\cos (t),\sin (t)]^T, \ \psi _d(t)=t+\frac{\pi }{2} \end{aligned}$$

\(m=1, I=1\). The initial condition of the configuration: \(x(0)=[0.4,-0.2]^T, \dot{x}(0)=\mathbf {0}\), \(\psi (0)=-\frac{\pi }{4}, \dot{\psi }(0)=0\).

Consider the following two cases:

  1. (1)

    \(n=2\) thrusters, \(\ell _1=\ell _2=0.3, \tilde{\theta }_1=\frac{\pi }{2}, \tilde{\theta }_2=\frac{3\pi }{2}\). Then \(m_0=\frac{3}{20}, I_0=\frac{5}{3}\).

  2. (2)

    \(n=6\) thrusters, and for simplicity, just select \(\ell _k=0.3, \tilde{\theta }_k=\frac{(k-1)\pi }{3}\), \(k=1,2,\ldots ,6\). Then \(m_0=\frac{1}{20}, I_0=\frac{5}{9}\).

For other parameters, \(k_p=k_d=\kappa _p=\kappa _d=1\), \(\theta _0=\frac{\pi }{2}\).

Figure 8 illustrates the dynamics of the configuration of the body that are same for both \(n=2\) and \(n=6\). The trajectory of the configuration converges to the desired circular motion described by \(x_d(t)\) and \(\psi _d(t)\).

For the case of \(n=2\) thrusters, Fig. 11 illustrates the overall applied forces \(\tilde{f}_1(t)\) and \(\tilde{f}_2(t)\) to the rigid body in the body-fixed frame with different values of the unilateral control input \(u(t)\) that make the overall applied forces to be pull or push, \(t=[5,8]\). The forces \(\tilde{f}_1(t)\) and \(\tilde{f}_2(t)\) will converge to be constant, as illustrated in Fig. 11. We have the following:

  1. (1)

    when \(u(t)=0\), the type of the forces is mixed;

    Fig. 11
    figure 11

    Illustration of the applied forces \(\tilde{f}_1(t), \tilde{f}_2(t)\) in the body-fixed frame in the x-y plane that are in mixed type (\(u(t)=0\)), pull (\(u(t)=0.6\)) and push (\(u(t)=-0.6\)), respectively. The arrows represent the magnitudes and directions of the forces. All the forces (directions and magnitudes) will converge to be constant in the body-fixed frame

  2. (2)

    when \(u(t)=0.6\), the forces are all pull; and

  3. (3)

    when \(u(t)=-0.6\), the forces are all push.

Figure 11 shows the effect of the unilateral control \(u(t)\) that makes the forces to be unilateral. As the absolute value \(|u(t)|\) increases, the swing of the directions of the forces \(\tilde{f}_1(t)\) and \(\tilde{f}_2(t)\) will become narrow accordingly (for limited space, the illustration omitted).

For the case of \(n=6\) thrusters, Fig. 12 illustrates the overall applied push forces \(\tilde{f}_k(t), k=1,2,\ldots ,6\), to the rigid body in the body-fixed frame, without the consideration of the friction (\(f_0=M_0=0\), refer to “Appendix B”), \(u(t)=-0.6, t=[5,8]\). Compared with Fig. 11, as the number \(n\) of the thrusters increases from 2 to 6, naturally the magnitudes of the forces decrease, since there are more thrusters that share the same load in the manipulation.

Fig. 12
figure 12

Illustration of the push forces \(\tilde{f}_k(t)\), \(k=1,2,\ldots ,6\), in the body-fixed frame in the \(x\)\(y\) plane, without friction (\(f_0=M_0=0\)). The arrows represent the magnitudes and directions of the forces. The forces will converge to be constant in the body-fixed frame

Figure 13 illustrates the overall applied push forces \(\tilde{f}_k(t), k=1,2,\ldots ,6\), to the rigid body in the body-fixed frame, with friction (\(f_0=M_0=1\), refer to “Appendix B”), \(u(t)=-0.6, t=[5,8]\), which shows the effect of the friction on the overall applied forces of the thrusters. As compared with Fig. 12, to preserve the same dynamics of the rigid body, the directions of the forces change and the magnitudes of the forces increase significantly to overcome the friction. Certainly, as the values of friction coefficients \(f_0,M_0\) increase, the magnitudes of \(\tilde{f}_k(t), k=1,2,\ldots ,6\) will increase correspondingly (illustration omitted for lack of space).

Fig. 13
figure 13

Illustration of the push forces \(\tilde{f}_k(t)\), \(k=1,2,\ldots ,6\), in the body-fixed frame in the \(x\)\(y\) plane, with friction \(f_0=M_0=1\). The arrows represent the magnitudes and directions of the forces. The forces will converge to be constant in the body-fixed frame

8 Conclusion

In this paper, we consider the cooperative manipulation of a rigid body by the forces of the attached unilateral thrusters for two cases: (i) the directions of the thrusters are all fixed, and (ii) the directions of the thrusters can swing (i.e., non-fixed directions). For the two cases, we design two decomposition frameworks respectively, on the structure of the applied forces and the control policy such that the linear and angular accelerations of the body are decoupled and controlled independently, and the control that ensures the forces to be unilateral is independent from the linear and angular accelerations (Framework II). As a result, the body is easily controlled, and the design of the control laws in these cases are trivial, as illustrated in the examples of trajectory tracking with friction, and thus, the frameworks will provide convenience on a quick estimation of maximum forces of thrusters needed that is useful in design of physical systems.

The control paradigm in this paper is centralized with global information sharing of the thrusters. The decentralized unilateral control is feasible for manipulation and transportation of the rigid body, but may have difficulties to ensure the requirements that the rigid body is STLC and the controls for rotation/translation dynamics decoupled and linear. If without the assumption of the perfect placement of the thrusters, then manipulation and transportation are of course possible, but probably without the properties expected in Sect. 2.4, provided that no additional compensation added.

There are some questions remain to be investigated, for example, (i) how to design the arrangement of the thrusters and the control laws when some thrusters apply only push forces while others apply only pull forces? (ii) what about when some thrusters have fixed directions while others can have swing directions? (iii) what about when the magnitude of the force of every thruster is limited? (iv) what is even more energy-efficiency solutions for such unilateral manipulations? and (v) the robust analysis without perfect placement of the thrusters, inaccurate measurements, fuel consumption of the thrusters and thus the drifting of the center of mass, possibly with another thruster compensation, needs to be further considered.

When using mobile robots for manipulation instead of attached thrusters, the cooperative manipulation of the rigid body is not a pure manipulation or pure motion coordination problem (such as flocking [2327], formation [2831]) of the robots, it requires regulation of both motion (between mobile robots) and interaction forces (between the body and the robots), and this question is challenging and needs to be further investigated; the robustness to individual thruster/robot failure, as well as physical implementations (with communication issues between robots), also needs to be considered in future.