1 Introduction

Changes experienced in the field of swarm robotics over the past decade are unprecedented, with various demonstrations of the potential of this technology (Dorigo et al. 2021). Contrasted to single-robot systems, a Multi-Robot System (MRS) is composed of more than one robot (Cao et al. 1997). It is important to notice that Swarm Robotics (SR) is a subfield of Multi-Robot Systems, which itself is also a subfield of Mobile Robotics (MR) research (Dias et al. 2021). These systems allow the realization of highly complex works, for instance, dynamic monitoring (Kuan 2018; Zoss et al. 2018; Fujii et al. 2020), transportation of objects (Bechlioulis and Kyriakopoulos 2018; Chen et al. 2019; Ebel and Eberhard 2019), structures assembling (Werfel and Nagpal 2008; O’Hara et al. 2014; Saldana et al. 2017), and so on. Another important characteristic of these systems is that they are substantially resilient to hardware or software failures (Parker 1998).

Then, to act as a group, it is necessary not only to sense the environment but also its neighborhood and to communicate with them (Yang et al. 2018). Regarding communication, the MRSs may use direct or indirect communication. Direct communication has a dedicated network, which in general is wireless. Hence, the MRS uses it to exchange information between individuals. In indirect communication, the exchange of information is implicit, through modifications in the environment (Farinelli et al. 2004).

Concerning the composition, they can be homogeneous or heterogeneous MRSs. In homogeneous systems, all individuals have the same capabilities. On the other hand, heterogeneous systems have one or more individuals with distinct capabilities, allowing some of them to realize specific tasks (Yan et al. 2013).

These systems can use a centralized or decentralized control architecture. In the centralized architecture, not all the global information is available to each individual (Cheng and Savkin 2011). This kind of architecture can be easier to control smaller groups, however, for larger groups, there will be a practical barrier to efficiently sharing information across the swarm, leading to the use of a decentralized architecture (Yang et al. 2018).

As stated by Tuci et al. (2018), the cooperative transport of objects term was coined after Dorigo (2004) works. Recent trends on this topic have led to a proliferation of studies on the development and application of this kind of technology, which can be helpful in a variety of scenarios. For example, transporting structures in hostile environments, helping with debris removal after disasters, and support for drifting vessels. To achieve this using an MRS, some features are crucial and require a careful design, for instance, the capacity of the system to withstand faults (e.g., some robots of the systems are damaged), to work efficiently in different environmental conditions, and to be scalable (Dorigo et al. 2021). A review regarding floating objects manipulation by MRS can be found in Du et al. (2022), where the authors show that research efforts increasingly shift the emphasis from single-vehicle systems to multi-vehicle systems as the complexity and scope of the envisioned applications grow.

Therefore, an MRS is usually considered an SR when it is self-organizing, robust, scalable, fault-tolerant, parallel, distributed, and autonomous (Dias et al. 2021). Some of these characteristics can be observed in nature (Parrish 1999), from where come all the inspiration for algorithms and challenges to be overcome. Following the categorization defined by Tuci et al. (2018), the strategies for object transportation can be divided as

  1. 1.

    Pushing-only: the pushed object is not physically attached to the robots.

  2. 2.

    Grasping (pushing/pulling/both): the transported object is physically attached to the robots.

  3. 3.

    Caging: Similar to the pushing-only strategy, but the robots self-distribute to entrap the object, holding it tightly during transport.

The present work develops a method based on the caging strategy, where the goal is to form a “closure” around the object, trapping it within the robots’ cage (Rimon and Blake 1996). The object’s shape and size are of extreme importance for this kind of strategy due to the fact that there is a minimum number of robots required to entrap the object (Tuci et al. 2018). In Pereira et al. (2004), the authors develop decentralized control policies to enable the group of robots to move towards a goal position while maintaining the closure. The results show the successful transport of a convex polygonal object in an obstacle-free environment toward a prescribed goal. Dai et al. (2015) investigates caging formation for the transportation of convex polygon objects utilizing object closure technology. They concentrate on reducing the number of robots and the object’s rotation. The simulation results show multiple mobile robots caging and moving the polygon item to the desired position. In Dai et al. (2016), the robots have knowledge about the object shape, use direct communication, and have a leader robot to manage all the transportation tasks. Then, they transport a convex polygon along different trajectories. The study shows that when the leader has predefined trajectories, the group can transport an object along various linear and curved trajectories. The work from Wan et al. (2017) investigates the transport of a triangular prism using the caging approach. Its control strategy relies on the information of the robots and the transported object’s positions and orientations. The results demonstrate that the robots are capable of moving differently shaped and sized objects through the sloped terrain. In Vardharajan et al. (2021), the authors propose a decentralized algorithm for convex objects via sequential caging. Farrugia and Fabri (2018) proposes a system that uses a caging approach to move a relatively larger object to a desired area utilizing a group of small robots. The findings show that, in the absence of distance or orientation restrictions, any desired formation shape may be formed and maintained.

