|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#16
|
|||
|
|||
|
Re: How do u get your robot to follow the white line??????????????????
Quote:
![]() |
|
#17
|
||||
|
||||
|
Re: How do u get your robot to follow the white line??????????????????
Quote:
the problem with line following with only 2 or 3 sensors is you only have a gross idea of where the line is, its either this way or that way - you cant be sure how far and the bot is relatively big and heavy, making it slow to turn and respond to commands - if you try to go too fast you end up overshooting the line and your bot will zigzag back and forth trying to track it using a gyro sensor, by comparison, give you much greater information on how far off course you are, and you can implement a Proportional, Integral, Differential (PID) control loop to track your course and optimize it to stay tighly on the desired heading, no matter what your bot encounters along the way. with the gyro, if you are a tiny bit off, you can apply a tiny bit of correction - if you are way off, you can apply a lot of correction - and everything inbetween is covered with very fine resolution. |
|
#18
|
|||||
|
|||||
|
Re: How do u get your robot to follow the white line??????????????????
We decided to run with 6 sensors, 3 in front and 3 in back. That way we know whether to shift left or spin left or adjust left to different degrees. But thats just incase the IR dies completely. Otherwise, the two work in tandem. Nice to see but a real pain in the @$$ to program.
-Kesich |
|
#19
|
||||
|
||||
|
Re: How do u get your robot to follow the white line??????????????????
Quote:
btw. I have emailed you. |
|
#20
|
||||
|
||||
|
Re: How do u get your robot to follow the white line??????????????????
Quote:
|
|
#21
|
||||
|
||||
|
Re: How do u get your robot to follow the white line??????????????????
Quote:
Ah youth. |
|
#22
|
||||
|
||||
|
Re: How do u get your robot to follow the white line??????????????????
Quote:
|
|
#23
|
||||
|
||||
|
ok , you need 2 banner cells, one of the left or your bot (l_banner) . and one on the right (r_banner)
if ( l_banner == 1) turn robot left 45 degrees ( run trial and error tets to find out how long it takes to turn your bot 45 degrees left) if (r_banner == 1) turn your robot right 45 degrees so... if you had 4 wheel tank drive , and your left drive motors were pwm01 & pwm02 , and your right were pwm03 & pwm04. and run a counter ((int)count_me) Code:
if (l_banner == 1)
{
count_me ++ ;
if (count_me <=2)
{
pwm01 = pwm02 = 200; /* runs your left motors at a medium
speed forward */
pwm03 = pwm04 = 75; /*runs your right motors at a medium speed
reverse */
}
if(count_me >=3)
{
count_me = 0; /*resets the counter */
}
}
else
if (r_banenr == 1)
{
count_me ++ ;
if (count_me <= 2)
{
pwm01 = pwm 02 = 75; /*left motors run reverse */
pwm03 = pwm04 = 200; /*left motors run forward */
}
if (count_me >= 3)
{
count_me = 0; /* resets the counter */
}
}
else
pwm01 = pwm02 = pwm03 = pwm04 = 255 ; /*runs robot full forward */
![]() fixed the indentation =) Last edited by JBabbie : 04-03-2004 at 13:31. Reason: forgot part |
|
#24
|
||||
|
||||
|
Re: How do u get your robot to follow the white line??????????????????
it will, you just need to use the CODE vB tag.
|
|
#25
|
||||
|
||||
|
Re: How do u get your robot to follow the white line??????????????????
Use CODE in square brackets to start a code segment and /CODE in square brackets to stop the code segment.
![]() Phil |
|
#26
|
|||
|
|||
|
Re: How do u get your robot to follow the white line??????????????????
How do you get a heading using the Yaw rate sensors? is it really easy ? i would think u just keep a timer then multiply the reading from Gyro * TIME * TIME... also how do you turn the 0-254 value to something that is a actual value like m/s etc...or not?
but i heard that integrating causes a LOT of errors etc... |
|
#27
|
||||
|
||||
|
Re: How do u get your robot to follow the white line??????????????????
took me a minute to find this in another thread - this is the crash course in turning a yaw rate sensor into a compass heading - only difference this year is the analog in gives you a 10 bit number - I just did a ' >>2' to divide it by 4 (shift right twice) - 8 bits is plenty...
__________________________ last year we used the supplied yaw rate sensor to figure out our compass heading - you can do it with ONE line of code! when the bot is not turning the output of the yaw rate sensor was 127 - when you turn in one direction the number goes up, the other, the number goes down (yaw rate sensor wired directly to analog input - no external circuits/filters or anything else) start off with a 16 bit variable initialized to 32000. then somewhere in your code add the value of the sensor to that heading variable, and subtract 127 (to correct for zero being 127) THATS IT! thats all it takes - as your bot turns in one direction, the heading variable will increase - as it turns the other way, it decreases. If you turn 180° right, then turn 180° left, it will go back to 32000 it works EXTREEMLY well - the errors tend to cancle themselves out - the only refinement you might want to add is to let the bot sit for minute while its not moving, and see if zero is 126, 127, 128... and use that as your zero offset. with a little testing you can find out how many counts in the heading register is equal to 1 degree - turn the bot 90° right and read the register. but dont bother dividing the heading register by a constant to work in degrees - just use whatever units the register comes out to be - for example, if 32,000 is zero heading, maybe 45,153 will be +90° and so on. thats all there is too it - since the SW loop runs at a consistant rate, simply adding the sensor signal to the variable is all you need to do to intergrate degrees/second into degrees! |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|