Compare commits
	
		
			58 Commits
		
	
	
		
			Lanceur
			...
			a45f27eb7f
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					a45f27eb7f | ||
| 2b35ef9267 | |||
| b070971185 | |||
| 
						 | 
					2ca57f2556 | ||
| 
						 | 
					144c9a1d71 | ||
| 
						 | 
					368948b2aa | ||
| 
						 | 
					f7e38ca9bc | ||
| 
						 | 
					1367087b14 | ||
| 
						 | 
					e7be2d6428 | ||
| 
						 | 
					437bf16505 | ||
| 
						 | 
					c22c507da0 | ||
| a11b463cc2 | |||
| 910caa963e | |||
| bf63394d77 | |||
| 
						 | 
					954c82a7a0 | ||
| 
						 | 
					810ea210b1 | ||
| 
						 | 
					b8894d4efd | ||
| 
						 | 
					4197299808 | ||
| 8d93e7f24f | |||
| 4ece413126 | |||
| 
						 | 
					f1406f0db0 | ||
| 
						 | 
					9804a3cfbf | ||
| 
						 | 
					9f51699e35 | ||
| 
						 | 
					1c1e8fb714 | ||
| 
						 | 
					104c9195bc | ||
| 
						 | 
					205da73570 | ||
| 1989806378 | |||
| fd72aaf8bd | |||
| 
						 | 
					99525dc7d7 | ||
| 
						 | 
					2533a3a462 | ||
| 
						 | 
					ed5d3bc08b | ||
| 
						 | 
					e9f55c9fd6 | ||
| bde1715f76 | |||
| 
						 | 
					48a4f2e0f4 | ||
| 
						 | 
					fc75e1f997 | ||
| 
						 | 
					d6508d513b | ||
| 1a899887da | |||
| 7e65352246 | |||
| 
						 | 
					ee263139c1 | ||
| 
						 | 
					938198d4e2 | ||
| 
						 | 
					b460501b95 | ||
| 
						 | 
					5e39e6fc4d | ||
| 
						 | 
					6bec6011ca | ||
| e1111511b7 | |||
| c3d4b8c43c | |||
| 4944f4662b | |||
| 
						 | 
					4f6552202c | ||
| 
						 | 
					adb6d5554f | ||
| eca7bb1891 | |||
| 6687dc73ea | |||
| 
						 | 
					ea96a16864 | ||
| 
						 | 
					dfa05d79a7 | ||
| 650e8341ec | |||
| 
						 | 
					025d9e47f0 | ||
| f0cdb9a241 | |||
| ae9e9577c2 | |||
| 
						 | 
					89d155ae5e | ||
