Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/main/deploy/pathplanner/navgrid.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"field_size":{"x":16.54,"y":8.07},"nodeSizeMeters":0.3,"grid":[[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true],[true,true,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,true,true],[true,true,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,true,true,true],[true,true,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,true,true,true,true],[true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true],[true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true],[true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true],[true,true,true,true,true,false,false,false,false,false,false,false,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,true,true,true],[true,true,true,true,true,true,false,false,false,false,false,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,true,true],[true,true,true,true,true,true,false,false,false,false,false,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,true,true,true,true,true],[true,true,true,true,true,true,false,false,false,false,false,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,false,false,false,false,false,false,true,true,true,true,true,true],[true,true,true,true,true,true,false,false,false,false,false,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,false,false,false,false,false,false,true,true,true,true,true,true],[true,true,true,true,true,true,false,false,false,false,false,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,false,false,false,false,false,false,true,true,true,true,true,true],[true,true,true,true,true,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,false,false,false,false,false,false,true,true,true,true,true,true],[true,true,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,false,false,false,false,false,false,true,true,true,true,true,true],[true,true,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,true],[true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true],[true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true],[true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true],[true,true,true,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,true,true],[true,true,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,true,true],[true,true,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,true,true],[true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true],[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true]]}
54 changes: 54 additions & 0 deletions src/main/deploy/pathplanner/paths/Example Path.path
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
{
"version": "2025.0",
"waypoints": [
{
"anchor": {
"x": 4.640294126157407,
"y": 4.038
},
"prevControl": null,
"nextControl": {
"x": 5.640294126157407,
"y": 4.038
},
"isLocked": false,
"linkedName": null
},
{
"anchor": {
"x": 11.916,
"y": 4.038
},
"prevControl": {
"x": 10.916,
"y": 4.038
},
"nextControl": null,
"isLocked": false,
"linkedName": null
}
],
"rotationTargets": [],
"constraintZones": [],
"pointTowardsZones": [],
"eventMarkers": [],
"globalConstraints": {
"maxVelocity": 3.0,
"maxAcceleration": 3.0,
"maxAngularVelocity": 540.0,
"maxAngularAcceleration": 720.0,
"nominalVoltage": 12.0,
"unlimited": false
},
"goalEndState": {
"velocity": 0,
"rotation": 0.0
},
"reversed": false,
"folder": null,
"idealStartingState": {
"velocity": 0,
"rotation": 0.0
},
"useDefaultConstraints": true
}
27 changes: 26 additions & 1 deletion src/main/java/org/carlmontrobotics/Constants.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,14 @@
import com.pathplanner.lib.config.RobotConfig;
import com.pathplanner.lib.path.PathConstraints;

import edu.wpi.first.math.geometry.Pose2d;
import edu.wpi.first.math.geometry.Pose3d;
import edu.wpi.first.math.geometry.Translation2d;
import edu.wpi.first.math.system.plant.DCMotor;
import edu.wpi.first.wpilibj.RobotBase;
import edu.wpi.first.wpilibj.XboxController.Axis;
import edu.wpi.first.wpilibj.XboxController.Button;
import edu.wpi.first.wpilibj2.command.button.POVButton;
import edu.wpi.first.math.util.Units;
import static org.carlmontrobotics.Config.CONFIG;

