Class PositionPredictor

java.lang.Object
com.irurueta.ar.slam.PositionPredictor

public class PositionPredictor extends Object
Utility class to predict position of device.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    Number of components of acceleration.
    static final int
    Number of components of speed.
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    private
    Constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    static com.irurueta.geometry.InhomogeneousPoint3D
    predict(com.irurueta.geometry.InhomogeneousPoint3D r, double[] v, double dt)
    Predicts the updated position assuming no acceleration.
    static com.irurueta.geometry.InhomogeneousPoint3D
    predict(com.irurueta.geometry.InhomogeneousPoint3D r, double[] v, double[] a, double dt)
    Predicts the updated position.
    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.
    static void
    predict(com.irurueta.geometry.InhomogeneousPoint3D r, double[] v, double[] a, double dt, com.irurueta.geometry.InhomogeneousPoint3D result)
    Predicts the updated position.
    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.
    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.
    static void
    predict(com.irurueta.geometry.InhomogeneousPoint3D r, double[] v, double dt, com.irurueta.geometry.InhomogeneousPoint3D result)
    Predicts the updated position assuming no acceleration.
    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.
    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.
    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.
    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
    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.
    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.
    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.
    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.
    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.
    static com.irurueta.geometry.InhomogeneousPoint3D
    predictWithPositionAdjustment(com.irurueta.geometry.InhomogeneousPoint3D r, double[] dr, double[] v, double[] a, double dt)
    Predicts the updated position.
    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.
    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.
    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.
    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.
    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.
    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.
    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.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • SPEED_COMPONENTS

      public static final int SPEED_COMPONENTS
      Number of components of speed.
      See Also:
    • ACCELERATION_COMPONENTS

      public static final int ACCELERATION_COMPONENTS
      Number 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.