Code for Team 2052's 2024 robot, Scarab.
Previous code:
-
Drivetrain
Scarab's SDS MK4i swerve drivetrain utilizes our custom swerve library to smoothly drive our Kraken drive and Neo steer setup.
-
RobotState
RobotState.java serves as a central hub for robot-wide variables, such as the current robot pose.
-
AprilTags
Using a dual Orange Pi 5 loaded with PhotonVision and four Arducam OV9281, Scarab continuously polls each camera in parallel. This data is fed into RobotState, where the vision updates are filtered and thrown away if outside the field border or the pose ambiguity is too high. Once filtered, this data is processed by the RobotStateEstimator.
-
RobotStateEstimator
RobotStateEstimator.java utilizes WPILib's SwerveDrivePoseEstimator to combine the odometry and vision updates. While processing the individual vision updates from each camera, we dynamically adjust the vision measurement standard deviations based on how much we trust the tag. Only when both speaker tags are seen do we trust the rotational value of the vision pose.
-
PathPlanner & AutoFactory
This year we decided to try PathPlanner for our autos. Once the paths and autos have been created in the PathPlanner application, we add the autonomous modes to AutoFactory.java, which then is used to select and precompile a chosen auto before each match.