510 likes | 713 Views
Robot Route Planning using Cellular Automata. MS Report. Shashidhar Rampally. Presentation Outline. Overview and Problem Statement Cellular Automata Route-Planner Algorithm Simulation using Cellular Automata Experimental Analysis Conclusions & Recommendations. Overview.
E N D
Robot Route Planning using Cellular Automata MS Report Shashidhar Rampally
Presentation Outline • Overview and Problem Statement • Cellular Automata • Route-Planner Algorithm • Simulation using Cellular Automata • Experimental Analysis • Conclusions & Recommendations
Overview • Robots are increasingly being used these days in industry for material handling, storage and retrieval. • Adding new items to the inventory • Retrieving items from the inventory • Moving items around
Overview contd.. • Such a system which is fully automated is called Automatic Storage and Retrieval System(ASRS) • Some storage and retrieval systems are very large, covering areas in excess of 50,000 m2. • A WALMART warehouse • Some storage systems are very small covering an area of hundred square meters or less • A book library
ASRS • Bar codes are usually used to identify products, storage locations and some times the handling units.
ASRS contd.. • Pallet racking and tote bins are usually the preferred storage medium. Tote bins Pallet racking
Robotic Librarian Front view of a column of shelf holding books A robot in the process of returning a book to the shelves
Robots in action A robotic arm retrieving an item from the shelf A stacker crane within an aisle of pallet racking
Problem Statement • Robots need to reach their destinations to get the job done. So, if we route the robots quickly to their destinations, we can process the requests speedily. • The application of Cellular Automata to the problem of robot route planning is presented.
Cellular Automata • A Cellular automaton consists of regular discrete lattice of cells. • Each cell has a state. • The evolution takes place in discrete time steps. • Each cell evolves according to the same rule, which depends only on the state of the cell and a finite number of neighboring cells.
Cellular Automata • Formally, we can define cellular automata as 4-tuple (L, S, N, f). • L is a regular lattice of cells. • S is a finite set of states. • N is a finite set of neighborhood indices of size |N| = n. • f : Sn->S is the transition function
Cellular Automata contd… • The factors that affect a cellular automaton include • Lattice Geometry • Neighborhood Size • Initial Conditions • Transition rules
Types of Neighborhood von Neumann Neighborhood radius = 1
Types of Neighborhood von Neumann Neighborhood radius = 2
Types of Neighborhood Moore Neighborhood radius = 1
Types of Neighborhood Moore Neighborhood radius = 2
Cellular Automata contd... • It must be noticed here that important features of cellular automaton are ‘locality’ and ‘homogeneity’. • Cell [ i ][ j ]t+1 depends on Cell [ i-1][ j ]t Cell [ i+1][ j ]t Cell [ i ][ j-1 ]t Cell [ i ][ j+1 ]t
Applications of Cellular Automata • Simulation of Particle-Diffusion and Particle-Reaction systems • Computer Architectures CAM-8, CEPRA • Cryptography • Traffic Simulations to study Traffic behavior • Simulation of Physical Phenomena such as heat-flow, turbulence, earth-quake propagation, forest fire etc.
Simulation using Cellular Automata • We assume there are fixed number of robots, which share the same workspace. • The workspace consists of cells arranged in the form of a two- dimensional grid. • Each cell represents a block made up of four two-way streets and an intersection connecting these streets. A cell
Simulation using Cellular Automata • Each robot needs a finite amount of space, which we call a road-cell. • The traffic follows a multi-speed model. Hence, velocities between 0 and Vmax are permitted. road cell
Robot motion • If V is the velocity of a robot and gap is the distance to the robot ahead…. • Acceleration: If (gap > V) and (V < Vmax) then V = V + 1 • Deceleration: If (gap < V) then V = gap
Storage and Retrieval requests • A Poisson process is usually used to model real world events. • Hence, the jobs for the robots are assumed to arrive with a Poisson distribution. Therefore the inter-arrival times for these jobs is distributed exponentially. A Poisson Process t1 t2 t3 t4 t5
Scheduling Algorithm • Initially, the system does not have any robots. • The robots are introduced into the system as the requests for the jobs arrive. • Each such request has a pick-up location and a drop-off location. • A robot is said to be BUSY when it is moving towards its destination to handle a request.
Scheduling Algorithm • When a robot reaches its destination, it enters a REACHED state. It waits for some period of time at the destination to process the request. • A robot then enters FREE state again. FREE BUSY REACHED
Route Planner Algorithm • Finds the quickest route from the start cell to the goal cell. • Involves two stages • Cost Estimation • Cost minimization & Path Generation • Cost Estimation • The cost of a cell is the maximum waiting time of a robot in each of the 8 one-way streets. This information is encapsulated in an instance of the “CellCost” class. • Taken together set of all such instances for the whole grid is called the map cost (MC) array.
Route Planner Algorithm • Cost Minimization & Path Generation • Cost minimization uses the map cost (MC) array as input and generates a Best-Cost (BC) array as output. • At completion of cost minimization, each cell in the BC array contains the cost of the lowest-cost path from the start cell to that cell. By cost we mean the time to reach the cell from the start. Path generation uses the BC array as input and produces the optimal path from the start cell to the goal cell.
Route Planner Algorithm 1. Initialization Set all BCi = infinity Set all MFi = false (MF is a map flag array) TODO list is empty BCstart= 0 Add the start cell to the TODO list
Route Planner Algorithm 2. Cost minimization loop until TODO list is empty Select and remove the top cell i from the TODO list For each neighbor j of i (four neighbors) cost = BCi + COSTij //Cost of reaching j from // the start cell through i if cost < BCj BCj = cost if MFj = false add j to TODO list and set MFj = true previous_cellj = i
Route Planner Algorithm 3. Path generation Initialize path cell = goal cell loop until previous_cellpath cell != start cell path cell = previous_cellpath cell next step = path cell
Example The map cost values (MC) are indicated by the upper left number in each cell. Best-cost (BC) values are indicated by the lower number in each cell. All the best-cost values are initially set to infinity. The best-cost value of start cell is set to 0.
Example The start cell has processed its neighboring cells. The neighboring cells of the start cell have new best cost and are added to the TODO list. The start cell is now off the TODO list.
Example Search complete. BCgoal (= 8) is the cost of the optimal path from the start to the goal. The path is found from the goal by selecting the neighboring cell, which resulted in that cell which resulted in the current cell having the BC value.
Implementation • A separate thread implements the transition function of each cell. So, for a n X n grid, we have n2 threads. • At the beginning of each time step, a cell sends its borders to its neighbors. A border contains information about robots crossing over to other cell. • Therefore a cell can go into the next time-step only when it has borders available from all the neighboring cells from the previous time-step. • A message passing mechanism using Bounded Buffers is used for passing borders to the neighbors.
Implementation contd.. • The display proceeds independent of the cellular automaton. • At the end of every time step, each cell in the 2D lattice captures the current state of the cell and sends the information to the Display-Grid. • The display thread reads the information in the Display-Grid from time to time to update the display
Implementation contd.. • At the beginning of each time step, a cell computes its current cost information (i.e. the cost of crossing that cell) and sends the cost information to the Cost-Grid. • Along with this cost information, a cell sends any associated routing requests (of the robots waiting at the junction in that cell). • The Route-Planner thread polls this Cost-Grid and processes all the routing requests.
Implementation contd.. • The Route-Planner has a thread pool. A thread from this thread pool is allocated to process each “routing request”. • The routing decisions are sent to the NextStep-Grid. • Each cell polls this NextStep-Grid to retrieve the routing decisions made by the Route-Planner.
Code • 33 classes organized into 5 packages • main • display • store • sync • util • With about 4300 lines of code (including comments)
Experimental Analysis • The given algorithm can be used in two ways • Static: Routing decision is made only once for each request. • Dynamic: Routing decision is made for each busy robot whenever it reaches a four-way junction.
Conclusions • This project was aimed at exploring the possibilities of using the cellular automata concepts to perform robot route planning. • The program finds the quickest route for each robot and routes the robot to its destination. • By mapping the given problem to a cellular automaton we exploit the inherent parallelism involved in cellular automata.
Conclusions contd.. • The simulation can be used to determine the optimal number of robots required for a given workspace and request arrival rate. • The simulation helps us to determine the maximum and average number of requests waiting in the queue to be catered to. • This project serves as a base over which other routing algorithms can be plugged in and simulated to investigate the efficiency of the algorithm
Recommendations • The size of the lattice, number of robots, inter-arrival time of requests, road length and request processing time were found to influence the system. • Eliminating loops in the dynamic algorithm. • The processing time for all the requests was assumed to be constant, the lattice was assumed to be perfectly two-dimensional and all the robots were assumed to be identical. These assumptions may not always be true.
References [1] Stiles P. N and Glickstein I. S., “Highly parallelizable route planner based on cellular automata algorithms”, IBM Journal of Research and Development, Volume 38. [2] Behring. C, Bracho. M, Castro.M and Mareno J. A., “An Algorithm for Robot Path Planning with Cellular Automata”, Fourth International Conference on Cellular Automata for Research and Industry (ACRI) proceedings, Karlsruhe, Germany, 2000. http://www.ldc.usb.ve/~mcastro/papers/Acri2000Paper.PDF [3] Adler J.L and Blue V.J., “Toward the design of Intelligent Traveler Information Systems”, Transportation Research Part C: Emerging Technologies 157-172 http://www.ulster.net/~vjblue/itis.pdf [4] Yuan K.H, Hong A.C., Ang M. and Peng G.S., “Unmanned Library: An Intelligent Robotic Books Retrieval & Return System Utilizing RFID Tags”, IEEE Systems proceedings, Man and Cybernatics, 6-9 Oct 2002. http://www.cwc.nus.edu.sg/~cwcpub/zfiles/IEEE_Robotic_Librarian.pdf
References [5] “An Introduction to Storage and Retrieval Systems” an article by The Logistics Business. http://www.logistics.co.uk/db_pdf/pdf_14.pdf [6] Dupuis A. and Chopard B., “Parallel Simulation of Traffic in Geneva Using Cellular Automata”, Parallel and Distributed Computing Practices Journal, 1 (3): 79-92, Sep1998. http://cui.unige.ch/~dupuis/Traffic/pdcp98.pdf [7] Wolfram S., “Articles on Cellular Automata” http://www.stephenwolfram.com/publications/articles/ca [8] Schatten A., “Cellular Automata Digital Worlds tutorial” http://www.ifs.tuwien.ac.at/~aschatt/info/ca/ca.html [9] Weimar J.R., “Simulation with Cellular Automata” http://www.tu-bs.de/institute/WiR/weimar/ZAscript/ZAscript.html
References [10] Poisson Arrival Model http://networks.ecse.rpi.edu/~vastola/pslinks/perf/node30.html
Acknowledgements • Dr. Virgil Wallentine – Major Professor • Dr. Masaaki Mizuno – Supervisory Committee Member • Dr. Gurdip Singh - Supervisory Committee Member