Between summer interns and full time employees, we have four talented FTC alumn walking the halls of goBILDA HQ this summer. I would be remiss not to sit down and ask them for nuggets of knowledge to help edify rookie teams. So I asked what they wish they had known when they were rookies. Here is what they had to say:
- Never be afraid of failure.
I know it's a hard thing to accept when your robot breaks (or your battery falls out for the 4th time that season), but those failures are what drive improvement. One thing that I always tried to say to myself after something breaks in practice is, "at least it's now and not in a match."
- Practice Practice Practice.
I know this gets overlooked, and it's hard not to push for that one more improvement or that additional auto cycle, but driver practice is king. Driving>implementation>design is the motto I live by in FTC. Good driving can turn a bad situation into a workable one, good implementation can turn a bad design into a good robot, and a good design can't do anything without good driving and good implementation.
- Never be afraid to ask for help!
The cooperation between FTC teams is one of my favorite parts of the program. If you need a spare part at a competition or need programming help before, there are teams out there that are always happy to help out. If you're unsure of who to ask, reach out to your Affiliate Partner and ask if they have any suggestions! Also, check out communities like R/FTC, the FTC Discord, and GM0!
- Measure it out.
Eyeballing works fine for some things like making a custom ramp, but for things like gear mesh or standoffs, it really doesn't have many happy endings.
- Nylocks and Loctite.
A nylon-insert nut works just like a regular nut, but as long as you get your screw length right and go all the way through, you can probably trust it to not back out in the middle of a match. Loctite is a similar solution, but a bit more permanent. Just make sure you stick to Blue Loctite if you ever hope to take that apart at all.
- Don't be afraid to ask other teams for help.
Every other team started out as a rookie team, and learning from veteran teams' mistakes can make your first year or two as a team much less frustrating. Twitter seems to be the preferred social media platform for teams, but there are other places such as Reddit and Discord where FTC teams discuss robotics. In addition to directly reaching out to teams, there are online resources such as Game Manual 0 and many YouTube videos that explain how you can design a better robot.
- Read the game manual.
I remember going through inspection the night before my first FTC competition, and learning that the way we scored was illegal. Reading the game manuals thoroughly not only helps you build a robot that will pass inspection, but can also keep your robot out of trouble during the match. If your drive team knows the rules well enough, you can even keep an eye on the other alliance to make sure any rules they break don't go unnoticed.
- Make a pre-match checklist.
Nothing is worse than losing a match because you forgot to plug a wire back in or forgot to tighten some screws down on your intake. My team created a list of possible problems (based on driver-practice experience) and every match the drive coach would go down the list and physically inspect the robot for those problems. It may seem like an excessive step, but losing a match because of an easily preventable problem can be heartbreaking.
- Get a 3D printer and learn to CAD.
I see a lot of teams that buy a 3D printer but only use it to print models they can find online. Using any sort of CAD can really take your 3D printing capabilities to the next level, all while learning about the design process.
- Keep it simple.
Many rookie teams find they make more competitive robots by keeping their robot simple and designing with concepts they are familiar with. These teams often iterate upon more ambitious design projects and programming techniques during the off-season. A common way to gain experience and practice designing and building more complicated systems in the off-season is to build and program a robot for a previous year's game. Personally, I also find building a robot for a previous game a great way to train new members once your team has momentum.
- Competitive Analysis
Often teams will post early season prototypes on YouTube which test some of the mechanisms seen during the competition. "FTC Ri3D", "FTC Ri1W" and "FTC [Season Name]" searches are all likely to display any of these projects starting a week or two into the season. I highly recommend watching at least a few.
Game Manual 0 (GM0), a community organized project hosted by a company at the Worcester Polytechnic Institute, contains detailed information about everything from hardware and CAD software to electronics and programming. GM0 is targeted at both new and veteran teams alike, illustrating both basic concepts and advanced techniques. https://gm0.copperforge.cc/en/stable/
- Go for an award.
One of the most reliable ways to advance and gain recognition among your local FTC community is to win an award at a competition (especially the Inspire award). The engineering notebook, community outreach, team sustainability efforts, collaboration with companies, and the robot design process all factor into being considered for this award. The engineering notebook is the primary way your team's activities that year are documented, and as such is an integral part in having a shot at any award. Some team's notebooks have been posted online and on the FTC Discord.
- Use RUN_TO_POSITION
One of the more consistent methods of navigation in autonomous mode is using the RUN_TO_POSITION mode on your motors and setting the motors to run to a position until they have reached it. RUN_TO_POSITION uses an algorithm run on the encoders of your motors to reach a specific point in the rotations of your motor. For this algorithm to operate properly, both the power wires and the encoder wires on the motors must be plugged into the correct port on the REV Expansion or Control Hub.
- Utilize the IMU
Encoder-based autonomous navigation can be paired with turning using data from the gyroscope to obtain even more consistent results. The gyroscope, located inside the IMU on the REV Expansion and Control Hubs, keeps track of the robot orientation relative to when the IMU was initialized (which you must dictate). You can write your own controller to take this information and rotate the robot to a specific heading, among a number of other uses. RUN_TO_POSITION and RUN_WITH_ENCODERS will ensure the robot is driving straight the majority of the time, however they may be insufficient in certain scenarios. Data from the gyroscope can be integrated into a custom controller to ensure the robot is driving straight if this occurs.