DPRG List  

[DPRG] Help needed to fix line follower's oscillations

Subject: [DPRG] Help needed to fix line follower's oscillations
From: Dave Hylands dhylands at broadcom.com
Date: Wed Jun 12 09:44:48 CDT 2002

Are you able to read analog values from the sensors?

If so, while the sensor is over the edge of the line, you'll start to get
values between black and white. The rate of change of these values will give
you a sense of how quickly the sensor is crossing the line, which will
reflect either how quickly the bot is turning or how quickly the line is

Ideally, you'll be able to position each sensor so that it reads about 50%
between black and white. Then when you start drifting you can tell in which
direction and how quickly.

Dave Hylands

> -----Original Message-----
> From: Clay Timmons [mailto:ctimmons at cadence.com]
> Sent: Tuesday, June 11, 2002 1:28 PM
> To: dprglist at dprg.org
> Subject: [DPRG] Help needed to fix line follower's oscillations
> I'm working on a line following robot and having trouble with
> the steering.  The problem I'm having is getting the robot
> to track a straight line at higher speeds. On a straight line
> the robot corrects a bit to the left and overshoots
> the line a tiny amount then it corrects to the right and
> overshoots a bit more, then left, then right, etc. each time
> with larger overshoot until it loses the line.  Looks sort of
> like a sine wave with increasing amplitude. 
> I expect the left right left right ... oscillation but I don't
> understand why the overshoot is growing and growing.
> My steering algorithm is simple. The robot has 6 line sensors, 
> 3 on the left and 3 on the right. The microcontroller sets the 
> steering angle based on where the line is at.  Basically it's
> a look up table with 6 entries.   
> Any idea how to add dampening to the steering algorithm?
> PID type control?  My current system is proportional only
> and I may need the D term.   Is this really possible to take
> the derivative of something that only has 3 values?
> PID type control?  I've tried adjusting the gain of my system.
> I used a knob input on the microcontroller to set the steering lookup
> table before each run.   If I turn the gain down the system is more
> stable and oscillates slowly without increasing amplitude.  With
> the gain turned up the robot oscillations increase as described.
> The problem is that if I turn the gain down so low that it tracks
> a straight line it won't make the turns.   How can I get it to be
> responsive to the turns yet stable on the straights?
> Speed sensitive steering?  I'm also wondering if my steering response
> needs to be speed sensitive.  I'm thinking of how a human would drive
> a car.  Would the same steering corrections for 5 MPH be appropriate
> at 60 MPH?   I've done all my testing at about 1/2 throttle on the
> robot but my goal is to be able to follow the line at any speed.
> Any help is really appreciated.   I've been stuck on this problem
> for days and my brain is getting fried.   
> _______________________________________________
> DPRGlist mailing list
> DPRGlist at dprg.org
> http://nimon.ncc.com/mailman/listinfo/dprglist

More information about the DPRG mailing list