[ieee 2011 xxiii international symposium on information, communication and automation technologies...

6
Abstract This work considers the whole process of making a path finding simulator for Pioneer 3DX mobile robot. This simulator needs to be provided implementation of various optimal path finding algorithms and make their comparisons. For this purpose a software solution (GUI in Matlab) has been designed and tested. The simulator allows selecting mazes, different starting and finishing nodes and algorithms. Five different algorithms were used to determine the shortest path between nodes for a mobile robot within various mazes: Breadth-first search, Depth-first search, Bellman-Ford algorithm, Dijkstra's algorithm and A* algorithm. The main objective of this paper was to obtain fully and precise information on routing and finding the shortest path between two nodes within a maze for the mobile robot. Validity and effectiveness of the used algorithms were verified through both simulations and experiments. Keywords-path finding simulator; shortest path; mobile robot; optimal path finding algorithms; navigation I. INTRODUCTION Path finding usually describes the plotting process, using a computer application, of the shortest route between two points. It is mostly used as a method for solving mazes [1]. There are various ways for determining the shortest path, but the majority of them uses graph searching methods. This research field is based heavily on Dijkstra's algorithm for finding the shortest path on a weighted graph [2], [3]. At its core, a path finding method searches a graph by starting at one point and exploring adjacent nodes until the destination node is reached, generally with the intent of finding the shortest route [4], [5]. The global path planning is the process of deliberatively deciding on the best way to move the robot from a start location to a goal location. In more technical terms it is described as determining a path in configuration space between the initial configuration of the robot and a final configuration such that the robot does not collide with obstacles and the planned motion is consistent with the kinematic constraints of the vehicle [6]. It represents a way of planning which encompasses all of the robot's acquired knowledge to reach a goal, not just the current sensed world. It is slower, more deliberative, and attempts to plan into the future. There is generally no requirement for it to run in real time, but instead is usually run as a planning phase before the robot begins its journey. Local navigation is the process of using only the robot's current sensed information of its immediate world to avoid obstacles and to ensure vehicle stability and safety. It is much more reactive than path planning and runs in real time. The speed at which a vehicle can travel is limited by the speed at which the local navigator can operate [7]. The shortest path problem is the problem of finding a path between two vertices (or nodes) such that the sum of the weights of its constituent edges is minimized [8], [9]. An example would be finding the quickest way to get from one location to another on a road map. Graph searching algorithms such as a breadth-first search are capable of finding a route, but it takes time [10]. Other algorithms, that explore the graph, tend to find a route quicker. A common example of a graph- based path finding algorithm is Dijkstra's algorithm. Dijkstra's algorithm, is a graph search algorithm that solves the single- source shortest path problem for a graph with nonnegative edge path costs, producing a shortest path tree. This algorithm is often used in routing and as a subroutine in other graph algorithms [11], [12]. There are many other graph-based path finding algorithms such as A* or Bellman-Ford, that have benefits and restrictions in finding the shortest path between two nodes. For example A* is an extension of the Dijkstra's algorithm. A* achieves better performance (with respect to time) by using heuristics [13], [14]. This paper describes the design and implementation of a path finding simulator, used to solve the shortest path problem for a mobile robot placed in a maze. The realized system exhibits the following: GUI (Graphic User Interface) based path finding simulator with MobileRobots software support, Plotting of the shortest path between two nodes, Graph-based path finding algorithms selection and comparison, Data acquisition to confirm the proper operating of the path finding simulator. The paper is structured as follows. Section II describes the proposed software and hardware system for finding the set of admissible mobile robot paths. In section III the process of path finding simulator design is explained. Some of the mostly used paths planning algorithms are considered in Section IV. Section V presents the testing results obtained using various optimal path finding algorithms. Finally, conclusions are drawn in Section VI. Path Finding Simulator for Mobile Robot Navigation Tarik Terzimehic, Semir Silajdzic, Vedran Vajnberger, Jasmin Velagic and Nedim Osmic Department of Automatic Control and Electronics Faculty of Electrical Engineering, University of Sarajevo Sarajevo, Bosnia and Herzegovina e-mail: {tt14762, ss14717, vv14824, jasmin.velagic, nedim.osmic}@etf.unsa.ba 978-1-4577-0746-9/11/$26.00 ©2011 IEEE

Upload: nedim

Post on 01-Feb-2017

218 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: [IEEE 2011 XXIII International Symposium on Information, Communication and Automation Technologies (ICAT) - Sarajevo, Bosnia and Herzegovina (2011.10.27-2011.10.29)] 2011 XXIII International

Abstract – This work considers the whole process of making a path finding simulator for Pioneer 3DX mobile robot. This simulator needs to be provided implementation of various optimal path finding algorithms and make their comparisons. For this purpose a software solution (GUI in Matlab) has been designed and tested. The simulator allows selecting mazes, different starting and finishing nodes and algorithms. Five different algorithms were used to determine the shortest path between nodes for a mobile robot within various mazes: Breadth-first search, Depth-first search, Bellman-Ford algorithm, Dijkstra's algorithm and A* algorithm. The main objective of this paper was to obtain fully and precise information on routing and finding the shortest path between two nodes within a maze for the mobile robot. Validity and effectiveness of the used algorithms were verified through both simulations and experiments.

Keywords-path finding simulator; shortest path; mobile robot; optimal path finding algorithms; navigation

I. INTRODUCTION Path finding usually describes the plotting process, using a

computer application, of the shortest route between two points. It is mostly used as a method for solving mazes [1]. There are various ways for determining the shortest path, but the majority of them uses graph searching methods. This research field is based heavily on Dijkstra's algorithm for finding the shortest path on a weighted graph [2], [3]. At its core, a path finding method searches a graph by starting at one point and exploring adjacent nodes until the destination node is reached, generally with the intent of finding the shortest route [4], [5].

The global path planning is the process of deliberatively deciding on the best way to move the robot from a start location to a goal location. In more technical terms it is described as determining a path in configuration space between the initial configuration of the robot and a final configuration such that the robot does not collide with obstacles and the planned motion is consistent with the kinematic constraints of the vehicle [6]. It represents a way of planning which encompasses all of the robot's acquired knowledge to reach a goal, not just the current sensed world. It is slower, more deliberative, and attempts to plan into the future. There is generally no requirement for it to run in real time, but instead is usually run as a planning phase before the robot begins its journey. Local navigation is the process of using only the robot's current sensed information of its immediate world to avoid obstacles and to ensure vehicle stability and safety. It is

much more reactive than path planning and runs in real time. The speed at which a vehicle can travel is limited by the speed at which the local navigator can operate [7].

The shortest path problem is the problem of finding a path between two vertices (or nodes) such that the sum of the weights of its constituent edges is minimized [8], [9]. An example would be finding the quickest way to get from one location to another on a road map. Graph searching algorithms such as a breadth-first search are capable of finding a route, but it takes time [10]. Other algorithms, that explore the graph, tend to find a route quicker. A common example of a graph-based path finding algorithm is Dijkstra's algorithm. Dijkstra's algorithm, is a graph search algorithm that solves the single-source shortest path problem for a graph with nonnegative edge path costs, producing a shortest path tree. This algorithm is often used in routing and as a subroutine in other graph algorithms [11], [12].

There are many other graph-based path finding algorithms such as A* or Bellman-Ford, that have benefits and restrictions in finding the shortest path between two nodes. For example A* is an extension of the Dijkstra's algorithm. A* achieves better performance (with respect to time) by using heuristics [13], [14].

This paper describes the design and implementation of a path finding simulator, used to solve the shortest path problem for a mobile robot placed in a maze. The realized system exhibits the following:

� GUI (Graphic User Interface) based path finding simulator with MobileRobots software support,

� Plotting of the shortest path between two nodes, � Graph-based path finding algorithms selection and

comparison, � Data acquisition to confirm the proper operating of the

path finding simulator.

The paper is structured as follows. Section II describes the proposed software and hardware system for finding the set of admissible mobile robot paths. In section III the process of path finding simulator design is explained. Some of the mostly used paths planning algorithms are considered in Section IV. Section V presents the testing results obtained using various optimal path finding algorithms. Finally, conclusions are drawn in Section VI.

Path Finding Simulator for Mobile Robot Navigation

Tarik Terzimehic, Semir Silajdzic, Vedran Vajnberger, Jasmin Velagic and Nedim Osmic Department of Automatic Control and Electronics

Faculty of Electrical Engineering, University of Sarajevo Sarajevo, Bosnia and Herzegovina

e-mail: {tt14762, ss14717, vv14824, jasmin.velagic, nedim.osmic}@etf.unsa.ba

978-1-4577-0746-9/11/$26.00 ©2011 IEEE

Page 2: [IEEE 2011 XXIII International Symposium on Information, Communication and Automation Technologies (ICAT) - Sarajevo, Bosnia and Herzegovina (2011.10.27-2011.10.29)] 2011 XXIII International

II. SYSTEM DESCRIPTION The block structure of the proposed path finding simulator

is shown in Fig. 1. The simulator is composed of created GUI (which calls appropriate m-files) and software package for Pioneer 3DX mobile robot (ARIA software, MobileSim and Mapper3Basic software). For the future work, this path finding simulator can be adapted to be used in real situations (in real mazes) and to control movement of a physical robot.

Figure 1. System block structure.

ARIA (Advanced Robot Interface for Applications) is a C++ library (software development toolkit or SDK) for all MobileRobots/ActivMedia platforms [15]. ARIA can dynamically control mobile robot's velocity, heading, relative heading, and other motion parameters either through simple low-level commands or through its high-level Actions infrastructure. ARIA also receives odometric position estimates, sonar readings, and all other current operating data sent by the robot platform.

MobileSim is the software for simulating MobileRobots /ActivMedia platforms and their environments, for debugging and experimentation with ARIA [16]. MobileSim uses line data from a MobileRobots map (.map) file to simulate walls and other obstacles in the environment. Those line-based world maps can be created using software made solely for that purpose such as Mapper3 or using textual programs such as Notepad.

The Pioneer 3DX mobile robot is the world's most popular research robot [17]. The Pioneer’s versatility, reliability and durability have made it the reference platform for robotics research. Unlike hobby and kit robots, Pioneer is fully programmable, and will last through years of tough classroom and laboratory use. The base Pioneer 3DX platform consists of motors with 500-tick encoders, 19cm wheels, tough aluminum

body, 8 forward-facing ultrasonic (sonar) sensors, 8 optional real-facing sonar as shown in Fig. 2. The Pioneer 3DX is an all-purpose base, used for research and applications involving: mapping, teleoperation, localization, monitoring, vision, manipulation, multirobot cooperation, autonomous navigation, reconnaissance, etc.

The Pioneer 3DX mobile robot runs best on hard surfaces. It can traverse low sills and household power cords and climb most wheelchair ramps.

Figure 2. Pioneer 3DX – features.

As mentioned above, Pioneer 3DX supports two sets of sonar sensors. One set is installed on the front part, while the other one is placed on the rear part of the mobile robot, as shown in Fig. 3. Besides that, the mobile robot has different I/O ports, for connecting various peripheral devices and for using different kinds of power sources. Up to 16 devices can be connected to the bus, there is an onboard computer with four RS-232 serial ports, eight digital I/O ports, five AD ports, Ethernet, PC104 bus with additional ports and a PSU controller, all accessible via common application connected to the operative system of the mobile robot [18].

Figure 3. Pioneer 3DX – front and rear ultrasonic sensors.

III. PATH FINDING SIMULATOR DESIGN Path finding simulator proposed in this paper is based on

the software package for the mobile robot Pioneer 3DX (MobileSim, Aria and Mapper3). Fig. 4 shows corresponding UML sequence diagram.

When user starts GUI of the created simulator (Fig. 5), MobileSim is also launched (Fig. 6). MobileSim loads map file specified in the GUI. The used maps were created earlier using Mapper3 software. The path finding simulator loads the same map but in the textual format (extension .txt) and has only information about starting and ending points of each wall

Page 3: [IEEE 2011 XXIII International Symposium on Information, Communication and Automation Technologies (ICAT) - Sarajevo, Bosnia and Herzegovina (2011.10.27-2011.10.29)] 2011 XXIII International

(obstacle). M-file segment is created for space decomposition into simple regions called segments or cells (Fig. 7). Each segment is area of 0.5*0.5 m2, and may be legal or illegal for robot movement (illegal if obstacle is located within segment).

When user choose starting and goal point from GUI, appropriate segments, where those points are located, are found and denoted as starting and goal segments. User may also choose maximal speed of robot movement and path finding method (BFS, DFS, A*, Dijkstra's or Bellman – Ford). Depending on the chosen method, corresponding m-file is called. The m-file search for the shortest path between start and goal segment and returns sequence of legal neighbor segments. Afterwards, the path is plotted and simulator controls robot movement through path until it reaches its goal. Robot trajectory is shown in the GUI (Fig. 8).

Figure 4. UML sequence diagram.

Figure 5. GUI of the path finding simulator.

Figure 6. MobileSim simulator.

Figure 7. Example of simple space decomposition.

Figure 8. Path and robot trajectory graph.

Page 4: [IEEE 2011 XXIII International Symposium on Information, Communication and Automation Technologies (ICAT) - Sarajevo, Bosnia and Herzegovina (2011.10.27-2011.10.29)] 2011 XXIII International

Implemented simulator offers methods comparison by the time of searching and length of searched path (shown in Fig. 9).

Figure 9. Graphical presentation of the methods comparison.

IV. USED OPTIMAL PATH FINDING ALGORITHMS The effectiveness and the quality of the proposed simulator

will be verified using different most popular path finding algorithms, such as Breadth-first search (BFS), Depth-first search (DFS), Bellman–Ford algorithm, Dijkstra's algorithm and A* search algorithm.

A brief description of all algorithms will be provided in the following text. Pseudocodes will not be given in this paper, since some of them are too long. Corresponding references will be given for all pseudocodes.

A. Breadth-First Search (BFS) Breadth-first search (BFS) is a graph search algorithm that

starts its search at the root node, keeping the searching options close to it and exploring all the neighboring nodes [8]. When exploration is finishes for each of those nearest nodes in one level, it starts to explore their unexplored neighbor nodes on lower level in the hierarchy. This routine will continue until it finds the goal. BFS is an uninformed search method. It examines all nodes of a graph or combination of sequences by systematically searching through every solution. It does not use a heuristic algorithm. The pseudocode of BFS algorithm is given in [19].

B. Depth-First Search (DFS) Depth-first search (DFS) is an algorithm for traversing or

searching a tree, tree structure, or graph. The algorithm starts its search at the root and explores as far as possible along each branch before backtracking [11]. It progresses by expanding the first child node of the search tree that appears than it's going deeper until one of the two conditions are met. First one can be that the goal node is found, or in the second case it can hit a node that has no children. After one of those two conditions is fulfilled the search backtracks, returning to the most recent node it hasn't finished exploring. If the tree has big depth, than from technical reasons, depth limitations are

introduced. It means that hypothesis below defined depth won't be considered. DFS is an uninformed search and it is not providing an optimal result. The pseudocode of this algorithm is described in [20].

C. Bellman–Ford Algorithm The Bellman–Ford algorithm computes single-source

shortest paths in a weighted digraph [21]. Unlike the Dijkstra algorithm that can work only with non-negative edge weights, Bellman – Ford's algorithm solves this problem as well. That's why, Bellman–Ford is used primarily for graphs with negative edge weights. This algorithm has lower efficiency than Dijkstra, but sometimes it is impossible to solve some problem without using negative weights. It is very similar to Dijkstra, but instead of picking nods with minimal distance, algorithm approaches to all edges. That operation is performed |v| - 1 times, where |v| is number of nodes in the graph. These iterations provide precise promotion through graph. Efficiency of Bellman-Ford algorithm is O( |v| . |e|) where |v| is number of nods and |e| is number of edges. The pseudocode of Bellman-Ford approach is given in [22].

D. Dijkstra's Algorithm Dijkstra's algorithm, named after Edsger W. Dijkstra, is a

graph traversal algorithm [11]. Given a starting point within a graph, the algorithm determines the shortest route to every other connected node. Algorithm starts at the source vertex, S, it grows a tree, T, that ultimately spans all vertices reachable from S. Vertices are added to T in order of distance i.e., first S, then the vertex closest to S, then the next closest, and so on. Unconnected nodes in the diagram are assigned a distance of infinity. This algorithm is often used in routing and as a subroutine in other graph algorithms. The Dijkstra's algorithm pseudocode is presented in [23].

E. A* Algorithm The A* algorithm combines features of uniform-cost

search and pure heuristic search to efficiently compute optimal solutions [24]. A* algorithm is a best-first search algorithm in which the cost associated with a node is f(n) = g(n) + h(n), where g(n) is the cost of the path from the initial state to node n and h(n) is the heuristic estimate or the cost or a path from node n to a goal. A* algorithm guides an optimal path to a goal if the heuristic function h(n) is admissible, meaning it never overestimates actual cost. The pseudocode of A* algorithm is described in [25].

V. TESTING RESULTS In this section the simulation results of the implemented

path finding simulator are presented. Even though five methods were implemented, three of them were used for comparison – BFS, DFS and A*. Two types of maze were created for the testing, and the simulations were repeated five times in order to get more accurate results. The obtained simulations results are shown in Figs. 10-13. The important parameters which indicate the effectiveness and quality of simulation results are sorted in two tables. Table I. shows results for serviceable time of sequence calculation, while distance results are shown in Table II.

Page 5: [IEEE 2011 XXIII International Symposium on Information, Communication and Automation Technologies (ICAT) - Sarajevo, Bosnia and Herzegovina (2011.10.27-2011.10.29)] 2011 XXIII International

Figure 10. Maze No.1, experiment No.1.

Figure 11. Maze No.1, experiment No.2.

Figure 12. Maze No.2, experiment No.1.

Figure 13. Maze No.2, experiment No.2.

TABLE I. TIME OF SEQUENCE CALCULATION

Algorithm Maze 1 Maze 2 Case 1 Case 2 Case 1 Case 2

BFS 0.029821 0.024718 0.005396 0.018272

DFS 0.060297 0.079249 0.060868 0.018674

A* 0.15579 0.11108 0.018363 0.10682

TABLE II. DISTANCE BETWEEN START AND FINAL POSITION

Algorithm Maze 1 Maze 2 Case 1 Case 2 Case 1 Case 2

BFS 65 102 24 54

DFS 151 198 110 88

A* 65 102 24 54

From the results presented in Table I it can be concluded

that BFS algorithm has the minimal time of sequence calculation. In certain cases, sequence calculation is couple of times faster with BFS than DFS algorithm and even ten times faster than A* algorithm. Table II shows the distance between start and final position. From the obtained results it can be concluded that BFS and A* algorithm have optimal route, unlike DFS algorithm. In some cases route provided by DFS algorithm is five times longer.

VI. CONCLUSIONS Implemented software solution navigation and trajectory

planning of the mobile robot in a maze are proposed in this paper. All important aspects of the introduced solution have been considered and the obtained results have been discussed in detail. Software used for simulation has been properly explained and the GUI is specially made for this purpose. In the interface, user can load maze that is previously created.

Page 6: [IEEE 2011 XXIII International Symposium on Information, Communication and Automation Technologies (ICAT) - Sarajevo, Bosnia and Herzegovina (2011.10.27-2011.10.29)] 2011 XXIII International

GUI offers user to choose coordinates of the start and final point in the maze, and one of the five methods of trajectory calculation based on BFS, DFS, Bellman-Ford, Dijkstra's or A* algorithms. User can also choose “comparison mode” where the trajectory is calculated based on BFS, DFS and A* algorithms, and then the robot chooses optimal path. The obtained results demonstrate the capabilities and the quality of the implemented solution.

Future work will include the shorts path algorithms implementation on the physical Pioneer 3DX mobile robot model.

REFERENCES 1. E. F. Moore, “The shortest path through a maze,” International

Symposium on the Theory of Switching, Cambridge, Massachusetts, 1959, pp. 285–292.

2. E. W. Dijkstra, “A note on two problems in connexion with graphs,” Numerische Mathematik, vol. 1, pp. 269-271, 1959.

3. R. Diestel, Graph Theory, Graduate Texts in Mathematics. Springer-Verlag, vol. 173, pp. 6–9, 2005.

4. J. A. Bondy, and U. S. R. Murty, Graph Theory with Applications. North Holland. pp. 12–21, 1976.

5. G. Chartrand, Introductory Graph Theory. Dover Publications Inc., 1985. 6. G. Dudek, and M. Jenkin, Computational Principles of Mobile Robotics.

Cambridge University Press, Cambridge, 2000. 7. J. Giesbrecht, Global Path Planning for Unmanned Ground Vehicles,

Technical Memorandum, DRDC Suffield TM 2004-272, 2004. 8. F. B. Zhan, and C. E. Noon, “Shortest path algorithms: an evaluation

using real road networks,” Transportation Science, vol. 32, pp. 65-73, 1998.

9. N. Biggs, E. Lloyd, and R. Wilson, Graph Theory. Oxford University Press, Osford, 1986.

10. M. Kurant, A. Markopoulou, and P. Thiran, “On the bias of BFS (Breadth First Search),” International Teletraffic Congress (ITC 22), 2010.

11. T. H. Cormen, E. Charles, R. L. Rivest, and C. Stein, “Dijkstra's algorithm,” in book: Introduction to Algorithms (Second ed.). MIT Press and McGraw-Hill, New York, 2001.

12. A. Gibbons, Algorithmic Graph Theory. Cambridge University Press, Cambridge, 1985.

13. P. E. Hart, N. J. Nilsson, and B. Raphael, “Correction to a formal basis for the heuristic determination of minimum cost paths,” SIGART Newsletter, vol. 37, pp. 28–29, 1972.

14. R. Bellman, “On a routing problem,” Quarterly of Applied Mathematics, vol. 16, pp. 87–90, 1958.

15. ARIA. Available: http://www.mobilerobots.com/ 16. MobileSim. Available: http://www.mobilerobots.com/ 17. Pioneer 3-DX. Available: http://www.mobilerobots.com/ 18. Pioneer 3 Operations Manual. Available: http://www.mobilerobots.com/ 19. http://en.wikipedia.org/wiki/Breadth-first_search#Pseudocode 20. http://en.wikipedia.org/wiki/Depth-first_search#Pseudocode 21. L. R. Ford Jr, and D. R. Fulkerson, Flows in Networks. Princeton

University Press, 1962. 22. http://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm#Algo

rithm. 23. http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm#Pseudocode 24. D. Rina, and J. Pearl, “Generalized best-first search strategies and the

optimality of A*,” Journal of the ACM, vol. 32, pp. 505–536, 1985. 25. http://en.wikipedia.org/wiki/A*_search_algorithm#Pseudocode.