Commit Graph

126 Commits

Author SHA1 Message Date
Ray Healy f0835e88d5 trajectory/Velocity3d: Remove caching of
cylindrical and spherical coordinates from
non-cartesian constructors

Effectively bounds azimuth to (-180, 180) and
elevation to (-90, 90) due to order of operations and the definition of atan2.
2026-02-21 16:31:40 -05:00
Ray Healy dfefcd4c1a trajectory/ballistics/models/ConstantBM: Define
a default constructor (from (0, 0, 0) to (0, 0, 0))
2026-02-21 15:29:20 -05:00
Ray Healy 3f60a91184 trajectory/ballistics/constraints/BCEvalParams:
Define generators for candidate shooter velocity
(field and robot relative)
2026-02-21 15:28:20 -05:00
Ray Healy 5617a3a91b trajectory/Velocity3d: New (tested) features
- Define plus() transform function
- rename getSphericalVelocity() to getSpeed()
- Define genSpherical() generator (mapper to
spherical constructor from doubles).
- Define toStringSpherical() (Outputs Velocity3d
string w/ spherical coordinates)
2026-02-21 15:09:12 -05:00
Ray Healy 41d878dab8 trajectory/ballistics/constraints/BCEvalParams:
Define toString and HashCode
2026-02-21 09:57:53 -05:00
Ray Healy c6d6b5ac0b trajectory/ballistics/models: Defined
ConstantBM

Spits out constant responses to values
2026-02-14 16:38:06 -05:00
Ray Healy 6ee69238fe trajectory/ballistics/constraints: Add tests for
computed vectors
2026-02-14 16:37:37 -05:00
Ray Healy cc7f85a60f trajectory: Define Velocity3d.zero as static 0
vector
2026-02-14 16:36:52 -05:00
Ray Healy d4db802700 UtilTest: Added unit tests for Util.java 2026-02-14 15:11:09 -05:00
Ray Healy a0eb653afd trajectory/ballistics/constraints: Added
HeightAtPositionBC

Checks that z value is above a given minimum at
a given X, Y, or target radial position
2026-02-14 15:04:00 -05:00
Ray Healy 21f4a1100e trajectory/ballistics/models: Added launch and
field relative ReversableRadialBM for
getTimeAt[XY]
2026-02-14 15:02:27 -05:00
Ray Healy e171339c5c trajectory/ballistics/constraints: Added
RobotLauncherVelBC

Constrains robot-relative spherical velocity
components
2026-02-14 14:01:17 -05:00
Ray Healy 66150eea99 trajectory/ballistics/models: Reorganize getters
Moved targetPosRelative and
relativeHorazontalDistance calc and getters into
BallisticModel.java
2026-02-14 13:58:31 -05:00
Ray Healy ef6a02cffc lib/RoboLib/ballistics/constraints:
BallisticConstraint.evaluate() may throw
BallisticException
2026-02-14 13:57:02 -05:00
Ray Healy 126a8dd83b lib/RoboLib/Util: Define a utility abstract class
Holds utility functions
2026-02-14 13:52:57 -05:00
Ray Healy 9d8d9dd8f6 lib/RoboLib/ballistics/models: Added unit test
for ParabolicTimeOfFlightBM

- Added getters for internal state
- Fixed ReversableRadialBM.getTimeAt[XY]() (was
missing correction for launch position)
- Fixed
ParabolicTimeOfFlightBM.getCandidateVelocity()
(was adding gravity factor instead of subtracting)
2026-02-14 11:24:38 -05:00
Ray Healy e7a314c0eb lib/RoboLib: Removed LibraryTest 2026-02-14 11:20:40 -05:00
Ray Healy aaaef29027 src/robolib/ballistics/ParabolictimeOfFlightBM: Renamed from SimpleTOFBM 2026-02-14 09:32:22 -05:00
Ray Healy d755b3b411 lib/build.gradle: Add additional wpilib deps 2026-02-14 09:31:44 -05:00
Ray Healy 6dfea76969 src/robolib/trajectory/Velocity3dTest: Defined unit
tests for Velocity3d

Also, implement fixes for bugs found in test bringup
2026-02-14 08:36:57 -05:00
Ray Healy b7ee757181 src/robolib/trajectory/ballistics: Added
HillDescentBallisticCalculator class

Uses a hill descent algorithm
2026-02-10 20:39:27 -05:00
Ray Healy f6aed3036b src/robolib/trajectory/ballistics: Use
paramComputedReset() in
GreedyBallisticCalculator
2026-02-10 20:38:56 -05:00
Ray Healy 3ddd3a5ff6 src/robolib/trajectory/ballistics: Defined seen
param tracking for BallisticModel.

