8230 KoiBots | 2024 Build Thread | Open Alliance

Image

Welcome to the KoiBots 2024 Open Alliance build thread!

The KoiBots are extremely excited to be taking part in Open Alliance for the first time during the 2024 season!

Who are the KoiBots?

The KoiBots are a FRC team based out of the Arlington Career Center in Arlington Virginia. While we work out of the Arlington Career Center, all of our students come from the high school program inside the Career Center called Arlington Tech.

Team Structure

We have 44 students, 3 mentors, and student captains for each of the 6 subteams. All of the team’s finances, events, outreach and technical aspects are managed by students.

OA Posting

The members who post will be:

Programming: @JakeS and @CalebOneal07

Mechanical: @Bananajoe_o7

CAD: @Annnaquarius

Electrical: @J_Spitzak

Art/Admin: @Fishhairkid

During build season each subteam will release updates on a weekly-ish basis. After build season the details of each subsystem and the build process will be uploaded in a single post.


Links

19 Likes

I’m excited for another CHS OA team!

Me watching this thread:

21 Likes

I’ve always suspected there was something fishy about you…

5 Likes

Good to see you guys here!

Looking forward to working with y’all again

4 Likes

Preseason Recap

Our preseason has been pretty busy, especially with 50+ students (almost half of which are newbies) to get ready for Crescendo! We’ve also had quite a lot of activity on our non-tech/admin side. We’ve done our Fall Fundraiser, made a sponsorship packet, speedran a Safety Animation Award submission in 72 hours, and gotten a lot of cool merch for our school’s Winter Bazaar.

Newbie Training

We started with a few meetings going over “What is FIRST and FRC?” Then we started general skill lessons! We covered basics such as how to write an email, how to Google search, safety, electrical basics, and some simple CAD. We also assigned them homework of completing 5/7 basic tasks


For the rest of the preseason, we had them break out into their chosen subteam(s) for more specific training. We encouraged them to drift around and explore!

Fall Fundraiser

This is something pretty unique to us! Since our founding year, we’ve run 2 yard work fundraisers, one in the fall, and one in the spring. In 2021 and 2022, over 90% of our income was student-raised through this fundraiser.


Without getting into tedious details, we send our students out in teams of 4 per job, and run our fundraiser just about a month and a half long, aiming for 8 jobs a weekend.

Not only does it supply us funding, we’ve found it’s a very good way of team bonding and giving students good skills (communication, following directions, navigating the public transit systems, etc.). Over the years it’s become synonymous with the phrase “good character development” as a little inside joke.


Sponsorship Packet

We made a sponsorship packet! As cool as our fundraisers are, our team keeps growing faster than our money does, so we’ve been trying to get more grants and sponsorships for the future.

Safety Animation

Did it in 72 hours. Enough said :sunglasses:

Fun meme video, EXTREMELY unserious

Winter Bazaar

Cool merch! Also pretty self-explanatory. ( + we taught newbies about laser cutting!!)



7 Likes

Week 1

Apologies for the late post! We’re still figuring this out, so please bear with us.

Kickoff

Following the game reveal, the team spent some time studying the manual, then broke off into smaller groups to facilitate discussion. Different groups ended up with different ideas and conclusions, and we ended up deciding on a shooter with a pivot in order to score both amp and speaker.

We later realized that the amp was more difficult than originally thought, thanks to the ~4in deep pocket making it hard to shoot directly in, and decided to do some prototyping ourselves to see what we could find.

On Sunday, the team met and created a list of our priorities in order to maximize productive use of our time:

  1. Shooting into the speaker
  2. Ground intake
  3. Shooting into the amp
  4. Driver practice
  5. Auto
  6. Good center of gravity
  7. Climber
  8. Trap

We then spent some time figuring out what we wanted to prototype the following day, as well as autos and field element construction.

Prototyping

We’ll make a full post on prototyping later, but we worked on two mechanisms:

  • A ground intake
  • Shooter with side wheels

