Students continued to make modifications to the intake prototype. They scrapped the entire aluminum model because they decided it would be too time inefficient to drill and redrill holes into metal. Instead, the team constructed the front of the robot frame and the intake prototype with wood. A life-size drawing of the intake arms was printed out and glued onto a wooden block. Then, the intake arms were cut out with the vertical bandsaw along the traces.
In addition, shafts were manufactured on the lathe for the intake prototype. The team plans to have the intake mechanism fully designed and tested by Saturday, or Sunday at the latest.
Students assembling an intake prototype with wood
At around midnight last night, the team decided to remove the vertical rollers and add a bottom roller. This resulted in a much simpler two roller design which worked really well. The front roller is still 25″ long, while the back roller is 12″ long. Students also added passive polycarbonate funnels on each side so that the frisbee is in the center by the time it hits the roller.
Intake with bottom horizontal roller
Intake attached to wooden bumper frame
Meanwhile, students also created a wooden bumper frame out of wood to mount the intake mechanism. Like the new wooden intake, a wooden frame would allow the team to more easily drill and make modifications to the prototype.
Creating wooden bumper frame
The programmers had a very successful day. They began by bringing in and testing two additional VEX ultrasonic sensors from the VEX lab. Upon testing, the students found that one of the additional sensors was significantly better than the previous single ultrasonic sensor. The better sensor can detect surfaces of a distance greater than 12 inches, whereas the old sensor could only detect up to 3 inches. Though the VEX ultrasonic sensor works when tested with the shooter prototype, the team is still exploring other sensors as ways of detecting the orientation of the frisbee.
Testing the three VEX ultrasonic sensors
The programming team traveled upstairs for a group programming session, using one single laptop and a projector. The students worked together to implement a Controller class and reimplement WPILib’s PIDController. Instead of having multiple threads for each of the controllers, the team created a way to update each controller in one thread. This was done by making the Controller class and abstract class that held onto a static Vector of Controller objects. Then, in the constructor of the Controller class, “this” controller would be added to the Vector. Finally, a method called updateAll() would iterate through the Vector to update all of the controllers. This was a breakthrough moment for the programmers, as a solution utilizing fewer threads would make the whole process more light-weight.
When this new code was deployed to the 2012 robot Skyfire, no exceptions were thrown and no errors seemed to pop up. Miraculously, the code worked flawlessly on the first try!
- Continue assembling intake prototype
- Reimplement and commit state space controller class
- Add conveyor to intake prototype for the purpose of constraining the frisbee in all directions.
- Prevent frisbees from getting stacked once they were through the intake
- Turn down front roller to 3/8″ so that it can be driven with the pneumatic drill
- Model new intake in Solidworks
Lab closing time for the night was 2:30 AM