001/************************ PROJECT ZIXI ************************/ 002/* Copyright (c) 2026 StuyPulse Robotics. All rights reserved.*/ 003/* This work is licensed under the terms of the MIT license. */ 004/**************************************************************/ 005package com.stuypulse.robot.subsystems.swerve; 006 007import static org.wpilib.units.Units.Radians; 008import static org.wpilib.units.Units.RadiansPerSecond; 009 010import org.wpilib.math.geometry.Rotation2d; 011import org.wpilib.units.measure.Angle; 012import org.wpilib.units.measure.AngularVelocity; 013 014import org.littletonrobotics.junction.AutoLog; 015 016public interface GyroIO { 017 @AutoLog 018 public static class GyroIOInputs { 019 public boolean connected = false; 020 public Angle yawPosition = Radians.zero(); 021 public AngularVelocity yawVelocityRadPerSec = RadiansPerSecond.zero(); 022 public double[] odometryYawTimestamps = new double[] {}; // double is better for timestamps 023 public Rotation2d[] odometryYawPositions = new Rotation2d[] {}; 024 // rotation2d expected by swerve & other downstreams, would require too much allocation to 025 // be worth it 026 } 027 028 public default void updateInputs(GyroIOInputs inputs) {} 029}