Robot Route Planning using Cellular Automata MS Report Shashidhar Rampally.
-
Upload
tamsin-skinner -
Category
Documents
-
view
216 -
download
0
Transcript of Robot Route Planning using Cellular Automata MS Report Shashidhar Rampally.
Robot Route Planning using
Cellular Automata
Robot Route Planning using
Cellular Automata
MS ReportMS Report
Shashidhar RampallyShashidhar Rampally
Presentation OutlinePresentation Outline
Overview and Problem Statement Cellular Automata Route-Planner Algorithm Simulation using Cellular Automata Experimental Analysis Conclusions & Recommendations
Overview and Problem Statement Cellular Automata Route-Planner Algorithm Simulation using Cellular Automata Experimental Analysis Conclusions & Recommendations
OverviewOverview
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
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..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
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
ASRSASRS
Bar codes are usually used to identify products, storage locations and some times the handling units.
Bar codes are usually used to identify products, storage locations and some times the handling units.
ASRS contd..ASRS contd..
Pallet racking and tote bins are usually the preferred storage medium.
Pallet racking and tote bins are usually the preferred storage medium.
Pallet racking Tote bins
Robotic LibrarianRobotic Librarian
Front view of a column of shelf holding books
A robot in the process of returning a book to the shelves
Robots in actionRobots in action
A robotic arm retrieving an item from the shelf
A stacker crane within an aisleof pallet racking
Problem StatementProblem 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.
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 AutomataCellular 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.
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 AutomataCellular 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
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…Cellular Automata contd…
The factors that affect a cellular automaton include Lattice Geometry Neighborhood Size Initial Conditions Transition rules
The factors that affect a cellular automaton include Lattice Geometry Neighborhood Size Initial Conditions Transition rules
Types of NeighborhoodTypes of Neighborhood
von Neumann Neighborhoodradius = 1
Types of NeighborhoodTypes of Neighborhood
von Neumann Neighborhoodradius = 2
Types of NeighborhoodTypes of Neighborhood
Moore Neighborhoodradius = 1
Types of NeighborhoodTypes of Neighborhood
Moore Neighborhoodradius = 2
Cellular Automata contd...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
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
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 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
Simulation using Cellular Automata
We assume there are fixed number of robots, which share the same workspace.
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
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.
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 Robot motion
If V is the velocity of a robot andgap 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
If V is the velocity of a robot andgap 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
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 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.
t1 t2 t3 t4 t5
A Poisson Process
Scheduling AlgorithmScheduling 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.
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 AlgorithmScheduling 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.
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 AlgorithmRoute 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.
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 AlgorithmRoute 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.
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 AlgorithmRoute Planner Algorithm
1. InitializationSet all BCi = infinity
Set all MFi = false (MF is a map flag array)
TODO list is emptyBCstart = 0
Add the start cell to the TODO list
1. InitializationSet all BCi = infinity
Set all MFi = false (MF is a map flag array)
TODO list is emptyBCstart = 0
Add the start cell to the TODO list
Route Planner AlgorithmRoute Planner Algorithm
2. Cost minimizationloop until TODO list is empty
Select and remove the top cell i from the TODO listFor 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
2. Cost minimizationloop until TODO list is empty
Select and remove the top cell i from the TODO listFor 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 AlgorithmRoute Planner Algorithm
3. Path generation Initialize path cell = goal cellloop until previous_cellpath cell != start cell path cell = previous_cellpath cell
next step = path cell
3. Path generation Initialize path cell = goal cellloop until previous_cellpath cell != start cell path cell = previous_cellpath cell
next step = path cell
ExampleExample
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.
ExampleExample
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.
ExampleExample
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.
ImplementationImplementation
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.
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.
Class DiagramClass Diagram
Implementation contd..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
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
Class DiagramClass Diagram
Implementation contd..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.
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..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.
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.
Class DiagramClass Diagram
Simulation ParametersSimulation Parameters
Code Code
33 classes organized into 5 packages main display store sync util
With about 4300 lines of code (including comments)
33 classes organized into 5 packages main display store sync util
With about 4300 lines of code (including comments)
Experimental AnalysisExperimental 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.
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.
Simulation dataSimulation data
ConclusionsConclusions
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.
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..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
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
RecommendationsRecommendations
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.
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.
ReferencesReferences
[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
[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
ReferencesReferences
[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
[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
ReferencesReferences
[10] Poisson Arrival Modelhttp://networks.ecse.rpi.edu/~vastola/pslinks/perf/node30.html
[10] Poisson Arrival Modelhttp://networks.ecse.rpi.edu/~vastola/pslinks/perf/node30.html
AcknowledgementsAcknowledgements
Dr. Virgil Wallentine – Major Professor
Dr. Masaaki Mizuno – Supervisory Committee Member
Dr. Gurdip Singh - Supervisory Committee Member
Dr. Virgil Wallentine – Major Professor
Dr. Masaaki Mizuno – Supervisory Committee Member
Dr. Gurdip Singh - Supervisory Committee Member
Comments