And we’re working on a shooter with top wheels, as well as upgrading both to running off of CIMs instead of drills.

Field Elements

We also constructed some of our practice field elements, namely the amp and speaker. We ran out of wood, so we were not able to make the stage as of yet.

Chairgame

We ran a simulation of the game with 6 of our students (including the drive team, to get their opinions). We used an open, carpeted area in our school that was a little smaller than the field, and roughly taped off sections of the field and game elements.

No one got hurt, so we’d consider this a success! We also found out some interesting things strategy-wise, such as the fact that being a shorter bot didn’t give a significant advantage, but being a tall bot among short bots was a significant disadvantage. A ground intake was also incredibly useful.

Swerve

During the offseason, our mechanical and electrical teams constructed our first swerve drive using MAXSwerve modules. We didn’t end up with enough time to finish programming it, so this week some of our programmers worked on getting it running.

After running into issues with image versions on the roboRIO, we ran into a couple of issues regarding encoders, so we decided to test the REV sample code to see if that worked. When running it, one of the 550s responsible for turning the module started smoking and stopped working, most likely due to oscillation.

We replaced the motor and fixed the encoder issue, but we ran into an issue a couple of times with the motor key falling out of the driving NEO and getting bent in the gears. We decided it wasn’t worth the time to fix it then and there on all the modules, and instead we would fix it when we cut down the drivetrain to its final size.

Unfortunately, we were unable to finish it, but it should hopefully get done very soon. You can find the code pinned on our github.

The swerve module covers can be found here, they were a design Ashe modified from team 4795 which were modified by Skiddy4795 from team 111s SpectrumCorners. Thank you to everyone who contributed!

3 Likes

Prototyping recap

Protopipe

We came into this season with a plan to use Protopipe for quickly and easily building complex prototypes, however it didn’t go as planned. The fault with Protopipe came entirely from our end, and started before the build season even began. We printed too few parts and came up short of many components when building prototypes. In addition to that we had no PVC to test on until after kickoff. When we got everything we needed we still faced challenges, nobody on the team had learned to use it before so many just resorted back to plywood instead. We also didn’t realize how important screws were to using Protopipe effectively, causing another hurdle. In the end our prototypes were primarily made with plywood with protopipe used occasionally as structure. In the future giving students experience beforehand will likely help a lot.

Top / Bottom roller shooter

Many teams have tested the practicality of top/bottom roller shooters with a large amount of success. It has been proven that a larger diameter flywheel will increase the accuracy of a shot but how small can the flywheels get? In this test we used 2” compliant wheels attached to 2 cims. We didn’t measure the distance traveled or the accuracy but at full power you can see it went a significant distance. Just to be clear we are probably not going to use 2” wheels, this was just a test that we hadn’t seen anybody try yet and we wanted to test the limits of this design.

Side roller shooter

This side roller shooter was originally made to test how far it would shoot a note if the flywheel didn’t have the space to spin up. This was not something we had seen other teams test so we thought it was worth it to try on our own. However, since many other teams had shown a top/bottom flywheel shooter to be more effective this prototype didn’t have that much of a point in the end. The prototype was also poorly built and didn’t have enough compression to shoot very far.

Miscellaneous prototypes

We also worked on some other prototypes including a intake and 2 versions of the side wheel shooters that used drills for power. One of our shooters used 2 drills each controlling one of two flywheels from either side the other using a powered wheel on only one side.

Electronics

For testing our shooter prototypes we needed a simple way to power our cims while making the whole system as simple as possible, using only unused (and not going to be used) parts, and without code. We achieved this by using old Victors and controlling them via PWM. We generated the PWM signal with a servo tester like this one. Make sure that if you do this setup, skip over the automatic functionality as quickly as possible because that causes the motor to oscillate between full speed forward and backward. This was a useful way to prototype and definitely something we will use in the future.

5 Likes

Week 2

Days off

