# Safe Path Planning of Mobile Robot Based on Improved A* Algorithm in Complex Terrains
## 1 Introduction
In this process, the polar polynomials curve was introduced to smooth the path according to the constraints of position, curvature, and slope. [PERSON] et al. [31] simplified the planned path by keeping only the start point, inflection point, and the end point of the path. The rotation direction and the minimum rotation angles at the inflection points were calculated for adjusting the robot's posture. There have been many other improvements to the conventional A* algorithm, such as the Jump Point Search [32] and hierarchical A* algorithm [33]. The above-mentioned works have enhanced the performance of conventional A* algorithm to some extent. However, the influence of the distance between the robot and obstacles on the safety of the robot has not been fully considered. To avoid a collision between the robot and obstacles, the most common way is to expand the obstacles when establishing an environment model in the grid-based path planning algorithm. The planned path maintains a certain distance to the actual obstacles as he traversing process of path planning does not allow an extension to the states in the expanding obstacles. This method conveniently can establish environment models and simplify algorithm operations; however, in reality, the safety of the robot is not only related to the distances between the robot and any obstacles but also the speed of the robot. The faster the robot moves, the larger a distance should be maintained between the robot and obstacles. The robot could pass through narrow areas where the obstacles are close together safely by reducing speed. A simple expansion of the obstacles may increase the length of the planned path because the obstacle area is increase; moreover, in a complex environment with dense obstacles, expanding obstacles may block the passable areas and lead to the failure of path searching. [PERSON] et al. [34] proposed to establish risk zones and direction vectors risk around the vehicle; the RRT* algorithm was then used to search for a feasible and safe path. In this method, the planned path can keep away from obstacles; however, it needs to check for collision for each sampled configuration from the inner to the outer zone as well as the intermediate steps when connecting to others. Accordingly, search efficiency may be decreased. Therefore, a new modeling method is proposed in this paper. The new method does not expand the obstacles; it sets up the weights of the grid states around obstacles according to the distance between the states and obstacles. The weight of a state indicates the safety cost of a robot to pass through; the closer the state and obstacles are, the greater the weight will be. As a result, the planned path would be as far away as possible from the obstacles and the passable areas would not be blocked by expanding obstacles. Moreover, in order to make the planned path more natural and suitable for the robot's movement, the path is smoothed and a path evaluation mechanism is adopted in the smoothing process to ensure the optimization of the smooth path. Additionally, the speed of the robot is usually set to be a constant value in a single terrain environment so that the shorter the planned path is, the less time the robot will spend when moving from the initial state to the goal state. However, in a complex terrain environment, the robot would move at different speeds when passing through different terrains, so that the shorter path does not mean less movement time. Therefore, this paper establishes a complex terrain environment model which focuses on the speed and safety of the robot and takes the movement time of the robot as the objective function of A* algorithm for path planning. Then the planned path is smoothed without a decrease in performance. The rest of this article is organized as follows: Section 2 reviews the conventional A* algorithm. Section 3 presents the improved A* algorithm in detail, including the new environment modeling method and path smoothing operation.