limelight marche pas
This commit is contained in:
parent
b1e32bd6df
commit
be9f3856f7
@ -25,10 +25,15 @@ import edu.wpi.first.wpilibj2.command.button.CommandXboxController;
|
|||||||
import edu.wpi.first.wpilibj2.command.sysid.SysIdRoutine.Direction;
|
import edu.wpi.first.wpilibj2.command.sysid.SysIdRoutine.Direction;
|
||||||
|
|
||||||
import frc.robot.TunerConstants.TunerConstants;
|
import frc.robot.TunerConstants.TunerConstants;
|
||||||
|
import frc.robot.commands.AprilTag3;
|
||||||
|
import frc.robot.commands.AprilTag3G;
|
||||||
|
import frc.robot.commands.Forme3;
|
||||||
import frc.robot.commands.RainBow;
|
import frc.robot.commands.RainBow;
|
||||||
import frc.robot.subsystems.Bougie;
|
import frc.robot.subsystems.Bougie;
|
||||||
import frc.robot.subsystems.CommandSwerveDrivetrain;
|
import frc.robot.subsystems.CommandSwerveDrivetrain;
|
||||||
import frc.robot.subsystems.Grimpeur;
|
import frc.robot.subsystems.Grimpeur;
|
||||||
|
import frc.robot.subsystems.Limelight3;
|
||||||
|
import frc.robot.subsystems.Limelight3G;
|
||||||
|
|
||||||
|
|
||||||
public class RobotContainer {
|
public class RobotContainer {
|
||||||
@ -43,14 +48,14 @@ public class RobotContainer {
|
|||||||
private final Telemetry logger = new Telemetry(MaxSpeed);
|
private final Telemetry logger = new Telemetry(MaxSpeed);
|
||||||
|
|
||||||
private final CommandXboxController manette1 = new CommandXboxController(0);
|
private final CommandXboxController manette1 = new CommandXboxController(0);
|
||||||
private final CommandXboxController manette2 = new CommandXboxController(0);
|
private final CommandXboxController manette2 = new CommandXboxController(1);
|
||||||
|
|
||||||
public final CommandSwerveDrivetrain drivetrain = TunerConstants.createDrivetrain();
|
public final CommandSwerveDrivetrain drivetrain = TunerConstants.createDrivetrain();
|
||||||
|
|
||||||
private final SendableChooser<Command> autoChooser;
|
private final SendableChooser<Command> autoChooser;
|
||||||
Bougie bougie = new Bougie();
|
Bougie bougie = new Bougie();
|
||||||
|
Limelight3G limelight3g = new Limelight3G();
|
||||||
|
Limelight3 limelight3 = new Limelight3();
|
||||||
public RobotContainer() {
|
public RobotContainer() {
|
||||||
autoChooser = AutoBuilder.buildAutoChooser("New Auto");
|
autoChooser = AutoBuilder.buildAutoChooser("New Auto");
|
||||||
SmartDashboard.putData("Auto Mode", autoChooser);
|
SmartDashboard.putData("Auto Mode", autoChooser);
|
||||||
@ -63,16 +68,18 @@ public class RobotContainer {
|
|||||||
drivetrain.setDefaultCommand(
|
drivetrain.setDefaultCommand(
|
||||||
// Drivetrain will execute this command periodically
|
// Drivetrain will execute this command periodically
|
||||||
drivetrain.applyRequest(() ->
|
drivetrain.applyRequest(() ->
|
||||||
drive.withVelocityX(MathUtil.applyDeadband(-manette1.getLeftY(), 0.5)) // Drive forward with negative Y (forward)
|
drive.withVelocityX(MathUtil.applyDeadband(-manette1.getLeftY()*MaxSpeed, 0.15)) // Drive forward with negative Y (forward)
|
||||||
.withVelocityY(MathUtil.applyDeadband(-manette1.getLeftX(), 0.5)) // Drive left with negative X (left)
|
.withVelocityY(MathUtil.applyDeadband(-manette1.getLeftX()*MaxSpeed, 0.15)) // Drive left with negative X (left)
|
||||||
.withRotationalRate(MathUtil.applyDeadband(-manette1.getRightX()*MaxAngularRate, 0.5)) // Drive counterclockwise with negative X (left)
|
.withRotationalRate(MathUtil.applyDeadband(-manette1.getRightX()*MaxAngularRate, 0.1)) // Drive counterclockwise with negative X (left)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
// reset the field-centric heading on left bumper press
|
// reset the field-centric heading on left bumper press
|
||||||
manette1.start().onTrue(drivetrain.runOnce(() -> drivetrain.seedFieldCentric()));
|
manette1.start().onTrue(drivetrain.runOnce(() -> drivetrain.seedFieldCentric()));
|
||||||
|
manette1.leftTrigger().whileTrue(new AprilTag3(limelight3,drivetrain));
|
||||||
|
manette1.rightTrigger().whileTrue(new Forme3(limelight3));
|
||||||
|
manette2.leftTrigger().whileTrue(new AprilTag3G(limelight3g));
|
||||||
drivetrain.registerTelemetry(logger::telemeterize);
|
drivetrain.registerTelemetry(logger::telemeterize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,15 +8,15 @@ import static edu.wpi.first.units.Units.*;
|
|||||||
import com.ctre.phoenix6.swerve.SwerveModule.DriveRequestType;
|
import com.ctre.phoenix6.swerve.SwerveModule.DriveRequestType;
|
||||||
import com.ctre.phoenix6.swerve.SwerveRequest;
|
import com.ctre.phoenix6.swerve.SwerveRequest;
|
||||||
|
|
||||||
|
|
||||||
import edu.wpi.first.wpilibj2.command.Command;
|
import edu.wpi.first.wpilibj2.command.Command;
|
||||||
import frc.robot.TunerConstants.TunerConstants;
|
import frc.robot.TunerConstants.TunerConstants;
|
||||||
|
import frc.robot.subsystems.CommandSwerveDrivetrain;
|
||||||
import frc.robot.subsystems.Limelight3;
|
import frc.robot.subsystems.Limelight3;
|
||||||
|
|
||||||
/* 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 */
|
/* 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 {
|
public class AprilTag3 extends Command {
|
||||||
private Limelight3 limelight3;
|
private Limelight3 limelight3;
|
||||||
|
private CommandSwerveDrivetrain drivetrain = TunerConstants.createDrivetrain();
|
||||||
private double MaxSpeed = TunerConstants.kSpeedAt12Volts.in(MetersPerSecond);
|
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
|
private double MaxAngularRate = RotationsPerSecond.of(0.75).in(RadiansPerSecond); // 3/4 of a rotation per second max angular velocity
|
||||||
|
|
||||||
@ -25,9 +25,10 @@ public class AprilTag3 extends Command {
|
|||||||
.withDeadband(MaxSpeed * 0.1).withRotationalDeadband(MaxAngularRate * 0.1) // Add a 10% deadband
|
.withDeadband(MaxSpeed * 0.1).withRotationalDeadband(MaxAngularRate * 0.1) // Add a 10% deadband
|
||||||
.withDriveRequestType(DriveRequestType.OpenLoopVoltage); // Use open-loop control for drive motors
|
.withDriveRequestType(DriveRequestType.OpenLoopVoltage); // Use open-loop control for drive motors
|
||||||
/** Creates a new AprilTag3G. */
|
/** Creates a new AprilTag3G. */
|
||||||
public AprilTag3(Limelight3 limelight3) {
|
public AprilTag3(Limelight3 limelight3,CommandSwerveDrivetrain drivetrain) {
|
||||||
this.limelight3 = limelight3;
|
this.limelight3 = limelight3;
|
||||||
addRequirements(limelight3);
|
this.drivetrain = drivetrain;
|
||||||
|
addRequirements(limelight3,drivetrain);
|
||||||
|
|
||||||
// Use addRequirements() here to declare subsystem dependencies.
|
// Use addRequirements() here to declare subsystem dependencies.
|
||||||
}
|
}
|
||||||
@ -41,19 +42,24 @@ public class AprilTag3 extends Command {
|
|||||||
// Called every time the scheduler runs while the command is scheduled.
|
// Called every time the scheduler runs while the command is scheduled.
|
||||||
@Override
|
@Override
|
||||||
public void execute() {
|
public void execute() {
|
||||||
|
|
||||||
if(limelight3.getV() == true){
|
if(limelight3.getV() == true){
|
||||||
drive.withRotationalRate(limelight3.getX()/48);
|
drivetrain.applyRequest(() ->
|
||||||
|
drive.withRotationalRate(limelight3.getX()/48));
|
||||||
|
System.out.println(limelight3.getX()/48);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
drive.withRotationalRate(0);
|
drivetrain.applyRequest(() ->
|
||||||
|
drive.withRotationalRate(0)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Called once the command ends or is interrupted.
|
// Called once the command ends or is interrupted.
|
||||||
@Override
|
@Override
|
||||||
public void end(boolean interrupted) {
|
public void end(boolean interrupted) {
|
||||||
drive.withRotationalRate(0);
|
drivetrain.applyRequest(() ->
|
||||||
|
drive.withRotationalRate(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns true when the command should end.
|
// Returns true when the command should end.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user