We didn’t get as much physical work done this week due to only having two in-person days thanks to snow. While we couldn’t meet in person, our CAD, admin, and programming teams met online and made great progress.

Swerve

Due to limited in-person time, we didn’t make much progress in terms of our swerve drive. We cut down the aluminum frame to our final drivetrain size of 25” x 25” and glued the motor keys on, but were unable to CNC the new belly pan, and thus unable to resume testing.

Even without the robot, programming fixed the issue we were having, and implemented the new version of SysId for our drivetrain.

CAD

Bit of a short update, but we’re making lots of progress! Having decided on the superstructure last week, an over the bumper intake with a handoff mechanism going into a shooter, CAD has been working nonstop to figure out geometries and what parts to order (hence the short post :p). This year we’re trying something new with an “alpha bot” (me personally, I’d name it “minnow” -Anna) that we’ll improve upon once we see its flaws in testing. A bigger CAD breakdown will be released sometime around Week 5-6, but for now, you can look at our slightly messy bot in progress over on onshape.

Website

Over the past 2 ½ weeks, some of our members have been working to create a new website for the team. In past years, we’ve used Squarespace to host our website, but this year we’ve pivoted to using Dorik.

This hasn’t exactly been easy, though; we have had to adapt to Dorik and learn on the job. Additionally, since Dorik doesn’t allow real-time collaboration, we had to divide and complete smaller parts while frequently checking in to keep everything working smoothly and make sure no progress was undone. Furthermore, we’ve encountered some restraints with our current Dorik subscription, with some features locked behind paid subscriptions.

Past that, our art team also helped to make the website more aesthetically pleasing. It’s been a great learning experience for everyone involved and will prove a helpful resource in the future.

If you want to see the work in progress webpage, you can find it here.

Programming

Thanks to our CAD team’s progress, our programmers were able to start work on our intake and shooter mechanisms, as well as starting to develop autos.

For autos, we’re considering using a text input to select the autos that would generate an autonomous routine based on which combination of notes we decide to go for in any particular match without having a pregenerated routine for each combination. This will allow us to work with our alliance mates much better in what we predict is going to be a very congested autonomous period.

Additionally, we want to make use of note detection to check if the heavily contested middle notes are still there before we drive up and try to intake them. If it isn’t there, we would simply skip it and move to the next.

6 Likes

Week 3

Swerve

To start this week, we reassembled our swerve drive with a freshly CNC’d belly pan, and resumed work programming. Luckily, we worked our issue with turning, which turned out to be that the encoders were inverted. We then tuned both PIDs, and Swerve was driving around!

CAD

CAD finished up Minnow, our alpha robot (Onshape link here) this week and started working on improving the shooter. We’re currently toying with the idea of switching to a linkage intake, but that’s a project for next week.

Field elements

This week we finished assembling our stage. We have yet to implement the trap, as we deemed the trap to be a lower priority overall. Onto the stage itself, it’s fairly stable and able to hold at least 160 lbs (as shown below).

|391x323.6097426216677

4 Likes

Week 4

Alpha Bot

We worked on assembling our alpha robot (also known as Minnow). We were able to fully assemble the intake and shooter, but were only able to attach the intake. We should be able to attach our shooter and hand the robot off to our programmers and drivers early next week.

CAD did the funny redesign thing

After finishing up CAD for Alpha Bot/Minnow last week, we started looking over the design and seeing where we could improve. Being the intelligent people we are, CAD decided to overhaul the superstructure and switch to an under the bumper concept with a fixed shooter. Next week is gonna be a lot of fun without sleep :smiley:

Programming

This week, programming did a few things. We worked on getting note detection online, and have it up and running on our orange pi 5, using a OV9782 camera. We still need to make the robot side of it though.

We also made some continued progress on preparing code to test, such as elevator and auto alignment, as well as beginning work on autos.

Art/Admin

