1. Introduction
Based on the technological development of industry 4.0 [
1], robots can accomplish many tasks in smart factories. Therefore, many workers in smart factories have been replaced by robots. A single robot can accomplish some tasks, but others with high complexity and/or in large spaces may require multiple robots to work together [
2]. Decreasing transit time, increasing system reliability, path planning, and collision avoidance are challenging problems for cooperative multi-robot groups. Path planning is one of the challenges, and it can be divided into single-robot path planning [
3,
4] and multi-robot path planning [
5,
6]. In this paper, we deal with the problem of path planning for multiple robots in a dynamic environment.
There have been a lot of papers studying the problem of single-robot or multi-robot path planning. For the path planning of a single robot, Reference [
7] created a robot navigation system that presented a path generation method within a maze of arbitrary complexity and optimized the generated path with the appropriate boundary conditions. An immunity algorithm is proposed by [
8], in which the robot could perform its task through optimal path planning and minimal rotation angle efficiency. Traditional and heuristic approaches to path planning were proposed, such as the potential field method and A* algorithm, as seen in papers [
9,
10]. Reference [
11] chose the roadmap method and utilized a Voronoi diagram to calculate the optimal path between a single source and a single destination with some polygonal obstacles. Reference [
12] proposed a jump point search (JPS) A* algorithm to improve computational time and path optimality and compared it with other algorithms like basic Theta*, Phi*, and A* in different scenarios. A modified genetic algorithm (MGA) based on the Bezier curve method was proposed by [
13], in which the robot’s path is dynamically determined based on the obstacles’ locations and improved the exploration capabilities. In the study of multi-robot path planning, Reference [
14] proposed an improved gravitational search algorithm (IGSA) in a dynamic environment to optimize path trajectories for multiple robots. An improved particle swarm optimization (IPSO) algorithm and an improved gravity search algorithm (IPSA) are combined to achieve a collision-free smooth optimal path from the beginning position to the end position in [
15]. A hierarchical model predictive (HMP) control was introduced by [
16,
17] to address the heuristic search methods that cannot provide path stability through theoretical guarantees for multiple robots. Reference [
18] emphasized a team of robots in formation control mode for robot navigation in two-dimensional and three-dimensional spaces with mobile obstacles. Recently, there have been some works on coverage path planning, which has become a relevant topic. In paper [
19], a flock of unmanned aerial vehicles (UAVs) was used to reconstruct rough terrains to plan safe trajectories for an unmanned ground vehicle (UGV). Reference [
20] used UAV to identify terrain morphology and unstructured vineyards to develop an algorithm for generating a path for UGV.
The preliminary idea used in this study is a Voronoi diagram [
21], which uses multiple points as the cores to divide a flat space into several areas for the path planning of the robot’s moving. Although the Voronoi diagram is not a new concept used in path planning for robots’ cooperation and exploration, it still plays a critical role in improving various algorithms for different purposes. For instance, Reference [
22] used a Voronoi diagram and the particle swarm optimization algorithm to achieve multi-robot navigation and obstacles avoidance. In paper [
23], the Voronoi diagram divides farmland into several areas for multiple robots to perform agriculture tasks. For multi-robot exploration problems, paper [
24] used the distributed Voronoi partition to disperse the robot and then used the parametric algorithms to further control the robot’s dispersion behavior to achieve the maximum area exploration. This paper considers the path planning problem in a space with multiple obstacles and multiple robots, and those obstacles and robots are not points but have body size. The generalized Voronoi diagram (GVD) [
25] is used to deal with the problem. Reference [
26] presents a nonuniform sampling technique to find an optimal path on the map, the map uses the generalized Voronoi graph to initialize, and the path is calculated by a heuristic path method. To improve the motion planning efficiency of the rapidly exploring random tree and its variants (RRTs), Reference [
27] presents a GVD-based heuristic path planning algorithm to generate a heuristic path and guide the sampling process of RRTs.
In this paper, a navigation strategy with path priority (NSPP) is proposed to solve the problem of multiple robots moving in a large space with some static or/and dynamic obstacles. The main contributions of the paper are as follows. 1. The Voronoi diagram for a single-robot path planning is extended to multiple robots. 2. Each robot has its path-priority order to make the path of each robot more efficient. Suppose a control center manages an unmanned factory where each robot is set a unique path-priority order depending on the importance of its task. Each robot moves from its initial position to the target position without colliding with other robots or obstacles.
Section 2 defines the problem to be solved and explains what the path-priority order of the robot is.
Section 3 is the main session to build the navigation strategy with path priority (NSPP). Simulations and comparisons are carried out in
Section 4. Finally, the conclusion is given in
Section 5.
The main idea of the algorithm is that the Voronoi diagram for single-robot path planning is extended to multiple robots. Suppose a control center manages an unmanned factory where each robot is set a unique path-priority order. The path-priority order for each robot depends on the importance of its task so that all robots with priority orders moving in the factory will be more efficient.
3. The Navigation Strategy with Path Priority
This section introduces the main algorithm of this paper called the navigation strategy with path priority (NSPP) to solve the problem. The NSPP contains five steps as follows and is summarized as the flowchart in
Figure 1.
- Step 1
Giving the flat space map for the robot moving includes obstacles and all wheeled robots initially.
- Step 2
Setting the path-priority order for each robot and applying the GVD map division to each robot according to its path-priority order.
- Step 3
Finding an efficient path for any robot from the starting point to the target point.
- Step 4
Designing the velocity control strategy for all robots.
- Step 5
To avoid any collision, the robot moving should follow the path-priority order defined in Step 2 to determine whether it moves continuously or stops and waits to avoid a collision.
The following figure summarizes the above steps and is explained in detail below.
3.1. Step 1 and Step 2: Giving an Environment Map and Generalized Voronoi Diagram (GVD) Map Division
Suppose a map with fixed obstacle positions is shown in
Figure 2a. To avoid the robot hitting any obstacle, the gray boundary for each obstacle is dilated from the periphery of the obstacle, as shown in
Figure 2b. The size of the dilatation is based on the radius of the considered robot’s body. Let the Voronoi corners [
28] for each obstacle be shown as the red dots in
Figure 2c, where the Voronoi corners include the detected corners and some assigned extra corners. In this study, the extra corners on the boundary of the map are equidistantly set with twice the diameter of a robot and those on the edges of the obstacle are equidistantly set with the diameter of a robot. Those extra corners are added on the workspace boundary and the edges of obstacles. Due to adding the extra corners, navigation points will not be easily influenced by a Voronoi corner and there will be more paths to be chosen by the robot. In this paper, the locations of extra corners are set by a designer’s experience. The segmented areas divided by blue lines using a Voronoi diagram are shown in
Figure 2d, where any intersection point of blue lines is called a navigation point of robots. Those blue lines passing through obstacles are deleted, as shown in
Figure 2e, called the generalized Voronoi diagram (GVD) [
29]. The moving path of a robot consists of several links, where each link connects two adjacent navigation points. It is known that if there are few extra corners, then there are few blue lines too (see
Figure 2f). In this study, the number of each robot is the path-priority order number of the robot. For instance, robot-1 has higher path priority than robot-2 does.
There are some navigation points in the GVD divided map, as shown in
Figure 2e, and each robot can move from any navigation as an initial position to the target point along the blue lines. However, if there are additional fixed or dynamic obstacles in the space, we will immediately update the divisions in
Figure 2d depending on the movements of the considered robot. For instance, as shown in
Figure 3a,b,e, there are seven obstacles and two robots (represented by green circles) in the space, and these maps are in
Figure 3 based on robot-2’s viewpoint.
Figure 3a,b shows the positions of robot-1 and robot-2 between adjacent time frames.
Figure 3c,d are the local enlargements of
Figure 3a,b, respectively, and show many feasible paths (the red arrows) to the navigation points around robot-2. It is noted that some feasible paths may be blocked by higher path-priority robots later. To avoid blocking situations happening, let us have an extra assigned Voronoi corner at the center of the lower path-priority robot (robot-2), such that an extra Voronoi cell is created around robot-2 as shown in the yellow areas of
Figure 3e,f, respectively. It is seen that the feasible paths of robot-2 in the yellow Voronoi field shown in
Figure 3f will not block the higher path-priority robot’s moving.
From now on, we can set path priorities for all robots depending on the importance of each robot’s task such that the robot transit will be more efficient. In other words, the higher path-priority robots can plan a path ahead of the lower path-priority robots, and the lower path-priority robot will regard the higher path-priority robot as a moving obstacle to be avoided. To increase the safety factor, the dilated range of the moving obstacle depends on the radius of the higher path-priority robot. Then we will use GVD to detect all obstacles and create the Voronoi corners to update the divided map.
Figure 4a shows the map of robot-1 (from robot-1’s point of view),
Figure 4b shows that robot-1 is the dynamic obstacle in the map of robot-2, and
Figure 4c shows that robot-1 and robot-2 are the dynamic obstacles to robot-3 in its map, and so on. It is noted that
Figure 4 shows the different robots’ points of view at the same point in time.
3.2. Step 3: Path Planning
This subsection desires to find the efficient path for each robot in the space. In the beginning, the initial starting points and target points for all robots are set. Each robot moves from the starting point to the target point along links of the navigation points in the divided map, many feasible paths may be reached. Here, a Dijkstra algorithm [
30] is used to calculate the lengths of all possible paths and find the shortest path between the starting point and target point for each robot using the links between navigation points on the map. As shown in
Figure 5, if the robot has to pass between two obstacles, by using GVD, the feasible path between the two obstacles will pass through the midpoint of two obstacles with equal distance to both obstacles i.e., O
1 = O
2, where O
1 and O
2 are the distances between the path line and the two obstacles, respectively. In
Figure 6a, the red line indicates a feasible path for robot-1 to reach the target point using the navigation points generated by the GVD. However, it is obvious that this path is not a short enough path to the target. To shorten the length of the red path, we may reduce the number of navigation points to find another shorter path using the algorithm in Algorithm 1. Note that both the starting and target points are navigation points that the robot can follow. Algorithm 1 defines two parameters, “scan” and “check”, to simplify the path that is generated by Dijkstra algorithm. The “scan” begins from the starting point to the previous navigation point from target, but the “check” starts from the target point to the next numbers of “scan”. For each iteration of “scan” and “check” parameters, we need to detect the obstacle on the connecting line between two navigation points corresponding to the “scan” and “check” numbers, respectively. If there is no obstacle on the connecting line, then the connecting line is a shortcut. Once a shortcut generates, the “scan” number will be changed to the number of “check” and the “check” will return to the beginning point (target point). Then repeat the above operations until the “scan” number reaches the target point. Then the final paths for robot-1, robot-2, and robot-3 are shown as the green paths in
Figure 6a–c, respectively.
Algorithm 1. Path planning algorithm. |
Input: All navigation points (NPk, k = 1, 2, … n) generated by Dijkstra algorithm Output: The better navigation points () depends on the input navigation points
- 1:
Begin - 2:
# Save the target point - 3:
For to # “scan” from the starting point to the previous navigation point from target - 4:
For to # “check” from the target point to the next number of “scan” - 5:
If (there is no obstacle on the connecting line between and ) - 6:
# save the shortcut point number - 7:
, # the next “scan” number is from the “check” numbers - 8:
Break # force into next round - 9:
End If - 10:
End For - 11:
End For - 12:
End
|
3.3. Step 4: Velocity Control Strategy
To have a real simulation to verify the feasibility of the proposed NSPP, we have the following arrangement for each robot. Let us establish a robot polar coordinate [
31,
32] between the current position of the robot and the next navigation point (or the target) position as shown in
Figure 7, where the origin of the coordinate is the next navigation point (or the target) position and the position of the robot is denoted by
, where
is the distance between the robot and the next navigational point (or the target), and
is the orientation angle of the robot in the polar coordinate. Let
be the angle between the moving direction of the robot and the horizontal axis, and
and
are defined. Here,
is the speed of the robot moving,
is the rotational speed of the robot,
is the half-length of the distance between two wheels, and
and
indicate the velocities of the left and right wheels, respectively, of the robot. Therefore, we have Equation (1) [
31,
32].
where
Furthermore, let
denote that the forward moving speed depends on the distance from the robot to the next navigational point (target), and
means the rotational speed is determined by the angles of
. From Equations (2) and (3), we can find the velocities of the left wheel as
and of the right wheel as
, respectively. Finally, let the left and right wheel speeds be normalized as Equations (4) and (5) to avoid speed reduction when the robot moves closer to the navigational point.
where
k is a constant.
Since vl and vr depend on the value of , the speed reduction happens when the robot is close to the navigation point (such as point 1). However, the robot still needs to move to the next navigation point (such as point 2), and then it will start to speed up its speed due to new from point 1 to point 2. Therefore, the speed of the robot will be changed frequently between any two navigation points. This situation is not efficient for the robot moving and should be avoided. Since the speed of the robot is , then by the normalization in Equations (4) and (5), the final v will be , which is a constant speed.
There are many parameters to be set for the above equations. We set and , which can be called the mode 1 (rotation mode) with . Let and , which can be called the mode 2 (forward mode) with . In mode 1, we are only concerned about the direction in which the robot is moving. Mode 2 forces the robot to move toward the target regardless of its orientation on reaching the target point.
3.4. Step 5: The Collision Avoidance Strategy
First, we define a sector in front of a certain robot (for instance, robot-
j) as shown in
Figure 8, where the sector denotes the dangerous area. The robot-
j has the sector to robot-
n, but robot-
n does not have such sector to robot-
j, where
j <
n. If robot-
n has obstacles on that area, they may be hit by the moving robot-
j. The reasons for the collision are as follows. (1) Robot-
j will not change its planned path because of robot-
n, (2) the sector of robot-
j is too small, and (3) robot-
n does not have such a sector to detect robot-
j. It is noted that if each robot has its sector to detect other robots, then all robots may be stuck moving. In
Figure 8,
is the radius of the sector, which is
h times robot-
j’s radius, i.e.,
, where
Lj is the radius of robot-
j.
is the center angle of the sector of robot-
j, and it is larger than 30 degrees.
is the distance between robot-
j and robot-
n.
Gjn is the angle for robot-
j rotating to face robot-
n. Therefore, when robot-
n is inside the dangerous area (sector) of robot-
j as in Expression (6),
where
and
for robot-
j. Then
, which denotes robot-
j, stops to wait for robot-
n to avoid the collision. The reason to choose
and
is based on our simulation experience to guarantee the sector is big enough to avoid robot-
j hitting robot-
n.
Since the robot with lower path priority will regard the robot with higher path priority as an obstacle to be avoided, the path of the robot with the lower path priority will frequently change to avoid the moving obstacles (i.e., the robots with higher path priority). However, the planned path of the robot with higher path priority does not change often, but it may stop to wait for lower path-priority robots to pass through its path. The above two points will be verified in the next section.
To emphasize the importance of the collision avoidance strategy, we provide a video on the website
https://youtu.be/E40GOXhh-QQ (accessed on: 24 September 2021) to illustrate the robots’ moving status with or without the avoidance strategy, respectively.
5. Conclusions
To improve factory operation efficiency, the engineers can determine the path priority for each robot depending on the importance of the robot’s task and then request the shorter average path for total robots. In this paper, an efficient navigation algorithm with path priority (NSPP) for multi-robot moving is proposed. Multiple robots can reach their respective target points with highly efficient paths and without collisions in a flat space with obstacles. The methods of ROA and SDA also achieved collision-free navigation for multiple robots, but in this study, we used the path-priority concept, GVD and Dijkstra, and obstacle avoidance strategies to develop an efficient NSPP to achieve the same objective. The performance of the NSPP was compared with those of the SDA and ROA, and it was found that the NSPP has a better average trajectory length than the others in four- or eight-robot configurations, as shown in
Figure 16.
We have to mention that the proposed NSPP can be applied to any number of robots; however, it is not guaranteed that the performance of the proposed NSPP is the best compared to other methods when the number of robots increases or the working environment is changed. We have to admit that the NSPP still needs some improvement such as having a path priority that can be replaced by moving priority, in other words, maybe the robot with higher moving priority can move without avoiding any other lower priority robot; on the contrary, the lower moving priority robot should avoid hitting higher moving priority robot on the way. In other words, the robot with higher moving priority can follow its planned path to move, and the robot with lower moving priority has to change its planned path frequently or maybe uses speed adjustment to slow down so that the robot with higher moving priority is not hit by the robot with lower moving priority. However, whether moving priority or path priority has a more efficient performance will be studied in the near future.
At last, we have to mention that there is also a method called “visibility graph” [
34] for dealing with the path planning problem for a robot. The purpose of the visibility graph is to find the shortest path for a robot, which is similar to the GVD in the proposed method. However, comparing the time complexity between the GVD and the visibility graph, there are O (n log n) for the GVD [
35] and O (n
2 log n) for the visibility graph [
34], where
n is the total number of input points. Hence, the time cost of using the GVD to find the feasible path is faster than using the visibility graph.