Development of Robot Navigation System with Collision Free Path Planning Algorithm

: Mobile robots have been successfully used in many fields due to their abilities to perform difficult tasks in hazardous environments, such as robot rescuing, space exploring and their various promising applications in the daily lives. Robot path planning is a key issue in robot navigation which is a kernel part in mobile robot technology. Robot path planning is to generate a collision-free path in an environment while satisfying some optimization criteria. Mobile robot path planning is a nondeterministic polynomial time (NP) problem, traditional optimization methods are not very effective to it, which are easy to plunge into local minimum. In this research work, an evolutionary algorithm to solve the robot path planning problem is devised. A method of robot path planning in partially unknown environments based on A star (A*) algorithm was proposed. The proposed algorithm allows a mobile robot to navigate through static obstacles and finds its path in order to reach from its initial position to the target without collision. In addition, the environment is partially unknown for the robot due to the limit detection range of its sensors. The robot processor updates its information during the motion. The simulations are performed in different static environments, and the results show that the robot reaches its target with colliding free obstacles. The optimal path is generated with this method when the robot reaches its target. The simulation results are developed by MATLAB environments.


Introduction
Robotic is known as a new revolution to the entity of beings that varies according to its uses. In modern day environments, robotics and automation are involved in almost every industrial activity and conveniently improve the efficiency, productivity and reliability of a system. Robotics is also implemented in medical practice, construction, outer-space exploration, household assistance, mobile transportation and quite recently, underwater exploration. Robots have many uses in the military, industry, health care services, and neighborhood homes. Robots categorized as unmanned ground, marine, and aerial vehicles are normally found in the military. In industry, robots are commonly used on assembly lines in automotive and food processing plants. These robots are usually in the category of machine vision and used to assemble products and/or detect defects in the products. In health care, robots are now used to assist during surgical procedures. Robotic devices are also starting to be used to assist elderly people, particularly in Japan. It could also be found that robots in homes in the form of vacuum cleaners and even lawn mowers. Each type of robot operates at specific level of autonomy. The level of autonomy afforded to robots usually depends on the size and mobility capabilities of the robot and level of risk in harming humans and pets. A mobile autonomous robotic system is a ground, marine, or aerial vehicle consisting of all the integrated components (mobility platform, sensors, computers, and algorithms) required to perceive, learn, and adapt in the environment to make intelligent decisions for navigating, communicating, and accomplishing required tasks [1][2][3][4][5][6][7][8]. Robot Path Planning or robot Motion Planning is one of the important areas of interest in robot's offline decision making algorithms. In this problem, the aim is to find a collision free path, which the robot can follow to reach the target from its start position. Analysis and research on autonomous path planning has included innovative advancements in the use of artificial intelligence (AI). With advancement in the study of this subject, technology with uncontrollable situations such as outer space exploration and deep sea excavation can be further improved.
New technology such as autonomous vehicle systems may also be able to utilize such algorithms which are fail-safe. The robotic platform design is not an issue anymore. Whether the robot will serve the military or be a part of the civilian workforce, the platform will be designed to support the required application. For a vehicle to travel longer distances in a shorter amount of time, it will be necessary to eliminate the long delay caused by communications traveling across the great distance between source and destination. One possibility involves breaking the traditional laws of physics and finding a way to communicate faster than the speed of vehicle. An easier approach involves eliminating the need for such frequent communications. This implies that any such vehicle will have to be able to perform two tasks on its own [9][10][11][12][13].
(1) Determine the three-dimensional layout, or map, of the surrounding terrain by use of photographs taken from multiple locations (2) Determine a path across this map to reach the intended destination. The main objective of this project is to create and develop a Path Planning Mobile Robot able to avoid obstacles in its path and reach a target designated position from its starting point. A study on obstacle avoidance using A* algorithm, path planning. The overall system block diagram is illustrated in Figure 1.

