Class LevelingEstimator

java.lang.Object
com.irurueta.navigation.inertial.estimators.LevelingEstimator

public class LevelingEstimator extends Object
Leveling is the process of attitude initialization of a body. When the INS is stationary, self-alignment can be used to initialize the roll and pitch with all but the poorest inertial sensors. However, accurate self-alignment of the heading requires aviation-grade gyros or better. Heading is often initialized using a magnetic compass. When the INS is initialized in motion, another navigation system must provide an attitude reference. This class is based on Paul D. Groves. Principles of GNSS Inertial and multi-sensor integrated navigation systemd. 2nd ed. p. 196.

Because this implementation neglects effects of Earth rotation on sensed specific force, and also neglects the north component of gravity in a local navigation frame (which is not zero because Earth is not fully spherical), the expected results should be accurate up to about 1e-3 radians (about 0.05 degrees).

  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    private
    Private constructor to prevent instantiation.
  • Method Summary

    Modifier and Type
    Method
    Description
    private static double
    convertAcceleration(com.irurueta.units.Acceleration acceleration)
    Converts an instance of acceleration to meters per squared second (m/s^2).
    private static double
    convertAngle(com.irurueta.units.Angle angle)
    Converts an instance of an angle to radians (rad).
    private static double
    convertAngularSpeed(com.irurueta.units.AngularSpeed angularSpeed)
    Converts an instance of angular speed to radians per second (rad/s).
    static com.irurueta.navigation.frames.CoordinateTransformation
    getAttitude(double fx, double fy, double fz, double angularRateX, double angularRateY, double angularRateZ)
    Gets body attitude expressed in the local navigation frame.
    static void
    getAttitude(double fx, double fy, double fz, double angularRateX, double angularRateY, double angularRateZ, com.irurueta.navigation.frames.CoordinateTransformation result)
    Gets body attitude expressed in the local navigation frame.
    static com.irurueta.navigation.frames.CoordinateTransformation
    Gets body attitude expressed in the local navigation frame.
    static void
    getAttitude(BodyKinematics kinematics, com.irurueta.navigation.frames.CoordinateTransformation result)
    Gets body attitude expressed in the local navigation frame.
    static com.irurueta.navigation.frames.CoordinateTransformation
    getAttitude(com.irurueta.units.Acceleration fx, com.irurueta.units.Acceleration fy, com.irurueta.units.Acceleration fz, com.irurueta.units.AngularSpeed angularRateX, com.irurueta.units.AngularSpeed angularRateY, com.irurueta.units.AngularSpeed angularRateZ)
    Gets body attitude expressed in the local navigation frame.
    static void
    getAttitude(com.irurueta.units.Acceleration fx, com.irurueta.units.Acceleration fy, com.irurueta.units.Acceleration fz, com.irurueta.units.AngularSpeed angularRateX, com.irurueta.units.AngularSpeed angularRateY, com.irurueta.units.AngularSpeed angularRateZ, com.irurueta.navigation.frames.CoordinateTransformation result)
    Gets body attitude expressed in the local navigation frame.
    static double
    getPitch(double fx, double fy, double fz)
    Gets pitch angle of body attitude expressed in radians.
    static double
    Gets pitch angle of body attitude expressed in radians.
    static double
    getPitch(com.irurueta.units.Acceleration fx, com.irurueta.units.Acceleration fy, com.irurueta.units.Acceleration fz)
    Gets pitch angle of body attitude expressed in radians.
    static com.irurueta.units.Angle
    getPitchAsAngle(double fx, double fy, double fz)
    Gets pitch angle of body attitude expressed in radians.
    static void
    getPitchAsAngle(double fx, double fy, double fz, com.irurueta.units.Angle result)
    Gets pitch angle of body attitude expressed in radians.
    static com.irurueta.units.Angle
    Gets pitch angle of body attitude expressed in radians.
    static void
    getPitchAsAngle(BodyKinematics kinematics, com.irurueta.units.Angle result)
    Gets pitch angle of body attitude expressed in radians.
    static com.irurueta.units.Angle
    getPitchAsAngle(com.irurueta.units.Acceleration fx, com.irurueta.units.Acceleration fy, com.irurueta.units.Acceleration fz)
    Gets pitch angle of body attitude expressed in radians.
    static void
    getPitchAsAngle(com.irurueta.units.Acceleration fx, com.irurueta.units.Acceleration fy, com.irurueta.units.Acceleration fz, com.irurueta.units.Angle result)
    Gets pitch angle of body attitude expressed in radians.
    static double
    getRoll(double fy, double fz)
    Gets roll angle of body attitude expressed in radians.
    static double
    getRoll(BodyKinematics kinematics)
    Gets roll angle of body attitude expressed in radians.
    static double
    getRoll(com.irurueta.units.Acceleration fy, com.irurueta.units.Acceleration fz)
    Gets roll angle of body attitude expressed in radians.
    static com.irurueta.units.Angle
    getRollAsAngle(double fy, double fz)
    Gets roll angle of body attitude expressed in radians.
    static void
    getRollAsAngle(double fy, double fz, com.irurueta.units.Angle result)
    Gets roll angle of body attitude expressed in radians.
    static com.irurueta.units.Angle
    Gets roll angle of body attitude expressed in radians.
    static void
    getRollAsAngle(BodyKinematics kinematics, com.irurueta.units.Angle result)
    Gets roll angle of body attitude expressed in radians.
    static com.irurueta.units.Angle
    getRollAsAngle(com.irurueta.units.Acceleration fy, com.irurueta.units.Acceleration fz)
    Gets roll angle of body attitude expressed in radians.
    static void
    getRollAsAngle(com.irurueta.units.Acceleration fy, com.irurueta.units.Acceleration fz, com.irurueta.units.Angle result)
    Gets roll angle of body attitude expressed in radians.
    static double
    getYaw(double roll, double pitch, double angularRateX, double angularRateY, double angularRateZ)
    Gets yaw angle of body attitude expressed in radians.
    static double
    getYaw(double fx, double fy, double fz, double angularRateX, double angularRateY, double angularRateZ)
    Gets yaw angle of body attitude expressed in radians.
    static double
    getYaw(BodyKinematics kinematics)
    Gets yaw angle of body attitude expressed in radians.
    static double
    getYaw(com.irurueta.units.Acceleration fx, com.irurueta.units.Acceleration fy, com.irurueta.units.Acceleration fz, com.irurueta.units.AngularSpeed angularRateX, com.irurueta.units.AngularSpeed angularRateY, com.irurueta.units.AngularSpeed angularRateZ)
    Gets yaw angle of body attitude expressed in radians.
    static double
    getYaw(com.irurueta.units.Angle roll, com.irurueta.units.Angle pitch, com.irurueta.units.AngularSpeed angularRateX, com.irurueta.units.AngularSpeed angularRateY, com.irurueta.units.AngularSpeed angularRateZ)
    Gets yaw angle of body attitude expressed in radians.
    static com.irurueta.units.Angle
    getYawAsAngle(double roll, double pitch, double angularRateX, double angularRateY, double angularRateZ)
    Gets yaw angle of body attitude expressed in radians.
    static com.irurueta.units.Angle
    getYawAsAngle(double fx, double fy, double fz, double angularRateX, double angularRateY, double angularRateZ)
    Gets yaw angle of body attitude expressed in radians.
    static void
    getYawAsAngle(double fx, double fy, double fz, double angularRateX, double angularRateY, double angularRateZ, com.irurueta.units.Angle result)
    Gets yaw angle of body attitude expressed in radians.
    static void
    getYawAsAngle(double roll, double pitch, double angularRateX, double angularRateY, double angularRateZ, com.irurueta.units.Angle result)
    Gets yaw angle of body attitude expressed in radians.
    static com.irurueta.units.Angle
    Gets yaw angle of body attitude expressed in radians.
    static void
    getYawAsAngle(BodyKinematics kinematics, com.irurueta.units.Angle result)
    Gets yaw angle of body attitude expressed in radians.
    static com.irurueta.units.Angle
    getYawAsAngle(com.irurueta.units.Acceleration fx, com.irurueta.units.Acceleration fy, com.irurueta.units.Acceleration fz, com.irurueta.units.AngularSpeed angularRateX, com.irurueta.units.AngularSpeed angularRateY, com.irurueta.units.AngularSpeed angularRateZ)
    Gets yaw angle of body attitude expressed in radians.
    static void
    getYawAsAngle(com.irurueta.units.Acceleration fx, com.irurueta.units.Acceleration fy, com.irurueta.units.Acceleration fz, com.irurueta.units.AngularSpeed angularRateX, com.irurueta.units.AngularSpeed angularRateY, com.irurueta.units.AngularSpeed angularRateZ, com.irurueta.units.Angle result)
    Gets yaw angle of body attitude expressed in radians.
    static com.irurueta.units.Angle
    getYawAsAngle(com.irurueta.units.Angle roll, com.irurueta.units.Angle pitch, com.irurueta.units.AngularSpeed angularRateX, com.irurueta.units.AngularSpeed angularRateY, com.irurueta.units.AngularSpeed angularRateZ)
    Gets yaw angle of body attitude expressed in radians.
    static void
    getYawAsAngle(com.irurueta.units.Angle roll, com.irurueta.units.Angle pitch, com.irurueta.units.AngularSpeed angularRateX, com.irurueta.units.AngularSpeed angularRateY, com.irurueta.units.AngularSpeed angularRateZ, com.irurueta.units.Angle result)
    Gets yaw angle of body attitude expressed in radians.

    Methods inherited from class java.lang.Object

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

    • LevelingEstimator

      private LevelingEstimator()
      Private constructor to prevent instantiation.
  • Method Details

    • getRoll

      public static double getRoll(double fy, double fz)
      Gets roll angle of body attitude expressed in radians. This is based on expression (5.101) of Paul D. Groves. Principles of GNSS Inertial and multi-sensor integrated navigation systemd. 2nd ed.
      Parameters:
      fy - y-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      fz - z-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      Returns:
      roll angle expressed in radians.
    • getPitch

      public static double getPitch(double fx, double fy, double fz)
      Gets pitch angle of body attitude expressed in radians. This is based on expression (5.101) of Paul D. Groves. Principles of GNSS Inertial and multi-sensor integrated navigation systemd. 2nd ed.
      Parameters:
      fx - x-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      fy - y-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      fz - z-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      Returns:
      pitch angle expressed in radians.
    • getYaw

      public static double getYaw(double roll, double pitch, double angularRateX, double angularRateY, double angularRateZ)
      Gets yaw angle of body attitude expressed in radians. This method requires previously computed roll and pitch angles along with gyroscope measurements. This method can only be used for high-accuracy gyroscopes, otherwise, yaw angle must be measured using a magnetometer.
      Parameters:
      roll - previously computed roll angle expressed in radians.
      pitch - previously computed pitch angle expressed in radians.
      angularRateX - x-coordinate of body angular rate expressed in radians per second (rad/s).
      angularRateY - y-coordinate of body angular rate expressed in radians per second (rad/s).
      angularRateZ - z-coordinate of body angular rate expressed in radians per second (rad/s).
      Returns:
      yaw angle expressed in radians.
    • getYaw

      public static double getYaw(double fx, double fy, double fz, double angularRateX, double angularRateY, double angularRateZ)
      Gets yaw angle of body attitude expressed in radians. This method can only be used for high-accuracy gyroscopes, otherwise, yaw angle must be measured using a magnetometer.
      Parameters:
      fx - x-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      fy - y-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      fz - z-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      angularRateX - x-coordinate of body angular rate expressed in radians per second (rad/s).
      angularRateY - y-coordinate of body angular rate expressed in radians per second (rad/s).
      angularRateZ - z-coordinate of body angular rate expressed in radians per second (rad/s).
      Returns:
      yaw angle expressed in radians.
    • getRoll

      public static double getRoll(BodyKinematics kinematics)
      Gets roll angle of body attitude expressed in radians. This is based on expression (5.101) of Paul D. Groves. Principles of GNSS Inertial and multi-sensor integrated navigation systemd. 2nd ed.
      Parameters:
      kinematics - body kinematics containing measured body specific force.
      Returns:
      roll angle expressed in radians.
    • getPitch

      public static double getPitch(BodyKinematics kinematics)
      Gets pitch angle of body attitude expressed in radians. This is based on expression (5.101) of Paul D. Groves. Principles of GNSS Inertial and multi-sensor integrated navigation systemd. 2nd ed.
      Parameters:
      kinematics - body kinematics containing measured body specific force.
      Returns:
      pitch angle expressed in radians.
    • getYaw

      public static double getYaw(BodyKinematics kinematics)
      Gets yaw angle of body attitude expressed in radians. This method can only be used for high-accuracy gyroscopes. otherwise, yaw angle must be measured using a magnetometer.
      Parameters:
      kinematics - body kinematics containing measured body specific force ang angular rates.
      Returns:
      yaw angle expressed in radians.
    • getAttitude

      public static void getAttitude(double fx, double fy, double fz, double angularRateX, double angularRateY, double angularRateZ, com.irurueta.navigation.frames.CoordinateTransformation result)
      Gets body attitude expressed in the local navigation frame.
      Parameters:
      fx - x-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      fy - y-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      fz - z-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      angularRateX - x-coordinate of body angular rate expressed in radians per second (rad/s).
      angularRateY - y-coordinate of body angular rate expressed in radians per second (rad/s).
      angularRateZ - z-coordinate of body angular rate expressed in radians per second (rad/s).
      result - instance where attitude will be stored.
    • getAttitude

      public static void getAttitude(BodyKinematics kinematics, com.irurueta.navigation.frames.CoordinateTransformation result)
      Gets body attitude expressed in the local navigation frame.
      Parameters:
      kinematics - body kinematics containing measured body specific force and angular rate.
      result - instance where attitude will be stored.
    • getAttitude

      public static com.irurueta.navigation.frames.CoordinateTransformation getAttitude(double fx, double fy, double fz, double angularRateX, double angularRateY, double angularRateZ)
      Gets body attitude expressed in the local navigation frame.
      Parameters:
      fx - x-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      fy - y-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      fz - z-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      angularRateX - x-coordinate of body angular rate expressed in radians per second (rad/s).
      angularRateY - y-coordinate of body angular rate expressed in radians per second (rad/s).
      angularRateZ - z-coordinate of body angular rate expressed in radians per second (rad/s).
      Returns:
      a coordinate transformation containing body attitude.
    • getAttitude

      public static com.irurueta.navigation.frames.CoordinateTransformation getAttitude(BodyKinematics kinematics)
      Gets body attitude expressed in the local navigation frame.
      Parameters:
      kinematics - body kinematics containing measured body specific force and angular rate.
      Returns:
      a coordinate transformation containing body attitude.
    • getRoll

      public static double getRoll(com.irurueta.units.Acceleration fy, com.irurueta.units.Acceleration fz)
      Gets roll angle of body attitude expressed in radians. This is based on expression (5.101) of Paul D. Groves. Principles of GNSS Inertial and multi-sensor integrated navigation systemd. 2nd ed.
      Parameters:
      fy - y-coordinate of measured body specific force.
      fz - z-coordinate of measured body specific force.
      Returns:
      roll angle expressed in radians.
    • getPitch

      public static double getPitch(com.irurueta.units.Acceleration fx, com.irurueta.units.Acceleration fy, com.irurueta.units.Acceleration fz)
      Gets pitch angle of body attitude expressed in radians. This is based on expression (5.101) of Paul D. Groves. Principles of GNSS Inertial and multi-sensor integrated navigation systemd. 2nd ed.
      Parameters:
      fx - x-coordinate of measured body specific force.
      fy - y-coordinate of measured body specific force.
      fz - z-coordinate of measured body specific force.
      Returns:
      pitch angle expressed in radians.
    • getYaw

      public static double getYaw(com.irurueta.units.Angle roll, com.irurueta.units.Angle pitch, com.irurueta.units.AngularSpeed angularRateX, com.irurueta.units.AngularSpeed angularRateY, com.irurueta.units.AngularSpeed angularRateZ)
      Gets yaw angle of body attitude expressed in radians. This method requires previously computed roll and pitch angles along with gyroscope measurements. This method can only be used for high-accuracy gyroscopes, otherwise, yaw angle must be measured using a magnetometer.
      Parameters:
      roll - previously computed roll angle.
      pitch - previously computed pitch angle.
      angularRateX - x-coordinate of body angular rate.
      angularRateY - y-coordinate of body angular rate.
      angularRateZ - z-coordinate of body angular rate.
      Returns:
      yaw angle expressed in radians.
    • getYaw

      public static double getYaw(com.irurueta.units.Acceleration fx, com.irurueta.units.Acceleration fy, com.irurueta.units.Acceleration fz, com.irurueta.units.AngularSpeed angularRateX, com.irurueta.units.AngularSpeed angularRateY, com.irurueta.units.AngularSpeed angularRateZ)
      Gets yaw angle of body attitude expressed in radians. This method can only be used for high-accuracy gyroscopes, otherwise, yaw angle must be measured using a magnetometer.
      Parameters:
      fx - x-coordinate of measured body specific force.
      fy - y-coordinate of measured body specific force.
      fz - z-coordinate of measured body specific force.
      angularRateX - x-coordinate of body angular rate.
      angularRateY - y-coordinate of body angular rate.
      angularRateZ - z-coordinate of body angular rate.
      Returns:
      yaw angle expressed in radians.
    • getAttitude

      public static void getAttitude(com.irurueta.units.Acceleration fx, com.irurueta.units.Acceleration fy, com.irurueta.units.Acceleration fz, com.irurueta.units.AngularSpeed angularRateX, com.irurueta.units.AngularSpeed angularRateY, com.irurueta.units.AngularSpeed angularRateZ, com.irurueta.navigation.frames.CoordinateTransformation result)
      Gets body attitude expressed in the local navigation frame.
      Parameters:
      fx - x-coordinate of measured body specific force.
      fy - y-coordinate of measured body specific force.
      fz - z-coordinate of measured body specific force.
      angularRateX - x-coordinate of body angular rate.
      angularRateY - y-coordinate of body angular rate.
      angularRateZ - z-coordinate of body angular rate.
      result - instance where attitude will be stored.
    • getAttitude

      public static com.irurueta.navigation.frames.CoordinateTransformation getAttitude(com.irurueta.units.Acceleration fx, com.irurueta.units.Acceleration fy, com.irurueta.units.Acceleration fz, com.irurueta.units.AngularSpeed angularRateX, com.irurueta.units.AngularSpeed angularRateY, com.irurueta.units.AngularSpeed angularRateZ)
      Gets body attitude expressed in the local navigation frame.
      Parameters:
      fx - x-coordinate of measured body specific force.
      fy - y-coordinate of measured body specific force.
      fz - z-coordinate of measured body specific force.
      angularRateX - x-coordinate of body angular rate.
      angularRateY - y-coordinate of body angular rate.
      angularRateZ - z-coordinate of body angular rate.
      Returns:
      a coordinate transformation containing body attitude.
    • getRollAsAngle

      public static void getRollAsAngle(double fy, double fz, com.irurueta.units.Angle result)
      Gets roll angle of body attitude expressed in radians. This is based on expression (5.101) of Paul D. Groves. Principles of GNSS Inertial and multi-sensor integrated navigation systemd. 2nd ed.
      Parameters:
      fy - y-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      fz - z-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      result - instance where roll angle will be stored.
    • getRollAsAngle

      public static com.irurueta.units.Angle getRollAsAngle(double fy, double fz)
      Gets roll angle of body attitude expressed in radians. This is based on expression (5.101) of Paul D. Groves. Principles of GNSS Inertial and multi-sensor integrated navigation systemd. 2nd ed.
      Parameters:
      fy - y-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      fz - z-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      Returns:
      roll angle.
    • getPitchAsAngle

      public static void getPitchAsAngle(double fx, double fy, double fz, com.irurueta.units.Angle result)
      Gets pitch angle of body attitude expressed in radians. This is based on expression (5.101) of Paul D. Groves. Principles of GNSS Inertial and multi-sensor integrated navigation systemd. 2nd ed.
      Parameters:
      fx - x-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      fy - y-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      fz - z-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      result - instance where pitch angle will be stored.
    • getPitchAsAngle

      public static com.irurueta.units.Angle getPitchAsAngle(double fx, double fy, double fz)
      Gets pitch angle of body attitude expressed in radians. This is based on expression (5.101) of Paul D. Groves. Principles of GNSS Inertial and multi-sensor integrated navigation systemd. 2nd ed.
      Parameters:
      fx - x-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      fy - y-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      fz - z-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      Returns:
      pitch angle.
    • getYawAsAngle

      public static void getYawAsAngle(double roll, double pitch, double angularRateX, double angularRateY, double angularRateZ, com.irurueta.units.Angle result)
      Gets yaw angle of body attitude expressed in radians. This method requires previously computed roll and pitch angles along with gyroscope measurements. This method can only be used for high-accuracy gyroscopes, otherwise, yaw angle must be measured using a magnetometer.
      Parameters:
      roll - previously computed roll angle expressed in radians.
      pitch - previously computed pitch angle expressed in radians.
      angularRateX - x-coordinate of body angular rate expressed in radians per second (rad/s).
      angularRateY - y-coordinate of body angular rate expressed in radians per second (rad/s).
      angularRateZ - z-coordinate of body angular rate expressed in radians per second (rad/s).
      result - instance where yaw angle will be stored.
    • getYawAsAngle

      public static com.irurueta.units.Angle getYawAsAngle(double roll, double pitch, double angularRateX, double angularRateY, double angularRateZ)
      Gets yaw angle of body attitude expressed in radians. This method requires previously computed roll and pitch angles along with gyroscope measurements. This method can only be used for high-accuracy gyroscopes, otherwise, yaw angle must be measured using a magnetometer.
      Parameters:
      roll - previously computed roll angle expressed in radians.
      pitch - previously computed pitch angle expressed in radians.
      angularRateX - x-coordinate of body angular rate expressed in radians per second (rad/s).
      angularRateY - y-coordinate of body angular rate expressed in radians per second (rad/s).
      angularRateZ - z-coordinate of body angular rate expressed in radians per second (rad/s).
      Returns:
      yaw angle.
    • getYawAsAngle

      public static void getYawAsAngle(double fx, double fy, double fz, double angularRateX, double angularRateY, double angularRateZ, com.irurueta.units.Angle result)
      Gets yaw angle of body attitude expressed in radians. This method can only be used for high-accuracy gyroscopes, otherwise, yaw angle must be measured using a magnetometer.
      Parameters:
      fx - x-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      fy - y-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      fz - z-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      angularRateX - x-coordinate of body angular rate expressed in radians per second (rad/s).
      angularRateY - y-coordinate of body angular rate expressed in radians per second (rad/s).
      angularRateZ - z-coordinate of body angular rate expressed in radians per second (rad/s).
      result - instance where yaw angle will be stored.
    • getYawAsAngle

      public static com.irurueta.units.Angle getYawAsAngle(double fx, double fy, double fz, double angularRateX, double angularRateY, double angularRateZ)
      Gets yaw angle of body attitude expressed in radians. This method can only be used for high-accuracy gyroscopes, otherwise, yaw angle must be measured using a magnetometer.
      Parameters:
      fx - x-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      fy - y-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      fz - z-coordinate of measured body specific force expressed in meters per squared second (m/s^2).
      angularRateX - x-coordinate of body angular rate expressed in radians per second (rad/s).
      angularRateY - y-coordinate of body angular rate expressed in radians per second (rad/s).
      angularRateZ - z-coordinate of body angular rate expressed in radians per second (rad/s).
      Returns:
      yaw angle.
    • getRollAsAngle

      public static void getRollAsAngle(BodyKinematics kinematics, com.irurueta.units.Angle result)
      Gets roll angle of body attitude expressed in radians. This is based on expression (5.101) of Paul D. Groves. Principles of GNSS Inertial and multi-sensor integrated navigation systemd. 2nd ed.
      Parameters:
      kinematics - body kinematics containing measured body specific force.
      result - instance where roll angle will be stored.
    • getRollAsAngle

      public static com.irurueta.units.Angle getRollAsAngle(BodyKinematics kinematics)
      Gets roll angle of body attitude expressed in radians. This is based on expression (5.101) of Paul D. Groves. Principles of GNSS Inertial and multi-sensor integrated navigation systemd. 2nd ed.
      Parameters:
      kinematics - body kinematics containing measured body specific force.
      Returns:
      roll angle.
    • getPitchAsAngle

      public static void getPitchAsAngle(BodyKinematics kinematics, com.irurueta.units.Angle result)
      Gets pitch angle of body attitude expressed in radians. This is based on expression (5.101) of Paul D. Groves. Principles of GNSS Inertial and multi-sensor integrated navigation systemd. 2nd ed.
      Parameters:
      kinematics - body kinematics containing measured body specific force.
      result - instance where pitch angle will be stored.
    • getPitchAsAngle

      public static com.irurueta.units.Angle getPitchAsAngle(BodyKinematics kinematics)
      Gets pitch angle of body attitude expressed in radians. This is based on expression (5.101) of Paul D. Groves. Principles of GNSS Inertial and multi-sensor integrated navigation systemd. 2nd ed.
      Parameters:
      kinematics - body kinematics containing measured body specific force.
      Returns:
      pitch angle.
    • getYawAsAngle

      public static void getYawAsAngle(BodyKinematics kinematics, com.irurueta.units.Angle result)
      Gets yaw angle of body attitude expressed in radians. This method can only be used for high-accuracy gyroscopes. otherwise, yaw angle must be measured using a magnetometer.
      Parameters:
      kinematics - body kinematics containing measured body specific force ang angular rates.
      result - instance where yaw angle will be stored.
    • getYawAsAngle

      public static com.irurueta.units.Angle getYawAsAngle(BodyKinematics kinematics)
      Gets yaw angle of body attitude expressed in radians. This method can only be used for high-accuracy gyroscopes. otherwise, yaw angle must be measured using a magnetometer.
      Parameters:
      kinematics - body kinematics containing measured body specific force ang angular rates.
      Returns:
      yaw angle.
    • getRollAsAngle

      public static void getRollAsAngle(com.irurueta.units.Acceleration fy, com.irurueta.units.Acceleration fz, com.irurueta.units.Angle result)
      Gets roll angle of body attitude expressed in radians. This is based on expression (5.101) of Paul D. Groves. Principles of GNSS Inertial and multi-sensor integrated navigation systemd. 2nd ed.
      Parameters:
      fy - y-coordinate of measured body specific force.
      fz - z-coordinate of measured body specific force.
      result - instance where roll angle will be stored.
    • getRollAsAngle

      public static com.irurueta.units.Angle getRollAsAngle(com.irurueta.units.Acceleration fy, com.irurueta.units.Acceleration fz)
      Gets roll angle of body attitude expressed in radians. This is based on expression (5.101) of Paul D. Groves. Principles of GNSS Inertial and multi-sensor integrated navigation systemd. 2nd ed.
      Parameters:
      fy - y-coordinate of measured body specific force.
      fz - z-coordinate of measured body specific force.
      Returns:
      roll angle.
    • getPitchAsAngle

      public static void getPitchAsAngle(com.irurueta.units.Acceleration fx, com.irurueta.units.Acceleration fy, com.irurueta.units.Acceleration fz, com.irurueta.units.Angle result)
      Gets pitch angle of body attitude expressed in radians. This is based on expression (5.101) of Paul D. Groves. Principles of GNSS Inertial and multi-sensor integrated navigation systemd. 2nd ed.
      Parameters:
      fx - x-coordinate of measured body specific force.
      fy - y-coordinate of measured body specific force.
      fz - z-coordinate of measured body specific force.
      result - instance where pitch angle will be stored.
    • getPitchAsAngle

      public static com.irurueta.units.Angle getPitchAsAngle(com.irurueta.units.Acceleration fx, com.irurueta.units.Acceleration fy, com.irurueta.units.Acceleration fz)
      Gets pitch angle of body attitude expressed in radians. This is based on expression (5.101) of Paul D. Groves. Principles of GNSS Inertial and multi-sensor integrated navigation systemd. 2nd ed.
      Parameters:
      fx - x-coordinate of measured body specific force.
      fy - y-coordinate of measured body specific force.
      fz - z-coordinate of measured body specific force.
      Returns:
      pitch angle.
    • getYawAsAngle

      public static void getYawAsAngle(com.irurueta.units.Angle roll, com.irurueta.units.Angle pitch, com.irurueta.units.AngularSpeed angularRateX, com.irurueta.units.AngularSpeed angularRateY, com.irurueta.units.AngularSpeed angularRateZ, com.irurueta.units.Angle result)
      Gets yaw angle of body attitude expressed in radians. This method requires previously computed roll and pitch angles along with gyroscope measurements. This method can only be used for high-accuracy gyroscopes, otherwise, yaw angle must be measured using a magnetometer.
      Parameters:
      roll - previously computed roll angle.
      pitch - previously computed pitch angle.
      angularRateX - x-coordinate of body angular rate.
      angularRateY - y-coordinate of body angular rate.
      angularRateZ - z-coordinate of body angular rate.
      result - instance where yaw angle will be stored.
    • getYawAsAngle

      public static com.irurueta.units.Angle getYawAsAngle(com.irurueta.units.Angle roll, com.irurueta.units.Angle pitch, com.irurueta.units.AngularSpeed angularRateX, com.irurueta.units.AngularSpeed angularRateY, com.irurueta.units.AngularSpeed angularRateZ)
      Gets yaw angle of body attitude expressed in radians. This method requires previously computed roll and pitch angles along with gyroscope measurements. This method can only be used for high-accuracy gyroscopes, otherwise, yaw angle must be measured using a magnetometer.
      Parameters:
      roll - previously computed roll angle.
      pitch - previously computed pitch angle.
      angularRateX - x-coordinate of body angular rate.
      angularRateY - y-coordinate of body angular rate.
      angularRateZ - z-coordinate of body angular rate.
      Returns:
      yaw angle.
    • getYawAsAngle

      public static void getYawAsAngle(com.irurueta.units.Acceleration fx, com.irurueta.units.Acceleration fy, com.irurueta.units.Acceleration fz, com.irurueta.units.AngularSpeed angularRateX, com.irurueta.units.AngularSpeed angularRateY, com.irurueta.units.AngularSpeed angularRateZ, com.irurueta.units.Angle result)
      Gets yaw angle of body attitude expressed in radians. This method can only be used for high-accuracy gyroscopes, otherwise, yaw angle must be measured using a magnetometer.
      Parameters:
      fx - x-coordinate of measured body specific force.
      fy - y-coordinate of measured body specific force.
      fz - z-coordinate of measured body specific force.
      angularRateX - x-coordinate of body angular rate.
      angularRateY - y-coordinate of body angular rate.
      angularRateZ - z-coordinate of body angular rate.
      result - instance where yaw angle will be stored.
    • getYawAsAngle

      public static com.irurueta.units.Angle getYawAsAngle(com.irurueta.units.Acceleration fx, com.irurueta.units.Acceleration fy, com.irurueta.units.Acceleration fz, com.irurueta.units.AngularSpeed angularRateX, com.irurueta.units.AngularSpeed angularRateY, com.irurueta.units.AngularSpeed angularRateZ)
      Gets yaw angle of body attitude expressed in radians. This method can only be used for high-accuracy gyroscopes, otherwise, yaw angle must be measured using a magnetometer.
      Parameters:
      fx - x-coordinate of measured body specific force.
      fy - y-coordinate of measured body specific force.
      fz - z-coordinate of measured body specific force.
      angularRateX - x-coordinate of body angular rate.
      angularRateY - y-coordinate of body angular rate.
      angularRateZ - z-coordinate of body angular rate.
      Returns:
      yaw angle.
    • convertAcceleration

      private static double convertAcceleration(com.irurueta.units.Acceleration acceleration)
      Converts an instance of acceleration to meters per squared second (m/s^2).
      Parameters:
      acceleration - acceleration instance to be converted.
      Returns:
      converted acceleration value.
    • convertAngularSpeed

      private static double convertAngularSpeed(com.irurueta.units.AngularSpeed angularSpeed)
      Converts an instance of angular speed to radians per second (rad/s).
      Parameters:
      angularSpeed - angular speed instance to be converted.
      Returns:
      converted angular speed value.
    • convertAngle

      private static double convertAngle(com.irurueta.units.Angle angle)
      Converts an instance of an angle to radians (rad).
      Parameters:
      angle - angle to be converted.
      Returns:
      converted angle value.