In general, these prior works depend on the object’s parameters to, for instance, compute the robots’ distribution around the transported object, optimize the number of robots, or plan the maneuverings. In addition, to prevent collisions between the object and the robots, caging manipulation of floating objects is usually carried out by two vessels using ropes (Du et al. 2022), as in Arrichiello et al. (2012), where the authors uses two under-actuated autonomous surface vehicles using a floating rope to capture and transport a floating object.

In this paper, we propose an object transportation method based on the caging strategy. Differently from other methods, the present one does not require previous knowledge regarding the shape and initial orientation of the object to be transported and is tested using convex and concave polygon-based objects. In addition, the present approach achieves the floating object transportation solely through contact forces, without the use of any extra mechanism such as a gripper device (Dorigo 2004), articulated magnetic attachments (Esposito 2008), or wire ropes (Chen et al. 2019). Similarly to other works, here we have a homogeneous swarm of Autonomous Surface Vehicles (ASVs) with direct communication and decentralized control transporting a relatively larger floating object to a desired position/orientation.

2 Materials and methods

This section aims to describe the proposed method, mathematical formulations, and materials used in this study to achieve object transportation using the swarm of ASVs (also termed here as pusher boats, agents, individuals, or robots).

Fig. 1
figure 1

The ASVs (circles) during phase 1 (red) around the position \(\varvec{\mathrm {T_0}}\), phase 2 (yellow) around the position \(P=\varvec{\mathrm {T_{obj}}}\) with a circular formation of radius \(\approx {R}\), and phase 3 (green) also around the position \(P=\varvec{\mathrm {T_{obj}}}\). In addition, \(r_{(*)}\) indicates the position \((*)\) with respect to the fixed frame XOY

Fig. 2
figure 2

The Swarmed-Object during the maneuvering (phase 4) from the position \(\varvec{\textrm{T}}\) to \(\varvec{\textrm{dT}}\). The red arrows are indicating the translational and rotational motions, and \(r_{(*)}\) indicates the position \((*)\) with respect to the fixed frame XOY

2.1 Proposed method

The swarm assumes to know the position \(\varvec{\textrm{T}}\) of the target object (also termed as object), but there is no information regarding its orientation, shape, and inertia. The swarm then proceeds to execute the following four phases, which are illustrated in Figs. 1 and 2 along with the global coordinate frame XOY:

  1. 1.

    Deployment: a predefined target position \(\varvec{\mathrm {T_0}}\) (far from the target object) is set, and the ASVs self-organize around it using the algorithm of a target \(\varvec{\textrm{b}}_i^P\);

  2. 2.

    Pre-caging: the swarm achieves a circular organization around the position \(\varvec{\mathrm {T_{obj}}}\) of the object to be transported using the target algorithm \(\varvec{\textrm{b}}_i^P\), one repulsion algorithm \(\varvec{\textrm{b}}_i^R\) to avoid collision with the target object, and another one \(\varvec{\textrm{b}}_i^R\) to equally distribute the ASVs around the target object. In practical terms, the value of R (Fig. 1) of the repulsion algorithm \(\varvec{\textrm{b}}_i^R\) should be greater than the object’s length, but considering that we have no prior knowledge of this information, the ASVs can use, for instance, an environment exploration algorithm (Chamanbaz et al. 2017) or 2D LiDAR sensors. For the present work, the value of R for all cases is 2.5 times the target object’s length;

  3. 3.

    Caging: the ASVs entrap the object using the target algorithm \(\varvec{\textrm{b}}_i^P\). Then, the ASVs and the object form a Swarmed-Object (SO). In addition, each ASV records the object’s orientation as zero;

  4. 4.

    Object transportation: during all the previous phases, each robot used a constant and small navigation propulsion force \(F_{PN}\). However, at the transportation phase, to keep the object tightly held, there will be a higher propulsion force given by \(F_{POT}\). In addition, the object transportation algorithm \(\varvec{\textrm{f}}_i^{OT}\) will compute a force according to the transportation needs. This last force will enable the maneuvering of the object to a desired position (\(x_{dT}\), \(y_{dT}\)) and orientation \(\psi _{dT}\).

For each time step, each robot of the swarm follows the process illustrated in Algorithm 1, where \(\varepsilon \) is a distance value that triggers phases up to 3, \(\delta \) is a position variation value that triggers phase 4, and \(\varvec{\textrm{r}}_Q\) is the center of mass of the swarm, given by

$$\begin{aligned} \varvec{\textrm{r}}_Q=\frac{1}{n}\sum \limits _{k=1}^{n}\varvec{\textrm{r}}_k \end{aligned}$$
(1)

where n is the number of robots, and \(\varvec{\textrm{r}}_k\) is the position of the robot k.

The system follows a set of control rules, which we classify into orientation rules and force rules. Thus, \(\mathcal {B}_i\) is the set of elementary orientation rules for each agent i, and \(\mathcal {F}_i\) is the set of elementary force rules for each agent i. Their composition is described in the next section.

Algorithm 1
figure a

Object Transportation for each robot i

2.2 Control algorithms

