yfcghjhfhcgvnm

This commit is contained in:
samuel desharnais 2023-04-12 19:35:44 -04:00
parent 94ac975b75
commit a1062d3ae3
9 changed files with 63 additions and 32 deletions

View File

@ -13,6 +13,7 @@ import edu.wpi.first.wpilibj.shuffleboard.BuiltInLayouts;
import edu.wpi.first.wpilibj.shuffleboard.BuiltInWidgets; import edu.wpi.first.wpilibj.shuffleboard.BuiltInWidgets;
import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard; import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard;
import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardLayout; import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardLayout;
import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab;
import edu.wpi.first.wpilibj.smartdashboard.SendableChooser; import edu.wpi.first.wpilibj.smartdashboard.SendableChooser;
import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.Command;
import edu.wpi.first.wpilibj2.command.Commands; import edu.wpi.first.wpilibj2.command.Commands;
@ -60,15 +61,21 @@ public class RobotContainer {
String aumilieux = "au milieux"; String aumilieux = "au milieux";
String enbas = "en bas"; String enbas = "en bas";
String nulpart = "nul part"; String nulpart = "nul part";
GenericEntry forcebrasmonter = Shuffleboard.getTab("teb").addPersistent("force bras monter", 0.35).getEntry();
GenericEntry forcebrasdescendre = Shuffleboard.getTab("teb").addPersistent("force bras descendre", -0.35).getEntry();
GenericEntry forcepivotmonter = Shuffleboard.getTab("teb").addPersistent("force pivot monter", 0.5).getEntry();
GenericEntry forcepivotdescendre = Shuffleboard.getTab("teb").addPersistent("force pivot descendre", -0.5).getEntry();
ShuffleboardLayout layoutauto = Shuffleboard.getTab("teb").getLayout("auto", BuiltInLayouts.kList) ShuffleboardLayout layoutauto = Shuffleboard.getTab("teb").getLayout("auto", BuiltInLayouts.kList)
.withSize(2, 2).withProperties(Map.of("Label position", "LEFT")); .withSize(2, 2).withProperties(Map.of("Label position", "LEFT"));
GenericEntry autobalance = layoutauto.add("choix balance", true).withWidget(BuiltInWidgets.kToggleSwitch).getEntry(); GenericEntry autobalance = layoutauto.add("choix balance", true).withWidget(BuiltInWidgets.kToggleSwitch).getEntry();
GenericEntry autosortir = layoutauto.add("choix sortir", false).withWidget(BuiltInWidgets.kToggleSwitch).getEntry(); GenericEntry autosortir = layoutauto.add("choix sortir", false).withWidget(BuiltInWidgets.kToggleSwitch).getEntry();
GenericEntry reculerdistances = layoutauto.addPersistent("reculerdistancesortir", -66).getEntry(); GenericEntry reculerdistances = layoutauto.addPersistent("reculer distance sortir", -66).getEntry();
GenericEntry reculerdistanceb = layoutauto.addPersistent("reculerdistancebalance", -31).getEntry(); GenericEntry reculerdistanceb = layoutauto.addPersistent("reculer distance balance", -31).getEntry();
GenericEntry avancerdistance = layoutauto.addPersistent("avancer", 35).getEntry(); GenericEntry avancerdistance = layoutauto.addPersistent("avancer", 35).getEntry();
GenericEntry avancerforce = layoutauto.addPersistent("avancerforce", 0.4).getEntry(); GenericEntry avancerforce = layoutauto.addPersistent("avancer force", 0.4).getEntry();
GenericEntry reculerforce = layoutauto.addPersistent("reculerforce", 0.4).getEntry(); GenericEntry reculerforce = layoutauto.addPersistent("reculer force", -0.45).getEntry();
GenericEntry gyroforce = layoutauto.addPersistent("gyro force", 0.3).getEntry();
// subsystems // subsystems
BasePilotable basePilotable = new BasePilotable(); BasePilotable basePilotable = new BasePilotable();
Gratte gratte = new Gratte(); Gratte gratte = new Gratte();
@ -82,13 +89,13 @@ public class RobotContainer {
BrakeOuvre brakeOuvre = new BrakeOuvre(basePilotable); BrakeOuvre brakeOuvre = new BrakeOuvre(basePilotable);
GratteBaisser gratteBaisser = new GratteBaisser(gratte); GratteBaisser gratteBaisser = new GratteBaisser(gratte);
GratteMonte gratteMonte = new GratteMonte(gratte); GratteMonte gratteMonte = new GratteMonte(gratte);
Gyro gyro = new Gyro(basePilotable); Gyro gyro = new Gyro(basePilotable,()->gyroforce.getDouble(0));
FermePince fermePince = new FermePince(pince); FermePince fermePince = new FermePince(pince);
OuvrePince ouvrePince = new OuvrePince(pince); OuvrePince ouvrePince = new OuvrePince(pince);
Cone cone = new Cone(limelight, basePilotable, () -> -manette1.getLeftY()); Cone cone = new Cone(limelight, basePilotable, () -> -manette1.getLeftY());
Reculer reculers = new Reculer(basePilotable, () -> reculerdistances.getDouble(0)); Reculer reculers = new Reculer(basePilotable, () -> reculerdistances.getDouble(0),()->reculerforce.getDouble(0));
Reculer reculerb = new Reculer(basePilotable, () -> reculerdistanceb.getDouble(0)); Reculer reculerb = new Reculer(basePilotable, () -> reculerdistanceb.getDouble(0),()->reculerforce.getDouble(0));
Avancer avancer = new Avancer(basePilotable, () -> avancerdistance.getDouble(0)); Avancer avancer = new Avancer(basePilotable, () -> avancerdistance.getDouble(0),()-> avancerforce.getDouble(0));
Cube cube = new Cube(limelight, basePilotable, () -> manette1.getLeftY()); Cube cube = new Cube(limelight, basePilotable, () -> manette1.getLeftY());
Apriltag aprilTag = new Apriltag(limelight, basePilotable, () -> manette1.getLeftY()); Apriltag aprilTag = new Apriltag(limelight, basePilotable, () -> manette1.getLeftY());
Tape tape = new Tape(limelight, basePilotable, () -> manette1.getLeftY()); Tape tape = new Tape(limelight, basePilotable, () -> manette1.getLeftY());
@ -137,8 +144,8 @@ public class RobotContainer {
private Command creerCommandBras(double distancePivot, double distanceBras) { private Command creerCommandBras(double distancePivot, double distanceBras) {
return Commands.either( return Commands.either(
new MonterPivotBras(brasTelescopique, pivot, distanceBras, distancePivot), new MonterPivotBras(brasTelescopique, pivot, distanceBras, distancePivot,forcebrasmonter,forcebrasdescendre,forcepivotmonter,forcepivotdescendre),
new DescendrePivotBras(brasTelescopique, pivot, distanceBras, distancePivot), new DescendrePivotBras(brasTelescopique, pivot, distanceBras, distancePivot,forcebrasmonter,forcebrasdescendre,forcepivotmonter,forcepivotdescendre),
() -> pivot.distance() < distancePivot); () -> pivot.distance() < distancePivot);
} }
@ -160,7 +167,7 @@ public class RobotContainer {
new FermePince(pince).unless(() -> chooser.getSelected().equals(nulpart)), new FermePince(pince).unless(() -> chooser.getSelected().equals(nulpart)),
new ParallelCommandGroup (creerCommandBras(0, 0).unless(() -> chooser.getSelected().equals(nulpart)), new ParallelCommandGroup (creerCommandBras(0, 0).unless(() -> chooser.getSelected().equals(nulpart)),
Commands.either(reculers, reculerb, () -> autosortir.getBoolean(true))), Commands.either(reculers, reculerb, () -> autosortir.getBoolean(true))),
new Avancer(basePilotable, () -> avancerdistance.getDouble(0)).unless(() -> !autosortir.getBoolean(true) || !autobalance.getBoolean(false)), new Avancer(basePilotable, () -> avancerdistance.getDouble(0),()->avancerforce.getDouble(0)).unless(() -> !autosortir.getBoolean(true) || !autobalance.getBoolean(false)),
Commands.either(gyro, Commands.none(), () -> autobalance.getBoolean(true)))) Commands.either(gyro, Commands.none(), () -> autobalance.getBoolean(true))))
.andThen(brakeOuvre); .andThen(brakeOuvre);

