Gauntlet Challenge
Nathan and Corey
5/6/18
Challenge #1:
Final Video: https://youtu.be/t2qowOb-j0g
Time: 8.61 seconds
Simple challenge, simple strategy. First, turn the neato to face the bucket, then full steam ahead until collision with the bucket. It worked on the first try so we didn’t explore any alternatives.
Challenge #2:
Final Video: https://youtu.be/fIm2P4WUpow
Time: 11.76 seconds
We used a preplanned path composed of two checkpoints and the final BoB. We broke the problem down and solved it with a straightforward pattern: turn to next point, drive forward the euclidean distance to that point, then, after arrival, turn to face the following point. Rinse and repeat. While we preplanned the checkpoints, angles and distances were not hard-coded so our algorithm could’ve been used to navigate between any set of points.
Challenges we encountered were primarily centered around calculating what angle to turn to face the next checkpoint. We needed to take into account current orientation to find the angle to turn to face the second point--this in particular proved more challenging than expected. Our solution was to take the angle between the two points in the xy plane (generated by arc tangent) and then subtract our orientation (in the xy plane, calculated by summing up previous turn angles) to get an angle to feed into the turning function. A bug related to this that we had to fix was using y/x for arctan, when, due to the heading of the neato, x/y was actually correct (see code for more details).