1. Problem Definition: Create a robot that can successfully avoid obstacles and follow a black line.
2. During our brainstorming process, we developed alternative concepts, such as using two tracks instead of four. In favor of increased surface area to place the Arduino on, one of our alternative ideas was to sacrifice the two inner tracks. We also considered taking out three of the five wheels on each track. Our third alternative concept was to flip the vehicle around because we noticed that the bottom surface was more level. Our alternative concepts would not only alter the appearance of our robot, but they would also affect its behavior. For instance, reducing the number of tracks from four to two would increase the pressure on each track, but decrease the robot's friction. In terms of software, the most challenging decision that we made was in regards to how our robot was going to return to the black line after avoiding an obstacle. One of our ideas was to program the robot to make an acute angle turn after its entire body length surpassed the brick.
3. As a group, we came to a consensus that each of the previous alternative concepts should be included in our final design in order to promote simplicity and innovation. Using regular language, we decided that an acute angle turn would be problematic due to the robot's hardware design. We decided to calculate the amount of time it takes for the robot to travel one body length. By doing this, we can program the robot to turn after its entire body length surpasses the brick. Additionally, we decided that the robot should move in a spiral, loop-like motion after avoiding an obstacle. The purpose of this movement is for the robot to find its path on the black line after turning.
4. We detailed our design by creating detailed sketches. These sketches identify different parts of our robot like the track, axles, and Arduino. Also, our detailed sketches helped us choose effective locations for the ultrasonic sensor, line followers, and touch sensors. For example, our sketches helped us realize that the line followers should be as close to the ground as possible in order to sufficiently catch the light reflecting from the black tape.
5. Each of us individually defended our ideas to the group. We welcomed and respected individual ideas; however, new ideas were often met with criticism in order to ensure that they were free from as many flaws as possible. More often than not, ideas had to evolve beyond their proposed concepts.
6. We did not have major software issues; however, the multiple hardware problems that we encountered led to the creation of multiple, time-consuming iterations. Our RedBoard, ultrasonic sensors, and touch sensors all malfunctioned at different stages of our project. In these instances, we had to connect our jumper wires to new RedBoards, ultrasonic sensors, and touch sensors. In order to ensure that these parts worked, we spent additional time making isolated programs. As a result, we spent less time testing the finalized code for our robot.
7. Despite theoretically programming the robot correctly, it does not function optimally. Our robot can only function when it is exposed to a high voltage which means that it can only move at high speeds. This is an issue because the robot's actions are slower than its behaviors. In other words, the robot cannot process commands fast enough to stop its movements from getting off track. We should have spent more time testing the robot and we collectively agree that time management was our biggest setback.
8. This is our prepared final design report.