Skip to main content

· 2 min read

Wonder of wonders, horror of horrors, it's a slow day today. The tasks available were either easily completed or out of our hands. But programming did still occur, and here is the list:

  • Climber fix (Me, Rowan): The climber now has an emergancy down button. It's supposed to let us cancel the slow climb command if the alignment misses.
  • Misc Subsystem Fixes (Xiaohan, Serena): There were a few other minor fixes that need to be done. The indexer needed to be switched to a one-motor setup, and the shooter adjusted to use right and left instead of top and bottom motors.
  • Sensor work (Rowan): We now have a sensor that lets the robot tell if something is in front of it.
  • Named Command Work (Me, Rowan): For whatever reason, the named commands in Pathplanner aren't working. Rowan did a bunch of testing to try and figure out where the error was, while I just made a ChiefDelphi account and posted our problem there. Then Rowan found out that our problem might not actually exist, fixed the thing causing the error in the one specific command that just so happened to be the only one we could run, and I deleted the post. (The specific problem was that the command required an intake, which the robot did not have.)
  • Shooter Angle Work (Griffin, Davey, Serena(?)): The bits that aimed the shooter needed to be seperated from the actually shooty bit. They spent several hours trying to refactor everything around the new subsystem division, and then made some aiming commands.
  • Xbox Controller Work (Xiaohan): Xiaohan decided to give our code Xbox controller functionality as well as PS4 controller functionality. I'm not sure why.

I also made a paper airplane.

· 2 min read

We got the limelight kind of working. It only took Act of Liam's help to do it. Anyway, things that happened today:

  • Limelight fixes (Me, Act of Liam [C]): Specifically we got the limelight working with neural vision by downloading the public model, then setting our mode to "detector". Then you go into the "configuration" tab, and upload your tensor flow lite model.
  • Getting a TFlite file (Me, Chris [M]): This was the hardest part. While we had figured out how to get a TFlite file working, that didn't mean we had a TFlite file to work with. The process for doing that included, among other things: Downloading Python to try and install Tensorflow to get the converter; messing with the command line to try and get pip to work with python; Discovering that TFRecord files are not photos; Asking the MPArors for their TFlite file; And accidentally using the wrong file and needing to completely reset the limelight. But we can finally get the limelight to recognize notes.
  • Pathing work (Griffin): Many new paths were made for autopickup, along with a new command to facilitate such.
  • Autoaim work (Serena, Rowan): The math to calculate the speaker angle and aim while moving was completed.
  • Lights Work (Davey): Davey made a design for where the lights should be and looked at the 2023 LED code. The 2022 light code is better IMO.

There was also a party after practice, but that is beyond the scope of this blog.

· 2 min read

Hello all, apologies for the lack of blog post on Tuesday. I left early for slightly personal reasons and no-one thought to make one in my absence. But I am back today, and ready to recount the events of the night:

  • Auto Work (Me, Griffin, Rowan): A lot of auto work was done. I just made two autos and then fought with Github for a while. The other two were making paths until they started working on the sensor instead.
  • Sensor Research (Zach, Griffin, Rowan): Initially this was just researching the minimum range of the planned distance sensor. More specifically, what happened when something got within minimum range. Then it turned out that we would need to download the required vendor libraries onto every single computer. We decided not to use that sensor. (For those in the future who might be looking for distance sensor options, it was the Revlib 2M Distance Sensor.) Then we started working on a new sensor and it's stuff until that broke.
  • More Limelight Work (Serena, Davey, Rowan): We are finally out of limelight hell for the moment. Averaging math was done so now we can have accurate positioning. Neural net stuff can wait.