A* Path Finding Algorithm
A real challenge for an agent in real time games is to find the route from the start node to the goal node in presence of other agents and obstacles. In the presence of obstacles, the path moves around the obstacle and reaches the goal. This path should be of minimum cost or in other words it should be the shortest possible distance. A* is a shortest path finding algorithm that uses informed search technique to find the least-cost path from the start node to the goal node. The classic representation of the A* algorithm is as follow: f(x): is called the distance-plus-cost heuristic function (or simply F cost) and it is the sum of path-cost function g(x) and heuristic function h(x).
g(x): the path-cost function (or simply G cost) is the actual total cost of the path to reach the current node x from the start node.
h(x): is the estimated cost (or simply H cost) of the path from current node x to the goal node. An estimate is made that tells how far the goal node is from the current node x. h(x) must be an admissible heuristic estimate. A heuristic function is said to be admissible if the cost of path estimated by it never exceeds the lowest-cost path. Since h(x) is part of f(x), f(x) is dependable on h(x) for the lowest cost of path. It means when h(x) is admissible, A* algorithm is guaranteed to give the shortest path if one exists. Therefore, h(x) must not overestimate the cost. The cost is measured by meter (m). There are many different heuristic functions used for the grid maps. Some famous heuristics are Manhattan distance, diagonal distance, Euclidean distance. Manhattan distance to estimate h(x) because it works better on squared grids is used. It is the direct distance from current node to the goal node without considering obstacles in the path. In this way h(x) is giving us the lowest possible cost to reach the goal node [14][15][16][17].

Linking Functions for A* Algorithm
The implementation of A* algorithm for mobile robot path planning system is developed by linking the main and sub-functions of MATLAB script. There are only six functions for function linking system. They are A Star.m for main function and Distance.m for distance calculation, Expand_array.m for X and Y array specifying, Insert_open.m for finding the OPEN and CLOSED list, Mn_fn.m for f(n) calculation and Node_index.m for identifying node. The block diagram of linking system for MATLAB function is shown in Figure 2

Overall Flowchart of A* Algorithm
The overall flowchart of A* algorithm is illustrated in Figure 3. The step-by-step procedures for mobile robot path planning system are developed by using MATLAB.

Development of Main Function for A* Path Planning Algorithm
According to the A* algorithm the path planning algorithm is accomplished with the help of MATLAB to find the optimal path of mobile robot. There are four main steps to find the optimal path for mobile robot. They are defining the 2-D map array on the work space, specifying the source, target and obstacle locations with the help of mouse button, finding the node with the smallest f(n), and plotting the optimal path on the work space. All distances are measured by SI unit (Meter).
First, the MATLAB codes are implemented according to the defining the 2-D map array on the work space as follows: MAX_X=10; MAX_Y=10; MAX_VAL=10; The values of MAX_X, MAX_Y, and MAX_VAL are changed by the necessary of work space specification for mobile robot path planning. This array stores the coordinates of the map and the Objects in each coordinate by using the below code. After inputting the information on these message box, the position of Obstacle, Target, Start are displayed on the work space and waiting the algorithm to find the optimal path.
Then the lists used for algorithm to calculate the distance travels of mobile robot with OPEN and CLOSED list on the work space is implemented by using the specified MATLAB codes.
First, all obstacles on the CLOSED list are put on the work space with the dummy counter by using the following looping instructions.
for i=1:MAX_X for j=1:MAX_Y if(MAP(i,j) == -1) CLOSED(k,1)=i; CLOSED(k,2)=j; k=k+1; end end end After counting the CLOSED list on the work space, the matrix size of CLOSED list to find the path distance is developed by following the below instruction.
CLOSED_COUNT=size(CLOSED,1); And then the starting node as the first node is set to find the next distance by accumulating the node location with the help of the following instructions. The xNode and yNode to the node with minimum f(n) is set to update the cost of reaching the parent node. xNode=OPEN(index_min_node,2); yNode=OPEN(index_min_node,3); path_cost=OPEN(index_min_node,6); After finding the cost of reaching the parent node, the node to list CLOSED is moved by using the following codes. CLOSED_COUNT=CLOSED_COUNT+1; CLOSED(CLOSED_COUNT,1)=xNode; CLOSED(CLOSED_COUNT,2)=yNode; OPEN(index_min_node,1)=0; Once the algorithm has run the optimal path is generated by starting off at the last node (if it is the target node) and then identifying its parent node until it reaches the start node. This is the optimal path of the mobile robot. The following instructions are appropriated to find the optimal path. i=size(CLOSED,1); Optimal_path=[]; xval=CLOSED(i,1); yval=CLOSED(i,2); i=1; Optimal_path(i,1)=xval; Optimal_path(i,2)=yval; i=i+1; Based on the above MATLAB instructions to find the optimal path, the optimal path is plotted on the work space by using the following code.

Development of Distance.m Function
This function calculates the distance between any two Cartesian coordinates. The straight line equation is applied to find the distance along the mobile robot path finding stage. This function is very simple and easy to use the next update distance of target node by using the following MATLAB code.

