Class LightningMath
- java.lang.Object
-
- com.lightningrobotics.common.util.LightningMath
-
public final class LightningMath extends java.lang.Object
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static doubleangleModulus(double angleRadians)Wraps an angle to the range -pi to pi radians.static doubleboundTheta0To2Pi(double theta)static doubleboundTheta0to360(double theta)static doubleboundThetaNeg180to180(double theta)static doubleboundThetaNegPiToPi(double theta)static doubleclamp(double value, double low, double high)Returns value clamped between low and high boundaries.static intclamp(int value, int low, int high)Returns value clamped between low and high boundaries.static doubleconstrain(double value, double low, double high)static intconstrain(int value, int low, int high)static doubledeadZone(double input, double deadband)static doubledeltaThetaInDegrees(double from, double to)static doubledeltaThetaInRadians(double from, double to)static doubleinputModulus(double input, double minimumInput, double maximumInput)Returns modulus of input.static doublelerp(double startValue, double endValue, double t)Linearly interpolates between two values.static edu.wpi.first.math.geometry.Pose2dlerp(edu.wpi.first.math.geometry.Pose2d startValue, edu.wpi.first.math.geometry.Pose2d endValue, double t)Linearly interpolates between two poses.static doublelimit(double input)static doublelimit(double v, double limit)static doublelimit(double v, double low, double high)static doublemax(double... values)Finds the maximum value of the given inputs.static doublerpmToMetersPerSecond(double rpm, double gearReduction, double wheelCircumference)Converts motor rotational speed to linear speedstatic doublescale(double input, double lowInput, double highInput, double lowOutput, double highOutput)static intscale(int input, int lowInput, int highInput, int lowOutput, int highOutput)static doubleticksToDistance(double ticks, double wheelDiameter, double gearReduction, double ticksPerRev)Converts encoder ticks to a distance (units of input)
-
-
-
Method Detail
-
clamp
public static int clamp(int value, int low, int high)Returns value clamped between low and high boundaries.- Parameters:
value- Value to clamp.low- The lower boundary to which to clamp value.high- The higher boundary to which to clamp value.- Returns:
- clamped value.
-
clamp
public static double clamp(double value, double low, double high)Returns value clamped between low and high boundaries.- Parameters:
value- Value to clamp.low- The lower boundary to which to clamp value.high- The higher boundary to which to clamp value.- Returns:
- clamped value.
-
inputModulus
public static double inputModulus(double input, double minimumInput, double maximumInput)Returns modulus of input.- Parameters:
input- Input value to wrap.minimumInput- The minimum value expected from the input.maximumInput- The maximum value expected from the input.- Returns:
- mod of input value
-
angleModulus
public static double angleModulus(double angleRadians)
Wraps an angle to the range -pi to pi radians.- Parameters:
angleRadians- Angle to wrap in radians.- Returns:
- constrained angle from -pi to pi
-
max
public static double max(double... values)
Finds the maximum value of the given inputs.- Parameters:
values- Multiple floating-point values.- Returns:
- The maximum of the values given.
-
constrain
public static int constrain(int value, int low, int high)
-
constrain
public static double constrain(double value, double low, double high)
-
limit
public static double limit(double v, double low, double high)
-
limit
public static double limit(double v, double limit)
-
limit
public static double limit(double input)
-
boundThetaNegPiToPi
public static double boundThetaNegPiToPi(double theta)
-
boundTheta0To2Pi
public static double boundTheta0To2Pi(double theta)
-
boundThetaNeg180to180
public static double boundThetaNeg180to180(double theta)
-
boundTheta0to360
public static double boundTheta0to360(double theta)
-
deltaThetaInDegrees
public static double deltaThetaInDegrees(double from, double to)
-
deltaThetaInRadians
public static double deltaThetaInRadians(double from, double to)
-
scale
public static int scale(int input, int lowInput, int highInput, int lowOutput, int highOutput)
-
scale
public static double scale(double input, double lowInput, double highInput, double lowOutput, double highOutput)
-
deadZone
public static double deadZone(double input, double deadband)
-
lerp
public static double lerp(double startValue, double endValue, double t)Linearly interpolates between two values.- Parameters:
startValue- The start value.endValue- The end value.t- The fraction for interpolation.- Returns:
- The interpolated value.
-
lerp
public static edu.wpi.first.math.geometry.Pose2d lerp(edu.wpi.first.math.geometry.Pose2d startValue, edu.wpi.first.math.geometry.Pose2d endValue, double t)Linearly interpolates between two poses.- Parameters:
startValue- The start pose.endValue- The end pose.t- The fraction for interpolation.- Returns:
- The interpolated pose.
-
rpmToMetersPerSecond
public static double rpmToMetersPerSecond(double rpm, double gearReduction, double wheelCircumference)Converts motor rotational speed to linear speed- Parameters:
rpm- input speed to convertgearReduction- reduction between driver and actuatorwheelCircumference- circumference of wheel (inches)- Returns:
- the speed in meters per second
-
ticksToDistance
public static double ticksToDistance(double ticks, double wheelDiameter, double gearReduction, double ticksPerRev)Converts encoder ticks to a distance (units of input)- Parameters:
ticks- input to convertwheelDiameter- diameter of wheelgearReduction- reduction in gearboxticksPerRev- ticks pre revolution of motor shaft- Returns:
- distance wheel has travled, in units of the wheel diameter supplied
-
-