9 Commits

Author SHA1 Message Date
013050ee19 outpost auto improved 2026-04-04 17:35:34 -04:00
07656eedc1 after UNH 2026-03-29 23:49:32 -04:00
eb02a28048 quals day one of unh 2026-03-28 20:24:28 -04:00
3ea469ae1c better path before UNH 2026-03-28 07:19:58 -04:00
2b464d2f32 shooter jam prevention 2026-03-26 12:06:41 -04:00
Tylr-J42
429fa04f99 make not shoot when flywheel not spin 2026-03-24 16:33:01 -04:00
80c2a4dd95 after portland before UNH 2026-03-21 18:47:53 -04:00
d9c16bb05c robot good center auto left good 2026-03-21 18:29:50 -04:00
db4bab6e16 center auto works 2026-03-21 17:07:31 -04:00
21 changed files with 546 additions and 189 deletions

View File

@@ -57,5 +57,6 @@
"edu.wpi.first.math.**.proto.*", "edu.wpi.first.math.**.proto.*",
"edu.wpi.first.math.**.struct.*", "edu.wpi.first.math.**.struct.*",
], ],
"java.dependency.enableDependencyCheckup": false "java.dependency.enableDependencyCheckup": false,
"java.jdt.ls.vmargs": "-XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx2G -Xms100m -Xlog:disable"
} }

View File

@@ -11,39 +11,41 @@
} }
}, },
{ {
"type": "named", "type": "parallel",
"data": { "data": {
"name": "spinup" "commands": [
{
"type": "path",
"data": {
"pathName": "Start to Outpost"
}
}
]
} }
}, },
{ {
"type": "path", "type": "wait",
"data": { "data": {
"pathName": "start to score left" "waitTime": 2.0
} }
}, },
{ {
"type": "named", "type": "parallel",
"data": { "data": {
"name": "shoot close" "commands": [
} {
}, "type": "path",
{ "data": {
"type": "path", "pathName": "trough to shot"
"data": { }
"pathName": "Left to Outpost" },
} {
}, "type": "named",
{ "data": {
"type": "named", "name": "spinup"
"data": { }
"name": "stop spindexer" }
} ]
},
{
"type": "path",
"data": {
"pathName": "trough to shot"
} }
}, },
{ {
@@ -55,7 +57,13 @@
{ {
"type": "named", "type": "named",
"data": { "data": {
"name": "shoot N jimmy" "name": "aim"
}
},
{
"type": "named",
"data": {
"name": "auto shoot"
} }
} }
] ]

View File

@@ -0,0 +1,82 @@
{
"version": "2025.0",
"command": {
"type": "sequential",
"data": {
"commands": [
{
"type": "parallel",
"data": {
"commands": [
{
"type": "path",
"data": {
"pathName": "left start to center"
}
},
{
"type": "named",
"data": {
"name": "intake down"
}
}
]
}
},
{
"type": "parallel",
"data": {
"commands": [
{
"type": "path",
"data": {
"pathName": "over bump to pile move"
}
},
{
"type": "named",
"data": {
"name": "spinup"
}
}
]
}
},
{
"type": "parallel",
"data": {
"commands": [
{
"type": "path",
"data": {
"pathName": "back from center"
}
},
{
"type": "named",
"data": {
"name": "spinup"
}
}
]
}
},
{
"type": "named",
"data": {
"name": "aim"
}
},
{
"type": "named",
"data": {
"name": "auto shoot"
}
}
]
}
},
"resetOdom": true,
"folder": null,
"choreoAuto": false
}

View File

