FRC 2881 Lady Cans - 2023 Build Thread

Hello and welcome to the 2023 build thread of FRC team 2881, The Lady Cans! We are honored to be participating in #openalliance this season, and to share our ideas with the FRC community. Our team was founded in 2009, and we currently have around 25 team members. We will actively post photo albums, software, and CAD weekly, along with sharing videos of the prototyping and testing process throughout the build season. We will be competing in Waco during week one and San Antonio during week three.

During the off-season, we pivoted our focus and designed and built a swerve bot with a turret (the complete opposite of our competition robot), as well as an FRC legal mini bot. We traveled to TRI, The Remix, and STEM Gals/NTX to compete with our competition robot and test our new swerve bot.

CAD to our 2022 Robots
Flamboyance -
Swerve Bot -
Mini Bot -


Super excited to see yall (and maybe alliance w/ yall) at Waco again.

Absolutely love Lady Cans! Cant wait to see y’alls progress over the season!
See you at Waco :).

Kickoff weekend has come to a close, and everyone has been very busy designing and prototyping different parts of the robot! After watching the video and reading the manual, all team members began to CAD/draw possible robot ideas, and formulate a needs-wants-wish list. On the second day, everyone began prototyping different intake ideas with any/all available parts laying around the build space. Programmers tested the off-season swerve bot to make adjustments to the code & pathway software, as well as beginning to look at the usage of AprilTags in field navigation.

We have also begun working on a multi-roller floor intake for both cones and cubes (wood prototype & CAD model), as well as a pivoting arm with suction cups/a claw on the end to grab and score game pieces. Photos will be added as time goes on, and as the robot begins to take shape.

Kickoff Photos -


Looks Awesome!
What is the material covering the 1/2 in hex in the videos of the cardboard prototype? Thanks!

We ordered that tubing from McMaster for our 2017 off-season gear pick-up. Can’t find the part number in our order history right now. We’ll take some measurements when we get to the shop tomorrow and try to get a better answer for y’all.

Here’s the tubing we are using for the roller material. It seems to grip the game pieces really well this year.

1 Like

Week 1 Progress:

The CAD team has been working to finish designing the robot in Solidworks, before the manufacturing process begins. They are currently working on the swerve base that will be used, as well as the arm and intake mechanisms. The swerve base has been fully designed, and will be added upon during the coming few days, until the CAD is complete. The arm uses two lead screws to run; one will move the arm up, and the other will move out to extend the arm’s reach. The intake is made of silicone tubing around hex shaft rollers, so that the robot can intake the cone/cube and properly orient it inside the robot. This was the most effective method during intake prototyping, when combined with the silicone rollers. Additionally, there will be a funnel inside of the frame perimeter, to hold the game piece before scoring.

The team has been/are training new people to use the power tools/mill & lathe, but nothing is being manufactured quite yet.

The build team has been testing numerous prototypes this past week, in order to determine the most efficient method of scoring each type of game piece. One idea was to construct a claw with compliance wheels to grab and score the game pieces. This was turned down however, after the build team found a more efficient way to achieve this same goal while prototyping. Instead, the team has decided to use two suction cups towards the end of the arm so that it will carry less weight. In practice, the suction cups were able to hold onto the cube/cone while the robot maneuvers across the field. However, there was an issue with the cube wrinkling from the effects of a vacuum, but that has now been solved. The plan for the intake still involves rollers wrapped in silicone tubing, although slight iterations might be made throughout the build season.

The programming team has been working diligently to program the off-season swerve bot before the swerve modules need to be removed. After testing the trajectory following software on the swerve bot, the programming team decided to set it aside after realizing the program wasn’t working well. This is the first year that the team has used swerve drive for an official FRC competition, so almost everything is being done for the first time. They have mostly been spending time designing different utils and subsystems for the robot code, and mapping out how they will interact with each other. Plus, a small group was focused on making the swerve drive work correctly, and have all wheels moving in the same direction (finally!).

Week 2 Progress:

