1. Introduction
In the field of automatic navigation of wheeled mobile robots, path planning is a frequently researched area. The main goal of a path planning algorithm is to plan a collision-free path from the initial state to the target in the constructed space of the robot [
1]. Path planning is divided into global path planning and local path planning. Global planning [
2,
3,
4] is able to accomplish the task in known static environments. However, environments and obstacles change dynamically in most navigation processes. When a mobile robot performs tasks according to global path planning, it must use various devices on board, such as lidar, depth cameras, and IMUs, to sense the surrounding environment and its own state and quickly plan local collision-free paths. For navigation, robots therefore usually use a combination of global path planning and local path planning [
5,
6,
7].
The Rapid Exploration Randomized Tree [
8] (RRT) has been shown to be a very effective global path planning algorithm; RRT can plan paths quickly and simply by generating a tree structure at high-speed increments in the construction space to find a goal. However, RRT algorithms also possess some constraints, such as not having asymptotic optimality [
9,
10] and an the inability to avoid dynamic obstacles; variants of improved RRT algorithms have, therefore, been proposed. Jin-Gukang [
11] et al. proposed a “Post-Triangular Rewiring” method, which reduces the path planning time, improves efficiency, and creates an algorithm close to the global optimum. Moon C [
12] et al. proposed a dual-tree fast exploration random tree (DT-RRT) algorithm to decrease the computational complexity of the RRT. In addition, DT-RRT reduces the length of the path and increases the coverage of the sampling points. Nasir J et al. proposed an RRT* [
13] algorithm which can make the path asymptotically optimal. Chen L et al. [
14] introduced the dual-tree structure into an RRT* algorithm, thereby creating separate extension and optimization processes and improving the convergence speed. In addition, some scholars have attempted to improve global path planning methods such as RRT* to avoid dynamic obstacles. Qi et al. [
15] applied the RRT* algorithm to dynamic environments and introduced Pareto theory to propose a multi-objective dynamic fast exploration stochastic algorithm (MOD-RRT*), which improved the effective performance of the RRT* algorithm in avoiding unknown obstacles.
However, there are many limitations in global path planning and dynamic environments. Compared with static environments, there are many uncertainties, such as randomly moving obstacles. It is, therefore, very difficult to predict the movement path of obstacles. Thus, local path planning in dynamic environments is currently an area of great research interest.
In recent years, researchers have proposed many local path planning algorithms, such as the dynamic window approach [
16] (DWA) and the artificial potential field method [
17] (APF). Furthermore, Young-In Choi [
18] et al. proposed a collision avoidance algorithm based on the D*Lite algorithm for mobile robots; this algorithm was applied to a logistics delivery scenario to effectively avoid collision and safely reset the robot’s optimal movement route when the robot encounters a crossover situation at an intersection. Kumar [
19] et al. proposed a combination of the sine cosine algorithm and ant colony algorithm for multiple environments such as static and dynamic, and applied the algorithm in multi-robot formations. Guo [
20] et al. constructed a risk region of dynamic obstacles using the Kalman filter state estimation, combining it with a nonlinear model predictive control to achieve safe obstacle avoidance. DWA has been extensively applied because of its dynamic characteristics combined with those of the robot. Later, Zhong [
21] et al. proposed an adaptive rolling window method based on the edges of obstacles and the target point, which has good safety and environmental applicability. Chang [
22] et al. combined Q learning with the DWA algorithm and proposed two new evaluation functions. This demonstrated a high navigation efficiency and success rates in complex unknown environments, but incurred a higher time cost. Xiang [
23] et al. implemented adaptive weight coefficients for the DWA algorithm for complex environments, making the path of the mobile robot smoother when avoiding obstacles. Many new and improved algorithms have been derived for obstacle avoidance in dynamic environments. Wu [
24] et al. combined the A* algorithm and the DWA algorithm to produce an algorithm that was closer to the global optimal path but with less smoothness.
Nevertheless, the improved DWA algorithms are still unable to avoid the problem of local optimal solutions and may fail to complete the task due to the lack of global planning. An algorithm may get stuck at local minima during planning and consume more energy. A suitable path planning algorithm should be able to plan a complete collision-free path that satisfies the robot dynamics.
Therefore, to resolve the path planning problem in a dynamic environment, this paper proposes an RRT*-FDWA algorithm. The contribution of the proposed algorithm to the path planning problem is as follows:
A fuzzy controller is added to the adaptive weight index of the DWA algorithm. This makes the weights adaptive, improves the safety of path planning, and enables timely avoidance of dynamic obstacles.
By combining the RRT* algorithm with the FDWA algorithm, local planning can avoid hitting local minima. The RRT*-based path re-planning is able to replan the global path after local path planning; this enhances the robot’s maneuverability and improves target fit.
The manuscript is divided into the following parts:
Section 2 explains the original algorithm, the dynamics required to move the robot, and the related work.
Section 3 discusses the FDWA algorithm and the fuzzy control principle.
Section 4 discusses the RRT*-FDWA algorithm.
Section 5 provides experimental results to demonstrate the effectiveness of the RRT*-FDWA.
Section 6 discusses the results and future work.
4. Dynamic Path Planning Algorithm Based on RRT*-FDWA
4.1. RRT*-FDWA Algorithm Flow
The RRT*-FDWA path planning algorithm uses both the RRT* and FDWA algorithms. When the global optimal path is completed according to the RRT* algorithm, a path replanning judgment is performed. When a moving obstacle is encountered, the FDWA algorithm is used for local path planning; after successfully avoiding the obstacle, the RRT* algorithm plans a new global path for the mobile robot to continue driving. The RRT*-FDWA process algorithm is shown in
Figure 4.
The algorithm flows as follows:
- Step 1:
Create a map of the known environment and set target points.
- Step 2:
The RRT* algorithm plans a collision-free global optimal path based on the already established map environment and its own sensors, such as lidar.
- Step 3:
Determine whether the robot can reach the target point according to the end condition of the algorithm; if so, end the algorithm; if not, continue the execution.
- Step 4:
Determine whether there is an environment or moving obstacle in the established map; if the lidar determines that the moving obstacle is dangerous, jump to the FDWA algorithm for local path planning to avoid the obstacle.
- Step 5:
Perform a new global path plan, determine the optimal path, and continue driving along the global path. Judge whether it is possible to reach the target point: if ‘No’, jump to the Step 3 loop; if ‘Yes’, end the algorithm.
Figure 5 represents the global path planning, encountering moving obstacles in the path replanning process.
4.2. RRT*-FDWA Local Minima and Pseudocode
In the DWA algorithm, the overall generation value increases as the value of its weight coefficient increases the closer it gets to the obstacle. This will cause the robot to fall into local minima during local path planning. In the RRT*-FDWA algorithm, to avoid local minima, the robot can quickly enter global path planning once it has successfully avoided an obstacle, as shown in Equation (13). K is the reward and punishment function of the DWA algorithm.
In Equation (14),
is the time function with the obstacle. In Equation (15),
a and
b represent the reward and punishment function
K, where
a < 1 <
b. When the value of
t is less than 0.5, it is not caught in the local minimum; when
t is greater than 0.5, it is regarded that the robot is caught in the local minimum. Global path planning uses the RRT* [
25] algorithm, while local path planning uses the FDWA algorithm. The pseudo code of the RRT*-FDWA algorithm is shown in Algorithm 1; Algorithm 2 is the
Rewire in Algorithm 1.
Algorithm 1 RRT*-FDWA Algorithm.
|
input: |
output: |
WHILE Target_not_reach DO |
FOR i in range(n): |
( |
Steer( |
Cost(d( |
IF (Check_collision( THEN |
|
C_parent( |
|
|
IF (Check_ Moving obstacle ( THEN |
DWA( |
|
|
IF (Check_collision( THEN |
end |
|
THEN |
|
Return path |
End while |
Algorithm 2 Rewire
.
|
IF Collision_free ( |
|
THEN |
|
|
|
End if |
End if |
In Algorithms 1 and 2 in this paper, the following terms are used:
Sample (Map): The number of sampling points generated randomly on the map towards the target node is in the range [0, 100].
Node_list (p1, p2): The set of Euclidean distances between the sampling point and the parent node, where the coordinates of the random sampling point and the parent node are ps (x1, y2) and pp (x2, y2), respectively.
pnearest: Minimum of Node_list (p1, p2) min (Node_list)
Steer (
p1, p2): The angle between
p1 and the line connecting
p1 and
p2 of its parent node; multiply the steering angle by the step size
β to get
pnew. Let the steering angle be
θ;
pnew is obtained by the following Equations (16) and (17).
Check_collision (p1, p2): Check if there are obstacles between p1 and p2.
Target_not_reach: If or not the target point is reached: the return value is 1 if the target point is reached and 0 if the opposite is true.
Cost(x): Return along the total path length of the target node from node p.
find near_nodes (p1): Find a new parent node near node p again at random.
C_parent (p1, p2): Add a new optional parent node and define its length, angle, and generation value.
D (p1, p2): Denotes the Euclidean distance between nodes p1 and p2.
Rewire (p1, p2): Determine whether p2 can replace p1 as the new parent node.
Collision_free (p1, p2): Check whether it is feasible and that there are no obstacles between node p1 and node p2.
G’ (v, ω): Evaluation function of the DWA algorithm with local minimum judgment added.
Rule (α, β): Fuzzy rule table for α and β.