This class implements a simplified version of a Pure Pursuite algorithm.
Pure Pursuite works by choosing a point along the route, some distance ahead, and moving towards it. As robot moves, it constantly picks the next point, so the "pursuite" never ends. I am not going to explain details here: in the "links" section below you will fine some excellent tutorials, for any level, from beginner to advanced.