Our Approach
We began by discussing possible features that our robot might need to have to satisfy the project constraints. For example, we realized early on that line following would be essential and that our robot should deposit buzzwords without turning. We decided to use an Event-Based Programming approach and created a state diagram for our system.
We then set a list of project milestones and came up with a rough timeline. Inspired by Mindtribe, we planned to work together as a team to accomplish each milestone.
We then set a list of project milestones and came up with a rough timeline. Inspired by Mindtribe, we planned to work together as a team to accomplish each milestone.
Calculations
We began with some basic calculations to determine which motors to use. We decided to use two motors to power the robot, one for each side of the robot.
We estimated the total weight of our robot to be 6.8kg, the static coefficient of friction would be 0.5, and that we would have wheels with radius 3cm.
Based on the results, we determined that the Vex 393 Motors available in the ME210 lab would provide enough torque, while allowing our robot to move relatively quickly.
We estimated the total weight of our robot to be 6.8kg, the static coefficient of friction would be 0.5, and that we would have wheels with radius 3cm.
Based on the results, we determined that the Vex 393 Motors available in the ME210 lab would provide enough torque, while allowing our robot to move relatively quickly.
Early Prototyping
We decided to make our first prototype out of LEGOs for convenience and speed. Our goal was to get an estimate of the dimensions and layout of our robot. When building the prototype, we first realized that LEGO base plates are very flexible. This caused the base of the robot to bend too much under the weight of the motors and wheels. We decided to fix this issue by reinforcing them with Duron.
To allow our motors to interface with the LEGOs, we designed and 3D printed LEGO motor mounts and couplers. However, these couplers failed under the torque they experienced. We realized that 3D printed parts are inherently weak, and that we did not have the time to make metal LEGO couplers. This was the main reason we decided to not use LEGOs in our next prototype.
To allow our motors to interface with the LEGOs, we designed and 3D printed LEGO motor mounts and couplers. However, these couplers failed under the torque they experienced. We realized that 3D printed parts are inherently weak, and that we did not have the time to make metal LEGO couplers. This was the main reason we decided to not use LEGOs in our next prototype.
Sensor Integration
Once we transitioned to using a Duron base and directly driving the wheels with a Vex Motor, our next task was to integrate sensors. We decided to use ultrasonic and line following sensors to navigate the field.
We realized that the ultrasonic sensor was unreliable due to the low walls of the field. We then decided to rely exclusively on line following to navigate the field. However, the line sensors were affected by the ambient light levels. This meant that our robot's thresholds had to be updated at nearly every work session, which slowed the testing and debugging process.
We realized that the ultrasonic sensor was unreliable due to the low walls of the field. We then decided to rely exclusively on line following to navigate the field. However, the line sensors were affected by the ambient light levels. This meant that our robot's thresholds had to be updated at nearly every work session, which slowed the testing and debugging process.
Version 1
After days of testing and tweaking, we had our first fully functional prototype. We were the third team to "beat a brick", which was the main requirement for ME210.
Afterwards, we asked the ME210 teaching team for suggestions to improve our robot. They advised us to clean up the wiring on our circuit board, secure our battery, keep the wires from catching on the wheels, remove any unnecessary parts, not use cantilevered wheels, and in general reduce our use of hot glue.
Afterwards, we asked the ME210 teaching team for suggestions to improve our robot. They advised us to clean up the wiring on our circuit board, secure our battery, keep the wires from catching on the wheels, remove any unnecessary parts, not use cantilevered wheels, and in general reduce our use of hot glue.
Final Version
We implemented the teaching teams' suggestions for a much cleaner, safer robot.