**2. Extended random exploration graph**

The exploration strategy presented in this research is a modified version of the REG algorithm, where the main difference lies in the way in which the robot will plan the exploration trajectory by performing a deterministic analysis of the next position to be explored; the algorithm is shown in **Figure 1**.


**Figure 1.** *Extended REG algorithm.*

*Path Planning for Autonomous Vehicles - Ensuring Reliable Driverless Navigation...*

it simultaneously localizes and constructs the environment map.

called local safety region (LSR).

the robot to the root of the tree.

robot must move with the intention of maximizing the information obtained, while

Commonly, the development of SLAM path planners requires dynamic and agile algorithms that can be adapted to new operating conditions in environments when obstacles are detected; with this in mind, many proposals have been developed by various researchers [2–10], being one of the most popular the sensor-based random tree (SRT) presented by Oriolo, Freda, and Franchi in [11]. This method is based on the random generation of robot configurations within a local security area detected by the robot's sensors, from which a compact tree-type data structure is constructed, which represents the road map of the area explored. In this structure, the leaves represent a previously reached robot position and their respective representation of the environment segment detected by the onboard sensors in that position

The SRT method randomly selects free borders detected at the current position of the robot where he can continue the exploration task; in case it is not possible to find one, the robot will automatically go to its parent node to look for new areas with exploration possibility. The process ends when the backspace behavior leads

However, despite the popularity of the SRT scheme, it has certain problems that should be considered. The first of them lies in the ignorance of the state of the structure that is being built, where it is not possible to know if the nodes of the structure left behind contain more areas available for exploration, and therefore the total coverage of the environment cannot be guaranteed. The second problem depends on the first one, since not knowing which areas of the environment you remain unexplored, it is necessary for the robot to go back to parent nodes to find out if it is possible to continue exploring, which causes the structure to be traveled

From the above, a new method based on the SRT is developed by Franchi and others [4] for the multirobot case known as the sensor-based random graph (SRG). This method transforms the tree structure generated by the SRT method into an exploration network when the robot finds a safe way to travel between two nodes. In this method, a probability proportional to the length of the arc of the free edges that are in the node in which the robot is located is used to determine which will be the next position to explore; in addition, the way to verify the structure to establish the way to revisit zones already explored to continue the exploration is carried out by means of the generation of a tree of minimum expansion with all the adjacent nodes of the network, choosing that of the adjacent node with the greater weight with

The SRG method presents similar problems to those of the SRT method: although the data structure is transformed into an exploration graph, the structure is not fully exploited to make exploration more efficient, because the way of revisiting nodes to verify unexplored areas creates a tree structure, which generates a discontinuous path that forces the robot to go through the parent nodes, ignoring the versatility of the graph. In fact, if the number of adjacent nodes and the number of nodes that conforms the environment are too large, the time to complete the exploration is increased. Also, like the SRT method, the robot decides the next position to explore without considering that the randomness of the selection causes too

many orientation changes, which directly affects the odometric system.

More recently, Toriz et al. [12] presented a new approach known as the random exploration graph (REG), which optimizes map coverage in the exploration process. This method is based on the working principle of the SRT method and adapts it to build an exploration graph structure. Although this method has a probabilistic nature that can cause an excess of movements in the robot to complete its task and

twice, and consequently the exploration time is very high.

respect to the length of the free limits of the frontiers.

**64**

The initial node considered in the algorithm will be the starting and finishing node, and as in the rest of the exploration structure, it will contain a position reached by the robot (in this case it will be the initial *qinit* position), as well as a representation of the environment surrounding it known as the local security region (LSR) where the robot will be able to navigate without the risk of colliding with any obstacle. With this node created, the cycle controls the exploration process.

Next, in each iteration *k* of the algorithm, the frontiers of the nodes adjacent to the current node are evaluated with the intention of verifying which free frontier segments with possibility of exploration of these are of the current LSR. The nodes that present positive intersections in this evaluation will be updated eliminating the free frontier segments of both the neighboring node and the current node, with the intention of not considering these frontiers in a possible return of the robot to continue with the exploration. In addition, the verification of intersections between nodes is used to modify the structure of the exploration graph by adding edges between nonadjacent nodes as long as there are safe roads to travel between them (see **Figure 2**). The described analysis is performed by the function CURR\_INTERSECTION.

After the analysis of the frontiers of neighboring nodes covered by the new LSR and the modification of the exploration structure with new edges, the next step is to identify the remaining free frontiers *F* of the current position, which is performed by the FRONTIERS function. For each of the frontiers found, if they exist, an approximation point will be determined, which will serve to prioritize the free frontiers,

#### **Figure 2.**

