FRC Team 972
Building Robots, Building Engineers
The Los Gatos High School Robotics Team won the FIRST Robotics Competition event in San Francisco this past weekend! We were picked by Team 971: Spartan Robotics and Team 973: the Greybots to join their alliance for the eliminations rounds, where we went undefeated.
Iron Claw proudly displaying our blue banner, plaque, trophy, and robot on the SFR field
Our win qualifies us to compete at the FRC World Championships in Houston! We are currently preparing for our trip to the event, which runs from April 18-21.
However, even with our time and effort, our victory at San Francisco was by no means easy: during the last few days of build season, the team collectively decided on a complete redesign of our elevator due to the old system’s inefficiency and constant jamming. This meant that in the few weeks between Stop Build Day and the San Francisco Regional, we had to manufacture an entirely new elevator design and install the system onto our robot during downtime at competition. Despite some initial issues, our problem solving paid off as our plan ultimately succeeded, and our versatile robot brought power cubes to switch, scale and exchange with our new and improved elevator.
The pit crew hard at work, making repairs and modifications to Copernicus
While our robot was fully capable of bringing cubes to the scale and switch, it was especially efficient in earning power ups, so our team decided to have our robot focus on delivering power cubes to the exchange.This endeavor was met with great success, and our scores for the exchange were among the best for all of the teams at the competition. Our ability to score cubes in the exchange impressed many teams and managed to secure our position as the final pick on the top seed alliance with Team 971 (Spartan Robotics) and Team 973 (the Greybots), whose unrivaled domination of the scale perfectly complemented our exchange capabilities.
The SFR Drive Team next to Copernicus in the queue before a match
With this combination, the 971-972-973 alliance made it through the elimination rounds and finals without losing a single match. Being one of the winners for a regional competition, our team is now eligible to compete in the national competition being held in Houston from April 18-21. However, competing in the World Championship involves many expenses, so our team is currently fundraising so that we can participate in this amazing opportunity. To support us on our trip, visit our GoFundMe campaign! We are incredibly excited to participate in the FRC World Championships at Houston and would like to thank all of our great sponsors, mentors, and donors who made this a possibility for us!
Watch our winning match here.
With Stop Build Day being last Tuesday, the build season for FIRST Power Up is officially over. Our robot, named Copernicus after the famous Renaissance astronomer, has been bagged and tagged, meaning that we may not continue working on it until our first competition. In our last few days of build season, our team made a lot of improvements to our intake and elevator mechanisms despite shipping setbacks. A faster and more consistent elevator is in the works, and will be attached to our robot at competition.
Our last few days of build season proved to be challenging. Although we had a robot ready a week before the end of build season, our elevator would get caught frequently on its way down due to the torque of our intake mechanism and was not as fast we wanted. As a result, last Friday we agreed upon a complete redesign of our elevator, replacing the pulleys in our original mechanism with belt-driven linear rails. In addition to the immense pressure we faced due to having little time, we were further challenged by shipping delays on the rails and belts.
Despite these challenges, we managed to make tremendous progress in the last week. The mechanical team greatly improved our intake system by adding tread to the front wheels for greater traction with the cubes, a strong steel beam to the back to firmly set a minimum width, and stronger springs for a stronger grip on the cubes. Though our elevator parts were delivered four days late, we still began assembly of the elevator on the last day, and already the new design shows promise. Another priority of the mechanical team was weight reduction since our new elevator’s heavier weight placed our overall robot weight above the maximum 120 pounds.
Programmers primarily focused on testing our robot’s autonomous routines, which, if done well, earns a ton of points at competition and set the best robots apart. We confidently believe we can deliver power cubes to either side of the switch from three possible positions at competition.
Programmers test code for the elevator and intake mechanisms
Jake practices driving with our finished robot
Jake delivers power cubes to the switch in teleoperated mode
Currently, our robot’s drive base and intake system are bagged along with our old elevator, which can serve as a back-up plan. Over the next few weeks we plan to finish our new elevator and mount it onto a kitbot for further adjustments, weight saving, and testing. We will then implement the new elevator on our our robot at our first competition, the San Francisco Regional. Based on our results there, we will make further refinements for our second competition, the Central Valley Regional.
Our robot Copernicus being bagged and tagged for competition
With build season over, we are proud that our build season progress and quality of our robot are far beyond that of last year. Thank you to our generous supporters for enabling us to experience our best build season yet; we look forward to competition!
With our fifth week of build season coming to an end, only a week and a half remain for us to finish our robot. Our team worked until 8 p.m. each night this week in preparation for these final stages, resulting in many issues from last week being addressed. Although deadlines are approaching quickly, finishing our robot with time left for testing remains a realistic goal.
The mechanical team continued refining our robot’s mechanisms this week, many of which are nearing completion. A particularly significant accomplishment made this week was the installation of our elevator system’s rails, which we can now use to adjust our intake to various heights. The mechanical team also modified our intake system so that its width can be adjusted and manufactured a hook for our climbing system. Finally, a few members have started to work on assembling the protective bumpers for our robot’s exterior frame.
David, Michael, and Kyra work on assembling our robot’s bumpers
A practice run with our finished elevator system
The programming team worked closely alongside the mechanical and electrical subteams this week, making sure their developments matched closely with our written code. Regarding the mechanical team, programmers tested the intake mechanism and helped make the necessary physics calculations for our climbing system; regarding electrical, the programmers helped to wire and test the encoders, encoder breakout boards, and optical sensors. Finally, the programmers have set up the NVIDIA Jetson TX1 for future use in vision applications and nearly finished our scouting website.
The programming team helps the mechanical team test our intake using the kitbot
After wiring and testing various electrical sensors with the programmers, the electrical team secured the encoders onto our drive train for motion profiling using custom-made 3D printed mounts. They also continued working on the pneumatics that will go on our robot, specifically setting up the pistons that will shift our drive train between having high torque and high speed.
Cathy works on mounting the encoders onto our robot
We are now at the end of our build season’s fourth week, and both the mechanical and software components of our robot are coming together. We have made great progress, and at this rate, we should have a completed robot with ample time for testing before build season’s end.
Our robot popping a wheelie during our preliminary driver practice
Thanks to the mechanical team’s efforts, we now have a driving robot with front omni wheels! The mechanical team also continued to build upon the progress made last week towards the intake and elevator mechanisms. Specifically, our mechanical team built the second iteration of our intake mechanism, which addressed many of the problems hindering our previous design, although the dimensions of the system–now too wide–still remain to be resolved. The elevator mechanism also saw major progress this week, with one of the winches responsible for lifting and lowering the system being machined.
The second iteration of our intake mechanism
The programmers have also made many major developments this week. In addition to finishing the code for the intake and elevator mechanisms, they have also started writing many of the routines for FIRST Power Up’s fifteen second autonomous period, during which robots will carry out instructions given solely by prewritten code instead of driver input. A couple of programmers have also taken their own initiative in designing a website to record and calculate data collected by scouters, who observe other teams’ robots during competition so the team can make informed decisions and strategies during alliance selections.
Programmers taking advantage of the pleasant weather by testing their program on the tennis courts
Val works on designing a scouting website for competition this year
This week, the electrical team first worked with the programmers to make sure the electronics board was organized according to robot code and installed the board onto our robot with the board shield, a protective polycarbonate sheet made by our CAD team to prevent collisions with other robots from damaging our electronics. Once this was completed, they began setting up the pneumatics that will be used in our climbing system.
Brian organizes the electronic components on our board to correspond with the programmers’ code
With the third week of build season coming to an end, we have completed our drive train, electrical board, and the first version of our intake mechanism. This means that we nearly have a driving robot with the ability to intake power cubes with half of build season still remaining. Our next steps are to mount our electrical board onto our drive chassis, refine our intake mechanism, and continue work on our elevator and climbing mechanisms.
The first iteration of our intake mechanism
The electrical team finished wiring our Galaga-themed electrical board and set up two key sensors: the encoders and the optical sensor. Encoders are vital to many of our robot’s functions because they measure how many times an axle rotates, and this helps us manipulate parts on our robot more precisely. For instance, we can use encoders to make the robot drive a certain distance or lift our elevator to a specified height. The optical sensors will be used in our intake system detect whether we have successfully retrieved a power cube.
Our finished electrical board
The programming team refined motion profiling and wrote code for the intake mechanism, the winch for the end-game climb, and the manual controls for the elevator. We are glad to see that our newer programmers took the charge in programming the majority of the mechanisms this week.
Ryan testing the gyroscope of the NavX, a 9-axis sensor
In addition to finishing the drive train assembly, the mechanical team also built the vertical struts for our elevator and the bracing for our electrical board. They also completed the first iteration of our intake mechanism, which shows promise but needs to be widened to be able to increase the contact between the power cubes and the intake wheels.
Jake and Aidan holding up our drive train
Jake working on our elevator mechanism
We are officially in our second week of build season, and for a majority of the remaining weeks, the team’s efforts will be directed towards making our conceptualized ideas into a physical reality.
The CAD team played an especially important role this week in advancing the progress of our robot. Using computer software, they had to create a digital model of our entire robot with exact dimensions in just one week! Our robot is planned to have a flywheel claw intake, an expanding elevator mechanism to lift the power cubes, and a winch attached to claws on the end of extending piston so our robot can climb the 7-foot-high rung. Our amazing CAD team’s accomplishment of this goal will prove critical to our success in the following weeks, as both the mechanisms we fabricate and the code we write must ultimately refer back to the design.
The team discusses our progress at the second design review of the season
The programming team continued to test different motors and sensors to narrow down the list of the electronics that will prove most effective in carrying out our robot’s functions. In addition, they have also begun writing the basic drive code that will allow the robot to be driven using two joysticks (the left and right joysticks control the left and rights sides of the robot respectively).
Maciej tests code with a peanut chassis
Our electrical team has begun creating the electrical board on which all of the robot’s electronics will be mounted. Reflecting the video-game centered themes of this year’s FIRST Power-Up, we are designing our board in the shape of the iconic spaceship from the arcade game Galaga.
Carol and Michael decorate the electrical board after being cut on the ShopBot
The mechanical team started to build the drive base (chassis) to our robot. This is the most basic component of the robot which serves to enable basic driving functions. Our drive base will provide the foundation upon which other mechanisms performing more complex functions (intake system, elevator, climber, etc.) will be added.
Sofia, Sejal, and Mina review the CAD of the chassis to plan cable routing
The first week of build season is when the team collectively decides on a general strategy to pursue for the remainder of the season. We ultimately decided that our robot will be built to place blocks on the scale and switch with additional mechanisms to climb during the endgame. We also started prototyping several mechanisms to determine how these goals can be most effectively achieved.
Since the mechanisms for the scale and switch essentially perform the same functions at different heights, we decided the most efficient design would be a common intake system for both the switch and the scale, along with an elevator system to adjust our intake / outtake system for different heights as necessary.
The team discusses design and watches a prototype in action.
Our team narrowed the potential options for our intake system down to two designs. The first design involved two flywheels with dynamic spacing that could be adjusted to account for different orientations of the power cubes; spinning the flywheels in one direction will allow the robot to grip onto the cube, and spinning in the other direction releases it.
Charles brings a power cube to the prototype flywheel intake.
The second approach to intake that we considered was a claw mechanism powered by pneumatics. In this design, a double piston extends to lock onto a cube, and retracts to release it.
The end-game task for FIRST Power-Up involves lifting our robot at least a foot off the ground using the rung at the top of the scale to support it. Throughout the week, our team conceptualized various prototypes for a climbing mechanism that could effectively achieve this task. In the example below, our team tested the viability of using measuring tape to lift our robot by determining the maximum weight it could support.
The programming team discussed the structure of the robot’s program for this year’s game. Both novice and experienced programmers experimented with different sensors, like ultrasonic sensors and quadrature encoders, to determine the best way to monitor every action of this year’s robot. The team produced electronics test boards for our programmers to test their ideas, while our electrical team worked on developing the electrical board and our CAD team created a drive base design for the manufacturing and assembly team to produce.
Programmers discuss code structure and autonomous strategies.
This is the first official day of the 2018 build season, meaning that FIRST Power Up has officially begun! On Kickoff day, FIRST reveals the game for this year’s competitions along with the detailed rules that specify exactly how matches will be played. Armed with this information, we now only have a mere six weeks to design, build, program, and test a robot for competition. FIRST Power Up is a retro-themed game that involves two opposing alliances of three robots each competing by placing power cubes onto seesaw-like switches and a six-foot-high scale to make them tilt towards the alliance’s designated side. The alliance that has “ownership” of the switches and scale for the longest time and whose robots climb onto a seven-foot-high rung earns the most points and wins the match.
The team leaders meet up at San Jose State University for early information on this year’s game and the Kit of Parts, which is a basic set of some robot parts and the power cube game element
The entire team reads the game rules together (the Game Manual this year was 133 pages!)
The FIRST Robotics Competition game for 2017, dubbed FIRST STEAMworks, involved delivering gears to a mock-airship to fix it, shoot whiffle balls into boilers to fuel it, and climb up a rope to prepare for it to take-off.
After analyzing the game and its rules, we decided that our strategy would be to focus on shooting the balls into the boilers and climb the rope at the end of the match. From this strategy we created and tested prototypes, developed a design using Computer-Aided Design, manufactured parts, and eventually assembled the robot. All the while, the programming team wrote and perfected the code.
By the time build season had ended, however, we realized that it would not be feasible to get our fuel-shooter to be consistent enough by competition to score effectively. We decided to retrofit our robot to become a gear-delivering robot, which was both a more feasible design and a far more effective strategy in earning points. Though our robot was bagged at the end of build season, we created a gear intake and holding mechanism separately before competition.
Despite this dramatic redesign, we rose to the occasion and ultimately fielded a robot that was extraordinarily competitive. We placed seven places higher than last year at the Central Valley Regional and even more impressive, we were chosen as the first pick of the eighth-seed alliance to progress to quarterfinals at the Silicon Valley Regional.
Now that it’s the last week of build season, we have finally finished (most of) our robot and put it in a bag for competition! We are machining the last parts of our shooter, gear mechanism, and the shooter feeder. The electrical board is completed and mounted onto our drive base, and the superstructure consisting of all our mechanisms has yet to be completed and mounted on top of the drive base. Programmers are continuing to work on PID and vision, and the shooter code now has 75% to 80% accuracy whilst shooting fuel into the boiler.
Our shooter prototype testing recently-programmed vision and PID.
The mechanical team has completed the intake system and the hopper this week, and is now machining final parts to complete the shooter, shooter intake, shooter feeder, and gear mechanisms. We brought in a 3D printer so that we can printgears and an adjuster for our shooter. Though we had low attendance due to weather, the mechanical members who were able to attend, are also working on welding and CNC machining (computer numerical control machining) brackets for our robot signal light, or RSL. The RSL indicates whether our robot is on, enabled, or off. Our robot’s hopper, made out of polycarbonate, is designed to hold approximately 55 balls. While the hopper itself is completed, we are also working to incorporate a feeder into its design, consisting of two brushes facing vertically upwards that feed balls from the hopper into the shooter. The mechanical team is working on building the feeder and mounting the feeder onto the hopper by the very end of this week.
Jake Caligiuri overlooks the 3D printer printing gears.
Programmers have been working on networking with the Jetson TX1 and motion profiling with the IMU. Control systems tuning has allowed for our shooter’s accuracy to increase to 80%. Because not all mechanisms have been completed, the programmers have been testing and deploying code onto prototypes that the mechanical team has completed last week. These prototypes are built as similarly in size and shape to the real mechanisms by reflecting the CAD. Hence, the code can be finalized with the needed measurements of the robot, such as distances and proportions.
Programmers test shooter code deployed onto the prototype shooter.
The electrical team completed the electrical board this week, and are now helping out in both mechanical and programming. At first, there were issues with wire lengths, and several wires had to be spliced and lengthened so they could reach motors from the electrical board. After soldering wires together to lengthen them, the splices were covered in heat shrink to smooth out the wire as a whole. The lengthened wires allowed for easy connection from mechanisms to the electrical board, and with this, the board was finished.
Brian Cruz guides a new member in mounting the final electrical board onto the chassis.
We are nearing the end of build season, and have completed the fully functional chassis and drive train. We plan to get our super structure done next week and get some driving practice in as well.
Alex Lee grabs materials from the robotics cart holding last year’s robot
Our super structure consists of a hopper to hold fuel, an intake system that leads 5 fuel balls at a time into the hopper, and a high goal shooter. We also have a simple gear manipulator to use during the autonomous mode of the competition. We have decided on the high goal shooter because it is an efficient and more unique way to gain points, and it is most likely to be compatible with our alliance partners, assuming that most teams plan on having gear-focused robots.
Andy Sheu lectures on the specifics of the robot’s program
Programmers have nearly finished the autonomous program of the robot. We plan to have our robot drive forward, place a gear into the airship with a passive gear system, and turn around to shoot a ball into a boiler, all without any of the drive team putting their hands on the drive station. The electrical team has completed the electrical board and it is set up on the robot to be conveniently under the hopper for easy access if we need to fix an electrical issue in between matches at competition. Our electrical board is labeled and the wires are organized and grouped together with zip ties to keep the system organized, so that anybody modifying the electrical system can do so quickly.
Justin Quan installs the electrical board on our new robot’s chassis.
As a precaution we are designing a backup plan to enact in case our high goal shooter fails. A proposition for this includes a passive gear system. However, we are more likely to continue in our current endeavor than divert our focus on this secondary plan. By the end of week six we hope to finish our hopper, intake, shooter, and climber.
Brian Cruz strips and crimps wires to be put on the electrical board
Amidst the build season frenzy, we will be exhibiting last year’s robot at a local elementary school’s science fair to inspire the next generation of engineers. We hope that this will spark the creativity and imagination of these younger students, and that we will demonstrate how with a bit of time, teamwork, determination, and amazing mentors they can accomplish anything. When they see this robot we hope they will join robotics and take an interest in STEM.
We are over half way done with build season, and we have made a lot of progress. The CAD team has finished the CAD, and is adding final touches to the design. The programmers are continuing to learn and practice advanced forms of code, and are now preparing code for our newly-built electrical board.
Paul Rubino adds finishing touches to the CAD
Our mechanical team has acquired all of the metal necessary to build our bot, and we are waiting on the prototype team to tweak and perfect the completed designs. The CAD team has completed the CAD since last week, and is currently adding minor additions such as screws and bolts to the design. They are also going through the useful and critical processes of stress analysis. In Autodesk Inventor, the CAD Software, they are utilizing a built-in tool to measure which parts of the robot may be experiencing the most tension and stress, to determine components that are mostly likely break during competition. After measuring the stressed portions, the team adds extra support to the vulnerable areas in case the robot experiences any bouncing and bumping while driving. The stress analysis feature takes into account force, static structure, and pressure of or around the robot. Our robot chassis has been built, and through that, the programming team is able to test code that fits our robot’s design.
Gautam Prabhu teaches other members how to place the wheels onto the chassis with the newly-broached sprockets
The programming team has begun testing the drive code on the actual chassis. Knowing the size and weight of the robot through the CAD, and now the physical chassis, the programmers have received a better idea of the values needed for the speed controllers, IMU, PID, and more. The electrical team has started wiring the final electrical board, and is regulating where wires may be organized in accordance to the chassis. While the robot’s CAD was still being designed, our team members took the accessibility of the electrical board into account, so it currently lays flat on our robot’s chassis under the superstructure.
Ben Coe teaches underclassmen how to use the lathe
By next week, we hope to have completed our superstructure. We wish to reserve our last week for practice driving, as we want non-veteran members to be participants of our drive team this year.
As Week 3 comes to an end, the team has nearly completed prototyping and CAD, and is now preparing to assemble mechanisms for our final robot. By testing using our recently-made prototypes, we have made design changes to ensure the optimal integration of mechanisms and overall efficiency of this year’s robot.
Isabella Gueth welds for the first time!
Quentin Leon explores possibilities of vision and PID programming.
Programmers are currently using our kitbot, a basic practice bot, to test code for the final robot. The programmers have started work on PID, which is a control loop feedback mechanism which corrects minor errors in movement inherent to the system to allow for more precise alignment and shooting. The programmers also intend to use a gyro and accelerometer on this year’s robot, allowing the robot to simply drive or shoot to a certain distance based on an angle input into the code. This allows for a reliable programming plan for the intense 15-second autonomous period in the start of the match.
Harrison Van Der Walt and Jacob Snyder machining prototype parts.
The CAD team is finishing up the CAD for our robot. For the past week, the design team have been working non-stop and have been teaching new members CAD to contribute to the final design of our robot. Team leads have been busy ordering and buying essential materials. With your generous donations, we’ve bought nearly everything we need for our custom electrical board, sufficient metal to construct the robot, and various other components necessary to our robot’s design.
Thank you all for your generous donations that have allowed us to build not only our robot, but also our team!
It’s officially week two of build season, and we’ve switched gears (no pun intended) from deciding which robot to build to actually designing and fabricating our robot. Programmers have begun programming basic code, such as our drive code, and have been assigning roles to certain electrical parts and mechanisms. Our mechanical team continues to use CAD (Computer Aided Design) to design our robot digitally.
Jake Caligiuri works on a rough CAD of our robot’s chassis
Ben Coe designs a gear-manipulating mechanism
We’ve decided to use a West Coast (or tank) drive train on our robot, using two joysticks to control it. Our mechanical team continues to finalize prototypes, and we are now perfecting mechanisms we wish to use on our final robot. The CAD team is deciding how these systems will be placed on our robot so we have optimal mobility and minimal weight. Various CADed robot ideas will be finalized this week and we will have a roughly completed CAD of our robot by the end of this Saturday, 1/21/17.
Justin Quan programs the IMU (inertial measurement unit) on our robot used for testing (the kitbot)
Talal Sohail closely investigates the electronics on our kitbot
The programmers have begun writing basic drive code, vision/camera code, imputing values for joystick buttons and sensors, and testing programming techniques like toggle code to use in the upcoming weeks of build season. The programming team, along with the mechanical team, has been using the kitbot (our practice robot) to test various codes and mechanisms. The mechanical team uses the kitbot to test pneumatic systems for our finalized and sophisticated prototypes, while the programmers use it to test their drive code, camera code, and sensors. The electrical team is working closely with the programming team to test new sensors and to ensure we know how we’re going to use them on our final robot.
This is the first of six weeks in build season, which is the period we have to design, program, build, and test our robot for competition. We made several prototypes of potential mechanisms our robot could have to compete effectively in the game, including a low goal shooter, high goal shooter, fuel and gear intakes, gear manipulator, and rope climber.
Week One Kickoff Breakfast
Team members discuss prototype ideas for gear manipulation
Team members form groups to discuss prototype ideas
Both veterans and new members gathered together for a team brunch at school! We arranged this meeting to watch the game release video of this year’s FIRST Robotics Competition together. Some members gathered together to discuss ideas and begin prototyping possible robot mechanisms. The fundamental prototype to our team’s manipulation of balls is an intake system to pick up balls from the ground to place in our robot. Part of this year’s FRC Competition, 2017 FIRST Steamworks, includes picking up wiffle balls (“fuel”) from a hopper or the floor to score into a goal in a boiler. Our current intake system consists of rotating belts that glide along the floor and pick up the balls, which are then placed in a holder in our robot.
To make use of the balls retrieved by the robot, we developed a protoype for a ball ejecting system to score into the low goal of the boiler. Our prototype mechanism was made to eject balls that have been picked up from the ground using our ball-intake system. After our intake system successfully picks up fuel from the ground, the fuel is transported into a holder within our robot, and finally shot out with fly wheels when our robot is in front of the low goal.
In contrast to the low goal prototype, we also created a prototype of a high goal shooter. The high goal is a funnel-shaped pipe whose rim at the top of the boiler is approximately 8 feet above the ground. The pipe is backed by a net to catch any stray balls that may miss the entrance of the goal. Teams must shoot 3 high goals to score one match point during the teleoperated period. Although this is more complex than a low goal shooter, it is more efficient than shooting low goal, which requires three times the number of goals for the same amount of high goal points.
This year’s competition end game involves the robots climbing a rope about 4 feet off the ground and having the robot touch a touchpad at the top of the rope, at which point the robot is prepared for takeoff. This climbing prototype was created with a bar and 4 long and thin pegs spaced apart 1.5 inches. The pegs and rotating bar allow for a rope to get caught, and continue rotating so our robot is hoisted up while the rope is coiled during the endgame.