limelight+swerve=marche
This commit is contained in:
		| @@ -78,16 +78,8 @@ public class RobotContainer { | ||||
|  | ||||
|     | ||||
|         public Command getAutonomousCommand() { | ||||
|             return  | ||||
|              new  | ||||
|             ParallelCommandGroup( | ||||
|               autoChooser | ||||
|                      .getSelected(), | ||||
|             new  | ||||
|             RainBow | ||||
|             ( | ||||
|                 bougie | ||||
|                 ) | ||||
|             ); | ||||
|             return new ParallelCommandGroup( | ||||
|               autoChooser.getSelected(), | ||||
|             new RainBow(bougie)); | ||||
|          } | ||||
| } | ||||
|   | ||||
| @@ -3,18 +3,32 @@ | ||||
| // the WPILib BSD license file in the root directory of this project. | ||||
|  | ||||
| package frc.robot.commands; | ||||
| import static edu.wpi.first.units.Units.*; | ||||
|  | ||||
| import com.ctre.phoenix6.swerve.SwerveModule.DriveRequestType; | ||||
| import com.ctre.phoenix6.swerve.SwerveRequest; | ||||
|  | ||||
|  | ||||
| import edu.wpi.first.wpilibj2.command.Command; | ||||
| import frc.robot.TunerConstants.TunerConstants; | ||||
| import frc.robot.subsystems.Limelight3; | ||||
| import frc.robot.subsystems.Limelight3G; | ||||
|  | ||||
| /* You should consider using the more terse Command factories API instead https://docs.wpilib.org/en/stable/docs/software/commandbased/organizing-command-based.html#defining-commands */ | ||||
| public class AprilTag3 extends Command { | ||||
|   private Limelight3 limelight3; | ||||
|  | ||||
|   private double MaxSpeed = TunerConstants.kSpeedAt12Volts.in(MetersPerSecond); | ||||
|     private double MaxAngularRate = RotationsPerSecond.of(0.75).in(RadiansPerSecond); // 3/4 of a rotation per second max angular velocity | ||||
|  | ||||
|     /* Setting up bindings for necessary control of the swerve drive platform */ | ||||
|     private final SwerveRequest.FieldCentric drive = new SwerveRequest.FieldCentric() | ||||
|             .withDeadband(MaxSpeed * 0.1).withRotationalDeadband(MaxAngularRate * 0.1) // Add a 10% deadband | ||||
|             .withDriveRequestType(DriveRequestType.OpenLoopVoltage); // Use open-loop control for drive motors | ||||
|   /** Creates a new AprilTag3G. */ | ||||
|   public AprilTag3(Limelight3 limelight3) { | ||||
|     this.limelight3 = limelight3; | ||||
|     addRequirements(limelight3); | ||||
|      | ||||
|     // Use addRequirements() here to declare subsystem dependencies. | ||||
|   } | ||||
|  | ||||
| @@ -27,17 +41,20 @@ public class AprilTag3 extends Command { | ||||
|   // Called every time the scheduler runs while the command is scheduled. | ||||
|   @Override | ||||
|   public void execute() { | ||||
|      | ||||
|     if(limelight3.getV() == true){ | ||||
|        | ||||
|       drive.withRotationalRate(limelight3.getX()/48); | ||||
|     } | ||||
|     else{ | ||||
|        | ||||
|       drive.withRotationalRate(0); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   // Called once the command ends or is interrupted. | ||||
|   @Override | ||||
|   public void end(boolean interrupted) {} | ||||
|   public void end(boolean interrupted) { | ||||
|     drive.withRotationalRate(0); | ||||
|   } | ||||
|  | ||||
|   // Returns true when the command should end. | ||||
|   @Override | ||||
|   | ||||
| @@ -3,13 +3,26 @@ | ||||
| // the WPILib BSD license file in the root directory of this project. | ||||
|  | ||||
| package frc.robot.commands; | ||||
| import static edu.wpi.first.units.Units.*; | ||||
| import com.ctre.phoenix6.swerve.SwerveModule.DriveRequestType; | ||||
| import com.ctre.phoenix6.swerve.SwerveRequest; | ||||
|  | ||||
| import edu.wpi.first.wpilibj2.command.Command; | ||||
| import frc.robot.TunerConstants.TunerConstants; | ||||
|  | ||||
| import frc.robot.subsystems.Limelight3G; | ||||
|  | ||||
| /* You should consider using the more terse Command factories API instead https://docs.wpilib.org/en/stable/docs/software/commandbased/organizing-command-based.html#defining-commands */ | ||||
| public class AprilTag3G extends Command { | ||||
|   private Limelight3G limelight3g; | ||||
|   private double MaxSpeed = TunerConstants.kSpeedAt12Volts.in(MetersPerSecond); | ||||
|     private double MaxAngularRate = RotationsPerSecond.of(0.75).in(RadiansPerSecond); // 3/4 of a rotation per second max angular velocity | ||||
|  | ||||
|     /* Setting up bindings for necessary control of the swerve drive platform */ | ||||
|     private final SwerveRequest.FieldCentric drive = new SwerveRequest.FieldCentric() | ||||
|             .withDeadband(MaxSpeed * 0.1).withRotationalDeadband(MaxAngularRate * 0.1) // Add a 10% deadband | ||||
|             .withDriveRequestType(DriveRequestType.OpenLoopVoltage); // Use open-loop control for drive motors | ||||
|   /** Creates a new AprilTag3G. */ | ||||
|   /** Creates a new AprilTag3G. */ | ||||
|   public AprilTag3G(Limelight3G limelight3g) { | ||||
|     this.limelight3g = limelight3g; | ||||
| @@ -25,17 +38,17 @@ public class AprilTag3G extends Command { | ||||
|   @Override | ||||
|   public void execute() { | ||||
|     if(limelight3g.getV() == true){ | ||||
|        | ||||
|       drive.withRotationalRate(limelight3g.getX()/48); | ||||
|     } | ||||
|     else{ | ||||
|        | ||||
|       drive.withRotationalRate(0); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   // Called once the command ends or is interrupted. | ||||
|   @Override | ||||
|   public void end(boolean interrupted) { | ||||
|      | ||||
|     drive.withRotationalRate(0); | ||||
|   } | ||||
|  | ||||
|   // Returns true when the command should end. | ||||
|   | ||||
| @@ -3,17 +3,28 @@ | ||||
| // the WPILib BSD license file in the root directory of this project. | ||||
|  | ||||
| package frc.robot.commands; | ||||
| import static edu.wpi.first.units.Units.*; | ||||
| import com.ctre.phoenix6.swerve.SwerveModule.DriveRequestType; | ||||
| import com.ctre.phoenix6.swerve.SwerveRequest; | ||||
|  | ||||
| import edu.wpi.first.wpilibj2.command.Command; | ||||
| import frc.robot.TunerConstants.TunerConstants; | ||||
| import frc.robot.subsystems.Limelight3; | ||||
| import frc.robot.subsystems.Limelight3G; | ||||
|  | ||||
| /* You should consider using the more terse Command factories API instead https://docs.wpilib.org/en/stable/docs/software/commandbased/organizing-command-based.html#defining-commands */ | ||||
| public class Forme3 extends Command { | ||||
|   private Limelight3 limelight3; | ||||
|   private double MaxSpeed = TunerConstants.kSpeedAt12Volts.in(MetersPerSecond); | ||||
|     private double MaxAngularRate = RotationsPerSecond.of(0.75).in(RadiansPerSecond); // 3/4 of a rotation per second max angular velocity | ||||
|  | ||||
|     /* Setting up bindings for necessary control of the swerve drive platform */ | ||||
|     private final SwerveRequest.FieldCentric drive = new SwerveRequest.FieldCentric() | ||||
|             .withDeadband(MaxSpeed * 0.1).withRotationalDeadband(MaxAngularRate * 0.1) // Add a 10% deadband | ||||
|             .withDriveRequestType(DriveRequestType.OpenLoopVoltage); // Use open-loop control for drive motors | ||||
|   /** Creates a new Forme3. */ | ||||
|   public Forme3(Limelight3 limelight3) { | ||||
|     this.limelight3 = limelight3; | ||||
|      | ||||
|     addRequirements(limelight3); | ||||
|     // Use addRequirements() here to declare subsystem dependencies. | ||||
|   } | ||||
| @@ -28,16 +39,18 @@ public class Forme3 extends Command { | ||||
|   @Override | ||||
|   public void execute() { | ||||
|     if(limelight3.getV() == true){ | ||||
|        | ||||
|       drive.withRotationalRate(limelight3.getX()/48); | ||||
|     } | ||||
|     else{ | ||||
|        | ||||
|       drive.withRotationalRate(0); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   // Called once the command ends or is interrupted. | ||||
|   @Override | ||||
|   public void end(boolean interrupted) {} | ||||
|   public void end(boolean interrupted) { | ||||
|     drive.withRotationalRate(0); | ||||
|   } | ||||
|  | ||||
|   // Returns true when the command should end. | ||||
|   @Override | ||||
|   | ||||
		Reference in New Issue
	
	Block a user