210 likes | 218 Views
This project explores the effect of different radio models on the accuracy of simulation, focusing on constant distance following behavior. It compares simulation results to real-world implementation on a Pioneer-2 robot.
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
simple SAL model 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)
desired steady state 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 { // leader 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
future work • Additional Radio Models & Behaviors • e.g., bit error rate model: packet success becomes sensitive to packet length • Then, probe with both short and long packets • Implementation on real Pioneer-2 • Compare performance under simulation to that of the real implementation