A swarm system for object transportation follows a set of control rules. We classify these controls into orientation rules and force rules. The first class defines the desired orientation followed by each robot, whereas the second one defines the desired force applied by each individual.

Equation 2 gives the desired yaw angle \(\varvec{\mathrm {\Psi }}_d\) followed by each robot i, which is a function of the orientation rules \(\varvec{\textrm{b}}_i\):

$$\begin{aligned}{} & {} \varvec{\mathrm {\Psi }}_{di}=atan2\left( \sum \limits _{\varvec{\textrm{b}}_i\in \mathcal {B}_i}^{}\varvec{\textrm{b}}_{iy},\sum \limits _{\varvec{\textrm{b}}_i\in \mathcal {B}_i}^{}\varvec{\textrm{b}}_{ix}\right) \end{aligned}$$
(2)

where \(\varvec{\textrm{b}}_i\) are the orientation rules in the set \(\mathcal {B}_i\), which is the set of elementary orientation rules for each agent i, which we decompose on the X and Y axes. Here, the four-quadrant inverse tangent function arctan2(yx) ensures the mapping \(\varvec{\mathrm {\Psi }}_{di}\in (-\pi , \pi )\). Note that we omitted explicit time-dependence, i.e., \(\varvec{\mathrm {\Psi }}_{di}=\varvec{\mathrm {\Psi }}_{di}(t)\).

Similarly, Eq. 3 gives the desired force \(\varvec{\textrm{f}}_d\) applied by each robot i, which is a function of the force rules \(\varvec{\textrm{f}}_i\):

$$\begin{aligned} \varvec{\textrm{f}}_{di}=\sum \limits _{\varvec{\textrm{f}}_i\in \mathcal {F}_i}^{}\varvec{\textrm{f}}_{i} \end{aligned}$$
(3)

where \(\mathcal {F}_i\) is the set of elementary force rules for each agent i. Here, we also omitted the explicit time-dependence, i.e., \(\varvec{\textrm{f}}_{di}=\varvec{\textrm{f}}_{di}(t)\).

2.2.1 Target

To make some robot i go to a specific target location P, it uses the following rule:

$$\begin{aligned} \varvec{\textrm{b}}_i^P=\frac{P-\varvec{\textrm{r}}_i}{\Vert P-\varvec{\textrm{r}}_i\Vert } \end{aligned}$$
(4)

where \(\varvec{\textrm{r}}_i\) is the position of the individual i and \(P=\varvec{\textrm{r}}_P\) is the target position, which can be time dependent (Zoss et al. 2018).

2.2.2 Repulsion

The robots use the repulsion rule as follows:

$$\begin{aligned} \varvec{\textrm{b}}_i^R=-\sum \limits _{j\sim i}^{}\left( \frac{\alpha _R}{r_{ij}}\right) ^\gamma \frac{\varvec{\textrm{r}}_{ij}}{r_{ij}} \end{aligned}$$
(5)

where \(\alpha _R\) determines the strength of the repulsion, \(\varvec{\textrm{r}}_{ij}=\varvec{\textrm{r}}_j-\varvec{\textrm{r}}_i\), \(r_{ij}=\Vert \varvec{\textrm{r}}_{ij}\Vert \), \(j\sim i\) is the set of all agents excluding i itself, and \(\gamma >1\) its multipole order, which regulates the rate at which repulsion diminishes as distance increases (Zoss et al. 2018).

2.2.3 Circular distributed repulsion

By adjusting the strength \(\alpha _R\) of the repulsion between the robots, we obtain a distribution along the perimeter of the target repulsion region. To do that, by choosing the minimum between the average distance of the agents and the perimeter distribution we obtain \(\alpha _{R_{CDi}}\). Where we obtain this last by dividing the perimeter of a circle with a radius R for all the agents, then:

$$\begin{aligned} \alpha _{R_{CDi}}=min\left( \frac{1}{n_i}\sum \limits _{j\sim i}^{}r_{ij}, \frac{2\pi R}{n_i+1}\right) e^{R-r_{iT_t}} \end{aligned}$$
(6)

where \(n_i\) is the number of all agents of the swarm excluding the robot i, R is the repulsion radius around the target position, \(\varvec{\textrm{r}}_{iT}=\varvec{\textrm{r}}_T-\varvec{\textrm{r}}_i\), \(r_{iT}=\Vert \varvec{\textrm{r}}_{iT}\Vert \), and \(r_{{iT}_t}\) stands for \(r_{iT}\) at the time t. The switching of formulas in min occurs when the agents are transitioning from phase 1 to phase 2 (see Fig. 1), where the average distance of the agents starts to increase due to the second repulsion term (see Algorithm 1), surpassing \((2\pi R)/(n_i+1)\).

2.2.4 Constant propulsion

To move forward, each robot uses a simple propulsion force rule:

$$\begin{aligned} \varvec{\textrm{f}}_i^P=F_{PN} \end{aligned}$$
(7)

where \(F_{PN}\) is a constant navigation propulsion force.

2.2.5 Object transportation

