Compare commits

...

10 Commits

13 changed files with 340 additions and 1 deletions

View File

@ -0,0 +1,8 @@
{
"angleJoystickRadiusDeadband": 0.5,
"heading": {
"p": 0.4,
"i": 0,
"d": 0.01
}
}

View 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
}
}

View File

@ -0,0 +1,30 @@
{
"location": {
"front": -12.375,
"left": -12.375
},
"absoluteEncoderOffset": 5.537,
"drive": {
"type": "sparkmax",
"id": 11,
"canbus": null
},
"angle": {
"type": "sparkmax",
"id": 12,
"canbus": null
},
"inverted": {
"angle": true,
"drive": false
},
"conversionFactor": {
"angle": 0,
"drive": 0
},
"encoder": {
"type": "cancoder",
"id": 7,
"canbus": null
}
}

View 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
}
}

View 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
}
}

View 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
}
}

View 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
}
}

View File

@ -0,0 +1,14 @@
{
"imu": {
"type": "pigeon",
"id": 0,
"canbus": null
},
"invertedIMU": false,
"modules": [
"frontleft.json",
"frontright.json",
"backleft.json",
"backright.json"
]
}

View File

@ -0,0 +1,42 @@
// 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() {
accumulateur.resetencodeur();
}
// Called every time the scheduler runs while the command is scheduled.
@Override
public void execute() {
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;
}
}

View File

@ -0,0 +1,28 @@
// 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.wpilibj.Encoder;
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() {}
final WPI_TalonSRX accumulateur1 = new WPI_TalonSRX(0);
final WPI_TalonSRX accumulateur2 = new WPI_TalonSRX(10);
Encoder encoder = new Encoder(1,0);
public void resetencodeur(){
encoder.reset();
}
public void desaccumule(double vitesse){
accumulateur1.set(vitesse);
accumulateur2.set(-vitesse);
}
@Override
public void periodic() {
// This method will be called once per scheduler run
}
}

View File

@ -0,0 +1,52 @@
// 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
}
}

View File

@ -7,10 +7,11 @@ package frc.robot.Subsystems;
import com.ctre.phoenix.motorcontrol.can.WPI_TalonSRX;
import com.revrobotics.CANSparkMax;
import com.revrobotics.CANSparkLowLevel.MotorType;
import edu.wpi.first.wpilibj.Encoder;
import edu.wpi.first.wpilibj2.command.SubsystemBase;
public class Lanceur extends SubsystemBase {
@ -20,6 +21,10 @@ public class Lanceur extends SubsystemBase {
final WPI_TalonSRX lanceur1 = new WPI_TalonSRX(0);
final WPI_TalonSRX lanceur2 = new WPI_TalonSRX(1);
final CANSparkMax tourel = new CANSparkMax(2, MotorType.kBrushed);
Encoder encoder = new Encoder(0, 1);
public void encodeur(double distance){
encoder.setDistancePerPulse(distance);
}
public void lance(double vitesse){
lanceur1.set(vitesse);
lanceur2.set(-vitesse);

View 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"
]
}
]
}