Table of Contents
If you are unfamiliar with FIRST Robotics Competitions (FRC), you can start with FIRST Basics.
If you are familiar with FRC, but need a refresher on the 2017 game, I wrote up a brief overview of the game mechanics and scoring in The 2017 Challenge. I also included a point-by-point breakdown of one of our qualifying matches at the Houston Championships.
For an overview of our robot, you can start with Robot Introduction, and for more detail you can read about our Mechanical Subsystems.
To learn more about our design process and my involvement in the development of our robot, you can jump to The Design Process.
FIRST Robotics Competitions (FRC) Basics
Expand this section to learn about FRC Basics.
What is FRC? FIRST Robotics Competitions are a series of tournaments, from regional to international events, ending in a championship event in either St. Louis or Houston. Each team has exactly 6 weeks to develop their robot from when the challenge is announced to when they are required to stop working (though this rule has been changed in the 2020 season).
What do tournaments look like? Each tournament event typically consists of a series of qualifying matches, then playoffs to determine the winning robots. Each match is 2.5 minutes long, and consists of a short autonomous period followed by a tele-operated period. Each match is played 3v3 on a roughly 27' x 54' field, where 3 separate teams join together in an alliance to compete against 3 other teams.
What are the robot constraints? There are many other rules and regulations that can be found in the season manual for a specific challenge. For the robot, typically, there is a weight limit of 120 lb, and there are in-match size constraints as well, which might vary through the duration of the match (e.g. The robot's starting configuration usually must start within the robot's frame perimeter). Additionally, the robots are usually required to use blue or red bumpers with their team numbers clearly displayed.
What is 3256? Every team has a team number. The WarriorBorgs' team number is 3256. I was a student of 3256 for 5(ish) years, starting in 2013 as an 8th grade "intern." My last season as a student was 2017, when I was a senior, and I started mentoring the WarriorBorgs in 2020.
The 2017 Challenge
The 2017 FIRST Robotics Competition theme is: STEAMWORKS.
There are three main objectives in the game:
to score gears
to score balls (in the high or low goals)
to climb a rope at the end of a match
To better understand the challenge, please watch the 3 minute game animation video. Additionally, I have written a brief overview of scoring mechanics below.
Game Animation (Introduction to the Challenge)
The playing field
Expand this section to see an isometric & overhead view of the playing field, which is roughly 27' x 54'.
Game Element Retrieval, Delivery, and Scoring
Below are the main scoring mechanisms. Expand each section using the arrows to learn more about how a robot can manipulate game elements during a match to score points.
Gears are scored in one of two central "airships" which are manned by 2 "pilots" per alliance who are human players that can collect the gears from the robots. Alliances gain points when the pilots place a certain number of gears on the appropriate pegs and spin up the airship's "rotors" sequetially.
A robot is allowed to manupilate one gear at a time, and can transport the gear from a feeding station at one end of the field to the airship at the other side.
To deliver a gear to the pilot, the robot must place the gear on a rod (which is actually a spring that will bend if the gear is placed too far from the base of the rod). The rod is attached to a vertical rail such that a pilot can lift a gear placed on the rod into the airship to score it.
A pilot can manually lift a gear out of a robot by raising the rod on its rail, or a robot can leave a gear on the rod for the pilot to later attend to.
Balls are scored in a low goal or high goal. They can be retrieved from the 5 sets of ball dispensers, which are each activated by lever that a robot must bump. Each lever releases both adjacent containers, such that a single robot collecting balls from these bins can realistically only catch half of the balls, and must pick up the remaining balls from the ground. Alternatively, there are fewer balls available at the pilot feeding stations.
The low goal is the rectangular opening in the vertical wooden structure in the image above. The opening is under the maximum legal robot height, such that a robot does not necessarily have to launch balls to score into this goal. A low goal is located at the base of the boilers on either end of the field. There is one low goal and one high goal for each alliance.
The high goal is much taller than the maximum legal robot height, at 8'1". The opening for this goal is a horizontally positioned circular opening. The high goals can be seen at the top of the boilers on either end of the field.
Robots must launch balls to score them in the high goal, though balls scored in the high goal are worth more points than those scored in the low goal.
Each airship has 3 ropes, one for each robot in an alliance. The rope is secured to the airship above a touchpad 4'11" off the ground that a robot must depress to score points.
The ropes are hung up and out of the way of the robots until the last 30 seconds of a match when the pilot is allowed to release the ropes for the robots to climb.
The default rope is pictured above, but each team can fabricate and bring their own rope to competitions, as long as they are within regulations.
Expand this section to learn about how points add up during a match. Points scored during the autonomous period are different than the tele-operated period.
Here is an unofficial cheatsheet for scoring. I'll go over the basics of scoring here.
Gear Scoring: Robots placing gears on the rods don't actually score points. What scores points is spinning "rotors." Each rotor requires a certain number of gears to be delivered and placed on pegs around the rail of the airships by the pilots to be activated. To activate a rotor, the pilot must spin the completed gear train.
There are 4 rotors total that can be activated by an alliance during a match. The first rotor requires 1 gear, the second: 2, then third: 4, then fourth: 6. There is a free gear already in the airship, however it cannot be touched until after the autonomous period. Robots may start with one gear pre-loaded in their robot. The number of points scored by starting a rotor depends on the period in the match.
Ball Scoring: Balls scored in the high and low goals contribute directly to match points. The number of balls scored per point depend on the period in the match.
Autonomous Period (first 15 seconds): Rotors scored during the autonomous period are worth 60 points. To score the first 60 points, only one robot must deliver a gear in autonomous mode. To score an additional 60 points during the autonomous period, however, all three robots must deliever their pre-loaded gears, and the pilots must activate both rotors within the first 15 seconds of the match. Robots also score 5 points each during the autonomous period by crossing the baseline (which naturally happens if they attempt to place a gear). Each ball in the high goal, or every 3 balls in the low goal, contributes 1 point.
Tele-operated Period: After the autonomous period, drivers can take control of their team's robots. For the rest of the match, rotors are worth 40 points each, and there are 3 balls to 1 point in the high goal or 9 balls to 1 point in the low goal.
End Game (last 30 seconds): During the last 30 seconds, robots may climb their ropes for 50 points each.
Ranking Points: Special scoring results by an alliance can contribute to ranking points, as shown in the image above.
You can watch the video below to get an idea of what a match can look like. This match is qualification match 50 in the Houston Championships - Carver Subdivision. Expand this section for a full match breakdown.
In the match, our team (WarriorBorgs, team 3256) was on the red alliance and started in the center position (on the right side of the screen). You can easily spot our mostly black-anodized robot with red bumpers and vertical orange belts on the front. The number "3256" is also written in white on our bumpers. Read below for a full breakdown of this match.
Auto: There's a lot that happens in the first few seconds of the match, so I'll walk you through it.
The Red Alliance: Teams 3256, 4334, 2556 won 77 points during the autonomous period.
Rotors: In the first 4 seconds of the match, our robot (3256) on the right of the screen places a pre-loaded gear onto the center peg in autonomous mode. The gear placement by the robot scores no points itself, however, if you look closely, you can a see pilot immediately lift the gear into the airship. That pilot was me! I hand it to my co-pilot who places the gear into the first slot at the top of the center pillar. This activates the first rotor, scoring 60 points for our alliance. Team 4334 misses their first gear on the view side of the field.
Low Goal: Team 2556 scores 8 balls in the low goal, scoring 2 points total during autonomous.
Crossing the Baseline: All three robots in our alliance cross the baseline, contributing 15 points, with team 2556 crossing just at the last second. The referee's add in those 5 points just after we hear the bell indicating the end of the autonomous period.
The Blue Alliance: Teams 5627, 4091, and 987 won 89 points during the autonomous period.
Rotors: Team 5627 scores a gear in the middle peg. The pilots pull it up from the robot and score the first rotor, gaining them 60 points.
High Goal: Team 987 collects balls from the nearby dispensers and scores 14 balls in the high goal for 14 points. We can see a lot of balls now on the ground due to the double dispensing mechanism for the balls in those containers.
Crossing the Baseline: Team 4091 crosses the baseline, but does not attempt to place any gears. The other two teams also cross the baseline in the process of scoring balls or gears.
Tele-Op: This isn't really a point-by-point analysis, just general observations. For the rest of the match, no balls are scored, and its down to gears, defense, and climbing.
We'll start off with 3256, who picks up gears left behind during autonomous mode by 4334, then 2556, scoring them in that order in the middle peg while 4334 runs off to pick up another gear from the feeder station at the other end of the field.
4334 drives past the feed slot then turns around so their gear intake is facing the correct direction, then a human player drops a gear through the slot onto the ground (and it lands upright). 4334 collects this gear from the ground, then bashes into 987, who is on its way to pick up some balls from the other feeder station. 987 proceeds to collect those balls, then heads over to their blue alliance feeder station to pick up a gear.
4334 meets up with 3256 on the red side - both are trying to score a gear. They make an implied agreement for 3256 to go to the middle station, and they both drop off their gears.
987 then tries to push 3256 into the blue feeder station zone, which would result in a foul against our alliance (red). 3256 narrowly avoids the foul, then rushes to the red feeder station at the other side of the field. They wait for 2556 to clear the area, then pick up a gear from the ground and speed back to their side to drop off the gear.
5627 is here too (red side/blue feeder), but has to wait for 3256 to be done scoring their gear and for 4091 to be done at their feeder station. I believe it's a foul to mess with an opponent's robot when they are delivering gears. Meanwhile, 2556 has scored a couple gears on the other side of the airship, but 987 manages to knock a gear out of their robot, then proceed to pick it up and score it on the other side.
3256 then meets 987 at the other side of the field (blue side), where 3256 rams into 987 enough to cause balls to fly out the top of their robot. Around this time, the ref calls a foul on blue, who managed to steal a gear from our feeder station. This, or bumping into 2556 who was in the feeder station, gets them a foul, causing them to lose 25 points (you can see the ref touch the score input tablet).
3256 accidentally lowers the gear intake mechanism onto a ball, ingesting the ball and having to spit it out. 987 and 3256 tussle for a second, then 3256 collects a gear while the end-game buzzer goes off, then 3256 tries to avoid climbing robots while heading back the red alliance airship.
All teams pretty much immediately drive to their ropes, with 987 delivering one last gear before climbing and spilling out most of their balls.
The blue alliance spin up their 4th rotor in (literally) the last second of the match. There were 4 rotors and 3 climbs for each alliance, amouting to 270 points for each during tele-op.
Except for balls and fouls, this match turned out to be a tie. 987 made the smart decision to NOT score balls during tele-op - if they did, they likely wouldn't have had time to get their last gear delivered in the final seconds of the match to score 40 points from the 4th rotor and gain an extra ranking point. With 987 scoring more ball points during auto, they were lined up to win the match. However, trying to steal that gear from our feeder station cost them 25 foul points. Alternatively, if they hadn't stolen that gear, they likely wouldn't have gotten their 4th rotor spinning in time, costing them 40 match points and a ranking point.
The end result was 372 (& 3 Ranking Points) red to 359 (& 1 Ranking Point) blue, meaning we won! Yay! Of course, I chose a match we won to analyze, but matches vary wildly depending on the teams you end up with and random vairiable in a game.
FRC 2017 - Qualification Match 50 - Championship - Houston - Carver Subdivision
"Das" is the WarriorBorgs' 2017 robot, which we developed in 6 weeks, and later modified between competitions. Our robot was designed to be able score in the three main game objectives: gears, balls, and climbing.
Gears: We initially chose to develop an almost 'passive' gear mechanism (where teams referred to 'passive' as requiring pilot assistance to remove the gear from the robot). Our robot required gears to be fed to it direclty from the feeder station, however, it was able to place gears on the pegs without pilot assitance - hence "almost" passive gear mechanism (though it was not technically passive according to the generally agreed upon definition of a 'passive' gear mechanims).
We later developed a more 'active' gear mechanism, which the robot could use during a match to pick up gears from the ground and place them on the peg (without pilot assistance). This allowed our robot to pick up gears that had been dropped on the ground by robots or pilots. This turned out to be a huge advantage, especially when matched with teams that had no ground pickup systems. With the addition of this system, however, we sacrificed our robot's ability to pick up balls from the ground.
Low Goal: Given our team's recent competition history, our available resources, and our lack of experience with flywheel designs and multi-ball-handling-systems, we decided not to develop a high-goal scorer. We instead developed a low-goal scorer with a ground intake for a small point advantage over alliances without any ball-scoring robots.
High Goal: Gears were worth the most points, so we predicted that balls would act more as a tie-breaker for most matches. Teams with substantial flywheel development experience and lots of machining resources were able to score a substantial amount of points in the high goal. In the championship finals, the top teams in the world combined to make alliances that could score all the gears available in a single match, making ball scoring (and penalties) the deciding factor in which alliance won. In most other matches, ball scoring made little difference to the final outcome, but could occasionally result in a tie-breaker against alliances who didn't score any balls.
Climbing: We experimented with several types of rope and winch mechanisms and ended up with a 1" wide 'tie-down strap' with loop-side Velcro sewed onto the end and a winch barrel with hook-side Velcro wrapped around it. After experimenting with 'catching' the rope, we discovered that we needed some loose slack in order to wrap enough of the rope around the barrel before lifting the weight of the robot. To accomplish this, we tied a slip-knot in the middle of the rope before every match.
Chassis & Drivetrain
To allow for more space to collect balls from the ground, we developed an A-Frame, with one end open to allow for ball intake. Since ball scoring was a low priority for our team, we decided not to develop a full width ball intake. Bumper rules require at least 6" lengths of bumpers from each corner of the frame perimeter, so our intake width was actually 12" less than the width of our robot.
This year required a simple drivetrain since there were no floor obstacles. Our team has plenty of experience developing and driving West Coast Drivetrains (WCD), so we quickly chose a 4" OD x 6-wheel configuration with the center two wheels slightly dropped for better turning. Our team had previously developed a 2-speed dual-CIM motor transmission, which we used in this robot design to deliver high speeds when flying across the field, and high torque when battling it out with other robots. We used chains to drive all 6 wheels with tensioning blocks on each end of the main chassis rails. The rectangle slot in the rear is for the robot battery, which is defined by regulations as a non-spillable 12v lead-acid battery in this specific size.
Using a simple and proven drive train allowed us to focus more our resources on other subsystems.
Ball Handling System
We developed a 2D ball path that utilizes a single input/output junction with a large reservoir and a wide output area. One set of actuated rollers can be set into one of 2 positions for intake and output. To expel balls from the storage reservoir, a set of belts pulls balls down and into the output ball path. The balls are then pulled back up by two sets of belts and shot horizontally out via the hood. Additionally, an articulating back panel (designed to increase the catching area for balls from a field hopper) could be used to agitate the balls inside the storage reservoir during ball output. The system was designed entirely within the defined robot volume with considerations for a passive gear scorer (no gear ground intake).
The two sets of belts are modular and removable with just a few screws and plugs. This makes assembly, repair, maintenance, and accessibility to internal components easy.
The flat elastic belts roll over convex rollers which results in automatic centering. We welded the belts to their required sizes and never encountered any belt snaps or instances of belts coming loose from their rollers due to the flat belt + convex roller combo.
Gear Handling System v1
As you can see from the sketch above, the ball storage system was designed from the beginning to be compatible with a rear gear drop off slot, which could retrieve a gear from a human player station at the opposite end of the field. Once the gear slides into the slot, it can be expelled via two actuators that both release and push the gear outward onto any peg on the airship.
We designed the climbing mechanism to live on a separate part of the robot frame. The climbing mechanism is a ratcheted winch with hook-side velcro wrapped around it powered by 2 DC motors. Our rope is a 1" 'tie-down' strap with loop-side velcro sewn on the end. Two horizontal guide plates attached to the storage mechanism help center the rope onto the winch drum.
We tied a slip knot into the rope before each match to allow for enough slack to be wrapped around the velcro winch drum before lifting the robot.
Gear Handling System v2
After our first few competitions, we realized the potential of gear ground intakes. Many pilots would drop poorly placed gears right in front of the peg, making it harder or even impossible for robots to line up with that peg. Gears ended up everywhere on the field, and a ground intake would be likely be quite advantageous. During the 2 weeks between our 2nd regional competition and the Houston World Championships (with our 3rd regional competition halfway in between), we brainstormed, CADed, prototyped, and manufactured a novel ground gear intake mechanism.
Scroll through the pictures to visualize how the mechanism works and watch the video below that to see a cheesy recap of our development process!
Using squishy rubber-based wheels, we desinged a grabber + lifter combo mechanism. Scroll through the photos below to see the sequence of intake events.
First contact: Immediately puts the gear in our control by pulling it into the robot.
Alignment: The metal corners act analagous to a gear tooth, which in effect, rotates the gear into the center of the intake mechanism. This alignment system is very forgiving - any time the gear touches the red first-contact wheels will result in automatic centering and alignment. This is the reason the red wheels don't span the length of the first axle - they act as a pivot point about which the gear can center itself in the mechanism.
Pull up: The red first-contact wheels pull the gear into contact with the black second contact rubber wheels, which force the gear upwards.
Clamp down: The gear is forced up into the clear polycarbonate stopper and pulled all the way back into its seat. At this point, the red wheels are no longer contacting the gear, and the gear is clamped between the squishy black wheels and the and polycarbonate stopper.
Lift up: We installed a button at the rear of the stopper to detect when a gear is fully seated. At this point, motor number two rotates the whole gear intake upwards.
Line up: The pivot point is located such that the gaps between the spokes line up vertically with the peg on the airships.
Push out: Once the driver has lined up the gear and moved forward, the mechanism can expel the gear and rotate downwards simultaneously, resulting in a motion that pushes the gear to the back of the peg, reducing the chance that a pilot drops the gear when raising it into the airship.
The rest of this page is still under construction! Check back later for more details, descriptions, and media. (It takes a while to track down all the photos, CAD files, and other media!).
Update 10/12/21: Since it's difficult to find clear HD media of the individual subsystems, I am working on brand new renders for each system!
Update 10/13/21: Renders done, and descriptions added! Now it's time to work on adding content under The Design Process.
The Design Process
The rest of this document is an overview of our design process, my involvement in the development of the robot, our competition history and awards, and my general thoughts of the season based on my recollection several years later (it is now October, 2021 at the time of writing).
We try to model our season schedule based on the Engineering Design Process, which is roughly indicated in my table of contents (shown at the top of this page), and is generally outlined in the image here.
Conceptualization: I designed the conceptual layout of the robot, including the chassis and drivetrain configuration, optimal ball path, climber winch placement, and gear slot design. This configuration can be seen below in the Brainstorming section (drawn to scale), along with several other concepts I sketched.
Design, CAD, and Prototyping: I led a team of 3 to prototype ball-flow mechanisms, experimenting with and optimizing belt type, belt friction, compression values, and more. After that, I designed and CADed the modular belt assemblies on the front of the robot that control the flow of balls.
Another design team member was responsible for the design and CAD of the removable ball storage mechanism, and another designer was responsible for the prototype and CAD of the rear gear slot mechanism. Another designer was responisble for the climber winch and supporting frame structure.
Modifications: I conceptualized, designed, and CADed the V2 gear mechanism based on observations from our first regional competition, and worked with 2 of my peers to prototype and fabricate the gear-ground-intake mechanism. 2 more software engineers worked on the code, which included a PID position control system and fine-tuning to optimize the placement of the gear on the peg. I also adapted the ball handling system to fit the new gear mechanism, which involved sacrificing ball intake from the ground (in favor of gear intake from the ground). These modification were completed in less than 2 weeks (with another regional competition in the middle) in order to be ready for the Houston World Championships event.
Review Constraints and Requirements
Every member is required to read through the entirety of the game manual. We familiarize ourselves with the game rules, robot restrictions, legal components, game elements, and everything else necessary to understand the challenge entirely.
Every year, we look for loopholes. However crazy an idea sounds... if there's a creative way to get a lot of points (or prevent the other alliance from getting points), we have to explore ways to exploit it. There are several examples in FRC history of teams that could literally not be beaten due to their robot and game strategy, though, in recent years, the game designers have been more careful when analyzing their game to avoid those types if situations.
We also analyze the game in general, making sure to determine how important each task is, and how it's supposed to be done. We use this as an initial way to visualize general idea of what different types of robots could look like. Sometimes, we define a "minimum viable product," which is the robot that can get the most points with the least amount of effort. In FRC, it is common for teams to build a robot dedicated to one specific task - usually the main task.
In 2017, we saw many robots focus only on gears. These robots were often small, lightweight, and fast. Additionally, with a relatively simple robot, these teams can often spend lots of time on drive practice, which is critical for high-scoring teams.
FIRST has a seasoned history of hosting relatively similar challenges. Balls, disks, climbing, lifting, etc. There are patterns to the challenges. Many teams over many years have developed unique mechanisms and designs to solve these challenges. While I believe it is important to apply our own creativity to solving a unique problem, it is likely that someone somewhere has already built a mechanism that can do this and accomplish that. In many cases, it can be easy to adapt a system to fit our specific needs, though FIRST does have a unique way of getting teams to continually innovate and improve, regardless of how much experience a team has. In many instances, teams will apply a concept or implementation from a previous year, likely even from another team, in their own unique robot.
In researching this specific challenge, we took inspiration from the 2012 basketball season and the 2013 frisbee season.
Based on the challenge and our resources, including time, machining resources, design/CAD bandwidth (how many designers and CADers we have), software development bandwidth, etc., we can develop a general idea of what tasks we can succesfully design our robot to accomplish during a match while also allowing enough time in the schedule for software development, debugging, troubleshooting, and drive practice.
Prototyping & Testing
CAD & Drawings
Fabrication and Assembly
Debugging, Testing, & Practice
Competitions and Awards
Competition Prep: Spare parts, backup mechanisms, tools, battery charging stations, and more are required to perform quick fixes due to damage or quick simple upgrades that improve performance during competition.
Close match, good demonstration of ball scoring, gear scoring (pre-ground pickup), and climbing (pre-slip-knot)