The new website is finally up, thanks to the hard work of some of our newbies! We’re still working on last-minute updates and minor adjustments (uniform colors, text and syntax, etc.) but for the most part it’s finished. Visit us over at koibots.com! Please ignore the fact that mobile doesn’t work, we’re working on fixing that.

We’ve also opened a Redbubble shop with lots of cool designs by our students, so please check that out!

5 Likes

Week 5

Happy Lunar New Year! Work doesn’t stop just because it’s a holiday (and also the school doesn’t give us time off).

CAD

Bot redesign

Starting on Monday we completely redesigned the robot. We went with a full-width, under the bumper intake, and a fixed shooter with 4” flywheels. A more detailed overview should be coming soon, a subsystem by subsystem explanation will come out after the season is over.

Mechanical

With the bot redesign, we have been building the new intake to finalize/confirm the dimensions for the redesigned bot. We discovered a couple of tolerance issues with the intake and indexer and have adjusted the CAD accordingly. This issue set us back a day and we hope to get that finished soon. We have also begun building the thrifty bot elevator system according to our dimensions and will be attaching it to the robot as soon as it’s completed.

Programming

This week was mainly focused on cleaning up and finalizing our code for testing. We merged all our subsystems into a Dev branch, and did some general cleanup, along with some basic commands. Progress was also made on note detection and autos.

We also had a small group construct a macro coaster to assist our drivers this season. This gives them more options for control of our robot beyond just the Xbox controllers we’ve used in years past.

6 Likes

AnglerFish CAD Overview

AnglerFish is the most complicated robot we have ever attempted, our team has miraculously never built an arm or a elevator before, and this is our first year using swerve.

Drivetrain

Our drivebase is 25”x25” but we have a 4” bumper extension to accommodate our UTB intake. We use REV MAXSwerve modules and are looking into using the 111 TPU wheels. Our electronics are mounted on a polycarbonate bellypan, with our RoboRio mounted underneath.

Intake

During our redesign we switched to a UTB intake, this design was greatly inspired by 6328s design. Our design goals of a full width intake with as minimal of a bumper extension as possible led us to their design.

Indexer/Shooter

Our intake hands off to the indexer that passes the note through the elevator to our shooter. In its current revision the shooter is fixed. The indexer is driven by a 550 and the roller direction is reversed with 2 compliant wheels, a page taken from 8592s 2023 robot. Our top-bottom shooter is driven by 2 neos and the right and left sides are driven independently. We used 4” stealth wheels primarily because 3” stealth wheels were not in stock and the ease of compression likely meant the shooter would be more accurate. The design was inspired by prototypes from 6328 and 3255.

Elevator/Plopper

Our elevator is driven by 2 neos on a 25:1 reduction which was enough to lift the entire weight of the robot during the climb and move the plopper up and down during normal operation. The elevator uses the thrifty elevator kit. Our “plopper” is driven by a third neo, it picks up from the shooter and “plops” the note in the amp. The 2” compliant wheels are driven by a 550.

Roller design

For our intake and indexer we used a live axle roller with hex shaft driving PVC surrounded in gaffer tape. The PVC is driven by these adapters and using this glue.

Likely changes

Everything could theoretically change, but here are some that are extremely likely:

  • The climber hooks are the most likely to change, they are an inefficient design as proved by FEA and are kinda ugly, an important concern as we care a lot about aesthetics on the KoiBots.

  • The intake is a geometry that is untested and likely to fail, fortunately it is the first thing being built so there is a large amount of room for iteration.

  • The plopper is also a sketchy design, a possible change to the geometry is to use only one side of powered rollers.

  • The shooter is currently fixed, but that will hopefully change after Week 1, in the meantime easing the handoff angle could help to improve accuracy, but we still don’t know whether or not this will be a problem until it gets built.

8 Likes

Week 6 & 7

Week 6 Recap

This past week and weekend were used to assemble the robot. Over the weekdays, we went through multiple iterations of our intake, and over the weekend we assembled the whole robot. Our school district closed weekend activities due what turned out to be a tiny amount of snow, so we prepared by CNCing what we needed to and packing everything into cars to take home for the weekend.