To move the object to a desired position and orientation, each robot variable force \(\varvec{\textrm{f}}_i^{OT}\) follows the rule:

$$\begin{aligned} \varvec{\textrm{f}}_i^{OT}=[\varvec{\textrm{p}}]_i^+\cdot [\varvec{\mathrm {\tau }}]_i \end{aligned}$$
(8)

with,

$$\begin{aligned}{} & {} {[}\varvec{\textrm{p}}]_i=\begin{bmatrix} c_j &{} c_{j+1} &{}...\\ s_j &{} s_{j+1} &{}...\\ cs_j &{} cs_{j+1} &{}... \end{bmatrix}, j\in \mathfrak {N}_i\cup \{i\} \end{aligned}$$
(9)
$$\begin{aligned}{} & {} {[}\varvec{\mathrm {\tau }}]_i=[\mathcal {X}_i, \mathcal {Y}_i, \mathcal {N}_i]^\top \end{aligned}$$
(10)

where \([\varvec{\textrm{p}}]_i^+\) is the pseudoinverse of \([\varvec{\textrm{p}}]_i\), which depends on the locations and yaw angles of agents \((x_j, y_j, \psi _j)\) and target \((x_{\varvec{\textrm{T}}}, y_{\varvec{\textrm{T}}}, \psi _{\varvec{\textrm{T}}})\). Here, \(c_j=cos(\psi _j-\psi _{\varvec{\textrm{T}}})\), \(s_j=sin(\psi _j-\psi _{\varvec{\textrm{T}}})\), \(cs_j=-c_j*\tilde{y}_j+s_j*\tilde{x}_j\), and \(\tilde{x}_j=x_j-x_{\varvec{\textrm{T}}}\) and \(\tilde{y}_j=y_j-y_{\varvec{\textrm{T}}}\) are the relative position of the individual with reference to the target. \(\mathfrak {N}_i\) is the set of individuals whose information is accessible by the individual i. \([\varvec{\mathrm {\tau }}]_i\) is composed by \(\mathcal {X}_i\), \(\mathcal {Y}_i\) and \(\mathcal {N}_i\), which are the required forces in X and Y and the moment around Z in the global coordinate frame, respectively. We define these required forces and moments in the next section.

Lastly, the condition \(F_{PN}\le \Vert \varvec{\textrm{f}}_i^{OT}\Vert \le 2F_{POT}\) was imposed to avoid the loss of contact between agent i and the transported object, and also to not exceed the agent’s thruster capacity, which is assumed as twice \(F_{POT}\).

2.3 Object transportation control

For object transportation, we calculate the desired forces and moments based on a proportional integral derivative (PID) controller, given by

$$\begin{aligned} \begin{aligned}&e_{X_{\varvec{\textrm{T}}}}=x_{\varvec{\textrm{dT}}}-x_{\varvec{\textrm{T}}}\\&e_{Y_{\varvec{\textrm{T}}}}=y_{\varvec{\textrm{dT}}}-y_{\varvec{\textrm{T}}}\\&{\widetilde{\psi }}_{\varvec{\textrm{T}}}=mod\big (\psi _{\varvec{\textrm{T}}}+\pi , 2\pi \big )-\pi \\&e_{\psi _{\varvec{\textrm{T}}}}=\psi _{\varvec{\textrm{dT}}}-{\widetilde{\psi }}_{\varvec{\textrm{T}}}\\&\mathcal {X}_i = K_Pe_{X_{\varvec{\textrm{T}}}}+K_I\int e_{X_{\varvec{\textrm{T}}}}dt+K_D\frac{d}{dt}e_{X_{\varvec{\textrm{T}}}}\\&\mathcal {Y}_i = K_Pe_{Y_{\varvec{\textrm{T}}}}+K_I\int e_{Y_{\varvec{\textrm{T}}}}dt+K_D\frac{d}{dt}e_{Y_{\varvec{\textrm{T}}}}\\&\mathcal {N}_i = K_{P\psi }e_{\psi _{\varvec{\textrm{T}}}}+K_{I\psi }\int e_{\psi _{\varvec{\textrm{T}}}}dt+K_{D\psi }\frac{d}{dt}e_{\psi _{\varvec{\textrm{T}}}} \end{aligned} \end{aligned}$$
(11)

where \(e_{X_{\varvec{\textrm{T}}}}\), \(e_{Y_{\varvec{\textrm{T}}}}\) and \(e_{\psi _{\varvec{\textrm{T}}}}\) are the error between the desired position and orientation of the transported object \((x_{\varvec{\textrm{dT}}},y_{\varvec{\textrm{dT}}},\psi _{\varvec{\textrm{dT}}})\) and its actual position and orientation \((x_{\varvec{\textrm{T}}},y_{\varvec{\textrm{T}}},\psi _{\varvec{\textrm{T}}})\). \(K_P\), \(K_I\), and \(K_D\) are the translational proportional, integral, and derivative gains, respectively. \(K_{P\psi }\), \(K_{P\psi }\), and \(K_{P\psi }\) are the rotational proportional, integral, and derivative gains, respectively. mod stands for the modulus operator, used to ensure that \(\psi _{\varvec{\textrm{T}}}\) is bounded within \(\frac{-\pi }{2}\) and \(\frac{\pi }{2}\), which avoids unexpected rotations and closed-loop system malfunction. Table 1 gives the controller gains.

