FIRST Robotics Blog
A Brief Summary
As part of an eventful week, we attended the 2018 FIRST World Championship in Houston, Texas from April 18th to April 21st. Assigned to the Hopper Division, we won the Division Championship Award and the the Autonomous Award sponsored by Ford, for our 4 cube scale autonomous program and scale detection software. After becoming the Hopper Division Champions, we executed a well-planned strategy alongside FRC Team 148 Robowranglers, FRC Team 2976 Spartabots, and FRC Team 3075 Ha-Dream Team, allowing us to win our 4th world championship and finish with an undefeated season!
Team 254 poses for a picture after winning at the 2018 FIRST Championship in Minute Maid Park
Qualification Matches (Hopper Division)
Throughout our qualification matches, we wanted to make sure that we secured 4 ranking points during every match, while still gaining control of our scale for as long as possible. In order to do this, we ran our scale autonomous program, which placed 3-4 cubes on our alliance’s scale or, when we were not confident with our alliance partners’ ability to place cubes on the switch, we executed our autonomous program which placed cubes on the switch and scale.
Going into the elimination period in the Hopper Division, we chose to form an alliance with FRC Team 148 Robowranglers, FRC Team 2976 Spartabots, and FRC Team 3075 Ha-Dream Team.
Team 254 representative, Weston White, poses with our chosen alliance partners
Elimination Matches (Hopper Division)
During the elimination matches in the Hopper Division, we maintained our undefeated record for the entire tournament. From a strategic perspective, we aimed to always have possession of the scale and our own switch while also placing cubes on our opponent’s switch. This strategy allowed us to gain a significant lead during each match and stopped the opposing alliance from being able to score from their own switch. We would also like to thank Team 3075 Ha-Dream Team for helping our alliance during Finals Match 2 in the Hopper Division, while Team 2976’s robot was undergoing some repairs. Through the efforts of our alliance partners, we were able to win the Hopper Division. We also won the Autonomous Award sponsored by Ford, for our unique 4 cube scale autonomous program and scale detection software!
Lockdown hangs with alliance partner, Team 2976, at the end of a match
On the Einstein Field
We generally maintained a similar strategy during the Einstein matches as in the Hopper Division elimination round, by placing cubes on both switches and keeping possession of the scale. Team 2976 Spartabots played awesome defense on the portals to slow down the opposing alliance’s cube flow after they used all the cubes from their switch fence. Team 148 Robowranglers attacked the opposing alliance’s switch to force them to cover their switch before attacking our switch or the scale. Our drive team chose not to prioritize powerups, by placing only 3-4 cubes in our exchange for the levitate or boost powerup. With this strategy, we placed first during the round robin matches, allowing us to move on to Finals, with the Carver Division winners. We would like to shout out FRC Team 2910 Jack In The Bot, FRC Team 4911 Cyberknights, FRC Team 4499 The Highlanders, and FRC Team 5006 Apophis, the Carver Division winners, for executing a great strategy while playing against us on the Einstein Field.
Lockdown works to place a cube on the opposing alliance’s switch
A Special Thanks
At the 2018 FIRST World Championship in Houston, we would not have been able to be so successful without the amazing teams that we were able to work with during our matches. Also a special shout out to our pit crew and drive team for properly maintaining our robot during the tournament. We would also like to highlight the efforts of our alliance readiness crew to keep our alliance partners ready throughout the tournament. Team 254 would also like to thank all the volunteers and judges that made this tournament an exciting experience, and all of our mentors, teachers, and parents who supported us and helped us succeed in this tournament.
Members of the Team 254 Pit Crew repair Lockdown before an upcoming match
Members of the Team 254, 148, 2976, and 3075 drive team strategize before an upcoming match
Our drive team poses for a picture on the Einstein Field
Members of the Team 254 Alliance Readiness Crew assist Team 6014
A Brief Summary
As part of an eventful weekend, we attended the the 20th Silicon Valley Regional, in San Jose, CA. We had a great time at our second tournament of the FIRST Power Up Season with our robot, Lockdown. We won the Innovation In Control Award sponsored by Rockwell Automation for our autonomous code. Congratulations to one of our mentors, Nick Hammes, for winning the Volunteer of the Year award, for his hard work emceeing and in planning this wonderful event! Alongside FRC Team 973 The Greybots and FRC Team 2367 Lancer Robotics, we were able to win the tournament, earning our 50th Blue Banner!
Team 254 poses for a picture with Lockdown after winning at the 2018 Silicon Valley Regional
Throughout our qualification matches, we executed a variety of autonomous programs to ensure we were prepared for various situations. This allowed us to either place 3 cubes in the switch or place 3 cubes on the scale. When on an alliance with robots that were good at placing cubes on the scale, we had to make sure we maintained ownership of the scale before placing cubes on ours’ or our opponent’s switch. We always tried to position ourselves on the scale platform to have enough time for hanging. During the qualification match period, we gained 4 ranking points in each match.
Team 254 places a cube on the scale during the autonomous period
Going into the elimination period, we chose to form an alliance with FRC Team 973 The Greybots, FRC Team 2367 Lancer Robotics.
Team 254 representative, Weston White, stands with Team 973 and Team 2367 as they agree to join our alliance
By choosing Team 973, a great scale robot, and Team 2367, a great switch and exchange robot, we were able to follow a more flexible strategy. During the elimination matches, Team 973 worked with us to lock down the scale, while Team 2367 focused on keeping ownership of our switch and delivering cubes to our exchange station. To create a head start on scoring cubes onto the scale, we used our 3 cube scale autonomous program. If our opponents were good scoring on the scale, we joined 973 in maintaining ownership of the scale. When our autonomous program was successful, we worked on maintaining ownership of our opponent’s switch, using cubes from our portal. Team 2367 executed flawless and well-timed defense against the opposing alliance. With an organized strategy and great alliance partners, we remained undefeated for the season, allowing us to become the first-place alliance at the tournament and win our 50th blue banner!
Team 254 and alliance partners Team 973 and Team 2367 stand together during Semifinals Match 1
Helping Other Teams
The Alliance Readiness Crew worked hard throughout the tournament to assist Team 6688 West Valley Middle College Robotics and Team 7317 Crusader Crew. Our crew helped improve the design of Team 6688’s exhaust system, used for delivering cubes to the switch, safely wire their control system, fix their pneumatics so that there were no leaks, and write an auto that could put cubes into the correct side switch. When Team 7317 needed help, our crew worked to create a new and improved intake system to collect and deliver cubes to the exchange. Through this experience, students were able to make friends and get more hands on with designing an actual robot.
Our alliance readiness crew assists Team 7317 in mounting hardstops for a newly designed intake
A Special Thanks
At the Silicon Valley Regional, we would not have been able to be so successful without the amazing teams that we were able to work with during our qualification and elimination matches. Also a special thanks for our pit crew and drive team for properly maintaining our robot during the tournament. A big thank you to the chairman’s presentation team for handling our team’s Chairman’s Presentation in front of a panel of FIRST Judges. Team 254 would also like to thank all the volunteers and judges that made this tournament an exciting experience, and all of our mentors, teachers, and parents who helped us succeed in this regional.
Members of the Team 254 Drive Team repair Lockdown with a mentor before an upcoming match
Our drive team discusses a possible strategy before a tense eliminations match
Excited Team 254 members receive the team’s 50th blue banner
A Brief Summary
As part of an eventful weekend, we attended the Arizona North Regional, for the very first time, in Flagstaff, AZ. We had a great time starting off the FIRST Power Up Season with our robot, Lockdown. Alongside FRC Team 842 Falcon Robotics and FRC Team 2403 Plasma Robotics, we were able to win the tournament!
Team 254 poses for a picture with Lockdown after winning at the 2018 Arizona North Regional
Throughout our qualification matches, we used an experimental strategy by testing out which of our autonomous programs worked best during a match. From this experimentation, we concluded that it would be best to use our autonomous program, which scored 2-3 cubes on the scale, to establish an early lead in a match. This autonomous program helped us gain ownership of the scale, but we had to focus more on maintaining ownership of the switches rather than the scale. Whenever we had alliance partners who could not secure the switch consistently, we ran our autonomous program for the switch to help our alliance partners before the tele-op period. During every match, we hung with our partners and used the levitate power up for an extra ranking point. By the end of the qualification match period, we were seeded first and had a undefeated record.
Team 254 and alliance partner Team 1011 work together to hang during Qualification Match 86
Going into the elimination period, we chose to form an alliance with FRC Team 842 Falcon Robotics, FRC Team 2403 Plasma Robotics.
Team 254 representative, Brandon Chuang, greets Team 842 as they agree to join our alliance
During the elimination matches, we maintained our undefeated record for the entire tournament. Our autonomous program and Team 842’s robot, worked to score on the scale during each match. This allowed us to score on switches, while Team 842 covered the scale during the tele-op period. We also focused on stopping our opponents from gaining ownership of their own switch. If we had spare time during a match, we passed cubes through the exchange. Team 2403’s robot worked to gain ownership of our own switch and we also helped with scoring cubes in our switch. During finals, Team 2403 focused on switch, exchange, and defense against opponents who tried to take ownership of our switch. With an organized strategy and great alliance partners, we scored an all-time high of 594 points in Finals Match 2, allowing us to become the first-place alliance at the tournament!
Helping Other Teams
The Alliance Readiness Crew worked hard throughout the tournament to assist Team 6585 Hózhóogo Naasháa Doo and Team 6656 Ryu Botics. When Team 6656 needed an intake, our crew searched for the necessary parts and mounted a simple 2-wheel intake onto their robot. In addition, we helped them write an autonomous mode that crossed the auto line consistently. When Team 6585 needed a robot, our crew worked for 3 days to build and wire a drivebase, 2-wheel intake, and a polycarbonate box for collecting cubes from the portal. Through this experience, students were able to make friends and get more hands on with designing an actual robot.
Our alliance readiness crew assists Team 6585 in mounting a newly designed intake
A Special Thanks
At the Arizona North Regional, we would not have been able to be so successful without the amazing teams that we were able to work with during our qualification and elimination matches. Also a special thanks for our pit crew and drive team for properly maintaining our robot during the tournament. A big thank you to the chairman’s presentation team for handling our team’s Chairman’s Presentation in front of a panel of FIRST Judges. Team 254 would also like to thank all the volunteers and judges that made this tournament an exciting experience, and all of our mentors, teachers, and parents who helped us succeed in this regional.
Members of the Team 254 Pit Crew repair Lockdown before an upcoming match
Our drive team works together during a tense eliminations match
Spirited Team 254 members cheer excitedly for their alliance
A Brief Summary
As part of an eventful weekend, we hosted Chezy Champs, our annually hosted offseason FRC tournament at Bellarmine College Preparatory, in our hometown of San Jose, CA. We had a great time jumping back into action with our robot, Misfire, before the start of the 2018 FRC Season. Alongside, FRC Team 1011 Team CRUSH, FRC Team 696, Circuit Breakers, and FRC Team 5104 BreakerBots, we were able to win the tournament!
Team 254 Members pose for a picture with Misfire after winning at Chezy Champs 2017
Check out this great highlight reel made by RoboSports Network (RSN)!
At the tournament, we hosted an exhilarating exhibition match, which included the several teams with highly skilled shooting robots. The standard rule for this match was that the only way to score points was to shoot fuel into each alliance’s respective boiler. The teams which participated in the exhibition match:
The Blue Alliance
- Team 971 Spartan Robotics
- Team 973 Greybots
- Team 1678 Citrus Circuits
The Red Alliance
- Team 254 The Cheesy Poofs
- Team 1323 Madtown Robotics
- Team 3309 Friarbots
Team 1323, Team 3309, and Team 254 work together to gather fuel to shoot into the boiler
The Red Alliance started off with a significant lead by scoring 50 fuel balls into the boiler, making it an amazing show for the audience to see 3 robots scoring fuel into one boiler at once! Eventually, the Blue Alliance slowly started catching up with the Red Alliance by consistently scoring their collected fuel into their boiler. With a minute left in the match, the our friends from Team 973 displayed their true defensive skill by blocking Team 1323’s path across the field. Though the Blue Alliance’s efforts were equal to that of the Red Alliance, the Blue Alliance was unable to keep up with the pace of the Red Alliance. After the great efforts shown by both alliances, the Red Alliance came out to be the winner scoring 203 kPa compared to the 97 kPa scored by the Blue alliance. The Exhibition Match Video can be viewed here.
A Special Thanks
Chezy Champs was very special this year due to the efforts of so many people and organizations. Team 254 would like to thank our friends from RoboSports Network (RSN) for providing our audience with such a great analysis of each match and team at the tournament. We would also like to thank all the volunteers, who helped make Chezy Champs possible. It was truly an incredible experience to host an offseason tournament attended by so many talented teams, even those who chose to attend from out of state, and to make new friends and catch up with old ones too!
Throughout the qualification matches, we encountered a few mechanical problems with our gear grabber, hopper, and drivetrain and a few problems with Misfire’s autonomous performance. After some careful observation, we realized that our gear grabber’s knife-edge was worn out, so we replaced it with a new piece of polycarb. Our stationary hopper panel kept colliding with the field hoppers, which tore our hopper wall. We replaced the broken hopper panel to solve this problem. We also noticed a crimp lodged between our chain and sprocket on our drivetrain, so we removed it to make our drivetrain function normally. Overtime, our autonomous performance improved after our mechanical changes. Thus, we were able to seed first for alliance selection after having a qualification match record of 7 wins and 3 losses.
Misfire successfully hangs within the last few seconds of a Qualification Match
During elims, we faced some fierce competition during our Semifinal and Final Matches. We ended up having to compete in a third tiebreaker match in semifinals and finals. In Semifinals Match 2, the opposing alliance of Team 973 Greybots, Team 1538 The Holy Cows, Team 604 Quixilver, and Team 2135 Presentation Invasion, scored a large amount of kPa during auton and kept their lead up by activating all 4 rotors! In Finals Match 2, the opposing alliance of Team 1323 Madtown Robotics, Team 3309 Friarbots, Team 5026 Iron Panthers, and Team 2073 EagleForce, displayed their true skill, by keeping a consistent lead, from the start of the match. By the end of our elimination matches, we won all of our tie breaking matches, allowing us to win the event with our alliance. We wouldn’t have been able to accomplish such a victory if it weren’t for our amazing alliance partners – Team 1011 CRUSH, Team 696 Circuit Breakers, and Team 5104 BreakerBots.
Members of the Team 254 Pit Crew repair Misfire before an upcoming Finals Match
2017 FRC Class of FIRST Champions
Recently, we attended the first ever FIRST Festival of Champions in Manchester, NH. After winning the St. Louis Championship with our extraordinary alliance partners, we faced the Houston Championship winning alliance in an intense series of 5 matches. Alongside Team 2767 Stryke Force, Team 862 Lightning Robotics, and Team 1676 The Pascack PI-oneers, we were able to win the Festival of Champions Event. We enjoyed a tour of DEKA and a great potluck at Dean Kamen’s home. We would like to say thank you to FIRST for giving us the amazing opportunity to participate in this event!
“Thanks to the phenomenal performance by our alliance partners!”
In the most intense games we’ve played all season, the Houston alliance won the first two matches. Our alliance won the third and fourth to stay in the game. In Match 4, our alliance partners helped us win against the Houston alliance by a margin of only 16 points. In the final match, our alliance capped a great season with one last win. We won the match, and the festival championship, setting a record high score for this year’s game of 588. We’ll let the video speak for itself, as our last finals match was certainly one of Team 254’s best performance of the season.
We would like to honor our alliance partners because of how far we all came, from St. Louis to Festival of Champions. We would also like to thank Team 973 Greybots, Team 5499 The Bay Orangutans, Team 1011 CRUSH, and Team 2928 Viking Robotics from the Houston Alliance for setting the bar high and making all our matches an intense, and great experience. We’re excited to meet other FRC teams at our annual offseason event, Chezy Champs, and to kick off next year’s season!
This past week, we attended the FIRST Robotics Competition Championship in St. Louis. With two Championship events this year, it was hard to decide which to compete at, but we had a great time facing off against teams from the east coast, Canada, and more. Alongside, Team 2767 Stryke Force, Team 862 Lightning Robotics, and Team 1676 The Pascack PI-oneers, we were able to win the Daly Subdivision finals before continuing on to win the Championship at Einstein.
In our qualification matches, we went 7-3 overall and seeded second, with Team 2767 holding first seed. The improvements we made since the Silicon Valley Regional payed off as we hit over 100 kPa during our second qualification game and managed an average of about 381 points per match. Throughout qualifications, we were also regularly able to achieve 40 kPa and activate 4 rotors, giving us enough ranking points to propel us into a high seed.
Moving into alliance selection, we joined Team 2767 alongside Team 862 and Team 1676. With a balance of gear and fuel scoring ability, we planned to maximize our points by hopefully achieving 40+ kPa and activating 4 rotors every match. Throughout the Daly finals, we remained undefeated and won against incredibly fierce competition. In our first semifinals match, we managed to score a personal record of 550 points! We were also very grateful to have received the Innovation in Control Award, an award we had also received back at the San Francisco Regional. After winning Daly with some very close matches, we were anxious to see how we would perform at Einstein.
In a round robin style tournament, we competed against every other subdivision champion throughout 5 matches. We ended up going 3-2 here and seeded second, giving us the opportunity to compete in the grand finals as the blue alliance against the Darwin champions, who had beaten us in the round robin tournament.
In the most intense games we’ve played all season, our alliance pulled ahead in the finals, winning the second match by only 3 points. We’ll let the video speak for itself, as the second finals match was certainly many on 254’s favorite game of the season:
We are so grateful to our alliance partners for playing such a huge role in our success, and to every team that attended the Championship for competing with us and making it such an amazing experience. Special mention to the Einstein teams for going all the way and challenging us in ways we hadn’t previously been. We’re looking forward to facing off against the Houston alliance at the Festival of Champions!
“Thanks to our mentors for such a great season!”
Day 42: Preparing for World Championships
Everything that we need at competition, which includes the pit, was packed and prepared for being shipped to St. Louis.
We worked on some hood geometry and started to look at the placement of the hanger tube and different sizes. We also finished the design of the new hood and CNCed the new hood plates. We laser-cut a new center divider for the hood. Everything was assembled at on Monday’s build.
The old hopper broke on the practice bot, so we laser cut new plates and assembled them onto the robot. We also cut spare hopper plates and spare intake ramps in case we need them during champs.
We started practicing a new kind of gear cycle called the check mark cycle, which we plan will probably use from here on out.
Today, we worked on shooter tuning and semi-automated gear placement in teleop using an ultrasonic sensor. For shooter tuning, we worked on fixing a problem where our stream will begin to walk backwards over long periods of time. We believe this is a result of the system becoming more efficient over time as the bearings on our flywheel heat up. To solve this problem, we tried compensating for the increased flywheel speed over time by taking an average speed of the flywheel between shots and using it to adjust our voltage.. For teleop gear placement, we tried to use the ultrasonic sensor to limit the amount the robot can drive backwards when scoring gears to prevent it from driving too far back and bending the spring. However, we found that the ultrasonic sensor updates far too slowly for this to actually work right now, so we are investigating ways to speed up the ultrasonic sensor and use our drivebase encoders to compensate for this lag.
Day 41: Improving Gear Scoring
Today we worked on the Cow Catcher, or an assembly that prevents balls from getting stuck in the Gear Grabber and pushes balls out of the way. We began with prototyping with two delrin side plates and a 3/8" standoff, and while the results were promising, balls still got caught in the general vicinity, affecting its performance. To solve this issue, we prototyped the cow catcher with a longer standoff, which prevented balls from getting caught.
Having determined the relative effectiveness of the Gear Grabber, we began to design a deployment mechanism such that the cow catcher fits in the framer perimeter at the start of the match. We came up with the use of a torsion spring and hardstop to deploy the cow catcher at the start of the match. Due to the limited availability of springs at the lab, we used rubber bands instead, but the deployable cow catcher was ultimately too weak. Thus, we added standoffs and reinforcing plates to increase rigidity.
We worked on fixing up our practice bot, making a new intake ramp and straightening out our hopper flanges. We also did a lot of shooter testing and were able to significantly improve the accuracy of our shots.
This past weekend, we competed at the Silicon Valley Regional at San Jose State University.
Throughout the qualification matches, Misfire performed very well, despite bearing one loss, going 8-1 overall and scoring an average of about 300 points. We focused on a strategy of reaching 40kPa along with delivering a couple gears to maximize the amount of ranking points we would receive, which worked out as we were seeded first heading into eliminations
Eliminations & Awards
In our alliance, we picked Team 604 “Quixilver Robotics” and Team 4990 “Gryphon Robotics.” With this alliance, we aimed to focus both on fuel and gears, hoping to reach 40kPa+ in the boiler, 4 rotors spinning, and all robots hanging in an ideal game. During quarterfinals, we beat the prior record of 506 points with no penalties by scoring 507 points and later in semifinals we scored 509 points. During finals we finished off with scoring 522 points (517 without penalties)!
Through the eliminations, we ended up winning the tournament after an exciting final match! We won the Quality Award and were recognized for being captain of the winning alliance. It was a great experience playing against all these teams and we hope to see some of them again at World Championships in St. Louis.
Day 40: Improvements for SVR
We added additions to our robot in order to create an easier and more efficient driving environment. We have placed a blue LED strip on the back of the hood to let drivers know whether or not they are in a good shooting proximity. To do so, we wired up MOSFETS to control the LED strip, which will plug into the DIO port on the roborio.
At SFR, we found that installing “back-up cameras” would help with gear placement. Therefore, we worked on optimizing the camera placement, as well as finding a way to widen the narrow field of view (currently 70 degrees) to better capture the gear’s location.
After the post-mortem we worked to improve the robot's turning during autonomous. We prototyped small Delrin sliders that didn't quite work when sliding on carpet. We anticipate that the best solution will be to try to implement drop-down omni wheels that we can turn on. However, if that does not work either we will resort to changing the autonomous routine itself.
Days 37, 38, & 39: Preparing For Competition
Today, we worked on fixing the intake after it broke earlier this week. After analyzing the strength of our current weldment and modifying it slightly, we decided that simply strengthening it would not help the fundamental problems existing in the design. We took one of the broken intakes and attached it to new polycarb side plates hoping that this would decrease impact forces by increasing the time of impact (change in momentum = force * time). We drove around and crashed the intake several times with minimal damage occurring, and we are proceeding with the new design.
Today, we worked on the Hopper and testing the fully assembled redesign. After fixing some initial discrepancies in the real life assembly, we tested out deployment and stowing. As of a few tests, the intake deployed well (after modifying the intake ramp slightly to have slightly deeper notches to fit the constraint screws in) and we will be updating the CAD with these changes on Friday. We will also laser cut a new intake ramp to get definitive results. If all systems work well after that, we will begin assembling the new parts for comp as well as a back up.
Between, Friday and Saturday, we were able to finalize the hopper design. After some CAD work on the redesign and some troubleshooting after assembly, we were able to make a solid hopper. More testing will continue to confirm consistency, but we will be moving forward with the Comp set soon.
In the last week, we explored the use of a large flywheel to help increase the consistency of the shooter. A flywheel dramatically increases the kinetic energy of the shooter wheel system, hopefully reducing the amount that the wheel slows between shots. We designed a steel flywheel with about 4 lb*in2 of inertia. It is geared up 2.5:1 from the shooter wheel to increase the kinetic energy. Preliminary testing shows that adding the flywheel may not actually achieve the desired result. The elasticity of the timing belt caused some controllability challenges that the programming team worked on this weekend. Each time the direction of tension in the belt switched (from energy going into the flywheel to energy leaving the flywheel), there was a little bit of elastic movement which added oscillations to the shooter wheel system. The plots looked like the typical mass/spring/damper plots for a 2nd order system from a controls or dynamics class.
We are using inline elastic to add stretch to the rope. This will allow the robot to pull the rope down with a low amount of force at first, getting some wrap before beginning to lift the robot off the ground. This is important because the Velcro that engages the climber drum is strong in shear – and its strength is proportional to surface area. Once the rope has wrapped around the drum enough, the load transfer switches to Capstan forces. We are assembling several ropes, each with a number of pockets like the ones shown below.
A video is linked below of the climber being tested. Note that in this test case, we were pulsing the motors. Typically, the climb is much faster.
The latest iteration of the gear grabber has a dual pivot design – the whole mechanism pivots from a pickup configuration to a scoring configuration with one pivot, and a second lower pivot is sprung to allow the wedge to conform to the floor without digging in. We built this prototype last week out of delrin on the laser cutter and used it for driver practice over the weekend. We moved forward with making this out of metal and sent the parts to Anodize on Monday morning.
Check out the video below for pickup and scoring performance of the current prototype:
We practiced driving by cycling gears with and without defense, climbing, and intaking balls off the floor. We are much better now at quickly scoring gears, and in one practice match we scored 9 gears and climbed when no defense was played on us. The gear grabber is much more reliable, and consistently picks up gears off the ground the second we touch them. Scoring is still tricky, but we are getting better at finding the right depth at which we need to drive into the spring.
Today, we worked on finding and fixing a bug in our Adaptive Pure Pursuit controller. The bug was causing arc lengths in the controller to be calculated incorrectly in some cases, resulting in a value much higher than it should have been. This would in turn cause the robot to drive way too fast and shoot past the end point in the path.
Gear Grabber State Machine
Today, we worked on implementing a new Gear Grabber state machine. The new gear grabber code greatly simplifies the operator controls. Now, there are only 2 buttons used for intake and release. The state machine uses output current to determine when a gear has been picked up and will activate the piston automatically.
We also found two bugs resulting in the robot not turning left and twisting along an autonomous routine, and we were able to fix these edge cases.
The hardware team began crimping and attaching 15 battery leads and running battery tests to determine true battery capacity.
Day 36: Improving Subsystems
Today we ordered all the the parts for the upper extension of the hopper floor and got majority of the CAD done. We will be going with 50 degree edges made out of Delrin with the first two rollers of the upper extension not having any surgical tubing to allow for horizontal movement.
Today we worked on inventorying all the COTS parts for the Feeder subsystem. This would allow us to become more organized and make sure parts we need we have or are buying. I also helped lead students in inventorying other subsystems via the CAD,
We worked on the gear grabber. We removed the polyurethane added before with black, conforming WCP wheels. We found them to work significantly better than the polyurethane, but still not extremely well. We continued to work and changed the WCP wheels to red conforming wheels, which while ugly, worked better.
Days 33, 34, & 35: Preparing for Competition
Gear Grabber/Driver Practice
We worked with the drivers over the weekend, doing basic drills like gear cycling, in order to become accustomed to driving the robot prior to the SFR Competition. We started the day by iterating on the floor for the gear grabber. The floor pickup for gears still needs work as it is inconsistent at picking up the gears when we drive into them. The polycarbonate knife edge was not as smooth as the prototype. There was a small edge on the actual version which was causing problems, so we sharpened it. After iterating on it, we then mounted it, and set ourselves on solving the jackknifing. We realized the best solution for this would be to redesign it, so Andrew and Mani are working on a new CAD. Meanwhile, the group worked on iterating on the length of the polycarb. We still have work to do before we finalize the design.
The major problem we were trying to solve was that the bumpers were too low. This was because the mounting solution uses C-channel brackets that go around the bumper supports and are supposed to sit flush to the underside of the little 1/2 x 1/2 bumper rail. But, what we didn’t realize is that the rail actually has a weld bead under it so the brackets could not go up high enough. This made the bumpers too low to the ground. To fix this, we removed a couple staples and pulled back just a bit of fabric on one of the practice bumpers so we could remove the brackets without actually remaking the entire bumper. We used the mill to make the brackets shorter, so they can move up and avoid the weld. We also used the drill press to add a new hole so they can align to the holes already drilled in the robot. This works pretty well, but some concerns are that the bumper is now too high and lifting the intake up, preventing it from going down far enough to have good compression on the balls. As of now, the intake is working fine. We still need to mill down all the other brackets, and we talked about making new ones and getting them anodized for the competition bumpers. The red comp bumper still needs fabric, and the blue one should have the fabric removed.
Over this weekend, we worked on the hopper redesign. After some initial tests, we found that perhaps preventing the hopper from expanding sideways in the front expansion might add rigidity and strength to the hopper. To do this, we tested by bolting the front sliders to the hopper to prevent them from sliding. After testing, however, we found that intake by actuating the field hopper became difficult as the decreased width of the hopper prevented the balls from coming into the robot. To accommodate this, we redesigned the hopper in CAD so that the top will slide out vertically while the bottom pivots about a fixed point that torques the flexible polycarbonate. We also started the CAD of the new hopper floor for SFR which has the top rollers and wedges and a center to increase our ball throughput. We started the construction of the wedges on the hopper floor. After some brief testing, we CAD-ed this out. We will begin manufacturing on Monday.
This weekend, we received the 3/4” ratchet strap climbing ropes with the sewed on velcro. We tested it by pulling on it and rubbing it at corners in order to see distressing. The rope was then tested using the rope climber on the practice robot but the lack of stretch/slack made it hard to latch onto. In the near future, the rope team will attempt to plan out elastic placement on the rope.
We wired up a MOSFET to control the switching of the LED light, located on the front of the robot, by having a voltage signal sent out from the relay port of the Roborio. It allows the drivers to see better when having to place a gear without the light blinding them.
Today, we worked on creating a reliable 40 kPA autonomous mode. We decided that previous autonomous modes that used complicated S curves to swerve into the hopper were too inconsistent, so we settled for a new, much simpler mode. But, at the end of the night, we had a working auto mode that deployed the intake, rammed into the hopper head on, waited a few seconds for balls to pour in, then aimed and fired the balls into the goal. We continued to improve the efficiency of this autonomous mode until we had it begin shooting around 6.3 seconds or less. We needed the autonomous mode to begin shooting as early as possible because there is around a 5 second delay between scoring a ball and having the scoring system pick it up. Because of this, any balls shot past 10 seconds will probably not be scored during auto.
We continued revising our robot's autonomous routines, and we were able to drive to the hopper and trigger it, receive a payload of balls, and fire into the boiler.
We also worked on a live data plotter that could plot robot data much faster than SmartDashboard. Various subsystems, such as the drivetrain, simply push data to a server, which pushes data to a grapher website on the driver station. This utility will be useful for tuning drivebase and shooter PID, as well as other programming tasks.
Day 32: Continued Assembly and Programming
Today, we worked on designing and testing the roller gear grabber. We installed a prototype onto the programming robot, and it worked somewhat well. When we drove into a gear directly, it was always ours, but it was narrow and difficult to always aim correctly at the gear. We played around with passive funneling, but were unable to significantly improve the width from which we can intake because of the sidewalls of the rollers were too low. Griffin and Colin are currently designing a new gear grabber that will likely funnel more effectively, and we plan to have it on the robot and testing it on Friday.
We took the top roller prototype that we have been working on, and added a center wall. The one from Monday was not long enough, so we extended it and stiffened it. We found this to help immensely. We also added zip ties across rollers to help the balls move across faster. We have reached a point where we are comfortable and confident with the floor.
We made progress on the hopper improvements in CAD and the redesigned Gear Grabber. We determined the geometry for the gear intake, designed the gearbox, and made the basic assembly that will be developed upon later.
Today, we worked on improving the web interface for the autonomous pathing tool. We improved the overall aesthetic of the app, and added several new features. These include the ability to see robot start and end rotation, and having the path colored based on the current speed of the robot.
Day 31: Continued Assembly and Programming
On Monday, we worked on making the hopper more rigid as well as tackling other issues with it, including breach of size constraints and inability to actuate field hopper. We brainstormed and tested off of current practice-bot hopper with small team to determine solutions. We plan to change the front extension components to prevent them from expanding sideways by making it one piece. We will also lower the hopper to fold over the intake to give it greater strength and rigidity. As a result, the hopper will fold have slightly less volume for ball storage, but much greater strength.
The rope design has been prototyped. The length and placement of velcro on the rope as well as the knot have been measured. The rope has not been tested or sewn on with velcro yet. Next build, we will attempt to prototype elastic and the placement of elastic on the rope as well as the amount.
We constructed a new top roller for the hopper floor. We also made few wedges at different angles to see which angle was best in directing each ball towards the shooter. Once we find the ideal wedge angle, we tested it. It worked well during the first test, but it was not consistent. Next time, we should keep experimenting in order to find the proper wedge angle.
We continued testing a ball counter for the shooter, but we were not able to count balls fast enough with the shooter on full power. For the counter, we’re using a Sharp distance sensor and creating a threshold that returns true when a ball is within range of the sensor. It is likely that our voltage threshold for the ball counter is too wide, causing some balls to not be detected.
Day 29 & 30: Getting Ready for Competition Season
Today, we worked on solving the funneling speed issue by placing a set of 4 rollers at the end of the hopper floor and above the wedges to provide a force pushing the ball forwards. This worked extremely well as our output increased to around 10 balls per second. More work needs to be done with different wheels and friction surfaces on the rollers and wedges to further increase our output.
We worked on pneumatically actuating the gear grabber by activating the solenoids individually. We are going to work on a state machine for Monday to make it more intuitive for drivers. We also deployed a sine scaling function to the driver inputs to significantly improve robot driving. We tuned the path following program by fixing some bugs and also investigated using the talon magic motion profile. We also developed the state machine for the gear grabber.
Day 28: Bag and Tag Day
Today, we started by receiving news that after visiting 3 anodizing places, we could get parts for our hopper and hanger anodized for the competition robot. After calling, we knew that we would receive parts by 4, so we had to get everything ready for that time. The first thing we did was find every screw, every tool, every part, needed to assemble those subassemblies the moment they arrived. We then, finished the side panels and assembled the hopper. As soon as the parts arrived, we built up the entire robot and cleaned it, the best we could. We proceeded to take robot photos, and then diagnose the robot.
We also spent majority of the day working on a battery tab mount to keep the battery leads away from the hopper floor. The battery tab mounts to the PDP and fastens the Andersons together.
We found the shooter to have some issues that need to be dealt with, but physically fixing them must be pushed off until SFR. The robot was bagged around 10 minutes before 9pm.
Yesterday, we worked on assembling and attaching the hopper container. While we waited for the anodized parts for the hopper floor and climber to come in, a group of students worked on assembling the main components of the hopper while carefully avoiding smudging the sponsor side panels before pictures. After prepping everything and waiting for other subsystems to be assembled and attached, we riveted and bolted on the hopper in under 10 minutes to allow media time to take pictures and then carry out any final checks before bag and tag.
Today, we worked on tuning our autonomous program some more. We discovered that the bug from yesterday was caused by two segments of the path not lining up, causing the pure pursuit controller to go out of control as it attempted to move the robot to the correct position. We managed to get a fully working autonomous mode that scored a gear, activated the hopper, then shot around 40 balls into the boiler. We noticed some inconsistencies with the gear scoring segment of the auto, most likely caused by wheel slippage. We didn't have enough time to fully resolve this issue, so we will continue to work on it this weekend.