Keywords

1 Introduction

Cooperation and path planning of multiple mobile robots have become a crucial research problem in the field of robotics [1]. Both the concepts have been paid much attention to solve several social and environmental issues such as object transportation in industry, robotics surgery and equipment transfer in healthcare system, detection of planetary movements in space, and disaster management in cluttered unreachable environment [2]. A robot may not be able to do these tasks solely and hence need the help of other robots present in the environment. When more than one robot work together to accomplish a task is called cooperation [3]. For completion of any task, the robots need to move from their position to the desired position. The point at which the transition starts is called as initial position, and the end point of transition is called goal position. Computing the path from the initial to the goal position is called path planning. A path for an autonomous robot can be computed easily. However, planning the path for cooperating robots is complex. Both the cooperation and the planning depend on the environment where the robot resides and has to complete the task. If the environment has motionless obstacle, it is referred to as static environment [4]. But, the environment having moving obstacle is referred to as dynamic environment. Static environment needs less number of computations as compared to the dynamic environment. The cooperation and path planning can be completed using two approaches such as local path planning of multiple mobile robots and global path planning [5]. In local path planning, the robots compute the path in a step-wise manner. It uses the concept of spatial object by considering a local area at each step. However, in global path planning, the robot computes it path as a whole in a known environment. The global approach may not guarantee to produce an optimal solution always [6].

A plethora of algorithms has been proposed to address the issue of path planning and cooperation of the mobile robots. The classical approaches such as potential field method [7], cell decomposition [8], and probabilistic road map [9] method solve the path planning problem of the mobile robots in static environment. But, these are unable to provide an optimal solution in dynamic environment, due to the inefficiency in dealing with the uncertainty [10]. Several measures have been taken for enhancing these classical approaches. Shortest distance algorithm [11] has been proposed to address the path planning problem in static environment without the presence of any obstacle. The authors have considered only an obstacle-free environment to compute the optimal path from the predefined start to the goal state. Hybridization of the existing approaches has also been proposed by using the combined benefits of individual algorithm such as BADE [12], PSO-DV [13], and IPSO-IGSA [14]. All these approaches address the path planning problem only, and the cooperation among the robot is overlooked. Meta-heuristic approaches such as particle swarm optimization (PSO) [15], artificial bee colony optimization (ABCO) [16], and imperialistic competitive firefly algorithm (ICFA) [17] have also been proposed to address the multi-robot path planning and cooperation problem. But they may not produce the optimal solution concerning time and path always as the solution quality depends upon the uncertainty of the environment most of the time. Several nature-inspired techniques such as intelligent water drop algorithm (IWD) [18], cuckoo search algorithm [19], social spider optimization [20], and bat algorithms [21] have been implemented by mimicking the behavior of some natural phenomena to address the path planning problem. However, the objective function of these algorithms is based on the path optimality only and the cooperation part is ignored.

The paper addresses the path planning and cooperation problem of multiple mobile robots in both static and dynamic environment. An optimal and collision-free path is computed using modified CS algorithm. The modification has been realized by tuning the step size and scaling factor dynamically. Two pairs of stick-carrying robot transit from the predefined starting position to a goal position. The main emphasis of the paper is furnished as (i) problem formulation for both path planning and cooperation, (ii) computation of a collision-free path for the robot pairs, (iii) validation of the algorithm by simulating it using programming in C language, and (iv) comparison of the proposed algorithm with other existing approaches.

The rest of the paper is furnished into four sections. Section 2 describes the basic CS algorithm along with the modification done to get the modified CS algorithm. In Sect. 3, the implementation of the proposed algorithm is done with the addressed problem. Section 4 explains the validation of the proposed algorithm through simulation. The conclusion and the future scope of the approach are included in Sect. 5.

2 Cuckoo Search Algorithm

A cuckoo search (CS) algorithm is a nature-inspired evolutionary algorithm inspired by the egg laying behavior of the cuckoo bird. The cuckoo lays their egg in the nest of other host birds. The basic CS algorithm is based on five principles such as (i) each cuckoo lays an egg in a randomly chosen nest, (ii) the egg laid in a host nest represents a solution, (iii) fixed numbers of host nests are assumed, (iv) the host nest having a quality egg is considered as the next generation, and (v) the probability if identifying or destroying the cuckoo’s egg or the host bird abandon the best is either 0 or 1. The host nests are identified in a specified area of a fixed radius referred to as egg laying radius (ELR) and expressed as follows:

$$ {\text{ELR}} = E \times \frac{{{\text{Num}}_{{{\text{laid}}}} }}{{{\text{Num}}_{{{\text{Total}}}} }} \left( {{\text{Max}}_{{{\text{egg}}}} - {\text{Min}}_{{{\text{egg}}}} } \right) $$
(1)

where \(E\) represents the maximum radius, \({\text{Num}}_{{{\text{laid}}}}\) and \({\text{Num}}_{{{\text{Total}}}}\) denote the number of egg laid by a cuckoo and total number of eggs, respectively, and \({\text{Max}}_{{{\text{egg}}}} {\text{ and Min}}_{{{\text{egg}}}}\) holds the value of maximum and minimum number eggs than can be laid by a cuckoo. The following equation shows the basic step of computing the solution as a global walk of a current cuckoo \({\text{C}}_{{\text{i}}}\) at time \({\text{t}} + 1.\)

$$ {\text{C}}_{{\text{i}}} \left( {{\text{t}} + 1} \right) = {\text{C}}_{{\text{i}}} \left( {\text{t}} \right) + {\upalpha } \oplus {\text{levy}}\left( {\upbeta } \right) $$
(2)

where the probability distribution of levy flight is

$$ {\text{levy}}\sim u = {\text{t}}^{\beta } {\text{with}}\, 1 < \beta < 3 $$
(3)

where α denotes the step size and β is the distribution parameter. The local walk for a cuckoo can also be expressed in the following equation

$$ {\text{C}}_{{\text{i}}} \left( {t + 1} \right) = {\text{C}}_{{\text{i}}} \left( t \right) + \alpha \oplus \left( {{\text{C}}_{{\text{i}}}^{{{\text{best}}}} \left( {\text{t}} \right) - {\text{ C}}_{{\text{i}}}^{{{\text{best}}}} \left( t \right)} \right){\text{levy}}\left( \beta \right) $$
(4)

where \({\text{C}}_{{\text{i}}}^{{{\text{best}}}} \left( {\text{t}} \right){ }\) denotes the best location in the history of the current cuckoo. The equation can further be written using the switching parameter of the host bird from its original nest. The equation for computing the next generation solution of the current cuckoo is represented using a heavy-side function \( H\left( {p_{c} - \varepsilon } \right)\), the switching parameter \(p_{s} ,\) and \(\varepsilon\) as a random value. The local walk is represented as follows.

$$ {\text{C}}_{{\text{i}}} \left( {{\text{t}} + 1} \right) = {\text{C}}_{{\text{i}}} \left( {\text{t}} \right) + {\alpha } \oplus {\text{H}}\left( {{\text{p}}_{{\text{s}}} - {\upvarepsilon }} \right){ } \oplus { }\left( {{\text{C}}_{{\text{i}}} \left( {\text{t}} \right) - {\text{C}}_{{\text{i}}}^{{{\text{best}}}} \left( {\text{t}} \right)} \right) $$
(5)

Each time a solution is generated, the fitness value is computed by considering the distance of the host nest from the target position and position of the obstacle present in the environment. It is computed as follows.

$$ {\text{F}}\left( {{\text{C}}_{{\text{i}}} } \right) = {\text{comp}}\left( {{\text{C}}_{{\text{i}}} ,{\text{P}}_{{{\text{obs}}}} } \right){ }\,\& \& \,{\text{D}}_{{{\text{ELR}}}} \,\& \& \, {\text{D}}_{{{\text{i}} - {\text{g}}}} { } $$
(6)

Such that