Table 1 Gain constants for the SO system

We found these gains heuristically for a control loop frequency of 10Hz to obtain a rise time \(t_r < 25 s\), a 5% settling time \(t_s < 120\,s\), and an overshoot \(M < 0.05\), using the object \(\mathcal {O}_1\) as a reference.

2.4 Hydrodynamic loads

Both the ASVs and the transported objects are under hydrodynamic loads. Then, similar to Fossen (2011), Eq. 12 shows the hydrodynamic forces and moments acting on the bodies:

$$\begin{aligned} \sum {\varvec{\textrm{F}}_{\varvec{hydro}}}=\varvec{\mathrm {F_D+F_A}} \end{aligned}$$
(12)

where \(\sum {\varvec{\textrm{F}}_{\varvec{hydro}}}\) are the hydrodynamic forces and moment, which are composed by damping terms \(\varvec{\mathrm {F_D}}\) and added mass terms \(\varvec{\mathrm {F_A}}\), modeled as follows:

$$\begin{aligned} \begin{aligned} \begin{gathered} \sum {\varvec{\textrm{X}}_{\varvec{hydro}}}=\varvec{\mathrm {X_D+X_A}}\\ \sum {\varvec{\textrm{Y}}_{\varvec{hydro}}}=\varvec{\mathrm {Y_D+Y_A}}\\ \sum {\varvec{\textrm{N}}_{\varvec{hydro}}}=\varvec{\mathrm {N_D+N_A}}\\ \varvec{\mathrm {X_D}}=\varvec{\textrm{X}}_uu+\varvec{\textrm{X}}_{uu}u\Vert u\Vert \\ \varvec{\mathrm {Y_D}}=\varvec{\textrm{Y}}_vv+\varvec{\textrm{Y}}_{vv}v\Vert v\Vert \\ \varvec{\mathrm {N_D}}=\varvec{\textrm{N}}_rr+\varvec{\textrm{N}}_{rr}r\Vert r\Vert \\ \varvec{\mathrm {X_A}}=\varvec{\textrm{X}}_{\dot{u}}\dot{u}\\ \varvec{\mathrm {Y_A}}=\varvec{\textrm{Y}}_{\dot{v}}\dot{v}\\ \varvec{\mathrm {N_A}}=\varvec{\textrm{N}}_{\dot{r}}\dot{r}\\ \end{gathered} \end{aligned} \end{aligned}$$
(13)

where u and v are linear velocities and r is the angular velocity, both in the local reference frame of the body. Then, \(\varvec{\textrm{X}}\) and \(\varvec{\textrm{Y}}\) are the hydrodynamic forces, and \(\varvec{\textrm{N}}\) is the hydrodynamic moment. The simulations are carried out by considering calm water conditions.

2.5 Transported objects

The test of the proposed method uses a set of non-self-propelled objects, as shown in Fig. 3. In real life, these objects may be for instance, barges, vessels, platforms, and other floating structures that need to be handled. Here, to cover a wider range of structures we have polygon-based objects, which are: a decagon \(\mathcal {O}_1\) (regular and convex), a triangle \(\mathcal {O}_2\) (irregular and convex), a quadrilateral \(\mathcal {O}_3\) (irregular and convex), a C shape \(\mathcal {O}_4\) (irregular and concave), a T shape \(\mathcal {O}_5\) (irregular and convex), an L shape \(\mathcal {O}_6\) (irregular and convex).

Fig. 3
figure 3

Shape of each transported object \(\mathcal {O}_1\) to \(\mathcal {O}_6\). Each grid square has a side of 0.25L. The blue cross represents the center of mass of each object, considering a uniformly distributed mass

In addition, all the objects from Fig. 3 have a height of 0.15L, a draught of 0.075L, and a vertical center of gravity of \(z_{iG}=0.0375L\) w.r.t. the bottom. The chosen length was \(L=0.8\) meters, with different mass values. Considering a uniformly distributed mass, we obtained their rotational moment of inertia \(I_{zz}\) w.r.t. the center of mass. Table 2 gives the properties of these objects.

Table 2 Transported objects properties

We considered the hydrodynamic coefficients to be the same for all objects, using the object \(\mathcal {O}_1\) as a reference. Its linear hydrodynamic coefficients are derived based on (Clarke et al. 1982), while the nonlinear ones are based on (DNVGL 2017), as shown in Table 3.

Table 3 Hydrodynamic coefficients for the transported objects

2.6 Autonomous surface vehicles

