Hey guys, I am a beginner in FRC! What should I do if I want to help out a lot during build season? Many of my teammates are far more knowledgeable. I am on the prog subteam btw! Should I learn some CAD and hardware stuff too?
What you’re doing right now is honestly really good. Asking questions will get you really far in FRC. I’m mechanical so I’m going to be of limited help with what you should specifically learn as far as programming, but in general asking questions when you don’t understand things (here, but also in team meetings) will really help you learn a lot. There’s definitely benefits to knowing things like CAD/hardware although you probably reach a point where the returns from more CAD/Hardware knowledge start to be lower than the detriment from not spending that time on programming. I’d say that knowing how to look at a CAD assembly and get a general idea of what’s happening is a good minimum and having a basic understanding of how electrical works would also be useful.
Also keep in mind that you don’t have to learn everything right now. As long as you’re showing up and trying to be engaged you’ll be able to contribute to your team. I actually was on my team’s business team for the whole preseason my freshman year and then kind of switched over at kickoff so I really didn’t know anything about standard FRC mechanisms/powering a robot, but I showed up and asked a lot of questions and ended up being the lead for one of the subsystems. You probably won’t end up with quite that much responsibility and in reality I probably shouldn’t have, but there will be ways for you to be helpful during build season at any experience level as long as you’re showing up and trying.
Thank you! I love asking questions here because people are so kind and helpful <3
Me too!
I have encouraged my programming students to be more involved in the electronics of the bot. Work with mechanical on what sensors are present and what can be added to make our programming lives easier. so learning about sensors and motor controllers makes you super useful.
I don’t know how your team handles work allocation but volunteer for tasks. Complete the tasks you are given even if they don’t turn out to be super interesting. If they aren’t allocating interesting things to rookies you may want to ask if you can do paired programming with one of the more senior people working on something interesting. The key to paired programming though it is you are the watcher when the other is typing you have to stay engaged and not drift off. Ask questions or even explain to what the other person is doing. Saying it outloud will allow them to confirm or possibly realize a flaw in what they are doing.
Get used to reading documentation. The WPILIB documentation is very good . Reading documentation is a skill and not everyone is good at it. If you are the person who can find the answers when questions arise you will be considered valuable.
Be careful with how thin you spread yourself. In particular, programming and CAD do not have a lot of overlap. The rabbit hole goes deep for nearly every discipline involved with FRC. Try to map your way through one hole at a time rather than becoming hopelessly lost in several.
There are different kinds of programming in FRC. Some of it is more software development kind of programming like making a scouting app. Other parts are more real-time programming that blends computer science with mechanical and electrical engineering. Narrowing down between these programming areas as a new team member can help you build a foundation more quickly and start making meaningful contributions sooner.
+1 to the comment that mentions learning about sensors if you are working on real-time robot programming. Controlling based on feedback from the robot is much better than flying blind, hoping that the robot is doing what it’s been commanded to do.
Interacting with the users of your programming, whether that is the build team, the drive team, the scout team, or anyone else is a great way to learn about what is working, what is not, and how you can do better at programming. Bridging the gap between disciplines on the team is a great way to become indispensable and critical to the team’s success.
We encourage our programmers to understand how the parts they are programming function and fail so that they are able to ask relevant questions/make knowledgeable comments to the hardware team if there is an issue with say a sensor or swerve pod or any mechanism. Just understanding the error codes that any of the electronics provide is an invaluable resource for anyone on the team to have —> quite often this stops the team going down a rabbit hole😁
The biggest thing I can suggest to any new programmer is to familiarize yourself with the FRC control system both hardware and software wise.
As far as hardware goes, you should be familiar with every electrical component on a typical FRC robot and how it is wired. While it seems like a lot, it’s not as intimidating as it sounds. Plus, being able to recognize wiring issues on a robot is an extremely valuable skill.
Software/firmware wise, familiarize yourself with the roborio imaging tool, radio programming tool, REV hardware client, driver station, pheonix tuner, etc. Knowing how to use these softwares is a huge part of initial robot setup, troubleshooting, and tuning.
How should I learn them?
Try to understand all functions of your robot to a basic level. Power goes: Battery > PDH > Motor controller > motor > pinion > gear > wheel or something similar. Control goes: Xbox controller > Driver station > radio > RoboRIO ( with software) > motor controller > motor > … or something similar. If you can trace power and control signal through out your bot you’ll be much better able to diagnose problems, or come up with fixes, new functions and new designs.
Try to stay engaged as much as possible, you’ll learn the most and have the most fun if you’re proactive. Focus on your main sub-team (software, electrical, or mechanical) when possible, but if there’s nothing going on in your main area help out or shadow someone from another sub-team. Staying engaged doesn’t necessarily mean actively working on something, sometimes watching and learning from others is the best thing to be doing.
Ideally, you would have mentors and experienced students who teach all this either pre-season or on an as-needed basis. Based on one of your posts in another thread, it sounds like your team doesn’t really have mentors, so you’d be down to experienced students.
Ideally also, your team would have internal training references and other reference materials in a library. Many teams accumulate this type of content from years of training or simply documenting what is being done on the team. You might want to inquire about that type of thing with your teammates.
As a do-it-yourself approach, docs are available for all the things mentioned in the post you reference. Search is your friend. However, if you want more of a one-stop-shop for links to docs and public training content, I don’t know anything better than the Spectrum Recommended Reading list.
Get involved when the mechanical group is building a mechanism. Observe how it is supposed to work. Ask how much of it’s function needs to be under program control. Ask what may happen when parts of the physical mechanism and/or the program fails to function correctly.
The hardest thing for rookies is to get comfortable asking questions. If someone asks you to do something and you don’t understand what they’re asking for, or start looking at it and realize you don’t know how, please ask! Don’t spend more than a couple minutes being stuck, time is precious.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.