Best programming features you've implemented?

My team is trying to work on some new things to implement over the off-season, so I was wondering what some helpful or just cool features, such as higher-level logging, or PathPlanner, you’ve implemented on your robot. I know somebody asked something like this but that was back in 2019 so I thought I’d see if the answer had changed.

4 Likes

Our LED lights that signify our different auto routines and other things. More recently, pathplanning on our new swerve bot.

1 Like

Acceleration Limiting so you don’t tip over. We only fell once all season, and that was flying off the charge station. Several other teams also mentioned that our robot looked really smooth on the field.

1 Like

Maybe not the fanciest, but using multiple sensors and the newer and() or() and not() methods for Triggers to create an automated state-machine-esk setup for indexing and firing balls in Infinite Recharge. When we didn’t have issues with slippage on the back of our U-shaped hopper it worked phenomenally. Bonus it was a great way to demonstrate boolean algebra to the students!

2 Likes

The ConnectorX, a custom board that sits in between the navX and Rio with multi channel addressable led support, pattern support, digital io, i2c pass through, etc. https://github.com/SubZero-Robotics/SubZero-common/blob/main/robot/src/main/cpp/moduledrivers/ConnectorX.cpp

SingleAxisSubsystem, the basis for our arm, extender, and wrist from last year. https://github.com/SubZero-Robotics/SubZero-common/blob/main/robot/src/main/include/subsystems/BaseSingleAxisSubsystem.h

I’m still pretty proud of my original annotation-based logging utility, Oblog, which has now been adapted into not one but two other FRC logging libraries. Metaprogramming is super useful and I hope more teams figure out cool ways to leverage annotations in their code.

As far as robot code goes, while I wasn’t very involved, I think the 2-DOF arm controller that 449 wrote last year is extremely impressive.

1 Like

Had the kids make the arm gyro compensated so you can go over the charge station and the arm doesn’t move (not used in competition)


This custom keypad based on a DIY pi Pico numpad kit.

Auto-align to human player pickup and scoring using PathPlanner’s on-the-fly generation.

Annotation-based logging using a successor to Oblarg’s library that also does DataLog.

Using WPILib’s addressable LEDs instead of REV blinkin so we could send patterns while disabled.

Haven’t put it on our robot yet but (shameless plug) Introducing Choreo: A New Approach to Swerve Trajectories

1 Like

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.