Class LevelingEstimator
java.lang.Object
com.irurueta.navigation.inertial.estimators.LevelingEstimator
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
ConstructorsModifierConstructorDescriptionprivate
Private constructor to prevent instantiation. -
Method Summary
Modifier and TypeMethodDescriptionprivate 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
getAttitude
(BodyKinematics kinematics) 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
getPitch
(BodyKinematics kinematics) 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
getPitchAsAngle
(BodyKinematics kinematics) 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
getRollAsAngle
(BodyKinematics kinematics) 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
getYawAsAngle
(BodyKinematics kinematics) 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.
-
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.
-
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.
-
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 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(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.
-