From 7aa832d34adcae102bbc74644f74c35f8267c877 Mon Sep 17 00:00:00 2001 From: Rongruiz <134637512+Rongrrz@users.noreply.github.com> Date: Sat, 20 Jan 2024 14:38:34 -0800 Subject: [PATCH] Rongrui arm skeleton (#27) * Added ArmSubsystem Skeleton * Added basic commands Extend, retract, stop. * Fixed ArmState spelling and log when commands initialize * Fixed sparkMaxFactory.create() * Removed unused sparkMaxFactory.create() * Fixed minor syntax * Added setPowerMin and setPowerMax * Revised power limit --------- Co-authored-by: Stephen Just --- .../java/competition/subsystems/arm/ArmSubsystem.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/java/competition/subsystems/arm/ArmSubsystem.java b/src/main/java/competition/subsystems/arm/ArmSubsystem.java index c8caaba4..fd97b147 100644 --- a/src/main/java/competition/subsystems/arm/ArmSubsystem.java +++ b/src/main/java/competition/subsystems/arm/ArmSubsystem.java @@ -3,6 +3,7 @@ import competition.electrical_contract.ElectricalContract; import xbot.common.command.BaseSubsystem; import xbot.common.controls.actuators.XCANSparkMax; +import xbot.common.math.MathUtils; import xbot.common.properties.DoubleProperty; import xbot.common.properties.PropertyFactory; @@ -20,6 +21,9 @@ public class ArmSubsystem extends BaseSubsystem { public DoubleProperty extendPower; public DoubleProperty retractPower; + private DoubleProperty setPowerMax; + private DoubleProperty setPowerMin; + public enum ArmState { EXTENDING, RETRACTING, @@ -34,6 +38,9 @@ public ArmSubsystem(PropertyFactory pf, XCANSparkMax.XCANSparkMaxFactory sparkMa extendPower = pf.createPersistentProperty("ExtendPower", 0.1); retractPower = pf.createPersistentProperty("RetractPower", 0.1); + + setPowerMax = pf.createPersistentProperty("SetPowerMax", 0.5); + setPowerMin = pf.createPersistentProperty("SetPowerMin", -0.5); armMotorLeft = sparkMaxFactory.createWithoutProperties(contract.getArmMotorLeft(), this.getPrefix(), "ArmMotorLeft"); armMotorRight = sparkMaxFactory.createWithoutProperties(contract.getArmMotorRight(), this.getPrefix(), "ArmMotorRight"); @@ -43,6 +50,10 @@ public ArmSubsystem(PropertyFactory pf, XCANSparkMax.XCANSparkMaxFactory sparkMa } public void setPower(double power) { + + // Put power within limit range (if not already) + power = MathUtils.constrainDouble(power, setPowerMin.get(), setPowerMax.get()); + armMotorLeft.set(power); armMotorRight.set(power); }