Cellular Automata - People

overwhelmedblueearthΤεχνίτη Νοημοσύνη και Ρομποτική

1 Δεκ 2013 (πριν από 3 χρόνια και 4 μήνες)

43 εμφανίσεις

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