Saturday

We were working out of a student’s house but had to work outside due to limited space. It turned out that it was so cold the bearings shrank and wouldn’t fit any hex shafts. The day finished with minimal progress so we decided to split off the plopper and elevator subsystems to be assembled individually before meeting again on Sunday.

Sunday

We moved to an indoor, heated shop where we assembled most of the robot. On Monday, a quick & dirty electrical system was put in place, and the final bits of assembly were completed.

Programing

As mechanical built the bot, programming worked on finalizing code for testing. We created the rest of our commands; notably an auto-aligning command for notes, amp, stage, and shooting. We also worked on creating autos, setting up the framework and making a couple basic ones.

On Monday, we got the bot for a bit, but due to mechanical issues we were only able to tune the controllers on the intake and indexer.

Week 7 Recap

Because of the aforementioned mechanical issues, we had to spend a few days cleaning up the mess that was the robot built in a weekend.

On Friday, once mechanical & electrical had done their thing, we tested the shooter but realized that the note was flipping since it hit the bottom flywheels first. That went back to mechanical to try and fix by making the top spin slightly faster. That didn’t work, and after a bunch of tests we figured out that the note was just bending way too fast, leading to it flipping.

To fix it, CAD went ahead and changed the indexer to be flat, and added two rollers to help guide the note into the speaker. That got CNC’d and attached on Saturday, along with a polycarb (rather than our previous acrylic) intake.

Additionally, we also attempted a climb on Saturday, but (exactly as expected) the acrylic climbers broke. We did manage to fully get off the ground before they did though.

Since we didn’t get everything wrapped up during the meeting Saturday for our Week 0 event in Glenelg, a mechanical person took the robot home in order to finish assembly, then handed it off to one of our programmers, who wired it back up and started to work on tuning.

An issue we ran into that we haven’t managed to fix yet is that if we multiply the velocity readings of the encoders, even just to account for the cycles per second, every value will go to zero. This might be in part because we plugged our shooter’s through bores into the RIO to bypass the sparkmax latency. Doesn’t matter if we use the built-in setDistancePerPulse(), or just multiply the double, everything is 0. If we can’t figure out a solution, we’ll just have the units for the shooter be out of whack and call it a day.

Glenelg

Full recap post coming soon (hopefully tomorrow).

Our Week 0 in Glenelg was fairly productive, fixing a couple of issues and tuning some things. We did spend a lot of time on certain problems (will be covered later in recap), but we did manage to squeeze our way into the last match of the day.

During said match, because we were in a rush, we were running some untested code on the robot, which made the controls incorrect. Additionally, since we didn’t have time to properly tune the elevator, we were just setting the motor speed and stopping based on time or current. Unfortunately, due to the 25:1 gearboxes on our motors, we think in the time where it had hit the hard stop but not stopped moving, the motors put too much pressure on the elevator pins, shearing all three off on one side and 1 and ½ on the other.

2 Likes

Week 0 at Glenelg!

Welcome to our (very very very late) Glenelg recap post.

Troubleshooting

At Glenelg we completed the assembly for this iteration of our robot. We attached the shooter and optimized the belt tension of our intake. Later, once all the mechanical work had been completed, we completed the electrical work for the robot. Then after the physical work had been completed, we began testing the code for the robot.

While programming was running tests, we encountered that our shooter motors were stalling for no apparent reason. After debating for a while on what could be the issue, we called over the CSA and figured out that it was a combination of sticky faults and software issues. Eventually we ended our day with testing systems.

Human Player Practice

Two of our team members got some human player practice in.

Match 1 (and only)

We managed to squeeze into the last practice match of the day, which was pretty great until it wasn’t. Our bot’s performance was best described as crunchy, and we managed to shear off 4 ½ out of 6 pins holding the elevator in place.

We were also in a rush and running untested code, so our drivers had to figure out some incorrect controls.

