Skip to content

Commit

Permalink
Initial 2024 updates, removed some houndauto things
Browse files Browse the repository at this point in the history
  • Loading branch information
superpenguin612 committed Oct 26, 2023
1 parent 2ecca04 commit fea4a73
Show file tree
Hide file tree
Showing 26 changed files with 538 additions and 498 deletions.
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -158,5 +158,15 @@ gradle-app.setting
.settings/
bin/

# IntelliJ
*.iml
*.ipr
*.iws
.idea/
out/

# Fleet
.fleet

# Simulation GUI and other tools window save file
*-window.json
2 changes: 1 addition & 1 deletion .wpilib/wpilib_preferences.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"enableCppIntellisense": false,
"currentLanguage": "java",
"projectYear": "2023",
"projectYear": "2024beta",
"teamNumber": 868
}
2 changes: 1 addition & 1 deletion WPILib-License.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2009-2021 FIRST and other WPILib contributors
Copyright (c) 2009-2023 FIRST and other WPILib contributors
All rights reserved.

Redistribution and use in source and binary forms, with or without
Expand Down
9 changes: 6 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
plugins {
id "java"
id "edu.wpi.first.GradleRIO" version "2023.2.1"
id "edu.wpi.first.GradleRIO" version "2024.1.1-beta-2"
}

sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}

def ROBOT_MAIN_CLASS = ""

Expand Down Expand Up @@ -84,6 +86,7 @@ wpi.sim.addDriverstation()
// knows where to look for our Robot Class.
jar {
from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
from sourceSets.main.allSource
manifest edu.wpi.first.gradlerio.GradleRIOPlugin.javaManifest(ROBOT_MAIN_CLASS)
duplicatesStrategy = DuplicatesStrategy.INCLUDE
}
Expand Down
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
4 changes: 3 additions & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=permwrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=permwrapper/dists
35 changes: 22 additions & 13 deletions gradlew
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
Expand All @@ -80,13 +80,11 @@ do
esac
done

APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit

APP_NAME="Gradle"
# This is normally unused
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}

# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit

# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
Expand Down Expand Up @@ -133,22 +131,29 @@ location of your Java installation."
fi
else
JAVACMD=java
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
if ! command -v java >/dev/null 2>&1
then
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
fi

# Increase the maximum file descriptors if we can.
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC2039,SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
case $MAX_FD in #(
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC2039,SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
Expand Down Expand Up @@ -193,11 +198,15 @@ if "$cygwin" || "$msys" ; then
done
fi

# Collect all arguments for the java command;
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
# shell script including quotes and variable substitutions, so put them in
# double quotes to make sure that they get re-expanded; and
# * put everything else in single quotes, so that it's not re-expanded.

# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'

# Collect all arguments for the java command:
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.

set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
Expand Down
1 change: 1 addition & 0 deletions gradlew.bat
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ if "%OS%"=="Windows_NT" setlocal

set DIRNAME=%~dp0
if "%DIRNAME%"=="" set DIRNAME=.
@rem This is normally unused
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%

