# Research on Path Planning for Robots with Improved A* Algorithm under Bidirectional JPS Strategy
## 1 Introduction  
In today's society, with the continuous development of intelligent manufacturing technology, robots have received widespread attention and have permeated various aspects of human life. Currently, research on robot autonomous navigation is primarily divided into three parts: perception, planning, and execution. Among these, path planning, referred to as \"planning\", serves as the bridge connecting the other two components and is also the core focus of robotics research [1, 2]. The importance of path planning can be reflected in the framework diagram of navigation, as shown in Figure 1. The navigation framework is mainly composed of the following key components. The 'Move_base' node is the core of the navigation framework, being responsible for coordinating and managing other modules. It receives the target position, calls Global_Planner and Local_Planner to generate a path, and sends control commands to Base_controller. The 'Global_Planner' node calculates the optimal path from the start point to the target point based on the static map and the target position. The 'Local_Planner' node is responsible for generating local paths suitable for the current environment during the execution of the global path, performing real-time obstacle avoidance and path adjustment. The 'Base_controller' node transforms high-level path planning instructions into actual motion control signals to ensure that the robot can navigate accurately and safely to the target position. The 'Costmap' node consists of the Global_costmap node and Local_costmap node, representing the traversal costs of different locations in the environment. Global_costmap is based on a static mapwhile Local_costmap is based on real-time sensor data. The 'Recovery_behaviors' node is used to handle faults in various modules during navigation. Recovery behaviors are activated when there are failures in global planning, local planning, or oscillations. The 'Amcl' node is responsible for robot localization based on sensor data and the map. The 'Map_server' node provides the static environment map, usually generated by SLAM. This map is used for path planning and localization. The 'Odometry source' node provides the robot's position information and motion state in the environment, estimating the robot's posture and position changes relative to its starting position. The 'Sensor sources' node collects data about the robot's surroundings using sources such as LiDAR, depth cameras, and ultrasonic sensors. These data are used to build and update the costmap. The 'Sensor transforms' node converts the data collected by the sensors into a unified coordinate system or reference frame for consistent processing and decision making. Additionally, by using communication mechanisms such as topic communication with topics like \"/ map\", the nodes work collaboratively. The navigation framework achieves key autonomous navigation functions through the coordinated work of Global_Planner and Local_Planner. Path planning specifically means that the robot plans an optimal path from the start position to the goal position without any collision with obstacles in the space when the environment is known or unknown. Path planning according to the degree of mastery of the environment information is divided into two forms. One is global path planning with full knowledge of the environment; at present, the commonly used global path planning algorithms are the Dijkstra algorithm [3], A* algorithm [4; 5; 6; 7; 8], ACO algorithm [9], etc. The other is local path planning with only partial or no knowledge of the environment; local path planning algorithms mainly include the DWA algorithm [10; 11], artificial potential field method [12], etc. The A* algorithm is a path planning algorithm based on graph search that is widely used in global path planning due to its fast computation speed, high efficiency, and maturity, being the most established path planning algorithm known so far. However, the A* algorithm still has many shortcomings.