From 2056de0a1a4b11990c8e91ef741e2f30b54a727b Mon Sep 17 00:00:00 2001 From: Ray Healy Date: Tue, 10 Feb 2026 19:36:51 -0500 Subject: [PATCH] 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 --- .../ballistics/models/BallisticModel.java | 5 + .../ballistics/models/SimpleTOFBM.java | 96 +++++++++++++++++++ 2 files changed, 101 insertions(+) create mode 100644 lib/src/main/java/org/fairportrobotics/frc/robolib/trajectory/ballistics/models/SimpleTOFBM.java diff --git a/lib/src/main/java/org/fairportrobotics/frc/robolib/trajectory/ballistics/models/BallisticModel.java b/lib/src/main/java/org/fairportrobotics/frc/robolib/trajectory/ballistics/models/BallisticModel.java index ae9f874..d1da39a 100644 --- a/lib/src/main/java/org/fairportrobotics/frc/robolib/trajectory/ballistics/models/BallisticModel.java +++ b/lib/src/main/java/org/fairportrobotics/frc/robolib/trajectory/ballistics/models/BallisticModel.java @@ -14,6 +14,11 @@ public abstract class BallisticModel

{ this.posTarget = posTarget; } + /** + * @return Returns a recommended starting parameter + */ + public abstract P getInitParam(); + /** * Get an abstract velocity (in the same coordinate space as posLaunch and * posTarget) which will pass thru diff --git a/lib/src/main/java/org/fairportrobotics/frc/robolib/trajectory/ballistics/models/SimpleTOFBM.java b/lib/src/main/java/org/fairportrobotics/frc/robolib/trajectory/ballistics/models/SimpleTOFBM.java new file mode 100644 index 0000000..7f3c01c --- /dev/null +++ b/lib/src/main/java/org/fairportrobotics/frc/robolib/trajectory/ballistics/models/SimpleTOFBM.java @@ -0,0 +1,96 @@ +package org.fairportrobotics.frc.robolib.trajectory.ballistics.models; + +import java.util.ArrayList; + +import org.fairportrobotics.frc.robolib.trajectory.Velocity3d; + +import edu.wpi.first.math.geometry.Translation3d; +import edu.wpi.first.units.Units; +import edu.wpi.first.units.measure.Angle; +import edu.wpi.first.units.measure.Distance; +import edu.wpi.first.units.measure.LinearAcceleration; +import edu.wpi.first.units.measure.Time; + + +public class SimpleTOFBM extends ReversableRadialBM