Implemented for SimpleTOFBM
2026-02-10 20:38:21 -05:00
Ray Healy 80a7626c00 src/robolib/trajectory/ballistics: Added function to
get total travel time for ReversableRadialBM

Feeds posTarget.getMeasureX() into
this.getTimeAtX()
2026-02-10 20:37:14 -05:00
Ray Healy f49d8434aa src/robolib/trajectory/ballistics: Define GreedyballisticCalculator
Takes the first valid solution (if any)
2026-02-10 19:45:26 -05:00
Ray Healy f8cfd19747 src/robolib/trajectory/ballistics: BCResult Combines Penalty and BCEvalParams 2026-02-10 19:39:18 -05:00
Ray Healy 7c7b44d3e4 src/robolib/trajectory/ballistics: BCEvalParams
updated nomenclature

Also, getCandidateShooterVelocityRelative() uses
Velocity3d.rotate()
2026-02-10 19:38:30 -05:00
Ray Healy 2056de0a1a src/robolib/trajectory/ballistics/models:
Implemented a simple parabolic ballistic model
with ToF as a param

Also require a function that provides an initial
param in BallisticModel
2026-02-10 19:36:51 -05:00
Ray Healy 167fa8dfd6 src/robolib/trajectory/Velocity3d.java: Updates
- Rename getV[XYZ]() to get[XYZ]Velocity()
- Added a rotation transform
2026-02-10 19:34:36 -05:00
Ray Healy f1c80233f0 src/robolib/trajectory/ballistics: Basic impl of calculator base class
- BallisticCalculator.java: The base class for
calculating solutions
- BCResult.java: Holds computed solution and
related values
- BCEvalParams.java: Stores and computes values
used in candidate evaluation
- BallisticConstraint.java: evaluate() takes
BCEvalParams
2026-02-10 17:06:11 -05:00
Ray Healy d43b337f1e src/robolib/trajectory/Velocity3d.java: Tweaks
- getSquareMagnitude() returns double in
m^2s^-2 (no pre-defined unit)
- define getVeritcalVelocity() as an alias of getVZ()
2026-02-10 17:02:07 -05:00
Ray Healy 3bd243f689 src/robolib/trajectory/ballistics/constraints: Define base class for constraints 2026-02-10 16:00:39 -05:00
Ray Healy 28baddac58 src/robolib/trajectory/ballistics/exceptions: Define base class for exceptions 2026-02-10 16:00:19 -05:00
Ray Healy b789882d41 src/robolib/trajectory/ballistics/models: Define base classes for ballistic models 2026-02-10 15:59:39 -05:00
Ray Healy 25e291091e src/robolib/trajectory/Velocity3d.java: Add cached getter for squared velocity magnitude 2026-02-10 15:59:00 -05:00
Ray Healy e9e111f1c4 src/robolib/trajectory/Velocity3d.java: hashCode(), toString(), and equals() 2026-02-10 11:48:09 -05:00
Ray Healy 959023b2df src/robolib/trajectory/Velocity3d.java: Defined a 3d velocity vector
- Allow allocation in and conversion to cartesian, cylindrical, and spherical coordinates
2026-02-10 11:47:58 -05:00
Ray Healy 576a8a1a0c .project: Remove prefix from robolib 2026-02-10 11:47:54 -05:00
Tyler Wilcox f90e2ac04d Fix Javadoc errors 2026-02-01 17:49:29 -05:00
Tyler Wilcox fae46eb9b8
Merge pull request #15 from FairportRobotics/feature/swervedrive
TalonFX Swerve Drive Support
2026-02-01 17:41:05 -05:00
Tyler Wilcox 9ce8f2fb34 Documentation 2026-02-01 17:39:37 -05:00
Tyler Wilcox 61fcb90730 It's working 2026-01-31 14:03:26 -05:00
Tyler Wilcox 817515901c Reorganization 2026-01-30 22:25:01 -05:00
Tyler Wilcox 8defb590f4 Possible Fix for swerve drive 2026-01-30 20:09:38 -05:00
Tyler Wilcox 51cd3df642 Fix warnings 2026-01-29 21:54:53 -05:00
Tyler Wilcox b269ce00bd organizational changes 2026-01-29 21:46:14 -05:00
Tyler Wilcox f9c7df64ba Working but offsets are busted 2026-01-29 20:53:53 -05:00
Tyler Wilcox bb59c528b7 Hopeful fixes from the second round of testing 2026-01-27 22:17:09 -05:00
Tyler Wilcox ae742134fe Working logically 2026-01-27 20:46:13 -05:00
Tyler Wilcox bc53ef3b38 Hopeful fixes from the first round of tests 2026-01-26 22:26:21 -05:00