@@ -4,28 +4,67 @@
"type": "sequential", "type": "sequential",
"data": { "data": {
"commands": [ "commands": [
{
"type": "parallel",
"data": {
"commands": [
{
"type": "path",
"data": {
"pathName": "left start to center"
}
},
{
"type": "named",
"data": {
"name": "intake down"
}
}
]
}
},
{
"type": "parallel",
"data": {
"commands": [
{
"type": "path",
"data": {
"pathName": "over bump to pile"
}
},
{
"type": "named",
"data": {
"name": "spinup"
}
}
]
}
},
{
"type": "parallel",
"data": {
"commands": [
{
"type": "path",
"data": {
"pathName": "back from center"
}
},
{
"type": "named",
"data": {
"name": "spinup"
}
}
]
}
},
{ {
"type": "named", "type": "named",
"data": { "data": {
"name": "intake down" "name": "aim"
}
},
{
"type": "path",
"data": {
"pathName": "left start to center"
}
},
{
"type": "path",
"data": {
"pathName": "over bump to pile"
}
},
{
"type": "path",
"data": {
"pathName": "back from center"
} }
}, },
{ {

View File

@@ -3,25 +3,25 @@
"waypoints": [ "waypoints": [
{ {
"anchor": { "anchor": {
"x": 3.2515736040609142, "x": 1.925604060913706,
"y": 4.914375634517767 "y": 5.503695431472081
}, },
"prevControl": null, "prevControl": null,
"nextControl": { "nextControl": {
"x": 2.4338749089244973, "x": 1.107905365777289,
"y": 5.333984175443034 "y": 5.923303972397348
}, },
"isLocked": false, "isLocked": false,
"linkedName": "left close" "linkedName": "left close"
}, },
{ {
"anchor": { "anchor": {
"x": 0.77458883248731, "x": 0.32339086294416286,
"y": 5.927269035532995 "y": 5.9825177664974625
}, },
"prevControl": { "prevControl": {
"x": 2.3777086426889733, "x": 1.9265106731458264,
"y": 6.110175322602984 "y": 6.165424053567452
}, },
"nextControl": null, "nextControl": null,
"isLocked": false, "isLocked": false,

View File

@@ -69,7 +69,7 @@
}, },
"prevControl": { "prevControl": {
"x": 8.08578683847011, "x": 8.08578683847011,
"y": 0.4907704016028374 "y": 0.49077040160283736
}, },
"nextControl": { "nextControl": {
"x": 8.318287488908608, "x": 8.318287488908608,

View File

@@ -3,35 +3,35 @@
"waypoints": [ "waypoints": [
{ {
"anchor": { "anchor": {
"x": 3.6619856887266913, "x": 3.5922741116751276,
"y": 2.2583184257605784 "y": 6.3692588832487305
}, },
"prevControl": null, "prevControl": null,
"nextControl": { "nextControl": {
"x": 2.4937567084046877, "x": 2.956913705583757,
"y": 1.3172450805011864 "y": 6.19430456852792
}, },
"isLocked": false, "isLocked": false,
"linkedName": null "linkedName": "start left"
}, },
{ {
"anchor": { "anchor": {
"x": 0.7089624329216013, "x": 0.32339086294416286,
"y": 0.668228980317108 "y": 5.9825177664974625
}, },
"prevControl": { "prevControl": {
"x": 1.6987119856944104, "x": 1.3270761421319812,
"y": 1.0414132379199703 "y": 5.964101522842641
}, },
"nextControl": null, "nextControl": null,
"isLocked": false, "isLocked": false,
"linkedName": "Outpost" "linkedName": "trough"
} }
], ],
"rotationTargets": [ "rotationTargets": [
{ {
"waypointRelativePos": 0.7234468937875753, "waypointRelativePos": 0.6910862504511138,
"rotationDegrees": 180.0 "rotationDegrees": -179.02889973265033
} }
], ],
"constraintZones": [], "constraintZones": [],
@@ -39,14 +39,14 @@
"eventMarkers": [ "eventMarkers": [
{ {
"name": "Intake Start", "name": "Intake Start",
"waypointRelativePos": 0.4500000000000002, "waypointRelativePos": 0,
"endWaypointRelativePos": null, "endWaypointRelativePos": null,
"command": null "command": null
} }
], ],
"globalConstraints": { "globalConstraints": {
"maxVelocity": 2.0, "maxVelocity": 0.75,
"maxAcceleration": 1.5, "maxAcceleration": 2.5,
"maxAngularVelocity": 540.0, "maxAngularVelocity": 540.0,
"maxAngularAcceleration": 720.0, "maxAngularAcceleration": 720.0,
"nominalVoltage": 12.0, "nominalVoltage": 12.0,
@@ -54,13 +54,13 @@
}, },
"goalEndState": { "goalEndState": {
"velocity": 0, "velocity": 0,
"rotation": 180.0 "rotation": 178.80651057601818
}, },
"reversed": false, "reversed": false,
"folder": "Right Outpost", "folder": null,
"idealStartingState": { "idealStartingState": {
"velocity": 0, "velocity": 0,
"rotation": 180.0 "rotation": -90.0
}, },
"useDefaultConstraints": true "useDefaultConstraints": false
} }

View File

@@ -3,25 +3,25 @@
"waypoints": [ "waypoints": [
{ {
"anchor": { "anchor": {
"x": 6.050842639593909, "x": 6.742194543297748,
"y": 5.715482233502538 "y": 5.589703440094898
}, },
"prevControl": null, "prevControl": null,
"nextControl": { "nextControl": {
"x": 5.130030456852792, "x": 3.68848717948718,
"y": 5.7523147208121825 "y": 5.639692307692307
}, },
"isLocked": false, "isLocked": false,
"linkedName": "over bump" "linkedName": "after center grab"
}, },
{ {
"anchor": { "anchor": {
"x": 3.002954314720812, "x": 2.979166666666668,
"y": 5.310324873096447 "y": 5.2327051282051285
}, },
"prevControl": { "prevControl": {
"x": 4.052680203045686, "x": 3.0721923076923088,
"y": 5.9825177664974625 "y": 5.721089743589744
}, },
"nextControl": null, "nextControl": null,
"isLocked": false, "isLocked": false,
@@ -30,20 +30,16 @@
], ],
"rotationTargets": [ "rotationTargets": [
{ {
"waypointRelativePos": 0.10454545454545605, "waypointRelativePos": 0.11569148936170148,
"rotationDegrees": -115.0 "rotationDegrees": -34.71279786419313
},
{
"waypointRelativePos": 0.7931818181818296,
"rotationDegrees": -115.0
} }
], ],
"constraintZones": [], "constraintZones": [],
"pointTowardsZones": [], "pointTowardsZones": [],
"eventMarkers": [], "eventMarkers": [],
"globalConstraints": { "globalConstraints": {
"maxVelocity": 2.0, "maxVelocity": 4.0,
"maxAcceleration": 1.5, "maxAcceleration": 3.0,
"maxAngularVelocity": 540.0, "maxAngularVelocity": 540.0,
"maxAngularAcceleration": 720.0, "maxAngularAcceleration": 720.0,
"nominalVoltage": 12.0, "nominalVoltage": 12.0,
@@ -56,8 +52,8 @@
"reversed": false, "reversed": false,
"folder": null, "folder": null,
"idealStartingState": { "idealStartingState": {
"velocity": 0, "velocity": 4.0,
"rotation": -123.34070734647689 "rotation": -45.365518355574764
}, },
"useDefaultConstraints": true "useDefaultConstraints": false
} }

View File

@@ -0,0 +1,75 @@
{
"version": "2025.0",
"waypoints": [
{
"anchor": {
"x": 3.5922741116751276,
"y": 6.3692588832487305
},
"prevControl": null,
"nextControl": {
"x": 3.9329746192893413,
"y": 6.3692588832487305
},
"isLocked": false,
"linkedName": "start left"
},
{
"anchor": {
"x": 4.577543147208122,
"y": 5.715482233502538
},
"prevControl": {
"x": 4.264467005076142,
"y": 5.715482233502538
},
"nextControl": {
"x": 5.120900364352579,
"y": 5.715482233502538
},
"isLocked": false,
"linkedName": null
},
{
"anchor": {
"x": 6.041634517766498,
"y": 6.3692588832487305
},
"prevControl": {
"x": 5.931137055837564,
"y": 5.65102538071066
},
"nextControl": null,
"isLocked": false,
"linkedName": "over bump"
}
],
"rotationTargets": [
{
"waypointRelativePos": 0.8,
"rotationDegrees": -135.0
}
],
"constraintZones": [],
"pointTowardsZones": [],
"eventMarkers": [],
"globalConstraints": {
"maxVelocity": 4.0,
"maxAcceleration": 2.5,
"maxAngularVelocity": 540.0,
"maxAngularAcceleration": 720.0,
"nominalVoltage": 12.0,
"unlimited": false
},
"goalEndState": {
"velocity": 2.0,
"rotation": -129.95754893082906
},
"reversed": false,
"folder": null,
"idealStartingState": {
"velocity": 0,
"rotation": -90.0
},
"useDefaultConstraints": false
}

View File

@@ -3,57 +3,41 @@
"waypoints": [ "waypoints": [
{ {
"anchor": { "anchor": {
"x": 3.573857868020305, "x": 3.5922741116751276,
"y": 6.3692588832487305 "y": 6.3692588832487305
}, },
"prevControl": null, "prevControl": null,
"nextControl": { "nextControl": {
"x": 2.9108730964467004, "x": 3.085827411167513,
"y": 6.498172588832488 "y": 6.277177664974619
}, },
"isLocked": false, "isLocked": false,
"linkedName": "start left" "linkedName": "start left"
}, },
{
"anchor": {
"x": 2.5885888324873094,
"y": 5.936477157360406
},
"prevControl": {
"x": 2.3675939086294413,
"y": 6.28638578680203
},
"nextControl": {
"x": 2.8493791599284664,
"y": 5.523559138911907
},
"isLocked": false,
"linkedName": null
},
{ {
"anchor": { "anchor": {
"x": 4.577543147208122, "x": 4.577543147208122,
"y": 5.715482233502538 "y": 5.715482233502538
}, },
"prevControl": { "prevControl": {
"x": 3.565840773084476, "x": 3.2884060913705584,
"y": 5.768729726877464 "y": 5.697065989847716
}, },
"nextControl": { "nextControl": {
"x": 5.102406091370558, "x": 5.120844928223563,
"y": 5.687857868020306 "y": 5.723243687517044
}, },
"isLocked": false, "isLocked": false,
"linkedName": null "linkedName": null
}, },
{ {
"anchor": { "anchor": {
"x": 6.050842639593909, "x": 6.041634517766498,
"y": 5.715482233502538 "y": 6.3692588832487305
}, },
"prevControl": { "prevControl": {
"x": 5.525979695431473, "x": 5.931137055837564,
"y": 5.807563451776649 "y": 5.65102538071066
}, },
"nextControl": null, "nextControl": null,
"isLocked": false, "isLocked": false,
@@ -62,31 +46,24 @@
], ],
"rotationTargets": [ "rotationTargets": [
{ {
"waypointRelativePos": 1.62272727272727, "waypointRelativePos": 0.8,
"rotationDegrees": -135.0 "rotationDegrees": -135.0
} }
], ],
"constraintZones": [], "constraintZones": [],
"pointTowardsZones": [], "pointTowardsZones": [],
"eventMarkers": [ "eventMarkers": [],
{
"name": "Intake Start",
"waypointRelativePos": 2.1,
"endWaypointRelativePos": null,
"command": null
}
],
"globalConstraints": { "globalConstraints": {
"maxVelocity": 3.0, "maxVelocity": 4.0,
"maxAcceleration": 2.0, "maxAcceleration": 3.0,
"maxAngularVelocity": 540.0, "maxAngularVelocity": 540.0,
"maxAngularAcceleration": 720.0, "maxAngularAcceleration": 720.0,
"nominalVoltage": 12.0, "nominalVoltage": 12.0,
"unlimited": false "unlimited": false
}, },
"goalEndState": { "goalEndState": {
"velocity": 0, "velocity": 2.0,
"rotation": -123.34070734647689 "rotation": -129.95754893082906
}, },
"reversed": false, "reversed": false,
"folder": null, "folder": null,

View File

@@ -0,0 +1,116 @@
{
"version": "2025.0",
"waypoints": [
{
"anchor": {
"x": 6.041634517766498,
"y": 6.3692588832487305
},
"prevControl": null,
"nextControl": {
"x": 6.511248730964468,
"y": 7.059868020304569
},
"isLocked": false,
"linkedName": "over bump"
},
{
"anchor": {
"x": 7.2386903553299495,
"y": 7.326903553299493
},
"prevControl": {
"x": 6.2386903553299495,
"y": 7.326903553299493
},
"nextControl": {
"x": 8.238690355329947,
"y": 7.326903553299493
},
"isLocked": false,
"linkedName": null
},
{
"anchor": {
"x": 8.417329949238578,
"y": 4.831502538071066
},
"prevControl": {
"x": 8.475340101522843,
"y": 6.042370558375635
},
"nextControl": {
"x": 8.359319796954313,
"y": 3.620634517766498
},
"isLocked": false,
"linkedName": null
},
{
"anchor": {
"x": 6.742194543297748,
"y": 5.589703440094898
},
"prevControl": {
"x": 7.758358974358975,
"y": 5.616435897435898
},
"nextControl": null,
"isLocked": false,
"linkedName": "after center grab"
}
],
"rotationTargets": [
{
"waypointRelativePos": 1.0045454545454569,
"rotationDegrees": -115.0
},
{
"waypointRelativePos": 2.348863636363685,
"rotationDegrees": -115.0
}
],
"constraintZones": [
{
"name": "Constraints Zone",
"minWaypointRelativePos": 1.1243680485338854,
"maxWaypointRelativePos": 2.077102803738317,
"constraints": {
"maxVelocity": 1.0,
"maxAcceleration": 1.5,
"maxAngularVelocity": 540.0,
"maxAngularAcceleration": 720.0,
"nominalVoltage": 12.0,
"unlimited": false
}
}
],
"pointTowardsZones": [],
"eventMarkers": [
{
"name": "Intake Start",
"waypointRelativePos": 0.7886754297269942,
"endWaypointRelativePos": null,
"command": null
}
],
"globalConstraints": {
"maxVelocity": 4.0,
"maxAcceleration": 2.5,
"maxAngularVelocity": 540.0,
"maxAngularAcceleration": 720.0,
"nominalVoltage": 12.0,
"unlimited": false
},
"goalEndState": {
"velocity": 4.0,
"rotation": -45.365518355574764
},
"reversed": false,
"folder": null,
"idealStartingState": {
"velocity": 0,
"rotation": -129.95754893082906
},
"useDefaultConstraints": false
}

View File

@@ -3,29 +3,29 @@
"waypoints": [ "waypoints": [
{ {
"anchor": { "anchor": {
"x": 6.050842639593909, "x": 6.041634517766498,
"y": 5.715482233502538 "y": 6.3692588832487305
}, },
"prevControl": null, "prevControl": null,
"nextControl": { "nextControl": {
"x": 6.520456852791878, "x": 6.511248730964468,
"y": 6.406091370558377 "y": 7.059868020304569
}, },
"isLocked": false, "isLocked": false,
"linkedName": "over bump" "linkedName": "over bump"
}, },
{ {
"anchor": { "anchor": {
"x": 7.017695431472081, "x": 7.220274111675127,
"y": 7.216406091370559 "y": 7.299279187817259
}, },
"prevControl": { "prevControl": {
"x": 6.017695431472081, "x": 6.220274111675127,
"y": 7.216406091370559 "y": 7.299279187817259
}, },
"nextControl": { "nextControl": {
"x": 8.017695431472081, "x": 8.220274111675131,
"y": 7.216406091370559 "y": 7.299279187817259
}, },
"isLocked": false, "isLocked": false,
"linkedName": null "linkedName": null
@@ -36,40 +36,44 @@
"y": 4.831502538071066 "y": 4.831502538071066
}, },
"prevControl": { "prevControl": {
"x": 7.941269035532995, "x": 7.952417879560978,
"y": 6.042370558375635 "y": 6.041784973535379
}, },
"nextControl": { "nextControl": {
"x": 7.825248730964466, "x": 7.846426395939085,
"y": 3.620634517766498 "y": 4.186934010152284
}, },
"isLocked": false, "isLocked": false,
"linkedName": null "linkedName": null
}, },
{ {
"anchor": { "anchor": {
"x": 6.050842639593909, "x": 6.742194543297748,
"y": 5.715482233502538 "y": 5.589703440094898
}, },
"prevControl": { "prevControl": {
"x": 6.99789847715736, "x": 7.598549873246986,
"y": 5.183713197969544 "y": 5.589703440094898
}, },
"nextControl": null, "nextControl": null,
"isLocked": false, "isLocked": false,
"linkedName": null "linkedName": "after center grab"
} }
], ],
"rotationTargets": [ "rotationTargets": [
{ {
"waypointRelativePos": 1.0045454545454569, "waypointRelativePos": 1.0045454545454569,
"rotationDegrees": -115.0 "rotationDegrees": -115.0
},
{
"waypointRelativePos": 2.348863636363685,
"rotationDegrees": -115.0
} }
], ],
"constraintZones": [ "constraintZones": [
{ {
"name": "Constraints Zone", "name": "Constraints Zone",
"minWaypointRelativePos": 1.1243680485338854, "minWaypointRelativePos": 1.3403967538322836,
"maxWaypointRelativePos": 2.0, "maxWaypointRelativePos": 2.0,
"constraints": { "constraints": {
"maxVelocity": 1.0, "maxVelocity": 1.0,
@@ -91,22 +95,22 @@
} }
], ],
"globalConstraints": { "globalConstraints": {
"maxVelocity": 2.0, "maxVelocity": 4.0,
"maxAcceleration": 1.5, "maxAcceleration": 2.5,
"maxAngularVelocity": 540.0, "maxAngularVelocity": 540.0,
"maxAngularAcceleration": 720.0, "maxAngularAcceleration": 720.0,
"nominalVoltage": 12.0, "nominalVoltage": 12.0,
"unlimited": false "unlimited": false
}, },
"goalEndState": { "goalEndState": {
"velocity": 0, "velocity": 4.0,
"rotation": -120.34324888423971 "rotation": -45.365518355574764
}, },
"reversed": false, "reversed": false,
"folder": null, "folder": null,
"idealStartingState": { "idealStartingState": {
"velocity": 0, "velocity": 2.0,
"rotation": -123.34070734647689 "rotation": -129.95754893082906
}, },
"useDefaultConstraints": true "useDefaultConstraints": false
} }

View File

@@ -3,12 +3,12 @@
"waypoints": [ "waypoints": [
{ {
"anchor": { "anchor": {
"x": 3.573857868020305, "x": 3.5922741116751276,
"y": 6.3692588832487305 "y": 6.3692588832487305
}, },
"prevControl": null, "prevControl": null,
"nextControl": { "nextControl": {
"x": 2.7991959463121194, "x": 2.817612189966942,
"y": 6.260219737341258 "y": 6.260219737341258
}, },
"isLocked": false, "isLocked": false,
@@ -16,12 +16,12 @@
}, },
{ {
"anchor": { "anchor": {
"x": 3.2515736040609142, "x": 1.925604060913706,
"y": 4.914375634517767 "y": 5.503695431472081
}, },
"prevControl": { "prevControl": {
"x": 3.44523908448796, "x": 2.119269541340752,
"y": 5.430816915656558 "y": 6.020136712610872
}, },
"nextControl": null, "nextControl": null,
"isLocked": false, "isLocked": false,

View File

@@ -3,38 +3,43 @@
"waypoints": [ "waypoints": [
{ {
"anchor": { "anchor": {
"x": 0.77458883248731, "x": 0.32339086294416286,
"y": 5.927269035532995 "y": 5.9825177664974625
}, },
"prevControl": null, "prevControl": null,
"nextControl": { "nextControl": {
"x": 1.7745888324873098, "x": 0.6364670050761427,
"y": 5.927269035532995 "y": 6.03776649746193
}, },
"isLocked": false, "isLocked": false,
"linkedName": "trough" "linkedName": "trough"
}, },
{ {
"anchor": { "anchor": {
"x": 3.2515736040609142, "x": 1.925604060913706,
"y": 4.914375634517767 "y": 5.503695431472081
}, },
"prevControl": { "prevControl": {
"x": 2.6254213197969554, "x": 1.409949238578681,
"y": 5.420822335025381 "y": 5.844395939086294
}, },
"nextControl": null, "nextControl": null,
"isLocked": false, "isLocked": false,
"linkedName": "left close" "linkedName": "left close"
} }
], ],
"rotationTargets": [], "rotationTargets": [
{
"waypointRelativePos": 0.7098520389751093,
"rotationDegrees": 176.84552599629856
}
],
"constraintZones": [], "constraintZones": [],
"pointTowardsZones": [], "pointTowardsZones": [],
"eventMarkers": [], "eventMarkers": [],
"globalConstraints": { "globalConstraints": {
"maxVelocity": 2.0, "maxVelocity": 4.0,
"maxAcceleration": 1.5, "maxAcceleration": 2.5,
"maxAngularVelocity": 540.0, "maxAngularVelocity": 540.0,
"maxAngularAcceleration": 720.0, "maxAngularAcceleration": 720.0,
"nominalVoltage": 12.0, "nominalVoltage": 12.0,
@@ -50,5 +55,5 @@
"velocity": 0, "velocity": 0,
"rotation": 178.80651057601818 "rotation": 178.80651057601818
}, },
"useDefaultConstraints": true "useDefaultConstraints": false
} }

View File

@@ -14,6 +14,7 @@ import org.littletonrobotics.junction.Logger;
import com.pathplanner.lib.auto.AutoBuilder; import com.pathplanner.lib.auto.AutoBuilder;
import com.pathplanner.lib.auto.NamedCommands; import com.pathplanner.lib.auto.NamedCommands;
import com.pathplanner.lib.commands.PathPlannerAuto;
import com.pathplanner.lib.events.EventTrigger; import com.pathplanner.lib.events.EventTrigger;
import com.pathplanner.lib.path.EventMarker; import com.pathplanner.lib.path.EventMarker;
@@ -113,6 +114,16 @@ public class RobotContainer {
if(AutoConstants.kAutoConfigOk) { if(AutoConstants.kAutoConfigOk) {
autoChooser = AutoBuilder.buildAutoChooser(); autoChooser = AutoBuilder.buildAutoChooser();
SmartDashboard.putData("Auto Chooser", autoChooser); SmartDashboard.putData("Auto Chooser", autoChooser);
autoChooser.addOption(
"MOVE B____ right to center",
new PathPlannerAuto("MOVE B____ left to center", true)
);
autoChooser.addOption(
"right to center",
new PathPlannerAuto("left to center", true)
);
} }
} }
@@ -274,6 +285,8 @@ public class RobotContainer {
intakePivot.setDefaultCommand(intakePivot.manualSpeed(() -> secondary.getLeftY())); intakePivot.setDefaultCommand(intakePivot.manualSpeed(() -> secondary.getLeftY()));
// secondary.leftStick().whileTrue(intakePivot.manualSpeed(() -> secondary.getLeftY()));
driver.a().onTrue(new InstantCommand(() -> resetOdometryToVisualPose = true)); driver.a().onTrue(new InstantCommand(() -> resetOdometryToVisualPose = true));
driver.y().whileTrue(drivetrain.zeroHeading()); driver.y().whileTrue(drivetrain.zeroHeading());
driver.x().whileTrue(drivetrain.setX()); driver.x().whileTrue(drivetrain.setX());
@@ -290,11 +303,16 @@ public class RobotContainer {
driver.rightBumper().whileTrue(intakeRoller.runIn()); driver.rightBumper().whileTrue(intakeRoller.runIn());
driver.rightTrigger().whileTrue( driver.rightTrigger().whileTrue(
spindexer.spinToShooter().alongWith( spindexer.spinToShooter(shooter::getAverageActualSpeeds, 2000).alongWith(
intakeRoller.runIn(), intakeRoller.runIn()/* ,
intakePivot.jimmy(.5) intakePivot.jimmy(.5)*/
) )
); );
driver.rightTrigger().whileTrue(
intakePivot.jimmy(.5)
);
secondary.leftBumper().onTrue(new InstantCommand(() -> {}, intakePivot));
driver.rightTrigger().onFalse( driver.rightTrigger().onFalse(
intakePivot.manualSpeed(() -> 0.75).withTimeout(0.5) intakePivot.manualSpeed(() -> 0.75).withTimeout(0.5)
@@ -391,7 +409,7 @@ public class RobotContainer {
NamedCommands.registerCommand("spinup", NamedCommands.registerCommand("spinup",
shooter.maintainSpeed(ShooterSpeeds.kHubSpeed) shooter.maintainSpeed(ShooterSpeeds.kHubSpeed)
.withTimeout(3)); .withTimeout(2));
NamedCommands.registerCommand("shoot close", NamedCommands.registerCommand("shoot close",
spindexer.spinToShooter() spindexer.spinToShooter()
@@ -405,6 +423,10 @@ public class RobotContainer {
.onTrue( .onTrue(
intakeRoller.runIn()); intakeRoller.runIn());
new EventTrigger("windup trigger")
.onTrue(
shooter.maintainSpeed(ShooterSpeeds.kHubSpeed));
NamedCommands.registerCommand("stop spindexer", spindexer.instantaneousStop()); NamedCommands.registerCommand("stop spindexer", spindexer.instantaneousStop());
NamedCommands.registerCommand("jimmy", NamedCommands.registerCommand("jimmy",
@@ -420,7 +442,21 @@ public class RobotContainer {
).withTimeout(3).andThen(spindexer.instantaneousStop())); ).withTimeout(3).andThen(spindexer.instantaneousStop()));
NamedCommands.registerCommand("auto shoot", hood.trackToAnglePoseBased(drivetrain, shooter)); NamedCommands.registerCommand("aim",
hood.trackToAnglePoseBased(drivetrain, shooter)
.alongWith(
shooter.maintainSpeed(ShooterSpeeds.kHubSpeed),
intakePivot.jimmy(0.5),
drivetrain.lockRotationToHub(() -> 0.0, () -> 0.0, false))
.withTimeout(0.5));
NamedCommands.registerCommand("auto shoot",
hood.trackToAnglePoseBased(drivetrain, shooter)
.alongWith(
shooter.maintainSpeed(ShooterSpeeds.kHubSpeed),
spindexer.spinToShooter(),
intakePivot.jimmy(0.5),
drivetrain.lockRotationToHub(() -> 0.0, () -> 0.0, false)));
} }
public Command getAutonomousCommand() { public Command getAutonomousCommand() {

View File

@@ -46,7 +46,7 @@ public class DrivetrainConstants {
// TODO How much do we trust gyro and encoders vs vision estimates. // TODO How much do we trust gyro and encoders vs vision estimates.
// NOTE: Bigger values indicate LESS trust. Generally all three values for a given matrix should be the same // NOTE: Bigger values indicate LESS trust. Generally all three values for a given matrix should be the same
public static final Matrix<N3, N1> kSensorFusionOdometryStdDevs = VecBuilder.fill(0.1, 0.1, 0.1); public static final Matrix<N3, N1> kSensorFusionOdometryStdDevs = VecBuilder.fill(0.1, 0.1, 0.1);
public static final Matrix<N3, N1> kVisionOdometryStdDevs = VecBuilder.fill(0.9, 0.9, 0.9); public static final Matrix<N3, N1> kVisionOdometryStdDevs = VecBuilder.fill(0.3, 0.3, 0.3);
// YOU SHOULDN'T NEED TO CHANGE ANYTHING BELOW THIS LINE UNLESS YOU'RE ADDING A NEW CONFIGURATION ITEM // YOU SHOULDN'T NEED TO CHANGE ANYTHING BELOW THIS LINE UNLESS YOU'RE ADDING A NEW CONFIGURATION ITEM
public static final SwerveDriveKinematics kDriveKinematics = new SwerveDriveKinematics( public static final SwerveDriveKinematics kDriveKinematics = new SwerveDriveKinematics(

View File

@@ -56,7 +56,7 @@ public class ModuleConstants {
// TODO Hold over from 2025, adjust? // TODO Hold over from 2025, adjust?
public static final int kDriveMotorStatorCurrentLimit = 90; public static final int kDriveMotorStatorCurrentLimit = 90;
public static final int kDriveMotorSupplyCurrentLimit = 55; public static final int kDriveMotorSupplyCurrentLimit = 40;
// TODO Hold over from 2025, adjust? // TODO Hold over from 2025, adjust?
public static final InvertedValue kDriveInversionState = InvertedValue.Clockwise_Positive; public static final InvertedValue kDriveInversionState = InvertedValue.Clockwise_Positive;

View File

@@ -43,14 +43,14 @@ public class ShooterConstants {
public static final boolean kLeftShooterMotorInverted = true; public static final boolean kLeftShooterMotorInverted = true;
public static final boolean kRightShooterMotorInverted = false; public static final boolean kRightShooterMotorInverted = false;
public static final double kLeftP = 0.1;//0.01;//0.001; public static final double kLeftP = 0.75;//0.01;//0.001;
public static final double kLeftI = 0; public static final double kLeftI = 0;
public static final double kLeftD = 0;//0.1;//1.8; public static final double kLeftD = 0;//0.1;//1.8;
public static final double kLeftS = 0; public static final double kLeftS = 0;
public static final double kLeftV = 0.00129; public static final double kLeftV = 0.00129;
public static final double kLeftA = 0; public static final double kLeftA = 0;
public static final double kRightP = 0.1;//0.001;//0.001; public static final double kRightP = 0.75;//0.001;//0.001;
public static final double kRightI = 0; public static final double kRightI = 0;
public static final double kRightD = 0;//0.1; public static final double kRightD = 0;//0.1;
public static final double kRightS = 0; public static final double kRightS = 0;

View File

@@ -32,8 +32,8 @@ public class IntakeRoller extends SubsystemBase {
public Command runIn() { public Command runIn() {
return run(() -> { return run(() -> {
leftMotor.set(IntakeRollerConstants.kSpeed*0.8); leftMotor.set(IntakeRollerConstants.kSpeed*0.9);
rightMotor.set(IntakeRollerConstants.kSpeed*0.8); rightMotor.set(IntakeRollerConstants.kSpeed*0.9);
}); });
} }

View File

@@ -1,5 +1,7 @@
package frc.robot.subsystems; package frc.robot.subsystems;
import java.util.function.DoubleSupplier;
import com.ctre.phoenix6.controls.DutyCycleOut; import com.ctre.phoenix6.controls.DutyCycleOut;
import com.ctre.phoenix6.hardware.TalonFX; import com.ctre.phoenix6.hardware.TalonFX;
import com.revrobotics.PersistMode; import com.revrobotics.PersistMode;
@@ -44,6 +46,22 @@ public class Spindexer extends SubsystemBase {
}); });
} }
public Command spinToShooter(DoubleSupplier shooterSpeedRPM, double cutOffRPM) {
return run(() -> {
if(shooterSpeedRPM.getAsDouble() < cutOffRPM) {
spindexerMotor.setControl(
spindexerMotorOutput.withOutput(0)
);
feederMotor.set(0);
} else {
spindexerMotor.setControl(
spindexerMotorOutput.withOutput(SpindexerConstants.kSpindexerSpeed)
);
feederMotor.set(SpindexerConstants.kFeederSpeed);
}
});
}
public Command spinToIntake() { public Command spinToIntake() {
return run(() -> { return run(() -> {
spindexerMotor.setControl( spindexerMotor.setControl(