From bb8df8e7450477a9e34232ad921b1e4e1f10cbc9 Mon Sep 17 00:00:00 2001 From: NolanKnight Date: Mon, 5 Jan 2026 11:55:03 -0800 Subject: [PATCH 1/4] turret subsystem --- .../com/team973/frc2025/shared/RobotInfo.java | 35 +++++ .../frc2025/subsystems/turret/Turret.java | 125 ++++++++++++++++++ .../frc2025/subsystems/turret/TurretIO.java | 63 +++++++++ .../frc2025/subsystems/turret/TurretSim.java | 57 ++++++++ .../subsystems/turret/TurretStates.java | 63 +++++++++ 5 files changed, 343 insertions(+) create mode 100644 src/main/java/com/team973/frc2025/subsystems/turret/Turret.java create mode 100644 src/main/java/com/team973/frc2025/subsystems/turret/TurretIO.java create mode 100644 src/main/java/com/team973/frc2025/subsystems/turret/TurretSim.java create mode 100644 src/main/java/com/team973/frc2025/subsystems/turret/TurretStates.java diff --git a/src/main/java/com/team973/frc2025/shared/RobotInfo.java b/src/main/java/com/team973/frc2025/shared/RobotInfo.java index ed18f58..7ed43e6 100644 --- a/src/main/java/com/team973/frc2025/shared/RobotInfo.java +++ b/src/main/java/com/team973/frc2025/shared/RobotInfo.java @@ -18,6 +18,41 @@ public class RobotInfo { public static final DriveInfo DRIVE_INFO = new DriveInfo(); + public static final TurretInfo TURRET_INFO = new TurretInfo(); + + public static class TurretInfo { + public final int MOTOR_ID = 20; + + public final double MOTOR_GEAR_RATIO = 0.0; + + public final double RADIUS_METERS = 0.2; + + public final double TURRET_KS = 0.0; + public final double TURRET_KV = 0.0; + public final double TURRET_KA = 0.0; + public final double TURRET_KP = 0.0; + public final double TURRET_KI = 0.0; + public final double TURRET_KD = 0.0; + + public final double TURRET_MOTION_MAGIC_CRUISE_VELOCITY = 0.0; + public final double TURRET_MOTION_MAGIC_ACCELERATION = 0.0; + public final double TURRET_MOTION_MAGIC_JERK = 0.0; + + public final double TURRET_VOLTAGE_CLOSED_LOOP_RAMP_PERIOD = 0.0; + + public final double STATOR_CURRENT_LIMIT = 60.0; + public final double SUPPLY_CURRENT_LIMIT = 40.0; + + public final double PEAK_FORWARD_VOLTAGE = 12.0; + public final double PEAK_REVERSE_VOLTAGE = -12.0; + + public final double MANUAL_INPUT_TO_VOLTS = 12.0; + + public final double PRESET_ONE = 0.0; + public final double PRESET_TWO = 90.0; + public final double PRESET_THREE = -150.0; + } + public static class DriveInfo { public final int STATUS_SIGNAL_FREQUENCY = 200; diff --git a/src/main/java/com/team973/frc2025/subsystems/turret/Turret.java b/src/main/java/com/team973/frc2025/subsystems/turret/Turret.java new file mode 100644 index 0000000..80b73b6 --- /dev/null +++ b/src/main/java/com/team973/frc2025/subsystems/turret/Turret.java @@ -0,0 +1,125 @@ +package com.team973.frc2025.subsystems.turret; + +import com.ctre.phoenix6.configs.TalonFXConfiguration; +import com.ctre.phoenix6.signals.InvertedValue; +import com.ctre.phoenix6.signals.NeutralModeValue; +import com.team973.frc2025.shared.RobotInfo; +import com.team973.lib.devices.GreyTalonFX; +import com.team973.lib.util.Logger; +import edu.wpi.first.math.geometry.Pose3d; +import edu.wpi.first.math.geometry.Rotation3d; +import edu.wpi.first.math.geometry.Translation3d; + +public class Turret extends TurretIO { + protected static final RobotInfo.TurretInfo m_turretInfo = RobotInfo.TURRET_INFO; + + private final Logger m_logger; + + protected final GreyTalonFX m_motor; + + private double m_targetPostionDeg; + private double m_manualInput; + + public Turret(Logger logger) { + m_logger = logger; + m_motor = + new GreyTalonFX( + m_turretInfo.MOTOR_ID, RobotInfo.CANIVORE_CANBUS, m_logger.subLogger("motorRight")); + + TalonFXConfiguration motorConfig = new TalonFXConfiguration(); + + motorConfig.MotorOutput.Inverted = InvertedValue.CounterClockwise_Positive; + + motorConfig.Slot0.kS = m_turretInfo.TURRET_KS; + motorConfig.Slot0.kV = m_turretInfo.TURRET_KV; + motorConfig.Slot0.kA = m_turretInfo.TURRET_KA; + motorConfig.Slot0.kP = m_turretInfo.TURRET_KP; + motorConfig.Slot0.kI = m_turretInfo.TURRET_KI; + motorConfig.Slot0.kD = m_turretInfo.TURRET_KD; + + motorConfig.MotionMagic.MotionMagicCruiseVelocity = + m_turretInfo.TURRET_MOTION_MAGIC_CRUISE_VELOCITY; + motorConfig.MotionMagic.MotionMagicAcceleration = m_turretInfo.TURRET_MOTION_MAGIC_ACCELERATION; + motorConfig.MotionMagic.MotionMagicJerk = m_turretInfo.TURRET_MOTION_MAGIC_JERK; + + motorConfig.ClosedLoopRamps.VoltageClosedLoopRampPeriod = + m_turretInfo.TURRET_VOLTAGE_CLOSED_LOOP_RAMP_PERIOD; + + motorConfig.MotorOutput.NeutralMode = NeutralModeValue.Brake; + + motorConfig.CurrentLimits.StatorCurrentLimit = m_turretInfo.STATOR_CURRENT_LIMIT; + motorConfig.CurrentLimits.StatorCurrentLimitEnable = true; + motorConfig.CurrentLimits.SupplyCurrentLimit = m_turretInfo.SUPPLY_CURRENT_LIMIT; + motorConfig.CurrentLimits.SupplyCurrentLimitEnable = true; + + motorConfig.Voltage.PeakForwardVoltage = m_turretInfo.PEAK_FORWARD_VOLTAGE; + motorConfig.Voltage.PeakReverseVoltage = m_turretInfo.PEAK_REVERSE_VOLTAGE; + + m_motor.setConfig(motorConfig); + m_motor.setPosition(0.0); + + m_targetPostionDeg = Preset.One.getPositionDeg(); + m_manualInput = 0.0; + } + + @Override + public Pose3d getPose() { + return new Pose3d( + new Translation3d(), + new Rotation3d( + 0, 0, Math.toRadians(motorRotationsToDeg(m_motor.getPosition().getValueAsDouble())))); + } + + @Override + public GreyTalonFX getMotor() { + return m_motor; + } + + public double degToMotorRotations(double deg) { + return deg / m_turretInfo.MOTOR_GEAR_RATIO; + } + + private double motorRotationsToDeg(double motorPostion) { + return motorPostion * m_turretInfo.MOTOR_GEAR_RATIO; + } + + @Override + public void setTargetPreset(Preset preset) { + m_targetPostionDeg = preset.getPositionDeg(); + setState(State.ClosedLoop); + } + + @Override + public void setManualInput(double input) { + m_manualInput = input; + } + + @Override + public double getTargetPositionMotorRot() { + return degToMotorRotations(m_targetPostionDeg); + } + + @Override + public double getManualInput() { + return m_manualInput; + } + + @Override + public void syncSensors() {} + + @Override + public void log() { + double motorRot = m_motor.getPosition().getValueAsDouble(); + + m_motor.log(); + + m_logger.log("currentPostionDeg", motorRotationsToDeg(motorRot)); + m_logger.log("targetPostionDeg", m_targetPostionDeg); + m_logger.log("manualInput", m_manualInput); + + m_logger.log("state", getState().toString()); + } + + @Override + public void reset() {} +} diff --git a/src/main/java/com/team973/frc2025/subsystems/turret/TurretIO.java b/src/main/java/com/team973/frc2025/subsystems/turret/TurretIO.java new file mode 100644 index 0000000..7a860e0 --- /dev/null +++ b/src/main/java/com/team973/frc2025/subsystems/turret/TurretIO.java @@ -0,0 +1,63 @@ +package com.team973.frc2025.subsystems.turret; + +import com.team973.frc2025.shared.RobotInfo; +import com.team973.lib.devices.GreyTalonFX; +import com.team973.lib.util.StateMap; +import com.team973.lib.util.Subsystem; +import edu.wpi.first.math.geometry.Pose3d; + +public abstract class TurretIO extends Subsystem { + private final StateMap m_stateMap; + + protected static final RobotInfo.TurretInfo m_turretInfo = RobotInfo.TURRET_INFO; + + public enum State { + ClosedLoop, + Manual, + Off + } + + public enum Preset { + One(m_turretInfo.PRESET_ONE), + Two(m_turretInfo.PRESET_TWO), + Three(m_turretInfo.PRESET_THREE); + + private final double m_positionDeg; + + private Preset(double positionDeg) { + m_positionDeg = positionDeg; + } + + public double getPositionDeg() { + return m_positionDeg; + } + } + + @SuppressWarnings("unchecked") + public TurretIO() { + super(State.Off); + + m_stateMap = + new StateMap<>( + State.class, + new StateMap.Entry<>(State.ClosedLoop, new TurretStates.ClosedLoop(this)), + new StateMap.Entry<>(State.Manual, new TurretStates.Manual(this)), + new StateMap.Entry<>(State.Off, new TurretStates.Off(this))); + } + + public StateMap getStateMap() { + return m_stateMap; + } + + public abstract Pose3d getPose(); + + public abstract GreyTalonFX getMotor(); + + public abstract void setTargetPreset(Preset preset); + + public abstract void setManualInput(double volts); + + public abstract double getTargetPositionMotorRot(); + + public abstract double getManualInput(); +} diff --git a/src/main/java/com/team973/frc2025/subsystems/turret/TurretSim.java b/src/main/java/com/team973/frc2025/subsystems/turret/TurretSim.java new file mode 100644 index 0000000..cd2d4ed --- /dev/null +++ b/src/main/java/com/team973/frc2025/subsystems/turret/TurretSim.java @@ -0,0 +1,57 @@ +package com.team973.frc2025.subsystems.turret; + +import com.ctre.phoenix6.sim.TalonFXSimState; +import com.team973.lib.util.Logger; +import edu.wpi.first.math.geometry.Pose3d; +import edu.wpi.first.math.geometry.Rotation3d; +import edu.wpi.first.math.geometry.Translation3d; +import edu.wpi.first.math.system.plant.DCMotor; +import edu.wpi.first.wpilibj.simulation.SingleJointedArmSim; + +public class TurretSim extends Turret { + private final SingleJointedArmSim m_sim; + private final TalonFXSimState m_motorSimState; + + private double m_lastPoseMeters; + + public TurretSim(Logger logger) { + super(logger); + + m_sim = + new SingleJointedArmSim( + DCMotor.getKrakenX60(1), + 1.0 / m_turretInfo.MOTOR_GEAR_RATIO, + 0.1, + m_turretInfo.RADIUS_METERS, + Math.toRadians(-165.0), + Math.toRadians(165.0), + false, + Math.toRadians(0.0)); + + m_motorSimState = m_motor.getSimState(); + m_lastPoseMeters = m_sim.getAngleRads(); + } + + @Override + public Pose3d getPose() { + return new Pose3d(new Translation3d(), new Rotation3d(0, 0, m_sim.getAngleRads())); + } + + @Override + public void syncSensors() { + m_motorSimState.addRotorPosition( + (m_sim.getAngleRads() - m_lastPoseMeters) / m_turretInfo.MOTOR_GEAR_RATIO); + m_lastPoseMeters = m_sim.getAngleRads(); + + super.syncSensors(); + } + + @Override + public void update() { + super.update(); + + m_sim.setInputVoltage(m_motorSimState.getMotorVoltage()); + + m_sim.update(0.02); + } +} diff --git a/src/main/java/com/team973/frc2025/subsystems/turret/TurretStates.java b/src/main/java/com/team973/frc2025/subsystems/turret/TurretStates.java new file mode 100644 index 0000000..324e713 --- /dev/null +++ b/src/main/java/com/team973/frc2025/subsystems/turret/TurretStates.java @@ -0,0 +1,63 @@ +package com.team973.frc2025.subsystems.turret; + +import com.team973.frc2025.shared.RobotInfo; +import com.team973.lib.devices.GreyTalonFX.ControlMode; +import com.team973.lib.util.SubsystemState; + +public class TurretStates { + private abstract static class TurretState implements SubsystemState { + protected final TurretIO m_turret; + + private TurretState(TurretIO turret) { + m_turret = turret; + } + } + + public static class ClosedLoop extends TurretState { + public ClosedLoop(TurretIO turret) { + super(turret); + } + + public void init() {} + + public void run() { + m_turret + .getMotor() + .setControl(ControlMode.MotionMagicVoltage, m_turret.getTargetPositionMotorRot()); + } + + public void exit() {} + } + + public static class Manual extends TurretState { + public Manual(TurretIO turret) { + super(turret); + } + + public void init() {} + + public void run() { + m_turret + .getMotor() + .setControl( + ControlMode.VoltageOut, + m_turret.getManualInput() * RobotInfo.TURRET_INFO.MANUAL_INPUT_TO_VOLTS); + } + + public void exit() {} + } + + public static class Off extends TurretState { + public Off(TurretIO turret) { + super(turret); + } + + public void init() {} + + public void run() { + m_turret.getMotor().setControl(ControlMode.DutyCycleOut, 0); + } + + public void exit() {} + } +} From a3ab20651787d7b6f9679c8853160e622c5d2970 Mon Sep 17 00:00:00 2001 From: NolanKnight Date: Mon, 5 Jan 2026 11:55:16 -0800 Subject: [PATCH 2/4] turret controls --- src/main/java/com/team973/frc2025/Robot.java | 20 +++++++++++++++++++ .../team973/lib/util/SubsystemManager.java | 8 +++++++- .../lib/util/SubsystemManagerReal.java | 9 +++++++++ .../team973/lib/util/SubsystemManagerSim.java | 9 +++++++++ 4 files changed, 45 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/team973/frc2025/Robot.java b/src/main/java/com/team973/frc2025/Robot.java index 04ee4c4..0cacacc 100644 --- a/src/main/java/com/team973/frc2025/Robot.java +++ b/src/main/java/com/team973/frc2025/Robot.java @@ -5,6 +5,7 @@ package com.team973.frc2025; import com.team973.frc2025.subsystems.DriveController; +import com.team973.frc2025.subsystems.turret.TurretIO; import com.team973.lib.devices.GreyPigeonIO; import com.team973.lib.util.AllianceCache; import com.team973.lib.util.Joystick; @@ -21,25 +22,32 @@ public class Robot extends TimedRobot { private final GreyPigeonIO m_pigeon = m_subsystemManager.getPigeon(); private final DriveController m_driveController = m_subsystemManager.getDriveController(); + private final TurretIO m_turret = m_subsystemManager.getTurret(); private final Joystick m_driverStick = new Joystick(0, Joystick.Type.XboxController, m_logger.subLogger("driverStick")); + private final Joystick m_coDriverStick = + new Joystick(1, Joystick.Type.XboxController, m_logger.subLogger("coDriverStick")); private void syncSensors() { m_driveController.syncSensors(); + m_turret.syncSensors(); } private void updateSubsystems() { m_driveController.update(); + m_turret.update(); } private void resetSubsystems() { m_driveController.reset(); + m_turret.reset(); } private void log() { m_subsystemManager.log(); m_driveController.log(); + m_turret.log(); } private void updateJoysticks() { @@ -95,6 +103,18 @@ public void teleopPeriodic() { allianceScalar * m_driverStick.getLeftXAxis() * 0.7, m_driverStick.getRightXAxis() * 0.8); + if (m_coDriverStick.getAButtonPressed()) { + m_turret.setTargetPreset(TurretIO.Preset.One); + } else if (m_coDriverStick.getBButtonPressed()) { + m_turret.setTargetPreset(TurretIO.Preset.Two); + } else if (m_coDriverStick.getXButtonPressed()) { + m_turret.setTargetPreset(TurretIO.Preset.Three); + } else if (m_coDriverStick.getYButtonPressed()) { + m_turret.setState(TurretIO.State.Manual); + } + + m_turret.setManualInput(m_coDriverStick.getLeftYAxis()); + updateSubsystems(); } diff --git a/src/main/java/com/team973/lib/util/SubsystemManager.java b/src/main/java/com/team973/lib/util/SubsystemManager.java index 16ef22e..287c5f4 100644 --- a/src/main/java/com/team973/lib/util/SubsystemManager.java +++ b/src/main/java/com/team973/lib/util/SubsystemManager.java @@ -2,7 +2,9 @@ import com.team973.frc2025.Robot; import com.team973.frc2025.subsystems.DriveController; +import com.team973.frc2025.subsystems.turret.TurretIO; import com.team973.lib.devices.GreyPigeonIO; +import edu.wpi.first.math.geometry.Pose3d; public abstract class SubsystemManager { private final Logger m_logger; @@ -27,5 +29,9 @@ public static SubsystemManager init(Logger logger) { public abstract DriveController getDriveController(); - public void log() {} + public abstract TurretIO getTurret(); + + public void log() { + m_logger.log("components", new Pose3d[] {getTurret().getPose()}); + } } diff --git a/src/main/java/com/team973/lib/util/SubsystemManagerReal.java b/src/main/java/com/team973/lib/util/SubsystemManagerReal.java index 8dd2b0c..78f3560 100644 --- a/src/main/java/com/team973/lib/util/SubsystemManagerReal.java +++ b/src/main/java/com/team973/lib/util/SubsystemManagerReal.java @@ -3,12 +3,15 @@ import com.team973.frc2025.shared.RobotInfo; import com.team973.frc2025.subsystems.DriveController; import com.team973.frc2025.subsystems.swerve.SwerveModule; +import com.team973.frc2025.subsystems.turret.Turret; +import com.team973.frc2025.subsystems.turret.TurretIO; import com.team973.lib.devices.GreyPigeon; import com.team973.lib.devices.GreyPigeonIO; public class SubsystemManagerReal extends SubsystemManager { private final GreyPigeonIO m_pigeon; private final DriveController m_driveController; + private final TurretIO m_turret; public SubsystemManagerReal(Logger logger) { super(logger); @@ -33,6 +36,8 @@ public SubsystemManagerReal(Logger logger) { new SwerveModule( 3, RobotInfo.DRIVE_INFO.BACK_RIGHT_CONSTANTS, driveLogger.subLogger("swerve/mod3")), m_pigeon); + + m_turret = new Turret(logger.subLogger("turret")); } public GreyPigeonIO getPigeon() { @@ -42,4 +47,8 @@ public GreyPigeonIO getPigeon() { public DriveController getDriveController() { return m_driveController; } + + public TurretIO getTurret() { + return m_turret; + } } diff --git a/src/main/java/com/team973/lib/util/SubsystemManagerSim.java b/src/main/java/com/team973/lib/util/SubsystemManagerSim.java index 1d22df3..e2fb67b 100644 --- a/src/main/java/com/team973/lib/util/SubsystemManagerSim.java +++ b/src/main/java/com/team973/lib/util/SubsystemManagerSim.java @@ -3,6 +3,8 @@ import com.team973.frc2025.shared.RobotInfo; import com.team973.frc2025.subsystems.DriveController; import com.team973.frc2025.subsystems.swerve.SwerveModuleSim; +import com.team973.frc2025.subsystems.turret.TurretIO; +import com.team973.frc2025.subsystems.turret.TurretSim; import com.team973.lib.devices.GreyPigeonIO; import com.team973.lib.devices.GreyPigeonSim; import org.ironmaple.simulation.SimulatedArena; @@ -12,6 +14,7 @@ public class SubsystemManagerSim extends SubsystemManager { private final SwerveDriveSimulation m_swerveDriveSimulation; private final GreyPigeonIO m_pigeon; private final DriveController m_driveController; + private final TurretIO m_turret; public SubsystemManagerSim(Logger logger) { super(logger); @@ -56,6 +59,8 @@ public SubsystemManagerSim(Logger logger) { RobotInfo.DRIVE_INFO.BACK_RIGHT_CONSTANTS, driveLogger.subLogger("swerve/mod3")), m_pigeon); + + m_turret = new TurretSim(logger.subLogger("turret")); } public GreyPigeonIO getPigeon() { @@ -66,6 +71,10 @@ public DriveController getDriveController() { return m_driveController; } + public TurretIO getTurret() { + return m_turret; + } + @Override public void log() { super.log(); From c9ac59ffdfa3630de330447bc3db73a5addc1a88 Mon Sep 17 00:00:00 2001 From: NolanKnight Date: Tue, 6 Jan 2026 18:37:19 -0800 Subject: [PATCH 3/4] debugged turret sim --- .../com/team973/frc2025/shared/RobotInfo.java | 10 ++++------ .../frc2025/subsystems/turret/Turret.java | 4 ++-- .../frc2025/subsystems/turret/TurretSim.java | 19 ++++++++++++------- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/team973/frc2025/shared/RobotInfo.java b/src/main/java/com/team973/frc2025/shared/RobotInfo.java index 7ed43e6..c84ca12 100644 --- a/src/main/java/com/team973/frc2025/shared/RobotInfo.java +++ b/src/main/java/com/team973/frc2025/shared/RobotInfo.java @@ -23,19 +23,17 @@ public class RobotInfo { public static class TurretInfo { public final int MOTOR_ID = 20; - public final double MOTOR_GEAR_RATIO = 0.0; - - public final double RADIUS_METERS = 0.2; + public final double MOTOR_GEAR_RATIO = ((5.0 / 1.0) * (128.0 / 10.0)); public final double TURRET_KS = 0.0; public final double TURRET_KV = 0.0; public final double TURRET_KA = 0.0; - public final double TURRET_KP = 0.0; + public final double TURRET_KP = 2.0; public final double TURRET_KI = 0.0; public final double TURRET_KD = 0.0; - public final double TURRET_MOTION_MAGIC_CRUISE_VELOCITY = 0.0; - public final double TURRET_MOTION_MAGIC_ACCELERATION = 0.0; + public final double TURRET_MOTION_MAGIC_CRUISE_VELOCITY = 10.0; + public final double TURRET_MOTION_MAGIC_ACCELERATION = 10.0; public final double TURRET_MOTION_MAGIC_JERK = 0.0; public final double TURRET_VOLTAGE_CLOSED_LOOP_RAMP_PERIOD = 0.0; diff --git a/src/main/java/com/team973/frc2025/subsystems/turret/Turret.java b/src/main/java/com/team973/frc2025/subsystems/turret/Turret.java index 80b73b6..2941ffa 100644 --- a/src/main/java/com/team973/frc2025/subsystems/turret/Turret.java +++ b/src/main/java/com/team973/frc2025/subsystems/turret/Turret.java @@ -76,11 +76,11 @@ public GreyTalonFX getMotor() { } public double degToMotorRotations(double deg) { - return deg / m_turretInfo.MOTOR_GEAR_RATIO; + return (deg / 360.0) * m_turretInfo.MOTOR_GEAR_RATIO; } private double motorRotationsToDeg(double motorPostion) { - return motorPostion * m_turretInfo.MOTOR_GEAR_RATIO; + return (motorPostion / m_turretInfo.MOTOR_GEAR_RATIO) * 360.0; } @Override diff --git a/src/main/java/com/team973/frc2025/subsystems/turret/TurretSim.java b/src/main/java/com/team973/frc2025/subsystems/turret/TurretSim.java index cd2d4ed..75f353c 100644 --- a/src/main/java/com/team973/frc2025/subsystems/turret/TurretSim.java +++ b/src/main/java/com/team973/frc2025/subsystems/turret/TurretSim.java @@ -6,13 +6,14 @@ import edu.wpi.first.math.geometry.Rotation3d; import edu.wpi.first.math.geometry.Translation3d; import edu.wpi.first.math.system.plant.DCMotor; +import edu.wpi.first.wpilibj.RobotController; import edu.wpi.first.wpilibj.simulation.SingleJointedArmSim; public class TurretSim extends Turret { private final SingleJointedArmSim m_sim; private final TalonFXSimState m_motorSimState; - private double m_lastPoseMeters; + private double m_lastPoseRad; public TurretSim(Logger logger) { super(logger); @@ -20,16 +21,16 @@ public TurretSim(Logger logger) { m_sim = new SingleJointedArmSim( DCMotor.getKrakenX60(1), - 1.0 / m_turretInfo.MOTOR_GEAR_RATIO, - 0.1, - m_turretInfo.RADIUS_METERS, + m_turretInfo.MOTOR_GEAR_RATIO, + 0.02, + 0.0, Math.toRadians(-165.0), Math.toRadians(165.0), false, Math.toRadians(0.0)); m_motorSimState = m_motor.getSimState(); - m_lastPoseMeters = m_sim.getAngleRads(); + m_lastPoseRad = m_sim.getAngleRads(); } @Override @@ -40,8 +41,12 @@ public Pose3d getPose() { @Override public void syncSensors() { m_motorSimState.addRotorPosition( - (m_sim.getAngleRads() - m_lastPoseMeters) / m_turretInfo.MOTOR_GEAR_RATIO); - m_lastPoseMeters = m_sim.getAngleRads(); + (((m_sim.getAngleRads() - m_lastPoseRad) / (2 * Math.PI)) * m_turretInfo.MOTOR_GEAR_RATIO)); + m_lastPoseRad = m_sim.getAngleRads(); + + m_motorSimState.setRotorVelocity(m_sim.getVelocityRadPerSec()); + + m_motorSimState.setSupplyVoltage(RobotController.getBatteryVoltage()); super.syncSensors(); } From cd5f0361e8a48ca9705243b2fbc4a6d1e2a426ef Mon Sep 17 00:00:00 2001 From: NolanKnight Date: Tue, 6 Jan 2026 18:37:33 -0800 Subject: [PATCH 4/4] imported robot assets --- assets/Robot_Potato/config.json | 30 ++++++++++++++++++++++++++++++ assets/Robot_Potato/model.glb | Bin 0 -> 213032 bytes assets/Robot_Potato/model_0.glb | Bin 0 -> 23480 bytes 3 files changed, 30 insertions(+) create mode 100644 assets/Robot_Potato/config.json create mode 100644 assets/Robot_Potato/model.glb create mode 100644 assets/Robot_Potato/model_0.glb diff --git a/assets/Robot_Potato/config.json b/assets/Robot_Potato/config.json new file mode 100644 index 0000000..6a99b75 --- /dev/null +++ b/assets/Robot_Potato/config.json @@ -0,0 +1,30 @@ +{ + "name": "Potato", + "rotations": [ + { + "axis": "x", + "degrees": 90 + } + ], + "position": [ + 0, + 0, + 0 + ], + "cameras": [], + "components": [ + { + "zeroedRotations": [ + { + "axis": "x", + "degrees": 90 + } + ], + "zeroedPositions": [ + 0, + 0, + 0 + ] + } + ] +} \ No newline at end of file diff --git a/assets/Robot_Potato/model.glb b/assets/Robot_Potato/model.glb new file mode 100644 index 0000000000000000000000000000000000000000..14b0137663a07ded5a2af3fdbcbb41dd52d6bc5d GIT binary patch literal 213032 zcmeFa37no)k?$YW!3~^Iui{ROfWna2-RUKPbfBXoEQXJ5zB%uC zs_N9KQ&rFNzMc25qxO5@L#9oe_MGQEblN%pW7@Pm_T6Xi<7O;6_~6lH%a$x%He-iZ z9yjBlV-7uZbm>cv7(I5z4t?9tIOvVbNB24O&}E~`_1A-!9R0c_i$@nP-|vmD8=bMk zQ2)U2_A?G%a?Ij*xql?)AHC=eA*OHE>^c40$Nvuw%#A<#28IR?jMt7>+`Tq5G|cGs zGkY&Bm$(@(eZkJNXPmJ8-C8lwHyC=RXh>+7-D#W56ke5`f21jceRJ-?l)*V`Trw~) zXJ~HvZ_f7pvj+O-4oq}VSQS%;w;z}_XK)~#I(Kk(EP1f6e{^R5$RFpk!Qt@u-TG{3 zXe4HM_XdaO&PkTe9SR%!herB`2Zs9mA7e3ZZf|45ZvO6_ZLh7v&W`jC4Trz(c5CMj zuCcOzU<75e`$uHoz(_Wwy@B7{(Ob@^`7nQU-tufcgvn2Zi**s9VAZefUJwaDF*U7h@5KFt&7Mh#?Re} z9GJpZ&+g^kLBg?#+jr-k_T1?ucS)lY1kN3vGfah$T^FXAI2hi@%S)VfoTUQP+=~vC}cj50}^&-Dl|$haIta z(efh}A2xm28<#B~JsNd;@4MSh3tuq(`7fWoaKD|W@4olW+fR@B)Hg>L9JXlj5pRks zBs)fSUUKx&(FKI)8T;<{f`!v}S~xH`F#QFG9Kn?71Fu@V^GJPnC!7$+w%0-Bj;hy9?K!μqu(*kR7>0gCd328+M$8yXIY?y5hI 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 literal 0 HcmV?d00001