Blog
Day #27: Superstructure
Wiring
The wiring on the practice bot was fixed because it was routed incorrectly and they were in the wrong ports.
Manufacturing
A large portion of the raw material for the superstructure was cut today. Some of the actual machining started which included drilling holes and tapping them so that they would be ready to attatch to the superstructer once it is ready. Some of the superstructure parts are being milled to length.
Programming
Today, the programmers made miscellaneous changes and fixes to the 2013 code. The commands’ timeout functionality was changed to use the built-in setTimeout and isTimedOut functions, rather than creating an instance of a Timer and calling get(). This was tested and worked quite nicely and as expected. Additionally, the code was edited greatly to adhere to the style guide.
Day #26: Practice Robot is Driving
Much progress today was made in manufacturing and assembly, and near the end of the evening the practice robot was driving for the first time.
CAD
Abhi and Richard M worked on detailing the intake assembly, with the goal of releasing all parts for manufacture by the end of the weekend. The gearbox design is still in progress, but gear ratios have been finalized and gears and timing belt pulleys selected to yield surface speeds of 17 fps on the first (top) roller, and 18 fps on the second (bottom) roller and conveyor. The higher second roller speed is necessary to clear discs from the intake more quickly when multiple discs enter simultaneously, and the conveyor must move discs back through the robot as fast as the second roller feeds them in.
Manufacturing
Students and mentors continued working on the shooter and conveyor parts that were released to manufacturing yesterday. Josh finished the conveyor frisbee back stop pins by adding a radius using the “CNC lathe file” technique. Connor, Chris and others started the conveyor middle hex shafts and conveyor bottom standoffs. Many other students cut stock material to rough lengths on the horizontal bandsaw throughout the day to keep the lathes and CNC supplied. Pat made the two different shooter shafts on the newly-functioning Monarch lathe, while Cory manufactured square plugs on the CNC to be inserted and welded into the square tubes that span the width of the intake.
An issue was discovered with the VEX ½” and ⅜” hex shafts received near the start of build season; many of them are visibly crooked, which is causing runout on the machined parts. E-mails exchanged about the issue with the President of VEX Robotics led to the conclusion that this was possibly an isolated incident due to the way the shafts were shipped (in a flat package instead of a round tube). More shafts are already incoming from VEX and the existing ones can be sent back for exchange.
Assembly
Although not all the parts that will be used in the competition gearboxes have been received yet (a few anodized gears are still missing), a few gearboxes were partially or fully assembled using substitute parts. It was discovered that the CIM output shaft spacers already made were not long enough as the WCP pinions do not have hubs like the steel pinions used in previous years, so new spacers were made.
New wheels have not been made yet, but as they will be the same size (3.5”) as last year, new tread was riveted to old wheels and they were installed in the practice robot to enable it to run. Once two gearboxes were assembled, they were installed into the practice robot and chain was run from them to the wheel shafts.
Wiring
Not much wiring work was done on the competition robot as some parts (new cRIO, ribbon cables) are still missing, but enough was done on the practice robot to enable it to run. The ribbon cable going between the digital sidecar and the cRIO was added, and power was run to the analog breakout. Additionally, to enable testing, a D-Link radio and 12V-5V converter were hacked on (but will likely be moved to different locations later). Nagy and Francisco also crimped and soldered terminals to all the CIM motors.
The team received a visit today from Matt Pasienski, who works at one of the team’s sponsors, Ooyala, and has coached Ultimate Frisbee at the national college level in addition to holding a PhD in Physics. He spent time with the primary and backup human players, Aaron and Nagy, and helped them refine their hammer-throwing technique.
Robot driving
As the pneumatics are not yet plumbed or wired, the shifters were locked into high gear with a couple of zip-ties each. After a few false starts (the cRIO was wired to a 12V power source instead of the 24V, the analog breakout wasn’t receiving power properly, and the joystick trim tabs weren’t centered), the programming team quickly got the drivetrain running with the robot in its stand on top of a table. After calibrating the Talons, the robot was put down on the field at about 11:15pm and taken for a test drive by Abhi and a few others.The drivetrain seemed very quick and responsive, and the improved linearity provided by the Talons was very noticeable. However, as the robot is currently far lighter than it eventually will be, today’s testing isn’t an effective indicator of its handling once complete. Tests were conducted with a radar gun to attempt to determine the top speed, but they were inconclusive (the gun reported 25 mph, which is too high to be correct).
Action items
-
Complete manufacturing conveyor middle roller shafts and bottom standoffs
-
Cut all aluminum tubing needed to be sent out for superstructure/subsystem welding on Monday
-
Make drawing for superstructure plugs and machine them on the manual mill
-
Begin driver drills with the practice robot
-
Wire and plumb pneumatics on both robots
-
Continue competition robot wiring
-
build
Lab closing time: 2:00am
Day #25: Manufacture of Conveyor and Shooter Begins
Drive Gearbox
The bulk of the remaining parts ordered from West Coast Products arrived today, including gears, shifting dogs, and shifter shafts. Students assembled the piston blocks for the bimba pistons. This will actuate the dog shifters, which will control the 2-speed transmission and PTO. The dog shifters were modified to prevent interferences and fit inside the gearbox.
Machined Shifting Dogs
Shooter and Conveyor
Students made drawings for shafts and spacers that will later be used on the shooter and conveyor. The raw materials for these parts were cut, and later manufactured by students with assistance from the mentors.
Makin the Pahts
Finished Parts
Programming
Students worked on the code for the intake. They also tested all the subsystems of code to make sure that they functioned properly.
Visitors!
Team 100 from Woodside, Carlmont, and Sequoia High Schools visited the lab today. They stopped by for a couple of hours to borrow the use of the lab’s hex broach.
Action Items:
- Assemble Drive Gearbox
- Continue manufacturing Shooter and Conveyor shafts
- Release more parts for manufacture
- Further develop code
- Wire Pneumatics
Lab Closing Time: 12:30
Day #24: Bumpers, Wiring, and Continued Prototyping
CAD
Students made some of the drawings for the conveyor shafts. The shafts with finished drawings should be finished tonight.
Manufacturing
Students manufactured a few of the shafts for the conveyor assembly. These hex shafts will used with the polyurethane rollers to move the frisbees from the intake to the piston-powered loader.
Manufactuing parts on the lathe
Bumpers
Students began measuring the dimensions of the bumper cordura based on the measurements of the robot bumper assembly in Solidworks. They will order 4 yd x 60 in cordura material from Seattle Fabrics for the red and blue bumpers. Particular effort will be spent making sure that the colors are according to the team standards. After confirmation of all details, they will place the order.
Wiring
Wiring today consisted of soldering connectors onto a mini CIM motor and another set of connnectors for the speed controller to test out the intake prototype. The students discovered that the motor’s shaft was spinning, while the gear was not. After some modificaitons, the team was able to successfully control the speed of the intake with the speed controller, which was mapped to the Logitech gamepad.
The current drivebase chassis
Prototyping
Students continued design on the intake, revising the polyurethane rollers as well as the polycarb on top. This wasn’t worked on much today, but the improvements drastically increased efficiency.
Student making adjustments to the intake
PR
Students continued to revise Chairman’s as well as work on various sponsor things. Awards will be delivered later this week, and prospective sponsors are being contacted.
Programming
Today, the programmers continued work on tuning the PID controller for the shooter wheel. The results were roughly about the same as yesterday’s results. When the actual shooter is built, the team will spend a great deal of time to tune the shooter controller very nicely and accurately. But for now, this was a good exercise and experience the team can learn from. The programmers are currently experimenting with a mix of filters, different controllers (bang-bang vs. PID), and feed-forward.
Meanwhile, other programmers wrote code for the intake prototype. They mapped it to the Logitech gamepad, so that the shoulder buttons would increment or decrement the speed controller output by 0.005, the start button would set it to 0.0, and the back button would set it to +1.0. This functionality was requested by the students working on the intake prototype, since they want to find the minimum required torque to intake a frisbee smoothly. Tests are currently being conducted on this.
Programmers intently programming
Day #23: Wiring and Prototyping
Wiring
Wiring the main robot chassis was continued today, as students and mentors mounted and wired 8 port solenoids. As well, the spike was wired and progress was made in the decision on how to mount the compressor. With majority of the base wiring complete, the team is currently waiting on new cRIO modules to arrive so that they can be mounted and wired as well.
Wiring the solenoids
Prototyping
Prototyping was divided into multiple subgroups today, with students working on the loading mechanism, the conveyor, as well as mounting a mini CIM motor to power the intake prototype.
Loading Mechanism
A select group of students decided to prototype the loading mechanism which transfers the frisbee from the conveyor to the shooter. Using polycarb, wood, and pistons, they were able to manufacture a working prototype to serve as a successful proof-of-concept reinforcing designs already implemented into CAD.
Conveyor
Students worked to make a conveyor out of wood to use as a proof-of-concept with using 3/8″ hex shafts versus the previously favoured 1/2″. It is still a work in progress and is currently being assembled.
Intake
It was decided that to optimize the speed of rollers used in the intake, it is neccessary to modify the current intake design which had previously been powered solely by pneumatic drills to operate using a single mini CIM motor. To do so, students created 2 pulleys to direct power to the front rollers using polycord while the back rollers will be powered by gears at a 3:1 ratio. There was minor setbacks in the broaching of a 1/2″ gear, and as such the project was slowed. The modifications are still currently underway and will be documented in depth once they are completed.
Last night the intake prototype was modified to have both rollers powered by a mini-CIM, as shown in the photos below. The gears mentione above were used to power the bottom roller. This resulted in a theoretical max surface speed of 9.8 ft/s. When the frisbees were put through, there was virtually no observed speed reduction in the CIM due to the load. Because of this, it is alright to gear the intake for 18 ft/s theoretical surface speed, so this design will be proceeded with.
The front intake roller, connected with polycord
Both rollers powered by a mini-CIM
Bottom roller, with 3:1 reduction
Brogramming
The programmers continued graphing the 2012 robot’s shooter wheel RPM versus time. They experimented with both the bang-bang controller and a PID controller, as well as with and without a moving average filter. When using the bang-bang controller to control the shooter wheel, students found that using a moving average filter to filter the motor outputs produced smoother and more consistent results. The programmers spent a lot of time adjusting the P, I, and D terms of the PID controller. Though the PID controller’s graphs are relatively more stable and smoother than the graphs of the bang-bang controller, the PID controller either tends to overshoot its goal or to not reach it at all (mostly at 3500 rpm).
Graph of a PID-controlled shooter wheel (P = 0.007, I = 0.0, D = 0.003)
Action Items
- Get a quote on wood for bumper assembly
- Buy wood/cordura for bumper assembly
- Finish design changes on conveyor and intake assemblies
- Finish prototyping conveyor
- Start designing control board
- Start manufacturing bumper components
- Hook up a speed controller to the intake to figure out the minimum required torque.
- Measure the current draw with the ammeter.
Day #22: Prototyping & Intermediate Shaft Spacers
Machining
The students and mentors finished machining the intermediate shaft spacers. After ordering gear box shafts from a sponsor, the team decided to manufacture twice as many to take the PTO into account. Because we are not able to manufacture a hex into the round part of a shaft with the tools at the lab, students are instead making our own out of a hex shaft and placing a spacer on one end to prevent the gear from moving. Members also unsuccessfully searched for hex bearings from the storage crates.
The newly manufactured shaft spacers
Prototyping
Students also worked on the shooter indexer. The two side blocks for the outer indexer had to be replaced, as the previous wooden blocks were not long enough. Students successfully got the shaft through both parts of the prototype, such that the smaller one can pivot. The next step for this project is to attach the pneumatic pistons to the main frame of the prototype.
Students assembling the shooter indexing prototype
The intake prototype
Programming
The programmers tested the gyro and were able to get accurate results from it. They also retrieved the two S4 drive encoders from Skyfire for future use and storage. In addition, they finished translating the state space controller from C++ to Java. Though the new code has not yet been explicitly tested, it compiles fine. More tests will be done at a later time.
Next, the programming team tested out the bang-bang controller, which controls the 2012 robot’s shooter wheel. They also tested the graphing tool within the Smart Dashboard and made it display the velocity of the shooter wheel versus time.
Velocity (rpm) of the shooter wheel vs. time
Action Items
- Finish constructing shooter indexing prototype
Build Season Recipes: Week 3
The nutritional benefits from the intake of these brownies helped us finalize our intake geometry over the weekend.
Non-Strategy Brownies
-
1 cup butter, melted
-
1 cup sugar
-
1 cup brown sugar
-
3/4 cup cocoa powder
-
1 1/2 tsp. vanilla extract
-
3 eggs
-
1 cup flour
-
1 1/2 tsp. baking powder
Mix melted butter, sugars and cocoa. Add vanilla and eggs; beat. Add flour and baking powder and mix well. Pour into a greased 9"x13" pan and bake at 350°F for 20-25 minutes, or until an inserted toothpick comes out with fudgey crumbs. Best enjoyed served warm with vanilla ice cream.
Week #3, Day Off
Today was a good day, as far as Mondays go. The parts for our drive gearbox were picked up from Modern Machine Company. The PTO Shafts, Output Shafts, Intermediate Shafts, and Wheel Shafts (small and medium) were returned. They turned out great! All that is needed to finish assembling the gearboxes are the parts from West Coast Products. Once those parts are received and the gearboxes are assembled, the drivebase will be driveable for the first time.
Cory and Pat worked on getting the new lathe working, which is running, but not currently useable as a main machine.
The season is going well and manufacturing is ahead of schedule. Design, on the other hand, is behind schedule. There will be a design freeze and a Order freeze on Friday. That means the design will be completed by the end of the week and all the known parts needed will be ordered by Friday.
Day #21: Conveyor and Stuff
Conveyor
Today, students worked on the conveyor system. This is the part that will transfer the frisbee from the conveyor to the shooter. The frisbee is pressed into the polycarb, where it gets stuck due to two 30-degree hinges. Students first created an 11 x 11 inch box, then labored over the polycarb to get it just right, and finally unscrewed one of the sides of the square, creating a U shape.
Day #21: Prototyping & Wiring
Prototyping
Indexing
The intake prototype is taking shape. It is now at a point where it's working and we are almost ready to begin manufacturing. Along with the intake, the mechanism for transferring frisbees to the shooter is also in the process of being prototyped. This indexing mechanism will transfer frisbees from the intake and conveyor to load them up in the shooter. The prototype will use two pneumatic pistons to accomplish this. It doesn't yet work fully, but in terms of a proof of concept, in works fairly well.
Students building the indexing prototype
Wiring
The robot wiring was worked on today on both the practice bot and the competeition bot. The PWM cables from the Talons were wired and put in place and the relays were wired to the power distribution board.
Wiring on the drive chassis
Programming
The programmers did more work on control and filters. They created a "bang-bang" controller; unlike the PID contoller, the bang-bang controller runs the control source until it reaches it goal, and stops once the goal is reached. They used the control scheme to control the shooter wheel, which worked fairly well (aside from the funny noises of the motors going on and off). The students also used a Counter instead of an Encoder to represent the encoder sensor, as the period of the encoder can be retrieved to calculate the RPM of the shooter wheel. Next, they also wrote a moving average filter, which takes in a double as an input and stores it in an array. The filter would return the average of the inputs as a single output. This has not yet been used, but it is a good utility to have.
Finally, the programmers prettified the code significantly. Many Javadoc comments and style-guide-cohering formatting fixes were included in the prettification process.
Action Items
-
Finish and test indexing prototype
Lab closing time for the night was 10:00 PM
Day #20: Funneling Intake and Wiring
Intake
Today, many students worked on the funneling intake. We tested many angles, and elevations, to account for the robot in motion. This funneling intake works through 3 steps. First, the frisbee is sucked in to the intake assembly by a roller that spins over/on top of the frisbee. From there, the frisbee is funnelled by two plastic angled “walls” into a smaller chute. From here, a last conveyor moves the frisbee into the conveyor. Today the students worked on varying the distances the rollers were offset from the ground in addition to the angle/placement of the intake funnels. In addition a team branched off and worked on the CAD for a “real life” model, similar to one that would go on the robot with all variables accounted for.
The final decisions for the intake:
- Funneling walls would be at a 45 degree angle
- The intake will be symmetrical (no staggering of walls to let one frisbee go in ahead of another)
- The funnelling walls and extra lexan pieces would all be made out of one piece of lexan (using bends)
- The back of the intake would rest on the bumpers (students: refer to current CAD in the Sandbox)
Students test different angles and heights using the wooden prototype
Students model the intake in Solidworks
Wiring
The students and mentors today worked on the electronics for the two chassis we got back from powdercoating. Currently on both the “practice” and “competition” robots, there are Power Distribution Boards, On/Off switches, Talons (speed controllers) and battery boxes. The team began wiring the Talons to the power distribution board.
Chassis with electronics
Programming
The programmers began the day by creating a command to shift the drivebase gearbox from high gear to low gear. This was done by creating a Solenoid object and switching it on or off with the press of a button. In addition, the students mapped four buttons on the gamepad (A, B ,X, Y) to the 2012 robot’s shooter. Each of the four buttons, when pressed, sets the shooter wheel at a predetermined speed. This implementation will be helpful for adjusting shooter wheel speeds on the actual robot this year.
Next, the programmers tried to come up with ways to display a graph of values from a Controller (speed, distance, etc) versus time. They brainstormed ideas on how to implement this, such as using the Smart Dashboard or a webpage. Students are looking into Flot, a jQuery library for plotting values on a dynamic graph. This graph will help with PID tuning and other testing.
Action Items
- Continue Wiring Robot Chassis
- Take steps toward a moving drivebase
- Continue on intake CAD/prototyping – Finalize dimensions
Lab closing time for the night was: 11:59 pm
Day #19: Reconstructed Intake
Prototyping
Intake
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
Programming
Sensor Testing
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
Control
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!
Action Items
- 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
Day #18: Powder-Coated Parts
Prototyping
Intake & 2010 Robot
Students continued to develop an intake prototype, now attached to Onslaught, and the intake will be completed as soon as possible. However, due to the arrival of the chassis, students removed Talons from Onslaught to be placed on the new drive chassis. This transfer means that we do not know which robot (Onslaught or Skyfire) that the drivers will practice on, but Onslaught will still be used for testing sensors.
Manufacturing
Today, GIlbert Spray Coat returned the powdercoated chassis a day earlier than expected, and students began working on putting electronics onto the frame, such as the power distribution board, ten Talons each, digital sidecar, the Spike relay, the power switch, and solenoid. Additionally, Pacific Coast Metals returned other anodized parts, such as gearbox plates and spacers.
If the shafts are returned from Modern Machine Company tommorrow, work on assembling the gearboxes will begin. However, there are a few missing parts that still need to be aquired. The 40T gears, shifting dogs, shifter shafts, and a few other parts from West Coast Products are still missing.
The bearing housings were received from Pacific Coast. Mentors and students worked on pushing the bearings into these housings
The two powdercoated chassis
Programming
Today, the students spent most of the time trying to make a VEX ultrasonic sensor work on an FRC robot, in order to determine the orientation of a Frisbee. Most of the time was spent debugging the sensor, as the sensor was returning arbitrary and random values. The programmers discovered that the two port numbers should be switched in the code, which made the ultrasonic sensor work. However, during testing, the sensor seemed to be able to detect surfaces a maximum distance of around 3 inches away. This is a problem, as the VEX ultrasonic sensors are designed to be able to detect distances of up to 115 inches away. The team thinks that interference from the surroundings could possibly affect the sensor’s abilities, but more tests and debugging will be done tomorrow to get to the root of the problem.
In addition, a couple of the robotics laptops were transfered to the lab for programming use; however, the nature of the Bellarmine servers prevented work from being done on the laptop. Currently, the team needs to reinstall the wireless card driver on the laptop.
Action Items
- Debug and test ultrasonic sensor
- Continue working on the intake
- Continue adding electronics to the chassis
- Continue designing the shooter, climbing mechanism, and intake
- Start wiring
Day #17: Chassis Arrives & Prototyping Continues
Prototyping
Intake
Students began building a new prototype intake. With four small, vertical, rollers and one large horizontal roller, the intake should work well once complete.
Working on the latest intake prototype
2010 Robot
Students continued constructing a simple bumper onto the 2010 robot, Onslaught. Once complete, the new prototype intake will be attached to the bumper and tested for performance. Also, once the 2010 robot is operational, our driveteam can begin practicing. Currently, the left side bumper is placed on completely, but the wooden block on the right side is too short. Students will fix the right side bumper as soon as possible tomorrow.
Attaching wooden “bumpers” onto the 2010 robot
Manufacturing
Today, the team recieved the drivebase chassis back from S&S Welding after sending them out on Monday. Students brushed the drivebase chassis in order to get them ready to be power coated. They will be sent to Pacific Coast to be powder coated tomorrow. The team expects to get them back by Friday.
Scotch-briting the drivebase chassis
Students also used the lathe to machine spacers for gearboxes. These should be finished tonight or tomorrow morning. Once the plates and shafts are complete, the team will begin to assemble them.
Programming
The programmers continued to work on translating state space and matrix code from 2012’s C++ code to Java. Currently, they are trying to implement a function that multiplies two matrices together.
Meanwhile, the latest cRIO image (v47) was successfully flashed to the 2012 robot today. However, the students need to re-deploy the code onto the robot, as the code was erased in the process of re-imaging.
Action Items
- Continue machining the shafts and plates for the gearboxes
- Continue testing the 2010 robot and let drivers practice
- Continue designing the shooter, climbing mechanism, and intake
Day #16: Long Range Shooter
Author: Art Kalb
Prototyping
Shooter
After a morning discussion on the mailing list, students and mentors attempted to use the shooter to shoot from a longer range than before. The goal of these long range shots is to pickup discs by the human player and quickly shoot them across the field. In testing, the shooter wheels and guide rail were improved to reduce slippage in the wheels, improving the velocity and range of the shooter. The previous BaneBots wheels were replaced with BaneBots wheels of larger diameter, and more compression was added. By the end of the day, the shooter was able to shoot frisbees through the high goal from the far edge of the field.
Close-up of updated shooter, with larger BaneBots wheels
Shooting frisbees from far edge of the field
Intake
Students started assembling a new intake, with a roller low to the ground to allow for easy pickup. Currently, this step is high priority, as the team needs a working and reliable intake mechanism for the overall robot design.
Students constructing new intake prototype
Manufacturing
Today, students worked on the lathe for various parts on the drive gearboxes.
Manufacturing gearbox standoffs on the lathe
Programming
Running the 2010 Robot
Students worked on reviving the 2010 robot’s drivebase to have our drivers (Abhi Kumar and Chris Sides) driving as soon as possible to practice with the Logitech F310 controller. Tasks involved modifications to the CheesyDrive code from 2012 and mapping the gamepad axes to the drivetrain, and reimaging the cRIO to v47.
The 2010 robot, Onslaught
Matrix Math
As a part of the program, the robot will need to do some mathematics involving matrices. To allow for this, students translated and reimplemented code to create a Matrix class, which will do basic matrix math (addition, subtraction, scalar multiplication) and matrix mulitiplication. Due to some uncertaintity about matrix multiplication, the class is not completed.
The students also worked on translating the state space controller from last year’s C++ code, which requires a functional Matrix class.
Action Items
- Finish and test intake prototype
- Improve shooter for speed, distance, and accuracy
- Finish translating matrix/control code from 2012 to Java + test code
- Flash v47 image to Skyfire
Build Season Recipes: Week 2
These award-winning cookies fuelled our continued designing, prototyping and drivetrain-manufacturing activities this past weekend.
Chocolate Chip Cookies
-
1/2 cup butter
-
1/2 cup Crisco
-
1/2 cup sugar
-
1/2 cup brown sugar
-
1 tsp. vanilla extract
-
2 eggs
-
2 1/2 cups flour
-
1 tsp. baking soda
-
1/4 tsp. salt
-
1 handful rolled oats
-
1 cup chocolate chips
Cream shortening and sugar. Add vanilla and eggs; beat. Add flour, baking soda and salt and mix well. Add oats and chocolate chips, stirring slowly. Drop 1" balls onto a cookie sheet and press flat with a fork. Bake at 350°F for 8-10 minutes, until golden brown.
FRC Day-Off, Week 2
Today was our second day off in the FRC season. We did meet for about an hour today to finish the chassis. The baseplates were picked up this morning from BAE Systems (who watterjetted them for us over the weekend). They were taken to the lab to be assembled with the rest of the chassis. The chassis were jigged up and sent to the welder. Hopefully they will be back in the next two or three days.
One of two chassis getting sent to the welder
Day #15: Improved Shooter
Prototyping
Shooter
Students continued to make modifications to the shooter prototype. They removed the polycarbonate cover on the top of the shooter and replaced it with an aluminum bar to guide the frisbee through. In testing, the frisbees that are shot seem to consistently go through the high goal. The team expiremented with different shooter positions and angles in the testing, and measured the speed at which the frisbees were fired out. It was found that the frisbee’s velocity upon exiting the shooter was roughly 15 to 20 mph.
The updated shooter design
Intake
Not much work was done on the shooter today. With the current intake prototype, the frisbee seems to get stuck high on the intake ramp, not touching any vertical rollers. As of now, the intake has been taken apart so that the students can add metal supports (as opposed to wood).
Manufacturing
The team continued to manufacture parts for the drive chassis and prototypes.
Student making parts on the lathe
Programming
Sensor Testing
The programmers had a particularly productive day. First, they tested the S4 and S5 encoders. The team realized that the encoders or wiring appeared to be defective yesterday because the encoders kept returning 0. They finally realized that it was indeed a code problem, as they needed to call the start() function on the encoders to start recording clicks. After testing all the S4 and S5 encoders in the 254 electronics bin, all of the encoders were deemed as “functional”, with the exception of one S4 encoder. The broken encoder was promptly labeled as “bad” with the help of some blue duct tape.
Programming the sensors while wielding pool noodles
Reading Constants
Meanwhile, the programmers tested out a method to read a text file from the robot (Constants.txt) and update the constants accordingly. At first, the team had problems with finding the text file on the robot. Previously, they had been using getResourceAsStream and InputStreams, but switching over to FileConnection and DataInputStream solved the null pointer exceptions. This was a major breakthrough for the programmers. Now, with a Smart Dashboard extension to send text files to the robot via FTP and a way to read and update constants from that text file, the programmers have achieved nirvana.
The Constants text file looks like this: a constant’s name = its updated value
CAD
Students began designing the intake mechanism in Solidworks. Though the intake prototype is not yet completed, this step is important because it helps to visually map out the prototype for future assembly.
Action Items
- Continue improving and testing shooter
- Reassemble and work on intake
Day #14: Prototyping, Programming and Designing
Prototyping
Shooter
The shooter protoype is coming along as students worked to test an added polycarb cover. To test the effectiveness of smaller wheels on the shooter, a group worked on replacing the treaded wheels with Banebots wheels. Tests proved favorable for the treaded wheels.
Intake
Leaders and students continued to test the intake system. Tests utilizing a single roller intake have proved successful. Students added an elevated mount to mimic the path that the frisbees will have to travel in order to enter the robot. Tests in intaking multiple frisbees have proved successful and steps are being taken to improve on the design.
Intake with wooden stands
Programming
Driver Station
Students progress by printing messages from the robot to the driver’s station control board. The programmers worked on some code to allow the driver’s station to cycle thorugh different autonomous modes. The “Y” button on the Logitech F310 joystick was mapped such that while the robot is disabled, a driver station user message line would display the current autonomous mode. This ended up working quite well with the available commands the team had already: drive distance and wait.
Meanwhile, the team also took time to strip and crimp a five-wire encoder wire into two female PWM terminals. This would allow the programmers to plug the S5 encoders into the digital sidecar to test the team’s S5 encoders. Unfortunately, this has yet to be completed; testing will occur tomorrow to ensure that both the wiring and encoders work.
Writing the autonomous mode selector
CAD
Bumpers
Through diligent work by students the CAD for this year’s bumpers are nearly complete.
Drivebase
Students and mentors have continued to work in Solidworks to design our robot’s drivebase. Progress was made by adding electrical components to the CAD to map out the distribution of speed controllers, CRIO and pneumatic systems placement, and the power distribution board.
The design of the robot drivebase in Solidworks
Action Items
- Test S5 encoders
Day #13: Manufacturing and Continued Prototyping
We had an excellent turnout of students today, which helped get a lot done.
Manufacturing
Chassis
The chassis needs to be completed by Monday to be sent out for welding. There are a few more parts that need to be completed for the chassis. Students worked on completing the covers for the bumper mounts. These parts were manufactured on the manual mill. They also finished the parts for the battery box (which is part of the chassis weldment).
Students cutting the battery box plates to length
On the CNC, the bumper mounts were being completed. These parts are a little more complex and take some time. They have been in progess for the past two days.
Bumper mounts in progress
Many completed parts so far, all very well organized
Prototyping
Shooter
There are a few changes that need to be made on the shooter prototype, none of which were completed last night. The biggest change is going to be the increase in speed for the front wheels. The previous wheels were geared 2.3:1 making them spin at approximately 10,000 rpm. The wheels were changed to a smaller radius and a new mounting plate for the motors is in progress. This mounting plate will accomodate a BAG motor which spins at 14,000 rpm (free speed). It will be geared up a little to spin at 17,000 rpm. When accounting for efficiency and load losses, it will spin at approximately 15,000 rpm, which is the desired goal.
The shooter will also be turned upside down (little progress was made on this yesterday) to test if it is possible to load the frisbees upside down.
Students working on the shooter prototype
Intake
A new intake was designed today, to match the concept intake that is currently in the CAD model. This intake has a new funneling method by implementation. By concept, it is the same (where one frisbee goes in faster than the others). Previously, there were perpendicular belts that moved a frisbee ahead of the other one to allow the intake to funnel from two frisbees to one. On this current intake, the horizontal belts were replaced with four rollers. These rollers were shaped in a funnel as well. It was decided that the two frisbee wide intake will not be used. At any point in the match, there will not be two frisbees that will go in at exactly the same time, so the intake does not need to be two frisbees wide. During autonomous, the robot will drive towards the frisbees diagonally to intake them, rather than go straight on.
Students made an intake with these four rollers that replicated the "drop-down" motion that will be needed when the intake goes from "stowed" to "engaged." There is still a lot of work to be done. The structure was completed, the rollers were mounted, and the pivots worked. Its a matter of improving the concept to see what works and what doesn't.
Programming
Sensors and Wiring
Students did a lot of testing with sensors today. They wired in different sensors to check if they still worked. One of the most significant progresses they made today was with the use of the banner sensor. As you can see below, they used the banner sensor to detect whether the frisbee is upside down or right side up. This will come in very useful for this year's shooter, as shooting upside-down frisbees is slightly different than shooting right-side-up frisbees in terms of their trajectory and necessary velocity.
The two pictures below demonstrate their progress. In the picture to the left, the frisbee is upside down. However, the little orange light to the left of the green light on the banner sensor (yellow box held by hand) is off. In the picture to the right, the little orange light is on, which means the frisbee is right side up. In the off position, the sensor value returns false; in the on position, the sensor returns true. Since this banner sensor can detect only two states (frisbee upside down or no frisbee, and frisbee right side up), the team is looking into either using two banner sensors or one analog sensor that can help detect three states.
Upside-down frisbee (left)
right-side-up frisbee (right)
In addition to banner sensors, the programmers tested two gyros, both of which worked well. Next, the team wanted to test S5 encoders, but the wire to connnect this encoder to the digital sidecar needs to be soldered or modified. The S4 encoders are the last on the to-do list, which will happen tomorrow.
Students also worked on wiring other sensors and testing them out
In other news, students finally got the Smart Dashboard constants extension working on the driver station laptop. This would allow the team to upload new constants' values to the robot via FTP in a text file, so that re-compiling or re-deployment would not be necessary to change one little value. The team originally had issues with the FTP connection from the driver station laptop to the robot (specifically, a socket write error), but the programmers discovered that completely disabling the firewall did the job.
While the programmers have a working system to send text files to the robot, a method of reading constants and values from the text file and updating them is still required. The code to do so has been completed today after successfully rewriting the String class' split method. Though the system seems to work on the students' laptops, the next step for this is to actually test it on the robot and confirm that the hard-coded constants are actually being updated.
Miscellaneous
Other students worked on organizing the tool chest, which turned out to be very helpful. They took the tools out and laid them neatly back in the chest.
An organized and happy tool chest
Action Items for Tomorrow
-
Continue working on shooter
-
Finish prototyping intake
-
Finish manufacturing parts for chassis (especially frame rails)
-
Continue work on robot design
-
Finish bumper CAD
-
Continue design for control board
-
Test constants parsing/updating on the robot
Closing time for the lab was 2:00 AM