pid d`édouard
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
// the WPILib BSD license file in the root directory of this project.
|
||||
|
||||
package frc.robot.commands.Elevateur;
|
||||
import edu.wpi.first.math.controller.PIDController;
|
||||
import edu.wpi.first.wpilibj2.command.Command;
|
||||
import frc.robot.subsystems.Elevateur;
|
||||
import frc.robot.subsystems.Pince;
|
||||
@@ -11,6 +12,8 @@ import frc.robot.subsystems.Pince;
|
||||
public class L2 extends Command {
|
||||
private Elevateur elevateur;
|
||||
private Pince pince;
|
||||
private PIDController pidController;
|
||||
private double output;
|
||||
/** Creates a new L2. */
|
||||
public L2(Elevateur elevateur,Pince pince) {
|
||||
this.elevateur = elevateur;
|
||||
@@ -21,20 +24,24 @@ public class L2 extends Command {
|
||||
|
||||
// Called when the command is initially scheduled.
|
||||
@Override
|
||||
public void initialize() {}
|
||||
public void initialize() {
|
||||
pidController = new PIDController(0.025, 0.00125,0.001, 0.01);
|
||||
}
|
||||
|
||||
// Called every time the scheduler runs while the command is scheduled.
|
||||
@Override
|
||||
public void execute() {
|
||||
if(pince.encodeurpivot()>=15 && pince.encodeurpivot()<=16.5){
|
||||
pince.pivote(0);
|
||||
}
|
||||
else if(pince.encodeurpivot()>=15){
|
||||
pince.pivote(-0.2);
|
||||
}
|
||||
else{
|
||||
pince.pivote(0.1);
|
||||
}
|
||||
output = pidController.calculate(pince.encodeurpivot(),15);
|
||||
pince.pivote(output);
|
||||
// if(pince.encodeurpivot()>=15 && pince.encodeurpivot()<=16.5){
|
||||
// pince.pivote(0);
|
||||
// }
|
||||
// else if(pince.encodeurpivot()>=15){
|
||||
// pince.pivote(-0.2);
|
||||
// }
|
||||
// else{
|
||||
// pince.pivote(0.1);
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -13,8 +13,10 @@ import frc.robot.subsystems.Pince;
|
||||
public class L3 extends Command {
|
||||
private Elevateur elevateur;
|
||||
private Pince pince;
|
||||
private PIDController pidController;
|
||||
private PIDController pidController1;
|
||||
private PIDController pidController2;
|
||||
private double output;
|
||||
private double output2;
|
||||
/** Creates a new L2. */
|
||||
public L3(Elevateur elevateur,Pince pince) {
|
||||
this.elevateur = elevateur;
|
||||
@@ -26,15 +28,19 @@ public class L3 extends Command {
|
||||
// Called when the command is initially scheduled.
|
||||
@Override
|
||||
public void initialize() {
|
||||
pidController = new PIDController(0.03, 0.001, 0.001);
|
||||
pidController.reset();
|
||||
pidController1 = new PIDController(0.3, 0.04,0);
|
||||
pidController2 = new PIDController(0.025, 0.00125,0.001, 0.01);
|
||||
pidController1.reset();
|
||||
pidController2.reset();
|
||||
}
|
||||
|
||||
// Called every time the scheduler runs while the command is scheduled.
|
||||
@Override
|
||||
public void execute() {
|
||||
output = pidController.calculate(elevateur.position(),20);
|
||||
output = pidController1.calculate(elevateur.position(),-3);
|
||||
output2 = pidController2.calculate(pince.encodeurpivot(),20);
|
||||
elevateur.vitesse(output);
|
||||
pince.pivote(output2);
|
||||
// if(elevateur.position()<=elevateur.encodeurelevateurL3bas() && elevateur.position()>=elevateur.encodeurelevateurL3haut()){
|
||||
// elevateur.vitesse(0);
|
||||
// pince.pivote(-0.15);
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
package frc.robot.commands.Elevateur;
|
||||
|
||||
import edu.wpi.first.math.controller.PIDController;
|
||||
import edu.wpi.first.wpilibj2.command.Command;
|
||||
import frc.robot.subsystems.Elevateur;
|
||||
import frc.robot.subsystems.Pince;
|
||||
@@ -12,6 +13,10 @@ import frc.robot.subsystems.Pince;
|
||||
public class L4 extends Command {
|
||||
private Elevateur elevateur;
|
||||
private Pince pince;
|
||||
private PIDController pidController;
|
||||
private PIDController pidController1;
|
||||
private double output;
|
||||
private double output1;
|
||||
/** Creates a new L2. */
|
||||
public L4(Elevateur elevateur,Pince pince) {
|
||||
this.elevateur = elevateur;
|
||||
@@ -22,30 +27,39 @@ public class L4 extends Command {
|
||||
|
||||
// Called when the command is initially scheduled.
|
||||
@Override
|
||||
public void initialize() {}
|
||||
public void initialize() {
|
||||
pidController = new PIDController(0.3, 0.04,0);
|
||||
pidController1 = new PIDController(0.025, 0.00125,0.001, 0.01);
|
||||
pidController.reset();
|
||||
pidController1.reset();
|
||||
}
|
||||
|
||||
// Called every time the scheduler runs while the command is scheduled.
|
||||
@Override
|
||||
public void execute() {
|
||||
if(elevateur.position()<=elevateur.encodeurelevateurL4bas() && elevateur.position()>=elevateur.encodeurelevateurL4haut()){
|
||||
elevateur.vitesse(0);
|
||||
pince.pivote(-0.15);
|
||||
if(pince.encodeurpivot()>=20 && pince.encodeurpivot()<=21){
|
||||
pince.pivote(0);
|
||||
}
|
||||
else if(pince.encodeurpivot()>=20){
|
||||
pince.pivote(-0.15);
|
||||
}
|
||||
else{
|
||||
pince.pivote(0.15);
|
||||
}
|
||||
}
|
||||
else if(elevateur.position()>=elevateur.encodeurelevateurL4bas()){
|
||||
elevateur.vitesse(-0.7);
|
||||
}
|
||||
else{
|
||||
elevateur.vitesse(.25);
|
||||
}
|
||||
output = pidController.calculate(elevateur.position(),-6.3);
|
||||
elevateur.vitesse(output);
|
||||
output1 = pidController1.calculate(pince.encodeurpivot(),20);
|
||||
pince.pivote(output1);
|
||||
// if(elevateur.position()<=elevateur.encodeurelevateurL4bas() && elevateur.position()>=elevateur.encodeurelevateurL4haut()){
|
||||
// elevateur.vitesse(0);
|
||||
// pince.pivote(-0.15);
|
||||
// if(pince.encodeurpivot()>=20 && pince.encodeurpivot()<=21){
|
||||
// pince.pivote(0);
|
||||
// }
|
||||
// else if(pince.encodeurpivot()>=20){
|
||||
// pince.pivote(-0.15);
|
||||
// }
|
||||
// else{
|
||||
// pince.pivote(0.15);
|
||||
// }
|
||||
// }
|
||||
// else if(elevateur.position()>=elevateur.encodeurelevateurL4bas()){
|
||||
// elevateur.vitesse(-0.7);
|
||||
// }
|
||||
// else{
|
||||
// elevateur.vitesse(.25);
|
||||
// }
|
||||
}
|
||||
|
||||
// Called once the command ends or is interrupted.
|
||||
|
||||
@@ -47,14 +47,14 @@ public class AprilTag3 extends Command {
|
||||
// Called every time the scheduler runs while the command is scheduled.
|
||||
@Override
|
||||
public void execute() {
|
||||
double a = limelight3.getX();
|
||||
|
||||
double a = limelight3.getTx();
|
||||
double b = limelight3.getRx();
|
||||
if(limelight3.getV() == true){
|
||||
drivetrain.setControl(drive.
|
||||
withRotationalRate(a/10).
|
||||
withVelocityX(x.getAsDouble()).
|
||||
withVelocityY(y.getAsDouble()));
|
||||
System.out.println(a/10);
|
||||
withVelocityX(0).
|
||||
withVelocityY(b/10));
|
||||
System.out.println(b/10);
|
||||
}
|
||||
else{
|
||||
drivetrain.setControl(drive.
|
||||
|
||||
@@ -46,7 +46,7 @@ public class Forme3 extends Command {
|
||||
// Called every time the scheduler runs while the command is scheduled.
|
||||
@Override
|
||||
public void execute() {
|
||||
double a = limelight3.getX();
|
||||
double a = limelight3.getTx();
|
||||
if(limelight3.getV() == true){
|
||||
drivetrain.setControl(drive.
|
||||
withRotationalRate(a/10).
|
||||
|
||||
@@ -31,10 +31,10 @@ public class Elevateur extends SubsystemBase {
|
||||
teb.add("encodeurelevateursationhaut", -0.4).getEntry();
|
||||
private GenericEntry distanceDeploiePince =
|
||||
teb.add("encodeurDeploiePince", 0.2).getEntry();
|
||||
|
||||
public Elevateur() {
|
||||
teb.addDouble("encodeur elevateur",this::position);
|
||||
teb.addBoolean("limit elevateur", this::limit2);
|
||||
teb.addDouble("amperage elevateur", this::amp);
|
||||
}
|
||||
final SparkMax monte = new SparkMax(22, MotorType.kBrushless);
|
||||
final DigitalInput limit2 = new DigitalInput(0);
|
||||
@@ -89,7 +89,9 @@ public class Elevateur extends SubsystemBase {
|
||||
public double distanceDeploiePince(){
|
||||
return distanceDeploiePince.getDouble(0.2);
|
||||
}
|
||||
|
||||
public double amp(){
|
||||
return monte.getOutputCurrent();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void periodic() {
|
||||
|
||||
@@ -20,8 +20,15 @@ public class Limelight3 extends SubsystemBase {
|
||||
PortForwarder.add(port, "limelight.local", port);
|
||||
}
|
||||
}
|
||||
public double getX(){
|
||||
return LimelightHelpers.getTX("limelight-balon");
|
||||
public double getTx(){
|
||||
NetworkTable table = NetworkTableInstance.getDefault().getTable("limelight-balon");
|
||||
NetworkTableEntry tx = table.getEntry("tx");
|
||||
return tx.getDouble(0.0);
|
||||
}
|
||||
public double getRx(){
|
||||
NetworkTable table = NetworkTableInstance.getDefault().getTable("limelight-balon");
|
||||
NetworkTableEntry rx = table.getEntry("rx");
|
||||
return rx.getDouble(0.0);
|
||||
}
|
||||
public boolean getV(){
|
||||
return LimelightHelpers.getTV("limelight-balon");
|
||||
|
||||
@@ -19,6 +19,7 @@ public class Pince extends SubsystemBase {
|
||||
teb.addDouble("encodeur pince", this::encodeurpivot);
|
||||
teb.addDouble("amperage corail", this::emperagecoral);
|
||||
teb.addDouble("amperage algue", this::emperagealgue);
|
||||
teb.addDouble("amperage pivotis", this::ampPivote);
|
||||
}
|
||||
final SparkMax coral = new SparkMax(20, MotorType.kBrushless);
|
||||
final SparkMax pivoti = new SparkMax(14, MotorType.kBrushless);
|
||||
@@ -63,7 +64,9 @@ public double emperagealgue(){
|
||||
return algue1.getOutputCurrent();
|
||||
}
|
||||
public boolean x = false;
|
||||
|
||||
public double ampPivote(){
|
||||
return pivoti.getOutputCurrent();
|
||||
}
|
||||
@Override
|
||||
public void periodic() {
|
||||
// This method will be called once per scheduler run
|
||||
|
||||
Reference in New Issue
Block a user