The ausTIN CANs programming team has been working hard this offseason, and we are proud to present the team’s first swerve drive code. This code includes:

Swerve subsystem

  • Base subsystem was referenced off of this repository by 6814.

  • Capable of field-oriented drive and following autonomous trajectories.

  • The most current version of our swerve code is located in the features/swerve-hardware branch.

Operator Interface (OI) class

  • Functional layer that encapsulates all controls from the driver station.

  • Uses a variable control curve system to allow for more precise control of the robot. 

Hardware factory classes

  • Classes that allow for the quick instantiation of hardware objects, constructed with factory methods using a configuration.

  • Support for rev robotics NEO motors in the MotorController.java class.

  • Support for analog encoders in the current version of AbsoluteEncoder.java; to be replaced with CTRE CANEncoder support in the features/swerve-hardware branch.

Battery subsystem

  • Subsystem that tracks battery usage and notifies operators when the battery should be replaced.

  • Written for our 2022 robot code, so the class is located here in that repository.

Auton subsystem

  • Subsystem that simplifies complex tasks into high level actions to be chained together in a sequence to be used of 

  • Allows for easy creation of autonomous routines without the need for comprehensive knowledge of each subsystem

  • Supports the use of both preplanned trajectories and trajectories generated during runtime, using Pathplanner and its library.

All code for this offseason can be found in our github organization