1 / 19

Line Following

Line Following. Let’s review portions of Line Following Exercise. First we used “bang-bang” control to follow a line’s edge (right side and left side). Then we got both motors going by using hysteresis (transition overlap).

hubert
Télécharger la présentation

Line Following

An Image/Link below is provided (as is) to download presentation 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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Line Following • Let’s review portions of Line Following Exercise. • First we used “bang-bang” control to follow a line’s edge (right side and left side). • Then we got both motors going by using hysteresis (transition overlap). • Let’s introduce proportional control by using the motor() function. motor (motor # ,percent full power); We might achieve smoother transitions.

  2. Follow Left Edge of Line Definitions White = 25 Black = 125 port_motor = 1 starboard_motor = 3 Buggy

  3. Control Strategy Plot

  4. Pseudo-code sensor = analog(3); /*read the sensor*/ If (sensor < 75) { pmp = 100; /*set port motor power*/ smp = 0; } /*set starboard motor power*/ else { pmp = 0; /*set port motor power*/ smp = 100; } /*set starboard motor power*/ motor (port_motor , pmp); motor (starboard_motor, smp);

  5. Follow Right Edge of Line Definitions White = 25 Black = 125 port_motor = 1 starboard_motor = 3 Buggy

  6. Control Strategy Plot

  7. Pseudo-code sensor = analog(3); /*read the sensor*/ If (sensor < 75) { pmp = 0; /*set port motor power*/ smp = 100; } /*set starboard motor power*/ else { pmp = 100; /*set port motor power*/ smp = 0; } /*set starboard motor power*/ motor (port_motor , pmp); motor (starboard_motor, smp);

  8. Follow Left Edge of Line(Get both motors going with hysteresis) Definitions White = 25 Black = 125 port_motor = 1 starboard_motor = 3 Buggy

  9. Control Strategy Plot

  10. Pseudo-code sensor = analog(3); /*read the sensor*/ If (sensor < 50) { pmp = 100; /*set port motor power*/ smp = 0; } /*set starboard motor power*/ else if (sensor > 100) { pmp = 0; /*set port motor power*/ smp = 100; } /*set starboard motor power*/ else { pmp = 100; smp = 100; } motor (port_motor , pmp); motor (starboard_motor, smp);

  11. Follow Left Edge of Line(Use proportional control for smooth transitions) Definitions White = 25 Black = 125 port_motor = 1 starboard_motor = 3 Buggy

  12. Control Strategy Plot

  13. Pseudo-code sensor = analog(3); /*read the sensor*/ pmp = 100 -1 * (sensor – 25); smp = 1 * (sensor – 25); motor (port_motor , pmp); motor (starboard_motor, smp);

  14. Follow Left Edge of Line(Get both motors going with hysteresis) (Use proportional control for smooth transitions) Definitions White = 25 Black = 125 port_motor = 1 starboard_motor = 3 Buggy

  15. Control Strategy Plot

  16. Pseudo-code sensor = analog(3); /*read the sensor*/ If (sensor < 75) { pmp = 100; /*set port motor power*/ smp = 2 * (sensor – 25); } else { pmp = 100 -2 * (sensor -75); smp = 100; } /*set starboard motor power*/ motor (port_motor , pmp); motor (starboard_motor, smp);

  17. Proportional Control(Careful algebra can avoid floats. Save the divide for last.) Definitions White = 25 Black = 100 port_motor = 1 starboard_motor = 3 Buggy

  18. Use Careful Algebra (y = mx+b) to Avoid Floats Inside parentheses executes first – save the divide for last

  19. Pseudo-code sensor = analog(3); /*read the sensor*/ pmp = (100 * (sensor – white)) / (black – white); smp = 100 - pmp; motor (port_motor , pmp); motor (starboard_motor, smp);

More Related