lib/RoboLib/ballistics/constraints:
BallisticConstraint.evaluate() may throw BallisticException
This commit is contained in:
parent
126a8dd83b
commit
ef6a02cffc
|
|
@ -5,6 +5,7 @@ import java.util.ArrayList;
|
||||||
import org.fairportrobotics.frc.robolib.trajectory.Velocity3d;
|
import org.fairportrobotics.frc.robolib.trajectory.Velocity3d;
|
||||||
import org.fairportrobotics.frc.robolib.trajectory.ballistics.constraints.BCEvalParams;
|
import org.fairportrobotics.frc.robolib.trajectory.ballistics.constraints.BCEvalParams;
|
||||||
import org.fairportrobotics.frc.robolib.trajectory.ballistics.constraints.BallisticConstraint;
|
import org.fairportrobotics.frc.robolib.trajectory.ballistics.constraints.BallisticConstraint;
|
||||||
|
import org.fairportrobotics.frc.robolib.trajectory.ballistics.exceptions.BallisticException;
|
||||||
import org.fairportrobotics.frc.robolib.trajectory.ballistics.models.BallisticModel;
|
import org.fairportrobotics.frc.robolib.trajectory.ballistics.models.BallisticModel;
|
||||||
|
|
||||||
import edu.wpi.first.units.measure.Angle;
|
import edu.wpi.first.units.measure.Angle;
|
||||||
|
|
@ -53,7 +54,7 @@ public abstract class BallisticCalculator {
|
||||||
Velocity3d robotVelocity,
|
Velocity3d robotVelocity,
|
||||||
Angle robotAngle,
|
Angle robotAngle,
|
||||||
Velocity3d shooterVelocity
|
Velocity3d shooterVelocity
|
||||||
) {
|
) throws BallisticException {
|
||||||
return this.computeSolution(
|
return this.computeSolution(
|
||||||
model, model.getInitParam(), robotVelocity, robotAngle, shooterVelocity
|
model, model.getInitParam(), robotVelocity, robotAngle, shooterVelocity
|
||||||
);
|
);
|
||||||
|
|
@ -78,7 +79,7 @@ public abstract class BallisticCalculator {
|
||||||
Velocity3d robotVelocity,
|
Velocity3d robotVelocity,
|
||||||
Angle robotAngle,
|
Angle robotAngle,
|
||||||
Velocity3d shooterVelocity
|
Velocity3d shooterVelocity
|
||||||
);
|
) throws BallisticException;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -93,7 +94,7 @@ public abstract class BallisticCalculator {
|
||||||
*/
|
*/
|
||||||
protected <M extends BallisticModel<P>, P> Double evaluateCandidate(
|
protected <M extends BallisticModel<P>, P> Double evaluateCandidate(
|
||||||
M model, BCEvalParams evalParams
|
M model, BCEvalParams evalParams
|
||||||
) {
|
) throws BallisticException {
|
||||||
// Get the weight component for velocity difference
|
// Get the weight component for velocity difference
|
||||||
Velocity3d velShooterDiff =
|
Velocity3d velShooterDiff =
|
||||||
evalParams.getCandidateShooterVelocity().minus(evalParams.getCurrentShooterVelocity());
|
evalParams.getCandidateShooterVelocity().minus(evalParams.getCurrentShooterVelocity());
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import java.util.LinkedList;
|
||||||
|
|
||||||
import org.fairportrobotics.frc.robolib.trajectory.Velocity3d;
|
import org.fairportrobotics.frc.robolib.trajectory.Velocity3d;
|
||||||
import org.fairportrobotics.frc.robolib.trajectory.ballistics.constraints.BCEvalParams;
|
import org.fairportrobotics.frc.robolib.trajectory.ballistics.constraints.BCEvalParams;
|
||||||
|
import org.fairportrobotics.frc.robolib.trajectory.ballistics.exceptions.BallisticException;
|
||||||
import org.fairportrobotics.frc.robolib.trajectory.ballistics.models.BallisticModel;
|
import org.fairportrobotics.frc.robolib.trajectory.ballistics.models.BallisticModel;
|
||||||
|
|
||||||
import edu.wpi.first.units.measure.Angle;
|
import edu.wpi.first.units.measure.Angle;
|
||||||
|
|
@ -21,7 +22,7 @@ public class GreedyBallisticCalculator extends BallisticCalculator {
|
||||||
Velocity3d robotVelocity,
|
Velocity3d robotVelocity,
|
||||||
Angle robotAngle,
|
Angle robotAngle,
|
||||||
Velocity3d shooterVelocity
|
Velocity3d shooterVelocity
|
||||||
) {
|
) throws BallisticException {
|
||||||
model.paramComputedReset();
|
model.paramComputedReset();
|
||||||
|
|
||||||
LinkedList<P> candidate_params = new LinkedList<>();
|
LinkedList<P> candidate_params = new LinkedList<>();
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package org.fairportrobotics.frc.robolib.trajectory.ballistics.calculators;
|
||||||
|
|
||||||
import org.fairportrobotics.frc.robolib.trajectory.Velocity3d;
|
import org.fairportrobotics.frc.robolib.trajectory.Velocity3d;
|
||||||
import org.fairportrobotics.frc.robolib.trajectory.ballistics.constraints.BCEvalParams;
|
import org.fairportrobotics.frc.robolib.trajectory.ballistics.constraints.BCEvalParams;
|
||||||
|
import org.fairportrobotics.frc.robolib.trajectory.ballistics.exceptions.BallisticException;
|
||||||
import org.fairportrobotics.frc.robolib.trajectory.ballistics.models.BallisticModel;
|
import org.fairportrobotics.frc.robolib.trajectory.ballistics.models.BallisticModel;
|
||||||
|
|
||||||
import edu.wpi.first.units.measure.Angle;
|
import edu.wpi.first.units.measure.Angle;
|
||||||
|
|
@ -18,7 +19,7 @@ public class HillDescentBallisticCalculator extends BallisticCalculator {
|
||||||
Velocity3d robotVelocity,
|
Velocity3d robotVelocity,
|
||||||
Angle robotAngle,
|
Angle robotAngle,
|
||||||
Velocity3d shooterVelocity
|
Velocity3d shooterVelocity
|
||||||
) {
|
) throws BallisticException {
|
||||||
Velocity3d candidateVelocity = model.getCandidateVelocity(modelParam);
|
Velocity3d candidateVelocity = model.getCandidateVelocity(modelParam);
|
||||||
BCEvalParams evalParams = new BCEvalParams(robotVelocity, robotAngle, shooterVelocity, candidateVelocity);
|
BCEvalParams evalParams = new BCEvalParams(robotVelocity, robotAngle, shooterVelocity, candidateVelocity);
|
||||||
return new BCResult(this.evaluateCandidate(model, evalParams), evalParams);
|
return new BCResult(this.evaluateCandidate(model, evalParams), evalParams);
|
||||||
|
|
@ -30,7 +31,7 @@ public class HillDescentBallisticCalculator extends BallisticCalculator {
|
||||||
Velocity3d robotVelocity,
|
Velocity3d robotVelocity,
|
||||||
Angle robotAngle,
|
Angle robotAngle,
|
||||||
Velocity3d shooterVelocity
|
Velocity3d shooterVelocity
|
||||||
) {
|
) throws BallisticException {
|
||||||
model.paramComputedReset();
|
model.paramComputedReset();
|
||||||
|
|
||||||
P bestParam = initParam;
|
P bestParam = initParam;
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
package org.fairportrobotics.frc.robolib.trajectory.ballistics.constraints;
|
package org.fairportrobotics.frc.robolib.trajectory.ballistics.constraints;
|
||||||
|
|
||||||
|
import org.fairportrobotics.frc.robolib.trajectory.ballistics.exceptions.BallisticException;
|
||||||
import org.fairportrobotics.frc.robolib.trajectory.ballistics.models.BallisticModel;
|
import org.fairportrobotics.frc.robolib.trajectory.ballistics.models.BallisticModel;
|
||||||
|
|
||||||
|
|
||||||
public abstract class BallisticConstraint {
|
public abstract class BallisticConstraint {
|
||||||
protected double weight;
|
protected double weight;
|
||||||
|
|
||||||
|
|
@ -51,5 +51,5 @@ public abstract class BallisticConstraint {
|
||||||
*/
|
*/
|
||||||
public abstract <M extends BallisticModel<P>, P> Double evaluate(
|
public abstract <M extends BallisticModel<P>, P> Double evaluate(
|
||||||
M model, BCEvalParams evalParams
|
M model, BCEvalParams evalParams
|
||||||
);
|
) throws BallisticException;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue