collectively solving the kidnapped robot problem · 2011-10-03 · collectively solving the...

Post on 10-Mar-2020

8 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Collectively solving the kidnapped robot

problem

Daniel Kostro and Matthew Parkan, EPFL, 2010

??

Who is involved?

the robots the death arena

8 distance sensors

(infrared)

camera

compass

emitter/receiver

map of the arena

odometry

painted in blue

red walls

green cylinders

homogenous (more or less)

lighting

Why am I following him…

What is the problem?

The robots must localize themselves efficiently from any

starting position in the arena

How do we solve it?

Using particle filter localization

θtθ

ty

tx

?

?

)(

)(

)(Remember, the robot has an

accurate and precise compass

odometric information

Our particle filter localization method…

particle filter

obstacle avoidance &

identification

position estimate

Obstacle avoidance & identification

1.The robot moves forward at a random angle

towards the obstacle (wall, cylinder, other

robot)

2.The robot senses the proximity of an

obstacle using IR sensors. It turns to

face it then moves slightly backwards

3.The robot identifies the obstacle using

camera (color threshold) and compass

(bearing intervals)

4.The robot enters obstacle avoidance

state (rule based algorithm) and moves

away

>NORTH WALL PROXIMITY

>CYLINDER PROXIMITY

odometric information

Our particle filter localization method…

particle filter

obstacle avoidance &

identification

position estimate

Odometry (dead reckoning)

wrv

tvd

),()( 2Ntt

robot speed translation error εt at time step t

rotation error εθ at time step t

μ = 0 and ζ2(t) = δd (t)

),( 2N

μ = 0 and ζ2 = 0.01

travelled distance

odometric information

Our particle filter localization method…

particle filter

obstacle avoidance &

identification

position estimate

(0,1.5) (1,1.5)

(0,0) (1,0)

y

x

rcyl

N

Authorized zones

(xi,yi)

There are small buffer zones

near obstacles

δc,min

Xmin= 0 Xmax= 1

ymin= 0 ymax= 1.5

Authorized zones

δc,max

δw,min

δw,max

Authorized zones (with formulas)

22

pcpcpccp yyxxPPd

If rc + δc,min < dcp < rc + δc,max

→ particle is invalid → relocate particle to valid position

If xmax – δw,max < xp < xmax + δw,min || xmin + δw,min < xp < xmin + δw,max

|| ymax – δw,max < yp < ymax - δw,min || ymin + δw,min < yp < ymin + δw,max

→ particle is invalid → relocate particle to valid position

Cylinder intersection is tested

Wall intersection is tested

The particle filter in action

has the same velocity (with some

noise) as its associated robot, so

particle positions propagate like this:

Each particle i with position (xi,yi):

can only be located inside

authorized zones which are regularly

redefined by obstacle identification

)sin()()()( dttytty tii

)cos()()()( dttxttx tii

Bayesian filtering isn’t used (this

means all the particles have the same

weight)

is given a random initial position in

the arena

Initial forbidden zones and particle

distribution

Once an obstacle is identified, the

forbidden zone is redefined and the

particles are repositioned in the new

authorized zone

Each relocated particle is given

coordinates of a randomly chosen valid

particle

In addition, if all particles are

invalid they are reinitialized (given

new random valid positions distributed

in the whole arena)

Forbidden zones and particle distribution after East wall

identification

Robot particle information exchange

1.Two robots meet, locally broadcast the

positions of their respective particles and

compare them

2. Particles which are too far apart are

recentered (centroids of clouds get closer)

Through iterative obstacle identification and particle repositioning, the

robots get a pretty good estimate of their true position

How is the performance evaluated?

valid

N

i

i

pN

x

x 1

valid

N

i

i

pN

y

y 1

the position accuracy

the time taken to attain a position accuracy of 0.05 (~1.4 robot radius)

r

r

r

p

p

p

y

x

y

x

accuracy

We measure:

the number of times all the particles were reinitialized

the position precision (standard deviation) isn’t used in the evaluation

Difference between particle cloud centroid and real robot position

The Movie

Results

1 2 4 6 8 100

10

20

30

40

50

60

70

Robot performance

Number of robots

tim

e (

s)

1 2 4 6 8 100

0.002

0.004

0.006

0.008

0.01

0.012

0.014

0.016

0.018

Robot reinitializations

Number of robots

Nu

mb

er

of re

initia

liza

tio

ns p

er

se

c

1 2 4 6 8 100

0.02

0.04

0.06

0.08

0.1

0.12

Robot encounters

Number of robots

Nu

mb

er

of ro

bo

t e

nco

un

ters

pe

r se

c

Number of runs:

100 with 1 robot

50 with 2 robots

25 with 4 robots

20 with 6, 8, 10 robots

Results are highly variable (no significant difference)

However, a lower number of robots seems to work better

Conclusion & remarks

•Our particle filter approach generally allows to get a good estimate

of positions (though the time taken is highly variable).

•There doesn’t seem to be an optimal number of robots adapted to the

size of the given arena.

Issues:

•Alot of problems with obstacle identification (e.g. robots facing

green cylinders would see through, on some occasions)

•We had to reverse to Webots 6.1.5 to visualize particles, and used

6.2.4 to evaluate performances

Further study:

•Compare performance with/without communication

•Effects of robot speed

>Thank you

top related