*Modification of the exploration graph structure through the insertion of new edges between nonadjacent nodes. (a) The insertion of the edge between qi-1 and qi + 1 nodes is not possible (dotted red line) since there is no safe path between the nodes. (b) The insertion of the edge between the qi-1 and qi + 1 nodes is not possible (dotted red line) since, although there is a collision-free path between the nodes, the intersection of the LSRs does not have enough space to navigate safely between the nodes. (c) The insertion of the edge between the qi-1 and qi + 1 nodes is possible (dotted green line) since there is a collision-free path and enough space at the intersection of the LSRs to navigate safely.*

**67**

the LSR area (see **Figure 3**).

**Figure 3.**

*Hierarchy of frontiers.*

*Extending the Limits of the Random Exploration Graph for Efficient Autonomous Exploration…*

ranking them according to the effort required to reach them (FRONT\_DET function) and choosing a new frontier to explore which has the highest hierarchy.

The approximation point is defined as the midpoint of the arc segment formed by the frontiers, if they can be covered in their entirety by the threshold defined by

In the case that the criterion of choice of approximation point is not met, it will be redefined by taking the midpoint of the arc length proportional to the area that can be covered by the LSR, taken from the initial end of the border. With this new point chosen to continue the exploration, the frontier or segment of it, as the case may be, is removed

In the *qdest* position, the robot will calculate the surrounding space *Sdest* of this position (PERCEPTION function) and the VERIFIES function will determine precisely which is the real portion of the free frontier that was covered by this new LSR. In case the chosen frontier has not been fully covered, the remaining portion

from the group of free borders found by the REMOVE function (see **Figure 4**). With the new frontier to explore chosen and the approximation point of it defined, the DISPLACE function will obtain the new *qdest* position to visit to continue the exploration. This is done by taking a step of dimension *α \* r* in the direction of the border approximation point, where the parameter *α* represents the defined radius of the LSR and the value *r < 1* will guarantee that the new position will remain within it. Once the *qdest* position is obtained, the MOVE\_TO function

will plan the path and take the robot to this new position.

*DOI: http://dx.doi.org/10.5772/intechopen.84821*

*Extending the Limits of the Random Exploration Graph for Efficient Autonomous Exploration… DOI: http://dx.doi.org/10.5772/intechopen.84821*

**Figure 3.** *Hierarchy of frontiers.*

*Path Planning for Autonomous Vehicles - Ensuring Reliable Driverless Navigation...*

exploration process.

CURR\_INTERSECTION.

The initial node considered in the algorithm will be the starting and finishing node, and as in the rest of the exploration structure, it will contain a position reached by the robot (in this case it will be the initial *qinit* position), as well as a representation of the environment surrounding it known as the local security region (LSR) where the robot will be able to navigate without the risk of colliding with any obstacle. With this node created, the cycle controls the

Next, in each iteration *k* of the algorithm, the frontiers of the nodes adjacent to the current node are evaluated with the intention of verifying which free frontier segments with possibility of exploration of these are of the current LSR. The nodes that present positive intersections in this evaluation will be updated eliminating the free frontier segments of both the neighboring node and the current node, with the intention of not considering these frontiers in a possible return of the robot to continue with the exploration. In addition, the verification of intersections between nodes is used to modify the structure of the exploration graph by adding edges between nonadjacent nodes as long as there are safe roads to travel between them (see **Figure 2**). The described analysis is performed by the function

After the analysis of the frontiers of neighboring nodes covered by the new LSR and the modification of the exploration structure with new edges, the next step is to identify the remaining free frontiers *F* of the current position, which is performed by the FRONTIERS function. For each of the frontiers found, if they exist, an approximation point will be determined, which will serve to prioritize the free frontiers,

*Modification of the exploration graph structure through the insertion of new edges between nonadjacent nodes. (a) The insertion of the edge between qi-1 and qi + 1 nodes is not possible (dotted red line) since there is no safe path between the nodes. (b) The insertion of the edge between the qi-1 and qi + 1 nodes is not possible (dotted red line) since, although there is a collision-free path between the nodes, the intersection of the LSRs does not have enough space to navigate safely between the nodes. (c) The insertion of the edge between the qi-1 and qi + 1 nodes is possible (dotted green line) since there is a collision-free path and enough space at the intersection of the LSRs* 

**66**

**Figure 2.**

*to navigate safely.*

ranking them according to the effort required to reach them (FRONT\_DET function) and choosing a new frontier to explore which has the highest hierarchy.

The approximation point is defined as the midpoint of the arc segment formed by the frontiers, if they can be covered in their entirety by the threshold defined by the LSR area (see **Figure 3**).

In the case that the criterion of choice of approximation point is not met, it will be redefined by taking the midpoint of the arc length proportional to the area that can be covered by the LSR, taken from the initial end of the border. With this new point chosen to continue the exploration, the frontier or segment of it, as the case may be, is removed from the group of free borders found by the REMOVE function (see **Figure 4**).

