Class INSTightlyCoupledKalmanState

java.lang.Object
com.irurueta.navigation.inertial.INSTightlyCoupledKalmanState
All Implemented Interfaces:
Serializable, Cloneable

public class INSTightlyCoupledKalmanState extends Object implements Serializable, Cloneable
Kalman filter state for tightly coupled INS/GNSS extended Kalman filter.
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private double
    Estimated accelerometer bias resolved around x axis and expressed in meters per squared second (m/s^2).
    private double
    Estimated accelerometer bias resolved around y axis and expressed in meters per squared second (m/s^2).
    private double
    Estimated accelerometer bias resolved around z axis and expressed in meters per squared second (m/s^2).
    private com.irurueta.algebra.Matrix
    Estimated body to ECEF coordinate transformation matrix.
    private com.irurueta.algebra.Matrix
    Estimated Kalman filter error covariance matrix.
    private double
    Estimated gyroscope bias resolved around x axis and expressed in radians per second (rad/s).
    private double
    Estimated gyroscope bias resolved around y axis and expressed in radians per second (rad/s).
    private double
    Estimated gyroscope bias resolved around z axis and expressed in radians per second (rad/s).
    static final int
    Number of parameters of the Kalman filter.
    private double
    Estimated receiver clock drift expressed in meters per second (m/s).
    private double
    Estimated receiver clock offset expressed in meters (m).
    private static final long
    Serialization version.
    private double
    Estimated ECEF user velocity resolved around x axis and expressed in meters per second (m/s).
    private double
    Estimated ECEF user velocity resolved around y axis and expressed in meters per second (m/s).
    private double
    Estimated ECEF user velocity resolved around z axis and expressed in meters per second (m/s).
    private double
    X coordinate of estimated ECEF user position expressed in meters (m).
    private double
    Y coordinate of estimated ECEF user position expressed in meters (m).
    private double
    Z coordinate of estimated ECEF user position expressed in meters (m).
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructor.
    INSTightlyCoupledKalmanState(com.irurueta.algebra.Matrix bodyToEcefCoordinateTransformationMatrix, double vx, double vy, double vz, double x, double y, double z, double accelerationBiasX, double accelerationBiasY, double accelerationBiasZ, double gyroBiasX, double gyroBiasY, double gyroBiasZ, double receiverClockOffset, double receiverClockDrift, com.irurueta.algebra.Matrix covariance)
    Constructor.
    INSTightlyCoupledKalmanState(com.irurueta.algebra.Matrix bodyToEcefCoordinateTransformationMatrix, com.irurueta.navigation.frames.ECEFVelocity velocity, com.irurueta.navigation.frames.ECEFPosition position, double accelerationBiasX, double accelerationBiasY, double accelerationBiasZ, double gyroBiasX, double gyroBiasY, double gyroBiasZ, double receiverClockOffset, double receiverClockDrift, com.irurueta.algebra.Matrix covariance)
    Constructor.
    INSTightlyCoupledKalmanState(com.irurueta.algebra.Matrix bodyToEcefCoordinateTransformationMatrix, com.irurueta.navigation.frames.ECEFVelocity velocity, com.irurueta.navigation.frames.ECEFPosition position, com.irurueta.units.Acceleration accelerationBiasX, com.irurueta.units.Acceleration accelerationBiasY, com.irurueta.units.Acceleration accelerationBiasZ, com.irurueta.units.AngularSpeed gyroBiasX, com.irurueta.units.AngularSpeed gyroBiasY, com.irurueta.units.AngularSpeed gyroBiasZ, com.irurueta.units.Distance receiverClockOffset, com.irurueta.units.Speed receiverClockDrift, com.irurueta.algebra.Matrix covariance)
    Constructor.
    INSTightlyCoupledKalmanState(com.irurueta.algebra.Matrix bodyToEcefCoordinateTransformationMatrix, com.irurueta.navigation.gnss.ECEFPositionAndVelocity positionAndVelocity, double accelerationBiasX, double accelerationBiasY, double accelerationBiasZ, double gyroBiasX, double gyroBiasY, double gyroBiasZ, double receiverClockOffset, double receiverClockDrift, com.irurueta.algebra.Matrix covariance)
    Constructor.
    INSTightlyCoupledKalmanState(com.irurueta.algebra.Matrix bodyToEcefCoordinateTransformationMatrix, com.irurueta.navigation.gnss.ECEFPositionAndVelocity positionAndVelocity, com.irurueta.units.Acceleration accelerationBiasX, com.irurueta.units.Acceleration accelerationBiasY, com.irurueta.units.Acceleration accelerationBiasZ, com.irurueta.units.AngularSpeed gyroBiasX, com.irurueta.units.AngularSpeed gyroBiasY, com.irurueta.units.AngularSpeed gyroBiasZ, com.irurueta.units.Distance receiverClockOffset, com.irurueta.units.Speed receiverClockDrift, com.irurueta.algebra.Matrix covariance)
    Constructor.
    INSTightlyCoupledKalmanState(com.irurueta.algebra.Matrix bodyToEcefCoordinateTransformationMatrix, com.irurueta.units.Speed vx, com.irurueta.units.Speed vy, com.irurueta.units.Speed vz, com.irurueta.geometry.Point3D position, double accelerationBiasX, double accelerationBiasY, double accelerationBiasZ, double gyroBiasX, double gyroBiasY, double gyroBiasZ, double receiverClockOffset, double receiverClockDrift, com.irurueta.algebra.Matrix covariance)
    Constructor.
    INSTightlyCoupledKalmanState(com.irurueta.algebra.Matrix bodyToEcefCoordinateTransformationMatrix, com.irurueta.units.Speed vx, com.irurueta.units.Speed vy, com.irurueta.units.Speed vz, com.irurueta.geometry.Point3D position, com.irurueta.units.Acceleration accelerationBiasX, com.irurueta.units.Acceleration accelerationBiasY, com.irurueta.units.Acceleration accelerationBiasZ, com.irurueta.units.AngularSpeed gyroBiasX, com.irurueta.units.AngularSpeed gyroBiasY, com.irurueta.units.AngularSpeed gyroBiasZ, com.irurueta.units.Distance receiverClockOffset, com.irurueta.units.Speed receiverClockDrift, com.irurueta.algebra.Matrix covariance)
    Constructor.
    INSTightlyCoupledKalmanState(com.irurueta.algebra.Matrix bodyToEcefCoordinateTransformationMatrix, com.irurueta.units.Speed vx, com.irurueta.units.Speed vy, com.irurueta.units.Speed vz, com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z, double accelerationBiasX, double accelerationBiasY, double accelerationBiasZ, double gyroBiasX, double gyroBiasY, double gyroBiasZ, double receiverClockOffset, double receiverClockDrift, com.irurueta.algebra.Matrix covariance)
    Constructor.
    INSTightlyCoupledKalmanState(com.irurueta.algebra.Matrix bodyToEcefCoordinateTransformationMatrix, com.irurueta.units.Speed vx, com.irurueta.units.Speed vy, com.irurueta.units.Speed vz, com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z, com.irurueta.units.Acceleration accelerationBiasX, com.irurueta.units.Acceleration accelerationBiasY, com.irurueta.units.Acceleration accelerationBiasZ, com.irurueta.units.AngularSpeed gyroBiasX, com.irurueta.units.AngularSpeed gyroBiasY, com.irurueta.units.AngularSpeed gyroBiasZ, com.irurueta.units.Distance receiverClockOffset, com.irurueta.units.Speed receiverClockDrift, com.irurueta.algebra.Matrix covariance)
    Constructor.
    INSTightlyCoupledKalmanState(com.irurueta.navigation.frames.CoordinateTransformation c, com.irurueta.navigation.frames.ECEFVelocity velocity, com.irurueta.navigation.frames.ECEFPosition position, double accelerationBiasX, double accelerationBiasY, double accelerationBiasZ, double gyroBiasX, double gyroBiasY, double gyroBiasZ, double receiverClockOffset, double receiverClockDrift, com.irurueta.algebra.Matrix covariance)
    Constructor.
    INSTightlyCoupledKalmanState(com.irurueta.navigation.frames.CoordinateTransformation c, com.irurueta.navigation.frames.ECEFVelocity velocity, com.irurueta.navigation.frames.ECEFPosition position, com.irurueta.units.Acceleration accelerationBiasX, com.irurueta.units.Acceleration accelerationBiasY, com.irurueta.units.Acceleration accelerationBiasZ, com.irurueta.units.AngularSpeed gyroBiasX, com.irurueta.units.AngularSpeed gyroBiasY, com.irurueta.units.AngularSpeed gyroBiasZ, com.irurueta.units.Distance receiverClockOffset, com.irurueta.units.Speed receiverClockDrift, com.irurueta.algebra.Matrix covariance)
    Constructor.
    INSTightlyCoupledKalmanState(com.irurueta.navigation.frames.CoordinateTransformation c, com.irurueta.navigation.gnss.ECEFPositionAndVelocity positionAndVelocity, double accelerationBiasX, double accelerationBiasY, double accelerationBiasZ, double gyroBiasX, double gyroBiasY, double gyroBiasZ, double receiverClockOffset, double receiverClockDrift, com.irurueta.algebra.Matrix covariance)
    Constructor.
    INSTightlyCoupledKalmanState(com.irurueta.navigation.frames.CoordinateTransformation c, com.irurueta.navigation.gnss.ECEFPositionAndVelocity positionAndVelocity, com.irurueta.units.Acceleration accelerationBiasX, com.irurueta.units.Acceleration accelerationBiasY, com.irurueta.units.Acceleration accelerationBiasZ, com.irurueta.units.AngularSpeed gyroBiasX, com.irurueta.units.AngularSpeed gyroBiasY, com.irurueta.units.AngularSpeed gyroBiasZ, com.irurueta.units.Distance receiverClockOffset, com.irurueta.units.Speed receiverClockDrift, com.irurueta.algebra.Matrix covariance)
    Constructor.
    INSTightlyCoupledKalmanState(com.irurueta.navigation.frames.CoordinateTransformation c, com.irurueta.units.Speed vx, com.irurueta.units.Speed vy, com.irurueta.units.Speed vz, com.irurueta.geometry.Point3D position, double accelerationBiasX, double accelerationBiasY, double accelerationBiasZ, double gyroBiasX, double gyroBiasY, double gyroBiasZ, double receiverClockOffset, double receiverClockDrift, com.irurueta.algebra.Matrix covariance)
    Constructor.
    INSTightlyCoupledKalmanState(com.irurueta.navigation.frames.CoordinateTransformation c, com.irurueta.units.Speed vx, com.irurueta.units.Speed vy, com.irurueta.units.Speed vz, com.irurueta.geometry.Point3D position, com.irurueta.units.Acceleration accelerationBiasX, com.irurueta.units.Acceleration accelerationBiasY, com.irurueta.units.Acceleration accelerationBiasZ, com.irurueta.units.AngularSpeed gyroBiasX, com.irurueta.units.AngularSpeed gyroBiasY, com.irurueta.units.AngularSpeed gyroBiasZ, com.irurueta.units.Distance receiverClockOffset, com.irurueta.units.Speed receiverClockDrift, com.irurueta.algebra.Matrix covariance)
    Constructor.
    INSTightlyCoupledKalmanState(com.irurueta.navigation.frames.CoordinateTransformation c, com.irurueta.units.Speed vx, com.irurueta.units.Speed vy, com.irurueta.units.Speed vz, com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z, double accelerationBiasX, double accelerationBiasY, double accelerationBiasZ, double gyroBiasX, double gyroBiasY, double gyroBiasZ, double receiverClockOffset, double receiverClockDrift, com.irurueta.algebra.Matrix covariance)
    Constructor.
    INSTightlyCoupledKalmanState(com.irurueta.navigation.frames.CoordinateTransformation c, com.irurueta.units.Speed vx, com.irurueta.units.Speed vy, com.irurueta.units.Speed vz, com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z, com.irurueta.units.Acceleration accelerationBiasX, com.irurueta.units.Acceleration accelerationBiasY, com.irurueta.units.Acceleration accelerationBiasZ, com.irurueta.units.AngularSpeed gyroBiasX, com.irurueta.units.AngularSpeed gyroBiasY, com.irurueta.units.AngularSpeed gyroBiasZ, com.irurueta.units.Distance receiverClockOffset, com.irurueta.units.Speed receiverClockDrift, com.irurueta.algebra.Matrix covariance)
    Constructor.
    INSTightlyCoupledKalmanState(com.irurueta.navigation.frames.ECEFFrame frame, double accelerationBiasX, double accelerationBiasY, double accelerationBiasZ, double gyroBiasX, double gyroBiasY, double gyroBiasZ, double receiverClockOffset, double receiverClockDrift, com.irurueta.algebra.Matrix covariance)
    Constructor.
    INSTightlyCoupledKalmanState(com.irurueta.navigation.frames.ECEFFrame frame, com.irurueta.units.Acceleration accelerationBiasX, com.irurueta.units.Acceleration accelerationBiasY, com.irurueta.units.Acceleration accelerationBiasZ, com.irurueta.units.AngularSpeed gyroBiasX, com.irurueta.units.AngularSpeed gyroBiasY, com.irurueta.units.AngularSpeed gyroBiasZ, com.irurueta.units.Distance receiverClockOffset, com.irurueta.units.Speed receiverClockDrift, com.irurueta.algebra.Matrix covariance)
    Constructor.
    Copy constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected Object
    Makes a copy of this instance.
    void
    Copies data of provided instance into this instance.
    void
    Copies this instance data into provided instance.
    boolean
    Checks if provided instance has exactly the same contents as this instance.
    boolean
    equals(INSTightlyCoupledKalmanState other, double threshold)
    Checks if provided instance has contents similar to this instance up to provided threshold value.
    boolean
    Checks if provided object is a INSTightlyCoupledKalmanState having exactly the same contents as this instance.
    double
    Gets estimated accelerometer bias resolved around x axis and expressed in meters per squared second (m/s^2).
    com.irurueta.units.Acceleration
    Gets estimated accelerometer bias resolved around x axis.
    void
    getAccelerationBiasXAsAcceleration(com.irurueta.units.Acceleration result)
    Gets estimated accelerometer bias resolved around x axis.
    double
    Gets estimated accelerometer bias resolved around y axis and expressed in meters per squared second (m/s^2).
    com.irurueta.units.Acceleration
    Gets estimated accelerometer bias resolved around y axis.
    void
    getAccelerationBiasYAsAcceleration(com.irurueta.units.Acceleration result)
    Gets estimated accelerometer bias resolved around y axis.
    double
    Gets estimated accelerometer bias resolved around z axis and expressed in meters per squared second (m/s^2).
    com.irurueta.units.Acceleration
    Gets estimated accelerometer bias resolved around z axis.
    void
    getAccelerationBiasZAsAcceleration(com.irurueta.units.Acceleration result)
    Gets estimated accelerometer bias resolved around z axis.
    com.irurueta.units.AngularSpeed
    Gets estimated gyroscope bias resolved around x axis.
    void
    getAngularSpeedGyroBiasX(com.irurueta.units.AngularSpeed result)
    Gets estimated gyroscope bias resolved around x axis.
    com.irurueta.units.AngularSpeed
    Gets estimated gyroscope bias resolved around y axis.
    void
    getAngularSpeedGyroBiasY(com.irurueta.units.AngularSpeed result)
    Gets estimated gyroscope bias resolved around y axis.
    com.irurueta.units.AngularSpeed
    Gets estimated gyroscope bias resolved around z axis.
    void
    getAngularSpeedGyroBiasZ(com.irurueta.units.AngularSpeed result)
    Gets estimated gyroscope bias resolved around z axis.
    com.irurueta.algebra.Matrix
    Gets estimated body to ECEF coordinate transformation matrix.
    com.irurueta.navigation.frames.CoordinateTransformation
    Gets body to ECEF coordinate transformation.
    com.irurueta.navigation.frames.CoordinateTransformation
    getC(double threshold)
    Gets body to ECEF coordinate transformation.
    boolean
    getC(com.irurueta.navigation.frames.CoordinateTransformation result)
    Gets body to ECEF coordinate transformation.
    boolean
    getC(com.irurueta.navigation.frames.CoordinateTransformation result, double threshold)
    Gets body to ECEF coordinate transformation.
    com.irurueta.algebra.Matrix
    Gets Kalman filter error covariance matrix.
    boolean
    getCovariance(com.irurueta.algebra.Matrix result)
    Gets Kalman filter error covariance matrix.
    com.irurueta.units.Distance
    Gets x coordinate of estimated ECEF user position.
    void
    getDistanceX(com.irurueta.units.Distance result)
    Gets x coordinate of estimated ECEF user position.
    com.irurueta.units.Distance
    Gets y coordinate of estimated ECEF user position.
    void
    getDistanceY(com.irurueta.units.Distance result)
    Gets y coordinate of estimated ECEF user position.
    com.irurueta.units.Distance
    Gets z coordinate of estimated ECEF user position.
    void
    getDistanceZ(com.irurueta.units.Distance result)
    Gets z coordinate of estimated ECEF user position.
    com.irurueta.navigation.frames.ECEFPosition
    Gets estimated ECEF user position.
    void
    getEcefPosition(com.irurueta.navigation.frames.ECEFPosition result)
    Gets estimated ECEF user position.
    com.irurueta.navigation.frames.ECEFVelocity
    Gets estimated ECEF user velocity.
    void
    getEcefVelocity(com.irurueta.navigation.frames.ECEFVelocity result)
    Gets estimated ECEF user velocity.
    com.irurueta.navigation.frames.ECEFFrame
    Gets body to ECEF frame containing coordinate transformation, position and velocity.
    boolean
    getFrame(com.irurueta.navigation.frames.ECEFFrame result)
    Gets body to ECEF frame containing coordinate transformation, position and velocity.
    com.irurueta.navigation.gnss.GNSSEstimation
    Gets GNSS estimation from data contained into this instance.
    void
    getGNSSEstimation(com.irurueta.navigation.gnss.GNSSEstimation result)
    Gets GNSS estimation from data contained into this instance.
    double
    Gets estimated gyroscope bias resolved around x axis and expressed in radians per second (rad/s).
    double
    Gets estimated gyroscope bias resolved around y axis and expressed in radians per second (rad/s).
    double
    Gets estimated gyroscope bias resolved around z axis and expressed in radians per second (rad/s).
    com.irurueta.geometry.Point3D
    Gets estimated ECEF user position expressed in meters (m).
    void
    getPosition(com.irurueta.geometry.Point3D result)
    Gets estimated ECEF user position expressed in meters (m).
    com.irurueta.navigation.gnss.ECEFPositionAndVelocity
    Gets estimated ECEF user position and velocity.
    void
    getPositionAndVelocity(com.irurueta.navigation.gnss.ECEFPositionAndVelocity result)
    Gets estimated ECEF user position and velocity.
    double
    Gets estimated receiver clock drift expressed in meters per second (m/s).
    com.irurueta.units.Speed
    Gets estimated receiver clock drift.
    void
    getReceiverClockDriftAsSpeed(com.irurueta.units.Speed result)
    Gets estimated receiver clock drift.
    double
    Gets estimated receiver clock offset expressed in meters (m).
    com.irurueta.units.Distance
    Gets estimated receiver clock offset.
    void
    getReceiverClockOffsetAsDistance(com.irurueta.units.Distance result)
    Gets estimated receiver clock offset.
    com.irurueta.units.Speed
    Gets estimated ECEF user velocity resolved around x axis.
    void
    getSpeedX(com.irurueta.units.Speed result)
    Gets estimated ECEF user velocity resolved around x axis.
    com.irurueta.units.Speed
    Gets estimated ECEF user velocity resolved around y axis.
    void
    getSpeedY(com.irurueta.units.Speed result)
    Gets estimated ECEF user velocity resolved around y axis.
    com.irurueta.units.Speed
    Gets estimated ECEF user velocity resolved around z axis.
    void
    getSpeedZ(com.irurueta.units.Speed result)
    Gets estimated ECEF user velocity resolved around z axis.
    double
    Gets estimated ECEF user velocity resolved around x axis and expressed in meters per second (m/s).
    double
    Gets estimated ECEF user velocity resolved around y axis and expressed in meters per second (m/s).
    double
    Gets estimated ECEF user velocity resolved around z axis and expressed in meters per second (m/s).
    double
    Gets x coordinate of estimated ECEF user position expressed in meters (m).
    double
    Gets y coordinate of estimated ECEF user position expressed in meters (m).
    double
    Gets z coordinate of estimated ECEF user position expressed in meters (m).
    int
    Computes and returns hash code for this instance.
    void
    setAccelerationBiasCoordinates(double accelerationBiasX, double accelerationBiasY, double accelerationBiasZ)
    Sets estimated accelerometer bias expressed in meters per squared second (m/s^2).
    void
    setAccelerationBiasCoordinates(com.irurueta.units.Acceleration accelerationBiasX, com.irurueta.units.Acceleration accelerationBiasY, com.irurueta.units.Acceleration accelerationBiasZ)
    Sets estimated accelerometer bias coordinates.
    void
    setAccelerationBiasX(double accelerationBiasX)
    Sets estimated accelerometer bias resolved around x axis and expressed in meters per squared second (m/s^2).
    void
    setAccelerationBiasX(com.irurueta.units.Acceleration accelerationBiasX)
    Sets estimated accelerometer bias resolved around x axis.
    void
    setAccelerationBiasY(double accelerationBiasY)
    Sets estimated accelerometer bias resolved around y axis and expressed in meters per squared second (m/s^2).
    void
    setAccelerationBiasY(com.irurueta.units.Acceleration accelerationBiasY)
    Sets estimated accelerometer bias resolved around y axis.
    void
    setAccelerationBiasZ(double accelerationBiasZ)
    Sets estimated accelerometer bias resolved around z axis and expressed in meters per squared second (m/s^2).
    void
    setAccelerationBiasZ(com.irurueta.units.Acceleration accelerationBiasZ)
    Sets estimated accelerometer bias resolved around z axis.
    void
    setBodyToEcefCoordinateTransformationMatrix(com.irurueta.algebra.Matrix bodyToEcefCoordinateTransformationMatrix)
    Sets estimated body to ECEF coordinate transformation matrix.
    void
    setC(com.irurueta.navigation.frames.CoordinateTransformation c)
    Sets body to ECEF coordinate transformation.
    void
    setCovariance(com.irurueta.algebra.Matrix covariance)
    Sets Kalman filter error covariance matrix.
    void
    setDistanceX(com.irurueta.units.Distance x)
    Sets x coordinate of estimated ECEF user position.
    void
    setDistanceY(com.irurueta.units.Distance y)
    Sets y coordinate of estimated ECEF user position.
    void
    setDistanceZ(com.irurueta.units.Distance z)
    Sets z coordinate of estimated ECEF user position.
    void
    setEcefPosition(com.irurueta.navigation.frames.ECEFPosition ecefPosition)
    Sets estimated ECEF user position.
    void
    setEcefVelocity(com.irurueta.navigation.frames.ECEFVelocity ecefVelocity)
    Sets estimated ECEF user velocity.
    void
    setFrame(com.irurueta.navigation.frames.ECEFFrame frame)
    Sets body to ECEF frame containing coordinate transformation, position and velocity.
    void
    setGNSSEstimation(com.irurueta.navigation.gnss.GNSSEstimation gnssEstimation)
    Sets GNSS estimation data into this instance.
    void
    setGyroBiasCoordinates(double gyroBiasX, double gyroBiasY, double gyroBiasZ)
    Sets estimated gyroscope bias coordinates expressed in radians per second (rad/s).
    void
    setGyroBiasCoordinates(com.irurueta.units.AngularSpeed gyroBiasX, com.irurueta.units.AngularSpeed gyroBiasY, com.irurueta.units.AngularSpeed gyroBiasZ)
    Sets estimated gyroscope bias coordinates.
    void
    setGyroBiasX(double gyroBiasX)
    Sets estimated gyroscope bias resolved around x axis and expressed in radians per second (rad/s).
    void
    setGyroBiasX(com.irurueta.units.AngularSpeed gyroBiasX)
    Sets estimated gyroscope bias resolved around x axis.
    void
    setGyroBiasY(double gyroBiasY)
    Sets estimated gyroscope bias resolved around y axis and expressed in radians per second (rad/s).
    void
    setGyroBiasY(com.irurueta.units.AngularSpeed gyroBiasY)
    Sets estimated gyroscope bias resolved around y axis.
    void
    setGyroBiasZ(double gyroBiasZ)
    Sets estimated gyroscope bias resolved around z axis and expressed in radians per second (rad/s).
    void
    setGyroBiasZ(com.irurueta.units.AngularSpeed gyroBiasZ)
    Sets estimated gyroscope bias resolved around z axis.
    void
    setPosition(com.irurueta.geometry.Point3D position)
    Sets estimated ECEF user position expressed in meters (m).
    void
    setPositionAndVelocity(com.irurueta.navigation.gnss.ECEFPositionAndVelocity positionAndVelocity)
    Sets estimated ECEF user position and velocity.
    void
    setPositionCoordinates(double x, double y, double z)
    Sets estimated ECEF user position coordinates.
    void
    setPositionCoordinates(com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z)
    Sets coordinates of estimated ECEF user position.
    void
    setReceiverClockDrift(double receiverClockDrift)
    Sets estimated receiver clock drift expressed in meters per second (m/s).
    void
    setReceiverClockDrift(com.irurueta.units.Speed receiverClockDrift)
    Sets estimated receiver clock drift.
    void
    setReceiverClockOffset(double receiverClockOffset)
    Sets estimated receiver clock offset expressed in meters (m).
    void
    setReceiverClockOffset(com.irurueta.units.Distance receiverClockOffset)
    Sets estimated receiver clock offset.
    void
    setSpeedX(com.irurueta.units.Speed vx)
    Sets estimated ECEF user velocity resolved around x axis.
    void
    setSpeedY(com.irurueta.units.Speed vy)
    Sets estimated ECEF user velocity resolved around y axis.
    void
    setSpeedZ(com.irurueta.units.Speed vz)
    Sets estimated ECEF user velocity resolved around z axis.
    void
    setVelocityCoordinates(double vx, double vy, double vz)
    Sets estimated ECEF user velocity coordinates.
    void
    setVelocityCoordinates(com.irurueta.units.Speed vx, com.irurueta.units.Speed vy, com.irurueta.units.Speed vz)
    Sets estimated ECEF user velocity.
    void
    setVx(double vx)
    Sets estimated ECEF user velocity resolved around x axis and expressed in meters per second (m/s).
    void
    setVy(double vy)
    Sets estimated ECEF user velocity resolved around y axis and expressed in meters per second (m/s).
    void
    setVz(double vz)
    Sets estimated ECEF user velocity resolved around z axis and expressed in meters per second (m/s).
    void
    setX(double x)
    Sets x coordinate of estimated ECEF user position expressed in meters (m).
    void
    setY(double y)
    Sets y coordinate of estimated ECEF user position expressed in meters (m).
    void
    setZ(double z)
    Sets z coordinate of estimated ECEF user position expressed in meters (m).

    Methods inherited from class java.lang.Object

    finalize, getClass, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • NUM_PARAMS

      public static final int NUM_PARAMS
      Number of parameters of the Kalman filter.
      See Also:
    • serialVersionUID

      private static final long serialVersionUID
      Serialization version. This is used to ensure compatibility of deserialization of permanently stored serialized instances.
      See Also:
    • bodyToEcefCoordinateTransformationMatrix

      private com.irurueta.algebra.Matrix bodyToEcefCoordinateTransformationMatrix
      Estimated body to ECEF coordinate transformation matrix.
    • vx

      private double vx
      Estimated ECEF user velocity resolved around x axis and expressed in meters per second (m/s).
    • vy

      private double vy
      Estimated ECEF user velocity resolved around y axis and expressed in meters per second (m/s).
    • vz

      private double vz
      Estimated ECEF user velocity resolved around z axis and expressed in meters per second (m/s).
    • x

      private double x
      X coordinate of estimated ECEF user position expressed in meters (m).
    • y

      private double y
      Y coordinate of estimated ECEF user position expressed in meters (m).
    • z

      private double z
      Z coordinate of estimated ECEF user position expressed in meters (m).
    • accelerationBiasX

      private double accelerationBiasX
      Estimated accelerometer bias resolved around x axis and expressed in meters per squared second (m/s^2).
    • accelerationBiasY

      private double accelerationBiasY
      Estimated accelerometer bias resolved around y axis and expressed in meters per squared second (m/s^2).
    • accelerationBiasZ

      private double accelerationBiasZ
      Estimated accelerometer bias resolved around z axis and expressed in meters per squared second (m/s^2).
    • gyroBiasX

      private double gyroBiasX
      Estimated gyroscope bias resolved around x axis and expressed in radians per second (rad/s).
    • gyroBiasY

      private double gyroBiasY
      Estimated gyroscope bias resolved around y axis and expressed in radians per second (rad/s).
    • gyroBiasZ

      private double gyroBiasZ
      Estimated gyroscope bias resolved around z axis and expressed in radians per second (rad/s).
    • receiverClockOffset

      private double receiverClockOffset
      Estimated receiver clock offset expressed in meters (m).
    • receiverClockDrift

      private double receiverClockDrift
      Estimated receiver clock drift expressed in meters per second (m/s).
    • covariance

      private com.irurueta.algebra.Matrix covariance
      Estimated Kalman filter error covariance matrix. Notice that covariance is expressed in terms of ECEF coordinates. If accuracy of position, attitude or velocity needs to be expressed in terms of NED coordinates, their respective sub-matrices of this covariance matrix must be rotated, taking into account the Jacobian of the matrix transformation relating both coordinates, the covariance can be expressed following the law of propagation of uncertainties (https://en.wikipedia.org/wiki/Propagation_of_uncertainty) as: cov(f(x)) = J*cov(x)*J'.
  • Constructor Details

    • INSTightlyCoupledKalmanState

      public INSTightlyCoupledKalmanState()
      Constructor.
    • INSTightlyCoupledKalmanState

      public INSTightlyCoupledKalmanState(com.irurueta.algebra.Matrix bodyToEcefCoordinateTransformationMatrix, double vx, double vy, double vz, double x, double y, double z, double accelerationBiasX, double accelerationBiasY, double accelerationBiasZ, double gyroBiasX, double gyroBiasY, double gyroBiasZ, double receiverClockOffset, double receiverClockDrift, com.irurueta.algebra.Matrix covariance)
      Constructor.
      Parameters:
      bodyToEcefCoordinateTransformationMatrix - estimated body to ECEF coordinate transformation matrix.
      vx - estimated ECEF user velocity resolved around x axis and expressed in meters per second (m/s).
      vy - estimated ECEF user velocity resolved around y axis and expressed in meters per second (m/s).
      vz - estimated ECEF user velocity resolved around z axis and expressed in meters per second (m/s).
      x - x coordinate of estimated ECEF user position expressed in meters (m).
      y - y coordinate of estimated ECEF user position expressed in meters (m).
      z - z coordinate of estimated ECEF user position expressed in meters (m).
      accelerationBiasX - estimated accelerometer bias resolved around x axis and expressed in meters per squared second (m/s^2).
      accelerationBiasY - estimated accelerometer bias resolved around y axis and expressed in meters per squared second (m/s^2).
      accelerationBiasZ - estimated accelerometer bias resolved around z axis and expressed in meters per squared second (m/s^2).
      gyroBiasX - estimated gyroscope bias resolved around x axis and expressed in radians per second (rad/s).
      gyroBiasY - estimated gyroscope bias resolved around y axis and expressed in radians per second (rad/s).
      gyroBiasZ - estimated gyroscope bias resolved around z axis and expressed in radians per second (rad/s).
      receiverClockOffset - estimated receiver clock offset expressed in meters (m).
      receiverClockDrift - estimated receiver clock drift expressed in meters per second (m/s).
      covariance - estimated Kalman filter error covariance matrix.
      Throws:
      IllegalArgumentException - if provided body to ECEF coordinate transformation matrix is not 3x3 or if provided covariance matrix is not 17x17.
    • INSTightlyCoupledKalmanState

      public INSTightlyCoupledKalmanState(com.irurueta.navigation.frames.CoordinateTransformation c, com.irurueta.units.Speed vx, com.irurueta.units.Speed vy, com.irurueta.units.Speed vz, com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z, double accelerationBiasX, double accelerationBiasY, double accelerationBiasZ, double gyroBiasX, double gyroBiasY, double gyroBiasZ, double receiverClockOffset, double receiverClockDrift, com.irurueta.algebra.Matrix covariance)
      Constructor.
      Parameters:
      c - body to ECEF coordinate transformation.
      vx - estimated ECEF user velocity resolved around x axis.
      vy - estimated ECEF user velocity resolved around y axis.
      vz - estimated ECEF user velocity resolved around z axis.
      x - x coordinate of estimated ECEF user position.
      y - y coordinate of estimated ECEF user position.
      z - z coordinate of estimated ECEF user position.
      accelerationBiasX - estimated accelerometer bias resolved around x axis and expressed in meters per squared second (m/s^2).
      accelerationBiasY - estimated accelerometer bias resolved around y axis and expressed in meters per squared second (m/s^2).
      accelerationBiasZ - estimated accelerometer bias resolved around z axis and expressed in meters per squared second (m/s^2).
      gyroBiasX - estimated gyroscope bias resolved around x axis and expressed in radians per second (rad/s).
      gyroBiasY - estimated gyroscope bias resolved around y axis and expressed in radians per second (rad/s).
      gyroBiasZ - estimated gyroscope bias resolved around z axis and expressed in radians per second (rad/s).
      receiverClockOffset - estimated receiver clock offset expressed in meters (m).
      receiverClockDrift - estimated receiver clock drift expressed in meters per second (m/s).
      covariance - estimated Kalman filter error covariance matrix.
      Throws:
      IllegalArgumentException - if provided covariance matrix is not 17x17.
    • INSTightlyCoupledKalmanState

      public INSTightlyCoupledKalmanState(com.irurueta.navigation.frames.CoordinateTransformation c, com.irurueta.units.Speed vx, com.irurueta.units.Speed vy, com.irurueta.units.Speed vz, com.irurueta.geometry.Point3D position, double accelerationBiasX, double accelerationBiasY, double accelerationBiasZ, double gyroBiasX, double gyroBiasY, double gyroBiasZ, double receiverClockOffset, double receiverClockDrift, com.irurueta.algebra.Matrix covariance)
      Constructor.
      Parameters:
      c - body to ECEF coordinate transformation.
      vx - estimated ECEF user velocity resolved around x axis.
      vy - estimated ECEF user velocity resolved around y axis.
      vz - estimated ECEF user velocity resolved around z axis.
      position - estimated ECEF user position.
      accelerationBiasX - estimated accelerometer bias resolved around x axis and expressed in meters per squared second (m/s^2).
      accelerationBiasY - estimated accelerometer bias resolved around y axis and expressed in meters per squared second (m/s^2).
      accelerationBiasZ - estimated accelerometer bias resolved around z axis and expressed in meters per squared second (m/s^2).
      gyroBiasX - estimated gyroscope bias resolved around x axis and expressed in radians per second (rad/s).
      gyroBiasY - estimated gyroscope bias resolved around y axis and expressed in radians per second (rad/s).
      gyroBiasZ - estimated gyroscope bias resolved around z axis and expressed in radians per second (rad/s).
      receiverClockOffset - estimated receiver clock offset expressed in meters (m).
      receiverClockDrift - estimated receiver clock drift expressed in meters per second (m/s).
      covariance - estimated Kalman filter error covariance matrix.
      Throws:
      IllegalArgumentException - if provided covariance matrix is not 17x17.
    • INSTightlyCoupledKalmanState

      public INSTightlyCoupledKalmanState(com.irurueta.navigation.frames.CoordinateTransformation c, com.irurueta.navigation.frames.ECEFVelocity velocity, com.irurueta.navigation.frames.ECEFPosition position, double accelerationBiasX, double accelerationBiasY, double accelerationBiasZ, double gyroBiasX, double gyroBiasY, double gyroBiasZ, double receiverClockOffset, double receiverClockDrift, com.irurueta.algebra.Matrix covariance)
      Constructor.
      Parameters:
      c - body to ECEF coordinate transformation.
      velocity - estimated ECEF user velocity.
      position - estimated ECEF user position.
      accelerationBiasX - estimated accelerometer bias resolved around x axis and expressed in meters per squared second (m/s^2).
      accelerationBiasY - estimated accelerometer bias resolved around y axis and expressed in meters per squared second (m/s^2).
      accelerationBiasZ - estimated accelerometer bias resolved around z axis and expressed in meters per squared second (m/s^2).
      gyroBiasX - estimated gyroscope bias resolved around x axis and expressed in radians per second (rad/s).
      gyroBiasY - estimated gyroscope bias resolved around y axis and expressed in radians per second (rad/s).
      gyroBiasZ - estimated gyroscope bias resolved around z axis and expressed in radians per second (rad/s).
      receiverClockOffset - estimated receiver clock offset expressed in meters (m).
      receiverClockDrift - estimated receiver clock drift expressed in meters per second (m/s).
      covariance - estimated Kalman filter error covariance matrix.
      Throws:
      IllegalArgumentException - if provided covariance matrix is not 17x17.
    • INSTightlyCoupledKalmanState

      public INSTightlyCoupledKalmanState(com.irurueta.navigation.frames.CoordinateTransformation c, com.irurueta.navigation.gnss.ECEFPositionAndVelocity positionAndVelocity, double accelerationBiasX, double accelerationBiasY, double accelerationBiasZ, double gyroBiasX, double gyroBiasY, double gyroBiasZ, double receiverClockOffset, double receiverClockDrift, com.irurueta.algebra.Matrix covariance)
      Constructor.
      Parameters:
      c - body to ECEF coordinate transformation.
      positionAndVelocity - estimated ECEF user velocity and position.
      accelerationBiasX - estimated accelerometer bias resolved around x axis and expressed in meters per squared second (m/s^2).
      accelerationBiasY - estimated accelerometer bias resolved around y axis and expressed in meters per squared second (m/s^2).
      accelerationBiasZ - estimated accelerometer bias resolved around z axis and expressed in meters per squared second (m/s^2).
      gyroBiasX - estimated gyroscope bias resolved around x axis and expressed in radians per second (rad/s).
      gyroBiasY - estimated gyroscope bias resolved around y axis and expressed in radians per second (rad/s).
      gyroBiasZ - estimated gyroscope bias resolved around z axis and expressed in radians per second (rad/s).
      receiverClockOffset - estimated receiver clock offset expressed in meters (m).
      receiverClockDrift - estimated receiver clock drift expressed in meters per second (m/s).
      covariance - estimated Kalman filter error covariance matrix.
      Throws:
      IllegalArgumentException - if provided covariance matrix is not 17x17.
    • INSTightlyCoupledKalmanState

      public INSTightlyCoupledKalmanState(com.irurueta.navigation.frames.ECEFFrame frame, double accelerationBiasX, double accelerationBiasY, double accelerationBiasZ, double gyroBiasX, double gyroBiasY, double gyroBiasZ, double receiverClockOffset, double receiverClockDrift, com.irurueta.algebra.Matrix covariance)
      Constructor.
      Parameters:
      frame - estimated user ECEF frame.
      accelerationBiasX - estimated accelerometer bias resolved around x axis and expressed in meters per squared second (m/s^2).
      accelerationBiasY - estimated accelerometer bias resolved around y axis and expressed in meters per squared second (m/s^2).
      accelerationBiasZ - estimated accelerometer bias resolved around z axis and expressed in meters per squared second (m/s^2).
      gyroBiasX - estimated gyroscope bias resolved around x axis and expressed in radians per second (rad/s).
      gyroBiasY - estimated gyroscope bias resolved around y axis and expressed in radians per second (rad/s).
      gyroBiasZ - estimated gyroscope bias resolved around z axis and expressed in radians per second (rad/s).
      receiverClockOffset - estimated receiver clock offset expressed in meters (m).
      receiverClockDrift - estimated receiver clock drift expressed in meters per second (m/s).
      covariance - estimated Kalman filter error covariance .
      Throws:
      IllegalArgumentException - if provided covariance matrix is not 17x17.
    • INSTightlyCoupledKalmanState

      public INSTightlyCoupledKalmanState(com.irurueta.navigation.frames.CoordinateTransformation c, com.irurueta.units.Speed vx, com.irurueta.units.Speed vy, com.irurueta.units.Speed vz, com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z, com.irurueta.units.Acceleration accelerationBiasX, com.irurueta.units.Acceleration accelerationBiasY, com.irurueta.units.Acceleration accelerationBiasZ, com.irurueta.units.AngularSpeed gyroBiasX, com.irurueta.units.AngularSpeed gyroBiasY, com.irurueta.units.AngularSpeed gyroBiasZ, com.irurueta.units.Distance receiverClockOffset, com.irurueta.units.Speed receiverClockDrift, com.irurueta.algebra.Matrix covariance)
      Constructor.
      Parameters:
      c - body to ECEF coordinate transformation.
      vx - estimated ECEF user velocity resolved around x axis.
      vy - estimated ECEF user velocity resolved around y axis.
      vz - estimated ECEF user velocity resolved around z axis.
      x - x coordinate of estimated ECEF user position.
      y - y coordinate of estimated ECEF user position.
      z - z coordinate of estimated ECEF user position.
      accelerationBiasX - estimated accelerometer bias resolved around x axis.
      accelerationBiasY - estimated accelerometer bias resolved around y axis.
      accelerationBiasZ - estimated accelerometer bias resolved around z axis.
      gyroBiasX - estimated gyroscope bias resolved around x axis.
      gyroBiasY - estimated gyroscope bias resolved around y axis.
      gyroBiasZ - estimated gyroscope bias resolved around z axis.
      receiverClockOffset - estimated receiver clock offset.
      receiverClockDrift - estimated receiver clock drift.
      covariance - estimated Kalman filter error covariance matrix.
      Throws:
      IllegalArgumentException - if provided covariance matrix is not 17x17.
    • INSTightlyCoupledKalmanState

      public INSTightlyCoupledKalmanState(com.irurueta.navigation.frames.CoordinateTransformation c, com.irurueta.units.Speed vx, com.irurueta.units.Speed vy, com.irurueta.units.Speed vz, com.irurueta.geometry.Point3D position, com.irurueta.units.Acceleration accelerationBiasX, com.irurueta.units.Acceleration accelerationBiasY, com.irurueta.units.Acceleration accelerationBiasZ, com.irurueta.units.AngularSpeed gyroBiasX, com.irurueta.units.AngularSpeed gyroBiasY, com.irurueta.units.AngularSpeed gyroBiasZ, com.irurueta.units.Distance receiverClockOffset, com.irurueta.units.Speed receiverClockDrift, com.irurueta.algebra.Matrix covariance)
      Constructor.
      Parameters:
      c - body to ECEF coordinate transformation.
      vx - estimated ECEF user velocity resolved around x axis.
      vy - estimated ECEF user velocity resolved around y axis.
      vz - estimated ECEF user velocity resolved around z axis.
      position - estimated ECEF user position expressed in meters (m).
      accelerationBiasX - estimated accelerometer bias resolved around x axis.
      accelerationBiasY - estimated accelerometer bias resolved around y axis.
      accelerationBiasZ - estimated accelerometer bias resolved around z axis.
      gyroBiasX - estimated gyroscope bias resolved around x axis.
      gyroBiasY - estimated gyroscope bias resolved around y axis.
      gyroBiasZ - estimated gyroscope bias resolved around z axis.
      receiverClockOffset - estimated receiver clock offset.
      receiverClockDrift - estimated receiver clock drift.
      covariance - estimated Kalman filter error covariance matrix.
      Throws:
      IllegalArgumentException - if provided covariance matrix is not 17x17.
    • INSTightlyCoupledKalmanState

      public INSTightlyCoupledKalmanState(com.irurueta.navigation.frames.CoordinateTransformation c, com.irurueta.navigation.frames.ECEFVelocity velocity, com.irurueta.navigation.frames.ECEFPosition position, com.irurueta.units.Acceleration accelerationBiasX, com.irurueta.units.Acceleration accelerationBiasY, com.irurueta.units.Acceleration accelerationBiasZ, com.irurueta.units.AngularSpeed gyroBiasX, com.irurueta.units.AngularSpeed gyroBiasY, com.irurueta.units.AngularSpeed gyroBiasZ, com.irurueta.units.Distance receiverClockOffset, com.irurueta.units.Speed receiverClockDrift, com.irurueta.algebra.Matrix covariance)
      Constructor.
      Parameters:
      c - body to ECEF coordinate transformation.
      velocity - estimated ECEF user velocity.
      position - estimated ECEF user position.
      accelerationBiasX - estimated accelerometer bias resolved around x axis.
      accelerationBiasY - estimated accelerometer bias resolved around y axis.
      accelerationBiasZ - estimated accelerometer bias resolved around z axis.
      gyroBiasX - estimated gyroscope bias resolved around x axis.
      gyroBiasY - estimated gyroscope bias resolved around y axis.
      gyroBiasZ - estimated gyroscope bias resolved around z axis.
      receiverClockOffset - estimated receiver clock offset.
      receiverClockDrift - estimated receiver clock drift.
      covariance - estimated Kalman filter error covariance matrix.
      Throws:
      IllegalArgumentException - if provided covariance matrix is not 17x17.
    • INSTightlyCoupledKalmanState

      public INSTightlyCoupledKalmanState(com.irurueta.navigation.frames.CoordinateTransformation c, com.irurueta.navigation.gnss.ECEFPositionAndVelocity positionAndVelocity, com.irurueta.units.Acceleration accelerationBiasX, com.irurueta.units.Acceleration accelerationBiasY, com.irurueta.units.Acceleration accelerationBiasZ, com.irurueta.units.AngularSpeed gyroBiasX, com.irurueta.units.AngularSpeed gyroBiasY, com.irurueta.units.AngularSpeed gyroBiasZ, com.irurueta.units.Distance receiverClockOffset, com.irurueta.units.Speed receiverClockDrift, com.irurueta.algebra.Matrix covariance)
      Constructor.
      Parameters:
      c - body to ECEF coordinate transformation.
      positionAndVelocity - estimated ECEF user position and velocity.
      accelerationBiasX - estimated accelerometer bias resolved around x axis.
      accelerationBiasY - estimated accelerometer bias resolved around y axis.
      accelerationBiasZ - estimated accelerometer bias resolved around z axis.
      gyroBiasX - estimated gyroscope bias resolved around x axis.
      gyroBiasY - estimated gyroscope bias resolved around y axis.
      gyroBiasZ - estimated gyroscope bias resolved around z axis.
      receiverClockOffset - estimated receiver clock offset.
      receiverClockDrift - estimated receiver clock drift.
      covariance - estimated Kalman filter error covariance matrix.
      Throws:
      IllegalArgumentException - if provided covariance matrix is not 17x17.
    • INSTightlyCoupledKalmanState

      public INSTightlyCoupledKalmanState(com.irurueta.navigation.frames.ECEFFrame frame, com.irurueta.units.Acceleration accelerationBiasX, com.irurueta.units.Acceleration accelerationBiasY, com.irurueta.units.Acceleration accelerationBiasZ, com.irurueta.units.AngularSpeed gyroBiasX, com.irurueta.units.AngularSpeed gyroBiasY, com.irurueta.units.AngularSpeed gyroBiasZ, com.irurueta.units.Distance receiverClockOffset, com.irurueta.units.Speed receiverClockDrift, com.irurueta.algebra.Matrix covariance)
      Constructor.
      Parameters:
      frame - estimated user ECEF frame.
      accelerationBiasX - estimated accelerometer bias resolved around x axis.
      accelerationBiasY - estimated accelerometer bias resolved around y axis.
      accelerationBiasZ - estimated accelerometer bias resolved around z axis.
      gyroBiasX - estimated gyroscope bias resolved around x axis.
      gyroBiasY - estimated gyroscope bias resolved around y axis.
      gyroBiasZ - estimated gyroscope bias resolved around z axis.
      receiverClockOffset - estimated receiver clock offset.
      receiverClockDrift - estimated receiver clock drift.
      covariance - estimated Kalman filter error covariance matrix.
      Throws:
      IllegalArgumentException - if provided covariance matrix is not 17x17.
    • INSTightlyCoupledKalmanState

      public INSTightlyCoupledKalmanState(com.irurueta.algebra.Matrix bodyToEcefCoordinateTransformationMatrix, com.irurueta.units.Speed vx, com.irurueta.units.Speed vy, com.irurueta.units.Speed vz, com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z, double accelerationBiasX, double accelerationBiasY, double accelerationBiasZ, double gyroBiasX, double gyroBiasY, double gyroBiasZ, double receiverClockOffset, double receiverClockDrift, com.irurueta.algebra.Matrix covariance)
      Constructor.
      Parameters:
      bodyToEcefCoordinateTransformationMatrix - estimated body to ECEF coordinate transformation matrix.
      vx - estimated ECEF user velocity resolved around x axis.
      vy - estimated ECEF user velocity resolved around y axis.
      vz - estimated ECEF user velocity resolved around z axis.
      x - x coordinate of estimated ECEF user position.
      y - y coordinate of estimated ECEF user position.
      z - z coordinate of estimated ECEF user position.
      accelerationBiasX - estimated accelerometer bias resolved around x axis and expressed in meters per squared second (m/s^2).
      accelerationBiasY - estimated accelerometer bias resolved around y axis and expressed in meters per squared second (m/s^2).
      accelerationBiasZ - estimated accelerometer bias resolved around z axis and expressed in meters per squared second (m/s^2).
      gyroBiasX - estimated gyroscope bias resolved around x axis and expressed in radians per second (rad/s).
      gyroBiasY - estimated gyroscope bias resolved around y axis and expressed in radians per second (rad/s).
      gyroBiasZ - estimated gyroscope bias resolved around z axis and expressed in radians per second (rad/s).
      receiverClockOffset - estimated receiver clock offset expressed in meters (m).
      receiverClockDrift - estimated receiver clock drift expressed in meters per second (m/s).
      covariance - estimated Kalman filter error covariance matrix.
      Throws:
      IllegalArgumentException - if provided body to ECEF coordinate transformation matrix is not 3x3 or if provided covariance matrix is not 17x17.
    • INSTightlyCoupledKalmanState

      public INSTightlyCoupledKalmanState(com.irurueta.algebra.Matrix bodyToEcefCoordinateTransformationMatrix, com.irurueta.units.Speed vx, com.irurueta.units.Speed vy, com.irurueta.units.Speed vz, com.irurueta.geometry.Point3D position, double accelerationBiasX, double accelerationBiasY, double accelerationBiasZ, double gyroBiasX, double gyroBiasY, double gyroBiasZ, double receiverClockOffset, double receiverClockDrift, com.irurueta.algebra.Matrix covariance)
      Constructor.
      Parameters:
      bodyToEcefCoordinateTransformationMatrix - estimated body to ECEF coordinate transformation matrix.
      vx - estimated ECEF user velocity resolved around x axis.
      vy - estimated ECEF user velocity resolved around y axis.
      vz - estimated ECEF user velocity resolved around z axis.
      position - estimated ECEF user position.
      accelerationBiasX - estimated accelerometer bias resolved around x axis and expressed in meters per squared second (m/s^2).
      accelerationBiasY - estimated accelerometer bias resolved around y axis and expressed in meters per squared second (m/s^2).
      accelerationBiasZ - estimated accelerometer bias resolved around z axis and expressed in meters per squared second (m/s^2).
      gyroBiasX - estimated gyroscope bias resolved around x axis and expressed in radians per second (rad/s).
      gyroBiasY - estimated gyroscope bias resolved around y axis and expressed in radians per second (rad/s).
      gyroBiasZ - estimated gyroscope bias resolved around z axis and expressed in radians per second (rad/s).
      receiverClockOffset - estimated receiver clock offset expressed in meters (m).
      receiverClockDrift - estimated receiver clock drift expressed in meters per second (m/s).
      covariance - estimated Kalman filter error covariance matrix.
      Throws:
      IllegalArgumentException - if provided body to ECEF coordinate transformation matrix is not 3x3 or if provided covariance matrix is not 17x17.
    • INSTightlyCoupledKalmanState

      public INSTightlyCoupledKalmanState(com.irurueta.algebra.Matrix bodyToEcefCoordinateTransformationMatrix, com.irurueta.navigation.frames.ECEFVelocity velocity, com.irurueta.navigation.frames.ECEFPosition position, double accelerationBiasX, double accelerationBiasY, double accelerationBiasZ, double gyroBiasX, double gyroBiasY, double gyroBiasZ, double receiverClockOffset, double receiverClockDrift, com.irurueta.algebra.Matrix covariance)
      Constructor.
      Parameters:
      bodyToEcefCoordinateTransformationMatrix - estimated body to ECEF coordinate transformation matrix.
      velocity - estimated ECEF user velocity.
      position - estimated ECEF user position.
      accelerationBiasX - estimated accelerometer bias resolved around x axis and expressed in meters per squared second (m/s^2).
      accelerationBiasY - estimated accelerometer bias resolved around y axis and expressed in meters per squared second (m/s^2).
      accelerationBiasZ - estimated accelerometer bias resolved around z axis and expressed in meters per squared second (m/s^2).
      gyroBiasX - estimated gyroscope bias resolved around x axis and expressed in radians per second (rad/s).
      gyroBiasY - estimated gyroscope bias resolved around y axis and expressed in radians per second (rad/s).
      gyroBiasZ - estimated gyroscope bias resolved around z axis and expressed in radians per second (rad/s).
      receiverClockOffset - estimated receiver clock offset expressed in meters (m).
      receiverClockDrift - estimated receiver clock drift expressed in meters per second (m/s).
      covariance - estimated Kalman filter error covariance matrix.
      Throws:
      IllegalArgumentException - if provided body to ECEF coordinate transformation matrix is not 3x3 or if provided covariance matrix is not 17x17.
    • INSTightlyCoupledKalmanState

      public INSTightlyCoupledKalmanState(com.irurueta.algebra.Matrix bodyToEcefCoordinateTransformationMatrix, com.irurueta.navigation.gnss.ECEFPositionAndVelocity positionAndVelocity, double accelerationBiasX, double accelerationBiasY, double accelerationBiasZ, double gyroBiasX, double gyroBiasY, double gyroBiasZ, double receiverClockOffset, double receiverClockDrift, com.irurueta.algebra.Matrix covariance)
      Constructor.
      Parameters:
      bodyToEcefCoordinateTransformationMatrix - estimated body to ECEF coordinate transformation matrix.
      positionAndVelocity - estimated ECEF user position and velocity.
      accelerationBiasX - estimated accelerometer bias resolved around x axis and expressed in meters per squared second (m/s^2).
      accelerationBiasY - estimated accelerometer bias resolved around y axis and expressed in meters per squared second (m/s^2).
      accelerationBiasZ - estimated accelerometer bias resolved around z axis and expressed in meters per squared second (m/s^2).
      gyroBiasX - estimated gyroscope bias resolved around x axis and expressed in radians per second (rad/s).
      gyroBiasY - estimated gyroscope bias resolved around y axis and expressed in radians per second (rad/s).
      gyroBiasZ - estimated gyroscope bias resolved around z axis and expressed in radians per second (rad/s).
      receiverClockOffset - estimated receiver clock offset expressed in meters (m).
      receiverClockDrift - estimated receiver clock drift expressed in meters per second (m/s).
      covariance - estimated Kalman filter error covariance matrix.
      Throws:
      IllegalArgumentException - if provided body to ECEF coordinate transformation matrix is not 3x3 or if provided covariance matrix is not 17x17.
    • INSTightlyCoupledKalmanState

      public INSTightlyCoupledKalmanState(com.irurueta.algebra.Matrix bodyToEcefCoordinateTransformationMatrix, com.irurueta.units.Speed vx, com.irurueta.units.Speed vy, com.irurueta.units.Speed vz, com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z, com.irurueta.units.Acceleration accelerationBiasX, com.irurueta.units.Acceleration accelerationBiasY, com.irurueta.units.Acceleration accelerationBiasZ, com.irurueta.units.AngularSpeed gyroBiasX, com.irurueta.units.AngularSpeed gyroBiasY, com.irurueta.units.AngularSpeed gyroBiasZ, com.irurueta.units.Distance receiverClockOffset, com.irurueta.units.Speed receiverClockDrift, com.irurueta.algebra.Matrix covariance)
      Constructor.
      Parameters:
      bodyToEcefCoordinateTransformationMatrix - estimated body to ECEF coordinate transformation matrix.
      vx - estimated ECEF user velocity resolved around x axis.
      vy - estimated ECEF user velocity resolved around y axis.
      vz - estimated ECEF user velocity resolved around z axis.
      x - x coordinate of estimated ECEF user position.
      y - y coordinate of estimated ECEF user position.
      z - z coordinate of estimated ECEF user position.
      accelerationBiasX - estimated accelerometer bias resolved around x axis.
      accelerationBiasY - estimated accelerometer bias resolved around y axis.
      accelerationBiasZ - estimated accelerometer bias resolved around z axis.
      gyroBiasX - estimated gyroscope bias resolved around x axis.
      gyroBiasY - estimated gyroscope bias resolved around y axis.
      gyroBiasZ - estimated gyroscope bias resolved around z axis.
      receiverClockOffset - estimated receiver clock offset.
      receiverClockDrift - estimated receiver clock drift.
      covariance - estimated Kalman filter error covariance matrix.
      Throws:
      IllegalArgumentException - if provided body to ECEF coordinate transformation matrix is not 3x3 or if provided covariance matrix is not 17x17.
    • INSTightlyCoupledKalmanState

      public INSTightlyCoupledKalmanState(com.irurueta.algebra.Matrix bodyToEcefCoordinateTransformationMatrix, com.irurueta.units.Speed vx, com.irurueta.units.Speed vy, com.irurueta.units.Speed vz, com.irurueta.geometry.Point3D position, com.irurueta.units.Acceleration accelerationBiasX, com.irurueta.units.Acceleration accelerationBiasY, com.irurueta.units.Acceleration accelerationBiasZ, com.irurueta.units.AngularSpeed gyroBiasX, com.irurueta.units.AngularSpeed gyroBiasY, com.irurueta.units.AngularSpeed gyroBiasZ, com.irurueta.units.Distance receiverClockOffset, com.irurueta.units.Speed receiverClockDrift, com.irurueta.algebra.Matrix covariance)
      Constructor.
      Parameters:
      bodyToEcefCoordinateTransformationMatrix - estimated body to ECEF coordinate transformation matrix.
      vx - estimated ECEF user velocity resolved around x axis.
      vy - estimated ECEF user velocity resolved around y axis.
      vz - estimated ECEF user velocity resolved around z axis.
      position - estimated ECEF user position expressed in meters (m).
      accelerationBiasX - estimated accelerometer bias resolved around x axis.
      accelerationBiasY - estimated accelerometer bias resolved around y axis.
      accelerationBiasZ - estimated accelerometer bias resolved around z axis.
      gyroBiasX - estimated gyroscope bias resolved around x axis.
      gyroBiasY - estimated gyroscope bias resolved around y axis.
      gyroBiasZ - estimated gyroscope bias resolved around z axis.
      receiverClockOffset - estimated receiver clock offset.
      receiverClockDrift - estimated receiver clock drift.
      covariance - estimated Kalman filter error covariance matrix.
      Throws:
      IllegalArgumentException - if provided body to ECEF coordinate transformation matrix is not 3x3 or if provided covariance matrix is not 17x17.
    • INSTightlyCoupledKalmanState

      public INSTightlyCoupledKalmanState(com.irurueta.algebra.Matrix bodyToEcefCoordinateTransformationMatrix, com.irurueta.navigation.frames.ECEFVelocity velocity, com.irurueta.navigation.frames.ECEFPosition position, com.irurueta.units.Acceleration accelerationBiasX, com.irurueta.units.Acceleration accelerationBiasY, com.irurueta.units.Acceleration accelerationBiasZ, com.irurueta.units.AngularSpeed gyroBiasX, com.irurueta.units.AngularSpeed gyroBiasY, com.irurueta.units.AngularSpeed gyroBiasZ, com.irurueta.units.Distance receiverClockOffset, com.irurueta.units.Speed receiverClockDrift, com.irurueta.algebra.Matrix covariance)
      Constructor.
      Parameters:
      bodyToEcefCoordinateTransformationMatrix - estimated body to ECEF coordinate transformation matrix.
      velocity - estimated ECEF user velocity.
      position - estimated ECEF user position.
      accelerationBiasX - estimated accelerometer bias resolved around x axis.
      accelerationBiasY - estimated accelerometer bias resolved around y axis.
      accelerationBiasZ - estimated accelerometer bias resolved around z axis.
      gyroBiasX - estimated gyroscope bias resolved around x axis.
      gyroBiasY - estimated gyroscope bias resolved around y axis.
      gyroBiasZ - estimated gyroscope bias resolved around z axis.
      receiverClockOffset - estimated receiver clock offset.
      receiverClockDrift - estimated receiver clock drift.
      covariance - estimated Kalman filter error covariance matrix.
      Throws:
      IllegalArgumentException - if provided body to ECEF coordinate transformation matrix is not 3x3 or if provided covariance matrix is not 17x17.
    • INSTightlyCoupledKalmanState

      public INSTightlyCoupledKalmanState(com.irurueta.algebra.Matrix bodyToEcefCoordinateTransformationMatrix, com.irurueta.navigation.gnss.ECEFPositionAndVelocity positionAndVelocity, com.irurueta.units.Acceleration accelerationBiasX, com.irurueta.units.Acceleration accelerationBiasY, com.irurueta.units.Acceleration accelerationBiasZ, com.irurueta.units.AngularSpeed gyroBiasX, com.irurueta.units.AngularSpeed gyroBiasY, com.irurueta.units.AngularSpeed gyroBiasZ, com.irurueta.units.Distance receiverClockOffset, com.irurueta.units.Speed receiverClockDrift, com.irurueta.algebra.Matrix covariance)
      Constructor.
      Parameters:
      bodyToEcefCoordinateTransformationMatrix - estimated body to ECEF coordinate transformation matrix.
      positionAndVelocity - estimated ECEF user position and velocity.
      accelerationBiasX - estimated accelerometer bias resolved around x axis.
      accelerationBiasY - estimated accelerometer bias resolved around y axis.
      accelerationBiasZ - estimated accelerometer bias resolved around z axis.
      gyroBiasX - estimated gyroscope bias resolved around x axis.
      gyroBiasY - estimated gyroscope bias resolved around y axis.
      gyroBiasZ - estimated gyroscope bias resolved around z axis.
      receiverClockOffset - estimated receiver clock offset.
      receiverClockDrift - estimated receiver clock drift.
      covariance - estimated Kalman filter error covariance matrix.
      Throws:
      IllegalArgumentException - if provided body to ECEF coordinate transformation matrix is not 3x3 or if provided covariance matrix is not 17x17.
    • INSTightlyCoupledKalmanState

      public INSTightlyCoupledKalmanState(INSTightlyCoupledKalmanState input)
      Copy constructor.
      Parameters:
      input - input instance to copy data from.
  • Method Details

    • getBodyToEcefCoordinateTransformationMatrix

      public com.irurueta.algebra.Matrix getBodyToEcefCoordinateTransformationMatrix()
      Gets estimated body to ECEF coordinate transformation matrix.
      Returns:
      estimated body to ECEF coordinate transformation matrix.
    • setBodyToEcefCoordinateTransformationMatrix

      public void setBodyToEcefCoordinateTransformationMatrix(com.irurueta.algebra.Matrix bodyToEcefCoordinateTransformationMatrix)
      Sets estimated body to ECEF coordinate transformation matrix.
      Parameters:
      bodyToEcefCoordinateTransformationMatrix - estimated body to ECEF coordinate transformation matrix.
      Throws:
      IllegalArgumentException - if provided matrix is not 3x3.
    • getVx

      public double getVx()
      Gets estimated ECEF user velocity resolved around x axis and expressed in meters per second (m/s).
      Returns:
      estimated ECEF user velocity resolved around x axis and expressed in meters per second (m/s).
    • setVx

      public void setVx(double vx)
      Sets estimated ECEF user velocity resolved around x axis and expressed in meters per second (m/s).
      Parameters:
      vx - estimated ECEF user velocity resolved around x axis and expressed in meters per second (m/s).
    • getVy

      public double getVy()
      Gets estimated ECEF user velocity resolved around y axis and expressed in meters per second (m/s).
      Returns:
      estimated ECEF user velocity resolved around y axis and expressed in meters per second (m/s).
    • setVy

      public void setVy(double vy)
      Sets estimated ECEF user velocity resolved around y axis and expressed in meters per second (m/s).
      Parameters:
      vy - estimated ECEF user velocity resolved around y axis and expressed in meters per second (m/s).
    • getVz

      public double getVz()
      Gets estimated ECEF user velocity resolved around z axis and expressed in meters per second (m/s).
      Returns:
      estimated ECEF user velocity resolved around z axis and expressed in meters per second (m/s).
    • setVz

      public void setVz(double vz)
      Sets estimated ECEF user velocity resolved around z axis and expressed in meters per second (m/s).
      Parameters:
      vz - estimated ECEF user velocity resolved around z axis and expressed in meters per second (m/s).
    • setVelocityCoordinates

      public void setVelocityCoordinates(double vx, double vy, double vz)
      Sets estimated ECEF user velocity coordinates.
      Parameters:
      vx - estimated ECEF user velocity resolved around x axis and expressed in meters per second (m/s).
      vy - estimated ECEF user velocity resolved around y axis and expressed in meters per second (m/s).
      vz - estimated ECEF user velocity resolved around z axis and expressed in meters per second (m/s).
    • getX

      public double getX()
      Gets x coordinate of estimated ECEF user position expressed in meters (m).
      Returns:
      x coordinate of estimated ECEF user position expressed in meters (m).
    • setX

      public void setX(double x)
      Sets x coordinate of estimated ECEF user position expressed in meters (m).
      Parameters:
      x - x coordinate of estimated ECEF user position expressed in meters (m).
    • getY

      public double getY()
      Gets y coordinate of estimated ECEF user position expressed in meters (m).
      Returns:
      y coordinate of estimated ECEF user position expressed in meters (m).
    • setY

      public void setY(double y)
      Sets y coordinate of estimated ECEF user position expressed in meters (m).
      Parameters:
      y - y coordinate of estimated ECEF user position expressed in meters (m).
    • getZ

      public double getZ()
      Gets z coordinate of estimated ECEF user position expressed in meters (m).
      Returns:
      z coordinate of estimated ECEF user position expressed in meters (m).
    • setZ

      public void setZ(double z)
      Sets z coordinate of estimated ECEF user position expressed in meters (m).
      Parameters:
      z - z coordinate of estimated ECEF user position expressed in meters (m).
    • setPositionCoordinates

      public void setPositionCoordinates(double x, double y, double z)
      Sets estimated ECEF user position coordinates.
      Parameters:
      x - x coordinate of estimated ECEF user position expressed in meters (m).
      y - y coordinate of estimated ECEF user position expressed in meters (m).
      z - z coordinate of estimated ECEF user position expressed in meters (m).
    • getAccelerationBiasX

      public double getAccelerationBiasX()
      Gets estimated accelerometer bias resolved around x axis and expressed in meters per squared second (m/s^2).
      Returns:
      estimated accelerometer bias resolved around x axis and expressed in meters per squared second (m/s^2).
    • setAccelerationBiasX

      public void setAccelerationBiasX(double accelerationBiasX)
      Sets estimated accelerometer bias resolved around x axis and expressed in meters per squared second (m/s^2).
      Parameters:
      accelerationBiasX - estimated accelerometer bias resolved around x axis and expressed in meters per squared second (m/s^2).
    • getAccelerationBiasY

      public double getAccelerationBiasY()
      Gets estimated accelerometer bias resolved around y axis and expressed in meters per squared second (m/s^2).
      Returns:
      estimated accelerometer bias resolved around y axis and expressed in meters per squared second (m/s^2).
    • setAccelerationBiasY

      public void setAccelerationBiasY(double accelerationBiasY)
      Sets estimated accelerometer bias resolved around y axis and expressed in meters per squared second (m/s^2).
      Parameters:
      accelerationBiasY - estimated accelerometer bias resolved around y axis and expressed in meters per squared second (m/s^2).
    • getAccelerationBiasZ

      public double getAccelerationBiasZ()
      Gets estimated accelerometer bias resolved around z axis and expressed in meters per squared second (m/s^2).
      Returns:
      estimated accelerometer bias resolved around z axis and expressed in meters per squared second (m/s^2).
    • setAccelerationBiasZ

      public void setAccelerationBiasZ(double accelerationBiasZ)
      Sets estimated accelerometer bias resolved around z axis and expressed in meters per squared second (m/s^2).
      Parameters:
      accelerationBiasZ - estimated accelerometer bias resolved around z axis and expressed in meters per squared second (m/s^2).
    • setAccelerationBiasCoordinates

      public void setAccelerationBiasCoordinates(double accelerationBiasX, double accelerationBiasY, double accelerationBiasZ)
      Sets estimated accelerometer bias expressed in meters per squared second (m/s^2).
      Parameters:
      accelerationBiasX - estimated accelerometer bias resolved around x axis and expressed in meters per squared second (m/s^2).
      accelerationBiasY - estimated accelerometer bias resolved around y axis and expressed in meters per squared second (m/s^2).
      accelerationBiasZ - estimated accelerometer bias resolved around z axis and expressed in meters per squared second (m/s^2).
    • getGyroBiasX

      public double getGyroBiasX()
      Gets estimated gyroscope bias resolved around x axis and expressed in radians per second (rad/s).
      Returns:
      estimated gyroscope bias resolved around x axis and expressed in radians per second (rad/s).
    • setGyroBiasX

      public void setGyroBiasX(double gyroBiasX)
      Sets estimated gyroscope bias resolved around x axis and expressed in radians per second (rad/s).
      Parameters:
      gyroBiasX - estimated gyroscope bias resolved around x axis and expressed in radians per second (rad/s).
    • getGyroBiasY

      public double getGyroBiasY()
      Gets estimated gyroscope bias resolved around y axis and expressed in radians per second (rad/s).
      Returns:
      estimated gyroscope bias resolved around y axis and expressed in radians per second (rad/s).
    • setGyroBiasY

      public void setGyroBiasY(double gyroBiasY)
      Sets estimated gyroscope bias resolved around y axis and expressed in radians per second (rad/s).
      Parameters:
      gyroBiasY - estimated gyroscope bias resolved around y axis and expressed in radians per second (rad/s).
    • getGyroBiasZ

      public double getGyroBiasZ()
      Gets estimated gyroscope bias resolved around z axis and expressed in radians per second (rad/s).
      Returns:
      estimated gyroscope bias resolved around z axis and expressed in radians per second (rad/s).
    • setGyroBiasZ

      public void setGyroBiasZ(double gyroBiasZ)
      Sets estimated gyroscope bias resolved around z axis and expressed in radians per second (rad/s).
      Parameters:
      gyroBiasZ - estimated gyroscope bias resolved around z axis and expressed in radians per second (rad/s).
    • setGyroBiasCoordinates

      public void setGyroBiasCoordinates(double gyroBiasX, double gyroBiasY, double gyroBiasZ)
      Sets estimated gyroscope bias coordinates expressed in radians per second (rad/s).
      Parameters:
      gyroBiasX - estimated gyroscope bias resolved around x axis and expressed in radians per second (rad/s).
      gyroBiasY - estimated gyroscope bias resolved around y axis and expressed in radians per second (rad/s).
      gyroBiasZ - estimated gyroscope bias resolved around z axis and expressed in radians per second (rad/s).
    • getReceiverClockOffset

      public double getReceiverClockOffset()
      Gets estimated receiver clock offset expressed in meters (m).
      Returns:
      estimated receiver clock offset expressed in meters (m).
    • setReceiverClockOffset

      public void setReceiverClockOffset(double receiverClockOffset)
      Sets estimated receiver clock offset expressed in meters (m).
      Parameters:
      receiverClockOffset - estimated receiver clock offset expressed in meters (m).
    • getReceiverClockDrift

      public double getReceiverClockDrift()
      Gets estimated receiver clock drift expressed in meters per second (m/s).
      Returns:
      estimated receiver clock drift expressed in meters per second (m/s).
    • setReceiverClockDrift

      public void setReceiverClockDrift(double receiverClockDrift)
      Sets estimated receiver clock drift expressed in meters per second (m/s).
      Parameters:
      receiverClockDrift - estimated receiver clock drift expressed in meters per second (m/s).
    • getCovariance

      public boolean getCovariance(com.irurueta.algebra.Matrix result)
      Gets Kalman filter error covariance matrix. Notice that covariance is expressed in terms of ECEF coordinates. If accuracy of position, attitude or velocity needs to be expressed in terms of NED coordinates, their respective sub-matrices of this covariance matrix must be rotated, taking into account the Jacobian of the matrix transformation relating both coordinates, the covariance can be expressed following the law of propagation of uncertainties (https://en.wikipedia.org/wiki/Propagation_of_uncertainty) as: cov(f(x)) = J*cov(x)*J'.
      Parameters:
      result - instance where result data will be copied to.
      Returns:
      true if result data has been copied, false otherwise.
    • getCovariance

      public com.irurueta.algebra.Matrix getCovariance()
      Gets Kalman filter error covariance matrix. Notice that covariance is expressed in terms of ECEF coordinates. If accuracy of position, attitude or velocity needs to be expressed in terms of NED coordinates, their respective sub-matrices of this covariance matrix must be rotated, taking into account the Jacobian of the matrix transformation relating both coordinates, the covariance can be expressed following the law of propagation of uncertainties (https://en.wikipedia.org/wiki/Propagation_of_uncertainty) as: cov(f(x)) = J*cov(x)*J'.
      Returns:
      Kalman filter error covariance matrix.
    • setCovariance

      public void setCovariance(com.irurueta.algebra.Matrix covariance)
      Sets Kalman filter error covariance matrix.
      Parameters:
      covariance - Kalman filter error covariance matrix to be set.
      Throws:
      IllegalArgumentException - if provided covariance matrix is not 17x17.
    • getC

      public com.irurueta.navigation.frames.CoordinateTransformation getC() throws com.irurueta.geometry.InvalidRotationMatrixException
      Gets body to ECEF coordinate transformation.
      Returns:
      body to ECEF coordinate transformation.
      Throws:
      com.irurueta.geometry.InvalidRotationMatrixException - if current body to ECEF transformation matrix is not valid (is not a 3x3 orthonormal matrix).
    • getC

      public com.irurueta.navigation.frames.CoordinateTransformation getC(double threshold) throws com.irurueta.geometry.InvalidRotationMatrixException
      Gets body to ECEF coordinate transformation.
      Parameters:
      threshold - threshold to determine whether current body to ECEF transformation matrix is valid or not (to check that matrix is 3x3 orthonormal).
      Returns:
      body to ECEF coordinate transformation.
      Throws:
      com.irurueta.geometry.InvalidRotationMatrixException - if current body to ECEF transformation matrix is considered not valid (is not a 3x3 orthonormal matrix) with provided threshold.
    • getC

      public boolean getC(com.irurueta.navigation.frames.CoordinateTransformation result) throws com.irurueta.geometry.InvalidRotationMatrixException
      Gets body to ECEF coordinate transformation.
      Parameters:
      result - instance where body to ECEF coordinate transformation will be stored.
      Returns:
      true if result instance was updated, false otherwise.
      Throws:
      com.irurueta.geometry.InvalidRotationMatrixException - if current body to ECEF transformation matrix is not valid (is not a 3x3 orthonormal matrix).
    • getC

      public boolean getC(com.irurueta.navigation.frames.CoordinateTransformation result, double threshold) throws com.irurueta.geometry.InvalidRotationMatrixException
      Gets body to ECEF coordinate transformation.
      Parameters:
      result - instance where body to ECEF coordinate transformation will be stored.
      threshold - threshold to determine whether current body to ECEF transformation matrix is valid or not (to check that matrix is 3x3 orthonormal).
      Returns:
      true if result instance was updated, false otherwise.
      Throws:
      com.irurueta.geometry.InvalidRotationMatrixException - if current body to ECEF transformation matrix is not valid (is not a 3x3 orthonormal matrix) with provided threshold.
    • setC

      public void setC(com.irurueta.navigation.frames.CoordinateTransformation c)
      Sets body to ECEF coordinate transformation.
      Parameters:
      c - body to ECEF coordinate transformation to be set.
      Throws:
      IllegalArgumentException - if provided coordinate transformation is not null and is not a body to ECEF transformation.
    • getSpeedX

      public void getSpeedX(com.irurueta.units.Speed result)
      Gets estimated ECEF user velocity resolved around x axis.
      Parameters:
      result - instance where estimated ECEF user velocity resolved around x axis will be stored.
    • getSpeedX

      public com.irurueta.units.Speed getSpeedX()
      Gets estimated ECEF user velocity resolved around x axis.
      Returns:
      estimated ECEF user velocity resolved around x axis.
    • setSpeedX

      public void setSpeedX(com.irurueta.units.Speed vx)
      Sets estimated ECEF user velocity resolved around x axis.
      Parameters:
      vx - estimated ECEF user velocity resolved around x axis.
    • getSpeedY

      public void getSpeedY(com.irurueta.units.Speed result)
      Gets estimated ECEF user velocity resolved around y axis.
      Parameters:
      result - instance where estimated ECEF user velocity resolved around y axis will be stored.
    • getSpeedY

      public com.irurueta.units.Speed getSpeedY()
      Gets estimated ECEF user velocity resolved around y axis.
      Returns:
      estimated ECEF velocity resolved around y axis.
    • setSpeedY

      public void setSpeedY(com.irurueta.units.Speed vy)
      Sets estimated ECEF user velocity resolved around y axis.
      Parameters:
      vy - estimated ECEF user velocity resolved around y axis.
    • getSpeedZ

      public void getSpeedZ(com.irurueta.units.Speed result)
      Gets estimated ECEF user velocity resolved around z axis.
      Parameters:
      result - instance where estimated ECEF user velocity resolved around z axis will be stored.
    • getSpeedZ

      public com.irurueta.units.Speed getSpeedZ()
      Gets estimated ECEF user velocity resolved around z axis.
      Returns:
      estimated ECEF velocity resolved around z axis.
    • setSpeedZ

      public void setSpeedZ(com.irurueta.units.Speed vz)
      Sets estimated ECEF user velocity resolved around z axis.
      Parameters:
      vz - estimated ECEF velocity resolved around z axis.
    • setVelocityCoordinates

      public void setVelocityCoordinates(com.irurueta.units.Speed vx, com.irurueta.units.Speed vy, com.irurueta.units.Speed vz)
      Sets estimated ECEF user velocity.
      Parameters:
      vx - estimated ECEF velocity resolved around x axis.
      vy - estimated ECEF velocity resolved around y axis.
      vz - estimated ECEF velocity resolved around z axis.
    • getEcefVelocity

      public void getEcefVelocity(com.irurueta.navigation.frames.ECEFVelocity result)
      Gets estimated ECEF user velocity.
      Parameters:
      result - instance where estimated ECEF user velocity will be stored.
    • getEcefVelocity

      public com.irurueta.navigation.frames.ECEFVelocity getEcefVelocity()
      Gets estimated ECEF user velocity.
      Returns:
      estimated ECEF user velocity.
    • setEcefVelocity

      public void setEcefVelocity(com.irurueta.navigation.frames.ECEFVelocity ecefVelocity)
      Sets estimated ECEF user velocity.
      Parameters:
      ecefVelocity - estimated ECEF user velocity.
    • getDistanceX

      public void getDistanceX(com.irurueta.units.Distance result)
      Gets x coordinate of estimated ECEF user position.
      Parameters:
      result - instance where x coordinate of estimated ECEF user position will be stored.
    • getDistanceX

      public com.irurueta.units.Distance getDistanceX()
      Gets x coordinate of estimated ECEF user position.
      Returns:
      x coordinate of estimated ECEF user position.
    • setDistanceX

      public void setDistanceX(com.irurueta.units.Distance x)
      Sets x coordinate of estimated ECEF user position.
      Parameters:
      x - x coordinate of estimated ECEF user position.
    • getDistanceY

      public void getDistanceY(com.irurueta.units.Distance result)
      Gets y coordinate of estimated ECEF user position.
      Parameters:
      result - instance where y coordinate of estimated ECEF user position will be stored.
    • getDistanceY

      public com.irurueta.units.Distance getDistanceY()
      Gets y coordinate of estimated ECEF user position.
      Returns:
      y coordinate of estimated ECEF user position.
    • setDistanceY

      public void setDistanceY(com.irurueta.units.Distance y)
      Sets y coordinate of estimated ECEF user position.
      Parameters:
      y - y coordinate of estimated ECEF user position.
    • getDistanceZ

      public void getDistanceZ(com.irurueta.units.Distance result)
      Gets z coordinate of estimated ECEF user position.
      Parameters:
      result - instance where z coordinate of estimated ECEF user position will be stored.
    • getDistanceZ

      public com.irurueta.units.Distance getDistanceZ()
      Gets z coordinate of estimated ECEF user position.
      Returns:
      z coordinate of estimated ECEF user position.
    • setDistanceZ

      public void setDistanceZ(com.irurueta.units.Distance z)
      Sets z coordinate of estimated ECEF user position.
      Parameters:
      z - z coordinate of estimated ECEF user position.
    • setPositionCoordinates

      public void setPositionCoordinates(com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z)
      Sets coordinates of estimated ECEF user position.
      Parameters:
      x - x coordinate of estimated ECEF user position.
      y - y coordinate of estimated ECEF user position.
      z - z coordinate of estimated ECEF user position.
    • getPosition

      public void getPosition(com.irurueta.geometry.Point3D result)
      Gets estimated ECEF user position expressed in meters (m).
      Parameters:
      result - instance where estimated ECEF user position expressed in meters (m) will be stored.
    • getPosition

      public com.irurueta.geometry.Point3D getPosition()
      Gets estimated ECEF user position expressed in meters (m).
      Returns:
      estimated ECEF user position expressed in meters (m).
    • setPosition

      public void setPosition(com.irurueta.geometry.Point3D position)
      Sets estimated ECEF user position expressed in meters (m).
      Parameters:
      position - estimated ECEF user position expressed in meters (m).
    • getEcefPosition

      public void getEcefPosition(com.irurueta.navigation.frames.ECEFPosition result)
      Gets estimated ECEF user position.
      Parameters:
      result - instance where estimated ECEF user position will be stored.
    • getEcefPosition

      public com.irurueta.navigation.frames.ECEFPosition getEcefPosition()
      Gets estimated ECEF user position.
      Returns:
      estimated ECEF user position.
    • setEcefPosition

      public void setEcefPosition(com.irurueta.navigation.frames.ECEFPosition ecefPosition)
      Sets estimated ECEF user position.
      Parameters:
      ecefPosition - estimated ECEF user position.
    • getPositionAndVelocity

      public void getPositionAndVelocity(com.irurueta.navigation.gnss.ECEFPositionAndVelocity result)
      Gets estimated ECEF user position and velocity.
      Parameters:
      result - instance where estimated ECEF user position and velocity will be stored.
    • getPositionAndVelocity

      public com.irurueta.navigation.gnss.ECEFPositionAndVelocity getPositionAndVelocity()
      Gets estimated ECEF user position and velocity.
      Returns:
      estimated ECEF user position and velocity.
    • setPositionAndVelocity

      public void setPositionAndVelocity(com.irurueta.navigation.gnss.ECEFPositionAndVelocity positionAndVelocity)
      Sets estimated ECEF user position and velocity.
      Parameters:
      positionAndVelocity - estimated ECEF user position and velocity.
    • getFrame

      public boolean getFrame(com.irurueta.navigation.frames.ECEFFrame result)
      Gets body to ECEF frame containing coordinate transformation, position and velocity.
      Parameters:
      result - instance where body to ECEF frame will be stored.
      Returns:
      true if result was updated, false otherwise.
    • getFrame

      public com.irurueta.navigation.frames.ECEFFrame getFrame()
      Gets body to ECEF frame containing coordinate transformation, position and velocity.
      Returns:
      body to ECEF frame.
    • setFrame

      public void setFrame(com.irurueta.navigation.frames.ECEFFrame frame)
      Sets body to ECEF frame containing coordinate transformation, position and velocity.
      Parameters:
      frame - body to ECEF frame to be set.
    • getAccelerationBiasXAsAcceleration

      public void getAccelerationBiasXAsAcceleration(com.irurueta.units.Acceleration result)
      Gets estimated accelerometer bias resolved around x axis.
      Parameters:
      result - instance where estimated accelerometer bias resolved around x axis will be stored.
    • getAccelerationBiasXAsAcceleration

      public com.irurueta.units.Acceleration getAccelerationBiasXAsAcceleration()
      Gets estimated accelerometer bias resolved around x axis.
      Returns:
      estimated accelerometer bias resolved around x axis.
    • setAccelerationBiasX

      public void setAccelerationBiasX(com.irurueta.units.Acceleration accelerationBiasX)
      Sets estimated accelerometer bias resolved around x axis.
      Parameters:
      accelerationBiasX - estimated accelerometer bias resolved around x axis.
    • getAccelerationBiasYAsAcceleration

      public void getAccelerationBiasYAsAcceleration(com.irurueta.units.Acceleration result)
      Gets estimated accelerometer bias resolved around y axis.
      Parameters:
      result - instance where estimated accelerometer bias resolved around y axis will be stored.
    • getAccelerationBiasYAsAcceleration

      public com.irurueta.units.Acceleration getAccelerationBiasYAsAcceleration()
      Gets estimated accelerometer bias resolved around y axis.
      Returns:
      estimated accelerometer bias resolved around y axis.
    • setAccelerationBiasY

      public void setAccelerationBiasY(com.irurueta.units.Acceleration accelerationBiasY)
      Sets estimated accelerometer bias resolved around y axis.
      Parameters:
      accelerationBiasY - estimated accelerometer bias resolved around y axis.
    • getAccelerationBiasZAsAcceleration

      public void getAccelerationBiasZAsAcceleration(com.irurueta.units.Acceleration result)
      Gets estimated accelerometer bias resolved around z axis.
      Parameters:
      result - instance where estimated accelerometer bias resolved around z axis will be stored.
    • getAccelerationBiasZAsAcceleration

      public com.irurueta.units.Acceleration getAccelerationBiasZAsAcceleration()
      Gets estimated accelerometer bias resolved around z axis.
      Returns:
      estimated accelerometer bias resolved around z axis.
    • setAccelerationBiasZ

      public void setAccelerationBiasZ(com.irurueta.units.Acceleration accelerationBiasZ)
      Sets estimated accelerometer bias resolved around z axis.
      Parameters:
      accelerationBiasZ - estimated accelerometer bias resolved around z axis.
    • setAccelerationBiasCoordinates

      public void setAccelerationBiasCoordinates(com.irurueta.units.Acceleration accelerationBiasX, com.irurueta.units.Acceleration accelerationBiasY, com.irurueta.units.Acceleration accelerationBiasZ)
      Sets estimated accelerometer bias coordinates.
      Parameters:
      accelerationBiasX - estimated accelerometer bias resolved around x axis.
      accelerationBiasY - estimated accelerometer bias resolved around y axis.
      accelerationBiasZ - estimated accelerometer bias resolved around z axis.
    • getAngularSpeedGyroBiasX

      public void getAngularSpeedGyroBiasX(com.irurueta.units.AngularSpeed result)
      Gets estimated gyroscope bias resolved around x axis.
      Parameters:
      result - instance where estimated gyroscope bias resolved around x axis will be stored.
    • getAngularSpeedGyroBiasX

      public com.irurueta.units.AngularSpeed getAngularSpeedGyroBiasX()
      Gets estimated gyroscope bias resolved around x axis.
      Returns:
      estimated gyroscope bias resolved around x axis.
    • setGyroBiasX

      public void setGyroBiasX(com.irurueta.units.AngularSpeed gyroBiasX)
      Sets estimated gyroscope bias resolved around x axis.
      Parameters:
      gyroBiasX - estimated gyroscope bias resolved around x axis.
    • getAngularSpeedGyroBiasY

      public void getAngularSpeedGyroBiasY(com.irurueta.units.AngularSpeed result)
      Gets estimated gyroscope bias resolved around y axis.
      Parameters:
      result - instance where estimated gyroscope bias resolved around y axis will be stored.
    • getAngularSpeedGyroBiasY

      public com.irurueta.units.AngularSpeed getAngularSpeedGyroBiasY()
      Gets estimated gyroscope bias resolved around y axis.
      Returns:
      estimated gyroscope bias resolved around y axis.
    • setGyroBiasY

      public void setGyroBiasY(com.irurueta.units.AngularSpeed gyroBiasY)
      Sets estimated gyroscope bias resolved around y axis.
      Parameters:
      gyroBiasY - estimated gyroscope bias resolved around y axis.
    • getAngularSpeedGyroBiasZ

      public void getAngularSpeedGyroBiasZ(com.irurueta.units.AngularSpeed result)
      Gets estimated gyroscope bias resolved around z axis.
      Parameters:
      result - instance where estimated gyroscope bias resolved around z axis will be stored.
    • getAngularSpeedGyroBiasZ

      public com.irurueta.units.AngularSpeed getAngularSpeedGyroBiasZ()
      Gets estimated gyroscope bias resolved around z axis.
      Returns:
      estimated gyroscope bias resolved around z axis.
    • setGyroBiasZ

      public void setGyroBiasZ(com.irurueta.units.AngularSpeed gyroBiasZ)
      Sets estimated gyroscope bias resolved around z axis.
      Parameters:
      gyroBiasZ - estimated gyroscope bias resolved around z axis.
    • setGyroBiasCoordinates

      public void setGyroBiasCoordinates(com.irurueta.units.AngularSpeed gyroBiasX, com.irurueta.units.AngularSpeed gyroBiasY, com.irurueta.units.AngularSpeed gyroBiasZ)
      Sets estimated gyroscope bias coordinates.
      Parameters:
      gyroBiasX - estimated gyroscope bias resolved around x axis.
      gyroBiasY - estimated gyroscope bias resolved around y axis.
      gyroBiasZ - estimated gyroscope bias resolved around z axis.
    • getReceiverClockOffsetAsDistance

      public void getReceiverClockOffsetAsDistance(com.irurueta.units.Distance result)
      Gets estimated receiver clock offset.
      Parameters:
      result - instance where estimated receiver clock offset will be stored.
    • getReceiverClockOffsetAsDistance

      public com.irurueta.units.Distance getReceiverClockOffsetAsDistance()
      Gets estimated receiver clock offset.
      Returns:
      estimated receiver clock offset.
    • setReceiverClockOffset

      public void setReceiverClockOffset(com.irurueta.units.Distance receiverClockOffset)
      Sets estimated receiver clock offset.
      Parameters:
      receiverClockOffset - estimated receiver clock offset.
    • getReceiverClockDriftAsSpeed

      public void getReceiverClockDriftAsSpeed(com.irurueta.units.Speed result)
      Gets estimated receiver clock drift.
      Parameters:
      result - instance where estimated receiver clock drift will be stored.
    • getReceiverClockDriftAsSpeed

      public com.irurueta.units.Speed getReceiverClockDriftAsSpeed()
      Gets estimated receiver clock drift.
      Returns:
      estimated receiver clock drift.
    • setReceiverClockDrift

      public void setReceiverClockDrift(com.irurueta.units.Speed receiverClockDrift)
      Sets estimated receiver clock drift.
      Parameters:
      receiverClockDrift - estimated receiver clock drift.
    • getGNSSEstimation

      public void getGNSSEstimation(com.irurueta.navigation.gnss.GNSSEstimation result)
      Gets GNSS estimation from data contained into this instance.
      Parameters:
      result - instance where GNSS estimation data will be stored.
    • getGNSSEstimation

      public com.irurueta.navigation.gnss.GNSSEstimation getGNSSEstimation()
      Gets GNSS estimation from data contained into this instance.
      Returns:
      a new GNSS estimation instance.
    • setGNSSEstimation

      public void setGNSSEstimation(com.irurueta.navigation.gnss.GNSSEstimation gnssEstimation)
      Sets GNSS estimation data into this instance.
      Parameters:
      gnssEstimation - GNSS estimation data to be set.
    • copyTo

      public void copyTo(INSTightlyCoupledKalmanState output)
      Copies this instance data into provided instance.
      Parameters:
      output - destination instance where data will be copied to.
    • copyFrom

      public void copyFrom(INSTightlyCoupledKalmanState input)
      Copies data of provided instance into this instance.
      Parameters:
      input - instance to copy data from.
    • hashCode

      public int hashCode()
      Computes and returns hash code for this instance. Hash codes are almost unique values that are useful for fast classification and storage of objects in collections.
      Overrides:
      hashCode in class Object
      Returns:
      Hash code.
    • equals

      public boolean equals(Object obj)
      Checks if provided object is a INSTightlyCoupledKalmanState having exactly the same contents as this instance.
      Overrides:
      equals in class Object
      Parameters:
      obj - Object to be compared.
      Returns:
      true if both objects are considered to be equal, false otherwise.
    • equals

      public boolean equals(INSTightlyCoupledKalmanState other)
      Checks if provided instance has exactly the same contents as this instance.
      Parameters:
      other - instance to be compared.
      Returns:
      true if both instances are considered to be equal, false otherwise.
    • equals

      public boolean equals(INSTightlyCoupledKalmanState other, double threshold)
      Checks if provided instance has contents similar to this instance up to provided threshold value.
      Parameters:
      other - instance to be compared.
      threshold - maximum difference allowed for values.
      Returns:
      true if both instances are considered to be equal (up to provided threshold), false otherwise.
    • clone

      protected Object clone() throws CloneNotSupportedException
      Makes a copy of this instance.
      Overrides:
      clone in class Object
      Returns:
      a copy of this instance.
      Throws:
      CloneNotSupportedException - if clone fails for some reason.