From 149227892ffe919b8c9e38375f92c90227e9a3b6 Mon Sep 17 00:00:00 2001 From: mimigamin Date: Tue, 31 Mar 2026 16:43:44 -0600 Subject: [PATCH] New Ramp autos --- .../pathplanner/autos/DriveShoot-Hori.auto | 2 +- ...eft.auto => HubCenter-Score-PushLeft.auto} | 0 ...ht.auto => HubCenter-Score-PushRight.auto} | 0 ...core.auto => HubCenter-Station-Score.auto} | 0 .../pathplanner/autos/ShootPreloadBump.auto | 2 +- .../deploy/pathplanner/autos/Test-LClimb.auto | 43 ++++++ .../deploy/pathplanner/autos/Test-RClimb.auto | 43 ++++++ ... LeftRamp-Neutral-Shoot-Neutral-Shoot.auto | 123 +++++++++++++++ .../autos/X. LeftRamp-Neutral-Shoot.auto | 68 +++++++++ ...RightRamp-Neutral-Shoot-Neutral-Shoot.auto | 123 +++++++++++++++ .../autos/X. RightRamp-Neutral-Shoot.auto | 68 +++++++++ .../paths/LeftBump-Neutral-Shoot.path | 128 ++++++++++++++++ .../deploy/pathplanner/paths/LeftBump.path | 59 ++++++++ .../paths/LeftBump2-Neutral2-Shoot2.path | 138 +++++++++++++++++ .../deploy/pathplanner/paths/LeftBump2.path | 59 ++++++++ .../pathplanner/paths/LeftRamp-Shoot.path | 65 ++++++++ .../deploy/pathplanner/paths/LeftTower.path | 75 +++++++++ .../paths/PlayerStation-Shoot.path | 2 +- .../paths/RightBump-Neutral-Shoot.path | 128 ++++++++++++++++ .../deploy/pathplanner/paths/RightBump.path | 59 ++++++++ .../paths/RightBump2-Neutral2-Shoot2.path | 142 ++++++++++++++++++ .../deploy/pathplanner/paths/RightBump2.path | 59 ++++++++ .../pathplanner/paths/RightRamp-Shoot.path | 65 ++++++++ .../deploy/pathplanner/paths/RightTower.path | 65 ++++++++ .../java/frc4388/robot/RobotContainer.java | 39 +++-- .../robot/constants/BuildConstants.java | 12 +- .../robot/constants/FieldConstants.java | 15 +- 27 files changed, 1558 insertions(+), 24 deletions(-) rename src/main/deploy/pathplanner/autos/{X HubCenter-Score-PushLeft.auto => HubCenter-Score-PushLeft.auto} (100%) rename src/main/deploy/pathplanner/autos/{X HubCenter-Score-PushRight.auto => HubCenter-Score-PushRight.auto} (100%) rename src/main/deploy/pathplanner/autos/{X HubCenter-Station-Score.auto => HubCenter-Station-Score.auto} (100%) create mode 100644 src/main/deploy/pathplanner/autos/Test-LClimb.auto create mode 100644 src/main/deploy/pathplanner/autos/Test-RClimb.auto create mode 100644 src/main/deploy/pathplanner/autos/X. LeftRamp-Neutral-Shoot-Neutral-Shoot.auto create mode 100644 src/main/deploy/pathplanner/autos/X. LeftRamp-Neutral-Shoot.auto create mode 100644 src/main/deploy/pathplanner/autos/X. RightRamp-Neutral-Shoot-Neutral-Shoot.auto create mode 100644 src/main/deploy/pathplanner/autos/X. RightRamp-Neutral-Shoot.auto create mode 100644 src/main/deploy/pathplanner/paths/LeftBump-Neutral-Shoot.path create mode 100644 src/main/deploy/pathplanner/paths/LeftBump.path create mode 100644 src/main/deploy/pathplanner/paths/LeftBump2-Neutral2-Shoot2.path create mode 100644 src/main/deploy/pathplanner/paths/LeftBump2.path create mode 100644 src/main/deploy/pathplanner/paths/LeftRamp-Shoot.path create mode 100644 src/main/deploy/pathplanner/paths/LeftTower.path create mode 100644 src/main/deploy/pathplanner/paths/RightBump-Neutral-Shoot.path create mode 100644 src/main/deploy/pathplanner/paths/RightBump.path create mode 100644 src/main/deploy/pathplanner/paths/RightBump2-Neutral2-Shoot2.path create mode 100644 src/main/deploy/pathplanner/paths/RightBump2.path create mode 100644 src/main/deploy/pathplanner/paths/RightRamp-Shoot.path create mode 100644 src/main/deploy/pathplanner/paths/RightTower.path diff --git a/src/main/deploy/pathplanner/autos/DriveShoot-Hori.auto b/src/main/deploy/pathplanner/autos/DriveShoot-Hori.auto index 8765ce9..a537fa2 100644 --- a/src/main/deploy/pathplanner/autos/DriveShoot-Hori.auto +++ b/src/main/deploy/pathplanner/autos/DriveShoot-Hori.auto @@ -39,6 +39,6 @@ } }, "resetOdom": true, - "folder": null, + "folder": "Spring Break Tests", "choreoAuto": false } \ No newline at end of file diff --git a/src/main/deploy/pathplanner/autos/X HubCenter-Score-PushLeft.auto b/src/main/deploy/pathplanner/autos/HubCenter-Score-PushLeft.auto similarity index 100% rename from src/main/deploy/pathplanner/autos/X HubCenter-Score-PushLeft.auto rename to src/main/deploy/pathplanner/autos/HubCenter-Score-PushLeft.auto diff --git a/src/main/deploy/pathplanner/autos/X HubCenter-Score-PushRight.auto b/src/main/deploy/pathplanner/autos/HubCenter-Score-PushRight.auto similarity index 100% rename from src/main/deploy/pathplanner/autos/X HubCenter-Score-PushRight.auto rename to src/main/deploy/pathplanner/autos/HubCenter-Score-PushRight.auto diff --git a/src/main/deploy/pathplanner/autos/X HubCenter-Station-Score.auto b/src/main/deploy/pathplanner/autos/HubCenter-Station-Score.auto similarity index 100% rename from src/main/deploy/pathplanner/autos/X HubCenter-Station-Score.auto rename to src/main/deploy/pathplanner/autos/HubCenter-Station-Score.auto diff --git a/src/main/deploy/pathplanner/autos/ShootPreloadBump.auto b/src/main/deploy/pathplanner/autos/ShootPreloadBump.auto index 43867c9..bc6176b 100644 --- a/src/main/deploy/pathplanner/autos/ShootPreloadBump.auto +++ b/src/main/deploy/pathplanner/autos/ShootPreloadBump.auto @@ -38,6 +38,6 @@ } }, "resetOdom": true, - "folder": null, + "folder": "Spring Break Tests", "choreoAuto": false } \ No newline at end of file diff --git a/src/main/deploy/pathplanner/autos/Test-LClimb.auto b/src/main/deploy/pathplanner/autos/Test-LClimb.auto new file mode 100644 index 0000000..a78950c --- /dev/null +++ b/src/main/deploy/pathplanner/autos/Test-LClimb.auto @@ -0,0 +1,43 @@ +{ + "version": "2025.0", + "command": { + "type": "sequential", + "data": { + "commands": [ + { + "type": "named", + "data": { + "name": "Climber Extended" + } + }, + { + "type": "wait", + "data": { + "waitTime": 0.2 + } + }, + { + "type": "path", + "data": { + "pathName": "LeftTower" + } + }, + { + "type": "wait", + "data": { + "waitTime": 0.2 + } + }, + { + "type": "named", + "data": { + "name": "Climber Retracted" + } + } + ] + } + }, + "resetOdom": true, + "folder": null, + "choreoAuto": false +} \ No newline at end of file diff --git a/src/main/deploy/pathplanner/autos/Test-RClimb.auto b/src/main/deploy/pathplanner/autos/Test-RClimb.auto new file mode 100644 index 0000000..fadd250 --- /dev/null +++ b/src/main/deploy/pathplanner/autos/Test-RClimb.auto @@ -0,0 +1,43 @@ +{ + "version": "2025.0", + "command": { + "type": "sequential", + "data": { + "commands": [ + { + "type": "named", + "data": { + "name": "Climber Extended" + } + }, + { + "type": "wait", + "data": { + "waitTime": 0.2 + } + }, + { + "type": "path", + "data": { + "pathName": "RightTower" + } + }, + { + "type": "wait", + "data": { + "waitTime": 0.2 + } + }, + { + "type": "named", + "data": { + "name": "Climber Retracted" + } + } + ] + } + }, + "resetOdom": true, + "folder": null, + "choreoAuto": false +} \ No newline at end of file diff --git a/src/main/deploy/pathplanner/autos/X. LeftRamp-Neutral-Shoot-Neutral-Shoot.auto b/src/main/deploy/pathplanner/autos/X. LeftRamp-Neutral-Shoot-Neutral-Shoot.auto new file mode 100644 index 0000000..9c3c686 --- /dev/null +++ b/src/main/deploy/pathplanner/autos/X. LeftRamp-Neutral-Shoot-Neutral-Shoot.auto @@ -0,0 +1,123 @@ +{ + "version": "2025.0", + "command": { + "type": "sequential", + "data": { + "commands": [ + { + "type": "parallel", + "data": { + "commands": [ + { + "type": "path", + "data": { + "pathName": "LeftBump" + } + }, + { + "type": "named", + "data": { + "name": "Intake Extended" + } + } + ] + } + }, + { + "type": "named", + "data": { + "name": "BumpOffsetForward" + } + }, + { + "type": "path", + "data": { + "pathName": "LeftBump-Neutral-Shoot" + } + }, + { + "type": "named", + "data": { + "name": "Robot Rev Up" + } + }, + { + "type": "named", + "data": { + "name": "BumpOffsetBackward" + } + }, + { + "type": "path", + "data": { + "pathName": "LeftRamp-Shoot" + } + }, + { + "type": "named", + "data": { + "name": "Robot Shoot" + } + }, + { + "type": "parallel", + "data": { + "commands": [ + { + "type": "path", + "data": { + "pathName": "LeftBump2" + } + }, + { + "type": "named", + "data": { + "name": "Intake Extended" + } + } + ] + } + }, + { + "type": "named", + "data": { + "name": "BumpOffsetForward" + } + }, + { + "type": "path", + "data": { + "pathName": "LeftBump2-Neutral2-Shoot2" + } + }, + { + "type": "named", + "data": { + "name": "BumpOffsetBackward" + } + }, + { + "type": "named", + "data": { + "name": "Robot Rev Up" + } + }, + { + "type": "path", + "data": { + "pathName": "LeftRamp-Shoot" + } + }, + { + "type": "named", + "data": { + "name": "Robot Shoot" + } + } + ] + } + }, + "resetOdom": true, + "folder": null, + "choreoAuto": false +} \ No newline at end of file diff --git a/src/main/deploy/pathplanner/autos/X. LeftRamp-Neutral-Shoot.auto b/src/main/deploy/pathplanner/autos/X. LeftRamp-Neutral-Shoot.auto new file mode 100644 index 0000000..ed38e29 --- /dev/null +++ b/src/main/deploy/pathplanner/autos/X. LeftRamp-Neutral-Shoot.auto @@ -0,0 +1,68 @@ +{ + "version": "2025.0", + "command": { + "type": "sequential", + "data": { + "commands": [ + { + "type": "parallel", + "data": { + "commands": [ + { + "type": "path", + "data": { + "pathName": "LeftBump" + } + }, + { + "type": "named", + "data": { + "name": "Intake Extended" + } + } + ] + } + }, + { + "type": "named", + "data": { + "name": "BumpOffsetForward" + } + }, + { + "type": "path", + "data": { + "pathName": "LeftBump-Neutral-Shoot" + } + }, + { + "type": "named", + "data": { + "name": "Robot Rev Up" + } + }, + { + "type": "named", + "data": { + "name": "BumpOffsetBackward" + } + }, + { + "type": "path", + "data": { + "pathName": "LeftRamp-Shoot" + } + }, + { + "type": "named", + "data": { + "name": "Robot Shoot" + } + } + ] + } + }, + "resetOdom": true, + "folder": null, + "choreoAuto": false +} \ No newline at end of file diff --git a/src/main/deploy/pathplanner/autos/X. RightRamp-Neutral-Shoot-Neutral-Shoot.auto b/src/main/deploy/pathplanner/autos/X. RightRamp-Neutral-Shoot-Neutral-Shoot.auto new file mode 100644 index 0000000..7597fbd --- /dev/null +++ b/src/main/deploy/pathplanner/autos/X. RightRamp-Neutral-Shoot-Neutral-Shoot.auto @@ -0,0 +1,123 @@ +{ + "version": "2025.0", + "command": { + "type": "sequential", + "data": { + "commands": [ + { + "type": "parallel", + "data": { + "commands": [ + { + "type": "path", + "data": { + "pathName": "RightBump" + } + }, + { + "type": "named", + "data": { + "name": "Intake Extended" + } + } + ] + } + }, + { + "type": "named", + "data": { + "name": "BumpOffsetForward" + } + }, + { + "type": "path", + "data": { + "pathName": "RightBump-Neutral-Shoot" + } + }, + { + "type": "named", + "data": { + "name": "Robot Rev Up" + } + }, + { + "type": "named", + "data": { + "name": "BumpOffsetBackward" + } + }, + { + "type": "path", + "data": { + "pathName": "RightRamp-Shoot" + } + }, + { + "type": "named", + "data": { + "name": "Robot Shoot" + } + }, + { + "type": "parallel", + "data": { + "commands": [ + { + "type": "path", + "data": { + "pathName": "RightBump2" + } + }, + { + "type": "named", + "data": { + "name": "Intake Extended" + } + } + ] + } + }, + { + "type": "named", + "data": { + "name": "BumpOffsetForward" + } + }, + { + "type": "path", + "data": { + "pathName": "RightBump2-Neutral2-Shoot2" + } + }, + { + "type": "named", + "data": { + "name": "BumpOffsetBackward" + } + }, + { + "type": "named", + "data": { + "name": "Robot Rev Up" + } + }, + { + "type": "path", + "data": { + "pathName": "RightRamp-Shoot" + } + }, + { + "type": "named", + "data": { + "name": "Robot Shoot" + } + } + ] + } + }, + "resetOdom": true, + "folder": null, + "choreoAuto": false +} \ No newline at end of file diff --git a/src/main/deploy/pathplanner/autos/X. RightRamp-Neutral-Shoot.auto b/src/main/deploy/pathplanner/autos/X. RightRamp-Neutral-Shoot.auto new file mode 100644 index 0000000..bdc9076 --- /dev/null +++ b/src/main/deploy/pathplanner/autos/X. RightRamp-Neutral-Shoot.auto @@ -0,0 +1,68 @@ +{ + "version": "2025.0", + "command": { + "type": "sequential", + "data": { + "commands": [ + { + "type": "parallel", + "data": { + "commands": [ + { + "type": "path", + "data": { + "pathName": "RightBump" + } + }, + { + "type": "named", + "data": { + "name": "Intake Extended" + } + } + ] + } + }, + { + "type": "named", + "data": { + "name": "BumpOffsetForward" + } + }, + { + "type": "path", + "data": { + "pathName": "RightBump-Neutral-Shoot" + } + }, + { + "type": "named", + "data": { + "name": "Robot Rev Up" + } + }, + { + "type": "named", + "data": { + "name": "BumpOffsetBackward" + } + }, + { + "type": "path", + "data": { + "pathName": "RightRamp-Shoot" + } + }, + { + "type": "named", + "data": { + "name": "Robot Shoot" + } + } + ] + } + }, + "resetOdom": true, + "folder": null, + "choreoAuto": false +} \ No newline at end of file diff --git a/src/main/deploy/pathplanner/paths/LeftBump-Neutral-Shoot.path b/src/main/deploy/pathplanner/paths/LeftBump-Neutral-Shoot.path new file mode 100644 index 0000000..e9c4794 --- /dev/null +++ b/src/main/deploy/pathplanner/paths/LeftBump-Neutral-Shoot.path @@ -0,0 +1,128 @@ +{ + "version": "2025.0", + "waypoints": [ + { + "anchor": { + "x": 5.968, + "y": 5.709 + }, + "prevControl": null, + "nextControl": { + "x": 6.105960476887348, + "y": 5.9174871862178 + }, + "isLocked": false, + "linkedName": null + }, + { + "anchor": { + "x": 7.781615384615385, + "y": 6.976935897435897 + }, + "prevControl": { + "x": 7.478867821173717, + "y": 7.355370351737978 + }, + "nextControl": { + "x": 7.9377891465039925, + "y": 6.78171869507514 + }, + "isLocked": false, + "linkedName": null + }, + { + "anchor": { + "x": 7.781615384615385, + "y": 4.837346153846154 + }, + "prevControl": { + "x": 7.804249321126013, + "y": 5.08631945546308 + }, + "nextControl": { + "x": 7.758981448104757, + "y": 4.588372852229227 + }, + "isLocked": false, + "linkedName": null + }, + { + "anchor": { + "x": 6.572282051282052, + "y": 5.511782051282052 + }, + "prevControl": { + "x": 6.795888849032032, + "y": 5.623585450157039 + }, + "nextControl": { + "x": 6.348675253532072, + "y": 5.399978652407064 + }, + "isLocked": false, + "linkedName": null + }, + { + "anchor": { + "x": 3.3977820512820527, + "y": 5.511782051282052 + }, + "prevControl": { + "x": 3.6429272202047827, + "y": 5.560811085066598 + }, + "nextControl": null, + "isLocked": false, + "linkedName": null + } + ], + "rotationTargets": [ + { + "waypointRelativePos": 3.4736842105263164, + "rotationDegrees": 112.5 + } + ], + "constraintZones": [], + "pointTowardsZones": [ + { + "fieldPosition": { + "x": 7.0, + "y": 0.0 + }, + "rotationOffset": 0.0, + "minWaypointRelativePos": 0.02657807308969639, + "maxWaypointRelativePos": 2.1705426356589252, + "name": "Point Towards Zone" + }, + { + "fieldPosition": { + "x": 7.0, + "y": 0.0 + }, + "rotationOffset": 180.0, + "minWaypointRelativePos": 2.4983388704318887, + "maxWaypointRelativePos": 3.2956810631229274, + "name": "Point Towards Zone" + } + ], + "eventMarkers": [], + "globalConstraints": { + "maxVelocity": 3.0, + "maxAcceleration": 3.0, + "maxAngularVelocity": 600.0, + "maxAngularAcceleration": 750.0, + "nominalVoltage": 10.0, + "unlimited": false + }, + "goalEndState": { + "velocity": 3.0, + "rotation": 113.07 + }, + "reversed": false, + "folder": null, + "idealStartingState": { + "velocity": 3.0, + "rotation": -90.0 + }, + "useDefaultConstraints": true +} \ No newline at end of file diff --git a/src/main/deploy/pathplanner/paths/LeftBump.path b/src/main/deploy/pathplanner/paths/LeftBump.path new file mode 100644 index 0000000..6a94781 --- /dev/null +++ b/src/main/deploy/pathplanner/paths/LeftBump.path @@ -0,0 +1,59 @@ +{ + "version": "2025.0", + "waypoints": [ + { + "anchor": { + "x": 3.4559230769230784, + "y": 5.709461538461539 + }, + "prevControl": null, + "nextControl": { + "x": 3.7466282051282063, + "y": 5.68620512820513 + }, + "isLocked": false, + "linkedName": null + }, + { + "anchor": { + "x": 5.967615384615385, + "y": 5.709461538461539 + }, + "prevControl": { + "x": 4.746653846153847, + "y": 5.430384615384616 + }, + "nextControl": null, + "isLocked": false, + "linkedName": null + } + ], + "rotationTargets": [ + { + "waypointRelativePos": 0.5211640211640187, + "rotationDegrees": -112.5 + } + ], + "constraintZones": [], + "pointTowardsZones": [], + "eventMarkers": [], + "globalConstraints": { + "maxVelocity": 3.0, + "maxAcceleration": 3.0, + "maxAngularVelocity": 600.0, + "maxAngularAcceleration": 750.0, + "nominalVoltage": 10.0, + "unlimited": false + }, + "goalEndState": { + "velocity": 3.0, + "rotation": -91.24536426676825 + }, + "reversed": false, + "folder": null, + "idealStartingState": { + "velocity": 0, + "rotation": -147.0305960965379 + }, + "useDefaultConstraints": true +} \ No newline at end of file diff --git a/src/main/deploy/pathplanner/paths/LeftBump2-Neutral2-Shoot2.path b/src/main/deploy/pathplanner/paths/LeftBump2-Neutral2-Shoot2.path new file mode 100644 index 0000000..0b4fcc4 --- /dev/null +++ b/src/main/deploy/pathplanner/paths/LeftBump2-Neutral2-Shoot2.path @@ -0,0 +1,138 @@ +{ + "version": "2025.0", + "waypoints": [ + { + "anchor": { + "x": 6.049, + "y": 5.651320512820514 + }, + "prevControl": null, + "nextControl": { + "x": 6.049027667109173, + "y": 5.401320514351452 + }, + "isLocked": false, + "linkedName": null + }, + { + "anchor": { + "x": 5.7931923076864935, + "y": 3.453589743589744 + }, + "prevControl": { + "x": 5.724512025720087, + "y": 3.693970730502218 + }, + "nextControl": { + "x": 5.90029192050797, + "y": 3.0787410986677135 + }, + "isLocked": false, + "linkedName": null + }, + { + "anchor": { + "x": 7.316487179487182, + "y": 4.128025641025641 + }, + "prevControl": { + "x": 7.182601673147601, + "y": 3.9168984964132223 + }, + "nextControl": { + "x": 7.618820512820513, + "y": 4.604782051282052 + }, + "isLocked": false, + "linkedName": null + }, + { + "anchor": { + "x": 6.4908846153846165, + "y": 5.511782051282052 + }, + "prevControl": { + "x": 6.716022524475761, + "y": 5.620469317739846 + }, + "nextControl": { + "x": 6.153666666666667, + "y": 5.348987179487179 + }, + "isLocked": false, + "linkedName": null + }, + { + "anchor": { + "x": 3.3977820512820527, + "y": 5.511782051282052 + }, + "prevControl": { + "x": 3.6429272202047827, + "y": 5.560811085066598 + }, + "nextControl": null, + "isLocked": false, + "linkedName": null + } + ], + "rotationTargets": [ + { + "waypointRelativePos": 3.4736842105263164, + "rotationDegrees": 112.5 + } + ], + "constraintZones": [], + "pointTowardsZones": [ + { + "fieldPosition": { + "x": 6.0, + "y": 0.0 + }, + "rotationOffset": 0.0, + "minWaypointRelativePos": 0.02657807308969639, + "maxWaypointRelativePos": 0.9302325581395484, + "name": "Point Towards Zone" + }, + { + "fieldPosition": { + "x": 8.0, + "y": 5.5 + }, + "rotationOffset": 0.0, + "minWaypointRelativePos": 1.2846068660022045, + "maxWaypointRelativePos": 1.7718715393134012, + "name": "Point Towards Zone" + }, + { + "fieldPosition": { + "x": 5.0, + "y": 8.0 + }, + "rotationOffset": 0.0, + "minWaypointRelativePos": 2.1085271317829366, + "maxWaypointRelativePos": 3.1893687707641063, + "name": "Point Towards Zone" + } + ], + "eventMarkers": [], + "globalConstraints": { + "maxVelocity": 3.0, + "maxAcceleration": 3.0, + "maxAngularVelocity": 600.0, + "maxAngularAcceleration": 750.0, + "nominalVoltage": 10.0, + "unlimited": false + }, + "goalEndState": { + "velocity": 3.0, + "rotation": 113.07 + }, + "reversed": false, + "folder": null, + "idealStartingState": { + "velocity": 3.0, + "rotation": 90.0 + }, + "useDefaultConstraints": true +} \ No newline at end of file diff --git a/src/main/deploy/pathplanner/paths/LeftBump2.path b/src/main/deploy/pathplanner/paths/LeftBump2.path new file mode 100644 index 0000000..5711e45 --- /dev/null +++ b/src/main/deploy/pathplanner/paths/LeftBump2.path @@ -0,0 +1,59 @@ +{ + "version": "2025.0", + "waypoints": [ + { + "anchor": { + "x": 3.2815000000000016, + "y": 5.511782051282052 + }, + "prevControl": null, + "nextControl": { + "x": 3.735000000000001, + "y": 5.593179487179486 + }, + "isLocked": false, + "linkedName": null + }, + { + "anchor": { + "x": 6.049, + "y": 5.616435897435898 + }, + "prevControl": { + "x": 4.804782051282053, + "y": 5.616435897435898 + }, + "nextControl": null, + "isLocked": false, + "linkedName": null + } + ], + "rotationTargets": [ + { + "waypointRelativePos": 0.45263157894736444, + "rotationDegrees": 112.5 + } + ], + "constraintZones": [], + "pointTowardsZones": [], + "eventMarkers": [], + "globalConstraints": { + "maxVelocity": 3.0, + "maxAcceleration": 3.0, + "maxAngularVelocity": 600.0, + "maxAngularAcceleration": 750.0, + "nominalVoltage": 10.0, + "unlimited": false + }, + "goalEndState": { + "velocity": 3.0, + "rotation": 91.245 + }, + "reversed": false, + "folder": null, + "idealStartingState": { + "velocity": 3.0, + "rotation": 117.25532837494306 + }, + "useDefaultConstraints": true +} \ No newline at end of file diff --git a/src/main/deploy/pathplanner/paths/LeftRamp-Shoot.path b/src/main/deploy/pathplanner/paths/LeftRamp-Shoot.path new file mode 100644 index 0000000..4f646fc --- /dev/null +++ b/src/main/deploy/pathplanner/paths/LeftRamp-Shoot.path @@ -0,0 +1,65 @@ +{ + "version": "2025.0", + "waypoints": [ + { + "anchor": { + "x": 3.398, + "y": 5.512 + }, + "prevControl": null, + "nextControl": { + "x": 3.2417373766296596, + "y": 5.316853920004989 + }, + "isLocked": false, + "linkedName": null + }, + { + "anchor": { + "x": 3.23498717948718, + "y": 5.407128205128206 + }, + "prevControl": { + "x": 3.369206052535471, + "y": 5.618043577061233 + }, + "nextControl": null, + "isLocked": false, + "linkedName": null + } + ], + "rotationTargets": [], + "constraintZones": [], + "pointTowardsZones": [ + { + "fieldPosition": { + "x": 4.612, + "y": 4.021 + }, + "rotationOffset": 180.0, + "minWaypointRelativePos": 0.0, + "maxWaypointRelativePos": 1, + "name": "Point Towards Zone" + } + ], + "eventMarkers": [], + "globalConstraints": { + "maxVelocity": 3.0, + "maxAcceleration": 3.0, + "maxAngularVelocity": 600.0, + "maxAngularAcceleration": 750.0, + "nominalVoltage": 10.0, + "unlimited": false + }, + "goalEndState": { + "velocity": 0, + "rotation": 133.0 + }, + "reversed": false, + "folder": null, + "idealStartingState": { + "velocity": 3.0, + "rotation": 113.07 + }, + "useDefaultConstraints": true +} \ No newline at end of file diff --git a/src/main/deploy/pathplanner/paths/LeftTower.path b/src/main/deploy/pathplanner/paths/LeftTower.path new file mode 100644 index 0000000..ba289a4 --- /dev/null +++ b/src/main/deploy/pathplanner/paths/LeftTower.path @@ -0,0 +1,75 @@ +{ + "version": "2025.0", + "waypoints": [ + { + "anchor": { + "x": 1.0522864367238562, + "y": 4.953628205128206 + }, + "prevControl": null, + "nextControl": { + "x": 1.0522864367238562, + "y": 4.66062130060539 + }, + "isLocked": false, + "linkedName": null + }, + { + "anchor": { + "x": 1.0522864367238562, + "y": 4.662923076923078 + }, + "prevControl": { + "x": 1.0522864367238562, + "y": 4.912923076923078 + }, + "nextControl": null, + "isLocked": false, + "linkedName": null + } + ], + "rotationTargets": [], + "constraintZones": [], + "pointTowardsZones": [ + { + "fieldPosition": { + "x": 0.0, + "y": 4.67 + }, + "rotationOffset": 180.0, + "minWaypointRelativePos": 0.7513725490196074, + "maxWaypointRelativePos": 1.0, + "name": "Point Towards Zone" + }, + { + "fieldPosition": { + "x": 0.0, + "y": 5.0 + }, + "rotationOffset": 180.0, + "minWaypointRelativePos": 0.0, + "maxWaypointRelativePos": 0.36705882352941094, + "name": "Point Towards Zone" + } + ], + "eventMarkers": [], + "globalConstraints": { + "maxVelocity": 0.1, + "maxAcceleration": 3.0, + "maxAngularVelocity": 600.0, + "maxAngularAcceleration": 750.0, + "nominalVoltage": 12.0, + "unlimited": false + }, + "goalEndState": { + "velocity": 0.0, + "rotation": 0.0 + }, + "reversed": false, + "folder": null, + "idealStartingState": { + "velocity": 0, + "rotation": 0.0 + }, + "useDefaultConstraints": false +} \ No newline at end of file diff --git a/src/main/deploy/pathplanner/paths/PlayerStation-Shoot.path b/src/main/deploy/pathplanner/paths/PlayerStation-Shoot.path index 992c038..9e7dc2d 100644 --- a/src/main/deploy/pathplanner/paths/PlayerStation-Shoot.path +++ b/src/main/deploy/pathplanner/paths/PlayerStation-Shoot.path @@ -33,7 +33,7 @@ "pointTowardsZones": [ { "fieldPosition": { - "x": 4.6115541, + "x": 4.612, "y": 4.0213534 }, "rotationOffset": 180.0, diff --git a/src/main/deploy/pathplanner/paths/RightBump-Neutral-Shoot.path b/src/main/deploy/pathplanner/paths/RightBump-Neutral-Shoot.path new file mode 100644 index 0000000..3ef4b90 --- /dev/null +++ b/src/main/deploy/pathplanner/paths/RightBump-Neutral-Shoot.path @@ -0,0 +1,128 @@ +{ + "version": "2025.0", + "waypoints": [ + { + "anchor": { + "x": 5.968, + "y": 2.7089999999999996 + }, + "prevControl": null, + "nextControl": { + "x": 5.900563478191006, + "y": 2.468267128280525 + }, + "isLocked": false, + "linkedName": null + }, + { + "anchor": { + "x": 7.723474358974359, + "y": 0.9767820512820515 + }, + "prevControl": { + "x": 7.037410256410256, + "y": 1.0930641025641024 + }, + "nextControl": { + "x": 7.969958998382976, + "y": 0.9350049937551674 + }, + "isLocked": false, + "linkedName": null + }, + { + "anchor": { + "x": 7.863012820512822, + "y": 3.4419615384615385 + }, + "prevControl": { + "x": 7.88564675702345, + "y": 3.690934840078465 + }, + "nextControl": { + "x": 7.8403788840021935, + "y": 3.192988236844612 + }, + "isLocked": false, + "linkedName": null + }, + { + "anchor": { + "x": 6.572282051282052, + "y": 2.5119999999999996 + }, + "prevControl": { + "x": 6.795888849032032, + "y": 2.623803398874987 + }, + "nextControl": { + "x": 6.348675253532072, + "y": 2.400196601125012 + }, + "isLocked": false, + "linkedName": null + }, + { + "anchor": { + "x": 3.3977820512820527, + "y": 2.512 + }, + "prevControl": { + "x": 3.6429272202047827, + "y": 2.5610290337845467 + }, + "nextControl": null, + "isLocked": false, + "linkedName": null + } + ], + "rotationTargets": [ + { + "waypointRelativePos": 3.4736842105263164, + "rotationDegrees": -112.5 + } + ], + "constraintZones": [], + "pointTowardsZones": [ + { + "fieldPosition": { + "x": 7.0, + "y": 8.0 + }, + "rotationOffset": 0.0, + "minWaypointRelativePos": 0.02657807308969639, + "maxWaypointRelativePos": 2.1705426356589252, + "name": "Point Towards Zone" + }, + { + "fieldPosition": { + "x": 7.0, + "y": 8.0 + }, + "rotationOffset": 180.0, + "minWaypointRelativePos": 2.4983388704318887, + "maxWaypointRelativePos": 3.2956810631229274, + "name": "Point Towards Zone" + } + ], + "eventMarkers": [], + "globalConstraints": { + "maxVelocity": 3.0, + "maxAcceleration": 3.0, + "maxAngularVelocity": 600.0, + "maxAngularAcceleration": 750.0, + "nominalVoltage": 10.0, + "unlimited": false + }, + "goalEndState": { + "velocity": 3.0, + "rotation": -113.07 + }, + "reversed": false, + "folder": null, + "idealStartingState": { + "velocity": 0.3, + "rotation": 88.32335186314447 + }, + "useDefaultConstraints": true +} \ No newline at end of file diff --git a/src/main/deploy/pathplanner/paths/RightBump.path b/src/main/deploy/pathplanner/paths/RightBump.path new file mode 100644 index 0000000..45b7bc3 --- /dev/null +++ b/src/main/deploy/pathplanner/paths/RightBump.path @@ -0,0 +1,59 @@ +{ + "version": "2025.0", + "waypoints": [ + { + "anchor": { + "x": 3.4559230769230784, + "y": 2.5465897435897444 + }, + "prevControl": null, + "nextControl": { + "x": 3.7466282051282063, + "y": 2.523333333333337 + }, + "isLocked": false, + "linkedName": null + }, + { + "anchor": { + "x": 5.967615384615385, + "y": 2.7089999999999996 + }, + "prevControl": { + "x": 4.746653846153847, + "y": 2.4299230769230773 + }, + "nextControl": null, + "isLocked": false, + "linkedName": null + } + ], + "rotationTargets": [ + { + "waypointRelativePos": 0.5211640211640187, + "rotationDegrees": 112.5 + } + ], + "constraintZones": [], + "pointTowardsZones": [], + "eventMarkers": [], + "globalConstraints": { + "maxVelocity": 3.0, + "maxAcceleration": 3.0, + "maxAngularVelocity": 600.0, + "maxAngularAcceleration": 750.0, + "nominalVoltage": 10.0, + "unlimited": false + }, + "goalEndState": { + "velocity": 3.0, + "rotation": 91.245 + }, + "reversed": false, + "folder": null, + "idealStartingState": { + "velocity": 0, + "rotation": 127.62823656328939 + }, + "useDefaultConstraints": true +} \ No newline at end of file diff --git a/src/main/deploy/pathplanner/paths/RightBump2-Neutral2-Shoot2.path b/src/main/deploy/pathplanner/paths/RightBump2-Neutral2-Shoot2.path new file mode 100644 index 0000000..0db3ed6 --- /dev/null +++ b/src/main/deploy/pathplanner/paths/RightBump2-Neutral2-Shoot2.path @@ -0,0 +1,142 @@ +{ + "version": "2025.0", + "waypoints": [ + { + "anchor": { + "x": 6.049, + "y": 2.5119999999999996 + }, + "prevControl": null, + "nextControl": { + "x": 6.049027667109173, + "y": 2.2620000015309394 + }, + "isLocked": false, + "linkedName": null + }, + { + "anchor": { + "x": 6.049, + "y": 4.8140897435897445 + }, + "prevControl": { + "x": 5.8000264938666355, + "y": 4.791458056872672 + }, + "nextControl": { + "x": 6.297973506133364, + "y": 4.836721430306816 + }, + "isLocked": false, + "linkedName": null + }, + { + "anchor": { + "x": 7.374628205128206, + "y": 4.267564102564102 + }, + "prevControl": { + "x": 7.209222795856496, + "y": 4.455023566405373 + }, + "nextControl": { + "x": 7.549051282051284, + "y": 4.069884615384615 + }, + "isLocked": false, + "linkedName": null + }, + { + "anchor": { + "x": 6.7118205128205135, + "y": 2.779153846153846 + }, + "prevControl": { + "x": 6.936958421911658, + "y": 2.8878411126116403 + }, + "nextControl": { + "x": 6.374602564102564, + "y": 2.6163589743589735 + }, + "isLocked": false, + "linkedName": null + }, + { + "anchor": { + "x": 3.3977820512820527, + "y": 2.5119999999999996 + }, + "prevControl": { + "x": 3.6429272202047827, + "y": 2.5610290337845445 + }, + "nextControl": null, + "isLocked": false, + "linkedName": null + } + ], + "rotationTargets": [ + { + "waypointRelativePos": 0.18947368421052632, + "rotationDegrees": 90.0 + }, + { + "waypointRelativePos": 3.4736842105263164, + "rotationDegrees": -112.5 + } + ], + "constraintZones": [], + "pointTowardsZones": [ + { + "fieldPosition": { + "x": 6.0, + "y": 8.0 + }, + "rotationOffset": 0.0, + "minWaypointRelativePos": 0.23034330011073328, + "maxWaypointRelativePos": 0.868217054263568, + "name": "Point Towards Zone" + }, + { + "fieldPosition": { + "x": 8.0, + "y": 2.5 + }, + "rotationOffset": 0.0, + "minWaypointRelativePos": 1.2846068660022045, + "maxWaypointRelativePos": 1.7718715393134012, + "name": "Point Towards Zone" + }, + { + "fieldPosition": { + "x": 5.0, + "y": 0.0 + }, + "rotationOffset": 0.0, + "minWaypointRelativePos": 2.1085271317829366, + "maxWaypointRelativePos": 3.1893687707641063, + "name": "Point Towards Zone" + } + ], + "eventMarkers": [], + "globalConstraints": { + "maxVelocity": 3.0, + "maxAcceleration": 3.0, + "maxAngularVelocity": 600.0, + "maxAngularAcceleration": 750.0, + "nominalVoltage": 10.0, + "unlimited": false + }, + "goalEndState": { + "velocity": 3.0, + "rotation": -113.07 + }, + "reversed": false, + "folder": null, + "idealStartingState": { + "velocity": 3.0, + "rotation": -90.0 + }, + "useDefaultConstraints": true +} \ No newline at end of file diff --git a/src/main/deploy/pathplanner/paths/RightBump2.path b/src/main/deploy/pathplanner/paths/RightBump2.path new file mode 100644 index 0000000..b17b2ba --- /dev/null +++ b/src/main/deploy/pathplanner/paths/RightBump2.path @@ -0,0 +1,59 @@ +{ + "version": "2025.0", + "waypoints": [ + { + "anchor": { + "x": 3.5256923076923092, + "y": 2.6159999999999997 + }, + "prevControl": null, + "nextControl": { + "x": 3.8279615384615413, + "y": 1.9764871794871786 + }, + "isLocked": false, + "linkedName": null + }, + { + "anchor": { + "x": 6.049, + "y": 2.6159999999999997 + }, + "prevControl": { + "x": 5.002474358974361, + "y": 2.488448717948718 + }, + "nextControl": null, + "isLocked": false, + "linkedName": null + } + ], + "rotationTargets": [ + { + "waypointRelativePos": 0.5211640211640187, + "rotationDegrees": -112.5 + } + ], + "constraintZones": [], + "pointTowardsZones": [], + "eventMarkers": [], + "globalConstraints": { + "maxVelocity": 3.0, + "maxAcceleration": 3.0, + "maxAngularVelocity": 600.0, + "maxAngularAcceleration": 750.0, + "nominalVoltage": 10.0, + "unlimited": false + }, + "goalEndState": { + "velocity": 3.0, + "rotation": -91.245 + }, + "reversed": false, + "folder": null, + "idealStartingState": { + "velocity": 3.0, + "rotation": -108.98741511036879 + }, + "useDefaultConstraints": true +} \ No newline at end of file diff --git a/src/main/deploy/pathplanner/paths/RightRamp-Shoot.path b/src/main/deploy/pathplanner/paths/RightRamp-Shoot.path new file mode 100644 index 0000000..3f9f9f2 --- /dev/null +++ b/src/main/deploy/pathplanner/paths/RightRamp-Shoot.path @@ -0,0 +1,65 @@ +{ + "version": "2025.0", + "waypoints": [ + { + "anchor": { + "x": 3.398, + "y": 2.5119999999999996 + }, + "prevControl": null, + "nextControl": { + "x": 3.160642585150445, + "y": 2.590494952805491 + }, + "isLocked": false, + "linkedName": null + }, + { + "anchor": { + "x": 3.398, + "y": 2.5119999999999996 + }, + "prevControl": { + "x": 3.595338054344081, + "y": 2.3585148466212686 + }, + "nextControl": null, + "isLocked": false, + "linkedName": null + } + ], + "rotationTargets": [], + "constraintZones": [], + "pointTowardsZones": [ + { + "fieldPosition": { + "x": 4.612, + "y": 4.021 + }, + "rotationOffset": 180.0, + "minWaypointRelativePos": 0.0, + "maxWaypointRelativePos": 1, + "name": "Point Towards Zone" + } + ], + "eventMarkers": [], + "globalConstraints": { + "maxVelocity": 3.0, + "maxAcceleration": 3.0, + "maxAngularVelocity": 600.0, + "maxAngularAcceleration": 750.0, + "nominalVoltage": 10.0, + "unlimited": false + }, + "goalEndState": { + "velocity": 0.0, + "rotation": -129.0 + }, + "reversed": false, + "folder": null, + "idealStartingState": { + "velocity": 3.0, + "rotation": -113.07 + }, + "useDefaultConstraints": true +} \ No newline at end of file diff --git a/src/main/deploy/pathplanner/paths/RightTower.path b/src/main/deploy/pathplanner/paths/RightTower.path new file mode 100644 index 0000000..248e5a3 --- /dev/null +++ b/src/main/deploy/pathplanner/paths/RightTower.path @@ -0,0 +1,65 @@ +{ + "version": "2025.0", + "waypoints": [ + { + "anchor": { + "x": 1.0522864367238562, + "y": 2.4768205128205136 + }, + "prevControl": null, + "nextControl": { + "x": 1.0771623664791057, + "y": 2.725579810373011 + }, + "isLocked": false, + "linkedName": null + }, + { + "anchor": { + "x": 1.0522864367238562, + "y": 2.8 + }, + "prevControl": { + "x": 1.0473432640619955, + "y": 2.5500488746894003 + }, + "nextControl": null, + "isLocked": false, + "linkedName": null + } + ], + "rotationTargets": [], + "constraintZones": [], + "pointTowardsZones": [ + { + "fieldPosition": { + "x": 0.0, + "y": 2.7 + }, + "rotationOffset": 180.0, + "minWaypointRelativePos": 0.0, + "maxWaypointRelativePos": 0.3999999999999999, + "name": "Point Towards Zone" + } + ], + "eventMarkers": [], + "globalConstraints": { + "maxVelocity": 0.1, + "maxAcceleration": 3.0, + "maxAngularVelocity": 600.0, + "maxAngularAcceleration": 750.0, + "nominalVoltage": 12.0, + "unlimited": false + }, + "goalEndState": { + "velocity": 0.0, + "rotation": 0.0 + }, + "reversed": false, + "folder": null, + "idealStartingState": { + "velocity": 0, + "rotation": 0.0 + }, + "useDefaultConstraints": false +} \ No newline at end of file diff --git a/src/main/java/frc4388/robot/RobotContainer.java b/src/main/java/frc4388/robot/RobotContainer.java index 2559999..d9b0bb7 100644 --- a/src/main/java/frc4388/robot/RobotContainer.java +++ b/src/main/java/frc4388/robot/RobotContainer.java @@ -195,17 +195,17 @@ public class RobotContainer { NamedCommands.registerCommand("BumpOffsetForward", new InstantCommand(() -> { if (TimesNegativeOne.isRed) { - m_robotSwerveDrive.offsetOdoPosition(FieldConstants.BUMP_OFFSET_RED); + m_robotSwerveDrive.offsetOdoPosition(FieldConstants.BUMP_OFFSET_RED_FRONT); } else { - m_robotSwerveDrive.offsetOdoPosition(FieldConstants.BUMP_OFFSET_BLUE); + m_robotSwerveDrive.offsetOdoPosition(FieldConstants.BUMP_OFFSET_BLUE_FRONT); } })); - NamedCommands.registerCommand("BumpOffsetReverse", new InstantCommand(() -> { - if (!TimesNegativeOne.isRed) { - m_robotSwerveDrive.offsetOdoPosition(FieldConstants.BUMP_OFFSET_RED); + NamedCommands.registerCommand("BumpOffsetBackward", new InstantCommand(() -> { + if (TimesNegativeOne.isRed) { + m_robotSwerveDrive.offsetOdoPosition(FieldConstants.BUMP_OFFSET_RED_BACK); } else { - m_robotSwerveDrive.offsetOdoPosition(FieldConstants.BUMP_OFFSET_BLUE); + m_robotSwerveDrive.offsetOdoPosition(FieldConstants.BUMP_OFFSET_BLUE_BACK); } })); @@ -304,8 +304,8 @@ public class RobotContainer { FieldPositions.HUB_POSITION, ShooterConstants.AIM_LEAD_TIME.get() ); - }, m_robotSwerveDrive) - ); + }, m_robotSwerveDrive)) + .onFalse(new InstantCommand(() -> m_robotSwerveDrive.softStop(), m_robotSwerveDrive)); // D-PAD fine alignment new Trigger(() -> getDeadbandedDriverController().getPOV() != -1) @@ -383,6 +383,18 @@ public class RobotContainer { m_robotIntake.setMode(IntakeMode.Idle); })); + new JoystickButton(getDeadbandedOperatorController(), XboxController.START_BUTTON) + .whileTrue( + new PathPlannerAuto("Right_AutoClimb") + ) + .onFalse(new InstantCommand(() -> m_robotSwerveDrive.softStop(), m_robotSwerveDrive)); + + new JoystickButton(getDeadbandedOperatorController(), XboxController.BACK_BUTTON) + .whileTrue( + new PathPlannerAuto("Left_AutoClimb") + ) + .onFalse(new InstantCommand(() -> m_robotSwerveDrive.softStop(), m_robotSwerveDrive)); + // new JoystickButton(getDeadbandedOperatorController(), XboxController.B_BUTTON) // .onTrue(new InstantCommand(() -> { // m_robotClimber.toggleDeployed(); @@ -395,11 +407,11 @@ public class RobotContainer { private void configureSINGLEBindings() { //Driver controls - // new JoystickButton(getDeadbandedDriverController(), XboxController.A_BUTTON) - // .onTrue(new InstantCommand(() -> m_robotSwerveDrive.resetGyro())); - new JoystickButton(getDeadbandedDriverController(), XboxController.A_BUTTON) - .onTrue(new InstantCommand(() -> m_robotSwerveDrive.offsetOdoPosition(FieldConstants.BUMP_OFFSET_RED))); + .onTrue(new InstantCommand(() -> m_robotSwerveDrive.resetGyro())); + + // new JoystickButton(getDeadbandedDriverController(), XboxController.A_BUTTON) + // .onTrue(new InstantCommand(() -> m_robotSwerveDrive.offsetOdoPosition(FieldConstants.BUMP_OFFSET_RED))); new JoystickButton(getDeadbandedDriverController(), XboxController.RIGHT_BUMPER_BUTTON) .onTrue(new InstantCommand(() -> m_robotSwerveDrive.shiftUp())); @@ -556,7 +568,8 @@ public class RobotContainer { for (String auto : autos) { if (auto.endsWith(".auto")) - autoChooser.addOption(auto.replaceAll(".auto", ""), auto.replaceAll(".auto", "")); + if (auto.startsWith("X. ")) + autoChooser.addOption(auto.replaceAll(".auto", ""), auto.replaceAll(".auto", "")); // System.out.println(auto); } diff --git a/src/main/java/frc4388/robot/constants/BuildConstants.java b/src/main/java/frc4388/robot/constants/BuildConstants.java index b2c6e49..dda31fd 100644 --- a/src/main/java/frc4388/robot/constants/BuildConstants.java +++ b/src/main/java/frc4388/robot/constants/BuildConstants.java @@ -7,12 +7,12 @@ public final class BuildConstants { public static final String MAVEN_GROUP = ""; public static final String MAVEN_NAME = "2026KPopRobotHunters"; public static final String VERSION = "unspecified"; - public static final int GIT_REVISION = 182; - public static final String GIT_SHA = "75cab187e2225e51259336e5569f15c41f9169d5"; - public static final String GIT_DATE = "2026-03-21 13:38:34 MDT"; - public static final String GIT_BRANCH = "MiraOrg"; - public static final String BUILD_DATE = "2026-03-21 15:45:59 MDT"; - public static final long BUILD_UNIX_TIME = 1774129559544L; + public static final int GIT_REVISION = 186; + public static final String GIT_SHA = "a774f156c681df6426dc5d344b84692080bb8a06"; + public static final String GIT_DATE = "2026-03-26 18:40:37 MDT"; + public static final String GIT_BRANCH = "DenverAutos"; + public static final String BUILD_DATE = "2026-03-30 19:07:09 MDT"; + public static final long BUILD_UNIX_TIME = 1774919229417L; public static final int DIRTY = 1; private BuildConstants(){} diff --git a/src/main/java/frc4388/robot/constants/FieldConstants.java b/src/main/java/frc4388/robot/constants/FieldConstants.java index 49c75c0..f54067b 100644 --- a/src/main/java/frc4388/robot/constants/FieldConstants.java +++ b/src/main/java/frc4388/robot/constants/FieldConstants.java @@ -11,17 +11,28 @@ public final class FieldConstants { public static final AprilTagFieldLayout kTagLayout = AprilTagFieldLayout.loadField(AprilTagFields.k2026RebuiltAndymark); public static final double BUMP_OFFSET = 0.4; - public static final Transform2d BUMP_OFFSET_RED = new Transform2d( + public static final Transform2d BUMP_OFFSET_RED_FRONT = new Transform2d( Meters.of(BUMP_OFFSET), Meters.of(0), new Rotation2d() ); - public static final Transform2d BUMP_OFFSET_BLUE = new Transform2d( + public static final Transform2d BUMP_OFFSET_BLUE_FRONT = new Transform2d( Meters.of(-BUMP_OFFSET), Meters.of(0), new Rotation2d() ); + public static final Transform2d BUMP_OFFSET_RED_BACK = new Transform2d( + Meters.of(-BUMP_OFFSET), + Meters.of(0), + new Rotation2d() + ); + public static final Transform2d BUMP_OFFSET_BLUE_BACK = new Transform2d( + Meters.of(BUMP_OFFSET), + Meters.of(0), + new Rotation2d() + ); + // Test april tag field layout // public static final AprilTagFieldLayout kTagLayout = new AprilTagFieldLayout( // Arrays.asList(new AprilTag[] {