From 7af435f90dd54fca57645aecad5364df8cc8fd16 Mon Sep 17 00:00:00 2001 From: Nin Date: Fri, 14 Feb 2025 16:09:01 -0500 Subject: [PATCH 1/3] created funnel and funnel map --- src/main/java/frc/robot/maps/subsystems/FunnelMap.java | 9 +++++++++ src/main/java/frc/robot/subsystems/Funnel.java | 5 +++++ 2 files changed, 14 insertions(+) create mode 100644 src/main/java/frc/robot/maps/subsystems/FunnelMap.java create mode 100644 src/main/java/frc/robot/subsystems/Funnel.java diff --git a/src/main/java/frc/robot/maps/subsystems/FunnelMap.java b/src/main/java/frc/robot/maps/subsystems/FunnelMap.java new file mode 100644 index 0000000..e5c3f7a --- /dev/null +++ b/src/main/java/frc/robot/maps/subsystems/FunnelMap.java @@ -0,0 +1,9 @@ +package frc.robot.maps.subsystems; + +import com.chopshop166.chopshoplib.motors.SmartMotorController; + +public class FunnelMap { + + public SmartMotorController motor; + +} diff --git a/src/main/java/frc/robot/subsystems/Funnel.java b/src/main/java/frc/robot/subsystems/Funnel.java new file mode 100644 index 0000000..3c3f924 --- /dev/null +++ b/src/main/java/frc/robot/subsystems/Funnel.java @@ -0,0 +1,5 @@ +package frc.robot.subsystems; + +public class Funnel { + +} From b27fe9987c7689a0147933aa4287a4fd980708b1 Mon Sep 17 00:00:00 2001 From: Nin Date: Sat, 22 Feb 2025 11:03:00 -0500 Subject: [PATCH 2/3] Created a rough version of funnel and funnel map --- .../frc/robot/maps/subsystems/FunnelMap.java | 30 +++++++++- src/main/java/frc/robot/subsystems/Data.java | 5 ++ .../java/frc/robot/subsystems/Funnel.java | 56 ++++++++++++++++++- 3 files changed, 89 insertions(+), 2 deletions(-) create mode 100644 src/main/java/frc/robot/subsystems/Data.java diff --git a/src/main/java/frc/robot/maps/subsystems/FunnelMap.java b/src/main/java/frc/robot/maps/subsystems/FunnelMap.java index e5c3f7a..cba4b22 100644 --- a/src/main/java/frc/robot/maps/subsystems/FunnelMap.java +++ b/src/main/java/frc/robot/maps/subsystems/FunnelMap.java @@ -1,9 +1,37 @@ package frc.robot.maps.subsystems; +import com.chopshop166.chopshoplib.ValueRange; import com.chopshop166.chopshoplib.motors.SmartMotorController; +import com.chopshop166.chopshoplib.logging.DataWrapper; +import com.chopshop166.chopshoplib.logging.LoggableMap; +import com.chopshop166.chopshoplib.logging.data.MotorControllerData; +import com.chopshop166.chopshoplib.sensors.IEncoder; -public class FunnelMap { +public class FunnelMap implements LoggableMap { public SmartMotorController motor; + public final IEncoder encoder; + public final ValueRange hardLimits; + public final ValueRange softLimits; + + public FunnelMap(SmartMotorController motor, IEncoder encoder, ValueRange hardLimits, ValueRange softLimits) { + this.motor = motor; + this.encoder = encoder; + this.softLimits = softLimits; + this.hardLimits = hardLimits; + } + + @Override + public void updateData(Data data) { + data.motor.updateData(motor); + data.rotationAbsAngleDegrees = encoder.getAbsolutePosition(); + data.rotatingAngleVelocity = encoder.getRate(); + } + + public static class Data extends DataWrapper { + public MotorControllerData motor = new MotorControllerData(); + public double rotationAbsAngleDegrees; + public double rotatingAngleVelocity; + } } diff --git a/src/main/java/frc/robot/subsystems/Data.java b/src/main/java/frc/robot/subsystems/Data.java new file mode 100644 index 0000000..905a87d --- /dev/null +++ b/src/main/java/frc/robot/subsystems/Data.java @@ -0,0 +1,5 @@ +package frc.robot.subsystems; + +public class Data { + +} diff --git a/src/main/java/frc/robot/subsystems/Funnel.java b/src/main/java/frc/robot/subsystems/Funnel.java index 3c3f924..08f50ec 100644 --- a/src/main/java/frc/robot/subsystems/Funnel.java +++ b/src/main/java/frc/robot/subsystems/Funnel.java @@ -1,5 +1,59 @@ package frc.robot.subsystems; -public class Funnel { +import java.util.function.DoubleSupplier; +import com.chopshop166.chopshoplib.logging.LoggedSubsystem; + +import edu.wpi.first.wpilibj2.command.Command; +import frc.robot.maps.subsystems.FunnelMap; +import frc.robot.maps.subsystems.FunnelMap.Data; + +public class Funnel extends LoggedSubsystem { + private final double RAISE_SPEED = 0.5; + private final double LOWER_SPEED = 0.3; + private final double MANUAL_LOWER_SPEED_COEF = 0.3; + private final double SLOW_DOWN_COEF = 0.3; + + public Funnel(FunnelMap funnelMap) { + super(new Data(), funnelMap); + } + + Command move(DoubleSupplier rotateSpeed) { + + return run(() -> { + double speed = rotateSpeed.getAsDouble(); + double speedCoef = RAISE_SPEED; + if (speed < 0) { + speedCoef = MANUAL_LOWER_SPEED_COEF; + } + if (Math.abs(speed) > 0) { + getData().motor.setpoint = (limits(speed * speedCoef)); + + } else { + getData().motor.setpoint = 0.0; + } + + }); + } + + private double limits(double speed) { + double height = getFunnelAngle(); + speed = getMap().hardLimits.filterSpeed(height, speed); + speed = getMap().softLimits.scaleSpeed(height, speed, SLOW_DOWN_COEF); + return speed; + } + + private double getFunnelAngle() { + return getData().rotationAbsAngleDegrees; + } + + @Override + public void reset() { + getMap().encoder.reset(); + } + + @Override + public void safeState() { + getData().motor.setpoint = 0; + } } From fdad2eb68ffacf00941e3d7e76f01ad3b4824b2b Mon Sep 17 00:00:00 2001 From: Liam Murray Date: Sat, 22 Feb 2025 12:41:48 -0500 Subject: [PATCH 3/3] deleted unneeded subsystem --- src/main/java/frc/robot/subsystems/Data.java | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 src/main/java/frc/robot/subsystems/Data.java diff --git a/src/main/java/frc/robot/subsystems/Data.java b/src/main/java/frc/robot/subsystems/Data.java deleted file mode 100644 index 905a87d..0000000 --- a/src/main/java/frc/robot/subsystems/Data.java +++ /dev/null @@ -1,5 +0,0 @@ -package frc.robot.subsystems; - -public class Data { - -}