View File

@ -7,17 +7,18 @@ package frc.robot.commands;
import java.util.function.DoubleSupplier; import java.util.function.DoubleSupplier;
import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard;
import edu.wpi.first.wpilibj2.command.CommandBase; import edu.wpi.first.wpilibj2.command.CommandBase;
import frc.robot.subsystems.BasePilotable; import frc.robot.subsystems.BasePilotable;
public class Avancer extends CommandBase { public class Avancer extends CommandBase {
BasePilotable basePilotable; BasePilotable basePilotable;
DoubleSupplier distance; DoubleSupplier distance;
DoubleSupplier force;
/** Creates a new Reculer. */ /** Creates a new Reculer. */
public Avancer(BasePilotable basePilotable, DoubleSupplier distance) { public Avancer(BasePilotable basePilotable, DoubleSupplier distance, DoubleSupplier force) {
this.basePilotable = basePilotable; this.basePilotable = basePilotable;
this.distance = distance; this.distance = distance;
this.force = force;
// Use addRequirements() here to declare subsystem dependencies. // Use addRequirements() here to declare subsystem dependencies.
addRequirements(basePilotable); addRequirements(basePilotable);
} }
@ -31,7 +32,7 @@ public class Avancer extends CommandBase {
// 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() {
basePilotable.drive(0.4,0); basePilotable.drive(force.getAsDouble(),0);
} }
// Called once the command ends or is interrupted. // Called once the command ends or is interrupted.

View File

@ -5,14 +5,18 @@
package frc.robot.commands; package frc.robot.commands;
import java.util.function.DoubleSupplier;
import edu.wpi.first.wpilibj2.command.CommandBase; import edu.wpi.first.wpilibj2.command.CommandBase;
import frc.robot.subsystems.BasePilotable; import frc.robot.subsystems.BasePilotable;
public class Gyro extends CommandBase { public class Gyro extends CommandBase {
private BasePilotable basePilotable; private BasePilotable basePilotable;
DoubleSupplier force;
/** Creates a new Gyro. */ /** Creates a new Gyro. */
public Gyro(BasePilotable basePilotable) { public Gyro(BasePilotable basePilotable,DoubleSupplier force) {
this.basePilotable = basePilotable; this.basePilotable = basePilotable;
this.force = force;
// Use addRequirements() here to declare subsystem dependencies. // Use addRequirements() here to declare subsystem dependencies.
addRequirements(basePilotable); addRequirements(basePilotable);
} }
@ -26,11 +30,11 @@ public class Gyro extends CommandBase {
public void execute() { public void execute() {
if(basePilotable.getpitch()>6) if(basePilotable.getpitch()>6)
{ {
basePilotable.drive(0.3*basePilotable.getpitch()/12, 0); basePilotable.drive(force.getAsDouble()*basePilotable.getpitch()/12, 0);
} }
else if(basePilotable.getpitch()<-6) else if(basePilotable.getpitch()<-6)
{ {
basePilotable.drive(0.3*basePilotable.getpitch()/12, 0); basePilotable.drive(force.getAsDouble()*basePilotable.getpitch()/12, 0);
} }
else else
{ {

View File

@ -13,10 +13,12 @@ import frc.robot.subsystems.BasePilotable;
public class Reculer extends CommandBase { public class Reculer extends CommandBase {
BasePilotable basePilotable; BasePilotable basePilotable;
DoubleSupplier distance; DoubleSupplier distance;
DoubleSupplier force;
/** Creates a new Reculer. */ /** Creates a new Reculer. */
public Reculer(BasePilotable basePilotable, DoubleSupplier distance) { public Reculer(BasePilotable basePilotable, DoubleSupplier distance,DoubleSupplier force) {
this.basePilotable = basePilotable; this.basePilotable = basePilotable;
this.distance = distance; this.distance = distance;
this.force = force;
// Use addRequirements() here to declare subsystem dependencies. // Use addRequirements() here to declare subsystem dependencies.
addRequirements(basePilotable); addRequirements(basePilotable);
} }
@ -30,7 +32,7 @@ public class Reculer extends CommandBase {
// 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() {
basePilotable.drive(-0.45,0); basePilotable.drive(force.getAsDouble(),0);
} }
// Called once the command ends or is interrupted. // Called once the command ends or is interrupted.

View File

@ -4,6 +4,8 @@
package frc.robot.commands.bras; package frc.robot.commands.bras;
import edu.wpi.first.networktables.GenericEntry;
import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard;
import edu.wpi.first.wpilibj2.command.CommandBase; import edu.wpi.first.wpilibj2.command.CommandBase;
import frc.robot.subsystems.bras.BrasTelescopique; import frc.robot.subsystems.bras.BrasTelescopique;
@ -11,9 +13,14 @@ public class Bougerbras extends CommandBase {
/** Creates a new bougerbras. */ /** Creates a new bougerbras. */
double distance; double distance;
BrasTelescopique brasTelescopique; BrasTelescopique brasTelescopique;
public Bougerbras(BrasTelescopique brasTelescopique,double distance) { private GenericEntry forcebrasdescendre;
private GenericEntry forcebrasmonter;
public Bougerbras(BrasTelescopique brasTelescopique,double distance,GenericEntry forcebrasdescendre, GenericEntry forcebrasmonter) {
this.brasTelescopique = brasTelescopique; this.brasTelescopique = brasTelescopique;
this.distance = distance; this.distance = distance;
this.forcebrasdescendre = forcebrasdescendre;
this.forcebrasmonter = forcebrasmonter;
addRequirements(brasTelescopique); addRequirements(brasTelescopique);
// Use addRequirements() here to declare subsystem dependencies. // Use addRequirements() here to declare subsystem dependencies.
} }
@ -28,11 +35,11 @@ public class Bougerbras extends CommandBase {
@Override @Override
public void execute() { public void execute() {
if(brasTelescopique.distance()>distance+0.5 ) { if(brasTelescopique.distance()>distance+0.5 ) {
brasTelescopique.AvanceRecule(-0.35); brasTelescopique.AvanceRecule(forcebrasdescendre.getDouble(-0.35));
} }
else if(brasTelescopique.distance()<distance-0.5) { else if(brasTelescopique.distance()<distance-0.5) {
brasTelescopique.AvanceRecule(0.35); brasTelescopique.AvanceRecule(forcebrasmonter.getDouble(0.35));
} }
else { else {
brasTelescopique.AvanceRecule(0); brasTelescopique.AvanceRecule(0);

View File

@ -4,6 +4,8 @@
package frc.robot.commands.bras; package frc.robot.commands.bras;
import edu.wpi.first.networktables.GenericEntry;
import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard;
import edu.wpi.first.wpilibj2.command.CommandBase; import edu.wpi.first.wpilibj2.command.CommandBase;
import frc.robot.subsystems.bras.Pivot; import frc.robot.subsystems.bras.Pivot;
@ -11,10 +13,15 @@ public class Bougerpivot extends CommandBase {
/** Creates a new Bougerpivot. */ /** Creates a new Bougerpivot. */
Pivot pivot; Pivot pivot;
double distance; double distance;
public Bougerpivot(Pivot pivot,double distance) { private GenericEntry forcepivotmonter;
private GenericEntry forcepivotdescendre;
public Bougerpivot(Pivot pivot,double distance,GenericEntry forcepivotdescendre, GenericEntry forcepivotmonter) {
this.pivot = pivot; this.pivot = pivot;
this.distance = distance; this.distance = distance;
this.forcepivotdescendre = forcepivotdescendre;
this.forcepivotmonter = forcepivotmonter;
addRequirements(pivot); addRequirements(pivot);
// Use addRequirements() here to declare subsystem dependencies. // Use addRequirements() here to declare subsystem dependencies.
} }
@ -26,10 +33,10 @@ public class Bougerpivot extends CommandBase {
@Override @Override
public void execute() { public void execute() {
if(pivot.distance()>distance+0.5 ) { if(pivot.distance()>distance+0.5 ) {
pivot.monteDescendre(-0.5); pivot.monteDescendre(forcepivotdescendre.getDouble(-0.5));
} }
else if(pivot.distance()<distance-0.5) { else if(pivot.distance()<distance-0.5) {
pivot.monteDescendre(0.5); pivot.monteDescendre(forcepivotmonter.getDouble(0.5));
} }
else { else {
pivot.monteDescendre(0); pivot.monteDescendre(0);

View File

@ -5,6 +5,7 @@
package frc.robot.commands.bras; package frc.robot.commands.bras;
import edu.wpi.first.networktables.GenericEntry;
import edu.wpi.first.wpilibj2.command.SequentialCommandGroup; import edu.wpi.first.wpilibj2.command.SequentialCommandGroup;
import frc.robot.subsystems.bras.BrasTelescopique; import frc.robot.subsystems.bras.BrasTelescopique;
import frc.robot.subsystems.bras.Pivot; import frc.robot.subsystems.bras.Pivot;
@ -14,13 +15,13 @@ import frc.robot.subsystems.bras.Pivot;
// https://docs.wpilib.org/en/stable/docs/software/commandbased/convenience-features.html // https://docs.wpilib.org/en/stable/docs/software/commandbased/convenience-features.html
public class DescendrePivotBras extends SequentialCommandGroup { public class DescendrePivotBras extends SequentialCommandGroup {
/** Creates a new DescendrePivotBras. */ /** Creates a new DescendrePivotBras. */
public DescendrePivotBras(BrasTelescopique brasTelescopique, Pivot pivot, double distanceBras, double distancePivot) { public DescendrePivotBras(BrasTelescopique brasTelescopique, Pivot pivot, double distanceBras, double distancePivot,GenericEntry forcebrasmonter, GenericEntry forcebrasdescendre,GenericEntry forcepivotmonter,GenericEntry forcepivotdescendre ) {
// Add your commands in the addCommands() call, e.g. // Add your commands in the addCommands() call, e.g.
// addCommands(new FooCommand(), new BarCommand()); // addCommands(new FooCommand(), new BarCommand());
addCommands( addCommands(
new Bougerbras(brasTelescopique, distanceBras), new Bougerbras(brasTelescopique, distanceBras,forcebrasdescendre,forcebrasmonter),
new Bougerpivot(pivot, distancePivot) new Bougerpivot(pivot, distancePivot,forcepivotdescendre,forcepivotmonter)
); );
} }

View File

@ -5,6 +5,7 @@
package frc.robot.commands.bras; package frc.robot.commands.bras;
import edu.wpi.first.networktables.GenericEntry;
import edu.wpi.first.wpilibj2.command.ParallelCommandGroup; import edu.wpi.first.wpilibj2.command.ParallelCommandGroup;
import edu.wpi.first.wpilibj2.command.SequentialCommandGroup; import edu.wpi.first.wpilibj2.command.SequentialCommandGroup;
import frc.robot.subsystems.bras.BrasTelescopique; import frc.robot.subsystems.bras.BrasTelescopique;
@ -15,14 +16,14 @@ import frc.robot.subsystems.bras.Pivot;
// https://docs.wpilib.org/en/stable/docs/software/commandbased/convenience-features.html // https://docs.wpilib.org/en/stable/docs/software/commandbased/convenience-features.html
public class MonterPivotBras extends SequentialCommandGroup { public class MonterPivotBras extends SequentialCommandGroup {
/** Creates a new Sequancepivotbras. */ /** Creates a new Sequancepivotbras. */
public MonterPivotBras(BrasTelescopique brasTelescopique, Pivot pivot, double distanceBras, double distancePivot) { public MonterPivotBras(BrasTelescopique brasTelescopique, Pivot pivot, double distanceBras, double distancePivot,GenericEntry forcebrasmonter, GenericEntry forcebrasdescendre,GenericEntry forcepivotmonter,GenericEntry forcepivotdescendre) {
// Add your commands in the addCommands() call, e.g. // Add your commands in the addCommands() call, e.g.
// addCommands(new FooCommand(), new BarCommand()); // addCommands(new FooCommand(), new BarCommand());
addCommands( addCommands(
new Bougerpivot(pivot, 10).unless(()->pivot.distance()>10), new Bougerpivot(pivot, 10, forcepivotdescendre, forcepivotdescendre).unless(()->pivot.distance()>10),
new ParallelCommandGroup(new Bougerpivot(pivot, distancePivot)), new ParallelCommandGroup(new Bougerpivot(pivot, distancePivot,forcepivotdescendre,forcepivotmonter)),
new ParallelCommandGroup(new Bougerbras(brasTelescopique, distanceBras)) new ParallelCommandGroup(new Bougerbras(brasTelescopique, distanceBras,forcebrasdescendre,forcebrasmonter))
); );

View File

@ -74,6 +74,7 @@ public void BrakeFerme(){
teb.add(drive); teb.add(drive);
teb.addDouble("distancerobot",this::distance); teb.addDouble("distancerobot",this::distance);
teb.addDouble("angle gyro", this::getpitch); teb.addDouble("angle gyro", this::getpitch);
} }
@Override @Override