Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
05260d5
First commit, start of attempt of a kinematic solution, fixed yaw aiming
tango8 Oct 1, 2025
9331365
Merge remote-tracking branch 'origin/master' into color-sensing
BoomWarrior11 Oct 1, 2025
e2f7578
Created ColorSensorSystem.java so color sensor can be more easily use…
BoomWarrior11 Oct 1, 2025
584ace6
In Indexer.java,
BoomWarrior11 Oct 1, 2025
9ae4188
Combining my Indexer.java with Arnav's
BoomWarrior11 Oct 1, 2025
f67d0b5
Edited the shiftArtifacts() to remove the artifact in the outtake fro…
BoomWarrior11 Oct 3, 2025
f04ddef
prototyping is cooked in this branch
arnavjosh Oct 6, 2025
17858f2
Merge remote-tracking branch 'origin/color-sensing' into color-sensing
arnavjosh Oct 6, 2025
bd4e37a
Merged AprilTagAimer changes in Quali-1 into color-sensing
BoomWarrior11 Oct 10, 2025
7020759
No longer stopping after locked in on apriltag, its continuous until …
tango8 Oct 12, 2025
ee7c8c3
fixed prototyping parameter error
tango8 Oct 12, 2025
5dfd5ac
Removed redundancies and added PIDF
tango8 Oct 12, 2025
0b8e762
Control hub direction and Z is yaw not X thanks andrew
tango8 Oct 12, 2025
c2a30fc
Many small changes, smoother joystick apriltag improved, no more imu,…
tango8 Oct 13, 2025
384007e
testing 1 2 3 (aura)
arnavjosh Oct 16, 2025
1435c75
setIntaking logic update
arnavjosh Oct 16, 2025
cb6abd3
Spindexer+color sensor test opmode (sigma boy)
arnavjosh Oct 16, 2025
5f6f65c
HOLY CANNOLI ANDROID STUDIO HAS AN AUTOMATIC THING THAT BREAKS OUT A …
arnavjosh Oct 17, 2025
d456944
Spindexer stuff for testing
tango8 Oct 17, 2025
509367f
Spindexer fixes, dynamic waiting times from servo move to sensing color
tango8 Oct 18, 2025
df87823
fixing gradle
tango8 Oct 24, 2025
ba929f6
camera streaming stuff
secrecy1 Oct 27, 2025
0ea5d02
Merge remote-tracking branch 'origin/auto-orient-fixes' into auto-ori…
secrecy1 Oct 27, 2025
859b7a4
added telemetry
tango8 Nov 4, 2025
c87b80e
camera calibrations to hopefully fix camera to get apriltag pose
tango8 Nov 4, 2025
c06baa8
auto aim kinda works, sdk update
tango8 Nov 5, 2025
c23dc67
correction calculations in apriltagtester teleop updates only set tim…
tango8 Nov 5, 2025
ce287c7
added voltage tester thingy
secrecy1 Nov 7, 2025
97f38ab
rewrote indexer to work with CR Servo and added custom CRServo Positi…
secrecy1 Nov 8, 2025
336d6eb
rewrote indexer to work with CR Servo and added custom CRServo Positi…
secrecy1 Nov 8, 2025
0e27c50
rewrote indexer to work with CR Servo and added custom CRServo Positi…
secrecy1 Nov 8, 2025
cd8844e
small changes
tango8 Nov 10, 2025
bfc19e0
'fixed' crservopositoncontrol issues and aded logic in teleOP
secrecy1 Nov 10, 2025
24e4b83
fixed the helper cals thing and added teleop logic
secrecy1 Nov 10, 2025
7549e78
small changes
tango8 Nov 10, 2025
a297961
fix the motors aaaaaaaaaaaaa
andrewcodes28 Nov 11, 2025
425fa3c
field centric on apriltag tester
tango8 Nov 11, 2025
72d7605
push
tango8 Nov 12, 2025
4b6f122
add dashboard support and tweak PIDF
secrecy1 Nov 12, 2025
f81aba7
fixes CR pidf issues
tango8 Nov 14, 2025
25f45a3
Merge branch 'color-sensing' into Scrim-1
arnavjosh Nov 14, 2025
d01487c
they call me the merge master
arnavjosh Nov 14, 2025
8d47fc2
Sigma teleop made (combines 3 other teleops)
arnavjosh Nov 14, 2025
39705a3
being outdated = bad
andrewcodes28 Nov 14, 2025
761db14
add some actuator positions
andrewcodes28 Nov 14, 2025
c03e7ff
add angle offset logic
andrewcodes28 Nov 14, 2025
fb09961
This is theoretically a much better CR control but I'm not gonna try …
arnavjosh Nov 15, 2025
3eb9319
Ive been tuning so much im gonna jump
arnavjosh Nov 15, 2025
fc1650e
Tried to fix this test opmode but whoever made it forgot you need to …
arnavjosh Nov 15, 2025
97117a8
Much better power for crservotest
arnavjosh Nov 15, 2025
fa1bfc0
unlimited power
arnavjosh Nov 15, 2025
8b9002b
skib
arnavjosh Nov 15, 2025
894414e
PIDF values
tango8 Nov 15, 2025
aadcbeb
PIDF values
tango8 Nov 15, 2025
29fc8e8
Merge remote-tracking branch 'origin/Scrim-1' into Scrim-1
arnavjosh Nov 15, 2025
1191e31
last stuff, tuning from last night, etc,etc
arnavjosh Nov 15, 2025
b9fe615
skipping offset angle for now, also making intake -> outtake a 180 de…
arnavjosh Nov 15, 2025
e24c866
tuned intaking power
arnavjosh Nov 15, 2025
b50eb93
fix maintele
tango8 Nov 15, 2025
d05a251
aautos
tango8 Nov 15, 2025
153c320
adjustments
tango8 Nov 15, 2025
c5e0d39
restrict intake and outtake-related features to the indexer state
andrewcodes28 Nov 17, 2025
14746a6
create bot class and refactor teleop
andrewcodes28 Nov 17, 2025
41d0bbc
Don't use two buttons when you can use a toggle
arnavjosh Nov 24, 2025
b04bc41
Commented out april tag stuff cause its gonna get reworked
arnavjosh Nov 24, 2025
6e5a426
we gon do fsm
arnavjosh Nov 24, 2025
6957bf9
Sum of these toggles just arent toggles
arnavjosh Nov 24, 2025
e890fd6
Misc stuff
arnavjosh Nov 25, 2025
2525c60
Wrote it into fsm, left todos for automation (i'll get to it chat)
arnavjosh Nov 25, 2025
6f693ec
merge (type shift)
arnavjosh Dec 2, 2025
009e9a7
refactor Bot.java to improve state handling and movement logic
arnavjosh Dec 2, 2025
41d9b7c
Adding github actions for PRs
arnavjosh Dec 21, 2025
0eb5e06
Gradle changes for SpotBug
arnavjosh Dec 22, 2025
2b7b878
fixed position of plugin block
arnavjosh Dec 22, 2025
3de3c1a
Remove classpath assignment
arnavjosh Dec 22, 2025
62d2ec3
Fix formatter workflow
arnavjosh Dec 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 87 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
name: CI (Build + Lint + Tests)

on:
pull_request:
paths:
- "TeamCode/**"
- "FtcRobotController/**"
- "libs/**"
- "gradle/**"
- "build.gradle"
- "build.common.gradle"
- "build.dependencies.gradle"
- "settings.gradle"
- "gradle.properties"
- "gradlew"
- "gradlew.bat"
- ".github/workflows/**"

Copilot AI Dec 21, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The path filter '.github/workflows/**' will trigger this workflow when any workflow file changes. This could cause unnecessary CI runs when unrelated workflows are modified. Consider being more specific about which workflow changes should trigger the full CI build, or remove this path if changes to workflows should always trigger CI validation.

Copilot uses AI. Check for mistakes.
push:
# Keep this narrow so you don't burn minutes on every branch.
# Add/remove branches to match how your team works.
branches:
- "Quali-1"
paths:
- "TeamCode/**"
- "FtcRobotController/**"
- "libs/**"
- "gradle/**"
- "build.gradle"
- "build.common.gradle"
- "build.dependencies.gradle"
- "settings.gradle"
- "gradle.properties"
- "gradlew"
- "gradlew.bat"
- ".github/workflows/**"

Copilot AI Dec 21, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The path filter '.github/workflows/**' will trigger this workflow when any workflow file changes. This could cause unnecessary CI runs when unrelated workflows are modified. Consider being more specific about which workflow changes should trigger the full CI build, or remove this path if changes to workflows should always trigger CI validation.

Copilot uses AI. Check for mistakes.

concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}