The CAD team is done with the majority of the robot, although the intake plan was completely redone halfway through the last week. The group of people busy prototyping different ideas took some inspiration for a much better way to accomplish the same task, except more efficiently. So, the intake is currently being completely redone to function similarly to the everybot’s intake. It will be able to pick up both game pieces, and dump them inside the robot for the arm to grab and score. This way, we won’t need to have any part of the intake resting on the floor, to better avoid having it be hit and broken during a match. The plan is to use a four bar linkage, so that the part of the intake with rollers will always stay parallel to the ground.

Since the main parts of the robot haven’t changed, certain pieces of the arm structure are currently being made. Using the mill & lathe, team members are manufacturing parts that will soon become the 2023 robot.

The build team is mainly focused on testing the suction cups attached to the arm, and how to assure the robot will function efficiently during every competition. The build team currently needs to figure out what to preload and score autonomously, since the robot currently can’t double-check that it has a cargo before scoring. However, all members of the build team are split between Build, CAD, Manufacturing, and Prototyping, so not much progress has been made to assemble the final robot quite yet.

After much work, the programming team has the swerve drive working and has moved onto trajectory following and vision tracking. For vision tracking, the team will be using the AprilTags for the first time, so there’s a learning curve. So far, the cameras have been able to recognize the AprilTags and output an estimated position, but there is still a lot of tuning to be done before competition, when the actual robot is up and running. Currently, the plan is to have the robot working with the odometry to get the most accurate position possible during the match. There has also been work done on the subsystems and the basic commands over the past week, as the team has many new people.

Running photo album - sorted by week

Q&A Segment

At almost every competition that the team went to in 2022, many different teams commented on the bright pink coloring of our robot (Flamboyance), and had questions about what we used to achieve that color. Well, the answer is vinyl!

We used vinyl from and vinyl both our polycarbonate and metal parts, and it’s super easy to apply. One of the unsuspected advantages to vinyl over other coloring methods is it is also super easy (and not noticeable) to patch stuff at competition when the robot gets beat up.

For work holding, we roll a piece of tape to hold it to the table. Just slightly wet the face of the part you plan to vinyl with soapy water so you can make slight adjustments as you place the vinyl and make it easier to squeeze out bubbles. Use a card to smooth it down working from one side of the part to the other, peeling off the backing as you go so the vinyl doesn’t stick to other things. After the vinyl is stuck to the part, go back with an x-acto blade and clean up the edges and poke out any holes that are needed. The vinyl won’t be completely stuck to the part until the water evaporates so you are able to work bubbles out using a card, but we have been able to attach it to the robot even when the part is drying. Any small bubbles and patches are virtually unnoticeable on the robot since you are rarely close enough to see them.

We use the fluorescent outdoor vinyl because we are looking for our team color (neon pink), but there are regular colors as well so you should be able to find whatever color you want. We recommend using the outdoor vinyl because it doesn’t fade in the sun as quickly and it sticks in various temperatures and weather better so the robot doesn’t become a sad sticky mess when the robot is in the trailer and it’s over 100°F outside in Texas where we are.

We vinyl cut a silhouette of our robot to put on our trailer, which is parked in the shade, every year in the same pink vinyl we use on our robot (the brighter pink ones in the picture, the muted pink ones are from the company who wrapped our trailer) and they are still holding on well. You can see some fading on the ones from several years ago on one of the mentor’s cars who had the vinyl cutout robots on their car that was parked in the sun. Overall the vinyl is still holding on and hasn’t goo-ed up or started peeling or anything, and our trailer is parked outside all year, so the outdoor vinyl should easily last a season without issues

Pictures of vinyl application -

Week 3 Progress:

The team has finally finished the CAD for our 2023 robot, and the link will be shared soon.

Since the CAD is done, the process of manufacturing parts for this season has begun. As of now, we have a completed climber arm, support structure, and assorted sheet metal parts. Currently, new and existing team members are taking part in a rotation of sorts, so that everyone can learn to use the mill & lathe, along with any other tools not currently in our build space. Under the guidance of our CTO, the team is able to build parts efficiently, and will soon be done manufacturing.