With the new frontier to explore chosen and the approximation point of it defined, the DISPLACE function will obtain the new *qdest* position to visit to continue the exploration. This is done by taking a step of dimension *α \* r* in the direction of the border approximation point, where the parameter *α* represents the defined radius of the LSR and the value *r < 1* will guarantee that the new position will remain within it. Once the *qdest* position is obtained, the MOVE\_TO function will plan the path and take the robot to this new position.

In the *qdest* position, the robot will calculate the surrounding space *Sdest* of this position (PERCEPTION function) and the VERIFIES function will determine precisely which is the real portion of the free frontier that was covered by this new LSR. In case the chosen frontier has not been fully covered, the remaining portion

#### **Figure 4.**

*Criterion of approximation to the new frontier to explore. (a) The robot makes an incorrect approach to the new frontier, since the new LSR of the chosen position leaves two free frontiers in opposite directions. (b) Correct choice of the next position to explore, since, although the new RSL is unable to cover the border completely, no more than one free border is left.*

#### **Figure 5.**

*Frontier control. (a) Environment almost explored, where the arcs Fi and qj represent unexplored free frontiers. (b) List of nodes not fully explored (frontiers control).*

will be added to the list of free frontiers *F* of the previous node. Thus, if the *F* list of the node is not empty, its header will be added to the list of nodes with exploration possibility, also known as frontier control (see **Figure 5**).

After verification and validation of the structure with the new node, the ADD function will attach it to the exploration graph, and the objects on the map being constructed will be extended with the new information collected. At this point, the destination information (*qdest* and *Sdest*) obtained at the previous point will become the current node information (*qcurr* and *Scurr*), and the described process will start again.

When the robot fails to find a new position to explore in the current node, i.e., there are no more free frontiers, one of the nodes contained in the frontier control will be chosen to continue the exploration, where the choice of it will be determined by the A\* search algorithm in bidirectional way, where a path will extend from the current node to the frontier control nodes and from the nodes in the frontier control to the current position, ending when some path *P* is found (see **Figure 6**). At this moment the index of the node on which the trajectory was found will be removed from frontier control. This task is carried out by the FIND\_PATH function.

**69**

**Figure 7.**

*Flowchart of the extended REG method.*

*Extending the Limits of the Random Exploration Graph for Efficient Autonomous Exploration…*

*Bidirectional application of the A\* algorithm from the current position of the robot to the nodes with possibility* 

*DOI: http://dx.doi.org/10.5772/intechopen.84821*

*of exploration, stored in the frontiers control.*

**Figure 6.**

*Extending the Limits of the Random Exploration Graph for Efficient Autonomous Exploration… DOI: http://dx.doi.org/10.5772/intechopen.84821*

#### **Figure 6.**

*Path Planning for Autonomous Vehicles - Ensuring Reliable Driverless Navigation...*

will be added to the list of free frontiers *F* of the previous node. Thus, if the *F* list of the node is not empty, its header will be added to the list of nodes with exploration

*Frontier control. (a) Environment almost explored, where the arcs Fi and qj represent unexplored free frontiers.* 

*Criterion of approximation to the new frontier to explore. (a) The robot makes an incorrect approach to the new frontier, since the new LSR of the chosen position leaves two free frontiers in opposite directions. (b) Correct choice of the next position to explore, since, although the new RSL is unable to cover the border completely, no* 

After verification and validation of the structure with the new node, the ADD function will attach it to the exploration graph, and the objects on the map being constructed will be extended with the new information collected. At this point, the destination information (*qdest* and *Sdest*) obtained at the previous point will become the current node information (*qcurr* and *Scurr*), and the described process will start again. When the robot fails to find a new position to explore in the current node, i.e., there are no more free frontiers, one of the nodes contained in the frontier control will be chosen to continue the exploration, where the choice of it will be determined by the A\* search algorithm in bidirectional way, where a path will extend from the current node to the frontier control nodes and from the nodes in the frontier control to the current position, ending when some path *P* is found (see **Figure 6**). At this moment the index of the node on which the trajectory was found will be removed from frontier control. This task is carried out by the FIND\_PATH function.

possibility, also known as frontier control (see **Figure 5**).

*(b) List of nodes not fully explored (frontiers control).*

**68**

**Figure 5.**

**Figure 4.**

*more than one free border is left.*

*Bidirectional application of the A\* algorithm from the current position of the robot to the nodes with possibility of exploration, stored in the frontiers control.*

**Figure 7.** *Flowchart of the extended REG method.*

The MOVE\_TO function will then use the path P obtained in the previous step to take the robot to the node from where scanning will continue. In this way, the method will continue executing the described process, until there are no more free frontiers in the current node, and the frontier control list is empty; at this point, the robot will look for a path to return to the initial node from where the exploration process starts. **Figure 7** shows the flow diagram of the extended REG algorithm.
