Programming and Controls
Most of the afternoon was focused on driver practice and controls testing. Pat and Tom worked on reducing the time between shots. They were able to make the indexer go significanly faster, reducing our shooting time by a few seconds. There were a few issues, primarly, the indexing flap made of polycarb broke twice. It is currently unsure why this happened and whether or not it will continue to happen. Overall, the programmers made huge progress.
Third Level Hanger
The evening was focussed on making the hanger work. After two days spent making two new sets of gearbox plates, the hanger was ready to assemble. To do that however, the entire robot needed to be disassembled. The superstructure and the hangers were removed from the drivebase. After finding all the gears and spacers, the new drive gearboxes were ready to be assembled. The gearboxes were taken apart, and the new ones assembled. After that, the superstructure was assembled and the robot was ready to hang.
Here is a video of it in action:
Lab Closing Time was: 2:30 AM
The first few days after a tournament are usually pretty relaxing, but they are also just as busy (if not more) than other days. Today, there was a large organization effort to empty the last few bins of tools and parts that were brought to competition. The main focus of this clean up effort is to find a way to organize spare parts and “competition ready parts.” There was a huge dissary between what was ready to be assembled and tested, and what still needed to be manufactured. That effort will be completed tomorrow.
Cory worked on the CAM for the new gearbox side plates. The CAM and hopefully the manufacturing of these plates will be completed tomorrow. Once this new gearbox plate is complete, the hanger can be assembled and tested. However, the assembly for this is very complicated and time consuming. The super structure will have to be removed, the gearboxes replaced, and a few new spacers made.
Tom and Pat worked on tuning the autonomous modes. They autonomous modes are working significantly better. The next step is tuning the indexer to shoot faster
This past Wednesday, thirty students rode a bus down to San Diego to compete in the annual San Diego Regional (March 7th – March 9th). The team unloaded the bus on Wednesday night and went to the hotel after dinner. We also set up the pit and implemented many changes to the robot from our work on the practice bot.
Thursday: Day 1
Two years ago when we attended this regional, the venue had poor lighting and many people got frustrated by working in an unlit area. With the help of family members and new sponsors, we were able to acquire trussing and lights to illuminate the pit. It was a very impressive sight for the tournament attendees and a wonderful area to work in. We plan to continue working on the pit design to utilize the beautiful trussing to its maximum potential. Below is a picture of students and mentors working the newly designed pit area:
We further implemented many changes to the robot. For example, we added the new shooter with the new speed reductions and mini-CIM motors, changed the pulleys on the conveyor to increase the speed, added the level one hangers, and changed the intake to reduce jamming. The robot spent a lot of time on the practice field to ensure that all the bugs were ironed out. Unfortunately, there were still many more issues that needed to be fixed.
Friday: Day 2
On Friday, we had a rough start with qualification matches. After many struggles with shooter inconsistencies, sensor malfunctions, and autonomous bugs, we ended the day with a fantastic match. The last match on Friday demonstrated to the competition what we were capable of. Our alliance scored a tournament high score (at the time) of 153 points. The video will be posted soon.
Saturday: Day 3
Saturday’s matches went well. During lunchtime, we were aproached by Team 987 (The High Rollers) from Las Vegas, as they wanted to ensure maximum compatibility on the field between the two robots to guarantee a tournament win. Thus, we demonstrated our multiple autonomous modes to them on the practice field. At the alliance selections, Team 987 picked us, Team 254, as a second pick. Our third pick was team 1138, Eagle Engineering from Chaminade College Preparatory. After intense quarterfinal and semifinal matches, the joint pit crew from 987 and 254 added an effective blocker made of pool noodles to 1138’s robot (also known as pope-bot), pictured below. This was to defend against a full court shooter which could have been a deadly scorer during the finals if 1138 hadn’t defended so well.
In a nail-biting final match, the 987-254-1138 alliance won, earning the title of 2013 San Diego Regional Champions.
Final Awards and Tournament Win
After the final matches, we were awarded the Quality Award sponsored by Motorola and the Tournament Winners at the award ceremony. We would like to congratulate Team 1538: The Holy Cows on a well-deserved Regional Chairman’s win, and Rodger Dohm from Team 1622 on a Regional Woodie Flowers award.
Overall, the 2013 San Diego Regional was a well-run and successful tournament. The next step is preparing for the Silicon Valley Regional in April, which is arguably the most competitive regional of the year. There are a few identified changes that need to happen to the robot which include shooting and indexing faster, adding our 30-point hanger, and tuning autonomous modes.
SVR, here we come!
Assembly and Adjustments
There are many components on the robot that need tuning. Because there is so much to do and so little time to do it (our first competition is in 10 days), we started prioritizing the tasks we need to complete. We decided the most important mechanisms that we need to focus on are our indexing mechanisms, intake, and conveyor.
For the indexing mechanism, there needs to be a passive (and durable) way to grab the frisbee from the conveyor and bring it to the shooter. What is currently being used are flaps of polycarbonate (1/16″ thick) that bend under the frisbee and pop in place. These work fine for about four shots before the flaps warp and break. A thicker material will not work because it will not bend enough. To solve this, new mounting plates were made that were a bit deeper allowing these flaps to be bend differently. This will hopefully give more clearance for the frisbee to go through and make the flaps more durable.
There was not a lot of progress done on the conveyor today because the focus was the indexer. However, it was decided that there needs to be a stronger spring force on the indexing mechanism to ensure that the frisbees do not stack on top of each other. With the bar pushing down with more force, there will not be stacking.
The hangers were fully assembled today. The timing belt was tensioned after a significant struggle to get the screw to catch the threads. The goal is to mount the hanger to the robot tomorrow and test the hanging. There need to be a few more parts assembled tomorrow to drive these hangers (such as the drive pully and its associated belt). All parts have been ordered and should arrive tomorrow.
VEX Planetary Gearbox
It was found today that the VEX Planetary Gearbox used on the lifting mechanism for the intake was not assembled correctly. Because of this, parts of the gearbox broke apart due to stress. A solution is being worked on.
Tom worked on tuning the intake to ensure it doesn’t smash against the robot when it is fully lifted and it doesn’t smash against the ground when it is fully lowered. He was using the encoder and tuning the control loops. It seemed to work fine, however there needs to be more testing done.
Action Items for Tomorrow
- Finish assembling and mounting hanger
- Continue testing the lifter and ensure proper durability of polcarbonate flaps. Examine other possible solutions/materials for flaps
- Fix every other subsystem on the robot
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.
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
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
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.
Finish and test indexing prototype
Lab closing time for the night was 10:00 PM
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
We had an excellent turnout of students today, which helped get a lot done.
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
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
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.
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.
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
Today we made a few more changes to the shooter. We decided to return back to the larger, treaded wheels. Students disassembled the shooter and retreaded the wheels. Students also added snapring grooves onto the shafts. The shooter just needs to be reassembled and tested.
The programming team worked on a program to read constants from a text file into the robot software. This has been written and mostly finished, but remains untested. Since the cRIO runs only Java ME, an outdated version of Java compared to SE, the programmers spent a lot of time rewriting and reimplementing functions like String's split method. Meanwhile, other students continued debugging the Smart Dashboard widget and FTP connection, but had problems using the program on the driver station and other laptops. Oddly, the FTP upload and download works on one of the student's laptops, but not any of the others. More tests will be conducted to get to the root of this issue.
Programmers also began testing sensors for use on the 2013 robot. The gyro was removed from Skyfire and added to the 2010 robot for temporary testing purposes. Tomorrow, the team plans to test the S5 encoders and other sensors by printing out the values of the sensors to a console. This will also serve as a quick lesson on programming sensors for new and old programmers alike.
Programmers debugging issues with Smart Dashboard extension
Not much CAD work was done today as we focused mainly on machining the drivebase.
Today students did a lot of machining. They used the mill and drill press to create the Bumper Support Caps, which will get welded onto the drivebase. Students also used the lathe to cut down standoffs for the gearbox and to add snapring grooves the prototype shooter's shafts. A group of students also finished scotch-briting the bearing-housings. The CNC was used to make the final cuts onto the Bumper Supports.
Some of the many manufactured parts
Scotch-brited bearing housings
Student creating parts on the mill
Manufacturing parts on the lathe
Test sensors (encoders, gyros, etc)
Test reading constants from file
Continue Manufacturing Parts, especially parts for drivebase.
Finish bumper CAD (start manufacturing bumpers after mentor approval)
Continue control board design (document functions, buttons, & layout)
Lab closing time for the night was 11:30 PM
Today was our first down day for FRC build. This post will recap a few of the design decisions and design progress so far.
There will be a square drivebase on the robot. This was decided up for the following reasons. The square configuration will give more room for the intake. One of the updated rules was that the the robot cannot exceed a 54" cylinder. Because of this, the shorter and wider robot will allow for more room in the intake to drop down.
Electronic Layout Done. Baseplate sent for manufacturing
After finalizing the size and dimensions of our drivebase, the next step was to complete the layout of electronics on the baseplate. The batter will go towards the back of the robot (away from the intake) to balance out the center of gravity. The talon speed controllers will be at the front along with the power distribution board. These were all layed out in the CAD model and mounting holes were put in the baseplate. The raw material for the baseplate was cut and was sent to BAE Systems. The baseplate will get waterjetted by BAE and hopefully sent back by the end of the week.
See above for the electronics layout.
Cutout in Bumpers for Intake
It was decided that the bumpers will have a cutout to allow the intake to drop down. The intake will bring the frisbees over the frame rail, but not the bumper. Having the cutout will allow the intake to drop down on a pivot that is lower down. This will give the intake a smaller profile when pivoting down allowing for a bigger intake when fully extended.
Today was a very productive day at the lab. There was a lot of progress made in many areas.
Improvements were made to the shooter prototype. After students replaced a faulty CIM motor, an adjustable base was added to the linear shooter to allow testing at multiple angles. This base will help optimize the perfect angle for shooting a frisbee. The base was constructed out of kitbot parts and 80-20 extrusion.
Richard assisting students with the adjustable shooter platform assembly
Students worked on improving the roller-intake prototype by testing different kinds of tread spinning at different speeds. It was found (unsurprisingly) that the roller must be spinning very quickly (about 2,000 RPM) to intake the frisbee. Long rough-top tread attached as "fingers" did not work well. A piece of rough-top tread that was wrapped around the roller worked the best.
After determining this improved treading configuration, students and mentors worked on setting up the prototype as an over-the-bumper intake. Rather than sucking-in the frisbee horizontally, tests were conducted to see if the frisbee could make a smooth and easy transition from a horizontal position on the ground to an angled position over the bumper.
Updated Intake prototype
Restoring the 2010 drivebase
Students continued to attempt to restore the 2010 drive base, in order to attach prototypes and drive around. After an hour of debugging, it was concluded that a faulty cRIO was on the robot. The efforts were abandoned because of a lack of replacement cRIO. Hopefully, a new cRIO is acquired soon in order to continue testing.
Restoring the drivebase was also supposed to be an excercise for the new programmers, so they could practice writing brand new code and uploading it to a functioning robot.
Tom dropped some knowledge bombs on the programmers today.
Students continued to brainstorm and discuss possible ways of updating values without having to re-compile or re-deploy the code. Some ideas that was brought up was having a text file for each constant, or having an "isModified" boolean value somewhere.
Action Item List
An action item specific to programming was created yesterday. This is essentially a to-do list, which organizes and tracks tasks what need to be completed and the priorities of tasks. This list should make it easier for students at the lab to more easily contribute to programming effort.
Light Control Box
Two students worked on modeling a project box and the components to go inside it. This project box will house a power supply and will be the control box for the lights hanging on the trussing in the pit area.
Pit Area trussing for banners, lighting, and monitor mounting
A student modeling the project box in SolidWorks.
Action Items for Tomorrow
Fix the wiring to the cRIO on the 2010 robot; flash new image to cRIO
Work on and test prototype for intake
Work on and test linear shooter prototype
Complete drivetrain design. Deadline is Friday.
Lab closing time was 11:00 pm
Today the team got a great start as soon as we could access the lab, making substantial progress on a multitude of projects.
Today in prototyping the team pursued our 3 designs decided yesterday for shooting mechanisms which are:
Continued to try and make shots using the pneumatic air wrench to
drive the flywheel
Used the strategy of touching the pyramid to take shots without being hit by opponent robots
Created a feeding device to automatically load frisbees into the shooter
CNC machined part of the belt mechanism to create a tensioned timing belt system to launch the frisbee
Added guide rails to create a solid static wall opposing the timing belt to create spin on the frisbee
Added flanges to the pulleys to help guide the timing belts
The pulleys are powered by a direct mounted CIM Motor running at 5300 RPM
Shows promising capabilities both in power and spin and is being pursued in greater depth
Completed initial prototype design
Mechanism is powered by a 1 stroke piston
Semi-effective at short range
Needs to be modified to increase range and spin to be able to get a better understanding of its capabilities
The decision was made to build a modified version of the 2011 drive system which operated a 6 Wheel Drivetrain System with two speed gearboxes (high gear at 19.8fps, low gear at 7fps). Center wheels are lowered to allow for maximum maneuverability. 3.5″ wheels keep the robot center of gravity very low to the ground. Additional design improvements have been pushed to tomorrow for final decisions. The team is still in the process of brainstorming designs for both intake and climbing/hanging mechanisms.
The part drawings for the main shafts in our drivetrain are completed and ready to be sent out to sponsors. The completed drawings are for the following parts:
Drive Gearbox Output Shaft
Drive Gearbox Intermediate Shaft
Wheel Shaft Medium
Wheel Shaft Short
Output shaft drawing
Students completed all components and assembly of the pyramid, creating a solid basis for hanging prototype testing.
The CNC mill was used to mill components for the linear shooter prototype and is prepared to be in around-the-clock machining as soon as the preliminary metal shipment has arrived.
The programmers began to write some code in Java to deploy to the 2012 robot. They used the CommandBasedRobot structure for the code, and fixed all previous errors that popped up before during deployment. The code was deployed and ran successfully. Currently, the team has a completed drive subsystem and a couple drive commands. In addition, some students worked on a system to read values from a file for on-the-go constants editing.
Lab closing time for the night was at 1:00am
A couple reminders:
- All students are required to attend the introductory meeting. They are on August 22nd and 23rd (come to one OR the other) from 3:00 to 4:00, in Sobrato Theater. These are mandatory meetings, as announced in the previous informational email.
- Vex Kickoff (similar to FRC kickoff, but for VEX) is also a required event. It is on August 30th from 3:00 – 5:00. Location TBD.
- Whole Team Meetings are now every Wednesdays afterschool in Andrade, starting on the 29th. Please look at the calendar for more information.
- Please make sure your account works on the website (BOTH parents and students).
- Parent Meeting on August 28th at 7:00 in Sobrato.
We had a very busy past week, with two outreach events/demos. On Wednesday, we had a Diversity Day event at NASA. We had a great turnout. Thank you to everyone who attended. We were able to show a lot of people our robot and many were impressed. A picture of us demoing the robot is below.
Even bigger news, we held our first Freshman Lab Day on Saturday, where over 60 incoming freshman and their families came to the lab to witness robotics first hand. It was an excellent opportunity for the incoming freshman to see if they want to do robotics before they even start school (Robotics: +1, speech and debate: 0). It was an awesome recruitment event and everything went well. Since it was such a success, we will be having more of these events in the following years. A picture is included below of Vex Leader, Jonathan Chang demonstrating a vex robot to a group of freshman and their parents.
That said, we had a very successful week and an excellent transition for our 2012-2013 season. Our first meetings will be on August 22nd and 23rd. Both of them will be held afterschool in Sobrato Theater. Please be there by 2:50 so we can start promptly. Both meetings will be the same. ALL RETURNING MEMBERS MUST ATTEND. If you cannot attend any of those two meetings, please let Mrs. Roemer know immediately. These will be introduction meetings, where we will talk about the team and the rest of the school year. If you do not attend, your membership on the team will be up for consideration. This is one of the few mandatory events we have throughout the year.
We make mandatory events, because they are integral to the development of the team. If you ever cannot make it to a mandatory event, please let a teacher know immediately and they will discuss it with you. All information after ANY meeting will be posted here on the blog under its designated category, so make sure you check here daily. In addition, and just as importantly, it is necessary that you check the blog on a daily basis. Every time you open up Facebook, think about opening up the blog. That is how you will stay connected with the team, and know what is happening.
The leadership has been preparing all year for the beginning of the year and we are alle very excite for this new year. See you all on August 22 or 23rd. Welcome to the 2012-2013 robotics season.