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 m
2
.
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.
Pallet racking
Tote bins
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 : S
n

>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 V
max
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.
t
1
t
2
t
3
t
4
t
5
A Poisson Process
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
BC
i
=
infinity
Set
all
MF
i
=
false
(MF
is
a
map
flag
array)
TODO
list
is
empty
BC
start
=
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
=
BC
i
+
COST
ij
//Cost
of
reaching
j
from
//
the
start
cell
through
i
if
cost
<
BC
j
BC
j
=
cost
if
MF
j
=
false
add
j
to
TODO
list
and
set
MF
j
=
true
previous_cell
j
=
i
Route Planner Algorithm
3
.
Path
generation
Initialize
path
cell
=
goal
cell
loop
until
previous_cell
p
ath
cell
!=
start
cell
path
cell
=
previous_cell
p
ath
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
.
BC
goal
(=
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
n
2
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 Diagram
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
Class Diagram
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
.
Class Diagram
Simulation Parameters
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.
Simulation data
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/Acri
2000
Paper
.
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
,
Sep
1998
.
http
:
//cui
.
unige
.
ch/~dupuis/Traffic/pdcp
98
.
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/node
30
.
html
Acknowledgements
Dr. Virgil Wallentine
–
Major Professor
Dr. Masaaki Mizuno
–
Supervisory Committee Member
Dr. Gurdip Singh

Supervisory Committee Member
Comments
Enter the password to open this PDF file:
File name:

File size:

Title:

Author:

Subject:

Keywords:

Creation Date:

Modification Date:

Creator:

PDF Producer:

PDF Version:

Page Count:

Preparing document for printing…
0%
Comments 0
Log in to post a comment