Package com.irurueta.navigation.gnss
Class GNSSEstimation
java.lang.Object
com.irurueta.navigation.gnss.GNSSEstimation
- All Implemented Interfaces:
Serializable
,Cloneable
Contains GNSS state estimation, which contains user
position, velocity and estimated clock offset and drift.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate double
Estimated receiver clock drift expressed in meters per second (m/s).private double
Estimated receiver clock offset expressed in meters (m).static final int
Number of parameters stored into Kalman filter state.private double
X coordinate of estimated ECEF user velocity expressed in meters per second (m/s).private double
Y coordinate of estimated ECEF user velocity expressed in meters per second (m/s).private double
Z coordinate of estimated ECEF user velocity 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
ConstructorsConstructorDescriptionConstructor.GNSSEstimation
(double x, double y, double z, double vx, double vy, double vz, double clockOffset, double clockDrift) Constructor.GNSSEstimation
(com.irurueta.geometry.Point3D position, double vx, double vy, double vz, double clockOffset, double clockDrift) Constructor.GNSSEstimation
(com.irurueta.geometry.Point3D position, com.irurueta.units.Speed vx, com.irurueta.units.Speed vy, com.irurueta.units.Speed vz, com.irurueta.units.Distance clockOffset, com.irurueta.units.Speed clockDrift) Constructor.GNSSEstimation
(ECEFPosition position, ECEFVelocity velocity, double clockOffset, double clockDrift) Constructor.GNSSEstimation
(ECEFPosition position, ECEFVelocity velocity, com.irurueta.units.Distance clockOffset, com.irurueta.units.Speed clockDrift) Constructor.GNSSEstimation
(ECEFPositionAndVelocity positionAndVelocity, double clockOffset, double clockDrift) Constructor.GNSSEstimation
(ECEFPositionAndVelocity positionAndVelocity, com.irurueta.units.Distance clockOffset, com.irurueta.units.Speed clockDrift) Constructor.GNSSEstimation
(GNSSEstimation input) Copy constructor.GNSSEstimation
(com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z, com.irurueta.units.Speed vx, com.irurueta.units.Speed vy, com.irurueta.units.Speed vz, com.irurueta.units.Distance clockOffset, com.irurueta.units.Speed clockDrift) Constructor. -
Method Summary
Modifier and TypeMethodDescriptiondouble[]
asArray()
Converts state data into an array.void
asArray
(double[] result) Converts state data into an array.com.irurueta.algebra.Matrix
asMatrix()
Converts state data into a column matrix.void
asMatrix
(com.irurueta.algebra.Matrix result) Converts state data into a column matrix.protected Object
clone()
Makes a copy of this instance.void
copyFrom
(GNSSEstimation input) Copies data of provided instance into this instance.void
copyTo
(GNSSEstimation output) Copies this instance data into provided instance.boolean
equals
(GNSSEstimation other) Checks if provided instance has exactly the same contents as this instance.boolean
equals
(GNSSEstimation 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 GNSSKalmanStateEstimates having exactly the same contents as this instance.void
fromArray
(double[] array) Sets array values into this instance state.void
fromMatrix
(com.irurueta.algebra.Matrix matrix) Sets matrix values into this instance state.double
Gets estimated receiver clock drift expressed in meters per second (m/s).com.irurueta.units.Speed
Gets estimated receiver clock drift.void
getClockDriftSpeed
(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
getClockOffsetDistance
(com.irurueta.units.Distance result) Gets estimated receiver clock offset.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.Gets estimated ECEF user position.void
getEcefPosition
(ECEFPosition result) Gets estimatedECEF user position.Gets estimated ECEF user velocity.void
getEcefVelocity
(ECEFVelocity result) Gets estimated ECEF user velocity.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).Gets estimated ECEF user position and velocity.void
Gets estimated ECEF user position and velocity.com.irurueta.units.Speed
Gets x coordinate of estimated ECEF user velocity.void
getSpeedX
(com.irurueta.units.Speed result) Gets x coordinate of estimated ECEF user velocity.com.irurueta.units.Speed
Gets y coordinate of estimated ECEF user velocity.void
getSpeedY
(com.irurueta.units.Speed result) Gets y coordinate of estimated ECEF user velocity.com.irurueta.units.Speed
Gets z coordinate of estimated ECEF user velocity.void
getSpeedZ
(com.irurueta.units.Speed result) Gets z coordinate of estimated ECEF user velocity.double
getVx()
Gets x coordinate of estimated ECEF user velocity expressed in meters per second (m/s).double
getVy()
Gets y coordinate of estimated ECEF user velocity expressed in meters per second (m/s).double
getVz()
Gets z coordinate of estimated ECEF user velocity expressed in meters per second (m/s).double
getX()
Gets x coordinate of estimated ECEF user position expressed in meters (m).double
getY()
Gets y coordinate of estimated ECEF user position expressed in meters (m).double
getZ()
Gets z coordinate of estimated ECEF user position expressed in meters (m).int
hashCode()
Computes and returns hash code for this instance.void
setClockDrift
(double clockDrift) Sets estimated receiver clock drift expressed in meters per second (m/s).void
setClockDrift
(com.irurueta.units.Speed clockDrift) Sets estimated receiver clock drift.void
setClockOffset
(double clockOffset) Sets estimated receiver clock offset expressed in meters (m).void
setClockOffset
(com.irurueta.units.Distance clockOffset) Sets estimated receiver clock offset.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
(ECEFPosition ecefPosition) Sets estimated ECEF user position.void
setEcefVelocity
(ECEFVelocity ecefVelocity) Sets estimated ECEF user velocity.void
setPosition
(com.irurueta.geometry.Point3D position) Sets estimated ECEF user position expressed in meters (m).void
setPositionAndVelocity
(ECEFPositionAndVelocity positionAndVelocity) Sets estimated ECEF user position and velocity.void
setPositionCoordinates
(double x, double y, double z) Sets coordinates of estimated ECEF user position expressed in meters (m).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
setSpeedX
(com.irurueta.units.Speed speedX) Sets x coordinate of estimated ECEF user velocity.void
setSpeedY
(com.irurueta.units.Speed speedY) Sets y coordinate of estimated ECEF user velocity.void
setSpeedZ
(com.irurueta.units.Speed speedZ) Sets z coordinate of estimated ECEF user velocity.void
setVelocityCoordinates
(double vx, double vy, double vz) Sets coordinates of estimated ECEF user velocity expressed in meters per second (m/s).void
setVelocityCoordinates
(com.irurueta.units.Speed speedX, com.irurueta.units.Speed speedY, com.irurueta.units.Speed speedZ) Sets coordinates of estimated ECEF user velocity.void
setVx
(double vx) Sets x coordinate of estimated ECEF user velocity expressed in meters per second (m/s).void
setVy
(double vy) Sets y coordinate of estimated ECEF user velocity expressed in meters per second (m/s).void
setVz
(double vz) Sets z coordinate of estimated ECEF user velocity 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).
-
Field Details
-
NUM_PARAMETERS
public static final int NUM_PARAMETERSNumber of parameters stored into Kalman filter state.- See Also:
-
x
private double xX coordinate of estimated ECEF user position expressed in meters (m). -
y
private double yY coordinate of estimated ECEF user position expressed in meters (m). -
z
private double zZ coordinate of estimated ECEF user position expressed in meters (m). -
vx
private double vxX coordinate of estimated ECEF user velocity expressed in meters per second (m/s). -
vy
private double vyY coordinate of estimated ECEF user velocity expressed in meters per second (m/s). -
vz
private double vzZ coordinate of estimated ECEF user velocity expressed in meters per second (m/s). -
clockOffset
private double clockOffsetEstimated receiver clock offset expressed in meters (m). -
clockDrift
private double clockDriftEstimated receiver clock drift expressed in meters per second (m/s).
-
-
Constructor Details
-
GNSSEstimation
public GNSSEstimation()Constructor. -
GNSSEstimation
public GNSSEstimation(double x, double y, double z, double vx, double vy, double vz, double clockOffset, double clockDrift) Constructor.- 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).vx
- x coordinate of estimated ECEF user velocity expressed in meters per second (m/s).vy
- y coordinate of estimated ECEF user velocity expressed in meters per second (m/s).vz
- z coordinate of estimated ECEF user velocity expressed in meters per second (m/s).clockOffset
- estimated receiver clock offset expressed in meters (m).clockDrift
- estimated receiver clock drift expressed in meters per second (m/s).
-
GNSSEstimation
public GNSSEstimation(com.irurueta.units.Distance x, com.irurueta.units.Distance y, com.irurueta.units.Distance z, com.irurueta.units.Speed vx, com.irurueta.units.Speed vy, com.irurueta.units.Speed vz, com.irurueta.units.Distance clockOffset, com.irurueta.units.Speed clockDrift) Constructor.- 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.vx
- x coordinate of estimated ECEF user velocity.vy
- y coordinate of estimated ECEF user velocity.vz
- z coordinate of estimated ECEF user velocity.clockOffset
- estimated receiver clock offset.clockDrift
- estimated receiver clock drift.
-
GNSSEstimation
public GNSSEstimation(com.irurueta.geometry.Point3D position, double vx, double vy, double vz, double clockOffset, double clockDrift) Constructor.- Parameters:
position
- estimated ECEF user position.vx
- x coordinate of estimated ECEF user velocity expressed in meters per second (m/s).vy
- y coordinate of estimated ECEF user velocity expressed in meters per second (m/s).vz
- z coordinate of estimated ECEF user velocity expressed in meters per second (m/s).clockOffset
- estimated receiver clock offset expressed in meters (m).clockDrift
- estimated receiver clock drift expressed in meters per second (m/s).
-
GNSSEstimation
public GNSSEstimation(com.irurueta.geometry.Point3D position, com.irurueta.units.Speed vx, com.irurueta.units.Speed vy, com.irurueta.units.Speed vz, com.irurueta.units.Distance clockOffset, com.irurueta.units.Speed clockDrift) Constructor.- Parameters:
position
- estimated ECEF user position.vx
- x coordinate of estimated ECEF user velocity.vy
- y coordinate of estimated ECEF user velocity.vz
- z coordinate of estimated ECEF user velocity.clockOffset
- estimated receiver clock offset.clockDrift
- estimated receiver clock drift. 8
-
-
Method Details
-
getX
public double getX()Gets x coordinate of estimated ECEF user position expressed in meters (m).- Returns:
- x coordinate of estimated ECEF user position.
-
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.
-
getY
public double getY()Gets y coordinate of estimated ECEF user position expressed in meters (m).- Returns:
- y coordinate of estimated ECEF user position.
-
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.
-
getZ
public double getZ()Gets z coordinate of estimated ECEF user position expressed in meters (m).- Returns:
- z coordinate of estimated ECEF user position.
-
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.
-
setPositionCoordinates
public void setPositionCoordinates(double x, double y, double z) Sets coordinates of estimated ECEF user position expressed in meters (m).- Parameters:
x
- x coordinate.y
- y coordinate.z
- z coordinate.
-
getVx
public double getVx()Gets x coordinate of estimated ECEF user velocity expressed in meters per second (m/s).- Returns:
- x coordinate of estimated ECEF user velocity.
-
setVx
public void setVx(double vx) Sets x coordinate of estimated ECEF user velocity expressed in meters per second (m/s).- Parameters:
vx
- x coordinate of estimated ECEF user velocity.
-
getVy
public double getVy()Gets y coordinate of estimated ECEF user velocity expressed in meters per second (m/s).- Returns:
- y coordinate of estimated ECEF user velocity.
-
setVy
public void setVy(double vy) Sets y coordinate of estimated ECEF user velocity expressed in meters per second (m/s).- Parameters:
vy
- y coordinate of estimated ECEF user velocity.
-
getVz
public double getVz()Gets z coordinate of estimated ECEF user velocity expressed in meters per second (m/s).- Returns:
- z coordinate of estimated ECEF user velocity.
-
setVz
public void setVz(double vz) Sets z coordinate of estimated ECEF user velocity expressed in meters per second (m/s).- Parameters:
vz
- z coordinate of estimated ECEF user velocity.
-
setVelocityCoordinates
public void setVelocityCoordinates(double vx, double vy, double vz) Sets coordinates of estimated ECEF user velocity expressed in meters per second (m/s).- Parameters:
vx
- x coordinate.vy
- y coordinate.vz
- z coordinate.
-
getClockOffset
public double getClockOffset()Gets estimated receiver clock offset expressed in meters (m). Notice that clock offset is estimated in terms of distance, since timing errors will ultimately be propagated as distance errors.- Returns:
- estimated receiver clock offset.
-
setClockOffset
public void setClockOffset(double clockOffset) Sets estimated receiver clock offset expressed in meters (m). Notice that clock offset is estimated in terms of distance, since timing errors are ultimately propagated as distance errors.- Parameters:
clockOffset
- estimated receiver clock offset.
-
getClockDrift
public double getClockDrift()Gets estimated receiver clock drift expressed in meters per second (m/s). Notice that the rate at which clock errors increase or decrease will ultimately propagate as speed (and hence position) errors.- Returns:
- estimated receiver clock drift.
-
setClockDrift
public void setClockDrift(double clockDrift) Sets estimated receiver clock drift expressed in meters per second (m/s). Notice that the rate at which clock errors increase or decrease will ultimately propagate as speed (and hence position) errors.- Parameters:
clockDrift
- estimated receiver clock drift.
-
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.y
- y coordinate.z
- z coordinate.
-
getSpeedX
public void getSpeedX(com.irurueta.units.Speed result) Gets x coordinate of estimated ECEF user velocity.- Parameters:
result
- instance where x coordinate of estimated ECEF user velocity will be stored.
-
getSpeedX
public com.irurueta.units.Speed getSpeedX()Gets x coordinate of estimated ECEF user velocity.- Returns:
- x coordinate of estimated ECEF user velocity.
-
setSpeedX
public void setSpeedX(com.irurueta.units.Speed speedX) Sets x coordinate of estimated ECEF user velocity.- Parameters:
speedX
- x coordinate of estimated ECEF user velocity.
-
getSpeedY
public void getSpeedY(com.irurueta.units.Speed result) Gets y coordinate of estimated ECEF user velocity.- Parameters:
result
- instance where y coordinate of estimated ECEF user velocity will be stored.
-
getSpeedY
public com.irurueta.units.Speed getSpeedY()Gets y coordinate of estimated ECEF user velocity.- Returns:
- y coordinate of estimated ECEF user velocity.
-
setSpeedY
public void setSpeedY(com.irurueta.units.Speed speedY) Sets y coordinate of estimated ECEF user velocity.- Parameters:
speedY
- y coordinate of estimated ECEF user velocity.
-
getSpeedZ
public void getSpeedZ(com.irurueta.units.Speed result) Gets z coordinate of estimated ECEF user velocity.- Parameters:
result
- instance where z coordinate of estimated ECEF user velocity will be stored.
-
getSpeedZ
public com.irurueta.units.Speed getSpeedZ()Gets z coordinate of estimated ECEF user velocity.- Returns:
- z coordinate of estimated ECEF user velocity.
-
setSpeedZ
public void setSpeedZ(com.irurueta.units.Speed speedZ) Sets z coordinate of estimated ECEF user velocity.- Parameters:
speedZ
- z coordinate of estimated ECEF user velocity.
-
setVelocityCoordinates
public void setVelocityCoordinates(com.irurueta.units.Speed speedX, com.irurueta.units.Speed speedY, com.irurueta.units.Speed speedZ) Sets coordinates of estimated ECEF user velocity.- Parameters:
speedX
- x coordinate.speedY
- y coordinate.speedZ
- z coordinate.
-
getClockOffsetDistance
public void getClockOffsetDistance(com.irurueta.units.Distance result) Gets estimated receiver clock offset. Notice that clock offset is estimated in terms of distance, since timing errors will ultimately be propagated as distance errors.- Parameters:
result
- instance where estimated receiver clock offset will be stored.
-
getClockOffsetDistance
public com.irurueta.units.Distance getClockOffsetDistance()Gets estimated receiver clock offset. Notice that clock offset is estimated in terms of distance, since timing errors will ultimately be propagated as distance errors.- Returns:
- estimated receiver clock offset.
-
setClockOffset
public void setClockOffset(com.irurueta.units.Distance clockOffset) Sets estimated receiver clock offset. Notice that clock offset is estimated in terms of distance, since timing errors are ultimately propagated as distance errors.- Parameters:
clockOffset
- estimated receiver clock offset.
-
getClockDriftSpeed
public void getClockDriftSpeed(com.irurueta.units.Speed result) Gets estimated receiver clock drift. Notice that the rate at which clock errors increase or decrease will ultimately propagate as speed (and hence position) errors.- Parameters:
result
- instance where estimated receiver clock drift will be stored.
-
getClockDriftSpeed
public com.irurueta.units.Speed getClockDriftSpeed()Gets estimated receiver clock drift. Notice that the rate at which clock errors increase or decrease will ultimately propagate as speed (and hence position) errors.- Returns:
- estimated receiver clock drift.
-
setClockDrift
public void setClockDrift(com.irurueta.units.Speed clockDrift) Sets estimated receiver clock drift. Notice that the rate at which clock errors increase or decrease will ultimately propagate as speed (and hence position) errors.- Parameters:
clockDrift
- estimated receiver clock drift.
-
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 will be stored.
-
getPosition
public com.irurueta.geometry.Point3D getPosition()Gets estimated ECEF user position expressed in meters (m).- Returns:
- estimated ECEF user position.
-
setPosition
public void setPosition(com.irurueta.geometry.Point3D position) Sets estimated ECEF user position expressed in meters (m).- Parameters:
position
- estimated ECEF user position.
-
getEcefPosition
Gets estimated ECEF user position.- Returns:
- estimated ECEF user position.
-
getEcefVelocity
Gets estimated ECEF user velocity.- Returns:
- estimated ECEF user velocity.
-
getPositionAndVelocity
Gets estimated ECEF user position and velocity.- Returns:
- estimated ECEF user position and velocity.
-
asArray
public void asArray(double[] result) Converts state data into an array.- Parameters:
result
- instance where state data will be stored.- Throws:
IllegalArgumentException
- if provided array does not have length 8.
-
asArray
public double[] asArray()Converts state data into an array.- Returns:
- a new array containing state data.
-
fromArray
public void fromArray(double[] array) Sets array values into this instance state.- Parameters:
array
- array to copy data from.- Throws:
IllegalArgumentException
- if provided array does not have length 8.
-
asMatrix
public void asMatrix(com.irurueta.algebra.Matrix result) Converts state data into a column matrix. If provided matrix is not 8x1 it will be resized.- Parameters:
result
- instance where state data will be stored.
-
asMatrix
public com.irurueta.algebra.Matrix asMatrix()Converts state data into a column matrix.- Returns:
- a new 8x1 column matrix containing state data.
-
fromMatrix
public void fromMatrix(com.irurueta.algebra.Matrix matrix) Sets matrix values into this instance state.- Parameters:
matrix
- matrix to copy data from.- Throws:
IllegalArgumentException
- if provided matrix is not 8x1.
-
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. -
equals
Checks if provided object is a GNSSKalmanStateEstimates having exactly the same contents as this instance. -
clone
Makes a copy of this instance.- Overrides:
clone
in classObject
- Returns:
- a copy of this instance.
- Throws:
CloneNotSupportedException
- if clone fails for some reason.
-