Skip to content

Extend shot#88

Open
Superbro525Alt wants to merge 212 commits intomainfrom
extend-shot
Open

Extend shot#88
Superbro525Alt wants to merge 212 commits intomainfrom
extend-shot

Conversation

@Superbro525Alt
Copy link
Contributor

No description provided.

Copilot AI review requested due to automatic review settings March 1, 2026 08:51
@Superbro525Alt Superbro525Alt requested a review from a team as a code owner March 1, 2026 08:51
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR appears to integrate the “Repulsor” planning system and supporting tooling into the 2026 robot codebase, including new flag management, field definitions/obstacles, simulation publishers, and an “offload” RPC framework.

Changes:

  • Added Repulsor field planning primitives (field layouts, obstacles, helpers) and behaviour/flag management.
  • Added Python simulation publishers/tools for NetworkTables + truth streaming and a 3D viewer.
  • Added multi-module “offload” framework (API, annotation processor, client, server, tasks) and wired Gradle settings.

Reviewed changes

Copilot reviewed 128 out of 420 changed files in this pull request and generated 14 comments.

Show a summary per file
File Description
src/main/java/org/curtinfrc/frc2026/util/Repulsor/Flags/NetworkTableFlagManager.java Adds a generic NT-backed flag manager implementation.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/Flags/FlagManager.java Introduces a base API for flag managers.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/Flags/BehaviourFlagManager.java Adds a BehaviourFlag-specific NT-backed flag manager.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/Fields/Reefscape2025.java Adds a 2025 field definition layout and obstacles.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/Fields/FieldMapBuilder.java Adds a builder for generating field map game elements.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/Fields/FieldLayoutProvider.java Adds an interface for supplying field layouts.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/Fields/FieldDefinition.java Adds a combined interface for layout/obstacles/heatmaps.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/FieldTracker.java Adds a convenience wrapper around FieldTrackerCore.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/FieldPlanner/RepulsorSample.java Adds a sample wrapper for planner results to chassis speeds.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/FieldPlanner/Obstacles/VerticalObstacle.java Adds a vertical wall obstacle implementation.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/FieldPlanner/Obstacles/TeardropObstacle.java Adds a teardrop-shaped obstacle implementation.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/FieldPlanner/Obstacles/SnowmanObstacle.java Adds a “snowman” obstacle implementation.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/FieldPlanner/Obstacles/PointObstacle.java Adds a point obstacle implementation.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/FieldPlanner/Obstacles/HorizontalObstacle.java Adds a horizontal wall obstacle implementation.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/FieldPlanner/Obstacles/GatedAttractorObstacle.java Adds an attractor obstacle with a gating polygon and bypass behavior.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/FieldPlanner/Obstacles/DiagonalWallObstacle.java Adds a diagonal wall obstacle implementation.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/FieldPlanner/Obstacles/CorridorCenterlineRail.java Adds a rail force model to keep motion centered in a corridor.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/FieldPlanner/Obstacles/AttractorObstacle.java Adds a basic attractor obstacle implementation.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/FieldPlanner/Obstacle.java Adds an abstract obstacle base class and common geometry helpers.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/FieldPlanner/Helpers/FieldPlannerGeometry.java Adds shared polygon/segment geometry helpers.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/FieldPlanner/Helpers/FieldPlannerForceModel.java Adds force aggregation + sim arrow visualization.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/Fallback.java Adds fallback planner strategies (PID-based).
src/main/java/org/curtinfrc/frc2026/util/Repulsor/ExtraPathingHelpers/ExtraPathingRecording.java Adds debug recording helpers for paths/obstacles.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/ExtraPathingHelpers/ExtraPathingObstacleUtil.java Adds utility to classify pushable obstacle types.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/ExtraPathingHelpers/ExtraPathingMath.java Adds geometry helpers for extra pathing.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/ExtraPathingHelpers/ExtraPathingCollision.java Adds rectangle intersection sampling for collision checks.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/ExtraPathingHelpers/ExtraPathingBounceListener.java Adds bounce detection based on recent goal history.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/ExtraPathing.java Adds public façade for extra pathing helpers.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/DriverStation/RepulsorDriverStationBootstrap.java Adds DS bootstrap to configure NT-based driver station.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/DriverStation/RepulsorDriverStation.java Adds DS abstraction with lifecycle/instance management.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/DriverStation/DefaultNtRepulsorDriverStation.java Implements defaults for NT DS schema/config.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/DriveRepulsor.java Adds a SubsystemBase-derived drive contract for Repulsor integration.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/DeltaTime.java Adds a clamped delta-time utility.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/Constants.java Adds Repulsor-specific constants and field selection.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/Behaviours/TestBehaviour.java Adds a test behaviour publishing shot speed/angle and driving planner output.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/Behaviours/DefenceBehaviour.java Adds a defence behaviour with speed capping.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/Behaviours/BehaviourManager.java Adds behaviour arbitration + scheduler integration.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/Behaviours/BehaviourFlag.java Adds behaviour mode flags enum.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/Behaviours/BehaviourContext.java Adds a context object passed to behaviours.
src/main/java/org/curtinfrc/frc2026/util/Repulsor/Behaviours/Behaviour.java Adds behaviour base class contract.
src/main/java/org/curtinfrc/frc2026/subsystems/hoodedshooter/HoodedShooter.java Gates motor-alert logic outside of SIM mode.
src/main/java/org/curtinfrc/frc2026/subsystems/hoodedshooter/HoodIOComp.java Avoids motor status queries in SIM robot type.
src/main/java/org/curtinfrc/frc2026/drive/Drive.java Integrates Drive with Repulsor DriveRepulsor and exposes omega PID/runVelocity.
src/main/java/org/curtinfrc/frc2026/Constants.java Sets robotType + introduces robot/field dims constants.
src/main/deploy/gamepieces/fuel.yaml Adds fuel gamepiece physical parameters.
src/main/deploy/example.txt Removes placeholder deploy file.
src/main/deploy/ReactiveBypassConfig.yaml Adds reactive bypass configuration parameters.
settings.gradle Names root project and includes new offload subprojects.
run_generate.ps1 Adds a helper script to run the repulsor_sim generator.
repulsor_sim/types.py Adds datatypes for sim objects/obstacles/cameras.
repulsor_sim/truth_socket.py Adds TCP sender for truth object streaming.
repulsor_sim/publishers/repulsorvision.py Adds NT publishing for RepulsorVision obstacles.
repulsor_sim/publishers/fieldvision_truth.py Adds throttled NT publishing for ground-truth objects.
repulsor_sim/publishers/fieldvision.py Adds throttled NT publishing for FieldVision objects/cameras/extrinsics.
repulsor_sim/providers/base.py Adds base provider interface.
repulsor_sim/providers/ai_provider.py Adds placeholder AI provider returning empty frame.
repulsor_sim/providers/init.py Adds provider factory.
repulsor_sim/nt.py Adds NT client wrapper and pose subscription.
repulsor_sim/main.py Adds sim main loop wiring provider -> NT publishers + truth socket.
repulsor_sim/config.py Adds config loading via env vars.
repulsor_3d_sim/test.py Adds NT probing utility script.
repulsor_3d_sim/run.py Adds entrypoint wrapper for 3D viewer.
repulsor_3d_sim/repulsor_3d_sim/truth_socket.py Adds TCP receiver for truth stream in viewer.
repulsor_3d_sim/repulsor_3d_sim/render/glutil.py Adds OpenGL helper utilities.
repulsor_3d_sim/repulsor_3d_sim/render/camera.py Adds orbit camera matrices for viewer rendering.
repulsor_3d_sim/repulsor_3d_sim/render/init.py Initializes render package.
repulsor_3d_sim/repulsor_3d_sim/model.py Adds viewer model dataclasses.
repulsor_3d_sim/repulsor_3d_sim/config.py Adds viewer configuration via env vars.
repulsor_3d_sim/repulsor_3d_sim/main.py Adds viewer main entrypoint.
repulsor_3d_sim/repulsor_3d_sim/init.py Initializes viewer package.
offload-tasks/build.gradle Adds build packaging for offload tasks plugin JAR.
offload-server/src/main/java/.../OffloadServerMain.java Adds offload server main entrypoint.
offload-server/src/main/java/.../OffloadServerConfig.java Adds offload server config from environment.
offload-server/src/main/java/.../OffloadServer.java Adds TCP offload server runtime and task dispatch.
offload-server/src/main/java/.../OffloadPluginLoader.java Adds plugin loader for task function JARs.
offload-server/src/main/java/.../OffloadManifestLoader.java Adds manifest loader and hashing.
offload-server/build.gradle Adds server application module build config.
offload-processor/src/test/java/.../OffloadableProcessorGenerationTest.java Adds processor fixture compilation tests.
offload-processor/src/test/java/.../OffloadIdGeneratorTest.java Adds stability test for auto-id generation.
offload-processor/src/main/resources/...Processor Registers annotation processor.
offload-processor/src/main/java/.../OffloadIdGenerator.java Adds deterministic SHA-256 based task id generator.
offload-processor/build.gradle Adds processor module build config.
offload-client/src/test/java/.../TcpOffloadClientRoundTripTest.java Adds client/server protocol roundtrip test.
offload-client/src/main/java/.../TcpOffloadClient.java Adds TCP offload client with probe/hello/queueing.
offload-client/src/main/java/.../OffloadHost.java Adds host record.
offload-client/src/main/java/.../OffloadClientConfig.java Adds client config with builder.
offload-client/build.gradle Adds client module build config.
offload-api/src/main/java/.../Offloadable.java Adds @Offloadable annotation.
offload-api/src/main/java/.../OffloadValueCodec.java Adds adapter-based custom encoding/decoding support.
offload-api/src/main/java/.../OffloadRpc.java Adds gateway and typed RPC helper.
offload-api/src/main/java/.../OffloadProtocol.java Adds the binary framing protocol for offload RPC.
offload-api/src/main/java/.../OffloadManifest.java Adds manifest model class.
offload-api/src/main/java/.../OffloadHelloResponse.java Adds hello response model class.
offload-api/src/main/java/.../OffloadHash.java Adds SHA-256 helper.
offload-api/src/main/java/.../OffloadGateway.java Adds gateway interface.
offload-api/src/main/java/.../OffloadFunction.java Adds server-side task function interface.
offload-api/src/main/java/.../OffloadError.java Adds error model.
offload-api/src/main/java/.../OffloadCallException.java Adds runtime exception for offload client failures.
offload-api/src/main/java/.../OffloadCached.java Adds simple cache wrapper for offload results.
offload-api/src/main/java/.../OffloadBootstrap.java Adds initializer hook for offload bootstrap.
offload-api/src/main/java/.../OffloadAdapterRegistrar.java Adds SPI hook for codec adapter registration.
offload-api/src/main/java/.../CborSerde.java Adds CBOR ObjectMapper serialization utilities.
offload-api/build.gradle Adds offload API module dependencies and build config.
calibration.json Adds camera calibration artifact data.
README.md Documents licensing split and subprojects.
.vscode/settings.json Adds VS Code Java/Python configuration for this repo.
.github/workflows/tests.yml Adds Python CI workflow for vision tests + pyright.
.github/workflows/build.yml Tweaks Gradle build invocation with a parameter.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Contributor Author

@Superbro525Alt Superbro525Alt left a comment

Choose a reason for hiding this comment

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

a

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants