# Proposed Smooth-STC Algorithm for Enhanced Coverage Path Planning Performance in Mobile Robot Applications

^{1}

^{2}

^{*}

## Abstract

**:**

## 1. Introduction

## 2. Related Research

- First, it is necessary to divide the environment into small continuous areas where the robot can completely move without colliding with obstacles [17];
- All of them need to have a mechanism for linking domains to achieve optimal coverage; “backtracking” points are used with different algorithms to find the shortest path from the current location to those backtracking points. The greater the number of backtracking points, the larger the overlap area and the longer execution time for the robot. Moreover, the robot also requires a large enough memory to store all of the backtracking points.

## 3. Robot Coverage Path Planning in Unknown Environments

## 4. Robot Coverage Path Planning Environments

#### 4.1. Conceptual Cells of the Robot

#### 4.2. Nodes in a Mega Cell and Sub Cells

#### 4.3. C-Space in the World of the Mobile Robot

#### 4.4. Adjacent Graph

#### 4.4.1. Connection Edge between Two Nodes of Two Adjacent Mega-Cells

#### 4.4.2. Input and Output Edges

#### 4.5. Proposed Smooth-STC Algorithm

#### 4.5.1. Smooth-STC in a Known Environment

Algorithm 1: SmSTC_offline(G, s). |

