Swerve done, what's next?

Hii teams,
So right now I’ve finished writing our team’s swerve code, I already implemented pathplanner, and autolign with a limelight, but I wanna keep improving, not only our robot’s code, but my knowledge on FRC programming. So I was wondering, what can I learn next that will improve those both things, and if you know where I can learn it, better.

Thank you so much.


It is great that you have done so well with these programming challenges already. There will always be new things you can learn in programming. I have a bunch of suggestions you can try to work on:

  • Program theoretical mechanisms (just imagine a robot design and program it or program another team’s design) you might use on your team such as an arm, an elevator, a turret, or a shooter (you can program a robot that has a combination of those things). Make the controls as automated as possible (PID control).
  • Try getting a robot simulation working. Ideally get good enough to simulate an entire robot design virtually. This will give you a huge advantage during build season. You will have all errors debugged beforehand allowing you to just tune PIDs and get a perfectly working robot pronto. Robot Simulation — FIRST Robotics Competition documentation
  • Get some sophisticated data logging working. Try using Advantage kit for this: FRC 6328 Mechanical Advantage 2023 Build Thread - #197 by jonahb55
  • Go crazy with automation: FRC 6328 Mechanical Advantage 2023 Build Thread - #179 by jonahb55 6328 has done some awesome stuff with their automated scoring and pickup procedures. Try doing some of this.
  • 319 Has done some cool stuff where they use object detection to track and pickup cubes from the floor. This can be very useful in multi-gamepiece autos (If you want even more of a challenge program your own RPi object tracking script)
  • Program some LEDs. You can try to get a system going that will provide useful driver feedback through LEDs.

You didn’t post your code so it’s hard to comment specifically but essentially every piece of code can be done better. Refactoring the past season’s code is often a summer project for the highly motivated teams during their “coding boot camp.”

You didn’t mention command-based so do that and if already done, do it better with the latest recommendations for coding.

There are nearly a thousand pages of WPILib documentation. Pick something that interests you say filters and experiment with the behavior of all the simple and advanced ones such as the Kalman. There are several good topics in the WPILib docs for advanced programming and advanced controls.

There is risk to using I2C sensors on a roboRIO that many people suggest mitigating with a separate processor. Try that out.


Generally what I like to do in this type of scenario is to see what there is you could do better or have done differently. I recommend watching some of your team’s matches from this year and find out what the slowest part of your cycle is. Then, see what you can do programming wise to improve it. For example, this year I noticed that our elevator movement was a bit slow, which we fixed after our first regional, and our cycle time decreased significantly. Another slow point which we didn’t have enough time to fix was we would sometimes spend an extra 2-3 seconds driving to the human player station at the correct angle and speed.

1 Like

pic: Final 2011 Drivetrain. Need I say more?


I found this to be a truly great list of topics for programmers of all levels ! It’s super helpful that you included examples.

1 Like

Autonomous movement, everything can be faster and more effective. That’s what we have learned.


Uhhh I’ll surely go with those 3 mechanical advantage things, thank you so so much

1 Like