Skip to main content

· 2 min read

Can someone who is not me write a blog post for once? Every time I am out sick for whatever reason no post gets made. i might need to just start adding 'write a blog post' to the list of things to do. Anyway, things that happened today:

  • Distance Sensor Work (Me, Rowan): I spent most of practice working on a distance sensor. This involved soldering a lot of thingas, fighting with CAN errors before learning that the fleeming thing was unplugged, and then Rowan moved everything from the intake to the indexer. Also we accidentally turned on preferences that weren't supposed to be on and had to do some work to fix them.
  • Limelight Work (Xiaohan, Act of Liam): The limelight that broke yesterday is fixed.
  • Lights Work (Rowan, Zach): The first chunk of practice was apparently spent dealing with a github error. By the end of the day the lights were finished.
  • Move 1 Meter (Serena, Davey, Griffin): The 1-meter auto is in progress. Apparently part of the issue was wheel diameter, which was re-measured and now the robot moves almost one meter. It does still consistently undershoot.

I have convinced Rowan to add 'write the blog post' to the list of things to do each day.

· One min read

Hello again. The weather is unreasonably warm for winter in Minnesota, regularly hitting the 40s. I just hope there is snow again. Anyway, things that were done today: Constants List (Me): We now have a list of constants to change. More than half of them are shooter constants. Kraken Adjustment(Rowan, Xiaohan, Zach): We finally have a practice bot with Krakens. As such, we needed to assign all of the motor and cancoder IDs, calculate the offsets, and check if the current PID values still work.
Other Adjustment (Griffin): Griffin spent most of practice on PID work for Moira. This included defining what a meter. Light Work (Davey): The lights are under construction, and are apparently going to be used for signalling this year. Pathplanner Fixes (Rowan): Pathplanner switched its coordinate system on us and we had to very rapidly fix it.

In other news, Captain23 was here today.

· One min read

Apologies for the lack of post on Thursday, both people I requested make a post in my absence forgot. Anyway, things that happened today (in programming):

  • Limelight Work (Me, Xiaohan, Davey, Rowan): We needed to make sure all of the Limelights were competiton ready. This meant making sure every limelight had the apriltag and detector software, even if not every Limelight could do both jobs. We ended up with one apriltag tracker, one detector, and two that could do both. We also figured out the offsets for the limelight currently on the robot.
  • Auto Work (Serena, Rowan, Griffin): A lot of autonomous work of varying kinds was done today. We now have an auto that shoots one note and then gets out of the way, a list of available paths, and the existing autos modified to have the feeder be off at the start and the initial pre-loaded shot to happen.

· 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.