| 
						 | 
					787251658c | 
							
								
								
									
										1
									
								
								src/main/deploy/pathplanner/navgrid.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/main/deploy/pathplanner/navgrid.json
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										52
									
								
								src/main/deploy/pathplanner/paths/Example Path.path
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								src/main/deploy/pathplanner/paths/Example Path.path
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
			
		||||
{
 | 
			
		||||
  "version": 1.0,
 | 
			
		||||
  "waypoints": [
 | 
			
		||||
    {
 | 
			
		||||
      "anchor": {
 | 
			
		||||
        "x": 2.0,
 | 
			
		||||
        "y": 7.0
 | 
			
		||||
      },
 | 
			
		||||
      "prevControl": null,
 | 
			
		||||
      "nextControl": {
 | 
			
		||||
        "x": 3.0,
 | 
			
		||||
        "y": 7.0
 | 
			
		||||
      },
 | 
			
		||||
      "isLocked": false,
 | 
			
		||||
      "linkedName": null
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "anchor": {
 | 
			
		||||
        "x": 5.9001283880171185,
 | 
			
		||||
        "y": 2.9171184022824534
 | 
			
		||||
      },
 | 
			
		||||
      "prevControl": {
 | 
			
		||||
        "x": 4.9001283880171185,
 | 
			
		||||
        "y": 2.9171184022824534
 | 
			
		||||
      },
 | 
			
		||||
      "nextControl": null,
 | 
			
		||||
      "isLocked": false,
 | 
			
		||||
      "linkedName": null
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "rotationTargets": [],
 | 
			
		||||
  "constraintZones": [],
 | 
			
		||||
  "eventMarkers": [],
 | 
			
		||||
  "globalConstraints": {
 | 
			
		||||
    "maxVelocity": 3.0,
 | 
			
		||||
    "maxAcceleration": 3.0,
 | 
			
		||||
    "maxAngularVelocity": 540.0,
 | 
			
		||||
    "maxAngularAcceleration": 720.0
 | 
			
		||||
  },
 | 
			
		||||
  "goalEndState": {
 | 
			
		||||
    "velocity": 0,
 | 
			
		||||
    "rotation": 0,
 | 
			
		||||
    "rotateFast": false
 | 
			
		||||
  },
 | 
			
		||||
  "reversed": false,
 | 
			
		||||
  "folder": null,
 | 
			
		||||
  "previewStartingState": {
 | 
			
		||||
    "rotation": 0,
 | 
			
		||||
    "velocity": 0
 | 
			
		||||
  },
 | 
			
		||||
  "useDefaultConstraints": true
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										8
									
								
								src/main/deploy/swerve/controllerproperties.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/main/deploy/swerve/controllerproperties.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
{
 | 
			
		||||
  "angleJoystickRadiusDeadband": 0.5,
 | 
			
		||||
  "heading": {
 | 
			
		||||
    "p": 0.4,
 | 
			
		||||
    "i": 0,
 | 
			
		||||
    "d": 0.01
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										30
									
								
								src/main/deploy/swerve/modules/backleft.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								src/main/deploy/swerve/modules/backleft.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
{
 | 
			
		||||
  "location": {
 | 
			
		||||
    "front": -12.375,
 | 
			
		||||
    "left": 12.375
 | 
			
		||||
  },
 | 
			
		||||
  "absoluteEncoderOffset":209.443,
 | 
			
		||||
  "drive": {
 | 
			
		||||
    "type": "talonFX",
 | 
			
		||||
    "id": 8,
 | 
			
		||||
    "canbus": null
 | 
			
		||||
  },
 | 
			
		||||
  "angle": {
 | 
			
		||||
    "type": "talonFX",
 | 
			
		||||
    "id": 9,
 | 
			
		||||
    "canbus": null
 | 
			
		||||
  },
 | 
			
		||||
  "inverted": {
 | 
			
		||||
    "angle": true,
 | 
			
		||||
    "drive": false
 | 
			
		||||
  },
 | 
			
		||||
  "conversionFactor": {
 | 
			
		||||
    "angle": 0,
 | 
			
		||||
    "drive": 0
 | 
			
		||||
  },
 | 
			
		||||
  "encoder": {
 | 
			
		||||
    "type": "cancoder",
 | 
			
		||||
    "id": 6,
 | 
			
		||||
    "canbus": null
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										30
									
								
								src/main/deploy/swerve/modules/backright.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								src/main/deploy/swerve/modules/backright.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
{
 | 
			
		||||
  "location": {
 | 
			
		||||
    "front": -12.375,
 | 
			
		||||
    "left": -12.375
 | 
			
		||||
  },
 | 
			
		||||
  "absoluteEncoderOffset": 5.537,
 | 
			
		||||
  "drive": {
 | 
			
		||||
    "type": "talonFX",
 | 
			
		||||
    "id": 11,
 | 
			
		||||
    "canbus": null
 | 
			
		||||
  },
 | 
			
		||||
  "angle": {
 | 
			
		||||
    "type": "talonFX",
 | 
			
		||||
    "id": 12,
 | 
			
		||||
    "canbus": null
 | 
			
		||||
  },
 | 
			
		||||
  "inverted": {
 | 
			
		||||
    "angle": true,
 | 
			
		||||
    "drive": false
 | 
			
		||||
  },
 | 
			
		||||
  "conversionFactor": {
 | 
			
		||||
    "angle": 0,
 | 
			
		||||
    "drive": 0
 | 
			
		||||
  },
 | 
			
		||||
  "encoder": {
 | 
			
		||||
    "type": "cancoder",
 | 
			
		||||
    "id": 7,
 | 
			
		||||
    "canbus": null
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										30
									
								
								src/main/deploy/swerve/modules/frontleft.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								src/main/deploy/swerve/modules/frontleft.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
{
 | 
			
		||||
  "location": {
 | 
			
		||||
    "front": 12.375,
 | 
			
		||||
    "left": 12.375
 | 
			
		||||
  },
 | 
			
		||||
  "absoluteEncoderOffset":258.223 ,
 | 
			
		||||
  "drive": {
 | 
			
		||||
    "type": "talonFX",
 | 
			
		||||
    "id": 2,
 | 
			
		||||
    "canbus": null
 | 
			
		||||
  },
 | 
			
		||||
  "angle": {
 | 
			
		||||
    "type": "talonFX",
 | 
			
		||||
    "id": 3,
 | 
			
		||||
    "canbus": null
 | 
			
		||||
  },
 | 
			
		||||
  "inverted": {
 | 
			
		||||
    "angle": true,
 | 
			
		||||
    "drive": false
 | 
			
		||||
  },
 | 
			
		||||
  "conversionFactor": {
 | 
			
		||||
    "angle": 0,
 | 
			
		||||
    "drive": 0
 | 
			
		||||
  },
 | 
			
		||||
  "encoder": {
 | 
			
		||||
    "type": "cancoder",
 | 
			
		||||
    "id": 4,
 | 
			
		||||
    "canbus": null
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										30
									
								
								src/main/deploy/swerve/modules/frontright.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								src/main/deploy/swerve/modules/frontright.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
{
 | 
			
		||||
  "location": {
 | 
			
		||||
    "front": 12.375,
 | 
			
		||||
    "left": -12.375
 | 
			
		||||
  },
 | 
			
		||||
  "absoluteEncoderOffset": 110.215,
 | 
			
		||||
  "drive": {
 | 
			
		||||
    "type": "talonFX",
 | 
			
		||||
    "id": 18,
 | 
			
		||||
    "canbus": null
 | 
			
		||||
  },
 | 
			
		||||
  "angle": {
 | 
			
		||||
    "type": "talonFX",
 | 
			
		||||
    "id": 17,
 | 
			
		||||
    "canbus": null
 | 
			
		||||
  },
 | 
			
		||||
  "inverted": {
 | 
			
		||||
    "angle": true,
 | 
			
		||||
    "drive": false
 | 
			
		||||
  },
 | 
			
		||||
  "conversionFactor": {
 | 
			
		||||
    "angle": 0,
 | 
			
		||||
    "drive": 0
 | 
			
		||||
  },
 | 
			
		||||
  "encoder": {
 | 
			
		||||
    "type": "cancoder",
 | 
			
		||||
    "id": 5,
 | 
			
		||||
    "canbus": null
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								src/main/deploy/swerve/modules/physicalproperties.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/main/deploy/swerve/modules/physicalproperties.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
{
 | 
			
		||||
  "optimalVoltage": 12,
 | 
			
		||||
  "wheelGripCoefficientOfFriction": 1.19,
 | 
			
		||||
  "currentLimit": {
 | 
			
		||||
    "drive": 40,
 | 
			
		||||
    "angle": 20
 | 
			
		||||
  },
 | 
			
		||||
  "conversionFactor": {
 | 
			
		||||
    "angle": 16.8,
 | 
			
		||||
    "drive": 0.04
 | 
			
		||||
  },
 | 
			
		||||
  "rampRate": {
 | 
			
		||||
    "drive": 0.25,
 | 
			
		||||
    "angle": 0.25
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								src/main/deploy/swerve/modules/pidfproperties.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/main/deploy/swerve/modules/pidfproperties.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
{
 | 
			
		||||
  "drive": {
 | 
			
		||||
    "p": 0.0020645,
 | 
			
		||||
    "i": 0,
 | 
			
		||||
    "d": 0,
 | 
			
		||||
    "f": 0,
 | 
			
		||||
    "iz": 0
 | 
			
		||||
  },
 | 
			
		||||
  "angle": {
 | 
			
		||||
    "p": 0.01,
 | 
			
		||||
    "i": 0,
 | 
			
		||||
    "d": 0,
 | 
			
		||||
    "f": 0,
 | 
			
		||||
    "iz": 0
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										14
									
								
								src/main/deploy/swerve/swervedrive.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/main/deploy/swerve/swervedrive.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
{
 | 
			
		||||
  "imu": {
 | 
			
		||||
    "type": "pigeon",
 | 
			
		||||
    "id": 0,
 | 
			
		||||
    "canbus": null
 | 
			
		||||
  },
 | 
			
		||||
  "invertedIMU": false,
 | 
			
		||||
  "modules": [
 | 
			
		||||
    "frontleft.json",
 | 
			
		||||
    "frontright.json",
 | 
			
		||||
    "backleft.json",
 | 
			
		||||
    "backright.json"
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										38
									
								
								src/main/java/frc/robot/Commands/Desaccumuler.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								src/main/java/frc/robot/Commands/Desaccumuler.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
			
		||||
// Copyright (c) FIRST and other WPILib contributors.
 | 
			
		||||
// Open Source Software; you can modify and/or share it under the terms of
 | 
			
		||||
// the WPILib BSD license file in the root directory of this project.
 | 
			
		||||
 | 
			
		||||
package frc.robot.Commands;
 | 
			
		||||
import edu.wpi.first.wpilibj2.command.Command;
 | 
			
		||||
import frc.robot.Subsystems.Accumulateur;
 | 
			
		||||
 | 
			
		||||
public class Desaccumuler extends Command {
 | 
			
		||||
  private Accumulateur accumulateur;
 | 
			
		||||
  /** Creates a new Desaccumuler. */
 | 
			
		||||
  public Desaccumuler(Accumulateur accumulateur){
 | 
			
		||||
    this.accumulateur = accumulateur;
 | 
			
		||||
    addRequirements(accumulateur);
 | 
			
		||||
    // Use addRequirements() here to declare subsystem dependencies.
 | 
			
		||||
  }
 | 
			
		||||
  // Called when the command is initially scheduled.
 | 
			
		||||
  @Override
 | 
			
		||||
  public void initialize() {
 | 
			
		||||
  
 | 
			
		||||
  }
 | 
			
		||||
  // Called every time the scheduler runs while the command is scheduled.
 | 
			
		||||
  @Override
 | 
			
		||||
  public void execute() {
 | 
			
		||||
    if(accumulateur.photocell()){accumulateur.desaccumule(0.1);}
 | 
			
		||||
    
 | 
			
		||||
  }
 | 
			
		||||
  // Called once the command ends or is interrupted.
 | 
			
		||||
  @Override
 | 
			
		||||
  public void end(boolean interrupted) {
 | 
			
		||||
   accumulateur.desaccumule(0);
 | 
			
		||||
  }
 | 
			
		||||
  // Returns true when the command should end.
 | 
			
		||||
  @Override
 | 
			
		||||
  public boolean isFinished() {
 | 
			
		||||
    return false;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										51
									
								
								src/main/java/frc/robot/Commands/FollowAprilTag.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								src/main/java/frc/robot/Commands/FollowAprilTag.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,51 @@
 | 
			
		||||
// Copyright (c) FIRST and other WPILib contributors.
 | 
			
		||||
// Open Source Software; you can modify and/or share it under the terms of
 | 
			
		||||
// the WPILib BSD license file in the root directory of this project.
 | 
			
		||||
 | 
			
		||||
package frc.robot.Commands;
 | 
			
		||||
import edu.wpi.first.wpilibj2.command.Command;
 | 
			
		||||
import frc.robot.Subsystems.Lanceur;
 | 
			
		||||
import frc.robot.Subsystems.Limelight3G;
 | 
			
		||||
 | 
			
		||||
public class FollowAprilTag extends Command {
 | 
			
		||||
 | 
			
		||||
  private Limelight3G enlignement;
 | 
			
		||||
  private Lanceur lanceur;
 | 
			
		||||
  /** Creates a new Limelight3g. */
 | 
			
		||||
  public FollowAprilTag(Limelight3G enlignement, Lanceur lanceur) {
 | 
			
		||||
    // Use addRequirements() here to declare subsystem dependencies.
 | 
			
		||||
    this.lanceur = lanceur;
 | 
			
		||||
    this.enlignement = enlignement;
 | 
			
		||||
    addRequirements(lanceur, enlignement);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Called when the command is initially scheduled.
 | 
			
		||||
  @Override
 | 
			
		||||
  public void initialize() {}
 | 
			
		||||
 | 
			
		||||
  // Called every time the scheduler runs while the command is scheduled.
 | 
			
		||||
  @Override
 | 
			
		||||
  public void execute() {
 | 
			
		||||
 | 
			
		||||
    if (enlignement.getv()==1)  
 | 
			
		||||
    {
 | 
			
		||||
      lanceur.tourelRotation(0,0, enlignement.getx()/30);
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
      lanceur.tourelRotation(0, 0, 0);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Called once the command ends or is interrupted.
 | 
			
		||||
  @Override
 | 
			
		||||
  public void end(boolean interrupted) {
 | 
			
		||||
    lanceur.tourelRotation(0, 0, 0);
 | 
			
		||||
  }
 | 
			
		||||
  // Returns true when the command should end.
 | 
			
		||||
  @Override
 | 
			
		||||
  public boolean isFinished() {
 | 
			
		||||
    return false;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -3,7 +3,6 @@
 | 
			
		||||
// the WPILib BSD license file in the root directory of this project.
 | 
			
		||||
 | 
			
		||||
package frc.robot.Commands;
 | 
			
		||||
 | 
			
		||||
import edu.wpi.first.wpilibj2.command.Command;
 | 
			
		||||
import frc.robot.Subsystems.Lanceur;
 | 
			
		||||
 | 
			
		||||
@@ -15,25 +14,21 @@ public class Lancer extends Command {
 | 
			
		||||
    addRequirements(lanceur);
 | 
			
		||||
    // Use addRequirements() here to declare subsystem dependencies.
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Called when the command is initially scheduled.
 | 
			
		||||
  @Override
 | 
			
		||||
  public void initialize() {
 | 
			
		||||
    lanceur.setPID(0, 0, 0);
 | 
			
		||||
    lanceur.PIDlanceur(0, 0, 0);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Called every time the scheduler runs while the command is scheduled.
 | 
			
		||||
  @Override
 | 
			
		||||
  public void execute() {
 | 
			
		||||
    lanceur.lance(0.5);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Called once the command ends or is interrupted.
 | 
			
		||||
  @Override
 | 
			
		||||
  public void end(boolean interrupted) {
 | 
			
		||||
    lanceur.lance(0);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Returns true when the command should end.
 | 
			
		||||
  @Override
 | 
			
		||||
  public boolean isFinished() {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										47
									
								
								src/main/java/frc/robot/Commands/Tracker_Couleur_Forme.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								src/main/java/frc/robot/Commands/Tracker_Couleur_Forme.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
// Copyright (c) FIRST and other WPILib contributors.
 | 
			
		||||
// Open Source Software; you can modify and/or share it under the terms of
 | 
			
		||||
// the WPILib BSD license file in the root directory of this project.
 | 
			
		||||
 | 
			
		||||
package frc.robot.Commands;
 | 
			
		||||
 | 
			
		||||
import edu.wpi.first.wpilibj2.command.Command;
 | 
			
		||||
import frc.robot.Subsystems.Limelight3G;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
public class Tracker_Couleur_Forme extends Command {
 | 
			
		||||
  /** Creates a new Tracker_Couleur_Forme. */
 | 
			
		||||
  private Limelight3G pipeline;
 | 
			
		||||
  public Tracker_Couleur_Forme(Limelight3G tracker_couleur, Limelight3G tracker_forme) {
 | 
			
		||||
    // Use addRequirements() here to declare subsystem dependencies.
 | 
			
		||||
    this.pipeline = pipeline;
 | 
			
		||||
    this.tracker_couleur = tracker_couleur;
 | 
			
		||||
    this.tracker_forme = tracker_forme;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Called when the command is initially scheduled.
 | 
			
		||||
  @Override
 | 
			
		||||
  public void initialize() {}
 | 
			
		||||
 | 
			
		||||
  // Called every time the scheduler runs while the command is scheduled.
 | 
			
		||||
  @Override
 | 
			
		||||
  public void execute() {
 | 
			
		||||
    if (pipeline == 1) {
 | 
			
		||||
      Limelight3G.tracker_couleur;
 | 
			
		||||
    }
 | 
			
		||||
    else if (pipeline == 2){
 | 
			
		||||
      Limelight3G.tracker_forme;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Called once the command ends or is interrupted.
 | 
			
		||||
  @Override
 | 
			
		||||
  public void end(boolean interrupted) {}
 | 
			
		||||
 | 
			
		||||
  // Returns true when the command should end.
 | 
			
		||||
  @Override
 | 
			
		||||
  public boolean isFinished() {
 | 
			
		||||
    return false;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -4,15 +4,47 @@
 | 
			
		||||
 | 
			
		||||
package frc.robot;
 | 
			
		||||
 | 
			
		||||
import edu.wpi.first.math.MathUtil;
 | 
			
		||||
import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard;
 | 
			
		||||
import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab;
 | 
			
		||||
import edu.wpi.first.wpilibj2.command.Command;
 | 
			
		||||
import edu.wpi.first.wpilibj2.command.Commands;
 | 
			
		||||
import edu.wpi.first.wpilibj2.command.RunCommand;
 | 
			
		||||
import edu.wpi.first.wpilibj2.command.button.CommandXboxController;
 | 
			
		||||
import frc.robot.Commands.Desaccumuler;
 | 
			
		||||
import frc.robot.Commands.FollowAprilTag;
 | 
			
		||||
import frc.robot.Commands.Lancer;
 | 
			
		||||
import frc.robot.Subsystems.Accumulateur;
 | 
			
		||||
import frc.robot.Subsystems.Drive;
 | 
			
		||||
import frc.robot.Subsystems.Lanceur;
 | 
			
		||||
import frc.robot.Subsystems.Limelight3G;
 | 
			
		||||
 | 
			
		||||
public class RobotContainer {
 | 
			
		||||
  Lanceur lanceur= new Lanceur();
 | 
			
		||||
  Accumulateur accumulateur = new Accumulateur();
 | 
			
		||||
  Limelight3G limelight3G = new Limelight3G();
 | 
			
		||||
  Drive drive = new Drive();
 | 
			
		||||
  ShuffleboardTab dashboard = Shuffleboard.getTab("dashboard");
 | 
			
		||||
  CommandXboxController manette = new CommandXboxController(0);
 | 
			
		||||
  public RobotContainer() {
 | 
			
		||||
    dashboard.addCamera("limelight3G", "limelight3G","limelight.local:5800")
 | 
			
		||||
    .withSize(3,4)
 | 
			
		||||
    .withPosition(0,0);
 | 
			
		||||
    dashboard.addCamera("limelight3", "limelight3","limelight.local:5800")
 | 
			
		||||
    .withSize(3,4)
 | 
			
		||||
    .withPosition(3,0);  
 | 
			
		||||
    configureBindings();
 | 
			
		||||
    drive.setDefaultCommand(new RunCommand(()->{
 | 
			
		||||
     drive.drive(-MathUtil.applyDeadband(manette.getRightX(),0.2), MathUtil.applyDeadband(-manette.getRightY(),0.2), MathUtil.applyDeadband(-manette.getRightX(), 0.2));
 | 
			
		||||
    },drive));
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  private void configureBindings() {
 | 
			
		||||
 | 
			
		||||
  private void configureBindings() {}
 | 
			
		||||
    manette.x().whileTrue(new Lancer(lanceur));
 | 
			
		||||
    manette.leftBumper().toggleOnTrue(new FollowAprilTag(limelight3G, lanceur));
 | 
			
		||||
    manette.a().whileTrue(new Desaccumuler(accumulateur));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public Command getAutonomousCommand() {
 | 
			
		||||
    return Commands.print("No autonomous command configured");
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										46
									
								
								src/main/java/frc/robot/Subsystems/Accumulateur.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								src/main/java/frc/robot/Subsystems/Accumulateur.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
			
		||||
// Copyright (c) FIRST and other WPILib contributors.
 | 
			
		||||
// Open Source Software; you can modify and/or share it under the terms of
 | 
			
		||||
// the WPILib BSD license file in the root directory of this project.
 | 
			
		||||
 | 
			
		||||
package frc.robot.Subsystems;
 | 
			
		||||
import edu.wpi.first.networktables.GenericEntry;
 | 
			
		||||
import edu.wpi.first.wpilibj.DigitalInput;
 | 
			
		||||
import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard;
 | 
			
		||||
import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab;
 | 
			
		||||
import edu.wpi.first.wpilibj2.command.SubsystemBase;
 | 
			
		||||
import com.ctre.phoenix.motorcontrol.can.WPI_TalonSRX;
 | 
			
		||||
public class Accumulateur extends SubsystemBase {
 | 
			
		||||
  
 | 
			
		||||
  /** Creates a new Accumulateur. */
 | 
			
		||||
  public Accumulateur() {dashboard.addBoolean("photocellacc", this::photocell).withSize(1, 1).withPosition(0, 1);
 | 
			
		||||
     dashboard.addBoolean("photocellacc2", this::photocell).withSize(1, 1).withPosition(0, 1);
 | 
			
		||||
    }
 | 
			
		||||
  ShuffleboardTab dashboard = Shuffleboard.getTab("dashboard");
 | 
			
		||||
  
 | 
			
		||||
  private GenericEntry vitesse =
 | 
			
		||||
      dashboard.add("vitesseacc", 0.1)
 | 
			
		||||
      .withSize(1, 1)
 | 
			
		||||
      .withPosition(0, 4)
 | 
			
		||||
      .getEntry(); 
 | 
			
		||||
      
 | 
			
		||||
  final WPI_TalonSRX accumulateur1 = new WPI_TalonSRX(0);
 | 
			
		||||
  final WPI_TalonSRX accumulateur2 = new WPI_TalonSRX(10);
 | 
			
		||||
  final DigitalInput photocell = new DigitalInput(94);
 | 
			
		||||
  final DigitalInput photocell2 = new DigitalInput(93);
 | 
			
		||||
  public void encodeur(){
 | 
			
		||||
  }
 | 
			
		||||
  public boolean photocell(){
 | 
			
		||||
    return photocell.get();
 | 
			
		||||
  }
 | 
			
		||||
  public void desaccumule(double vitesse){
 | 
			
		||||
    accumulateur1.set(vitesse);
 | 
			
		||||
    accumulateur2.set(-vitesse);
 | 
			
		||||
  }
 | 
			
		||||
  public void desaccumule(){
 | 
			
		||||
    desaccumule(vitesse.getDouble(0.9));
 | 
			
		||||
  }
 | 
			
		||||
  @Override
 | 
			
		||||
  public void periodic() {
 | 
			
		||||
    // This method will be called once per scheduler run
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										48
									
								
								src/main/java/frc/robot/Subsystems/Drive.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								src/main/java/frc/robot/Subsystems/Drive.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,48 @@
 | 
			
		||||
// Copyright (c) FIRST and other WPILib contributors.
 | 
			
		||||
// Open Source Software; you can modify and/or share it under the terms of
 | 
			
		||||
// the WPILib BSD license file in the root directory of this project.
 | 
			
		||||
 | 
			
		||||
package frc.robot.Subsystems;
 | 
			
		||||
import java.io.File;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import com.ctre.phoenix6.hardware.Pigeon2;
 | 
			
		||||
import edu.wpi.first.math.geometry.Translation2d;
 | 
			
		||||
import edu.wpi.first.math.kinematics.SwerveModulePosition;
 | 
			
		||||
import edu.wpi.first.wpilibj.Filesystem;
 | 
			
		||||
import edu.wpi.first.wpilibj2.command.SubsystemBase;
 | 
			
		||||
import swervelib.SwerveDrive;
 | 
			
		||||
import swervelib.parser.SwerveParser;
 | 
			
		||||
 | 
			
		||||
public class Drive extends SubsystemBase {
 | 
			
		||||
 | 
			
		||||
    SwerveDrive swerveDrive;
 | 
			
		||||
 | 
			
		||||
  File swerveJsonDirectory = new File(Filesystem.getDeployDirectory(),"swerve");
 | 
			
		||||
  
 | 
			
		||||
  Pigeon2 Gyro = new Pigeon2(0);
 | 
			
		||||
   
 | 
			
		||||
  public void drive(double x, double y, double zRotation){
 | 
			
		||||
    swerveDrive.drive(new Translation2d(x*5, y*5), zRotation*4, true, false);
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  public Drive() {
 | 
			
		||||
     try {
 | 
			
		||||
      this.swerveDrive = new SwerveParser(swerveJsonDirectory).createSwerveDrive(5);
 | 
			
		||||
      swerveDrive.setHeadingCorrection(true);
 | 
			
		||||
    } catch (IOException e) {
 | 
			
		||||
      e.printStackTrace();
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  public void restgyroscope(){
 | 
			
		||||
    Gyro.reset();
 | 
			
		||||
  }
 | 
			
		||||
  public SwerveModulePosition[] distance(){
 | 
			
		||||
    return swerveDrive.getModulePositions();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  @Override
 | 
			
		||||
  public void periodic() {
 | 
			
		||||
    // This method will be called once per scheduler run
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -6,28 +6,66 @@ package frc.robot.Subsystems;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
import com.ctre.phoenix.motorcontrol.FeedbackDevice;
 | 
			
		||||
import com.ctre.phoenix.motorcontrol.StatusFrameEnhanced;
 | 
			
		||||
import com.ctre.phoenix.motorcontrol.can.WPI_TalonSRX;
 | 
			
		||||
 | 
			
		||||
import com.revrobotics.CANSparkMax;
 | 
			
		||||
import com.revrobotics.CANSparkLowLevel.MotorType;
 | 
			
		||||
 | 
			
		||||
import edu.wpi.first.networktables.GenericEntry;
 | 
			
		||||
import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard;
 | 
			
		||||
import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab;
 | 
			
		||||
import edu.wpi.first.wpilibj2.command.SubsystemBase;
 | 
			
		||||
 | 
			
		||||
public class Lanceur extends SubsystemBase {
 | 
			
		||||
  /** Creates a new Lanceur. */
 | 
			
		||||
  public Lanceur() {}
 | 
			
		||||
  ShuffleboardTab dashboard = Shuffleboard.getTab("dashboard");
 | 
			
		||||
  
 | 
			
		||||
  final WPI_TalonSRX lanceur1 = new WPI_TalonSRX(0);
 | 
			
		||||
  final WPI_TalonSRX lanceur2 = new WPI_TalonSRX(1);
 | 
			
		||||
  final CANSparkMax tourel = new CANSparkMax(2, MotorType.kBrushed);
 | 
			
		||||
  final CANSparkMax tourelle = new CANSparkMax(2, MotorType.kBrushed);
 | 
			
		||||
  private GenericEntry vitesse =
 | 
			
		||||
        dashboard.add("vitesselanceur", 0.2)
 | 
			
		||||
        .withSize(0,0)
 | 
			
		||||
        .withPosition(1, 4)
 | 
			
		||||
        .getEntry();
 | 
			
		||||
        private GenericEntry rotation =
 | 
			
		||||
        dashboard.add("rottourel", 0.2)
 | 
			
		||||
        .withSize(0,0)
 | 
			
		||||
        .withPosition(1, 5)
 | 
			
		||||
        .getEntry();
 | 
			
		||||
  public void encodeur(double distance){
 | 
			
		||||
    lanceur1.configSelectedFeedbackSensor(FeedbackDevice.CTRE_MagEncoder_Relative);
 | 
			
		||||
    lanceur2.configSelectedFeedbackSensor(FeedbackDevice.CTRE_MagEncoder_Relative);
 | 
			
		||||
    lanceur1.setStatusFramePeriod(StatusFrameEnhanced.Status_2_Feedback0, 1);
 | 
			
		||||
  }
 | 
			
		||||
  public void masterslave(){
 | 
			
		||||
    lanceur2.follow(lanceur1);
 | 
			
		||||
    lanceur2.setInverted(true);
 | 
			
		||||
  }
 | 
			
		||||
  public void lance(double vitesse){
 | 
			
		||||
    lanceur1.set(vitesse);
 | 
			
		||||
    lanceur2.set(-vitesse);
 | 
			
		||||
    lanceur1.set(vitesse);lanceur2.set(vitesse);
 | 
			
		||||
  }
 | 
			
		||||
  public void tourelRotation(double vitesse){
 | 
			
		||||
    tourel.set(vitesse);
 | 
			
		||||
  public void lance(){  
 | 
			
		||||
    lance(vitesse.getDouble(0.2));
 | 
			
		||||
  }
 | 
			
		||||
  public void setPID(double p, double i, int d) {
 | 
			
		||||
  public void tourelRotation(double x, double y, double rotation){
 | 
			
		||||
    tourelle.set(rotation);
 | 
			
		||||
  }
 | 
			
		||||
  public void tourelRotation(){
 | 
			
		||||
    tourelle.set(rotation.getDouble(0.1));
 | 
			
		||||
  }
 | 
			
		||||
  public double vitessetourel(){
 | 
			
		||||
   return(tourelle.getEncoder().getVelocity()); 
 | 
			
		||||
  }
 | 
			
		||||
  public double distancetourel(){
 | 
			
		||||
    return(tourelle.getEncoder().getPosition());
 | 
			
		||||
  }
 | 
			
		||||
  public void PIDlanceur(double p, double i, double d) {
 | 
			
		||||
   lanceur1.config_kP(0, p);
 | 
			
		||||
   lanceur1.config_kI(0, i);
 | 
			
		||||
   lanceur1.config_kD(0, d);
 | 
			
		||||
  }
 | 
			
		||||
  @Override
 | 
			
		||||
  public void periodic() {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										51
									
								
								src/main/java/frc/robot/Subsystems/Limelight3G.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								src/main/java/frc/robot/Subsystems/Limelight3G.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,51 @@
 | 
			
		||||
// Copyright (c) FIRST and other WPILib contributors.
 | 
			
		||||
// Open Source Software; you can modify and/or share it under the terms of
 | 
			
		||||
// the WPILib BSD license file in the root directory of this project.
 | 
			
		||||
 | 
			
		||||
package frc.robot.Subsystems;
 | 
			
		||||
 | 
			
		||||
import edu.wpi.first.wpilibj2.command.SubsystemBase;
 | 
			
		||||
import edu.wpi.first.net.PortForwarder;
 | 
			
		||||
import edu.wpi.first.networktables.NetworkTable;
 | 
			
		||||
import edu.wpi.first.networktables.NetworkTableEntry;
 | 
			
		||||
import edu.wpi.first.networktables.NetworkTableInstance;
 | 
			
		||||
import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard;
 | 
			
		||||
import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab;
 | 
			
		||||
 | 
			
		||||
public class Limelight3G extends SubsystemBase {
 | 
			
		||||
  ShuffleboardTab dashboard = Shuffleboard.getTab("dashboard");
 | 
			
		||||
  NetworkTable table = NetworkTableInstance.getDefault().getTable("limelight");
 | 
			
		||||
  NetworkTableEntry tx = table.getEntry("tx");
 | 
			
		||||
  NetworkTableEntry ty = table.getEntry("ty");
 | 
			
		||||
  NetworkTableEntry pipeline = table.getEntry("pipeline");
 | 
			
		||||
  NetworkTableEntry tv = table.getEntry("tv");
 | 
			
		||||
  NetworkTableEntry camMode = table.getEntry("camMode");
 | 
			
		||||
  NetworkTableEntry tid = table.getEntry("tid");
 | 
			
		||||
  /** Creates a new Limelight. */
 | 
			
		||||
  public Limelight3G() {
 | 
			
		||||
    for (int port = 5800; port <= 5807; port++) {
 | 
			
		||||
      PortForwarder.add(port, "limelight.local", port);
 | 
			
		||||
  }}
 | 
			
		||||
  public  double getx(){
 | 
			
		||||
    return tx.getDouble(0); 
 | 
			
		||||
  }
 | 
			
		||||
  public double gety(){
 | 
			
		||||
    return ty.getDouble(0);
 | 
			
		||||
  }
 | 
			
		||||
  public double getv(){
 | 
			
		||||
    return tv.getDouble(0);
 | 
			
		||||
  }
 | 
			
		||||
  public void setpipeline(){
 | 
			
		||||
     pipeline.setNumber(0);
 | 
			
		||||
  }
 | 
			
		||||
  public void setcamMode(){
 | 
			
		||||
    camMode.setNumber(0);
 | 
			
		||||
  }
 | 
			
		||||
  public double getTid(){
 | 
			
		||||
    return tid.getDouble(0);
 | 
			
		||||
  }
 | 
			
		||||
  @Override
 | 
			
		||||
  public void periodic() {
 | 
			
		||||
    // This method will be called once per scheduler run
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										38
									
								
								vendordeps/PathplannerLib.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								vendordeps/PathplannerLib.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
			
		||||
{
 | 
			
		||||
    "fileName": "PathplannerLib.json",
 | 
			
		||||
    "name": "PathplannerLib",
 | 
			
		||||
    "version": "2024.2.8",
 | 
			
		||||
    "uuid": "1b42324f-17c6-4875-8e77-1c312bc8c786",
 | 
			
		||||
    "frcYear": "2024",
 | 
			
		||||
    "mavenUrls": [
 | 
			
		||||
        "https://3015rangerrobotics.github.io/pathplannerlib/repo"
 | 
			
		||||
    ],
 | 
			
		||||
    "jsonUrl": "https://3015rangerrobotics.github.io/pathplannerlib/PathplannerLib.json",
 | 
			
		||||
    "javaDependencies": [
 | 
			
		||||
        {
 | 
			
		||||
            "groupId": "com.pathplanner.lib",
 | 
			
		||||
            "artifactId": "PathplannerLib-java",
 | 
			
		||||
            "version": "2024.2.8"
 | 
			
		||||
        }
 | 
			
		||||
    ],
 | 
			
		||||
    "jniDependencies": [],
 | 
			
		||||
    "cppDependencies": [
 | 
			
		||||
        {
 | 
			
		||||
            "groupId": "com.pathplanner.lib",
 | 
			
		||||
            "artifactId": "PathplannerLib-cpp",
 | 
			
		||||
            "version": "2024.2.8",
 | 
			
		||||
            "libName": "PathplannerLib",
 | 
			
		||||
            "headerClassifier": "headers",
 | 
			
		||||
            "sharedLibrary": false,
 | 
			
		||||
            "skipInvalidPlatforms": true,
 | 
			
		||||
            "binaryPlatforms": [
 | 
			
		||||
                "windowsx86-64",
 | 
			
		||||
                "linuxx86-64",
 | 
			
		||||
                "osxuniversal",
 | 
			
		||||
                "linuxathena",
 | 
			
		||||
                "linuxarm32",
 | 
			
		||||
                "linuxarm64"
 | 
			
		||||
            ]
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user