Copilot AI Dec 21, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The concurrency group name 'ci-${{ github.workflow }}-${{ github.ref }}' includes redundant information since github.workflow already contains the workflow name. This pattern is inconsistent with the other workflows. Consider using just '${{ github.workflow }}-${{ github.ref }}' for consistency across all workflows, or ensure all workflows follow the same naming pattern.

Suggested change
group: ci-${{ github.workflow }}-${{ github.ref }}
group: ${{ github.workflow }}-${{ github.ref }}

Copilot uses AI. Check for mistakes.
cancel-in-progress: true

permissions:
contents: read

jobs:
build_lint_test:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@v3

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "17"
Comment on lines +55 to +59

Copilot AI Dec 21, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The workflow sets up JDK 17, but TeamCode/build.gradle specifies Java 16 for sourceCompatibility/targetCompatibility and Java 21 for the toolchain. This version mismatch could lead to build inconsistencies between local development and CI. Consider aligning the JDK version in the workflow with the toolchain version (21) specified in the Gradle build, or ensuring the workflow uses a JDK version that matches your project's actual requirements.

Suggested change
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "17"
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "21"

Copilot uses AI. Check for mistakes.

- name: Set up Android SDK
uses: android-actions/setup-android@v3

- name: Set up Gradle (with caching)
uses: gradle/actions/setup-gradle@v4

