# Cellular Automata - People

AI and Robotics

Dec 1, 2013 (4 years and 5 months ago)

85 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

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

Types of Neighborhood

von Neumann Neighborhood

Types of Neighborhood

Moore Neighborhood

Types of Neighborhood

Moore Neighborhood

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
-
cell.

The traffic follows a multi
-
speed model. Hence,
velocities between 0 and V
max

are permitted.

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

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

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

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

implements

the

transition

function

of

each

cell
.

So,

for

a

n

X

n

grid,

we

have

n
2

.

At

the

beginning

of

each

time

step,

a

cell

sends

its

borders

to

its

neighbors
.

A

border

contains

information

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

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

polls

this

Cost
-
Grid

and

processes

all

the

routing

requests
.

Implementation contd..

The

Route
-
Planner

has

a

pool
.

A

from

this

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

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

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
]

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

.

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
.
30
.
html

Acknowledgements

Dr. Virgil Wallentine

Major Professor

Dr. Masaaki Mizuno

Supervisory Committee Member

Dr. Gurdip Singh
-

Supervisory Committee Member