Expand All @@ -38,7 +41,8 @@ public static final class Driver {
public static final int port = 0;

public static final int slowDriveButton = Button.kLeftBumper.value;
public static final int resetFieldOrientationButton = Button.kRightBumper.value;
public static final int shootOnFlyButton = Button.kRightBumper.value;
public static final int resetFieldOrientationButton = 180; //down dpad
public static final Axis RIGHT_TRIGGER_BUTTON = Axis.kRightTrigger;
public static final Axis LEFT_TRIGGER_BUTTON = Axis.kLeftTrigger;

Expand Down Expand Up @@ -268,5 +272,26 @@ public static class LimeLightc {
public static final int[] sampleLL1_VALID_IDS = {1, 2, 12, 13};
public static final int[] sampleLL2_VALID_IDS = {1, 6, 7, 8, 9, 10, 11, 17, 18, 19, 20, 21, 22};
}

public static class Shooterc {
public static final int masterID = 1; //TODO
public static final boolean masterInverted = false; //TODO
public static final int followerID = 2; //TODO
public static final double kP = 2; //TODO
public static final double kI = 0; //TODO
public static final double kD = 0; //TODO
public static final double gearReduction = 1;
public static final double launchAngleRad = Math.PI/4; //TODO figure out real value
public static final double wheelRadiusMeters = 0.3; //TODO figure out real value
public static final double passiveVelocity = 100; //TODO
public static final double thetaAlignP = 1; //TODO
public static final double toleranceRad = Math.PI/90; //Looks right

//Poses
public static final Pose2d centerOfRedGoal2d = new Pose2d();
public static final Pose2d centerOfBlueGoal2d = new Pose2d();
public static final Pose3d centerOfRedGoal3d = new Pose3d();
public static final Pose3d centerOfBlueGoal3d = new Pose3d();
}
}
//#endregion
12 changes: 5 additions & 7 deletions src/main/java/org/carlmontrobotics/RobotContainer.java
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ public class RobotContainer {

public final Limelight limelight = new Limelight();
public final Drivetrain drivetrain = new Drivetrain(limelight);
public final Shooter shooter = new Shooter();


private SendableChooser<Command> autoChooser = new SendableChooser<>();
Expand All @@ -86,16 +87,12 @@ public RobotContainer() {

SmartDashboard.putData("Auto Chooser", autoChooser);

SmartDashboard.putBoolean("AlignOverride", alignOverride);
SmartDashboard.putBoolean("AutoScoring", autoScoring);
SmartDashboard.putBoolean("AlignOverride", true);
//#endregion
setDefaultCommands();
setBindingsDriver();
setBindingsManipulator();

SmartDashboard.putBoolean("Baby Mode", Config.CONFIG.isBabyMode());
// SmartDashboard.putData("Rotate Command",new RotateToTag(drivetrain, limelight));
SmartDashboard.putString("Alliance", DriverStation.getAlliance().toString());
SmartDashboard.putString("Location", DriverStation.getLocation().toString());
SmartDashboard.putBoolean("Connected to FMS?", DriverStation.isFMSAttached());
Expand All @@ -105,7 +102,7 @@ public RobotContainer() {

//#region ButtonBindings
private void setBindingsDriver() {
new JoystickButton(driverController, Driver.resetFieldOrientationButton)
new POVButton(driverController, Driver.resetFieldOrientationButton)
.onTrue(new InstantCommand(drivetrain::resetFieldOrientation));
axisTrigger(driverController, Driver.RIGHT_TRIGGER_BUTTON, 0.2)
.onTrue(new InstantCommand(()->drivetrain.setFieldOriented(false)))
Expand All @@ -127,12 +124,13 @@ private void RegisterCustomAutos(){}
private void setDefaultCommands() {
drivetrain.setDefaultCommand(new TeleopDrive(
drivetrain,
shooter,
() -> ProcessedAxisValue(driverController, Axis.kLeftY),//.06 drift purple, .10 drift black
() -> ProcessedAxisValue(driverController, Axis.kLeftX),
() -> ProcessedAxisValue(driverController, Axis.kRightX),
() -> driverController.getRawButton(OI.Driver.slowDriveButton),
manipulatorController,
() -> SmartDashboard.getBoolean("Baby Mode", Config.CONFIG.isBabyMode())
() -> SmartDashboard.getBoolean("Baby Mode", Config.CONFIG.isBabyMode()),
() -> driverController.getRawButton(OI.Driver.shootOnFlyButton)
));
}
//#endregion
Expand Down

This file was deleted.

Loading