moved in shooter

This commit is contained in:
DanTheMan-byte
2025-11-13 19:11:01 -06:00
parent f08afd928a
commit 2e456f653d

View File

@@ -1,7 +1,5 @@
package org.firstinspires.ftc.teamcode.subsystems; package org.firstinspires.ftc.teamcode.subsystems;
import static org.firstinspires.ftc.teamcode.constants.ShooterVars.*;
import com.acmerobotics.dashboard.telemetry.MultipleTelemetry; import com.acmerobotics.dashboard.telemetry.MultipleTelemetry;
import com.acmerobotics.roadrunner.Pose2d; import com.acmerobotics.roadrunner.Pose2d;
import com.arcrobotics.ftclib.controller.PIDController; import com.arcrobotics.ftclib.controller.PIDController;
@@ -22,6 +20,8 @@ import java.util.Objects;
public class Shooter implements Subsystem { public class Shooter implements Subsystem {
private final DcMotorEx fly1; private final DcMotorEx fly1;
private final DcMotorEx fly2; private final DcMotorEx fly2;
private final DcMotorEx encoder;
private final Servo hoodServo; private final Servo hoodServo;
private final Servo turret1; private final Servo turret1;
@@ -50,9 +50,9 @@ public class Shooter implements Subsystem {
private String shooterMode = "MANUAL"; private String shooterMode = "AUTO";
private String turretMode = "MANUAL"; private String turretMode = "AUTO";
public Shooter(Robot robot, MultipleTelemetry TELE) { public Shooter(Robot robot, MultipleTelemetry TELE) {
@@ -78,6 +78,8 @@ public class Shooter implements Subsystem {
this.turret2 = robot.turr2; this.turret2 = robot.turr2;
this.encoder = robot.shooterEncoder;
@@ -170,7 +172,7 @@ public class Shooter implements Subsystem {
public void setTurretMode(String mode){ turretMode = mode;} public void setTurretMode(String mode){ turretMode = mode;}
public void trackGoal(Pose2d robotPose, Pose2d goalPose, boolean shooterOn){ public double trackGoal(Pose2d robotPose, Pose2d goalPose, double offset){
fly1.setMode(DcMotor.RunMode.RUN_USING_ENCODER); fly1.setMode(DcMotor.RunMode.RUN_USING_ENCODER);
fly2.setMode(DcMotor.RunMode.RUN_USING_ENCODER); fly2.setMode(DcMotor.RunMode.RUN_USING_ENCODER);
@@ -180,51 +182,74 @@ public class Shooter implements Subsystem {
Pose2d deltaPose = new Pose2d( Pose2d deltaPose = new Pose2d(
goalPose.position.x - robotPose.position.x, goalPose.position.x - robotPose.position.x,
goalPose.position.y - robotPose.position.y, goalPose.position.y - robotPose.position.y,
goalPose.heading.toDouble() - robotPose.heading.toDouble() goalPose.heading.toDouble() - (robotPose.heading.toDouble())
); );
double distance = Math.sqrt( double distance = Math.sqrt(
deltaPose.position.x * deltaPose.position.x deltaPose.position.x * deltaPose.position.x
+ deltaPose.position.y * deltaPose.position.y + deltaPose.position.y * deltaPose.position.y
+ Poses.relativeGoalHeight * Poses.relativeGoalHeight + Poses.relativeGoalHeight * Poses.relativeGoalHeight
); );
telemetry.addData("dst", distance);
double shooterPow = getPowerByDist(distance); double shooterPow = getPowerByDist(distance);
double hoodAngle = getAngleByDist(distance); double hoodAngle = getAngleByDist(distance);
if (shooterOn){
fly1.setVelocity(shooterPow); // hoodServo.setPosition(hoodAngle);
fly2.setPower(fly1.getPower());
} else { moveTurret(getTurretPosByDeltaPose(deltaPose, offset));
fly1.setPower(0);
fly2.setPower(0);
}
hoodServo.setPosition(hoodAngle); return distance;
//0.9974 * 355
moveTurret(getTurretPosByDeltaPose(deltaPose));
} }
public double getTurretPosByDeltaPose (Pose2d dPose){ public double getTurretPosByDeltaPose (Pose2d dPose, double offset){
double deltaAngle = Math.toDegrees(dPose.heading.toDouble()); double deltaAngle = Math.toDegrees(dPose.heading.toDouble());
if (deltaAngle < -180) { double aTanAngle = Math.toDegrees(Math.atan(dPose.position.y/dPose.position.x));
deltaAngle +=360;
telemetry.addData("deltaAngle", deltaAngle);
if (deltaAngle > 90) {
deltaAngle -=360;
} }
deltaAngle /= (turret_GearRatio*turret_Range);
return (0.5+deltaAngle) ;
// deltaAngle += aTanAngle;
deltaAngle /= (335);
telemetry.addData("dAngle", deltaAngle);
telemetry.addData("AtanAngle", aTanAngle);
return ((0.30-deltaAngle) + offset);
} }
//62, 0.44
//56.5, 0.5
public double getPowerByDist(double dist){ public double getPowerByDist(double dist){
//TODO: ADD LOGIC //TODO: ADD LOGIC
@@ -233,11 +258,20 @@ public class Shooter implements Subsystem {
public double getAngleByDist(double dist){ public double getAngleByDist(double dist){
//TODO: ADD LOGIC
return dist; double newDist = dist - 56.5;
double pos = newDist*((0.44-0.5)/(62-56.5)) + 0.46;
return pos;
} }
public void setTelemetryOn(boolean state){telemetryOn = state;} public void setTelemetryOn(boolean state){telemetryOn = state;}
public void moveTurret(double pos){ public void moveTurret(double pos){
@@ -262,9 +296,16 @@ public class Shooter implements Subsystem {
fly1.setMode(DcMotor.RunMode.RUN_USING_ENCODER); fly1.setMode(DcMotor.RunMode.RUN_USING_ENCODER);
fly2.setMode(DcMotor.RunMode.RUN_USING_ENCODER); fly2.setMode(DcMotor.RunMode.RUN_USING_ENCODER);
fly1.setVelocity(velocity);
fly2.setPower(fly1.getPower());
fly1.setVelocity(velocity, AngleUnit.DEGREES);
fly2.setVelocity(velocity, AngleUnit.DEGREES);
} }
else if (Objects.equals(shooterMode, "POS")){ else if (Objects.equals(shooterMode, "POS")){
@@ -279,7 +320,7 @@ public class Shooter implements Subsystem {
} }
if (Objects.equals(turretMode, "MANUAL")){ if (Objects.equals(turretMode, "MANUAL")){
hoodServo.setPosition(hoodPos); // hoodServo.setPosition(hoodPos);
moveTurret(turretPos); moveTurret(turretPos);