After parts are made, they will be brought directly to the build space and assembled into the final robot. Currently, the assembly of the support structure & arm, along with the electronics mounts has been completed. As parts are finished being machined, they will be added to the final robot. Then, the team will disassemble the off-season swerve bot, so that we can reuse the 4 swerve modules on it.

The programming team has completed the code for the suction part of our arm, and has started to work on code for extending the arm. They have a basic subsystem and commands but more work into automating it still needs to be done. Programmers have also spent some time working on accuracy with the swerve drive, and it’s now able to travel to a certain distance almost exactly. Unfortunately, there is a small issue with path planner that still needs to be worked out in order to get the robot working correctly.

Drive Team
This season’s drive team tryouts were on Sunday (January 29th), and the drive team officially has been chosen. Once the robot can drive, both the driver and manipulator will begin to practice. On some days, the programmers will get the robot to plan autonomous (although that will go relatively quick, since they’ve been planning with the off-season swerve bot while it’s still assembled and drivable), and the rest of the time will belong to drive team, so they can get used to how the robot works/drives before competition.

Week 4 & 5 Progress:

Due to the weather this last week, we’ve lost a bunch of time that could’ve been spent working on the robot. We were unable to continue manufacturing and assembling parts until last Friday (Feb. 3rd), as the ice → fallen tree branches → power outages resulted in a significant delay. So, progress on the robot is a bit behind, but we will manage to make up for lost time eventually.

The CAD team is done with the robot, so here are some screenshots. The CAD file will likely be released with the robot reveal, so that’s all until then.

The team has finally begun to manufacture parts, but there isn’t much left to do. Currently, the team only needs to machine some parts for the buddy balance mechanism. Our robot is also really light, so the team will need to re-machine a solid steel drivetrain to add weight. This change will also lower the center of gravity, to make the robot less top heavy as a whole.

The only parts left to assemble on the robot are the intake and buddy balance mechanisms, which will be done very soon. The intake mounts are already attached, so it will be a quick addition once the parts arrive. The team will also need to vinyl the parts before they are put on the robot (refer to an earlier post for how to do that), because the team learned not to vinyl parts once they are already on the robot last year. However, any scratches to the robot during the season can be patched, which hides any damage really well. The intake will then need to be assembled on the robot, and the electrical components for those parts should be added right after.

The programming team has worked to snub out all of the subsystems and basic commands for the different parts of our robot. As soon as the robot is assembled, they will be able to test every sub-system together. So, since the swerve modules have been taken off of the off-season bot, the programmers are currently working on planning the actions that will need to be done, and the controller layout for the drive team.

Drive Practice
Once our robot is completely assembled, the drive team will discuss with the programmers about who gets the robot each day. We are hoping to have a complete robot by the end of this week, so we should have two weeks to prepare and test autonomous/drive systems.


End of Week 5 Progress → Today

Since our robot is so light, we need to machine new solid steel drivetrain rails to make up for the weight. These parts were made today, and should be assembled on the robot soon.

After the new drive train rails get made, the build team will need to swap them for the current rails, so the programmers can work with the final robot as soon as possible. The build team will also need to put the other buddy-balance mechanism on the robot soon. Each buddy balance arm is also relatively small since it only needs to grab onto our teammates’ bumpers. This way, the robot is able to grab two others, and the whole unit can be centered on the charging station. Additionally, the arm will work with a variety of robots, because all bumpers should be relatively similar to each other.

Buddy Balance -

The programming team has made a lot of progress on the code for our intake, arm, and suction now that they have a robot to test on. Currently, the robot can hold both cones and cubes and move them onto a node. However, more work needs to be made into automating the process but programmers already have a lot of groundwork laid for that. There is a minor issue with our swerve (of course), but it will hopefully get fixed in the upcoming week.

The Programmers and Drive team will meet on Saturday to discuss the controller layout, and talk about what needs to be automated. Initial drive practice will finally begin, and continue until our first competition in Waco. In past years we would have a robot available to be driven around until the final robot was ready, but this year we don’t. However, there will still be enough time to practice with the actual robot, and get used to it before the team goes to competition.

1 Like

