Title: Robot Route Planning using Cellular Automata
1Robot Route Planning using Cellular Automata
Shashidhar Rampally
2Presentation Outline
- Overview and Problem Statement
- Cellular Automata
- Route-Planner Algorithm
- Simulation using Cellular Automata
- Experimental Analysis
- Conclusions Recommendations
3Overview
- 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
4Overview 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
5ASRS
- Bar codes are usually used to identify products,
storage locations and some times the handling
units. -
6ASRS contd..
- Pallet racking and tote bins are usually the
preferred storage medium.
Tote bins
Pallet racking
7Robotic Librarian
Front view of a column of shelf holding books
A robot in the process of returning a book to
the shelves
8Robots in action
A robotic arm retrieving an item from the shelf
A stacker crane within an aisle of pallet racking
9Problem 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.
10Cellular 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.
11Cellular 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-gtS is the transition function
12Cellular Automata contd
- The factors that affect a cellular automaton
include - Lattice Geometry
- Neighborhood Size
- Initial Conditions
- Transition rules
13Types of Neighborhood
von Neumann Neighborhood radius 1
14Types of Neighborhood
von Neumann Neighborhood radius 2
15Types of Neighborhood
Moore Neighborhood radius 1
16Types of Neighborhood
Moore Neighborhood radius 2
17Cellular Automata contd...
- It must be noticed here that important features
of cellular automaton are locality and
homogeneity. - Cell i j t1 depends on
- Cell i-1 j t Cell i1 j t
- Cell i j-1 t Cell i j1 t
18Applications 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.
19Simulation 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
20Simulation 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
21Robot motion
- If V is the velocity of a robot and
- gap is the distance to the robot ahead.
- Acceleration
- If (gap gt V) and (V lt Vmax) then
- V V 1
- Deceleration
- If (gap lt V) then
- V gap
22Storage 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
23Scheduling 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.
24Scheduling 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
25Route 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.
26Route 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. -
27Route 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
- Â
28Route 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 lt BCj
- BCj cost
- if MFj false
- add j to TODO list and set MFj true
- previous_cellj i
- Â
29Route 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
- Â
30Example
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.
31Example
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.
32Example
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.
33Implementation
- 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.
34Class Diagram
35Implementation 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
36Class Diagram
37Implementation 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.
38Implementation 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.
39Class Diagram
40Simulation Parameters
41Code
- 33 classes organized into 5 packages
- main
- display
- store
- sync
- util
- With about 4300 lines of code (including comments)
42Experimental 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.
43Simulation data
44Conclusions
- 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.
45Conclusions 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
46Recommendations
- 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.
47References
- 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/Acri200
0Paper.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
48References
- 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/ar
ticles/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/ZAsc
ript/ZAscript.html
49References
- 10 Poisson Arrival Model
- http//networks.ecse.rpi.edu/vastola/pslinks/per
f/node30.html
50Acknowledgements
- Dr. Virgil Wallentine Major Professor
- Dr. Masaaki Mizuno Supervisory Committee Member
- Dr. Gurdip Singh - Supervisory Committee Member
51Comments