$$ \begin{array}{*{20}c} {{\text{comp}}\left( {{\text{C}}_{{\text{i}}} ,{\text{P}}_{{{\text{obs}}}} } \right) = } & {\left\{ \begin{gathered} 1 \hfill \\ 0 \hfill \\ \end{gathered} \right.} & \begin{gathered} {\text{if}}\quad {\text{C}}_{{\text{i}}} = = {\text{P}}_{{{\text{obs}}}} \hfill \\ {\text{otherwise}} \hfill \\ \end{gathered} \\ \end{array} $$
(7)
$$ \begin{array}{*{20}c} {{\text{D}}_{{{\text{ELR}}}} = } & {\left\{ \begin{gathered} 1 \hfill \\ 0 \hfill \\ \end{gathered} \right.} & \begin{gathered} {\text{if }}\,({\text{C}}_{{\text{i}}} - ELR) \ge 0 \hfill \\ {\text{otherwise}} \hfill \\ \end{gathered} \\ \end{array} $$
(8)
$$ {\text{D}}_{{{\text{i}} - {\text{g}}}} = \left\{ {\begin{array}{*{20}l} 1 & \begin{gathered} ~{\text{if}}\quad \left( {\left| {{\text{C}}_{{\text{i}}} \left( {\text{t}} \right) - {\text{C}}_{{\text{i}}}^{{{\text{best}}}} \left( {\text{t}} \right)} \right| + \left| {{\text{C}}_{{\text{i}}}^{{{\text{best}}}} \left( {\text{t}} \right) - {\text{goal}}} \right|} \right) \hfill \\ \quad < \left(\left| {{\text{C}}_{{\text{i}}} \left( {{\text{t}} - 1} \right) - {\text{C}}_{{\text{i}}}^{{{\text{best}}}} \left( {{\text{t}} - 1} \right)} \right| + \left| {{\text{C}}_{{\text{i}}}^{{{\text{best}}}} \left( {{\text{t}} - 1} \right) - {\text{goal}}} \right|\right) \hfill \\ \end{gathered} \\ 0 & {{\text{otherwise}}} \\ \end{array} } \right. $$
(9)

The basic CS algorithm suffers from several pitfalls such as (i) low convergence rate, (ii) generation of same solution due to fixed parameters, (iii) repetitive calculation of host nest, and (iv) easy fall into the local optima. To resolve these issues, several measures have been considered with the basic approaches are varying step size, changing the scaling parameter and the penalty function dynamically. The following modifications have been considered in this article for the improvement of basic CS algorithm.

$$ {\text{p}}_{{\text{c}}} = {\text{p}}_{{\text{c}}} + \frac{{{\text{rand }} \times {\text{p}}_{{\text{c}}} }}{{\text{n}}} $$
(10)
$$ \alpha = \alpha \times \exp \frac{1}{n} $$
(11)

The scaling parameter for computing the probability has been computed using a random function that generates a value between 0 and 1 at each step of calculation. Further, the step size has also been modified to generate new step value in order to explore new host. The modified algorithm can be written as follows.

A screenshot of modified algorithm programming codes.

3 Implementation of Proposed Algorithm

The problem addressing the stick-carrying operation is formulated with a pair of robot \({\text{(R}}_{{\text{i}}} {\text{,R}}_{{\text{j}}} {)}\) with the position vector (\({\text{x}}_{{\text{i}}} {\text{,y}}_{{\text{i}}}\)) and \({\text{(x}}_{{\text{j}}} {\text{,y)}}\), respectively, for both the robots. Each time the robot pairs compute a next best position and move with the same velocity and direction. For the cooperation, the velocity, direction of movement, and rotation if any are assumed to be same. At each step, the robot pairs update their position that is assumed as the solution as implemented with the MCS algorithm. The following algorithm describes the computation of the best path from the initial state to the goal state for both the robots.

A screenshot of modified algorithm programming codes.

It is assumed in the algorithm 2 that the robots are separated by a distance same as the stick length \({\text{l}}_{{{\text{stick}}}} .\) The initial position for the robot pairs are selected from the assumed initial habitat \({\text{ C}}.\) The positions are selected as \({\text{C}}_{{\text{i}}}\) and \({\text{C}}_{{\text{j}}}\). Using the equation as mentioned in the previous section, a new next solution is generated for both the robot. If the distance of the new positions is more than the ELR, it is rejected and a new solution is generated. Similarly, if the next position or the solutions generated by the robot pairs do not satisfy the constraint of stick length, the solution is dropped and a fresh calculation is made. The objective function formulated in this algorithm is based on two constraints such as distance constraint between the robot pairs and collision avoidance with the obstacle which is computed in terms of the fitness. It is assumed as a minimization problem that minimizes the path length between the pre-assumed start and goal state.

$$ {\text{f}} = {\text{w}}_{1} \times {\text{f}}_{1} + {\text{w}}_{2} \times {\text{f}}_{2} $$
(12)

Where w1, w2 represents the weights and assigned with the value 0.5 and 0.5, f1 indicates the objective function to compute the distance between the robot pairs and computed as follows.

$$ {\text{f}}_{1} = \left\{ {\begin{array}{*{20}l} 1 & {{\text{if}}\quad ~(\left| {{\text{C}}_{{\text{i}}}^{{\prime}} - {\text{C}}_{{\text{j}}}^{{\prime}} } \right| \ne {\text{l}}_{{{\text{stick}}}} } \\ {\left| {{\text{C}}_{{\text{i}}}^{{\prime}} - {\text{C}}_{{\text{j}}}^{{\prime}} } \right|} & {{\text{otherwise}}} \\ \end{array} } \right. $$
(13)

Similarly, the second objective function describes the fitness of the solution by comparing it with the obstacle position and represented as follows.

$$ {\text{f}}_{2} = \left\{ {\begin{array}{*{20}l} 1 & {{\text{if}}\quad ~{\text{C}}_{{\text{i}}}^{{\prime}} \ne {\text{C}}_{{{\text{obs~~}}}} and~{\text{C}}_{{\text{j}}}^{{\prime}} \ne {\text{C}}_{{{\text{obs~~}}}} } \\ {D - {\text{D}}_{{{\text{th}}}} } & {{\text{otherwise}}} \\ \end{array} } \right. $$
(14)

where \({\text{D}}_{{{\text{th}}}}\) denotes the threshold distance between the obstacle and the robot position, and D denotes the actual distance obtained between the obstacle and the computed position of the robot.

4 Simulation and Result

A simulation environment has been established as a 400 × 550 pixel area on a computer screen. The proposed algorithm along with its competitor has been executed using programming in C language. The environment has been set with 10 obstacles and two pairs of robots. The robots are denoted as circle of radius 5 pixel units. The initial and goal positions are represented with different color circle. The stick is represented as a rectangle of size 10 × 20 pixel area. Experiments have been performed with varying the number of obstacle as 8, 10, 12, and 15. The amount of path traveled by each algorithm like MCS, IVFA, CS, SDA, and ABCO has been computed and shown in Fig. 1. Further, the obstacles are allowed to move for realizing a dynamic environment. To generate a collision-free path concerning the obstacles in motion, all the above-mentioned algorithms are executed and the path traveled in unit pixels is recorded in Fig. 2.

Fig. 1
A vertical bar graph titled average path travelled in static environment plots average path traveled in pixels versus number of obstacles. The plotted bars are labeled proposed, I C F A, C S, S D A, and A B C O. Estimated values are as follows: 8 - 410, 430, 510, 560, and 560; 15 - 490, 510, 560, 580, and 690.

Average path traveled in static environment

Fig. 2
A vertical bar graph titled average path travelled in dynamic environment plots average path traveled in pixels versus number of obstacles. The plotted bars are labeled proposed, I C F A, C S, S D A, and A B C O. Estimated values are as follows: 8 - 460, 470, 580, 590, and 610; 15 - 810, 920, 1090, 1100, and 1200.

Average path traveled in dynamic environment

Similarly, the number of turns required reaching the target in the static and dynamic environment is noted in Table 1. The number varies with respect to the number of obstacles. All the competing approaches are executed in the static environment incurred lesser number of turns as compared to the dynamic environment due to the motion of the obstacles. However, irrespective of the number of obstacles and environment, the proposed algorithm produces the optimal path with least number of turns as shown in Figs. 3 and 4. With less number of turns, the proposed algorithm requires less number of steps to reach its target. Figure 5 witnesses the supremacy of the proposed algorithm in terms of incurred steps in static environment. Similarly, the algorithms ICFA, SDA, CS, and ABCO have been executed along with the proposed algorithm in the dynamic environment and require lesser number of steps as shown in Fig. 6. Table 2 illustrates the superiority of the proposed algorithm as compared to other existing approaches in terms of steps. The amount of path deviated by each of the approaches is plotted in Figs. 7 and 8. In both the static and dynamic environment, the amount is minimal for the proposed algorithm.

Table 1 Number of turns require for the robot pairs to reach the target
Fig. 3
A vertical bar graph titled number turns made to reach the target in static environment plots number of turns versus proposed, I C F A, C S, S D A, and A B C O. The plotted bars are labeled robot pair 1 and robot pair 2. Estimated values are as follows: proposed 7, 11; I C F A 9, 13; C S 12, 17; S D A 14, 19; and A B C O 16, 21.

Turns made by robot pairs in static environment

The overall performance for each of the competing algorithm has been computed by considering the number of steps, turns, and path traveled using the following equation.

$$ {\text{per}} = {\text{a*steps}} + {\text{b*turn}} + {\text{c*path}} $$
(16)

In the above equation, the variables \({\text{a}},{\text{b}},\) and \({\text{c}}\) are assumed as the weighing parameters with the values 3, 2, and 1, respectively. The overall performance computed for each of the algorithm is illustrated in Figs. 9 and 10 for the static and dynamic environment, respectively. In both the environment, the proposed algorithm outperforms the competing algorithm.

Fig. 4
A vertical bar graph titled number turns made to reach the target in dynmic environment plots number of turns versus proposed, I C F A, C S, S D A, and A B C O. The plotted bars are labeled robot pair 1 and robot pair 2. Estimated values are as follows: proposed 8, 12; I C F A 13, 17; C S 15, 21; S D A 18, 24; and A B C O 20, 25.

Turns made by robot pairs in dynamic environment

Fig. 5
A line graph titled number of required steps to reach the target plots steps versus proposed, I C F A, C S, S D A, and A B C O. The plotted lines are labeled robot pair 1 and robot pair 2. Estimated values are - proposed (1, 17), (1, 19); I C F A (2, 20), (2, 24); C S (3, 21), (3, 25); S D A (4, 25), (4, 30); and A B C O (5, 29), (5, 34).

Steps made by robot pairs in static environment

Fig. 6
A line graph titled steps required to reach the target in dynamic environment plots Nsteps versus proposed, I C F A, C S, S D A, and A B C O. The plotted lines are labeled robot pair 1 and robot pair 2. Estimated values - proposed (1, 20), (1, 29); I C F A (2, 24), (2, 31); C S (3, 27), (3, 35); S D A (4, 30), (4, 38); and A B C O (5, 38), (5, 41).

Steps made by robot pairs in dynamic environment

Table 2 Number of steps require for the robot pairs to reach the target
Fig. 7
A line graph titled average path deviated in static environment plots average path deviated in pixels versus proposed, I C F A, C S, S D A, and A B C O. The plotted lines are labeled 8 obstacles, 10 obstacles, 12 obstacles, and 15 obstacles. The lines start from (proposed, 65) and (proposed, 105) to (A B C O, 130) and (A B C O, 200), estimated.

Path deviated in static environment

Fig. 8
A line graph titled average path deviated in dynamic environment plots average path deviated in pixels versus proposed, I C F A, C S, S D A, and A B C O. The plotted lines are labeled 8 obstacles, 10 obstacles, 12 obstacles, and 15 obstacles. The lines start from (proposed, 65) and (proposed, 135) to (A B C O, 160) and (A B C O, 310), estimated.

Path deviated in dynamic environment

Fig. 9
A line graph plots performance in unit cost versus proposed, I C F A, C S, S D A, and A B C O in static environment. The plotted lines are labeled pair 1 and pair 2. Estimated values are - proposed (1, 1015), (1, 1170); I C F A (2, 1120), (2, 1230); C S (3, 1170), (3, 1360); S D A (4, 1250), (4, 1425); and A B C O (5, 1300), (5, 1540).

Overall performance in static environment

Fig. 10
A line graph plots performance in unit cost versus proposed, I C F A, C S, S D A, and A B C O in dynamic environment. The plotted lines are labeled pair 1 and pair 2. Estimated values are - proposed (1, 1190), (1, 1400); I C F A (2, 1350), (2, 1490); C S (3, 1380), (3, 1560); S D A (4, 1540), (4, 1630); and A B C O (5, 1620), (5, 1680).

Overall performance in dynamic environment

5 Conclusion

The primary focus of the paper is to captivate the problem formulation of multiple mobile robots to transport a stick from one position to another position. The research work is in the framework of nature-inspired techniques to mimic the egg laying behavior of cuckoo. The pitfall of the basic CS algorithm is resolved by tuning the step size and scaling parameter dynamically. The proposed algorithm is validated using computer simulation through programming in C language. The paper justifies the superiority of the proposed algorithm in terms of path optimality, collision avoidance, and performance in both the static and dynamic environment. Further research may be extended for more number of mobile robots to realize the cooperation among them as the proposed paper is limited to the synchrony of two robots only.