# Constant Following Distance Simulations - PowerPoint PPT Presentation

1 / 21

Constant Following Distance Simulations. CS547 Final Project December 6, 1999 Jeremy Elson. research goals. Motivation: Explore the effect of different radio models on the accuracy of simulation Two opposing models:

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

Constant Following Distance Simulations

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

## Constant Following Distance Simulations

CS547 Final Project

December 6, 1999

Jeremy Elson

### research goals

• Motivation: Explore the effect of different radio models on the accuracy of simulation

• Two opposing models:

• Arena: Smother everything and noise; forces you to build algorithms that are noise-resistant

• network simulators: Extremely detailed

• In network simulation, very accurate radio models might be required

• What about in robotics? (Easier target...)

### experimental goals

• To explore this, the idea was:

• Implement a simple set of behaviors in simulation across different radio models

• Characterize the behavior across radio models (perhaps across behavior sets)

• Implement the algorithms in reality

• Compare simulation to reality

• This work is still entirely simulation; implementation coming

### the experiment

• Idea: Use radio contact to allow “constant distance following”

• Both robots follow the same path, one tries to keep a constant distance behind the other

• Path: Endlessly circling SAL

• Assume that the radio acts as a “proximity detector”

• Within radio range: you’re too close

• Out of range: you’re too far away

20 m

### robot sonar model

3

4

2

1

5

0

6

Exact sonar readings are never used; all 7 sonars are

classified into NEAR (< 2m), MID (2-5 m), or FAR (>5m)

Goal: endlessly circle SAL, clockwise

FAR

!NEAR

!NEAR

!NEAR

MID

NEAR=collision

FAR=corner coming soon

don’t care

MID

NEAR=too close to wall

FAR=corner crossing

or too far from wall

### basic behaviors

• Speed and direction controlled independently

• Direction:

if (state[6] == FAR) {

turnRate = 4.0; // Sharp right turn to follow the wall

} else if (state[5] == FAR || state[1] == NEAR || state[2] == NEAR) {

turnRate = 2.0; // Shallow right for left collision, or drift away from wall

} else if (state[3] != FAR || state[4] == NEAR || state[5] == NEAR

|| state[6] == NEAR) {

turnRate = -2.0; // Shallow left for right or dead on collision,

} // or getting too close to wall

### basic behaviors

• Speed:

if (state[2] == NEAR || state[3] == NEAR || state[4] == NEAR)

speed = -1.0; // Go backwards if we’re running into something

else if (state[6] == FAR)

speed = 2.5; // Slow down a lot if we’re past the end of the wall

else if (state[5] == FAR)

speed = 5.0; // Slow down a little if the wall end is coming

else

speed = nominalSpeed; // 7.0

### resulting path (1 robot)

Tic marks are at

constant time

intervals

Note robot slows

down as it reaches

corners

### obstacle avoidance

Robot backs up,

turns, goes forwards

Obstacle avoidance

overrides

wall following

Robot takes

wide turn

### proximity detection

• Simple model of Radiometrix (or similar) radio -- xmit success probability drops off sharply as distance increases

• Our goal: live on the slope of the curve

• Simulated with “(d + error) squared threshold” model

• Potential range of error is a percentage of d; chosen at random uniformly from that range

• The percentage is a parameter

### idealized model

nominal transmit range = 5m

### simulated model

nominal transmit range = 5m

### following behavior

• One robot is leader (nominal speed = 7.0), one is follower (nominal speed is variable)

if (following) {

getLossRate(&shortLossRate);

if (shortLossRate > 80)

nominalSpeed = 9.0;

else if (shortLossRate < 20)

nominalSpeed = 5.0;

else

nominalSpeed = 7.0;

} else {

nominalSpeed = 7.0;

}

### conclusions

• Simple rules are best

• More complex rules never worked as well!

• Priority is (naturally) critical!

• Using proximity detection seems to work reasonably

• Given that it is not entirely easy to track speed and distance around turns, etc.

• Surprisingly, percent-distance error seemed to have little impact on the outcome