Non-holonomic ASVs entrap and push the objects, which enables their maneuvering to a desired position and orientation. For this study, the ASVs are 10-cm-long. They have a cylindrical shape with two degrees of freedom: (1) move forward and (2) turn left/right, as shown in Fig. 4a. The vehicles use a PD (proportional-derivative) control law to correct its course, which in this case, is done using a stern thruster, which allows turning left/right. In addition, it is interesting to notice that the ASV has its propeller in the front, which combined with the hull shape may generate a righting moment when faces contact surfaces, as illustrated in Fig. 5. For these cases with one contact point, this configuration helps to have the ASV’s exerted force aligned perpendicularly to the contact surface after some time. However, precautions should be taken to avoid collisions between the propeller and the bottom of the transported object, in this case, a distance d, as shown in Fig. 4b. Table 4 shows the ASV’s properties.

Fig. 4
figure 4

(a) ASV’s degrees of freedom and (b) distance d between the ASV’s propeller and the bottom of the transported object

Fig. 5
figure 5

Top view of the ASV with (a) positive, (b) zero, and (c) negative righting moments. \(X_{ASV}O_{ASV}Y_{ASV}\) is the ASV local reference frame. The red dot is marking the contact point between the hull and the solid surface

2.7 Simulations

The simulations were carried out using the Robot Operating System (ROS) Melodic Morenia release (Foundation 2018), Gazebo version 9.0.0 (Foundation 2017), and PySwarming (de Andrade et al. 2023a), where this last is a free and open-source toolkit for swarm robotics that accounts for most of the algorithms used in this work. Figure 6 shows the scenario prepared to test the proposed approach.

The swarm will start in phase1 around point A and the object will be located at point C. Then, the swarm triggers phase2 when achieves point B. After that, when the swarm forms the circular distribution around point C, it starts phase3. When the swarm and the object form the SO, phase4 will begin and the SO should follow the red path up to point D. This red path is discretized into unit steps, and the swarm considers each waypoint as achieved when the distance between the object (its reference point) and the waypoint is less than \(\kappa \)=0.10 ms. In addition, during all the transportation the robots should maintain the initial headings of the transported object, which are the ones observed in Fig. 3. Each simulation has 1200.0 s in duration and a time step of 0.001 s. The other parameters have the following values: \(\delta \) = 0.003, \(\varepsilon = 0.10\) m, \(\Delta {t} = 2.0\) s, \(R = 2.0\) m, \(\gamma = 8.0\), \(F_{PN} = 0.02\) N, \(F_{POT} = 0.10\) N, \(\varvec{\mathrm {T_0}} = (2, 6)\) m, and \(\varvec{\mathrm {T_{obj}}} = (8, 8)\) m. In addition, the Gazebo’s non-dimensional friction coefficient \(\mu \) between the object and the ASVs was set to {\(\mu =0.8\;|\;0\le \mu \le 1\)} (for details, see Foundation (2014)). For all simulations, the position \(\varvec{\mathrm {T_{obj}}}\) was chosen as the center of mass of each object, represented by the blue cross in Fig. 3.

Table 4 ASV properties
Fig. 6
figure 6

Simulation scenario

All dynamics of the present problem are practically two-dimensional (2D). However, the design of the ASV was made by checking its hydrostatic stability, which helps to avoid undesired behaviors of the ASV in other degrees of freedom, like roll or pitch oscillations.

The simulation results are easier to visualize in the form of a video animation, which is available as a supplemental file or from the authors upon request.

3 Simulation results and discussion

This section presents simulation results to show the performance of the proposed method applied to the transportation of different floating objects using a swarm of ASVs. In addition, we evaluate the sensitivity of performance for different swarm sizes.

3.1 Robustness for different-shaped objects

To verify the robustness of the proposed method for different-shaped objects, we have carried out a set of numerical simulations. Thus, Fig. 7 shows different phases of the simulation for each object, where based on the color of each robot is possible to observe that, even though all ASVs started in the same place in all simulations, at the end of phase 2, the organization was always different.

Fig. 7
figure 7

End of phases 1 to 4 for each transported object

In general, as can be observed in Figs. 8 and 9, all the different-shaped objects were successfully caged, handled, and transported, demonstrating the robustness of this approach. Comparing the tuned case \(\mathcal {O}_1\) to the others, there are no huge differences in trajectories.

Regarding the oscillating heading response observed in the ASVs during phase 2 (see Fig. 8), this was expected since there is no oscillating treatment, as for instance, the virtual viscosity from (Pinciroli et al. 2008), which avoids residual oscillations of the robots after the convergence to the desired formation (de Andrade et al. 2023b).

Fig. 8
figure 8

Object Transportation paths. The gray paths are from the ASVs and the black one is from the transported object

Fig. 9
figure 9

Time series result for each transported object. The path error is shown here as the difference between the desired path \(r_d\) and the obtained path r. The forces (X and Y) and moment (Z) are obtained for \(\mathcal {F}_i\leftarrow \{\varvec{\textrm{f}}_i^P=F_{POT},\varvec{\textrm{f}}_i^{OT}=0\}\). The dashed gray line is the final target position

Interestingly, in all the cases, as we can observe in Fig. 8, the ASVs showed a zig-zag behavior. This occurs during phase 2, where the repulsion terms start to act, and as we have non-holonomic robots, they start to change their heading in response.

