1. Introduction
DDMRs are widely used in earthwork construction, firefighting, the military, and other fields because of their ability to operate in high-risk, high-intensity environments [
1,
2,
3]. At present, most DDMRs rely on manual control, which requires strict manipulation skills and experience from the operators. This way of long-term stable operation is difficult, and due to the relatively harsh working environment, it often brings certain risks to the operators. Therefore, the autonomous navigation systems of DDMRs have become a research hotspot [
4,
5]. Global path planning is the basis of an autonomous navigation system, which can pre-plan a safe and feasible path according to the environmental information collected by the sensors in advance to guide their moving process [
6].
Global path planning, as a kind of static planning (also called offline planning), refers to planning an optimal collision-free path from the starting point to the target point for the robot under the consideration of certain evaluation criteria [
7]. It is evaluated in three main ways. (1) Optimality: it can use path length, number of turns, driving time, and other standards to evaluate the superiority of the path. (2) Authenticity: the planned path should meet the driving requirements of the mobile robot. (3) Integrity: the path should connect the starting point and the target point continuously, and achieve the avoidance of obstacles [
8].
Many algorithms have been applied to global path planning for mobile robots, including the A* algorithm [
9], rapidly exploring random tree (RRT) algorithm [
10], ant colony algorithm (ACO) [
11], genetic algorithm (GA) [
12], etc. On this basis, many scholars have carried out extensive and in-depth research. The RRT algorithm is suitable for continuous domain search because it does not require the discretization of a continuous space during planning [
13]. However, this algorithm focuses more on finding feasible paths rather than reducing costs, thus the costs of the path tend to be high [
14]. Wang [
15] proposed a kinematic constrained bi-directional RRT algorithm (KB-RRT*) for path planning. By introducing kinematic constraints, KB-RRT* can avoid unnecessary tree growth, but the global path obtained based on the KB-RRT* algorithm is still a suboptimal solution. ACO is a heuristic algorithm that simulates the foraging behavior of ant colonies. Although the algorithm can obtain the optimal path, its convergence speed is slow and it is easy to fall into the local optimal. Hou et al. [
16] proposed an improved ACO algorithm by adopting the communication mechanism of ants using their antennae to contact each other in nature, and applied the algorithm to mobile robots. However, the algorithm still has problems in calculation efficiency. GA can generate a large number of new individuals when the crossover probability is large, thereby improving the global search scope, but there is a precocious phenomenon and the results are unstable. Tuncer A et al. [
17] proposed an improved GA using optimized mutation operators, which simultaneously checked all idle nodes near the mutation nodes, selected nodes according to the fitness value of paths rather than the direction of mutation nodes, and obtained a higher average fit than other methods. However, the paths are too close to the obstacles and are less safe. The Dijkstra algorithm [
18] is a single-source path search algorithm that expands outward from the start point until it reaches the target and obtains the shortest path. With the increase in environmental information, the Dijkstra algorithm will consume a lot of computing time. P. E. Art et al. [
19] proposed the A* algorithm in 1968 by combining the Dijkstra algorithm with the BFS algorithm. The A* algorithm greatly improves the search efficiency by introducing a heuristic function and the planned path is optimal. In addition, the path planned by the A* algorithm based on the grids has a sudden change in turning angle, while the DDMRs can turn in place by the speed difference between motors on both sides, so the A* algorithm is more suitable for the global path planning of the DDMRs. However, the A* algorithm still has the problems of long calculation time, poor smoothness, and low safety when facing a complex environment.
To solve the problem of the long calculation time of the A* algorithm, many scholars improve the algorithm structure or optimize the heuristic function. Zhang et al. [
20] proposed an improved A* algorithm containing a bi-directional sector expansion and a variable-step search strategy, thus improving the computational efficiency. Liu et al. [
21] adopted the Delaunary triangulation algorithm to deal with complex obstacles, took the generated Voronoi points as the preferred pathfinding nodes, then designed the dynamic fusion pathfinding algorithm (DFPA) based on the Delaunary triangulation algorithm and the improved A* algorithm. Jiang H et al. [
22] introduced a cosine factor into the heuristic function of the A* algorithm to optimize the search direction, and adopted a search strategy that synchronizes the starting point and the target point to realize the path planning for the electric disinfection vehicle, which has higher computational efficiency, but does not consider the kinematic model. For the problem of poor path smoothness, scholars optimize the A* algorithm by improving the heuristic function or adjusting the search step size. Liu et al. [
23] designed a global path yaw angle based on the relationship between the real-time position and global path, then introduced it into the heuristic function of the A* algorithm to improve the path smoothness. Tang et al. [
9] filter the nodes in the closed list to avoid the irregular path. Meanwhile, a cubic B-spline curve is adopted to smooth the path and improve the stability in turning. Li et al. [
24] introduced the jump-point search strategy into A* algorithm and effectively reduced the number of turning points by ignoring unnecessary nodes. For the problem of low security, some scholars have introduced the influence of obstacles into the A* algorithm. Zhang et al. [
25] converted the distance between the mobile robot and the obstacles into the time cost, so as to optimize the cost function and improve the safety. Sang et al. [
26] narrow the search scope by imposing constraints of maximum search distance and maximum path length, then maintain a safe distance by reducing the search points near the obstacles. Cui [
27] predicted the future movement of the target using Bernstein basis polynomials combined with the information of the obstacle distribution around the target, then utilized the A* algorithm to search for a safe tracking path. Finally, in the case of dynamic constraints, a quadratic programming method is used to optimize the tracking path to improve the smoothness. Dang [
28] proposed an Adaptive Back-stepping Hierarchical Sliding Mode Control (ABHSMC) scheme for three-wheeled mobile robots (3WMRs) based on RBF neural networks. By aggregating all uncertain components in specific vectors and estimating using an RBF neural network, the effect of uncertainties will be minimized. Then, combining it with the TEB local planner and A* global planner improves the navigation and obstacle avoidance performance.
Although these studies have optimized the performance of the A* algorithm to some extent, the direct application to DDMRs are still one-sided, because, in addition to the factors mentioned above, the global path planning of DDMRs also needs to consider the total driving time. The former is related to the setting of the heuristic function, algorithm structure, and processor performance, while the latter is related to the motion state, length, and total turning angle of the path. Therefore, the kinematic model of DDMR is established to analyze the motion state on the turning point. On this basis, Gaussian functions are firstly used to dynamically adjust the weight ratio of the heuristic functions, which effectively reduces the calculation time. Secondly, the BS structure is introduced into the A* algorithm, which solves the problems of repeated node search when there is a large area of obstacles between the starting point and the target point. Finally, a multi-layer turning nodes filtering strategy is proposed to reduce the total turning angle and improve the smoothness of the path. The simulation results show that the improved BSGA* algorithm has higher efficiency than the A* algorithm, GA, and ACO algorithm, and can plan a more reasonable driving route. The LEO ROS robot is used for experimental verification. The experimental results show that it has better results than the five common global path planning algorithms.
2. Materials and Methods
This section introduces the kinematic modeling of DDMR, the process of environment modeling using the grid method, and the basic principle of the A* algorithm.
2.1. Analysis of Turning Motion of DDMR
Figure 1 shows the analysis of DDMR’s turning motion. The rectangular coordinate system
is established, the coordinates of DDMR are set as
, the linear velocity is
, and the angular velocity is
. The width of DDMR is
, the turning center is
, and the turning radius is
. Because DDMR has nonholonomic constraints [
29], its motion can be described only through linear velocity
and angular velocity
[
30].
The controller makes the DDMR reach the expected motion state by controlling the velocities of the drive motors on both sides, the linear velocities of the drive wheels on both sides can be expressed as follows:
where
and
are, respectively, the inner linear velocity and outer linear velocity of DDMR. From Equation (1), the linear velocity of the center of mass can be expressed as follows:
Based on Equations (1) and (2), the turning radius
and angular velocity
of DDMR can be expressed as follows:
According to Equation (3), when
=
,
, DDMR can realize in place turning. Assuming that the angular velocity of DDMR is constant in the turning process, the turning angle
is proportional to the turning time
. Many studies [
31] have lower driving time by reducing the number of turns, but this is not comprehensive. The direct factor affecting the turning time is the total turning angle, and there is no direct functional correspondence between it and the number of turns. Since the DDMR realizes turning through the speed difference of the drive motors arranged on both sides of the body, when the total turning angle is too large, it will aggravate the wear of the drive motors, conveyor belts, and other components, and even reduce the service life. Secondly, the turning of the DDMR is a relatively slow process, which includes three decomposition actions: deceleration, turning, and acceleration, and consumes more time than that of the straight motion. Therefore, reducing the total turning angle can effectively shorten the time required for the DDMR to drive along this path. So the total turning angle should be used as the evaluation index to reduce the turning time.
2.2. Grid Modeling
Based on the driving characteristics of DDMR that can be turned in place, the grid method is used to establish the environment map. The work space is projected as a two-dimensional plane and discretized into a square grid of uniform, continuous, and non-intersecting. According to the environmental information, the grids with obstacle projection can be set as obstacle grids, represented by 1; the grids without obstacle projection can be set as free grids, represented by 0. A Cartesian coordinate system is established in the grid map, with the lower left corner as the origin of coordinates, the horizontal axis for the axis, with values increasing from left to right. The vertical axis for the axis, with values increasing from bottom to top. The position of each grid is represented by the coordinate in the upper right corner of the grid, where ,.
The environmental information in the grid maps will be different from the actual maps, which mainly depends on the size of the grids. If the grids are too large, the resolution of the environment maps will be reduced, which may make the planned paths deviate from the theoretical optimal paths seriously, or even fail to search for feasible paths. If the grids size are too small, the resolution of the environment maps will be too high, which will occupy a lot of computational resources. In order to simplify the planning problem, DDMR is regarded as a square with side length
, and the side length
of the grid is also set as 1. In order to improve the safety of the path, DDMR should keep away from obstacles during the driving process. Therefore, the obstacles are puffed up as shown in
Figure 2, the grids with only partial obstacles are also set as obstacle grids.
2.3. Procedure of A* Algorithm
As a heuristic path planning algorithm, the A* algorithm is used to find the optimal path in the static environment [
32]. This algorithm searches from the starting point according to the predetermined search strategy, calculates the actual cost of each feasible node around the current node to the starting point and the heuristic cost to the target point, and selects the node with the minimum total cost as the next extended node. The algorithm ends when the extended node is overlapped with the target point [
33]. The core of the A* algorithm lies in the cost function, which is as follows:
where
represents the total cost from the starting point
to the target point
through the current point
;
represents the actual cost from the starting point
to the current point
; and
represents the heuristic cost from the current point
to the target point
. The traditional A* algorithm adopts the 4-neighborhood search strategy. Because DDMRs can realize in-place turning, it can be reasonably considered to complete the diagonal movement of the grids. In order to make the path generated by the A* algorithm more realistic, the search neighborhood is extended to 8 neighborhoods, as shown in
Figure 3, with 8 turning angles (
). There are mainly three heuristic functions, including Euclidean distance function [
34], Chebyshev distance function [
35], and Manhattan distance function [
36]. They can be expressed, respectively, as follows:
Euclidean distance function:
Chebyshev distance function:
Manhattan distance function:
For the heuristic function, if is the same as the actual cost from the to the , all nodes extended by the A* algorithm are on the optimal path, it will not expand any remaining unarticulated points, and the search speed is the fastest at this time, but this is difficult to achieve. For the Manhattan distance, its value is often less than , although the optimal path can be found, the search speed will decrease. For the Chebyshev distance, its value is often greater than , although it searches faster, there is no guarantee that the optimal path can be found. Since the 8-neighborhood search strategy is adopted in this study, obtained by using Euclidean distance is closer to , which ensures that the search speed can be improved on the basis of finding the optimal path. Therefore, Euclidean distance is adopted as the heuristic function.
The A* algorithm divides all extended nodes into two sets:
: Stores all extension nodes to be detected in the search process, and sorts them according to the .
: Stores all detected extension nodes in the search process to prevent repeated search.
On the basis of the above concepts, the steps of the A* algorithm are shown in
Figure 4.
3. Improved BSGA* Algorithm
The traditional A* algorithm is improved to design a new global path planner, whose inputs include the values of grids, the starting point, the target point, and the attitude of the DDMR. The global path calculated by the improved BSGA* algorithm is divided into a series of waypoint coordinates as the outputs of the algorithm, which are relied upon to generate the linear velocity and angular velocity to guide the DDMR to move to the target point. In this planner, the constraints include kinematic constraints, that is, the maximum velocity of 0.6 m/s and the maximum angular velocity of π/6 rad/s. The environmental constraints, that is, the side lengths of the grids and the locations of the obstacles. Cost constraints: the sum of the actual costs and heuristic costs of each grid.
3.1. Improved Heuristic Functions
The heuristic function determines the quality of the A* algorithm [
37]. As shown in
Figure 5, the A* algorithm, using Euclidean distance as the heuristic function, can search a feasible path, but there are too many search nodes and the calculation time is too long. Therefore, this study addresses the above shortcomings by improving the heuristic function. When
, the A* algorithm is transformed into a Dijkstra algorithm, and a large number of nodes will be searched. Although the total cost in the planning process is the same as the actual cost, it is inefficient [
38]. When
, the A* algorithm is transformed into the Breadth-First Search (BFS) algorithm, which has high planning efficiency but not an optimal path [
39]. In order to make the path planning process both efficient and qualitative,
should usually occupy a larger weight in the beginning of the planning, so that the algorithm can search near the target point more quickly. At the end of the planning process,
should occupy a larger weight, so as to avoid repeated searches of nodes that may occur near the target point and reduce the total turning angle of paths. Since Euclidean distance is used as the heuristic function in this study,
tends to be slightly smaller than the actual cost from the current node to the target node. As the current node gradually approaches the target node, this gap will become smaller and smaller. In the optimal case,
is always the same as the actual cost, so the algorithm can always select the optimal node. But this is often difficult to achieve.
Therefore, this study combined with the Gaussian function to construct the attenuation coefficient
for dynamically adjusting the weight ratio of the heuristic function; the heuristic function was rewritten as the following equation:
Let and . At the beginning of the algorithm, the current node is far from the target point, at this time , so the weight ratio of increases, thus improving the search efficiency. As the algorithm runs, the current node gradually approaches the target point, gradually increases, and the weight ratio of gradually decreases to reduce the total turning angle of the path.
In order to verify the performance of the Gaussian–A* (GA*) algorithm, Matlab2020a software was used to write the algorithm program. The Intel workstation running the program was equipped with an i9-10900 processor, with 64 GB RAM and 3.70 GHz main frequency. The subsequent simulation was also run based on this workstation. As shown in
Figure 5 and
Figure 6, 50 executions were carried out on grid maps with sizes of 10 × 10, 20 × 20 and 30 × 30, respectively.
Table 1 shows the states represented by the different colored grids. It can be seen that, compared with the A* algorithm, the path generated by the GA* algorithm has fewer turning points and the number of nodes searched is also less. According to
Table 2, it can be seen that, on the 10 × 10 grid map, the calculation time, the number of search nodes, and the total turning angle of the GA*s algorithm are, respectively, reduced by 64.43%, 40.00%, and 37.5% relative to the A* algorithm. On the 20 × 20 grid map, the calculation time, number of search nodes, and the total turning angle of the GA*s algorithm are, respectively, reduced by 80.98%, 56.38%, and 25% relative to the A* algorithm. On the 30 × 30 grid map, these three were reduced by 84.09%, 70.91%, and 41.67%, respectively. Although the length of the path generated by the GA* algorithm is not much different from that of the A* algorithm, it has higher efficiency, and with the gradual expansion of the map, this difference becomes more and more obvious. In addition, the GA* algorithm can generate smoother paths, which is more conducive to DDMR driving.
3.2. Bidirectional Search Structure
Although the GA* algorithm obviously improves the computational efficiency and smoothness of the path, the planning effect in some special cases still needs to be improved. As shown in
Figure 7a,b, when there is a large obstacle between the starting point and the target point, DDMR needs to bypass the obstacle to reach the target point, so the A* algorithm and GA* algorithm will search in the direction that deviate from the starting point and the target point at the beginning process. The numbers in the upper-left, lower-left, and lower-right corners of the grids in
Figure 7 correspond to the
,
, and
of the current node, respectively. The arrow points to the parent point of the node where the arrow tail is located. As can be seen from
Figure 7a,
gradually increases in the process of avoiding obstacles. However, after avoiding obstacles,
is too large due to the long path, so
is even higher than
that corresponds to the nodes at the beginning of the search process. Therefore, in the later stage of the A * algorithm, many nodes near the starting point will be repeatedly searched. As shown in
Figure 7b, this phenomenon has been improved somewhat in the GA* algorithm but still exists. To address the above problem, this study, using a BS structure to improve the GA* algorithm, which is named the BSGA* algorithm.
The BSGA* algorithm searches from the starting point and the target point simultaneously, where the nodes to be searched in the forward search process beginning from the starting point are stored in
, and the nodes to be searched in the reverse search process beginning from the target point are stored in
. The forward and reverse search processes are roughly the same as that of GA*. The difference is that the target point of the forward search is
, which is the current node of the reverse search, and the cost function is shown in Equation (9). The target point of the reverse search is
, which is the current node of the forward search, and the cost function is shown in Equation (10). The two search processes are carried out alternately and both adopt the eight neighborhood search strategy until the current nodes of the two search processes meet.
where
is the current node of forward search;
is the current node of the reverse search;
is the actual cost from the starting point to
;
is the Euclidean heuristic cost of forward search from
to
; and
is the dynamic attenuation coefficient of the forward heuristic function.
is the actual cost of the target point to
;
is the Euclidean heuristic cost of the next reverse search from
to the
; and
is the dynamic attenuation coefficient of the backward heuristic function.
The pseudo code for the BSGA* algorithm is as follows (Algorithm 1).
Algorithm 1 |
|
As shown in
Figure 7c, the BS structure is introduced to dynamically switch and adjust the starting point and target point in the search process, so that the current node always keeps the trend of being close to the target point. In this process,
decreases rapidly until the two paths meet and falls to the lowest value. The values of the upper and lower levels of the encounter grids represent the total cost, actual cost, and heuristic cost of forward search and reverse search at this node, respectively. The introduction of the BS structure effectively solves the problem of repeatedly searching nodes when avoiding obstacles and reaching the target point, and improves the efficiency of search.
In order to verify the performance of the BSGA* algorithm, as shown in
Figure 8,
Figure 9 and
Figure 10, the A* algorithm, GA* algorithm, and BSGA* algorithm were executed 50 times on the maps of 10 × 10, 20 × 20, and 30 × 30, respectively. It can be seen that, in the case of large obstacles between the starting point and the target point, the BSGA* algorithm searches fewer nodes compared to the A* algorithm and the GA* algorithm.
According to
Table 3, it can be seen that, on the 10 × 10 grid map, compared with the A* and GA* algorithms, the calculation time of BSGA* is reduced by 61.44% and 21.04% and the number of search nodes is reduced by 28.13% and 9.80%, respectively, but there is no significant advantage in the total turning angle. On the 20 × 20 grid map, compared with the A* algorithm and GA* algorithm, the calculation time of BSGA* is reduced by 59.48% and 41.25%, the number of search nodes is reduced by 45.16% and 28.17%, and the total turning angle is reduced by 20% and 20%, respectively. On the 30 × 30 grid map, compared with the A* algorithm and GA* algorithm, the calculation time of BSGA* is reduced by 80.94% and 69.73% and the number of search nodes is reduced by 64.80% and 49.64%, respectively. The A* algorithm makes several turns in the path after bypassing the obstacles, and the total turning angle rises rapidly, while the total turning angle of the BSGA* algorithm and GA* algorithm is relatively more stable. Although the BSGA* algorithm has obvious advantages over the GA* and A* algorithms in search efficiency, the path length will be slightly longer and the advantages in total turning angle are not obvious.
3.3. Multi-Layer Turning Point Filtering Strategy
In order to further reduce the total turning angle and improve smoothness, this study proposed an optimization strategy based on turning point filtering. The specific procedures are as follows:
- (1)
Store the path points () obtained by BSGA* algorithm in the and store the obstacles and environment boundaries in the . Store the and the in the .
- (2)
Calculate the slope and of and , and respectively. If , then is not a turning point, continue to calculate the slope of and in turn until , then is the turning point. will be stored in the set of s, then repeat the above process from until it reaches the target point.
- (3)
Connect the previous node of the with the next node . If the connection between them passes through the obstacle, then will be stored in . If the connection does not pass through the obstacle, will be deleted in s. Judge all the turning points in s in turn according to this step.
- (4)
Repeat steps (2) and (3) until the connection between the previous node and the next node of any of the turns in s passes through the obstacle and connects the nodes in to generate the optimized path, then the algorithm stops.
To verify the effectiveness of the turning point filtering strategy, as shown in
Figure 11 and
Figure 12, 50 executions were conducted, respectively, to compare the A*, BSGA*, and improved BSGA* algorithms under grid maps with sizes of 15 × 15 and 30 × 30. The purple nodes in
Figure 11c and
Figure 12c are the filtered turning points. As can be seen from
Table 4, the calculation time of improved BSGA* is reduced by 62.45% compared with the A* algorithm and improved by 13.79% compared with the BSGA* algorithm in the 15 × 15 grid map. This is because improved BSGA* is implemented by re-performing the turning point filtering on the paths planned by the BSGA* algorithm, so the calculation time is slightly longer. Compared with the A* and BSGA* algorithms, the total turning angle of paths planned by improved BSGA* is reduced by 89.76% and 86.34%, respectively, the path length is reduced by 1.13. In the 30 × 30 grid map, compared with A* and BSGA*, the calculation time of improved BSGA* is reduced by 92.28% and that of BSGA* is improved by 7.26%, the total turning angle of the path is reduced by 87.89% and 81.83%, the path length is reduced by 2.33, respectively. Therefore, it can be seen that the improved BSGA* path has better smoothness and is more suitable for the driving process of the DDMR.