Development of Expanded_Array.m Function
This function takes a node and returns the expanded list of successors, with the calculated f(n) values. The criteria being none of the successors are on the CLOSED list. Number of elements in CLOSED including the zeros matrix is satisfied by using the following MATLAB codes.
exp_array=[]; exp_count=1; c2=size(CLOSED,1); The node itself is not its successor for node within array bound and to check if a successor is on closed list by using the following MATLAB instructions.

Development of Inset_Open.m Function
This function is to populate the OPEN list by using the following instructions in MATLAB. The new row for mobile robot location by accumulating the h(n), g(n) and f(n) to find the optimal path. new_row= [1,8]

Development of Node with Minimum f(n)
This function takes the list OPEN as its input and returns the index of the node that has the least cost by applying the following MATLAB code. In this code, the indexes of the goal node are stored and get all nodes that are on the list open.  One of the successors is the goal node so send this node and it is implemented by the following MATLAB codes. And the index of the smallest node can be sent to the updating stage.
if flag == 1 i_min=goal_index; end Index of the smallest node in temp array and index of the smallest node in the OPEN array are developed by the following codes.

Development of Node_Index.m Function
This function returns the index of the location of a node in the list OPEN and it can be identified by using the following MATLAB instructions. i=1; while(OPEN(i,2) ~= xval || OPEN(i,3) ~= yval ) i=i+1; end; n_index=i;

Debugging the A Star Search Algorithm
After implementing the A star search algorithm in the previous chapter, the collision free path planning algorithms is debugged in MATLAB command window. The information window for selecting the target node with the help of mouse button is displayed. This information window is shown in Figure 7. The first simulation result of collision free path for mobile robot is illustrated in Figure 8. In this simulation map, there are forty-three obstacles are placed on the map by random position. The mobile robot is found the target by using A star (A*) search algorithm to colloid the obstacles. The way to get to the target is the shortest path and minimum flow path for mobile robot navigation. The second simulation result of collision free path for mobile robot is demonstrated in Figure 9. In this simulation plot, there are forty-one obstacles are positioned on the map by random position. The mobile robot is originated the target by using A star (A*) search algorithm to free the obstacles. The way to arrive at the target is the shortest path and minimum flow path for mobile robot navigation. The third simulation result of collision free path for mobile robot is confirmed in Figure 10. In this simulation conspire, there are forty-seven obstacles are situated on the diagram by random position. The mobile robot is instigated the target by using A star (A*) search algorithm to gratis the obstacles. The way to disembark at the target is the shortest path and minimum flow path for mobile robot navigation. The fourth simulation result of collision free path for mobile robot is established in Figure 11. In this simulation scheme, there are sixty-seven obstacles are located on the illustration by random position. The mobile robot is initiated the target by using A star (A*) search algorithm to free the obstacles. The way to go ashore at the target is the shortest path and minimum flow path for mobile robot navigation. The fifth simulation result of collision free path for mobile robot is recognized in Figure 12. In this simulation design, there are fifty-nine obstacles are sited on the figure by random position. The mobile robot is started the target by using A star (A*) search algorithm to free the obstacles. The way to land at the target is the shortest path and minimum flow path for mobile robot navigation. The simulation result of collision free path with closed terrain is illustrated in Figure 13. There are twenty-six obstacles around the target by closed terrain rules. Therefore the mobile robot cannot be reached at that target node normally.
At this time, the warning window for no path exists to the target is displayed and the mobile robot cannot move to get to the specified target node. The information of warning window is shown in Figure 13.

Conclusion
A* path-finding search algorithm is very famous in games for finding shortest distance between two nodes. Today's games have thousands of agents moving at a same time in the presence of obstacles. Thus it has become very important to find shortest paths concurrently and in a speedy way. Making use of Mobile robot system nature suits this scenario perfectly. Implementing Simple A* algorithm using arrays (Parallel A*) has approximately the same results as compared to A* implementation using adjacent lists. Both implementations are greedy for space. Increase in the size of map increases the memory requirements and thus decreases the speed of algorithm. To further increase the overall performance of algorithm, the memory requirements must be reduced. One option is to use the fast, read-only constant memory for storing the map. Pre-computing some paths and then sharing this already computed information with other agents further increases the efficiency. Another solution to this problem is to exploit the parallel hardware architecture in a true sense. Some improvements are made in the basic A* algorithm to calculate each path using multiple threads that run concurrently and use shared memory and thread synchronization. It reduces the total search time of A* algorithm as compared to the Parallel A* implementation.