Figure  9 shows the time series for each transported object, where the transportation time and path were almost the same for all objects. Regarding the forces and moment, for \(\mathcal {F}_i\leftarrow \{\varvec{\textrm{f}}_i^P=F_{POT},\varvec{\textrm{f}}_i^{OT}=0\}\), we obtain the balance, which helps to understand the importance of a well-tuned PID controller. This becomes clear by observing Fig. 10, which shows this balance of forces and moments at the beginning of the transportation phase. Then, for instance, by considering the triangle \(\mathcal {O}_2\), it had an initial \(-0.25N\) force at the X axis direction, which is a considerable amount of force, being equivalent to \(-2.5\times {F_{POT}}\). The PID controller mitigates these unbalanced forces and moments.

Fig. 10
figure 10

Initial phase 4 formations and their forces and moment balance for \(\mathcal {F}_i\leftarrow \{\varvec{\textrm{f}}_i^P=F_{POT},\varvec{\textrm{f}}_i^{OT}=0\}\)

Fig. 11
figure 11

Final phase 4 formations and their forces and moment balance for \(\mathcal {F}_i\leftarrow \{\varvec{\textrm{f}}_i^P=F_{POT},\varvec{\textrm{f}}_i^{OT}=0\}\)

Still in Fig. 9, there are objects where the balance of forces and moment decrease through time, while others have increased. Moreover, in the moment Z time series, during transportation, the moments are oscillating around zero. This characteristic is due to the righting moments, as explained before and illustrated in Fig. 5. This is an important feature, once the swarm has a dynamic configuration of heading angles, instead of a limited static one. Lastly, the path error \(r_d-r\) was considerably small during all the transportation, but it increased when the transported object achieved the final waypoint. The abovementioned balance of forces heavily influences this, as examples take objects \(\mathcal {O}_4\) and \(\mathcal {O}_5\), which have lower unbalances and, consequently lower path errors.

Considering the initial (Fig. 10) and final (Fig. 11) swarm formations during the transportation phase, it is possible to observe the displacements of some ASVs. These displacements occur when the motion of the SO is parallel to some object’s face, causing the robot’s slide. We can control this sliding by adjusting the value of \(\mu \) or by tuning the PID controller gains in a way to avoid huge accelerations.

Regarding the distribution of robots around the transported object, they are not radially homogeneous. We did this on purpose, to test the robustness of the controller together with the adopted strategies. Based on this, the initial (Fig. 10) and final (Fig. 11) distributions demonstrate that the system controller self-adjusts successfully even with asymmetrical distributions, as can be seen, for instance, the force \(X=-0.25\)N of the object \(\mathcal {O}_2\) in Fig. 10, and force \(X=-0.23\)N and moment \(Z=-0.009\)N.m of object \(\mathcal {O}_6\) in Fig. 11. Table 5 summarizes the time duration of each phase and the initial and final forces and moments in phase 4.

Table 5 Summary of phase time duration, forces and moments

3.2 Sensitivity of performance to swarm size

To investigate the sensitivity of performance to swarm size, we have carried out numerical simulations varying only the number of ASVs, specifically, with swarms of 11, 12, and 13 ASVs. For all the cases, the transported object was the \(\mathcal {O}_1\). The object transportation was successful for all simulations. Figure 12 shows that the general behavior of the swarm was similar to those observed previously, where: (1) observing the ASVs’ colors from the initial arrangement to phase 2, the location of each ASV varied, even though they all began in the same location in every simulation, and (2) Comparing the trajectories, they do not differ significantly, demonstrating the effectiveness of this approach by the successful caging, handling, and transportation of \(\mathcal {O}_1\) with different swarm sizes.

Fig. 12
figure 12

Left: end of phases 1 to 4 for different swarm sizes. Right: object transportation paths. The gray paths are from the ASVs and the black one is from the transported object

Fig. 13
figure 13

Time series result for different swarm sizes. The path error is shown here as the difference between the desired path \(r_d\) and the obtained path r. The forces (X and Y) and moment (Z) are obtained for \(\mathcal {F}_i\leftarrow \{\varvec{\textrm{f}}_i^P=F_{POT},\varvec{\textrm{f}}_i^{OT}=0\}\). The dashed gray line is the final target position

Figure 13 shows the time series for different swarm sizes, where the transportation time and path were almost the same for all objects, and it is evident that the unbalanced forces and moments are handled by the PID controller. Considering the path error, we can observe that the larger swarm showed a higher performance during the task, with practically zero error during the entire transportation. In comparison, the opposite was observed for the smaller swarm, where after achieving the final waypoint, the unbalanced forces were not well handled. Thus, this sensitivity investigation shows that increasing the swarm size reduces the path error for object transportation using the proposed method.

3.3 Discussion of object’s properties and the number of robots

