Named Commands and calculated feedforwards
This commit is contained in:
parent
3fec792691
commit
cd28d8211f
@ -20,7 +20,7 @@
|
|||||||
{
|
{
|
||||||
"type": "path",
|
"type": "path",
|
||||||
"data": {
|
"data": {
|
||||||
"pathName": "Preloaded+Pickup"
|
"pathName": "Left Preloaded+Pickup"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
{
|
{
|
||||||
"type": "path",
|
"type": "path",
|
||||||
"data": {
|
"data": {
|
||||||
"pathName": "Preloaded+Pickup"
|
"pathName": "Left Preloaded+Pickup"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
{
|
{
|
||||||
"type": "path",
|
"type": "path",
|
||||||
"data": {
|
"data": {
|
||||||
"pathName": "Preloaded+Pickup"
|
"pathName": "Left Preloaded+Pickup"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
43
src/main/deploy/pathplanner/autos/Right Subwoofer 1S.auto
Normal file
43
src/main/deploy/pathplanner/autos/Right Subwoofer 1S.auto
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
{
|
||||||
|
"version": 1.0,
|
||||||
|
"startingPose": {
|
||||||
|
"position": {
|
||||||
|
"x": 1.0578032584636603,
|
||||||
|
"y": 4.485794114445372
|
||||||
|
},
|
||||||
|
"rotation": 141.84277341263092
|
||||||
|
},
|
||||||
|
"command": {
|
||||||
|
"type": "sequential",
|
||||||
|
"data": {
|
||||||
|
"commands": [
|
||||||
|
{
|
||||||
|
"type": "named",
|
||||||
|
"data": {
|
||||||
|
"name": "Charge Shooter"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "wait",
|
||||||
|
"data": {
|
||||||
|
"waitTime": 2.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "named",
|
||||||
|
"data": {
|
||||||
|
"name": "Speaker Note Shot"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "path",
|
||||||
|
"data": {
|
||||||
|
"pathName": "Right Subwoofer to Center"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"folder": null,
|
||||||
|
"choreoAuto": false
|
||||||
|
}
|
@ -0,0 +1,52 @@
|
|||||||
|
{
|
||||||
|
"version": 1.0,
|
||||||
|
"waypoints": [
|
||||||
|
{
|
||||||
|
"anchor": {
|
||||||
|
"x": 1.0578032584636603,
|
||||||
|
"y": 4.485794114445372
|
||||||
|
},
|
||||||
|
"prevControl": null,
|
||||||
|
"nextControl": {
|
||||||
|
"x": 1.5708842846257125,
|
||||||
|
"y": 2.6240429623716395
|
||||||
|
},
|
||||||
|
"isLocked": false,
|
||||||
|
"linkedName": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anchor": {
|
||||||
|
"x": 7.0095431619434665,
|
||||||
|
"y": 0.8355890997496291
|
||||||
|
},
|
||||||
|
"prevControl": {
|
||||||
|
"x": 6.0095431619434665,
|
||||||
|
"y": 0.8355890997496291
|
||||||
|
},
|
||||||
|
"nextControl": null,
|
||||||
|
"isLocked": false,
|
||||||
|
"linkedName": null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"rotationTargets": [],
|
||||||
|
"constraintZones": [],
|
||||||
|
"eventMarkers": [],
|
||||||
|
"globalConstraints": {
|
||||||
|
"maxVelocity": 3.0,
|
||||||
|
"maxAcceleration": 3.0,
|
||||||
|
"maxAngularVelocity": 540.0,
|
||||||
|
"maxAngularAcceleration": 720.0
|
||||||
|
},
|
||||||
|
"goalEndState": {
|
||||||
|
"velocity": 0,
|
||||||
|
"rotation": 0,
|
||||||
|
"rotateFast": false
|
||||||
|
},
|
||||||
|
"reversed": false,
|
||||||
|
"folder": null,
|
||||||
|
"previewStartingState": {
|
||||||
|
"rotation": 144.68878656036674,
|
||||||
|
"velocity": 0
|
||||||
|
},
|
||||||
|
"useDefaultConstraints": true
|
||||||
|
}
|
@ -7,7 +7,7 @@ import frc.robot.subsystems.Shooter;
|
|||||||
public class AmpHandoff extends ParallelCommandGroup{
|
public class AmpHandoff extends ParallelCommandGroup{
|
||||||
|
|
||||||
AmpHandoff(Indexer indexer, Shooter shooter){
|
AmpHandoff(Indexer indexer, Shooter shooter){
|
||||||
addCommands(indexer.shootNote(null), shooter.ampHandoff());
|
addCommands(indexer.shootNote(1), shooter.ampHandoff());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,6 @@ import frc.robot.subsystems.Shooter;
|
|||||||
public class SpeakerShot extends ParallelCommandGroup{
|
public class SpeakerShot extends ParallelCommandGroup{
|
||||||
|
|
||||||
SpeakerShot(Indexer indexer, Shooter shooter){
|
SpeakerShot(Indexer indexer, Shooter shooter){
|
||||||
addCommands(shooter.angleSpeedsSetpoints(ShooterConstants.kShooterLoadAngle, 0, 0), indexer.shootNote(() -> 1.0));
|
addCommands(shooter.angleSpeedsSetpoints(ShooterConstants.kShooterLoadAngle, 0, 0), indexer.shootNote( 1.0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,6 +21,7 @@ import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab;
|
|||||||
import edu.wpi.first.wpilibj.smartdashboard.SendableChooser;
|
import edu.wpi.first.wpilibj.smartdashboard.SendableChooser;
|
||||||
import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard;
|
import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard;
|
||||||
import edu.wpi.first.wpilibj2.command.Command;
|
import edu.wpi.first.wpilibj2.command.Command;
|
||||||
|
import edu.wpi.first.wpilibj2.command.Commands;
|
||||||
import edu.wpi.first.wpilibj2.command.InstantCommand;
|
import edu.wpi.first.wpilibj2.command.InstantCommand;
|
||||||
import edu.wpi.first.wpilibj2.command.button.CommandXboxController;
|
import edu.wpi.first.wpilibj2.command.button.CommandXboxController;
|
||||||
import edu.wpi.first.wpilibj2.command.button.Trigger;
|
import edu.wpi.first.wpilibj2.command.button.Trigger;
|
||||||
@ -87,7 +88,8 @@ public class RobotContainer {
|
|||||||
|
|
||||||
climber = new Climber(shooter.getShooterAngle());
|
climber = new Climber(shooter.getShooterAngle());
|
||||||
|
|
||||||
|
NamedCommands.registerCommand("Charge Shooter", shooter.angleSpeedsSetpoints(ShooterConstants.kShooterLoadAngle, 1.0, 1.0));
|
||||||
|
NamedCommands.registerCommand("Speake Note Shot", Commands.parallel(shooter.angleSpeedsSetpoints(ShooterConstants.kShooterLoadAngle, 1.0, 1.0), indexer.shootNote(1.0)));
|
||||||
|
|
||||||
// An example Named Command, doesn't need to remain once we start actually adding real things
|
// An example Named Command, doesn't need to remain once we start actually adding real things
|
||||||
// ALL Named Commands need to be defined AFTER subsystem initialization and BEFORE auto/controller configuration
|
// ALL Named Commands need to be defined AFTER subsystem initialization and BEFORE auto/controller configuration
|
||||||
@ -143,7 +145,7 @@ public class RobotContainer {
|
|||||||
|
|
||||||
climber.setDefaultCommand(climber.stop());
|
climber.setDefaultCommand(climber.stop());
|
||||||
|
|
||||||
indexer.setDefaultCommand(indexer.shootNote(operator::getRightTriggerAxis));
|
indexer.setDefaultCommand(indexer.shootNote(operator.getRightTriggerAxis()));
|
||||||
|
|
||||||
driver.povCenter().onFalse(
|
driver.povCenter().onFalse(
|
||||||
drivetrain.driveCardinal(
|
drivetrain.driveCardinal(
|
||||||
@ -210,7 +212,7 @@ public class RobotContainer {
|
|||||||
|
|
||||||
driver.leftBumper().toggleOnTrue(intake.intakeDownCommand());
|
driver.leftBumper().toggleOnTrue(intake.intakeDownCommand());
|
||||||
|
|
||||||
operator.y().onTrue(climber.setSpeedWithSupplier(operator::getRightTriggerAxis));
|
operator.y().whileTrue(Commands.parallel(climber.setSpeedWithSupplier(operator::getRightTriggerAxis), shooter.climbState()));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,5 +47,5 @@ public final class DrivetrainConstants {
|
|||||||
|
|
||||||
public static final boolean kGyroReversed = true;
|
public static final boolean kGyroReversed = true;
|
||||||
|
|
||||||
public static final double kRobotStartOffset = 90;
|
public static final double kRobotStartOffset = 0;
|
||||||
}
|
}
|
||||||
|
@ -13,8 +13,8 @@ public class IntakeConstants {
|
|||||||
public static final double kDIntake = 0;
|
public static final double kDIntake = 0;
|
||||||
|
|
||||||
public static final double kSFeedForward = 0;
|
public static final double kSFeedForward = 0;
|
||||||
public static final double kGFeedForward = 0;
|
public static final double kGFeedForward = 1.11;
|
||||||
public static final double kVFeedForward = 0;
|
public static final double kVFeedForward = 0.73;
|
||||||
|
|
||||||
public static final double kStartingAngle = Math.toRadians(105.0);
|
public static final double kStartingAngle = Math.toRadians(105.0);
|
||||||
public static final double kUpAngle = Math.toRadians(90.0);
|
public static final double kUpAngle = Math.toRadians(90.0);
|
||||||
|
@ -22,8 +22,8 @@ public class ShooterConstants {
|
|||||||
public static final double kPivotConversion = 1/(40.0*(28.0/15.0));
|
public static final double kPivotConversion = 1/(40.0*(28.0/15.0));
|
||||||
|
|
||||||
public static final double kSShooterPivotFF = 0.0;
|
public static final double kSShooterPivotFF = 0.0;
|
||||||
public static final double kGShooterPivotFF = 0.0;
|
public static final double kGShooterPivotFF = 0.33;
|
||||||
public static final double kVShooterPivotFF = 0.0;
|
public static final double kVShooterPivotFF = 1.44;
|
||||||
|
|
||||||
public static final double kMaxPivotSpeed = 0.0;
|
public static final double kMaxPivotSpeed = 0.0;
|
||||||
public static final double kMaxPivotAcceleration = 0.0;
|
public static final double kMaxPivotAcceleration = 0.0;
|
||||||
|
@ -49,9 +49,9 @@ public class Indexer extends SubsystemBase{
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public Command shootNote(DoubleSupplier indexerSpeed){
|
public Command shootNote(double indexerSpeed){
|
||||||
return run(() -> {
|
return run(() -> {
|
||||||
indexerMotor.set(indexerSpeed.getAsDouble());
|
indexerMotor.set(indexerSpeed);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"fileName": "PathplannerLib.json",
|
"fileName": "PathplannerLib.json",
|
||||||
"name": "PathplannerLib",
|
"name": "PathplannerLib",
|
||||||
"version": "2024.2.3",
|
"version": "2024.2.4",
|
||||||
"uuid": "1b42324f-17c6-4875-8e77-1c312bc8c786",
|
"uuid": "1b42324f-17c6-4875-8e77-1c312bc8c786",
|
||||||
"frcYear": "2024",
|
"frcYear": "2024",
|
||||||
"mavenUrls": [
|
"mavenUrls": [
|
||||||
@ -12,7 +12,7 @@
|
|||||||
{
|
{
|
||||||
"groupId": "com.pathplanner.lib",
|
"groupId": "com.pathplanner.lib",
|
||||||
"artifactId": "PathplannerLib-java",
|
"artifactId": "PathplannerLib-java",
|
||||||
"version": "2024.2.3"
|
"version": "2024.2.4"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"jniDependencies": [],
|
"jniDependencies": [],
|
||||||
@ -20,7 +20,7 @@
|
|||||||
{
|
{
|
||||||
"groupId": "com.pathplanner.lib",
|
"groupId": "com.pathplanner.lib",
|
||||||
"artifactId": "PathplannerLib-cpp",
|
"artifactId": "PathplannerLib-cpp",
|
||||||
"version": "2024.2.3",
|
"version": "2024.2.4",
|
||||||
"libName": "PathplannerLib",
|
"libName": "PathplannerLib",
|
||||||
"headerClassifier": "headers",
|
"headerClassifier": "headers",
|
||||||
"sharedLibrary": false,
|
"sharedLibrary": false,
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"fileName": "REVLib.json",
|
"fileName": "REVLib.json",
|
||||||
"name": "REVLib",
|
"name": "REVLib",
|
||||||
"version": "2024.2.1",
|
"version": "2024.2.2",
|
||||||
"frcYear": "2024",
|
"frcYear": "2024",
|
||||||
"uuid": "3f48eb8c-50fe-43a6-9cb7-44c86353c4cb",
|
"uuid": "3f48eb8c-50fe-43a6-9cb7-44c86353c4cb",
|
||||||
"mavenUrls": [
|
"mavenUrls": [
|
||||||
@ -12,14 +12,14 @@
|
|||||||
{
|
{
|
||||||
"groupId": "com.revrobotics.frc",
|
"groupId": "com.revrobotics.frc",
|
||||||
"artifactId": "REVLib-java",
|
"artifactId": "REVLib-java",
|
||||||
"version": "2024.2.1"
|
"version": "2024.2.2"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"jniDependencies": [
|
"jniDependencies": [
|
||||||
{
|
{
|
||||||
"groupId": "com.revrobotics.frc",
|
"groupId": "com.revrobotics.frc",
|
||||||
"artifactId": "REVLib-driver",
|
"artifactId": "REVLib-driver",
|
||||||
"version": "2024.2.1",
|
"version": "2024.2.2",
|
||||||
"skipInvalidPlatforms": true,
|
"skipInvalidPlatforms": true,
|
||||||
"isJar": false,
|
"isJar": false,
|
||||||
"validPlatforms": [
|
"validPlatforms": [
|
||||||
@ -37,7 +37,7 @@
|
|||||||
{
|
{
|
||||||
"groupId": "com.revrobotics.frc",
|
"groupId": "com.revrobotics.frc",
|
||||||
"artifactId": "REVLib-cpp",
|
"artifactId": "REVLib-cpp",
|
||||||
"version": "2024.2.1",
|
"version": "2024.2.2",
|
||||||
"libName": "REVLib",
|
"libName": "REVLib",
|
||||||
"headerClassifier": "headers",
|
"headerClassifier": "headers",
|
||||||
"sharedLibrary": false,
|
"sharedLibrary": false,
|
||||||
@ -55,7 +55,7 @@
|
|||||||
{
|
{
|
||||||
"groupId": "com.revrobotics.frc",
|
"groupId": "com.revrobotics.frc",
|
||||||
"artifactId": "REVLib-driver",
|
"artifactId": "REVLib-driver",
|
||||||
"version": "2024.2.1",
|
"version": "2024.2.2",
|
||||||
"libName": "REVLibDriver",
|
"libName": "REVLibDriver",
|
||||||
"headerClassifier": "headers",
|
"headerClassifier": "headers",
|
||||||
"sharedLibrary": false,
|
"sharedLibrary": false,
|
||||||
|
Loading…
Reference in New Issue
Block a user