- name: Make gradlew executable
run: chmod +x ./gradlew

- name: Build (Debug)
run: ./gradlew --no-daemon --stacktrace assembleDebug

- name: Android Lint
run: ./gradlew --no-daemon --stacktrace lint

- name: Unit tests (if present)
run: ./gradlew --no-daemon --stacktrace test

- name: Upload reports (lint/tests)
if: always()
uses: actions/upload-artifact@v4
with:
name: reports
if-no-files-found: warn
path: |
**/build/reports/**
**/build/test-results/**
48 changes: 48 additions & 0 deletions .github/workflows/format-java.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Format (TeamCode Java)

on:
pull_request:
paths:
- "TeamCode/**/*.java"
- ".github/workflows/**"
push:
branches:
- "Quali-1"
paths:
- "TeamCode/**/*.java"
- ".github/workflows/**"
Comment on lines +7 to +13

Copilot AI Dec 21, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The path filter '.github/workflows/**' will trigger this workflow when any workflow file changes, not just this specific workflow. This could cause unnecessary CI runs when unrelated workflows are modified. Consider using '.github/workflows/format-java.yml' to only trigger on changes to this specific workflow file, matching the pattern used in spotbugs-teamcode.yml.

Suggested change
- ".github/workflows/**"
push:
branches:
- "Quali-1"
paths:
- "TeamCode/**/*.java"
- ".github/workflows/**"
- ".github/workflows/format-java.yml"
push:
branches:
- "Quali-1"
paths:
- "TeamCode/**/*.java"
- ".github/workflows/format-java.yml"

