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: Tue Jun 11 15:46:03 CDT 2002

I solved the problem by using multiple sensors.

I used a line of 5 sensors, one in the middle, and then spaced out across
about 10 cm (they're under the scoop of my Mini Sumo).

If the middle sensor is active, then I go forward full speed. If the middle
ones are active then I slow down the wheel on the side which is active just
a bit, which make the bot move in a smooth arc.

Finally, if the outer sensors are active, then I stop the wheel on the side
which is active, until the middle or center sensor becomes active.

With a bit more logic, this setup can deal with crossing lines as well as
right angle and acute angle lines (lines that come to a 45 degree point), or
135 degree lines.

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