As mentioned in the Introduction section, in cooperative transport utilizing a caging strategy, the object’s shape and size are key considerations, impacting the minimum number of robots required to surround the object (Tuci et al. 2018). This cooperative task is commonly utilized when the transported object is too heavy, too large, or has a complex shape in a way that a single robot can not handle (Tuci et al. 2018). Thus, considering the aquatic scenario of the present work, the object’s inertia, shape, and size are interesting points to be discussed.

Regarding the object’s inertia, the ASV represents approximately 3% of the transported object’s mass, a ratio that can be easily found, for instance, in pusher-barge convoys. Thus, as the object to be transported is too heavy, this scenario is perfect for applying cooperative transportation.

Compared to terrestrial robots, due to the low friction, the aquatic ones need less power to start moving free-floating objects on the water. However, object transportation solely through contact forces with low-power aquatic robots must be robust due to the momentum acquired by the floating object, which can increase too much and risk the operation due to the robots’ loss of contact.

Concerning the object’s inertia and the number of robots, an idealized swarm of three aquatic robots with infinity power would be able to handle a diverse (but limited) range of shapes. Therefore, in practical terms, a large swarm would be able to guarantee enough power to deal with the abovementioned momentum issue. Thus, as shown in the result of the present work, starting from a functional baseline, increasing the number of robots improves the performance of object transportation. On the other hand, decreasing the number of agents reduces the performance.

With respect to the object’s shape and size, the length of the ASV (\(L_{ASV}\)) is around 12% of the transported object’s length (\(L_{OBJECT}\)). As an aquatic robot, the length of the ASV will impact the total drag and added mass of the swarmed-object (SO), which affects the power necessary to execute maneuvers. There are no rules regarding the best \(L_{ASV}/L_{OBJECT}\) ratio, but, we may expect that a lower length ratio will allow more agents to be in contact with the transported object and, in a real application this will be important due to the propellers’ wake interactions, which affects the thrust capacity and efficiency of the propulsion system.

The shape of the ASV and the transported object dictates the type of ASV-object contact, for instance, we can obtain a point of contact, a line, an area, or a combination of them. This will impact the friction between the ASV and the object, which affects the characteristics of maintaining the contact and the initial formation of the swarm. In addition, the object’s shape will have an impact on the swarm distribution, and this characteristic is strictly connected to the number of agents, which may affect directly the object transportation performance. Thus, each shape will have a minimum number of agents that can handle it. On the other hand, if we have a larger swarm, this shape-agents dependence reduces. An example of this is the present work, which, with 12 ASVs showed the ability to handle different shapes.

Lastly, as mentioned before, the reference position \(\varvec{\mathrm {T_{obj}}}\) was chosen as the center of mass of each object, represented by the blue cross in Fig. 3. As we are using a target rule, we must always select a point inside the object, otherwise the agents will have a non-object as the target. In addition, the shape of each transported object has a low aspect ratio (i.e., the ratio of the longest side to the shortest side), thus, we can expect that the position \(\varvec{\mathrm {T_{obj}}}\) can be varied. However, for shapes with a high aspect ratio, it will be recommended to have more than one reference position (i.e., adding algorithms of target \(\varvec{\textrm{b}}_i^P\) in \(\mathcal {B}_i\)) to have a better distribution of the swarm and a robust closure. This choice of positions can be done, for instance, by considering the foci of an ellipse with the same aspect ratio as the transported object. In addition, the shape of the object, and consequently its aspect ratio can be estimated, for instance, using the initial distribution of the agents around the object or 2D LiDAR sensors.

4 Conclusion and future research

In this work, a new method for transporting floating objects uses a swarm of autonomous surface vehicles. The method involves maneuvering objects of various shapes without relying on specific information about their shape, inertia, or orientation.

Several simulations of the proposed swarm illustrate the effectiveness and robustness of the proposed method. In addition, simulations demonstrated that transportation can be achieved solely through contact forces, without the use of any extra mechanism such as a gripper device (Dorigo 2004), articulated magnetic attachments (Esposito 2008), or wire ropes (Chen et al. 2019).

Furthermore, we showed that a small oscillatory behavior of the ASV when in contact with the transported object is an important feature, indicating that this interaction is an important feature, as the swarm has a dynamic configuration of heading angles that amplifies the possibilities of generating forces and moments. In addition, the PID controller proved effective in handling significant balances of forces and moments among the swarm, even in asymmetrical robots’ distributions.

The system proposed for maneuvering floating objects has a diverse range of applications. It can be used for maneuvering vessels in ports and canals, handling wreckage, lost containers, drifting vessels, and icebergs. Moreover, it is suitable for transporting large offshore structures, such as offshore wind turbine bases, solar farms, floating production storage and offloading units, and waterway convoys. In addition, there are potential military applications, such as trapping other vehicles and handling potentially dangerous objects.

Future research will focus on introducing even more realistic characteristics into the simulations, including communication delays and packet loss, water waves, wind, and water currents. In addition, collision avoidance algorithms will be implemented to simulate the traffic of other vehicles in a port scenario, considering both static and dynamic objects. In addition, next phases following the end of phase 4 would be implemented as, for instance, the release of the object. Finally, model test experiments will be conducted to validate the performance of this method.