FrameType.java

/*
 * Copyright (C) 2019 Alberto Irurueta Carro (alberto@irurueta.com)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *         http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.irurueta.navigation.frames;

/**
 * Supported frames to describe position and orientation.
 */
public enum FrameType {
    /**
     * Earth Centered Inertial frame (aka ECI frame) is an almost inertial frame (which means it does not accelerate
     * or rotate with respect to the rest of the universe).
     * This frame is nominally centered at the Earth's center of mass and oriented with respect to Earth's
     * spin axis and the stars.
     * The z-axis always points along the Earth's axis of rotation from the frame's origin at the center of
     * mass to the true north pole (not the magnetic pole).
     * The x- and y-axes lie within the equatorial plane, but do not rotate with Earth.
     * The y-axis points 90º ahead of the x-axis in the direction of the Earth's rotation.
     * The x-axis is defined as the direction from the Earth to the Sun at the vernal equinox, which is
     * the spring equinox in the northern hemisphere.
     * Because of Earth rotation and orbit around the Sun, axes of this frame are continuously in
     * movement respect to Earth's surface.
     */
    EARTH_CENTERED_INERTIAL_FRAME,

    /**
     * Earth Centered Fixed frame (aka ECEF frame).
     * This frame is similar to ECI frame except that all axes remain fixed with respect to the Earth's
     * surface.
     * ECEF is also centered at Earth's center of mass.
     * The z-axis is the same as that of ECI's frame, pointing along Earth's axis of rotation from the
     * center to the north pole (true not magnetic).
     * The x-axis points from the center to the intersection of the equator with the IERS Reference
     * Meridian (IRM) or Conventional Zero Meridian (CZM), which defines 0º longitude.
     * The y-axis completes the right-handed orthogonal set, pointing from the center to the
     * intersection of the equator with the 90º east meridian.
     */
    EARTH_CENTERED_EARTH_FIXED_FRAME,

    /**
     * Local Navigation frame.
     * Its origin is the object described by the navigation solution. This could be part of the navigation
     * system itself or the center of mass of the host vehicle or user.
     * The axes are aligned with the topographic directions: north, east, and vertical.
     * By convention the z-axis, also known as the down (D) axis, is defined as the normal to the surface
     * of the reference ellipsoid in the direction pointing towards the Earth. Simple gravity models
     * assume that the gravity vector is coincident with the z-axis of the corresponding local navigation
     * frame. True gravity deviates from this slightly due to local anomalies.
     * The x-axis, or north (N) axis, is the projection in the plane orthogonal to the z-axis of the line
     * from the user to the North Pole.
     * The y-axis completes the orthogonal set by pointing east and is known as the east (E) axis.
     * North, east, down is the most common order of the axes in a local navigation coordinate system.
     * This frame is also known as NED frame, standing for North, East and Down.
     */
    LOCAL_NAVIGATION_FRAME,

    /**
     * Local Tangent-Plane frame.
     * Has a fixed origin with respect to the Earth, usually a point on the surface.
     * Like the local navigation frame, its z-axis is aligned with the vertical (pointing either up or
     * down). Its x- and y-axes may also be aligned with the topographic directions (i.e., north and east),
     * in which case it may be known as a local geodecit frame or topocentric frame. However,
     * the x- and y-axes may be also aligned with an environmental feature, such as a road or building.
     * As with the other frames, the axes form a right-handed orthogonal set.
     * This frame is Earth-fixed, but not Earth-centered.
     * This type of frame is used for navigation within a localized area. Examples include aircraft
     * landing and urban and indoor positioning.
     * A planar frame, can be used for two-dimensional positioning, where its third dimension is
     * neglected. It may comprise the horizontal components of the local tangent-plane frame or
     * may be used to express projected coordinates.
     */
    LOCAL_TANGENT_PLANE_FRAME,

    /**
     * Body frame.
     * Sometimes known as a vehicle frame.
     * Comprises the origin and orientation of the object described by the navigation solution.
     * The origin is coincident with that of the corresponding local navigation frame.
     * However, the axes remain fixed with respect to the body.
     * The most common convention is to set x-axis as the forward axis, pointing in the usual
     * direction of travel, z is the down axis, pointing in the usual direction of gravity, and y
     * is the right axis, completing the orthogonal set. For angular motion, the body-frame axes
     * are also known as roll, pitch, and yaw. Roll motion is about the x-axis, pitch motion is
     * about the y-axis, and yaw motion is about the z-axis.
     */
    BODY_FRAME
}