Who We Are
Welcome to 3205’s first build thread! We’re The Patriots, a team of around 40 students from Concord-Carlisle High School in Concord, Massachusetts. Our team has been competing in FRC since 2010, but we’ve grown rapidly in participation, mentors, and resources in the last few years. Our team’s philosophy is heavily centered around student leadership and design: our mentors guide us but never write a single line of code, wire an electrical component, touch a drill, or organize a meeting. This is our first year in Open Alliance, and we hope to provide some insight into our approach to designing and building competitive FRC robots while learning from the other great teams here.
This year we have 4 team captains:
- Sammy Saak (@ssaak) - Chief Engineer
- Colin Balfour (@thebigthree) - Software Lead
- Will Wood (@Wheel) - Mechanical Lead
- Cecilia Hetling (@chetling) - Electrical Lead
Feel free to ping any of us for any questions on our posts. The captains will run our build thread, but we also have four amazing mentors helping behind the scenes.
Open Alliance Contributions
We plan to split up our regular posts into three categories: one for each subgroup (programming, mechanical, and electrical). We’ll rotate between them each week, so roughly one post per subgroup every three weeks. Programming will likely be an exception, and our current goal is to post a programming update every other week.
In addition to the more extensive updates, we’ll post smaller updates more frequently. This might include information we gathered while prototyping/testing ideas mentioned previously, any minor design changes, or updates on more broad full-team activities.
Posts will be written with contributions from everyone on 3205. Within each subgroup, we have small teams working on different projects; each team will be responsible for a write-up on what they’ve been working on. The subgroup lead will then compile and edit those into an update on this thread.
Team Structure & Goals
During the preseason, we’ve been meeting 2x/week for 1.5 hours, plus occasionally an extra day for programming. Entering the season, we’ll meet 5x/week for 2.5 hours, with increased hours as we approach competition. We’ll post a more detailed preseason update later, but for now, here’s a summary of each subgroup’s structure/goals.
Software
Written by Colin Balfour, Captain
Our software is mainly split into two groups: Computer Vision (CV) and Controls, though there is overlap between the two. Controls refers to the Java code running on the RoboRIO––everything that makes the robot go. Computer Vision refers to the Python code running on our coprocessors, processing camera outputs to send information about the robot and its environment to the Controls code. The separation comes inherently from the differences in code structure of robot vs. coprocessor software but also due to the use of Python vs. Java, as many team members are only comfortable (for now😉) with one or the other.
This year, we have very few upperclassmen in software, and a significant amount of time will go into training our large group of new underclassmen, who are all very talented and motivated! This training will primarily be hands-on projects: writing and testing code on last year’s robot and the (new!) swerve base, with a few “lectures” on essential concepts. In addition, I’ll be maintaining/updating a set of training materials and exercises on a public GitHub repository, found here (largely inspired/modified from team 8033’s training materials).
CV Goals:
- Pose estimation/Localization using AprilTags
- Object detection with YOLO
- Use ZED stereo depth camera for pose estimates and 3d point cloud
- Setup processing on Jetson Orin Nano
Controls Goals:
- Swerve Drive (new for us this year)!
- Pose Estimation – goes along with CV’s pose estimation but focuses on combining data from vision with odometry/IMU using filters
- Autonomous OTF (assisted-teleop) and pre-planned (fully-auto) trajectory following
- Improved Structure/Simulation
- Switching to a command-based paradigm
- Utilizing AdvantageKit & AdvantageScope for advanced logging and simulation
Again, there will be a more detailed post on all of this coming soon, but please feel free to ask any questions in the meantime!
Mechanical
Written by Will Wood, Captain
Our mechanical subgroup is primarily focused on designing and building the different mechanisms and drive bases needed for each year’s game. Our preseason goals this year have been to train all of the underclassmen on how to use the tools in our woodshop, use CAD, and the basics of the engineering design process. We make sure to train every member of the team on basic woodshop safety, including how to use a bandsaw and drill press, regardless of which subgroup they are in. The mechanical subgroup members will also learn how to use the metal bandsaw and miter saw since they will use these tools frequently during the season. Once they have completed said training, we use a Google sheet to sign out who has been trained on what tool. All of the underclassmen learned to use OnShape by viewing and following a series of tutorial videos. We posed a design and build challenge for groups of 2-3 students to CAD and animate a prebuilt hydraulic arm.
Our main goal for our upperclassmen is to get the MK4i swerve drive built as quickly as possible to hand off to electrical and software for testing. We assembled our new MK4i swerve modules and designed a basic drivebase to house them. We have been looking into different types of wheels to use for our swerve drive to make it cheaper and increase friction. We have also been making 3D-printed motor covers for the swerve modules and camera mounts that are easily replaceable and cheap.
Goals for Preseason:
- Train all students in basic shop safety
- Train mechanical group members with all the tools in the woodshop
- Familiarize all students with CAD software
- Have co-axial swerve drive ready for testing
- Test viability of different wheel setups for swerve
Goals for the Season:
- Have prototypes built within the first week for software to experiment with
- Have final design built within two weeks of the first competition for rigorous testing
- CAD entire robot before the first competition
Electrical
Written by Cecilia Hetling, Captain
Our electrical group mainly focuses on three things: motors and drive, sensors and cameras for programming, and mechanisms for tasks. This year, we are emphasizing familiarity with different types of motors to have more options during the season, and knowledge of pneumatics, as 2023 was our first venture with them in 10 years.
For this season, we have some upperclassmen with a few years under their belt, as well as some new freshmen and sophomores who have been eager to learn throughout preseason so far. Training has been strongly focused on getting used to the electrical components on the robot and how they are wired together and introducing how the team uses various motors, sensors, and pneumatic components; our goal is that every electrical person can completely assemble a rudimentary electrical board all by themselves. In training so far, we have also covered pneumatic systems, an overview of sensors, and technical skills such as soldering, cutting, and stripping wires. We won’t know the complete layout of the board until the Crescendo challenge is announced and we have made decisions on drive and mechanisms, so for now, we are covering all of our bases to be ready to take on any challenge that comes during the season.
We have also been slowly adding to and editing our Electrical Information Database, which contains tools, sensors, components, pneumatics, and more, found here.
Electrical Goals for Preseason:
- Thorough electrical training for all members to be familiar with primary board wiring and organization, sensors, and motor controllers, as well as a focus on how motors work & their uses
- All members have an initial understanding of pneumatic systems and how they work on the robot
- Have co-axial swerve drive ready for testing
Electrical Goals for the Season:
- Have an easily accessible electrical board, using cable mesh and chain to provide organization.
- Increase communication between mechanical and electrical subgroups.
- Improve RoboRio and network switch consistency by opening up and cleaning components and soldering when connectors (notably, barrel jacks) are unstable.
- Emphasize secure pneumatic wiring to ensure no leaks.