Week 6 Progress

Now that the robot is assembled, we have arrived at the troubleshooting phase. After watching the robot move and drive, the team noticed a few problems. After a period of testing, the drive train seems to be occasionally taking a bad reading, and messes up the angle of the wheels because of it. This is causing the robot to occasionally not drive in a straight line, but this issue is relatively simple to fix. However, the build team also noticed that the intake isn’t working correctly, as it’s getting stuck when fully out. So, there are now plans to redesign the intake as a virtual four-bar arm instead. Since we only have about a week and a half left before Waco, the plan is to practice as if we won’t have a separate ground pickup. Then, we will work on the floor pickup mechanism after Week 1, and have it fully functioning for our Week 3 event in San Antonio.

The programming team is hard at work getting the various parts of the robot working correctly. They have made significant progress in automating the arm along with the various safety features to stop our robot from accidentally destroying itself. Programmers have also put some work into calibrating the cameras so the April Tags will give us correct position estimation. The team will soon finish the ‘Buddy Balance’ code and start work on the different autonomous plans.

When the programmers are done, the drive team will begin to practice and get used to the robot. The plan is to practice for as much as we can this last week, because Week 1 is approaching fast. Drive team has also been watching some of the Week 0 events currently happening, to learn more about how the game is played. While waiting, we have also been coming up with strategies to play by, before anyone gets to drive the robot around.

This year, we are working to digitize our scouting to avoid paper trails and to make it easier to organize data. On a match to match basis a member of our scouting team will be assigned to a robot and track everything from points scored to penalties received. This data will then be compiled on a spreadsheet for later organization. Using formulas on this spreadsheet, the team will be able to pull up specific match or team data in order to prepare for upcoming matches & alliance selections.

Final Robot!
We are done assembling almost all of the robot, and will only need to make minor adjustments from here on out. So, here it is!


The robot looks awesome and the pink color scheme looks amazing. Congrats to Team 2881

Week 7 Progress

Due to the issues with our intake, a small subset of the team has been working to find possible solutions for our event in San Antonio. Currently, the intake itself works amazingly, it’s only issue is getting stuck when fully extended. So, we plan to either remake the old one, come up with a completely new design, or just don’t play with a floor pickup at all.

The robot has been fully assembled, and is functioning efficiently. However, the team has now learned that when we make the set screw for the arm, someone needs to check that it won’t become a problem later. While we were testing the arm during practice, the set screw fit perfectly into the diagonal of the inner arm and became stuck. The problem has now been fixed, and it seems like the arm is back to working normally. The team also attached the other buddy-balance arm, and they are both working as expected.

Since the build team was slightly behind because of the ice storm, programmers have been very busy. This is the first year that we will have planned autonomous motion during tele-op, so there is always more work to be done. The team has also spent a ton of time adjusting the automatic scoring and substation intake process during these past few days, to make sure it works efficiently. During testing, we have learned that the robot exceeds expectations regarding its scoring capabilities, even without the floor pickup option currently available. Programmers also made the first autonomous pathway, meaning we can currently score a cone and back up out of the community zone. The next steps are being able to balance the charging station, and possibly creating more autonomous pathways for different areas of the community.

After four days of extensive drive testing, we have been able to find and isolate most problems that have shown up. There were a couple issues with the arm getting stuck, so that still needs to be fixed in code. We have also learned that the drivetrain is very stable when going over the charging station, and can drive onto/over it with little effort. Drive team has also spent some time practicing over the past few days, and focused mainly on scoring as many game pieces as they can during a match.


Drive Train

Overall, the drive train worked amazingly for the majority of the Waco competition. However, there were a few issues that we ran into regarding one swerve module in particular. First, we ended up having to replace a NEO motor before passing inspection, because it was causing some electrical problems. After that, the drive train worked flawlessly (minus a bit of field related packet loss in two of our matches) right up until Finals Match 2. Unfortunately, the wheels seemed to be having an alignment issue because of something software related. This was the first time that the problem couldn’t be solved by any of our built-in solutions, so we were dragging one wheel as a boat anchor across the carpet. The issue seemed random, meaning it didn’t affect the 3rd finals match, and we were back to scoring as usual. This is currently the top priority issue to look at, and will take precedence over almost anything else that needs to be done.


