Exercises
Now that we've got this to work, there are ways we could enhance the system and make it more interesting:
- Could you use
cv2.putText
to draw values such as the PID data onto the frames in themake_display
method? - Consider writing the PID and error data versus time to a file, then loading it into another Python file, using Matplotlib to show what happened. This change might make the under/oversteer clearer in retrospect.
- You could modify the motor handling code to go faster when the line is closer to the middle and slow down when it is further.
- A significant enhancement would be to check two rows and find the angle between them. You then know how far the line is from the middle, but you also know which way the line is headed and could use that to guide your steering further.
These exercises should give you some interesting ways to play and experiment with the things you've built and learned in this chapter.