Version A of the code
was partially successful. The portion of the code allowing the rover to
navigate around obstacles was accurate and well written. However, the code
allowing the rover to track the beacon was flawed. As hypothesized by students
at the competition based on the movement of the rover, the main complication
was in the signal transmission between the beacon and the rover. The rover was
often unable to find the beacon and correct its course accordingly. Thus, the
rover was unable to successfully navigate to the beacon. Due to the lack of
further testing, the code for beacon tracking may have been correct, however,
without doing such testing it is hard to determine the overall success of
version A of the code.
Similarly to version A,
the success of version B of the code is undetermined. The differences in timing
of the completion of the code and the completion of the hardware caused testing
to be skipped while the code was rewritten with a math base. Thus, without
testing this version of code, the success cannot be known. It wouldn’t even be
possible to guess what would happen with the code merely because one line of
code being incorrectly written would throw of the rest of the programming.
After the data that
would be used to derive and equation that would convert RSSI into distance was
observed, it was noted how erratically the RSSI changed. At the same distance
on different days the RSSI changed. In addition, when further away from the
beacon, the RSSI received was greater than previously observed RSSI. Due to
these two factors, it was determined that the RSSI was highly inaccurate and
using it to navigate would be highly unreliable. Thus, using the RSSI to
calculate distance would have been even more inaccurate as it would be
calculated using averages.
Version D was very
similar to version B in the navigation; however, the beacon tracking was
removed due to the inaccuracy in merely reading the RSSI. Thus version D didn’t
attempt to go to a determined destination. It just read its sensors and tried
to move around the room without getting stuck. Which in the tests, it was
relative successful at doing. It only got stuck when it was stuck in a corner
and couldn’t turn enough to get out. In addition, the robot was stuck spinning its wheels continuously but
not actually moving when an object jutted out in front of the robot but was too
high for the bump sensors to realize it was there or when the object was at an
angle that caused the rover to hit it without triggering the bump sensors. However, this code was
successful to a good extent and with more development to both the mechanics and
the programming it is likely that the rover would be able to travel for longer
periods of time without getting stuck.