Volunteers

One of our team members volunteered during the day as field reset (you may have seen her with the bright pink fish in her hair). We also had several team members also stay to help with teardown.

Thank you to all the volunteers who made this event possible, especially our hosts 888. We’re extremely grateful for this opportunity, and all the work you put into it!

2 Likes

Week 8 Build Season & Week 1 Competition at Blacksburg

Week 8

We spent the time on Monday & Tuesday to replace our acrylic parts with polycarbonate ones, which took a lengthy amount of time, but was necessary. Additionally, we added extra polycarbonate panels to the side so that our bumper had enough contact there (nicknamed the “legality panels”).

Once mechanical finished reassembly, programming got the bot on Tuesday night. Immediately an issue made itself known where after around 30 seconds or so, the RSL would flash and the sparkmaxes would begin to flash very quickly orange.

We tried replacing the RIO, but it didn’t work, and when we noticed that all the breakers were reporting that they tripped, we went ahead and replaced the PDH. That also didn’t work, and it turned out all of this was because of a simple can wire being flipped.

Thanks to this issue spanning multiple days, we had to take the bot home to a team member’s house to work on it. We managed to get a lot done, but not quite enough.

Blacksburg

Saturday

We showed up to the event with an untuned shooter and half working drivetrain. We managed to mostly fix the drivetrain during load in and before matches, but not much else. We began as a defense bot, with the intention of playing offense as things were fixed.

Thanks to our amazing driver, defense actually worked out fairly well, often being a major thorn in other teams’ side. Unfortunately, we ran into a strange issue where the direction of our field-oriented drive would change mid-match, for seemingly no reason. We haven’t yet pinpointed the exact cause of the issue.

Another issue we had was that when the robot came back from one of its first matches, the bar across our UTB intake had split in two, also breaking the wood on our bumper. We replaced it with a 2x1 max tube, but that made our intake unusable.

Rather than attempt to find a workaround, we just stuck with it for time’s sake, and pivoted to a fully defense-climb bot.

Sunday

Unfortunately for us, matches were running far behind on Sunday, so they moved up the starting time to compensate. This gave us no time to test our elevator for climbing, so we had to abandon that too.

A final bit of salt in the wound was that a wire came out during our final match, leading to only half of our swerve modules working, and us having to limp and drag ourselves over to the stage zone before disabling.

At alliance selections, we did not end up getting picked. But, since there were only 25 teams at the event, we were the one and only backup. After the first match, Alliance 1 came over to our pit with the head referee and signed us onto their alliance. We played one match, missed the next to try and put on our nice TPU wheels, which didn’t end up working, then played all the way to finals, where we won the event, gaining our first blue banner!

|682.3414634146342x499.4254665030621
This is our first ever win, and we’re super grateful for team 9496 LYNK (our amazing alliance captains and rookies from North Carolina), 449 the Blair Robot Project, and 1885 Comet Robotics. It was a blast playing with you!

|624x468.54242933601
Thank you also to team 401 Copperhead Robotics for hosting the event, and 1629 GaCo, 6802 Mean Caimans, and 9033 the Ocebots for all their help throughout the weekend.

Awards

Winning Alliance (first time!)

Gracious Professionalism Award (also a first for us!)

Play of the Day (unofficial award sponsored by REV)

Woodie Flowers Semi-Finalist

We have also posted our Safety Animation Award Submission(https://www.youtube.com/watch?v=TNzUPHyOLGM)! We didn’t win, but it was a lot of fun.

Issues we had

There was a laundry list of issues and lessons learned at VABLA, but here’s the highlights:

  • Burning through swerve wheels like crazy (we burned 7+ wheels down to the plastic)
  • Intake bar needs reinforcement (the 2x1 we put on after the 1x1 broke ended up severely bent)
  • Swerve module gears breaking down
  • Breaker not being visible enough
  • RSL coming out
  • Shooter wobbling like crazy
6 Likes