Class FrameBodyKinematics

java.lang.Object
com.irurueta.navigation.inertial.calibration.FrameBodyKinematics
All Implemented Interfaces:
Serializable, Cloneable
Direct Known Subclasses:
StandardDeviationFrameBodyKinematics

public class FrameBodyKinematics extends Object implements Serializable, Cloneable
Contains a body kinematics measurement (accelerometer + gyroscope) along with the corresponding frame (position, orientation and velocity) where the kinematics measurement was made.
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private com.irurueta.navigation.frames.ECEFFrame
    Contains current body position, velocity (which will typically be zero) and orientation resolved around ECEF axes.
    Current body kinematics measurement.
    private com.irurueta.navigation.frames.ECEFFrame
    Contains body position, velocity (which will typically be zero) and orientation resolved around ECEF axes of previous IMU measurement.
    private static final long
    Serialization version.
    private double
    Time interval expressed in seconds (s) between IMU measurements used to obtain current frame and previous frame.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructor.
    FrameBodyKinematics(double timeInterval)
    Constructor.
    FrameBodyKinematics(com.irurueta.navigation.frames.ECEFFrame frame)
    Constructor.
    FrameBodyKinematics(com.irurueta.navigation.frames.ECEFFrame frame, com.irurueta.navigation.frames.ECEFFrame previousFrame)
    Constructor.
    FrameBodyKinematics(com.irurueta.navigation.frames.ECEFFrame frame, com.irurueta.navigation.frames.ECEFFrame previousFrame, double timeInterval)
    Constructor.
    FrameBodyKinematics(com.irurueta.navigation.frames.ECEFFrame frame, com.irurueta.navigation.frames.ECEFFrame previousFrame, com.irurueta.units.Time timeInterval)
    Constructor.
    FrameBodyKinematics(com.irurueta.navigation.frames.NEDFrame frame)
    Constructor.
    FrameBodyKinematics(com.irurueta.navigation.frames.NEDFrame frame, com.irurueta.navigation.frames.NEDFrame previousFrame)
    Constructor.
    FrameBodyKinematics(com.irurueta.navigation.frames.NEDFrame frame, com.irurueta.navigation.frames.NEDFrame previousFrame, double timeInterval)
    Constructor.
    FrameBodyKinematics(com.irurueta.navigation.frames.NEDFrame frame, com.irurueta.navigation.frames.NEDFrame previousFrame, com.irurueta.units.Time timeInterval)
    Constructor.
    Constructor.
    FrameBodyKinematics(BodyKinematics kinematics, com.irurueta.navigation.frames.ECEFFrame frame)
    Constructor.
    FrameBodyKinematics(BodyKinematics kinematics, com.irurueta.navigation.frames.ECEFFrame frame, com.irurueta.navigation.frames.ECEFFrame previousFrame)
    Constructor.
    FrameBodyKinematics(BodyKinematics kinematics, com.irurueta.navigation.frames.ECEFFrame frame, com.irurueta.navigation.frames.ECEFFrame previousFrame, double timeInterval)
    Constructor.
    FrameBodyKinematics(BodyKinematics kinematics, com.irurueta.navigation.frames.ECEFFrame frame, com.irurueta.navigation.frames.ECEFFrame previousFrame, com.irurueta.units.Time timeInterval)
    Constructor.
    FrameBodyKinematics(BodyKinematics kinematics, com.irurueta.navigation.frames.NEDFrame frame)
    Constructor.
    FrameBodyKinematics(BodyKinematics kinematics, com.irurueta.navigation.frames.NEDFrame frame, com.irurueta.navigation.frames.NEDFrame previousFrame)
    Constructor.
    FrameBodyKinematics(BodyKinematics kinematics, com.irurueta.navigation.frames.NEDFrame frame, com.irurueta.navigation.frames.NEDFrame previousFrame, double timeInterval)
    Constructor.
    FrameBodyKinematics(BodyKinematics kinematics, com.irurueta.navigation.frames.NEDFrame frame, com.irurueta.navigation.frames.NEDFrame previousFrame, com.irurueta.units.Time timeInterval)
    Constructor.
    Constructor.
    FrameBodyKinematics(com.irurueta.units.Time timeInterval)
    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(FrameBodyKinematics 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 FrameBodyKinematics instance having exactly the same contents as this instance.
    com.irurueta.navigation.frames.ECEFFrame
    Gets current body position (which will typically remain constant), velocity (which will typically be zero) and orientation (which usually changes with each measurement to perform calibration of a single device) resolved around ECEF axes associated to body kinematics measurement.
    Gets current body kinematics measurement.
    com.irurueta.navigation.frames.NEDFrame
    Gets current body position (which will typically remain constant), velocity (which will typically be zero) and orientation (which usually changes with each measurement to perform calibration of a single device) resolved around NED axes associated to body kinematics measurement.
    boolean
    getNedFrame(com.irurueta.navigation.frames.NEDFrame result)
    Gets current body position (which will typically remain constant), velocity (which will typically be zero) and orientation (which usually changes with each measurement to perform calibration of a single device) resolved around NED axes associated to body kinematics measurement.
    com.irurueta.navigation.frames.ECEFFrame
    Gets previous body position (which will typically remain constant), velocity (which will typically be zero) and orientation (which usually changes with each measurement to perform calibration of a single device) resolved around ECEF axes associated to previous body kinematics measurement.
    com.irurueta.navigation.frames.NEDFrame
    Gets previous body position (which will typically remain constant), velocity (which will typically be zero) and orientation (which usually changes with each measurement to perform calibration of a single device) resolved around NED axes associated to previous body kinematics measurement.
    boolean
    getPreviousNedFrame(com.irurueta.navigation.frames.NEDFrame result)
    Gets previous body position (which will typically remain constant), velocity (which will typically be zero) and orientation (which usually changes with each measurement to perform calibration of a single device) resolved around NED axes associated to previous body kinematics measurement.
    double
    Gets time interval expressed in seconds (s) between IMU measurements used to obtain current frame and previous frame.
    com.irurueta.units.Time
    Gets time interval between IMU measurements used to obtain current frame and previous frame.
    void
    getTimeIntervalAsTime(com.irurueta.units.Time result)
    Gets time interval between IMU measurements used to obtain current frame and previous frame.
    int
    Computes and returns hash code for this instance.
    void
    setFrame(com.irurueta.navigation.frames.ECEFFrame frame)
    Sets current body position (which will typically remain constant), velocity (which will typically be zero) and orientation (which usually changes with each measurement to perform calibration of a single device) resolved around ECEF axes associated to body kinematics measurement.
    void
    Sets current body kinematics measurement.
    void
    setNedFrame(com.irurueta.navigation.frames.NEDFrame nedFrame)
    Sets current body position (which will typically remain constant), velocity (which will typically be zero) and orientation (which usually changes with each measurement to perform calibration of a single device) resolved around NED axes associated to body kinematics measurement.
    void
    setPreviousFrame(com.irurueta.navigation.frames.ECEFFrame previousFrame)
    Sets previous body position (which will typically remain constant), velocity (which will typically be zero) and orientation (which usually changes with each measurement to perform calibration of a single device) resolved around ECEF axes associated to previous body kinematics measurement.
    void
    setPreviousNedFrame(com.irurueta.navigation.frames.NEDFrame previousNedFrame)
    Sets previous body position (which will typically remain constant), velocity (which will typically be zero) and orientation (which usually changes with each measurement to perform calibration of a single device) resolved around NED axes associated to previous body kinematics measurement.
    void
    setTimeInterval(double timeInterval)
    Sets time interval expressed in seconds (s) between IMU measurements used to obtain current frame and previous frame.
    void
    setTimeInterval(com.irurueta.units.Time timeInterval)
    Sets time interval between IMU measurements used to obtain current frame and previous frame.

    Methods inherited from class java.lang.Object

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

    • serialVersionUID

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

      private BodyKinematics kinematics
      Current body kinematics measurement. Contains accelerometer and gyroscope measurements.
    • frame

      private com.irurueta.navigation.frames.ECEFFrame frame
      Contains current body position, velocity (which will typically be zero) and orientation resolved around ECEF axes.
    • previousFrame

      private com.irurueta.navigation.frames.ECEFFrame previousFrame
      Contains body position, velocity (which will typically be zero) and orientation resolved around ECEF axes of previous IMU measurement.
    • timeInterval

      private double timeInterval
      Time interval expressed in seconds (s) between IMU measurements used to obtain current frame and previous frame.
  • Constructor Details

    • FrameBodyKinematics

      public FrameBodyKinematics()
      Constructor.
    • FrameBodyKinematics

      public FrameBodyKinematics(BodyKinematics kinematics)
      Constructor.
      Parameters:
      kinematics - current body kinematics measurement.
    • FrameBodyKinematics

      public FrameBodyKinematics(com.irurueta.navigation.frames.ECEFFrame frame)
      Constructor.
      Parameters:
      frame - current ECEF frame associated to measurement.
    • FrameBodyKinematics

      public FrameBodyKinematics(com.irurueta.navigation.frames.NEDFrame frame)
      Constructor.
      Parameters:
      frame - current NED frame associated to measurement. Internally it will be converted to its corresponding ECEF frame.
    • FrameBodyKinematics

      public FrameBodyKinematics(double timeInterval)
      Constructor.
      Parameters:
      timeInterval - time interval expressed in seconds (s) between IMU measurements used to obtain current frame and previous frame.
      Throws:
      IllegalArgumentException - if provided value is negative.
    • FrameBodyKinematics

      public FrameBodyKinematics(com.irurueta.units.Time timeInterval)
      Constructor.
      Parameters:
      timeInterval - time interval between IMU measurements used to obtain current frame and previous frame.
      Throws:
      IllegalArgumentException - if provided value is negative.
    • FrameBodyKinematics

      public FrameBodyKinematics(com.irurueta.navigation.frames.ECEFFrame frame, com.irurueta.navigation.frames.ECEFFrame previousFrame)
      Constructor.
      Parameters:
      frame - current ECEF frame associated to measurement.
      previousFrame - previous ECEF frame associated to measurement.
    • FrameBodyKinematics

      public FrameBodyKinematics(com.irurueta.navigation.frames.NEDFrame frame, com.irurueta.navigation.frames.NEDFrame previousFrame)
      Constructor.
      Parameters:
      frame - current NED frame associated to measurement. Internally it will be converted to its corresponding ECEF frame.
      previousFrame - previous NED frame associated to measurement. Internally it will be converted to its corresponding ECEF frame.
    • FrameBodyKinematics

      public FrameBodyKinematics(com.irurueta.navigation.frames.ECEFFrame frame, com.irurueta.navigation.frames.ECEFFrame previousFrame, double timeInterval)
      Constructor.
      Parameters:
      frame - current ECEF frame associated to measurement.
      previousFrame - previous ECEF frame associated to measurement.
      timeInterval - time interval expressed in seconds (s) between IMU measurements used to obtain current frame and previous frame.
      Throws:
      IllegalArgumentException - if provided value is negative.
    • FrameBodyKinematics

      public FrameBodyKinematics(com.irurueta.navigation.frames.ECEFFrame frame, com.irurueta.navigation.frames.ECEFFrame previousFrame, com.irurueta.units.Time timeInterval)
      Constructor.
      Parameters:
      frame - current ECEF frame associated to measurement.
      previousFrame - previous ECEF frame associated to measurement.
      timeInterval - time interval between IMU measurements used to obtain current frame and previous frame.
      Throws:
      IllegalArgumentException - if provided value is negative.
    • FrameBodyKinematics

      public FrameBodyKinematics(com.irurueta.navigation.frames.NEDFrame frame, com.irurueta.navigation.frames.NEDFrame previousFrame, double timeInterval)
      Constructor.
      Parameters:
      frame - current NED frame associated to measurement. Internally it will be converted to its corresponding ECEF frame.
      previousFrame - previous NED frame associated to measurement. Internally it will be converted to its corresponding ECEF frame.
      timeInterval - time interval expressed in seconds (s) between IMU measurements used to obtain current frame and previous frame.
      Throws:
      IllegalArgumentException - if provided value is negative.
    • FrameBodyKinematics

      public FrameBodyKinematics(com.irurueta.navigation.frames.NEDFrame frame, com.irurueta.navigation.frames.NEDFrame previousFrame, com.irurueta.units.Time timeInterval)
      Constructor.
      Parameters:
      frame - current NED frame associated to measurement. Internally it will be converted to its corresponding ECEF frame.
      previousFrame - previous NED frame associated to measurement. Internally it will be converted to its corresponding ECEF frame.
      timeInterval - time interval between IMU measurements used to obtain current frame and previous frame.
      Throws:
      IllegalArgumentException - if provided value is negative.
    • FrameBodyKinematics

      public FrameBodyKinematics(BodyKinematics kinematics, com.irurueta.navigation.frames.ECEFFrame frame)
      Constructor.
      Parameters:
      kinematics - current body kinematics measurement.
      frame - ECEF frame associated to measurement.
    • FrameBodyKinematics

      public FrameBodyKinematics(BodyKinematics kinematics, com.irurueta.navigation.frames.NEDFrame frame)
      Constructor.
      Parameters:
      kinematics - current body kinematics measurement.
      frame - NED frame associated to measurement. Internally it will be converted to its corresponding ECEF frame.
    • FrameBodyKinematics

      public FrameBodyKinematics(BodyKinematics kinematics, com.irurueta.navigation.frames.ECEFFrame frame, com.irurueta.navigation.frames.ECEFFrame previousFrame)
      Constructor.
      Parameters:
      kinematics - current body kinematics measurement.
      frame - current ECEF frame associated to measurement.
      previousFrame - previous ECEF frame associated to measurement.
    • FrameBodyKinematics

      public FrameBodyKinematics(BodyKinematics kinematics, com.irurueta.navigation.frames.NEDFrame frame, com.irurueta.navigation.frames.NEDFrame previousFrame)
      Constructor.
      Parameters:
      kinematics - current body kinematics measurement.
      frame - current NED frame associated to measurement. Internally it will be converted to its corresponding ECEF frame.
      previousFrame - previous NED frame associated to measurement. Internally it will be converted to its corresponding ECEF frame.
    • FrameBodyKinematics

      public FrameBodyKinematics(BodyKinematics kinematics, com.irurueta.navigation.frames.ECEFFrame frame, com.irurueta.navigation.frames.ECEFFrame previousFrame, double timeInterval)
      Constructor.
      Parameters:
      kinematics - current body kinematics measurement.
      frame - current ECEF frame associated to measurement.
      previousFrame - previous ECEF frame associated to measurement.
      timeInterval - time interval expressed in seconds (s) between IMU measurements used to obtain current frame and previous frame.
      Throws:
      IllegalArgumentException - if provided value is negative.
    • FrameBodyKinematics

      public FrameBodyKinematics(BodyKinematics kinematics, com.irurueta.navigation.frames.ECEFFrame frame, com.irurueta.navigation.frames.ECEFFrame previousFrame, com.irurueta.units.Time timeInterval)
      Constructor.
      Parameters:
      kinematics - current body kinematics measurement.
      frame - current ECEF frame associated to measurement.
      previousFrame - previous ECEF frame associated to measurement.
      timeInterval - time interval between IMU measurements used to obtain current frame and previous frame.
      Throws:
      IllegalArgumentException - if provided value is negative.
    • FrameBodyKinematics

      public FrameBodyKinematics(BodyKinematics kinematics, com.irurueta.navigation.frames.NEDFrame frame, com.irurueta.navigation.frames.NEDFrame previousFrame, double timeInterval)
      Constructor.
      Parameters:
      kinematics - current body kinematics measurement.
      frame - current NED frame associated to measurement. Internally it will be converted to its corresponding ECEF frame.
      previousFrame - previous NED frame associated to measurement. Internally it will be converted to its corresponding ECEF frame.
      timeInterval - time interval expressed in seconds (s) between IMU measurements used to obtain current frame and previous frame.
      Throws:
      IllegalArgumentException - if provided value is negative.
    • FrameBodyKinematics

      public FrameBodyKinematics(BodyKinematics kinematics, com.irurueta.navigation.frames.NEDFrame frame, com.irurueta.navigation.frames.NEDFrame previousFrame, com.irurueta.units.Time timeInterval)
      Constructor.
      Parameters:
      kinematics - current body kinematics measurement.
      frame - current NED frame associated to measurement. Internally it will be converted to its corresponding ECEF frame.
      previousFrame - previous NED frame associated to measurement. Internally it will be converted to its corresponding ECEF frame.
      timeInterval - time interval between IMU measurements used to obtain current frame and previous frame.
      Throws:
      IllegalArgumentException - if provided value is negative.
    • FrameBodyKinematics

      public FrameBodyKinematics(FrameBodyKinematics input)
      Constructor.
      Parameters:
      input - instance to copy data from.
  • Method Details

    • getKinematics

      public BodyKinematics getKinematics()
      Gets current body kinematics measurement. Contains accelerometer and gyroscope measurements.
      Returns:
      current body kinematics measurement.
    • setKinematics

      public void setKinematics(BodyKinematics kinematics)
      Sets current body kinematics measurement. Contains accelerometer and gyroscope measurements.
      Parameters:
      kinematics - current body kinematics measurement to be set.
    • getFrame

      public com.irurueta.navigation.frames.ECEFFrame getFrame()
      Gets current body position (which will typically remain constant), velocity (which will typically be zero) and orientation (which usually changes with each measurement to perform calibration of a single device) resolved around ECEF axes associated to body kinematics measurement.
      Returns:
      current ECEF frame associated to body kinematics measurement or null if not available.
    • setFrame

      public void setFrame(com.irurueta.navigation.frames.ECEFFrame frame)
      Sets current body position (which will typically remain constant), velocity (which will typically be zero) and orientation (which usually changes with each measurement to perform calibration of a single device) resolved around ECEF axes associated to body kinematics measurement.
      Parameters:
      frame - current ECEF frame
    • getNedFrame

      public com.irurueta.navigation.frames.NEDFrame getNedFrame()
      Gets current body position (which will typically remain constant), velocity (which will typically be zero) and orientation (which usually changes with each measurement to perform calibration of a single device) resolved around NED axes associated to body kinematics measurement.
      Returns:
      current NED frame associated to body kinematics measurement or null if not available.
    • getNedFrame

      public boolean getNedFrame(com.irurueta.navigation.frames.NEDFrame result)
      Gets current body position (which will typically remain constant), velocity (which will typically be zero) and orientation (which usually changes with each measurement to perform calibration of a single device) resolved around NED axes associated to body kinematics measurement.
      Parameters:
      result - instance where result data will be stored if available.
      Returns:
      true if result instance was updated, false otherwise.
    • setNedFrame

      public void setNedFrame(com.irurueta.navigation.frames.NEDFrame nedFrame)
      Sets current body position (which will typically remain constant), velocity (which will typically be zero) and orientation (which usually changes with each measurement to perform calibration of a single device) resolved around NED axes associated to body kinematics measurement.

      This method will internally store the corresponding ECEF frame to provided NED frame value.

      Parameters:
      nedFrame - current NED frame associated to body kinematics measurement to be set.
    • getPreviousFrame

      public com.irurueta.navigation.frames.ECEFFrame getPreviousFrame()
      Gets previous body position (which will typically remain constant), velocity (which will typically be zero) and orientation (which usually changes with each measurement to perform calibration of a single device) resolved around ECEF axes associated to previous body kinematics measurement.
      Returns:
      previous ECEF frame associated to previous body kinematics measurement or null if not available.
    • setPreviousFrame

      public void setPreviousFrame(com.irurueta.navigation.frames.ECEFFrame previousFrame)
      Sets previous body position (which will typically remain constant), velocity (which will typically be zero) and orientation (which usually changes with each measurement to perform calibration of a single device) resolved around ECEF axes associated to previous body kinematics measurement.
      Parameters:
      previousFrame - previous ECEF frame associated to previous body kinematics measurement.
    • getPreviousNedFrame

      public com.irurueta.navigation.frames.NEDFrame getPreviousNedFrame()
      Gets previous body position (which will typically remain constant), velocity (which will typically be zero) and orientation (which usually changes with each measurement to perform calibration of a single device) resolved around NED axes associated to previous body kinematics measurement.
      Returns:
      previous NED frame associated to previous body kinematics measurement or null if not available.
    • getPreviousNedFrame

      public boolean getPreviousNedFrame(com.irurueta.navigation.frames.NEDFrame result)
      Gets previous body position (which will typically remain constant), velocity (which will typically be zero) and orientation (which usually changes with each measurement to perform calibration of a single device) resolved around NED axes associated to previous body kinematics measurement.
      Parameters:
      result - instance where result data will be stored if available.
      Returns:
      true if result instance was updated, false otherwise.
    • setPreviousNedFrame

      public void setPreviousNedFrame(com.irurueta.navigation.frames.NEDFrame previousNedFrame)
      Sets previous body position (which will typically remain constant), velocity (which will typically be zero) and orientation (which usually changes with each measurement to perform calibration of a single device) resolved around NED axes associated to previous body kinematics measurement.
      Parameters:
      previousNedFrame - previous NED frame associated to body kinematics measurement to be set.
    • getTimeInterval

      public double getTimeInterval()
      Gets time interval expressed in seconds (s) between IMU measurements used to obtain current frame and previous frame.
      Returns:
      time interval expressed in seconds (s) between IMU measurements.
    • setTimeInterval

      public void setTimeInterval(double timeInterval)
      Sets time interval expressed in seconds (s) between IMU measurements used to obtain current frame and previous frame.
      Parameters:
      timeInterval - time interval expressed in seconds (s) between IMU measurements.
      Throws:
      IllegalArgumentException - if provided value is negative.
    • getTimeIntervalAsTime

      public com.irurueta.units.Time getTimeIntervalAsTime()
      Gets time interval between IMU measurements used to obtain current frame and previous frame.
      Returns:
      time interval between IMU measurements.
    • getTimeIntervalAsTime

      public void getTimeIntervalAsTime(com.irurueta.units.Time result)
      Gets time interval between IMU measurements used to obtain current frame and previous frame.
      Parameters:
      result - instance where result will be stored.
    • setTimeInterval

      public void setTimeInterval(com.irurueta.units.Time timeInterval)
      Sets time interval between IMU measurements used to obtain current frame and previous frame.
      Parameters:
      timeInterval - time interval between IMU measurements to be set.
      Throws:
      IllegalArgumentException - if provided value is negative.
    • copyFrom

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

      public void copyTo(FrameBodyKinematics output)
      Copies this instance data into provided instance.
      Parameters:
      output - destination instance where data will be copied to.
    • 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(FrameBodyKinematics 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(FrameBodyKinematics 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 allowed difference between kinematics and frame values.
      Returns:
      true if both instances are considered to be equal (up to provided threshold), false otherwise.
    • equals

      public boolean equals(Object obj)
      Checks if provided object is a FrameBodyKinematics instance 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.
    • 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.