Input: a grid G includes n mega-cells ${M}_{1},{M}_{2},\dots ,{M}_{n}$ and a starting Cell s of MegaCell ${M}_{s}$Output: A coverage path P that cover all reachable cells in G from s1: T = $Create\_Spaning\_Tree(G,{M}_{s})$ 2: P = $Coverage\_Step(s,T)$ 3: return PProcedure $Creat\_Spaning\_Tree$ $(G,{M}_{s}):$1: T = tree consisting only the MegaCell ${M}_{s}$ 2: visit(${M}_{s}$): 3: for each $MegaCellW$ adjacent to ${M}_{s}$ and not yet in T do4: add W and edge $\{{M}_{s},W\}$ to T5: visit(W) 6: end forProcedure Coverage_Step(s, T):1: $P\leftarrow \varnothing $ 2: current.Cell $\leftarrow s$, current.MegaCell $\leftarrow {M}_{s}$ 3: while $(\exists {M}_{i}\in G$ that ∃ edge {${M}_{i}$, current.MegaCell} $\in T$:4: if $(\exists {M}_{j}\in G$ that ∃ edge {current.MegaCell,${M}_{j}$} $\in T)$ then5: add path from current.Cell to next.Cell to P6: current.Cell $\leftarrow \mathit{next}.Cell$, current.MegaCell $\leftarrow MegaCell(\mathit{next}.Cell)$ 7: else8: add path from current.Cell to Cell(last.MegaCell) to P9: current.MegaCell ← last.MegaCell, current.Cell $\leftarrow Cell(\mathit{last}.MegaCell)$ |

#### 4.5.2. The SmSTC Algorithm in Unknown Environment

**SmSTC on-line Algorithm**:

**Sensors**: Position and direction sensors, detect obstacles in adjacent 4 mega-cell sensors.**Input**: Start $MegaCell{M}_{s}$.**Recursive function**: SmSTC ($w,x$), where $x\leftarrow $current.MegaCell, $w\leftarrow $parent.MegaCell$\left(x\right)$.**Initialisation**: SmSTC ($null,{M}_{s}$).

Algorithm 2: SmSTC($w,x$). |

1: $x\leftarrow visited$.Cell 2: While ∃ unvisited.Cell do3: $y\leftarrow firstNeighbours\left(x\right)$ 4: Build_Edge($x,y$) 5: if y is free then6: $x\leftarrow $ Cell$\left(y\right)$ 7: if y is not free then8: $accessEdge\leftarrow $ Build_C-Space_Contour$\left(y\right)$ 9: x follow $accessEdge$ to return x 10: SmSTC($x,y$)11: if x is not ${M}_{s}$ then12: move to x |

- Finding adjacent mega-cells in the counter-clockwise direction at step 2.1 ensures the path of robot when it encircles the spanning tree in a uniform direction (Figure 12a);
- At step 2.2 if x is completely free and the robot is located at a certain sub-cell of x and it can move to an “unvisited” mega-cell y;
- An edge of the spanning tree $\overrightarrow{xy}$ will be created from the mega-cell x to y. This edge will be treated as the output edge from x and the input edge in y. With the mega-cell x partially occupied, it only has input edges;
- The coverage is carried out in steps 2.3 and 2.4 for two abilities to be completely free or partially occupied by obstacles. If y is completely free then from the sub-cell position in x the robot can move to a certain sub-cell in y by moving along the right side of the $\overrightarrow{xy}$ edge (Figure 12b);
- Because y is not occupied by an obstacle, this coverage path is always guaranteed in one direction (step 2.3). If y is partially occupied by an obstacle, the robot needs to calculate the C-Space surrounding y (step 2.4);
- Assuming a robot with a circle of centre I that can see its movement as a movement of the centre I. At this point, the robot still follows the edge to enter the y until its centre I lies on the road. The boundary of the space C-Space moves centre I on this boundary from right to left of the $\overrightarrow{xy}$ edge, until the centre I is on the other side of edge $\overrightarrow{xy}$ then the robot follows the edge to return to x (Figure 12);
- Call recursively for the current node y and parent node x (step 2.4). If the current mega-cell ${x}_{o}$ has no neighbours marked as “unvisited” then ${x}_{o}$ is a leaf node when the robot will move back to the parent node (Figure 12c) or ${x}_{o}$ is the start node S. So, the robot has finished covering and the algorithm has ended. Figure 12 details the robot movement in the sub-cells of this algorithm.

## 5. Implementation

- Push the start button in the stack, from the current node found node n which is the first unvisited neighbour in a anticlockwise order;
- If the n node is not empty, move the robot from the current node to node n. Mark the current button as the previous node of node n (setPreNode is the current node). Mark the n button as visited;
- If the next node n is empty, pop the current node off the stack.;
- The robot moves from the current node to the stack top button. Mark the previous node of the top of stack with the current node.
- This process repeats until stack is empty. The stack operation illustration is shown in Table 1.

## 6. Results and Discussion

#### 6.1. Simulation

#### 6.2. Evaluation in a ‘Real-World’ Environment

#### 6.3. Open Research Questions and Future Work

## 7. Conclusions

## Author Contributions

## Funding

## Acknowledgments

## Conflicts of Interest

## References

- Atkar, P.N.; Greenfield, A.; Conner, D.C.; Choset, H.; Rizzi, A.A. Hierarchical segmentation of surfaces embedded in R3 for auto-body painting. In Proceedings of the 2005 IEEE International Conference on Robotics and Automation, Barcelona, Spain, 18–22 April 2005; pp. 572–577. [Google Scholar] [CrossRef]
- Najjaran, H.; Kircanski, N. Path planning for a terrain scanner robot. In Proceedings of the International Symposium on Robotics. International Foundation for Robotics Research, Snowbird, UT, USA, 9–12 October 2000; Volume 31, pp. 132–137. [Google Scholar]
- Galceran, E.; Carreras, M. A survey on coverage path planning for robotics. Robot. Auton. Syst.
**2013**, 61, 1258–1276. [Google Scholar] [CrossRef] [Green Version] - Abukhalil, T.M.; Patil, S.P.; Sobh, T. Coordinating a heterogeneous robot swarm using Robot Utility-based Task Assignment (RUTA). In Proceedings of the 2016 IEEE 14th International Workshop on Advanced Motion Control (AMC), Auckland, New Zealand, 22–24 April 2016; pp. 57–62. [Google Scholar]
- Horváth, E.; Pozna, C.; Precup, R.E. Robot coverage path planning based on iterative structured orientation. Acta Polytech. Hung.
**2018**, 15, 231–249. [Google Scholar] [CrossRef] - Abukhalil, T.; Patil, M.; Sobh, T. Survey on decentralized modular swarm robots and control interfaces. Int. J. Eng. (IJE)
**2013**, 7, 44–73. [Google Scholar] - Palacin, J.; Palleja, T.; Valganon, I.; Pernia, R.; Roca, J. Measuringcoverage performances of a floor cleaning mobile robot using a vision system. In Proceedings of the 2005 IEEE International Conference on Robotics and Automation, Barcelona, Spain, 18–22 April 2005; pp. 4236–4241. [Google Scholar] [CrossRef]
- Yasutomi, F.; Yamada, M.; Tsukamoto, K. Cleaning robot control. In Proceedings of the 1988 IEEE International Conference on Robotics and Automation, Philadelphia, PA, USA, 24–29 April 1988; Volume 3, pp. 1839–1841. [Google Scholar] [CrossRef]
- Cao, Z.L.; Huang, Y.; Hall, E.L. Region filling operations with random obstacle avoidance for mobile robots. J. Robot. Syst.
**1988**, 5, 87–102. [Google Scholar] [CrossRef] - Zafar, M.N.; Mohanta, J. Methodology for path planning and optimization of mobile robots: A review. Procedia Comput. Sci.
**2018**, 133, 141–152. [Google Scholar] [CrossRef] - Choset, H. Coverage for robotics—A survey of recent results. Ann. Math. Artif. Intell.
**2001**, 31, 113–126. [Google Scholar] [CrossRef] - Gabriely, Y.; Rimon, E. Spiral-STC: An on-line coverage algorithm of grid environments by a mobile robot. In Proceedings of the 2002 IEEE International Conference on Robotics and Automation (Cat. No.02CH37292), Washington, DC, USA, 11–15 May 2002; Volume 1, pp. 954–960. [Google Scholar] [CrossRef]
- Shivashankar, V.; Jain, R.; Kuter, U.; Nau, D. Real-time planning for covering an initially-unknown spatial environment. In Proceedings of the Twenty-Fourth International Florida Artificial Intelligence Research Society Conference, Palm Beach, FL, USA, 18–20 May 2011. [Google Scholar]
- Acar, E.U.; Choset, H. Sensor-based coverage of unknown environments: Incremental construction of morse decompositions. Int. J. Robot. Res.
**2002**, 21, 345–366. [Google Scholar] [CrossRef] - Gage, D.W. Randomized search strategies with imperfect sensors. In Mobile Robots VIII; International Society for Optics and Photonics: Bellingham, WA, USA, 1994; Volume 2058, pp. 270–280. [Google Scholar]
- Moravec, H.; Elfes, A. High resolution maps from wide angle sonar. In Proceedings of the 1985 IEEE International Conference on Robotics and Automation, St. Louis, MO, USA, 25–28 March 1985; Volume 2, pp. 116–121. [Google Scholar] [CrossRef]
- Hert, S.; Tiwari, S.; Lumelsky, V. A terrain-covering algorithm for an AUV. In Underwater Robots; Yuh, J., Ura, T., Bekey, G.A., Eds.; Springer US: Boston, MA, USA, 1996; pp. 17–45. [Google Scholar]
- Gonzalez, E.; Alvarez, O.; Diaz, Y.; Parra, C.; Bustacara, C. BSA: A complete coverage algorithm. In Proceedings of the 2005 IEEE International Conference on Robotics and Automation, Barcelona, Spain, 18–22 April 2005; pp. 2040–2044. [Google Scholar] [CrossRef]
- Viet, H.H.; Dang, V.H.; Laskar, M.N.U.; Chung, T. BA*: An online complete coverage algorithm for cleaning robots. Appl. Intell.
**2013**, 39, 217–235. [Google Scholar] [CrossRef] - Chaomin, L.; Yang, S.X. A real-time cooperative sweeping strategy for multiple cleaning robots. In Proceedings of the IEEE Internatinal Symposium on Intelligent Control, Vancouver, BC, Canada, 30 October 2002; pp. 660–665. [Google Scholar] [CrossRef]
- Luo, C.; Yang, S.X. A bioinspired neural network for real-time concurrent map building and complete coverage robot navigation in unknown environments. IEEE Trans. Neural Netw.
**2008**, 19, 1279–1298. [Google Scholar] [CrossRef] - Luo, C.; Yang, S.X.; Mo, H.; Li, X. Safety aware robot coverage motion planning with virtual-obstacle-based navigation. In Proceedings of the 2015 IEEE International Conference on Information and Automation, Lijiang, China, 8–10 August 2015; pp. 2110–2115. [Google Scholar] [CrossRef]
- Hodgkin, A.L.; Huxley, A.F. A quantitative description of membrane current and its application to conduction and excitation in nerve. J. Physiol.
**1952**, 117, 500–544. [Google Scholar] [CrossRef] [PubMed] - Yang, S.X.; Luo, C. A neural network approach to complete coverage path planning. IEEE Trans. Syst. Man Cybern. Part B (Cybern.)
**2004**, 34, 718–724. [Google Scholar] [CrossRef] [PubMed] - Zelinsky, A.; Jarvis, R.A.; Byrne, J.; Yuta, S. Planning paths of complete coverage of an unstructured environment by a mobile robot. Proceedings of International Conference on Advanced Robotics, Tsukuba, Japan, 8–9 November 1993; Volume 13, pp. 533–538. [Google Scholar]

**Figure 2.**The limitations of Spanning Tree Covering (STC) and Full-STC algorithm when robots ignored many areas.

S | A-B | |

S | A-B-C | |

… | … | |

S | A-B-C-D-E-F-G-H-I-K-L-M | |

Pop M off the stack | ||

S | A-B-C-D-E-F-G-H-I-K-L | |

Push N in stack | ||

S | A-B-C-D-E-F-G-H-I-K-L-N | |

Pop N off the stack | ||

S | A-B-C-D-E-F-G-H-I-K-L | |

Pop F off the stack | ||

S | A-B-C-D-E | |

Push O in stack | ||

S | A-B-C-D-E-O | |

… | … | |

Pop A off the stack | ||

S | Null | |

Finish |

© 2019 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).

## Share and Cite

**MDPI and ACS Style**

Pham, H.V.; Moore, P.; Truong, D.X.
Proposed Smooth-STC Algorithm for Enhanced Coverage Path Planning Performance in Mobile Robot Applications. *Robotics* **2019**, *8*, 44.
https://doi.org/10.3390/robotics8020044

**AMA Style**

Pham HV, Moore P, Truong DX.
Proposed Smooth-STC Algorithm for Enhanced Coverage Path Planning Performance in Mobile Robot Applications. *Robotics*. 2019; 8(2):44.
https://doi.org/10.3390/robotics8020044

**Chicago/Turabian Style**

Pham, Hai Van, Philip Moore, and Dinh Xuan Truong.
2019. "Proposed Smooth-STC Algorithm for Enhanced Coverage Path Planning Performance in Mobile Robot Applications" *Robotics* 8, no. 2: 44.
https://doi.org/10.3390/robotics8020044