Copilot uses AI. Check for mistakes.
Comment on lines +7 to +13

Copilot AI Dec 21, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The path filter '.github/workflows/**' will trigger this workflow when any workflow file changes, not just this specific workflow. This could cause unnecessary CI runs when unrelated workflows are modified. Consider using '.github/workflows/format-java.yml' to only trigger on changes to this specific workflow file, matching the pattern used in spotbugs-teamcode.yml.

Suggested change
- ".github/workflows/**"
push:
branches:
- "Quali-1"
paths:
- "TeamCode/**/*.java"
- ".github/workflows/**"
- ".github/workflows/format-java.yml"
push:
branches:
- "Quali-1"
paths:
- "TeamCode/**/*.java"
- ".github/workflows/format-java.yml"

Copilot uses AI. Check for mistakes.

concurrency:
group: format-${{ github.workflow }}-${{ github.ref }}

Copilot AI Dec 21, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The concurrency group name 'format-${{ github.workflow }}-${{ github.ref }}' includes redundant information since github.workflow already contains the workflow name. This pattern is inconsistent with the other workflows. Consider using just '${{ github.workflow }}-${{ github.ref }}' for consistency across all workflows, or ensure all workflows follow the same naming pattern.

Suggested change
group: format-${{ github.workflow }}-${{ github.ref }}
group: ${{ github.workflow }}-${{ github.ref }}

Copilot uses AI. Check for mistakes.
cancel-in-progress: true

permissions:
contents: read

jobs:
google_java_format:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "21"
- name: Show java version
run: java -version
# This action can either “check” or “format then show diff”.
# We choose “format then diff” so the PR shows exactly what would change.
- name: Run google-java-format (TeamCode)
uses: axel-op/googlejavaformat-action@v4
with:
files: "TeamCode/**/*.java"
args: "--replace"
skip-commit: true

- name: Fail if formatting changed (prints diff)
run: git --no-pager diff --exit-code

Copilot AI Dec 21, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The step name 'Fail if formatting changed (prints diff)' doesn't provide a helpful error message when formatting issues are found. Consider adding an error message before the git diff command to explain what the developer needs to do, such as: 'echo "::error::Code formatting issues detected. Please run google-java-format locally and commit the changes." && git --no-pager diff && exit 1' when differences are found.

Suggested change
run: git --no-pager diff --exit-code
run: |
if ! git --no-pager diff --quiet; then
echo "::error::Code formatting issues detected. Please run google-java-format locally on 'TeamCode/**/*.java' and commit the changes."
git --no-pager diff
exit 1
fi

Copilot uses AI. Check for mistakes.

96 changes: 96 additions & 0 deletions .github/workflows/spotbugs-teamcode.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: SpotBugs (TeamCode)

on:
pull_request:
paths:
- "TeamCode/**"
- "build.gradle"
- "build.common.gradle"
- "build.dependencies.gradle"
- "settings.gradle"
- "gradle.properties"
- "gradle/**"
- "gradlew"
- "gradlew.bat"
- ".github/workflows/spotbugs-teamcode.yml"
push:
branches: ["Quali-1"]
paths:
- "TeamCode/**"
- "build.gradle"
- "build.common.gradle"
- "build.dependencies.gradle"
- "settings.gradle"
- "gradle.properties"
- "gradle/**"
- "gradlew"
- "gradlew.bat"
- ".github/workflows/spotbugs-teamcode.yml"

concurrency:
group: spotbugs-${{ github.workflow }}-${{ github.ref }}

Copilot AI Dec 21, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The concurrency group name 'spotbugs-${{ github.workflow }}-${{ github.ref }}' includes redundant information since github.workflow already contains the workflow name. This pattern is inconsistent with the other workflows which use 'format-' and 'ci-' prefixes. Consider using just '${{ github.workflow }}-${{ github.ref }}' for consistency across all workflows, or ensure all workflows follow the same naming pattern.