Before Week 1, the team made the decision to compete in Waco without a floor pickup for various reasons. However, now that we have tested the robot as is, the team has decided that we may not need a dedicated floor pickup. The first reason is that when we grab a game piece with the arm, we already have suction. Therefore, there is no need for our manipulator to waste time getting suction, and slightly lower our cycle time. Secondly, the programming required to get the arm out of the way when we are scoring is enough of a challenge by itself. So, the team might decide to change plans in the future, but we definitely won’t have a floor pickup for San Antonio.


During competition, the arm was working almost perfectly every match. However, to increase our efficiency for San Antonio, we plan to switch the NEO 550 that’s driving the telescoping part of the arm for a regular NEO. This will allow the telescoping arm to move much faster, as it will no longer be hitting the current limit (which was put in place to protect the NEO550). Making this change will also lower the time it takes to score, so that we can include more cycles in a match. Other than that, we noticed that the pressure/temperature changes in the Waco venue (weather related) may have caused the arm to shrink. This increased the friction in our telescoping mechanism, which made it more difficult to move and created some problems with the 20 amp current limit. The temporary solution to that was to WD-40 the telescoping part of the arm before each match. So, swapping from the NEO550 to the NEO will let the telescoping arm move as fast as we intended it to originally. We are also planning to attach another camera to the top of the support structure that is holding the arm up, so the driver can better line up when we are getting game pieces from the substations. In addition to that, we will be adding driver feedback lights to both sides of the robot, so our human player will know which game piece to have ready ahead of time.


Considering that using suction as an intake is rather unique, the mechanism worked really well during Waco. We had no issues with picking up or scoring cones whatsoever, but the cubes did sometimes cause problems. So, we ended up choosing to score cones majority of the time, because we were mostly partnered with teams who preferred to score cubes more than cones.


During Waco, we were never given a legitimate reason to use the buddy-balance mechanism during an actual match. It works really well in theory, but using it in a match was not always in our team’s best interests. So, we will iterate on this mechanism, to improve it for our event in San Antonio.


Before San Antonio

There are a few things that will need to be added or changed before we compete in San Antonio, to improve how the robot functions overall. The first problem that needs to be fixed is the drive issue, which is what we worked on for the majority of last night. This is a long process of trial and error currently, but the team is making good progress. The next thing that will need to be worked on is more autonomous pathways, including an automatic balance during the autonomous period. This addition will allow our alliance partners to score more game pieces, since they won’t have to balance. Along with this, we are going to speed up the scoring sequence in both the autonomous period and Tele-op, since the motor will be switched to a regular NEO. This small change will hopefully help us cut down on our cycle times, so we can score more game pieces per match. During the Tele-op portion of the match, the team is going to focus on programming driver/human player feedback lights, and possibly having the remotes rumble when the robot gets suction.

After San Antonio

Anything else that doesn’t get done before San Antonio will be worked on before we go to Houston (for district champs), in addition to anything new that the team wants to add or change.

1 Like


Drive Train

Throughout our competition in San Antonio, the drive train worked near flawlessly. None of the apparent problems that we had in Waco occurred, and the robot was able to continue driving well in every match. The only thing that really needs to be improved is the speed at which we can line up and score, so some changes are going to be added. The programming sub-team would like to make better use of the April Tag cameras, to give the robot the ability to line up with the nodes on the grid. Before, the April Tags provided a guide with which the driver could follow, but now the team can use that information to automate the whole process. Thus, the driver won’t need to line up manually every time the robot is ready to score. Programmers are also going to use the April Tags to make the autonomous sequences much more accurate, so the robot isn’t just relying on our pre-planned pathways. The team is planning to work on as much as possible before DCMP’s, but some additions may need to wait until later (if we do decide to add them).