Es geht. (I'm learning German.)

· 2 min read

Today was a day of sensors, limelights, and pain. Especially the latter, because I have a headache.

  • Indexer Work (Me, Xiaohan):Tthe indexer is the part of the robot responsible for transfering the notes from the intake to the shooter. It now has a subsystem and a mostly functional command.
  • Sensor Conversation (Xiaohan, Rowan): We have determined what sensors we would like on the robot. We want a distance sensor, a Hall Effects sensor, and three limelights.
  • Path Automation (Griffin): The robot now has a variety of paths it can use for activating the amp or climbing.
  • Automatic Climbing (Serena): The climber has been revamped to deal with the fact that one arm of the climber will come into contact with the chain first. This involves a voltage reader.
  • Limelight work (Me, Davey, Zach): This was one very long annoying process. The morning was spent trying to train a neural net to recognise a ring, which kept failing to recognise the difference between a normal note and a high note. After lunch was more attempted training of the limelight before we found a site called Roboflow, which we thought would solve our problem. It did not, as none of the available file types were compatible with limelight. Then it turned out that we were just importing images to train something else, and that either there are two different .vpr files or that the limelight is compatible with Vocaloid. Then the limelight OS needed to be updated. Then we had to spend another hour screwing around with file types to try and get CVS. Then it turned out that Tensorflow (both standard and lite) files don't like getting turned into anything. The day ended without it being done.
  • Autoaim Stuff (Rowan): The autoaim works now.

· One min read

Today the intital driver tryouts occured for the season. They were using Moirai, which has been stripped down to just a drivetrain. I wasn't really involved outside of running batteries down to the gym. Anyway, other things that happened:

  • Intake finishing (Griffin and I): We finished the intake, adding all of the various methods to RobotContainer. In addition, Evan showed us how to make the triggers actually work properly and not throw unsupported exception errors as soon as we turned it on.
  • Limelight work (Xiaohan, Zach, Davey, Griffin, Rowan): We have twin limelight capability now. The plan is to either use one for Apriltag tracking (so the robot knows where it is) and one for a neural net (so it can automatically pick up game peices), or both for Apriltags.
  • Autoaim testing (Rowan, Serena): The autoaim program was going to be tested, but then a drive motor seized up. We are 99% sure it's a motor problem, not a code problem.
  • Angle math (Rowan): Rowan did the math to find the shooter's required angle based on distance.

I need sleep.

· One min read

Hello again. Various things happened today, mostly because we had the robot to work with.

  • Intake work (Me): This was annoying to code. Five motors, multiple potential configurations, design requirements changing MULTIPLE TIMES during production... ugh. This was made marginally easier by not needing a PID loop, but was still pretty difficult. It was also helped when the brush-roller miscommunication stopped.
  • Limelight Work (Xiaohan, Griffin): There was going to be limelight stuff done, but Xiaohan got called away and Griffin didn't have the knowhow.
  • Autoshoot (Serena, Zach): Most of the math is done. In addition, there is a command for rotating the robot with the autoaim.
  • PIXY stuff (Zach): Zach did work with object tracking and a PIXY camera.

So, yeah.

· 2 min read

This was the first Saturday practice of the season, and due to miscommunications and poor memory a bunch of people forgot to bring a lunch today. For those who don't know, while dinner is provided on Tuesdays and Thursdays, on Saturdays you bring your own lunch. Anyway, actual programming things that happened today:

  • Shooter PID (Us): We finished the PID code, and committed it, after struggling with the Smart Dashboard code for a while. As it turns out, RobotContainer is annoying but also made it so we didn't have to spend half an hour making functions that it turns out don't work that way because RobotContainer doesn't have individualised teleop bits.
  • Auto-Fire Math (Serena, Zack, Rowan): Serena worked on and finished the Auto-Aim, theoretically at least, as it has yet to be tested. Zack helped with the math.
  • Limelight Stuff (Rowan, Davey, Zack): Zack worked some on trying to use machine learning combined with the limelights to recognize images the robot sees. Zack also did a lot of research on limelights, image recognition, and the PixyCam. Davey also did things with limelights, but left early.
  • Climber stuff (Us again): We worked on making our second subsystem of the season, a climber. The physical design hasn't quite been finished, but we had enough information to make a sequential command group, and bind it to a button.
  • Swerve Drive(Rowan): Rowan tried to fix this, because it wasn't working. The PID had been wrong, and was actually auto correcting to the worst possible place instead of the best.

To practice on Saturday, you should bring a lunch, for eating and thinking, and eating chips that crunch. But if you should not, feel no despair, for with stores of food from the closet, the mentors will be there.

· One min read

Today's lesson in programming: read the docs first, don't be overconfident, and CANcoders/Cannivores run on 12-volt power. Anyways, things we did today:

  • PID Controlling (Us + Davey): We began adding PID functionality to our shooter, to keep two motors running at the same speed.
  • Moira Work 2 (Xiaohan, ): Moira was still broken from last time, so they worked on fixing it. It turned out that the CAN network was plugged into the wrong thing, and a few other things needed to be fixed.
  • Projectile Math (Zack, Serena and Rowan): They worked on some of the math needed to get the Auto-Aim working, and ended up learning about Ballistic Physics. They also attempted to figure out the formulas needed for the Aim.

Never forget, always remember: Read the docs, or be at practice till September.

· One min read

Welcome to the new season, we will be here a while. For a description of the game or kickoff, please look elsewhere, this is just a documentation of programming affairs. In addition, there is no blog post for the swerve intensive that happened over winter break because I forgot to write one. So, things we did today:

  • Shooter Subsystem (Us): We wrote a shooter subsystem, with the attached commands, constants, and triggers.
  • Moira Work (Xiaohan, Serena): Moira broke in the process of the swerve instensive, so it had to be fixed. The issue was a simple matter of installing the new RoboRio firmware. In addition, the robot was reconfigured to work with two limelights. Note: Moira is currently the test robot for all of our stuff until the new one is built, as it is basically just a swerve chassis with a limelight.
  • Apriltag Work (Davey, Zach, Griffin): New year, new game, new Apriltags. Davey printed them out, while Zach and Griffin started making a map.
  • Intake work (Serena, Zack): They began construction on the intake subsystem. They did not get very far, as both were called away.

That's all for tonight.

· One min read

Today was a safety training day for the team. Teen safety, not shop safety. But work never stops, so here is the list of things done in programming today:

  • New Student Update (Zack, Griffin, Davey, Serena(?)): The new students have code on the Minne Trials robot that functions. They spent a good chunk of the second half driving around said robot. Serena even has a functional auto.
  • 2024 Updating (Me, Rowan): Some of the 2024 WPI and FRC stuff has working betas, so we downloaded them to some of the computers. Currently it is on 2, 4, 5, and 8.
  • Moirai Work (Xiaohan): Moirai has functional LEDs and a limelight.
  • Swerve Work (Rowan and Xiaohan): Rowan tried to get the offsets working on one of the swerve chassis, while Xaiohan worked on code.

This is more items than usual.