Class NEDFrame

java.lang.Object
com.irurueta.navigation.frames.NEDFrame
All Implemented Interfaces:
Frame, Serializable, Cloneable

public class NEDFrame extends Object implements Frame, Serializable, Cloneable
Contains position, velocity and coordinates transformation matrix expressed in NED frame. Position is expressed as latitude, longitude and height. Velocity of body frame is expressed with respect ECEF frame and resolved along north, east and down axes, as defined in FrameType.LOCAL_NAVIGATION_FRAME.
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    Body to NED coordinate transformation matrix.
    private double
    Height expressed in meters.
    private double
    Latitude expressed in radians.
    private double
    Longitude expressed in radians.
    static final int
    Number of coordinates representing velocity.
    private double
    Coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along Down axis.
    private double
    Coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along East axis.
    private double
    Coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along North axis.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructor.
    NEDFrame(double latitude, double longitude, double height)
    Constructor.
    NEDFrame(double latitude, double longitude, double height, double vn, double ve, double vd)
    Constructor.
    NEDFrame(double latitude, double longitude, double height, double vn, double ve, double vd, CoordinateTransformation c)
    Constructor.
    NEDFrame(double latitude, double longitude, double height, CoordinateTransformation c)
    Constructor.
    NEDFrame(double latitude, double longitude, double height, com.irurueta.units.Speed speedN, com.irurueta.units.Speed speedE, com.irurueta.units.Speed speedD)
    Constructor.
    NEDFrame(double latitude, double longitude, double height, com.irurueta.units.Speed speedN, com.irurueta.units.Speed speedE, com.irurueta.units.Speed speedD, CoordinateTransformation c)
    Constructor.
    NEDFrame(double latitude, double longitude, com.irurueta.units.Distance height)
    Constructor.
    NEDFrame(double latitude, double longitude, com.irurueta.units.Distance height, double vn, double ve, double vd)
    Constructor.
    NEDFrame(double latitude, double longitude, com.irurueta.units.Distance height, double vn, double ve, double vd, CoordinateTransformation c)
    Constructor.
    NEDFrame(double latitude, double longitude, com.irurueta.units.Distance height, com.irurueta.units.Speed speedN, com.irurueta.units.Speed speedE, com.irurueta.units.Speed speedD)
    Constructor.
    NEDFrame(double latitude, double longitude, com.irurueta.units.Distance height, com.irurueta.units.Speed speedN, com.irurueta.units.Speed speedE, com.irurueta.units.Speed speedD, CoordinateTransformation c)
    Constructor.
    Constructor.
    Constructor.
    Constructor.
    Constructor.
    NEDFrame(NEDPosition position, NEDVelocity velocity)
    Constructor.
    Constructor.
    NEDFrame(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height)
    Constructor.
    NEDFrame(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, double vn, double ve, double vd)
    Constructor.
    NEDFrame(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, double vn, double ve, double vd, CoordinateTransformation c)
    Constructor.
    NEDFrame(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, CoordinateTransformation c)
    Constructor.
    NEDFrame(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, com.irurueta.units.Speed speedN, com.irurueta.units.Speed speedE, com.irurueta.units.Speed speedD)
    Constructor.
    NEDFrame(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, com.irurueta.units.Speed speedN, com.irurueta.units.Speed speedE, com.irurueta.units.Speed speedD, CoordinateTransformation c)
    Constructor.
    NEDFrame(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height)
    Constructor.
    NEDFrame(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, double vn, double ve, double vd)
    Constructor.
    NEDFrame(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, double vn, double ve, double vd, CoordinateTransformation c)
    Constructor.
    NEDFrame(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, CoordinateTransformation c)
    Constructor.
    NEDFrame(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, com.irurueta.units.Speed speedN, com.irurueta.units.Speed speedE, com.irurueta.units.Speed speedD)
    Constructor.
    NEDFrame(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, com.irurueta.units.Speed speedN, com.irurueta.units.Speed speedE, com.irurueta.units.Speed speedD, CoordinateTransformation c)
    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
    copyTo(NEDFrame output)
    Copies this instance data into provided instance.
    boolean
    Checks if provided instance has exactly the same contents as this instance.
    boolean
    equals(NEDFrame other, double threshold)
    Checks if provided instance has contents similar to this instance up to provided threshold value.
    boolean
    Checks if provided object is an ECEFFrame having exactly the same contents as this instance.
    Gets coordinate transformation matrix.
    void
    Gets coordinate transformation matrix.
    com.irurueta.algebra.Matrix
    Gets coordinate transformation matrix.
    void
    getCoordinateTransformationMatrix(com.irurueta.algebra.Matrix result)
    Gets coordinate transformation matrix.
    com.irurueta.geometry.Rotation3D
    Gets coordinate transformation as a new 3D rotation instance.
    void
    getCoordinateTransformationRotation(com.irurueta.geometry.Rotation3D result)
    Gets coordinate transformation as a 3D rotation.
    double
    Gets height expressed in meters.
    com.irurueta.units.Distance
    Gets height.
    void
    getHeightDistance(com.irurueta.units.Distance result)
    Gets height.
    double
    Gets latitude expressed in radians.
    com.irurueta.units.Angle
    Gets latitude.
    void
    getLatitudeAngle(com.irurueta.units.Angle result)
    Gets latitude.
    double
    Gets longitude expressed in radians.
    com.irurueta.units.Angle
    Gets longitude.
    void
    getLongitudeAngle(com.irurueta.units.Angle result)
    Gets longitude.
    Gets curvilinear position, expressed in terms of latitude, longitude and height.
    void
    Gets curvilinear position, expressed in terms of latitude, longitude and height.
    com.irurueta.units.Speed
    Gets coordinate of velocity of body frame with respect ECEF frame and resolved along Down axis.
    void
    getSpeedD(com.irurueta.units.Speed result)
    Gets coordinate of velocity of body frame with respect ECEF frame and resolved along Down axis.
    com.irurueta.units.Speed
    Gets coordinate of velocity of body frame with respect ECEF frame and resolved along East axis.
    void
    getSpeedE(com.irurueta.units.Speed result)
    Gets coordinate of velocity of body frame with respect ECEF frame and resolved along East axis.
    com.irurueta.units.Speed
    Gets coordinate of velocity of body frame with respect ECEF frame and resolved along North axis.
    void
    getSpeedN(com.irurueta.units.Speed result)
    Gets coordinate of velocity of body frame with respect ECEF frame and resolved along North axis.
    double
    Gets coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along Down axis.
    double
    Gets coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along East axis.
    Gets velocity coordinates of body frame resolved along North, East, Down axes.
    void
    Gets velocity coordinates of body frame resolved along North, East, Down axes.
    double
    Gets norm of velocity expressed in meters per second (m/s), which represents the speed of the body.
    com.irurueta.units.Speed
    Gets norm of velocity, which represents the speed of the body.
    void
    getVelocityNormAsSpeed(com.irurueta.units.Speed result)
    Gets norm of velocity, which represents the speed of the body.
    double
    Gets coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along North axis.
    int
    Computes and returns hash code for this instance.
    static boolean
    Checks whether provided coordinate transformation matrix is valid or not.
    void
    Sets coordinate transformation matrix.
    void
    setCoordinateTransformationMatrix(com.irurueta.algebra.Matrix matrix)
    Sts coordinate transformation matrix keeping current source and destination FrameType.
    void
    setCoordinateTransformationMatrix(com.irurueta.algebra.Matrix matrix, double threshold)
    Sets coordinate transformation matrix keeping current source and destination FrameType.
    void
    setCoordinateTransformationRotation(com.irurueta.geometry.Rotation3D rotation)
    Sets coordinate transformation from 3D rotation and keeping current source and destination FrameType.
    void
    setHeight(double height)
    Sets height expressed in meters.
    void
    setHeightDistance(com.irurueta.units.Distance heightDistance)
    Sets height.
    void
    setLatitude(double latitude)
    Sets latitude expressed in radians.
    void
    setLatitudeAngle(com.irurueta.units.Angle latitudeAngle)
    Sets latitude.
    void
    setLongitude(double longitude)
    Sets longitude expressed in radians.
    void
    setLongitudeAngle(com.irurueta.units.Angle longitudeAngle)
    Sets longitude.
    void
    setPosition(double latitude, double longitude, double height)
    Sets body position.
    void
    setPosition(double latitude, double longitude, com.irurueta.units.Distance height)
    Sets body position.
    void
    Sets curvilinear position, expressed in terms of latitude, longitude and height.
    void
    setPosition(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height)
    Sets body position.
    void
    setPosition(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height)
    Sets body position.
    void
    setSpeedCoordinates(com.irurueta.units.Speed speedN, com.irurueta.units.Speed speedE, com.irurueta.units.Speed speedD)
    Sets velocity coordinates of body frame resolved along North, East, Down axes.
    void
    setSpeedD(com.irurueta.units.Speed speedD)
    Sets coordinate of velocity of body frame with respect ECEF frame and resolved along Down axis.
    void
    setSpeedE(com.irurueta.units.Speed speedE)
    Sets coordinate of velocity of body frame with respect ECEF frame and resolved along East axis.
    void
    setSpeedN(com.irurueta.units.Speed speedN)
    Sets coordinate of velocity of body frame with respect ECEF frame and resolved along North axis.
    void
    setVd(double vd)
    Sets coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along Down axis.
    void
    setVe(double ve)
    Sets coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along East axis.
    void
    Sets velocity coordinates of body frame resolved along North, East, Down axes.
    void
    setVelocityCoordinates(double vn, double ve, double vd)
    Sets velocity coordinates of body frame expressed in meters per second (m/s) resolved along North, East, Down axes.
    void
    setVn(double vn)
    Sets coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along North axis.

    Methods inherited from class java.lang.Object

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

    • NUM_VELOCITY_COORDINATES

      public static final int NUM_VELOCITY_COORDINATES
      Number of coordinates representing velocity.
      See Also:
    • latitude

      private double latitude
      Latitude expressed in radians.
    • longitude

      private double longitude
      Longitude expressed in radians.
    • height

      private double height
      Height expressed in meters.
    • vn

      private double vn
      Coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along North axis.
    • ve

      private double ve
      Coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along East axis.
    • vd

      private double vd
      Coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along Down axis.
    • c

      Body to NED coordinate transformation matrix.
  • Constructor Details

    • NEDFrame

      public NEDFrame()
      Constructor. Initializes position and velocity coordinates to zero and the coordinate transformation matrix to the identity.
    • NEDFrame

      Constructor.
      Parameters:
      c - Body to NED (Local Navigation frame) coordinate transformation matrix to be set.
      Throws:
      InvalidSourceAndDestinationFrameTypeException - if source or destination frame types are invalid.
    • NEDFrame

      public NEDFrame(double latitude, double longitude, double height)
      Constructor.
      Parameters:
      latitude - latitude expressed in radians.
      longitude - longitude expressed in radians.
      height - height expressed in meters.
    • NEDFrame

      public NEDFrame(double latitude, double longitude, com.irurueta.units.Distance height)
      Constructor.
      Parameters:
      latitude - latitude expressed in radians to be set.
      longitude - longitude expressed in radians to be set.
      height - height to be set.
    • NEDFrame

      public NEDFrame(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height)
      Constructor.
      Parameters:
      latitude - latitude to be set.
      longitude - longitude to be set.
      height - height expressed in meters to be set.
    • NEDFrame

      public NEDFrame(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height)
      Constructor.
      Parameters:
      latitude - latitude to be set.
      longitude - longitude to be set.
      height - height to be set.
    • NEDFrame

      public NEDFrame(NEDPosition position)
      Constructor.
      Parameters:
      position - curvilinear position containing latitude, longitude and height.
    • NEDFrame

      public NEDFrame(double latitude, double longitude, double height, double vn, double ve, double vd)
      Constructor.
      Parameters:
      latitude - latitude expressed in radians.
      longitude - longitude expressed in radians.
      height - height expressed in meters.
      vn - coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along North axis.
      ve - coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along East axis.
      vd - coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along Down axis.
    • NEDFrame

      public NEDFrame(double latitude, double longitude, com.irurueta.units.Distance height, double vn, double ve, double vd)
      Constructor.
      Parameters:
      latitude - latitude expressed in radians to be set.
      longitude - longitude expressed in radians to be set.
      height - height to be set.
      vn - coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along North axis.
      ve - coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along East axis.
      vd - coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along Down axis.
    • NEDFrame

      public NEDFrame(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, double vn, double ve, double vd)
      Constructor.
      Parameters:
      latitude - latitude to be set.
      longitude - longitude to be set.
      height - height expressed in meters to be set.
      vn - coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along North axis.
      ve - coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along East axis.
      vd - coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along Down axis.
    • NEDFrame

      public NEDFrame(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, double vn, double ve, double vd)
      Constructor.
      Parameters:
      latitude - latitude to be set.
      longitude - longitude to be set.
      height - height to be set.
      vn - coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along North axis.
      ve - coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along East axis.
      vd - coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along Down axis.
    • NEDFrame

      public NEDFrame(double latitude, double longitude, double height, com.irurueta.units.Speed speedN, com.irurueta.units.Speed speedE, com.irurueta.units.Speed speedD)
      Constructor.
      Parameters:
      latitude - latitude expressed in radians.
      longitude - longitude expressed in radians.
      height - height expressed in meters.
      speedN - coordinate of velocity of body frame with respect ECEF frame and resolved along North axis.
      speedE - coordinate of velocity of body frame with respect ECEF frame and resolved along East axis.
      speedD - coordinate of velocity of body frame with respect ECEF frame and resolved along Down axis.
    • NEDFrame

      public NEDFrame(double latitude, double longitude, com.irurueta.units.Distance height, com.irurueta.units.Speed speedN, com.irurueta.units.Speed speedE, com.irurueta.units.Speed speedD)
      Constructor.
      Parameters:
      latitude - latitude expressed in radians.
      longitude - longitude expressed in radians.
      height - height to be set.
      speedN - coordinate of velocity of body frame with respect ECEF frame and resolved along North axis.
      speedE - coordinate of velocity of body frame with respect ECEF frame and resolved along East axis.
      speedD - coordinate of velocity of body frame with respect ECEF frame and resolved along Down axis.
    • NEDFrame

      public NEDFrame(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, com.irurueta.units.Speed speedN, com.irurueta.units.Speed speedE, com.irurueta.units.Speed speedD)
      Constructor.
      Parameters:
      latitude - latitude to be set.
      longitude - longitude to be set.
      height - height expressed in meters to be set
      speedN - coordinate of velocity of body frame with respect ECEF frame and resolved along North axis.
      speedE - coordinate of velocity of body frame with respect ECEF frame and resolved along East axis.
      speedD - coordinate of velocity of body frame with respect ECEF frame and resolved along Down axis.
    • NEDFrame

      public NEDFrame(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, com.irurueta.units.Speed speedN, com.irurueta.units.Speed speedE, com.irurueta.units.Speed speedD)
      Constructor.
      Parameters:
      latitude - latitude to be set.
      longitude - longitude to be set.
      height - height to be set.
      speedN - coordinate of velocity of body frame with respect ECEF frame and resolved along North axis.
      speedE - coordinate of velocity of body frame with respect ECEF frame and resolved along East axis.
      speedD - coordinate of velocity of body frame with respect ECEF frame and resolved along Down axis.
    • NEDFrame

      public NEDFrame(NEDPosition position, NEDVelocity velocity)
      Constructor.
      Parameters:
      position - curvilinear position to be set containing latitude, longitude and height.
      velocity - velocity of body frame resolved along North, East, Down axes.
    • NEDFrame

      public NEDFrame(double latitude, double longitude, double height, CoordinateTransformation c) throws InvalidSourceAndDestinationFrameTypeException
      Constructor.
      Parameters:
      latitude - latitude expressed in radians.
      longitude - longitude expressed in radians.
      height - height expressed in meters.
      c - Body to NED (Local Navigation frame) coordinate transformation matrix to be set.
      Throws:
      InvalidSourceAndDestinationFrameTypeException - if source or destination frame types are invalid.
    • NEDFrame

      public NEDFrame(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, CoordinateTransformation c) throws InvalidSourceAndDestinationFrameTypeException
      Constructor.
      Parameters:
      latitude - latitude to be set.
      longitude - longitude to be set.
      height - height expressed in meters to be set.
      c - Body to NED (Local Navigation frame) coordinate transformation matrix to be set.
      Throws:
      InvalidSourceAndDestinationFrameTypeException - if source or destination frame types are invalid.
    • NEDFrame

      public NEDFrame(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, CoordinateTransformation c) throws InvalidSourceAndDestinationFrameTypeException
      Constructor.
      Parameters:
      latitude - latitude to be set.
      longitude - longitude to be set.
      height - height to be set.
      c - Body to NED (Local Navigation frame) coordinate transformation matrix to be set.
      Throws:
      InvalidSourceAndDestinationFrameTypeException - if source or destination frame types are invalid.
    • NEDFrame

      Constructor.
      Parameters:
      position - curvilinear position containing latitude, longitude and height.
      c - Body to NED (Local Navigation frame) coordinate transformation matrix to be set.
      Throws:
      InvalidSourceAndDestinationFrameTypeException - if source or destination frame types are invalid.
    • NEDFrame

      public NEDFrame(double latitude, double longitude, double height, double vn, double ve, double vd, CoordinateTransformation c) throws InvalidSourceAndDestinationFrameTypeException
      Constructor.
      Parameters:
      latitude - latitude expressed in radians.
      longitude - longitude expressed in radians.
      height - height expressed in meters.
      vn - coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along North axis.
      ve - coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along East axis.
      vd - coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along Down axis.
      c - Body to NED (Local Navigation frame) coordinate transformation matrix to be set.
      Throws:
      InvalidSourceAndDestinationFrameTypeException - if source or destination frame types are invalid.
    • NEDFrame

      public NEDFrame(double latitude, double longitude, com.irurueta.units.Distance height, double vn, double ve, double vd, CoordinateTransformation c) throws InvalidSourceAndDestinationFrameTypeException
      Constructor.
      Parameters:
      latitude - latitude expressed in radians to be set.
      longitude - longitude expressed in radians to be set.
      height - height to be set.
      vn - coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along North axis.
      ve - coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along East axis.
      vd - coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along Down axis.
      c - Body to NED (Local Navigation frame) coordinate transformation matrix to be set.
      Throws:
      InvalidSourceAndDestinationFrameTypeException - if source or destination frame types are invalid.
    • NEDFrame

      public NEDFrame(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, double vn, double ve, double vd, CoordinateTransformation c) throws InvalidSourceAndDestinationFrameTypeException
      Constructor.
      Parameters:
      latitude - latitude to be set.
      longitude - longitude to be set.
      height - height expressed in meters to be set.
      vn - coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along North axis.
      ve - coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along East axis.
      vd - coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along Down axis.
      c - Body to NED (Local Navigation frame) coordinate transformation matrix to be set.
      Throws:
      InvalidSourceAndDestinationFrameTypeException - if source or destination frame types are invalid.
    • NEDFrame

      public NEDFrame(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, double vn, double ve, double vd, CoordinateTransformation c) throws InvalidSourceAndDestinationFrameTypeException
      Constructor.
      Parameters:
      latitude - latitude to be set.
      longitude - longitude to be set.
      height - height to be set.
      vn - coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along North axis.
      ve - coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along East axis.
      vd - coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along Down axis.
      c - Body to NED (Local Navigation frame) coordinate transformation matrix to be set.
      Throws:
      InvalidSourceAndDestinationFrameTypeException - if source or destination frame types are invalid.
    • NEDFrame

      public NEDFrame(double latitude, double longitude, double height, com.irurueta.units.Speed speedN, com.irurueta.units.Speed speedE, com.irurueta.units.Speed speedD, CoordinateTransformation c) throws InvalidSourceAndDestinationFrameTypeException
      Constructor.
      Parameters:
      latitude - latitude expressed in radians.
      longitude - longitude expressed in radians.
      height - height expressed in meters.
      speedN - coordinate of velocity of body frame with respect ECEF frame and resolved along North axis.
      speedE - coordinate of velocity of body frame with respect ECEF frame and resolved along East axis.
      speedD - coordinate of velocity of body frame with respect ECEF frame and resolved along Down axis.
      c - Body to NED (Local Navigation frame) coordinate transformation matrix to be set.
      Throws:
      InvalidSourceAndDestinationFrameTypeException - if source or destination frame types are invalid.
    • NEDFrame

      public NEDFrame(double latitude, double longitude, com.irurueta.units.Distance height, com.irurueta.units.Speed speedN, com.irurueta.units.Speed speedE, com.irurueta.units.Speed speedD, CoordinateTransformation c) throws InvalidSourceAndDestinationFrameTypeException
      Constructor.
      Parameters:
      latitude - latitude expressed in radians.
      longitude - longitude expressed in radians.
      height - height to be set.
      speedN - coordinate of velocity of body frame with respect ECEF frame and resolved along North axis.
      speedE - coordinate of velocity of body frame with respect ECEF frame and resolved along East axis.
      speedD - coordinate of velocity of body frame with respect ECEF frame and resolved along Down axis.
      c - Body to NED (Local Navigation frame) coordinate transformation matrix to be set.
      Throws:
      InvalidSourceAndDestinationFrameTypeException - if source or destination frame types are invalid.
    • NEDFrame

      public NEDFrame(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height, com.irurueta.units.Speed speedN, com.irurueta.units.Speed speedE, com.irurueta.units.Speed speedD, CoordinateTransformation c) throws InvalidSourceAndDestinationFrameTypeException
      Constructor.
      Parameters:
      latitude - latitude to be set.
      longitude - longitude to be set.
      height - height expressed in meters to be set
      speedN - coordinate of velocity of body frame with respect ECEF frame and resolved along North axis.
      speedE - coordinate of velocity of body frame with respect ECEF frame and resolved along East axis.
      speedD - coordinate of velocity of body frame with respect ECEF frame and resolved along Down axis.
      c - Body to NED (Local Navigation frame) coordinate transformation matrix to be set.
      Throws:
      InvalidSourceAndDestinationFrameTypeException - if source or destination frame types are invalid.
    • NEDFrame

      public NEDFrame(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height, com.irurueta.units.Speed speedN, com.irurueta.units.Speed speedE, com.irurueta.units.Speed speedD, CoordinateTransformation c) throws InvalidSourceAndDestinationFrameTypeException
      Constructor.
      Parameters:
      latitude - latitude to be set.
      longitude - longitude to be set.
      height - height to be set.
      speedN - coordinate of velocity of body frame with respect ECEF frame and resolved along North axis.
      speedE - coordinate of velocity of body frame with respect ECEF frame and resolved along East axis.
      speedD - coordinate of velocity of body frame with respect ECEF frame and resolved along Down axis.
      c - Body to NED (Local Navigation frame) coordinate transformation matrix to be set.
      Throws:
      InvalidSourceAndDestinationFrameTypeException - if source or destination frame types are invalid.
    • NEDFrame

      Constructor.
      Parameters:
      position - curvilinear position to be set containing latitude, longitude and height.
      velocity - velocity of body frame resolved along North, East, Down axes.
      c - Body to NED (Local Navigation frame) coordinate transformation matrix to be set.
      Throws:
      InvalidSourceAndDestinationFrameTypeException - if source or destination frame types are invalid.
    • NEDFrame

      public NEDFrame(NEDFrame input)
      Constructor.
      Parameters:
      input - NED frame to copy data from.
  • Method Details

    • getLatitude

      public double getLatitude()
      Gets latitude expressed in radians.
      Returns:
      latitude expressed in radians.
    • setLatitude

      public void setLatitude(double latitude)
      Sets latitude expressed in radians.
      Parameters:
      latitude - latitude expressed in radians to be set.
    • getLongitude

      public double getLongitude()
      Gets longitude expressed in radians.
      Returns:
      longitude expressed in radians.
    • setLongitude

      public void setLongitude(double longitude)
      Sets longitude expressed in radians.
      Parameters:
      longitude - longitude expressed in radians to be set.
    • getHeight

      public double getHeight()
      Gets height expressed in meters.
      Returns:
      height expressed in meters.
    • setHeight

      public void setHeight(double height)
      Sets height expressed in meters.
      Parameters:
      height - height expressed in meters to be set.
    • setPosition

      public void setPosition(double latitude, double longitude, double height)
      Sets body position.
      Parameters:
      latitude - latitude expressed in radians to be set.
      longitude - longitude expressed in radians to be set.
      height - height expressed in meters to be set.
    • getLatitudeAngle

      public void getLatitudeAngle(com.irurueta.units.Angle result)
      Gets latitude.
      Parameters:
      result - instance where latitude will be stored.
    • getLatitudeAngle

      public com.irurueta.units.Angle getLatitudeAngle()
      Gets latitude.
      Returns:
      latitude.
    • setLatitudeAngle

      public void setLatitudeAngle(com.irurueta.units.Angle latitudeAngle)
      Sets latitude.
      Parameters:
      latitudeAngle - latitude to be set.
    • getLongitudeAngle

      public void getLongitudeAngle(com.irurueta.units.Angle result)
      Gets longitude.
      Parameters:
      result - instance where longitude will be stored.
    • getLongitudeAngle

      public com.irurueta.units.Angle getLongitudeAngle()
      Gets longitude.
      Returns:
      longitude.
    • setLongitudeAngle

      public void setLongitudeAngle(com.irurueta.units.Angle longitudeAngle)
      Sets longitude.
      Parameters:
      longitudeAngle - longitude to be set.
    • getHeightDistance

      public void getHeightDistance(com.irurueta.units.Distance result)
      Gets height.
      Parameters:
      result - instance where height will be stored.
    • getHeightDistance

      public com.irurueta.units.Distance getHeightDistance()
      Gets height.
      Returns:
      height.
    • setHeightDistance

      public void setHeightDistance(com.irurueta.units.Distance heightDistance)
      Sets height.
      Parameters:
      heightDistance - height to be set.
    • setPosition

      public void setPosition(double latitude, double longitude, com.irurueta.units.Distance height)
      Sets body position.
      Parameters:
      latitude - latitude expressed in radians to be set.
      longitude - longitude expressed in radians to be set.
      height - height to be set.
    • setPosition

      public void setPosition(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, double height)
      Sets body position.
      Parameters:
      latitude - latitude to be set.
      longitude - longitude to be set.
      height - height expressed in meters to be set.
    • setPosition

      public void setPosition(com.irurueta.units.Angle latitude, com.irurueta.units.Angle longitude, com.irurueta.units.Distance height)
      Sets body position.
      Parameters:
      latitude - latitude to be set.
      longitude - longitude to be set.
      height - height to be set.
    • getPosition

      public void getPosition(NEDPosition result)
      Gets curvilinear position, expressed in terms of latitude, longitude and height.
      Parameters:
      result - instance where curvilinear coordinates will be stored.
    • getPosition

      public NEDPosition getPosition()
      Gets curvilinear position, expressed in terms of latitude, longitude and height.
      Returns:
      curvilinear coordinates.
    • setPosition

      public void setPosition(NEDPosition position)
      Sets curvilinear position, expressed in terms of latitude, longitude and height.
      Parameters:
      position - curvilinear position to be set.
    • getVn

      public double getVn()
      Gets coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along North axis.
      Returns:
      North velocity coordinate value.
    • setVn

      public void setVn(double vn)
      Sets coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along North axis.
      Parameters:
      vn - North velocity coordinate value.
    • getVe

      public double getVe()
      Gets coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along East axis.
      Returns:
      East velocity coordinate value.
    • setVe

      public void setVe(double ve)
      Sets coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along East axis.
      Parameters:
      ve - East velocity coordinate value.
    • getVd

      public double getVd()
      Gets coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along Down axis.
      Returns:
      Down velocity coordinate value.
    • setVd

      public void setVd(double vd)
      Sets coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECEF frame and resolved along Down axis.
      Parameters:
      vd - Down velocity coordinate value.
    • setVelocityCoordinates

      public void setVelocityCoordinates(double vn, double ve, double vd)
      Sets velocity coordinates of body frame expressed in meters per second (m/s) resolved along North, East, Down axes.
      Parameters:
      vn - North velocity coordinate value.
      ve - East velocity coordinate value.
      vd - Down velocity coordinate value.
    • getVelocityNorm

      public double getVelocityNorm()
      Gets norm of velocity expressed in meters per second (m/s), which represents the speed of the body.
      Returns:
      norm of velocity expressed in meters per second (m/s).
    • getVelocityNormAsSpeed

      public void getVelocityNormAsSpeed(com.irurueta.units.Speed result)
      Gets norm of velocity, which represents the speed of the body.
      Parameters:
      result - velocity norm.
    • getVelocityNormAsSpeed

      public com.irurueta.units.Speed getVelocityNormAsSpeed()
      Gets norm of velocity, which represents the speed of the body.
      Returns:
      velocity norm.
    • getSpeedN

      public void getSpeedN(com.irurueta.units.Speed result)
      Gets coordinate of velocity of body frame with respect ECEF frame and resolved along North axis.
      Parameters:
      result - instance where North velocity coordinate will be stored.
    • getSpeedN

      public com.irurueta.units.Speed getSpeedN()
      Gets coordinate of velocity of body frame with respect ECEF frame and resolved along North axis.
      Returns:
      North velocity coordinate.
    • setSpeedN

      public void setSpeedN(com.irurueta.units.Speed speedN)
      Sets coordinate of velocity of body frame with respect ECEF frame and resolved along North axis.
      Parameters:
      speedN - North velocity coordinate to be set.
    • getSpeedE

      public void getSpeedE(com.irurueta.units.Speed result)
      Gets coordinate of velocity of body frame with respect ECEF frame and resolved along East axis.
      Parameters:
      result - instance where East velocity coordinate will be stored.
    • getSpeedE

      public com.irurueta.units.Speed getSpeedE()
      Gets coordinate of velocity of body frame with respect ECEF frame and resolved along East axis.
      Returns:
      East velocity coordinate.
    • setSpeedE

      public void setSpeedE(com.irurueta.units.Speed speedE)
      Sets coordinate of velocity of body frame with respect ECEF frame and resolved along East axis.
      Parameters:
      speedE - East velocity coordinate to be set.
    • getSpeedD

      public void getSpeedD(com.irurueta.units.Speed result)
      Gets coordinate of velocity of body frame with respect ECEF frame and resolved along Down axis.
      Parameters:
      result - instance where Down velocity coordinate will be stored.
    • getSpeedD

      public com.irurueta.units.Speed getSpeedD()
      Gets coordinate of velocity of body frame with respect ECEF frame and resolved along Down axis.
      Returns:
      Down velocity coordinate.
    • setSpeedD

      public void setSpeedD(com.irurueta.units.Speed speedD)
      Sets coordinate of velocity of body frame with respect ECEF frame and resolved along Down axis.
      Parameters:
      speedD - Down velocity coordinate to be set.
    • setSpeedCoordinates

      public void setSpeedCoordinates(com.irurueta.units.Speed speedN, com.irurueta.units.Speed speedE, com.irurueta.units.Speed speedD)
      Sets velocity coordinates of body frame resolved along North, East, Down axes.
      Parameters:
      speedN - North velocity coordinate.
      speedE - East velocity coordinate.
      speedD - Down velocity coordinate.
    • getVelocity

      public void getVelocity(NEDVelocity result)
      Gets velocity coordinates of body frame resolved along North, East, Down axes.
      Parameters:
      result - instance where velocity values will be stored.
    • getVelocity

      public NEDVelocity getVelocity()
      Gets velocity coordinates of body frame resolved along North, East, Down axes.
      Returns:
      velocity coordinates.
    • setVelocity

      public void setVelocity(NEDVelocity velocity)
      Sets velocity coordinates of body frame resolved along North, East, Down axes.
      Parameters:
      velocity - velocity to be set.
    • getCoordinateTransformation

      public CoordinateTransformation getCoordinateTransformation()
      Gets coordinate transformation matrix.
      Specified by:
      getCoordinateTransformation in interface Frame
      Returns:
      coordinate transformation matrix.
    • getCoordinateTransformation

      public void getCoordinateTransformation(CoordinateTransformation result)
      Gets coordinate transformation matrix.
      Specified by:
      getCoordinateTransformation in interface Frame
      Parameters:
      result - instance where coordinate transformation matrix will be copied to.
    • getCoordinateTransformationMatrix

      public com.irurueta.algebra.Matrix getCoordinateTransformationMatrix()
      Gets coordinate transformation matrix. This is equivalent to calling getCoordinateTransformation().getMatrix(), but more efficient
      Specified by:
      getCoordinateTransformationMatrix in interface Frame
      Returns:
      coordinate transformation matrix.
    • getCoordinateTransformationMatrix

      public void getCoordinateTransformationMatrix(com.irurueta.algebra.Matrix result)
      Gets coordinate transformation matrix. This is equivalent to calling getCoordinateTransformation().getMatrix(), but more efficient
      Specified by:
      getCoordinateTransformationMatrix in interface Frame
      Parameters:
      result - instance where coordinate transformation matrix will be copied to.
    • setCoordinateTransformationMatrix

      public void setCoordinateTransformationMatrix(com.irurueta.algebra.Matrix matrix, double threshold) throws com.irurueta.geometry.InvalidRotationMatrixException
      Sets coordinate transformation matrix keeping current source and destination FrameType. This is more efficient than getting a copy of coordinate transformation calling to getCoordinateTransformation(), setting coordinate matrix into copied coordinate transformation and then setting the coordinate transformation calling setCoordinateTransformation(CoordinateTransformation).
      Specified by:
      setCoordinateTransformationMatrix in interface Frame
      Parameters:
      matrix - a 3x3 coordinate transformation matrix to be set.
      threshold - threshold to validate rotation matrix.
      Throws:
      com.irurueta.geometry.InvalidRotationMatrixException - if provided matrix is not a valid rotation matrix (3x3 and orthonormal).
      IllegalArgumentException - if provided threshold is negative.
    • setCoordinateTransformationMatrix

      public void setCoordinateTransformationMatrix(com.irurueta.algebra.Matrix matrix) throws com.irurueta.geometry.InvalidRotationMatrixException
      Sts coordinate transformation matrix keeping current source and destination FrameType. This is more efficient than getting a copy of coordinate transformation calling to getCoordinateTransformation(), setting coordinate matrix into copied coordinate transformation and then setting the coordinate transformation calling setCoordinateTransformation(CoordinateTransformation).
      Specified by:
      setCoordinateTransformationMatrix in interface Frame
      Parameters:
      matrix - a 3x3 coordinate transformation matrix to be set.
      Throws:
      com.irurueta.geometry.InvalidRotationMatrixException - if provided matrix is not a valid rotation matrix (3x3 and orthonormal).
    • getCoordinateTransformationRotation

      public com.irurueta.geometry.Rotation3D getCoordinateTransformationRotation() throws com.irurueta.geometry.InvalidRotationMatrixException
      Gets coordinate transformation as a new 3D rotation instance. This is equivalent to calling getCoordinateTransformation().asRotation(), but more efficient.
      Specified by:
      getCoordinateTransformationRotation in interface Frame
      Returns:
      new coordinate transformation as a 3D rotation.
      Throws:
      com.irurueta.geometry.InvalidRotationMatrixException - if internal matrix cannot be converted to a 3D rotation.
    • getCoordinateTransformationRotation

      public void getCoordinateTransformationRotation(com.irurueta.geometry.Rotation3D result) throws com.irurueta.geometry.InvalidRotationMatrixException
      Gets coordinate transformation as a 3D rotation. This is equivalent to calling getCoordinateTransformation().asRotation(), but more efficient.
      Specified by:
      getCoordinateTransformationRotation in interface Frame
      Parameters:
      result - instance where coordinate transformation 3D rotation will be copied to.
      Throws:
      com.irurueta.geometry.InvalidRotationMatrixException - if internal matrix cannot be converted to a 3D rotation.
    • setCoordinateTransformationRotation

      public void setCoordinateTransformationRotation(com.irurueta.geometry.Rotation3D rotation)
      Sets coordinate transformation from 3D rotation and keeping current source and destination FrameType. This is more efficient than getting a copy of coordinate transformation calling to getCoordinateTransformation(), setting rotation into copied coordinate transformation and then setting the coordinate transformation calling setCoordinateTransformation(CoordinateTransformation).
      Specified by:
      setCoordinateTransformationRotation in interface Frame
      Parameters:
      rotation - set rotation into current coordinate rotation.
    • setCoordinateTransformation

      public void setCoordinateTransformation(CoordinateTransformation c) throws InvalidSourceAndDestinationFrameTypeException
      Sets coordinate transformation matrix. Provided value must be a body to NED transformation matrix.
      Specified by:
      setCoordinateTransformation in interface Frame
      Parameters:
      c - coordinate transformation matrix to be set.
      Throws:
      InvalidSourceAndDestinationFrameTypeException - if source or destination frame types are invalid.
    • isValidCoordinateTransformation

      public static boolean isValidCoordinateTransformation(CoordinateTransformation c)
      Checks whether provided coordinate transformation matrix is valid or not. Only body to NED transformation matrices are considered to be valid.
      Parameters:
      c - coordinate transformation matrix to be checked.
      Returns:
      true if provided value is valid, false otherwise.
    • copyTo

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

      public void copyFrom(NEDFrame 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 an ECEFFrame 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(NEDFrame 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(NEDFrame 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 between position, velocity and coordinate transformation matrix.
      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.