As a result of the adjustments that the team made to the arm before San Antonio, the arm now moves much faster. By switching the motor running the telescoping arm, the programming sub-team was able to speed up the scoring sequences, which slightly sped up cycle times. The build sub-team is also going to switch the lead screws running both the arm and extension, to make them both move even faster. This change will hopefully allow us to get another game piece (or maybe 2 - although that will mean more programming) in auto, and add to the number of game pieces that we can score during tele-op.


In our later matches at San Antonio, the suction had some issues staying completely on when moving quickly, so we mostly stuck to scoring cones. While we could score cubes, we needed to move slower so we wouldn’t lose suction. We also figured out that sometimes the cube wouldn’t fall into the robot exactly how it was originally planned, and that would make grabbing it slightly tougher. The plan to counter this issue is to add two more suction cups in a diamond pattern, so we have a better shot at getting suction the first time (no matter the game piece), and so we can pick a cube up from multiple orientations. This will also enable the robot to better pick up game pieces up from the ground, and then score high or mid (only from/in the community). Making this change will also give us enough time for a two game piece auto, as it should require less accuracy to grab from the floor.


New Sequences

With the addition of the new suction cups, the programming sub-team will need to run them differently based on the game piece we need. Programmers will therefore need to create the new autonomous sequences, so that we can perfect our scoring and auto-balance capabilities. The team is also going to try a completely new scoring sequence that we will test out during the upcoming week.

Hello where did you get your suction cups and vacuum? I’m wanting to do a similar system on short stack this year.

We ordered our suction cups from McMaster and the Vacuum pumps from Amazon.

Cube suction cup

Cone suction cup

Vacuum Pump


Vacuum pressure sensor

Suction Cups

During the season we tried a variety of sizes, materials and styles and ultimately settled on ones linked above. Our testing showed the material type didn’t make a noticeable difference so we used the Buna-N Rubber because the black color made them more visible. The style (bellows vs flat) was trickier to decide on. The bellows style is more compliant and grabs the game pieces faster but the flat style holds tighter once it is sealed. After lots of testing (and as we started running our arm faster) we observed the bellows style stretching and peeling off of the cone as the arm moved. We used two of each suction cup listed, the two cone suction cups were mounted vertically and the two cube suction cups were mounted horizontally. This layout worked the best during our tests and normally allowed 3 of the 4 suction cups to grab either game piece without too much effort. The suction cups were mounted with a combination of rigid and flexible 3d printed parts to allow them to conform to the shape of the game piece but still return to a consistent location.

Vacuum components

Vacuum pump - We made a custom shaft coupler to adapt the NEO550 output shaft to the crank in the vacuum pump. The coupler gets pressed on the output shaft and fits in the bearing in the crank. We ordered ours from multiple vendors during the season and the internals were similar but different enough that we had to make a different adapter. During our testing we observed that the vacuum pump seemed to lose efficiency above 4000RPM. We ended up using a frequency analyzer app to work out the speed of the motor it came with and confirmed that our vacuum pumps were intended to run around 4000-4500 RPM. We made sure to test all the spares the same way in case they changed the motor they shipped with.

Solenoid - We used this to release the vacuum and quickly drop the game piece when ready to score. We looked for ones that didn’t rely on positive air pressure to change positions.

Vacuum pressure sensor - We used this along with the REV pressure sensor library to monitor our hold on the game piece. This sensor runs the pump to maintain a strong enough hold on the game piece. We also have that data displayed for our drivers so they know when we have a good hold of the game piece.

Vacuum System

Each of the 4 suction cups is its own system so they each have their own vacuum pump, vacuum pressure sensor and solenoid. This approach means that if we don’t get all 4 suction cups sealed on the game piece we don’t lose everything. Once the operator hits the button to start the vacuum pumps, the system looks at the sensor data and runs the vacuum pumps as needed to maintain our target pressure until the operator hits the button to score. We did this to make the system as redundant as possible to prevent dropped game pieces. The system was tuned so that as long as we got one of the 4 suction cups sealed we had enough hold to make it across the field and score the game piece.


Do y’all have a link to the specific pre coiled vacuum tube you used? I’m looking for it online and I’m not having any luck finding the same tube so if you could send me a link it would help a ton.