Expand Down
5 changes: 4 additions & 1 deletion settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ pluginManagement {
repositories {
mavenLocal()
gradlePluginPortal()
String frcYear = '2023'
String frcYear = '2024'
File frcHome
if (OperatingSystem.current().isWindows()) {
String publicFolder = System.getenv('PUBLIC')
Expand All @@ -25,3 +25,6 @@ pluginManagement {
}
}
}

Properties props = System.getProperties();
props.setProperty("org.gradle.internal.native.headers.unresolved.dependencies.ignore", "true");
24 changes: 13 additions & 11 deletions src/main/java/com/techhounds/houndutil/houndauto/AutoManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
import java.util.Optional;
import java.util.function.Consumer;

import com.pathplanner.lib.PathPlannerTrajectory;
import com.pathplanner.lib.path.PathPlannerPath;
import com.pathplanner.lib.path.PathPlannerTrajectory;
import com.techhounds.houndutil.houndlog.LogGroup;
import com.techhounds.houndutil.houndlog.LoggingManager;
import com.techhounds.houndutil.houndlog.enums.LogType;
Expand All @@ -15,6 +16,7 @@
import com.techhounds.houndutil.houndlog.logitems.StringLogItem;

import edu.wpi.first.math.geometry.Pose2d;
import edu.wpi.first.math.kinematics.ChassisSpeeds;
import edu.wpi.first.math.trajectory.Trajectory;
import edu.wpi.first.wpilibj.DriverStation;
import edu.wpi.first.wpilibj.Timer;
Expand Down Expand Up @@ -184,16 +186,16 @@ public void periodicUpdate(boolean ignoreLastTrajCheck) {
* Display the selected routine's trajectories on the field object.
*/
public void displayAutoPath(AutoPath autoPath) {
if (getSelectedRoutine() != null) {
ArrayList<PathPlannerTrajectory> trajectories = autoPath.getTrajectories();
Trajectory fullTrajectory = trajectories.get(0);
for (int i = 1; i < trajectories.size(); i++) {
fullTrajectory = fullTrajectory.concatenate(trajectories.get(i));
}
field.getObject("Autonomous Routine")
.setTrajectory(fullTrajectory);
}

// if (getSelectedRoutine() != null) {
// List<PathPlannerPath> path = autoPath.getPaths();
// Trajectory fullTrajectory = new PathPlannerTrajectory(path.get(0), new ChassisSpeeds());
// for (int i = 1; i < trajectories.size(); i++) {
// fullTrajectory = fullTrajectory.concatenate(trajectories.get(i));
// }
// field.getObject("Autonomous Routine")
// .setTrajectory(fullTrajectory);
// }
// TODO
}

/**
Expand Down
42 changes: 8 additions & 34 deletions src/main/java/com/techhounds/houndutil/houndauto/AutoPath.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,7 @@
import java.util.Arrays;
import java.util.List;

import com.pathplanner.lib.PathPlannerTrajectory;

import edu.wpi.first.wpilibj.DriverStation;
import edu.wpi.first.wpilibj.DriverStation.Alliance;
import com.pathplanner.lib.path.PathPlannerPath;

/**
* A wrapper for a PathPlanner trajectory that includes a name and can take in a
Expand All @@ -17,22 +14,17 @@
*/
public class AutoPath {
private String name;
private ArrayList<PathPlannerTrajectory> blueTrajectories = new ArrayList<PathPlannerTrajectory>();
private ArrayList<PathPlannerTrajectory> redTrajectories = new ArrayList<PathPlannerTrajectory>();
private List<PathPlannerPath> pathPlannerPaths;

/**
* Initializes the AutoPath.
*
* @param name the name of the AutoPath
* @param trajectory the trajectory to use
*/
public AutoPath(String name, ArrayList<PathPlannerTrajectory> trajectories) {
public AutoPath(String name, List<PathPlannerPath> paths) {
this.name = name;
this.blueTrajectories = trajectories;

for (PathPlannerTrajectory trajectory : trajectories) {
redTrajectories.add(TrajectoryReflector.reflectiveTransformTrajectory(trajectory, 16.54));
}
this.pathPlannerPaths = paths;
}

/**
Expand All @@ -41,8 +33,8 @@ public AutoPath(String name, ArrayList<PathPlannerTrajectory> trajectories) {
* @param name the name of the AutoPath
* @param trajectory the trajectory to use
*/
public AutoPath(String name, PathPlannerTrajectory... trajectories) {
this(name, new ArrayList<PathPlannerTrajectory>(Arrays.asList(trajectories)));
public AutoPath(String name, PathPlannerPath... paths) {
this(name, new ArrayList<PathPlannerPath>(Arrays.asList(paths)));
}

/**
Expand All @@ -59,26 +51,8 @@ public String getName() {
*
* @return the trajectories associated with this AutoPath
*/
public ArrayList<PathPlannerTrajectory> getTrajectories() {
if (DriverStation.getAlliance() == Alliance.Red) {
return redTrajectories;
} else {
return blueTrajectories;
}
public List<PathPlannerPath> getPaths() {
return pathPlannerPaths;
}

public AutoPath usingMask(List<Boolean> mask) {
if (mask.size() != blueTrajectories.size()) {
throw new IllegalArgumentException("Mask must be the same length as trajectory array");
}

ArrayList<PathPlannerTrajectory> newTrajectories = new ArrayList<PathPlannerTrajectory>();
for (int i = 0; i < mask.size(); i++) {
if (mask.get(i)) {
newTrajectories.add(blueTrajectories.get(i));
}
}

return new AutoPath(name, newTrajectories);
}
}
18 changes: 10 additions & 8 deletions src/main/java/com/techhounds/houndutil/houndauto/AutoRoutine.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import edu.wpi.first.math.geometry.Pose2d;
import edu.wpi.first.wpilibj.DriverStation;
import edu.wpi.first.wpilibj.DriverStation.Alliance;
import edu.wpi.first.wpilibj2.command.CommandBase;
import edu.wpi.first.wpilibj2.command.Command;

public class AutoRoutine {
private String name;
Expand All @@ -17,7 +17,7 @@ public class AutoRoutine {
private Supplier<Pose2d> blueInitialPoseSupplier;
private Supplier<Pose2d> redInitialPoseSupplier;

private Function<AutoPath, CommandBase> commandGetter;
private Function<AutoPath, Command> commandGetter;

/**
* Initialize an AutoRoutine.
Expand All @@ -28,14 +28,14 @@ public class AutoRoutine {
*/
public AutoRoutine(String name, List<AutoSetting> autoSettings,
Supplier<AutoPath> autoPathSupplier, Supplier<Pose2d> blueInitialPoseSupplier,
Function<AutoPath, CommandBase> commandGetter) {
Function<AutoPath, Command> commandGetter) {
this.name = name;
this.commandGetter = commandGetter;
this.autoPathSupplier = autoPathSupplier;
this.autoSettings = autoSettings;
this.blueInitialPoseSupplier = blueInitialPoseSupplier;
this.redInitialPoseSupplier = () -> TrajectoryReflector.reflectiveTransformPose(blueInitialPoseSupplier.get(),
16.54);
// this.redInitialPoseSupplier = () -> TrajectoryReflector.reflectiveTransformPose(blueInitialPoseSupplier.get(),
// 16.54);
}

public String getName() {
Expand All @@ -51,11 +51,13 @@ public Optional<AutoPath> getAutoPath() {
}

public Pose2d getInitialPosition() {
return (DriverStation.getAlliance() == Alliance.Blue) ? blueInitialPoseSupplier.get()
: redInitialPoseSupplier.get();
// return (DriverStation.getAlliance() == Alliance.Blue) ? blueInitialPoseSupplier.get()
// : redInitialPoseSupplier.get();
// TODO
return blueInitialPoseSupplier.get();
}

public CommandBase getCommand(AutoPath autoPath) {
public Command getCommand(AutoPath autoPath) {
return commandGetter.apply(autoPath);
}
}
Loading

0 comments on commit fea4a73

Please sign in to comment.