Suggested change
group: spotbugs-${{ github.workflow }}-${{ github.ref }}
group: ${{ github.workflow }}-${{ github.ref }}

Copilot uses AI. Check for mistakes.
cancel-in-progress: true

permissions:
contents: read

jobs:
spotbugs_teamcode:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@v3

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "17"
Comment on lines +48 to +52

Copilot AI Dec 21, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The workflow sets up JDK 17, but TeamCode/build.gradle specifies Java 16 for sourceCompatibility/targetCompatibility and Java 21 for the toolchain. This version mismatch could lead to build inconsistencies between local development and CI. Consider aligning the JDK version in the workflow with the toolchain version (21) specified in the Gradle build, or ensuring the workflow uses a JDK version that matches your project's actual requirements.

Suggested change
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "17"
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "21"

Copilot uses AI. Check for mistakes.

# FTC/Android Gradle builds typically need the Android SDK present even for analysis tasks
- name: Set up Android SDK
uses: android-actions/setup-android@v3

- name: Set up Gradle (with caching)
uses: gradle/actions/setup-gradle@v4

- name: Make gradlew executable
run: chmod +x ./gradlew

- name: Run SpotBugs on TeamCode
shell: bash
run: |
set -euo pipefail

echo "Trying SpotBugs tasks for :TeamCode (Android projects differ by plugin/config)..."

# Try a few common task names. Use the first one that exists and succeeds.
if ./gradlew -q :TeamCode:tasks --all | grep -qE '(^|\s)spotbugsDebug(\s|$)'; then
./gradlew --no-daemon --stacktrace :TeamCode:spotbugsDebug
elif ./gradlew -q :TeamCode:tasks --all | grep -qE '(^|\s)spotbugsRelease(\s|$)'; then
./gradlew --no-daemon --stacktrace :TeamCode:spotbugsRelease
elif ./gradlew -q :TeamCode:tasks --all | grep -qE '(^|\s)spotbugsMain(\s|$)'; then
./gradlew --no-daemon --stacktrace :TeamCode:spotbugsMain
elif ./gradlew -q :TeamCode:tasks --all | grep -qE '(^|\s)spotbugs(\s|$)'; then
./gradlew --no-daemon --stacktrace :TeamCode:spotbugs
else
echo "::error::No SpotBugs task found for :TeamCode. Make sure the SpotBugs Gradle plugin is applied/configured for TeamCode."
echo "Here are any spotbugs-related tasks Gradle sees:"
./gradlew -q :TeamCode:tasks --all | grep -i spotbugs || true
exit 1
fi

Comment on lines +81 to +86

Copilot AI Dec 21, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The SpotBugs workflow will fail because the SpotBugs Gradle plugin is not applied in the TeamCode module or any build.gradle files. Before this workflow can function, you need to add the SpotBugs plugin to your Gradle configuration. Consider adding the plugin to TeamCode/build.gradle or build.common.gradle with proper configuration.

Suggested change
echo "::error::No SpotBugs task found for :TeamCode. Make sure the SpotBugs Gradle plugin is applied/configured for TeamCode."
echo "Here are any spotbugs-related tasks Gradle sees:"
./gradlew -q :TeamCode:tasks --all | grep -i spotbugs || true
exit 1
fi
echo "::warning::No SpotBugs task found for :TeamCode. SpotBugs will be skipped. Make sure the SpotBugs Gradle plugin is applied/configured for TeamCode if you expect these checks to run."
echo "Here are any spotbugs-related tasks Gradle sees:"
./gradlew -q :TeamCode:tasks --all | grep -i spotbugs || true
fi

Copilot uses AI. Check for mistakes.
- name: Upload SpotBugs reports
if: always()
uses: actions/upload-artifact@v4
with:
name: spotbugs-teamcode-reports
if-no-files-found: warn
path: |
TeamCode/build/reports/spotbugs/**
**/build/reports/spotbugs/**

This file was deleted.

Loading
Loading