Package com.irurueta.ar.slam
Class PositionPredictor
java.lang.Object
com.irurueta.ar.slam.PositionPredictor
Utility class to predict position of device.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intNumber of components of acceleration.static final intNumber of components of speed. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic com.irurueta.geometry.InhomogeneousPoint3Dpredict(com.irurueta.geometry.InhomogeneousPoint3D r, double[] v, double dt) Predicts the updated position assuming no acceleration.static com.irurueta.geometry.InhomogeneousPoint3Dpredict(com.irurueta.geometry.InhomogeneousPoint3D r, double[] v, double[] a, double dt) Predicts the updated position.static com.irurueta.geometry.InhomogeneousPoint3Dpredict(com.irurueta.geometry.InhomogeneousPoint3D r, double[] v, double[] a, double dt, com.irurueta.algebra.Matrix jacobianR, com.irurueta.algebra.Matrix jacobianV, com.irurueta.algebra.Matrix jacobianA) Predicts the updated position.static voidpredict(com.irurueta.geometry.InhomogeneousPoint3D r, double[] v, double[] a, double dt, com.irurueta.geometry.InhomogeneousPoint3D result) Predicts the updated position.static voidpredict(com.irurueta.geometry.InhomogeneousPoint3D r, double[] v, double[] a, double dt, com.irurueta.geometry.InhomogeneousPoint3D result, com.irurueta.algebra.Matrix jacobianR, com.irurueta.algebra.Matrix jacobianV, com.irurueta.algebra.Matrix jacobianA) Predicts the updated position.static com.irurueta.geometry.InhomogeneousPoint3Dpredict(com.irurueta.geometry.InhomogeneousPoint3D r, double[] v, double dt, com.irurueta.algebra.Matrix jacobianR, com.irurueta.algebra.Matrix jacobianV, com.irurueta.algebra.Matrix jacobianA) Predicts the updated position assuming no acceleration.static voidpredict(com.irurueta.geometry.InhomogeneousPoint3D r, double[] v, double dt, com.irurueta.geometry.InhomogeneousPoint3D result) Predicts the updated position assuming no acceleration.static voidpredict(com.irurueta.geometry.InhomogeneousPoint3D r, double[] v, double dt, com.irurueta.geometry.InhomogeneousPoint3D result, com.irurueta.algebra.Matrix jacobianR, com.irurueta.algebra.Matrix jacobianV, com.irurueta.algebra.Matrix jacobianA) Predicts the updated position assuming no acceleration.static com.irurueta.geometry.InhomogeneousPoint3Dpredict(com.irurueta.geometry.InhomogeneousPoint3D r, double vx, double vy, double vz, double dt) Predicts the updated position assuming no acceleration.static com.irurueta.geometry.InhomogeneousPoint3Dpredict(com.irurueta.geometry.InhomogeneousPoint3D r, double vx, double vy, double vz, double ax, double ay, double az, double dt) Predicts the updated position.static com.irurueta.geometry.InhomogeneousPoint3Dpredict(com.irurueta.geometry.InhomogeneousPoint3D r, double vx, double vy, double vz, double ax, double ay, double az, double dt, com.irurueta.algebra.Matrix jacobianR, com.irurueta.algebra.Matrix jacobianV, com.irurueta.algebra.Matrix jacobianA) Predicts the updated positionstatic voidpredict(com.irurueta.geometry.InhomogeneousPoint3D r, double vx, double vy, double vz, double ax, double ay, double az, double dt, com.irurueta.geometry.InhomogeneousPoint3D result) Predicts the updated position.static voidpredict(com.irurueta.geometry.InhomogeneousPoint3D r, double vx, double vy, double vz, double ax, double ay, double az, double dt, com.irurueta.geometry.InhomogeneousPoint3D result, com.irurueta.algebra.Matrix jacobianR, com.irurueta.algebra.Matrix jacobianV, com.irurueta.algebra.Matrix jacobianA) Predicts the updated position.static com.irurueta.geometry.InhomogeneousPoint3Dpredict(com.irurueta.geometry.InhomogeneousPoint3D r, double vx, double vy, double vz, double dt, com.irurueta.algebra.Matrix jacobianR, com.irurueta.algebra.Matrix jacobianV, com.irurueta.algebra.Matrix jacobianA) Predicts the updated position assuming no acceleration.static voidpredict(com.irurueta.geometry.InhomogeneousPoint3D r, double vx, double vy, double vz, double dt, com.irurueta.geometry.InhomogeneousPoint3D result) Predicts the updated position assuming no acceleration.static voidpredict(com.irurueta.geometry.InhomogeneousPoint3D r, double vx, double vy, double vz, double dt, com.irurueta.geometry.InhomogeneousPoint3D result, com.irurueta.algebra.Matrix jacobianR, com.irurueta.algebra.Matrix jacobianV, com.irurueta.algebra.Matrix jacobianA) Predicts the updated position assuming no acceleration.static com.irurueta.geometry.InhomogeneousPoint3DpredictWithPositionAdjustment(com.irurueta.geometry.InhomogeneousPoint3D r, double[] dr, double[] v, double[] a, double dt) Predicts the updated position.static com.irurueta.geometry.InhomogeneousPoint3DpredictWithPositionAdjustment(com.irurueta.geometry.InhomogeneousPoint3D r, double[] dr, double[] v, double[] a, double dt, com.irurueta.algebra.Matrix jacobianR, com.irurueta.algebra.Matrix jacobianDR, com.irurueta.algebra.Matrix jacobianV, com.irurueta.algebra.Matrix jacobianA) Predicts the updated position by using provided position variation, current speed and current acceleration.static voidpredictWithPositionAdjustment(com.irurueta.geometry.InhomogeneousPoint3D r, double[] dr, double[] v, double[] a, double dt, com.irurueta.geometry.InhomogeneousPoint3D result) Predicts the updated position.static voidpredictWithPositionAdjustment(com.irurueta.geometry.InhomogeneousPoint3D r, double[] dr, double[] v, double[] a, double dt, com.irurueta.geometry.InhomogeneousPoint3D result, com.irurueta.algebra.Matrix jacobianR, com.irurueta.algebra.Matrix jacobianDR, com.irurueta.algebra.Matrix jacobianV, com.irurueta.algebra.Matrix jacobianA) Predicts the updated position by using provided position variation, current speed and current acceleration.static com.irurueta.geometry.InhomogeneousPoint3DpredictWithPositionAdjustment(com.irurueta.geometry.InhomogeneousPoint3D r, double drx, double dry, double drz, double vx, double vy, double vz, double ax, double ay, double az, double dt) Predicts the updated position by using provided position variation, current speed and current acceleration.static com.irurueta.geometry.InhomogeneousPoint3DpredictWithPositionAdjustment(com.irurueta.geometry.InhomogeneousPoint3D r, double drx, double dry, double drz, double vx, double vy, double vz, double ax, double ay, double az, double dt, com.irurueta.algebra.Matrix jacobianR, com.irurueta.algebra.Matrix jacobianDR, com.irurueta.algebra.Matrix jacobianV, com.irurueta.algebra.Matrix jacobianA) Predicts the updated position by using provided position variation, current speed and current acceleration.static voidpredictWithPositionAdjustment(com.irurueta.geometry.InhomogeneousPoint3D r, double drx, double dry, double drz, double vx, double vy, double vz, double ax, double ay, double az, double dt, com.irurueta.geometry.InhomogeneousPoint3D result) Predicts the updated position by using provided position variation, current speed and current acceleration.static voidpredictWithPositionAdjustment(com.irurueta.geometry.InhomogeneousPoint3D r, double drx, double dry, double drz, double vx, double vy, double vz, double ax, double ay, double az, double dt, com.irurueta.geometry.InhomogeneousPoint3D result, com.irurueta.algebra.Matrix jacobianR, com.irurueta.algebra.Matrix jacobianDR, com.irurueta.algebra.Matrix jacobianV, com.irurueta.algebra.Matrix jacobianA) Predicts the updated position by using provided position variation, current speed and current acceleration.
-
Field Details
-
SPEED_COMPONENTS
public static final int SPEED_COMPONENTSNumber of components of speed.- See Also:
-
ACCELERATION_COMPONENTS
public static final int ACCELERATION_COMPONENTSNumber of components of acceleration.- See Also:
-
-
Constructor Details
-
PositionPredictor
private PositionPredictor()Constructor.
-
-
Method Details
-
predict
public static void predict(com.irurueta.geometry.InhomogeneousPoint3D r, double vx, double vy, double vz, double ax, double ay, double az, double dt, com.irurueta.geometry.InhomogeneousPoint3D result, com.irurueta.algebra.Matrix jacobianR, com.irurueta.algebra.Matrix jacobianV, com.irurueta.algebra.Matrix jacobianA) Predicts the updated position.- Parameters:
r- current position. Expressed in meters.vx- velocity in x-axis. Expressed in m/s.vy- velocity in y-axis. Expressed in m/s.vz- velocity in z-axis. Expressed in m/s.ax- acceleration in x-axis. Expressed in m/s^2.ay- acceleration in y-axis. Expressed in m/s^2.az- acceleration in z-axis. Expressed in m/s^2.dt- time interval to compute prediction expressed in seconds.result- instance where updated position is stored.jacobianR- jacobian wrt position. Must be 3x3.jacobianV- jacobian wrt speed. Must be 3x3.jacobianA- jacobian wrt acceleration. Must be 3x3.- Throws:
IllegalArgumentException- if any of provided jacobians does not have proper size.- See Also:
-
predict
public static void predict(com.irurueta.geometry.InhomogeneousPoint3D r, double vx, double vy, double vz, double ax, double ay, double az, double dt, com.irurueta.geometry.InhomogeneousPoint3D result) Predicts the updated position.- Parameters:
r- current position. Expressed in meters.vx- velocity in x-axis. Expressed in m/s.vy- velocity in y-axis. Expressed in m/s.vz- velocity in z-axis. Expressed in m/s.ax- acceleration in x-axis. Expressed in m/s^2.ay- acceleration in y-axis. Expressed in m/s^2.az- acceleration in z-axis. Expressed in m/s^2.dt- time interval to compute prediction expressed in seconds.result- instance where updated position is stored.- See Also:
-
predict
public static void predict(com.irurueta.geometry.InhomogeneousPoint3D r, double[] v, double[] a, double dt, com.irurueta.geometry.InhomogeneousPoint3D result, com.irurueta.algebra.Matrix jacobianR, com.irurueta.algebra.Matrix jacobianV, com.irurueta.algebra.Matrix jacobianA) Predicts the updated position.- Parameters:
r- point containing current position in 3D. Expressed in meters.v- array containing 3 components of velocity. Expressed in m/s. Must have length 3.a- array containing 3 components of acceleration. Expressed in m/s^2. Must have length 3.dt- time interval to compute prediction expressed in seconds.result- instance where updated position is stored.jacobianR- jacobian wrt position. Must be 3x3.jacobianV- jacobian wrt speed. Must be 3x3.jacobianA- jacobian wrt acceleration. Must be 3x3.- Throws:
IllegalArgumentException- if any of provided jacobians does not have proper size of velocity or acceleration do not have length 3.- See Also:
-
predict
public static void predict(com.irurueta.geometry.InhomogeneousPoint3D r, double[] v, double[] a, double dt, com.irurueta.geometry.InhomogeneousPoint3D result) Predicts the updated position.- Parameters:
r- point containing current position in 3D. Expressed in meters.v- array containing 3 components of velocity. Expressed in m/s. Must have length 3.a- array containing 3 components of acceleration. Expressed in m/s^2. Must have length 3.dt- time interval to compute prediction expressed in seconds.result- instance where updated position is stored.- See Also:
-
predict
public static void predict(com.irurueta.geometry.InhomogeneousPoint3D r, double vx, double vy, double vz, double dt, com.irurueta.geometry.InhomogeneousPoint3D result, com.irurueta.algebra.Matrix jacobianR, com.irurueta.algebra.Matrix jacobianV, com.irurueta.algebra.Matrix jacobianA) Predicts the updated position assuming no acceleration.- Parameters:
r- current position. Expressed in meters.vx- velocity in x-axis. Expressed in m/s.vy- velocity in y-axis. Expressed in m/s.vz- velocity in z-axis. Expressed in m/s.dt- time interval to compute prediction expressed in seconds.result- instance where updated position is stored.jacobianR- jacobian wrt position. Must be 3x3.jacobianV- jacobian wrt speed. Must be 3x3.jacobianA- jacobian wrt acceleration. Must be 3x3.- Throws:
IllegalArgumentException- if any of provided jacobians does not have proper size.- See Also:
-
predict
public static void predict(com.irurueta.geometry.InhomogeneousPoint3D r, double vx, double vy, double vz, double dt, com.irurueta.geometry.InhomogeneousPoint3D result) Predicts the updated position assuming no acceleration.- Parameters:
r- current position. Expressed in meters.vx- velocity in x-axis. Expressed in m/s.vy- velocity in y-axis. Expressed in m/s.vz- velocity in z-axis. Expressed in m/s.dt- time interval to compute prediction expressed in seconds.result- instance where updated position is stored.- See Also:
-
predict
public static void predict(com.irurueta.geometry.InhomogeneousPoint3D r, double[] v, double dt, com.irurueta.geometry.InhomogeneousPoint3D result, com.irurueta.algebra.Matrix jacobianR, com.irurueta.algebra.Matrix jacobianV, com.irurueta.algebra.Matrix jacobianA) Predicts the updated position assuming no acceleration.- Parameters:
r- point containing current position in 3D. Expressed in meters.v- array containing 3 components of velocity. Expressed in m/s. Must have length 3.dt- time interval to compute prediction expressed in seconds.result- instance where updated position is stored.jacobianR- jacobian wrt position. Must be 3x3.jacobianV- jacobian wrt speed. Must be 3x3.jacobianA- jacobian wrt acceleration. Must be 3x3.- Throws:
IllegalArgumentException- if any of provided jacobians does not have proper size of velocity does not have length 3.- See Also:
-
predict
public static void predict(com.irurueta.geometry.InhomogeneousPoint3D r, double[] v, double dt, com.irurueta.geometry.InhomogeneousPoint3D result) Predicts the updated position assuming no acceleration.- Parameters:
r- point containing current position in 3D. Expressed in meters.v- array containing 3 components of velocity. Expressed in m/s. Must have length 3.dt- time interval to compute prediction expressed in seconds.result- instance where updated position is stored.- Throws:
IllegalArgumentException- if velocity array does not have length 3.- See Also:
-
predict
public static com.irurueta.geometry.InhomogeneousPoint3D predict(com.irurueta.geometry.InhomogeneousPoint3D r, double vx, double vy, double vz, double ax, double ay, double az, double dt, com.irurueta.algebra.Matrix jacobianR, com.irurueta.algebra.Matrix jacobianV, com.irurueta.algebra.Matrix jacobianA) Predicts the updated position- Parameters:
r- current position. Expressed in meters.vx- velocity in x-axis. Expressed in m/s.vy- velocity in y-axis. Expressed in m/s.vz- velocity in z-axis. Expressed in m/s.ax- acceleration in x-axis. Expressed in m/s^2.ay- acceleration in y-axis. Expressed in m/s^2.az- acceleration in z-axis. Expressed in m/s^2.dt- time interval to compute prediction expressed in seconds.jacobianR- jacobian wrt position. Must be 3x3.jacobianV- jacobian wrt speed. Must be 3x3.jacobianA- jacobian wrt acceleration. Must be 3x3.- Returns:
- a new instance containing the updated position.
- Throws:
IllegalArgumentException- if any of provided jacobians does not have proper size.- See Also:
-
predict
public static com.irurueta.geometry.InhomogeneousPoint3D predict(com.irurueta.geometry.InhomogeneousPoint3D r, double vx, double vy, double vz, double ax, double ay, double az, double dt) Predicts the updated position.- Parameters:
r- current position. Expressed in meters.vx- velocity in x-axis. Expressed in m/s.vy- velocity in y-axis. Expressed in m/s.vz- velocity in z-axis. Expressed in m/s.ax- acceleration in x-axis. Expressed in m/s^2.ay- acceleration in y-axis. Expressed in m/s^2.az- acceleration in z-axis. Expressed in m/s^2.dt- time interval to compute prediction expressed in seconds.- Returns:
- a new instance containing the updated position.
- See Also:
-
predict
public static com.irurueta.geometry.InhomogeneousPoint3D predict(com.irurueta.geometry.InhomogeneousPoint3D r, double[] v, double[] a, double dt, com.irurueta.algebra.Matrix jacobianR, com.irurueta.algebra.Matrix jacobianV, com.irurueta.algebra.Matrix jacobianA) Predicts the updated position.- Parameters:
r- point containing current position in 3D. Expressed in meters.v- array containing 3 components of velocity. Expressed in m/s. Must have length 3.a- array containing 3 components of acceleration. Expressed in m/s^2. Must have length 3.dt- time interval to compute prediction expressed in seconds.jacobianR- jacobian wrt position. Must be 3x3.jacobianV- jacobian wrt speed. Must be 3x3.jacobianA- jacobian wrt acceleration. Must be 3x3.- Returns:
- a new instance containing the updated position.
- Throws:
IllegalArgumentException- if any of provided jacobians does not have proper size.- See Also:
-
predict
public static com.irurueta.geometry.InhomogeneousPoint3D predict(com.irurueta.geometry.InhomogeneousPoint3D r, double[] v, double[] a, double dt) Predicts the updated position.- Parameters:
r- point containing current position in 3D. Expressed in meters.v- array containing 3 components of velocity. Expressed in m/s. Must have length 3.a- array containing 3 components of acceleration. Expressed in m/s^2. Must have length 3.dt- time interval to compute prediction expressed in seconds.- Returns:
- a new instance containing the updated position.
- See Also:
-
predict
public static com.irurueta.geometry.InhomogeneousPoint3D predict(com.irurueta.geometry.InhomogeneousPoint3D r, double vx, double vy, double vz, double dt, com.irurueta.algebra.Matrix jacobianR, com.irurueta.algebra.Matrix jacobianV, com.irurueta.algebra.Matrix jacobianA) Predicts the updated position assuming no acceleration.- Parameters:
r- current position. Expressed in meters.vx- velocity in x-axis. Expressed in m/s.vy- velocity in y-axis. Expressed in m/s.vz- velocity in z-axis. Expressed in m/s.dt- time interval to compute prediction expressed in seconds.jacobianR- jacobian wrt position. Must be 3x3.jacobianV- jacobian wrt speed. Must be 3x3.jacobianA- jacobian wrt acceleration. Must be 3x3.- Returns:
- a new instance containing the updated position.
- Throws:
IllegalArgumentException- if any of provided jacobians does not have proper size.- See Also:
-
predict
public static com.irurueta.geometry.InhomogeneousPoint3D predict(com.irurueta.geometry.InhomogeneousPoint3D r, double vx, double vy, double vz, double dt) Predicts the updated position assuming no acceleration.- Parameters:
r- current position. Expressed in meters.vx- velocity in x-axis. Expressed in m/s.vy- velocity in y-axis. Expressed in m/s.vz- velocity in z-axis. Expressed in m/s.dt- time interval to compute prediction expressed in seconds.- Returns:
- a new instance containing the updated position.
- See Also:
-
predict
public static com.irurueta.geometry.InhomogeneousPoint3D predict(com.irurueta.geometry.InhomogeneousPoint3D r, double[] v, double dt, com.irurueta.algebra.Matrix jacobianR, com.irurueta.algebra.Matrix jacobianV, com.irurueta.algebra.Matrix jacobianA) Predicts the updated position assuming no acceleration.- Parameters:
r- current position. Expressed in meters.v- array containing 3 components of velocity. Expressed in m/s. Must have length 3.dt- time interval to compute prediction expressed in seconds.jacobianR- jacobian wrt position. Must be 3x3.jacobianV- jacobian wrt speed. Must be 3x3.jacobianA- jacobian wrt acceleration. Must be 3x3.- Returns:
- a new instance containing the updated position.
- Throws:
IllegalArgumentException- if any of provided jacobians does not have proper size of velocity does not have length 3.- See Also:
-
predict
public static com.irurueta.geometry.InhomogeneousPoint3D predict(com.irurueta.geometry.InhomogeneousPoint3D r, double[] v, double dt) Predicts the updated position assuming no acceleration.- Parameters:
r- current position. Expressed in meters.v- array containing 3 components of velocity. Expressed in m/s. Must have length 3.dt- time interval to compute prediction expressed in seconds.- Returns:
- a new instance containing the updated position.
- Throws:
IllegalArgumentException- if size of v array is not 3.- See Also:
-
predictWithPositionAdjustment
public static void predictWithPositionAdjustment(com.irurueta.geometry.InhomogeneousPoint3D r, double drx, double dry, double drz, double vx, double vy, double vz, double ax, double ay, double az, double dt, com.irurueta.geometry.InhomogeneousPoint3D result, com.irurueta.algebra.Matrix jacobianR, com.irurueta.algebra.Matrix jacobianDR, com.irurueta.algebra.Matrix jacobianV, com.irurueta.algebra.Matrix jacobianA) Predicts the updated position by using provided position variation, current speed and current acceleration.- Parameters:
r- current position. Expressed in meters.drx- adjustment of position in x-axis. Expressed in meters.dry- adjustment of position in y-axis. Expressed in meters.drz- adjustment of position in z-axis. Expressed in meters.vx- velocity in x-axis. Expressed in m/s.vy- velocity in y-axis. Expressed in m/s.vz- velocity in z-axis. Expressed in m/s.ax- acceleration in x-axis. Expressed in m/s^2.ay- acceleration in y-axis. Expressed in m/s^2.az- acceleration in z-axis. Expressed in m/s^2.dt- time interval to compute prediction expressed in seconds.result- instance where updated position is stored.jacobianR- jacobian wrt position. Must be 3x3.jacobianDR- jacobian wrt position adjustment. Must be 3x3.jacobianV- jacobian wrt speed. Must be 3c3.jacobianA- jacobian wrt acceleration. Must be 3x3.- Throws:
IllegalArgumentException- if any of provided jacobians does not have proper size.
-
predictWithPositionAdjustment
public static void predictWithPositionAdjustment(com.irurueta.geometry.InhomogeneousPoint3D r, double drx, double dry, double drz, double vx, double vy, double vz, double ax, double ay, double az, double dt, com.irurueta.geometry.InhomogeneousPoint3D result) Predicts the updated position by using provided position variation, current speed and current acceleration.- Parameters:
r- current position. Expressed in meters.drx- adjustment of position in x-axis. Expressed in meters.dry- adjustment of position in y-axis. Expressed in meters.drz- adjustment of position in z-axis. Expressed in meters.vx- velocity in x-axis. Expressed in m/s.vy- velocity in y-axis. Expressed in m/s.vz- velocity in z-axis. Expressed in m/s.ax- acceleration in x-axis. Expressed in m/s^2.ay- acceleration in y-axis. Expressed in m/s^2.az- acceleration in z-axis. Expressed in m/s^2.dt- time interval to compute prediction expressed in seconds.result- instance where updated position is stored.
-
predictWithPositionAdjustment
public static void predictWithPositionAdjustment(com.irurueta.geometry.InhomogeneousPoint3D r, double[] dr, double[] v, double[] a, double dt, com.irurueta.geometry.InhomogeneousPoint3D result, com.irurueta.algebra.Matrix jacobianR, com.irurueta.algebra.Matrix jacobianDR, com.irurueta.algebra.Matrix jacobianV, com.irurueta.algebra.Matrix jacobianA) Predicts the updated position by using provided position variation, current speed and current acceleration.- Parameters:
r- current position. Expressed in meters.dr- adjustment of position (x, y, z). Must have length 3.v- array containing 3 components of velocity. Expressed in m/s. Must have length 3.a- array containing 3 components of acceleration. Expressed in m/s^2. Must have length 3.dt- time interval to compute prediction expressed in seconds.result- instance where updated position is stored.jacobianR- jacobian wrt position. Must be 3x3.jacobianDR- jacobian wrt position adjustment. Must be 3x3.jacobianV- jacobian wrt speed. Must be 3x3.jacobianA- jacobian wrt acceleration. Must be 3x3.- Throws:
IllegalArgumentException- if any of provided jacobians does not have proper size or dr, v or a do not have length 3.
-
predictWithPositionAdjustment
public static void predictWithPositionAdjustment(com.irurueta.geometry.InhomogeneousPoint3D r, double[] dr, double[] v, double[] a, double dt, com.irurueta.geometry.InhomogeneousPoint3D result) Predicts the updated position.- Parameters:
r- point containing current position in 3D. Expressed in meters.dr- adjustment of position (x, y, z). Must have length 3.v- array containing 3 components of velocity. Expressed in m/s. Must have length 3.a- array containing 3 components of acceleration. Expressed in m/s^2. Must have length 3.dt- time interval to compute prediction expressed in seconds.result- instance where updated position is stored.- Throws:
IllegalArgumentException- if dr, v or a do not have length 3.
-
predictWithPositionAdjustment
public static com.irurueta.geometry.InhomogeneousPoint3D predictWithPositionAdjustment(com.irurueta.geometry.InhomogeneousPoint3D r, double drx, double dry, double drz, double vx, double vy, double vz, double ax, double ay, double az, double dt, com.irurueta.algebra.Matrix jacobianR, com.irurueta.algebra.Matrix jacobianDR, com.irurueta.algebra.Matrix jacobianV, com.irurueta.algebra.Matrix jacobianA) Predicts the updated position by using provided position variation, current speed and current acceleration.- Parameters:
r- current position. Expressed in meters.drx- adjustment of position in x-axis. Expressed in meters.dry- adjustment of position in y-axis. Expressed in meters.drz- adjustment of position in z-axis. Expressed in meters.vx- velocity in x-axis. Expressed in m/s.vy- velocity in y-axis. Expressed in m/s.vz- velocity in z-axis. Expressed in m/s.ax- acceleration in x-axis. Expressed in m/s^2.ay- acceleration in y-axis. Expressed in m/s^2.az- acceleration in z-axis. Expressed in m/s^2.dt- time interval to compute prediction expressed in seconds.jacobianR- jacobian wrt position. Must be 3x3.jacobianDR- jacobian wrt position adjustment. Must be 3x3.jacobianV- jacobian wrt speed. Must be 3c3.jacobianA- jacobian wrt acceleration. Must be 3x3.- Returns:
- a new updated position.
- Throws:
IllegalArgumentException- if any of provided jacobians does not have proper size.
-
predictWithPositionAdjustment
public static com.irurueta.geometry.InhomogeneousPoint3D predictWithPositionAdjustment(com.irurueta.geometry.InhomogeneousPoint3D r, double drx, double dry, double drz, double vx, double vy, double vz, double ax, double ay, double az, double dt) Predicts the updated position by using provided position variation, current speed and current acceleration.- Parameters:
r- current position. Expressed in meters.drx- adjustment of position in x-axis. Expressed in meters.dry- adjustment of position in y-axis. Expressed in meters.drz- adjustment of position in z-axis. Expressed in meters.vx- velocity in x-axis. Expressed in m/s.vy- velocity in y-axis. Expressed in m/s.vz- velocity in z-axis. Expressed in m/s.ax- acceleration in x-axis. Expressed in m/s^2.ay- acceleration in y-axis. Expressed in m/s^2.az- acceleration in z-axis. Expressed in m/s^2.dt- time interval to compute prediction expressed in seconds.- Returns:
- a new updated position.
-
predictWithPositionAdjustment
public static com.irurueta.geometry.InhomogeneousPoint3D predictWithPositionAdjustment(com.irurueta.geometry.InhomogeneousPoint3D r, double[] dr, double[] v, double[] a, double dt, com.irurueta.algebra.Matrix jacobianR, com.irurueta.algebra.Matrix jacobianDR, com.irurueta.algebra.Matrix jacobianV, com.irurueta.algebra.Matrix jacobianA) Predicts the updated position by using provided position variation, current speed and current acceleration.- Parameters:
r- current position. Expressed in meters.dr- adjustment of position (x, y, z). Must have length 3.v- array containing 3 components of velocity. Expressed in m/s. Must have length 3.a- array containing 3 components of acceleration. Expressed in m/s^2. Must have length 3.dt- time interval to compute prediction expressed in seconds.jacobianR- jacobian wrt position. Must be 3x3.jacobianDR- jacobian wrt position adjustment. Must be 3x3.jacobianV- jacobian wrt speed. Must be 3x3.jacobianA- jacobian wrt acceleration. Must be 3x3.- Returns:
- a new updated position.
- Throws:
IllegalArgumentException- if any of provided jacobians does not have proper size or dr, v or a do not have length 3.
-
predictWithPositionAdjustment
public static com.irurueta.geometry.InhomogeneousPoint3D predictWithPositionAdjustment(com.irurueta.geometry.InhomogeneousPoint3D r, double[] dr, double[] v, double[] a, double dt) Predicts the updated position.- Parameters:
r- point containing current position in 3D. Expressed in meters.dr- adjustment of position (x, y, z). Must have length 3.v- array containing 3 components of velocity. Expressed in m/s. Must have length 3.a- array containing 3 components of acceleration. Expressed in m/s^2. Must have length 3.dt- time interval to compute prediction expressed in seconds.- Returns:
- a new updated position.
-