Skip to content

Class inertialsim::geodesy::GlobalPose

ClassList > inertialsim > geodesy > GlobalPose

Pose and velocity with respect to Earth. More...

  • #include <pose.h>

Public Functions

Type Name
geometry::ExtendedPose AsExtendedPose () const
Convert to ExtendedPose ( geometry::ExtendedPose ).
GlobalPose Interpolate (const Timestamps & time, geometry::Interpolator method=geometry::Interpolator::LINEAR) const
Interpolate poses at given times.
GlobalPose Slice (int start, int end) const
Get a slice of poses.
Vector3D angular_rate (bool navigation_frame=false) const
Compute angular rate from attitude time derivative.
geometry::Rotation attitude () const
Get attitude.
Vector3D earth_rate (bool sensor_frame=false) const
Get Earth rate vector at the pose position.
std::shared_ptr< EarthRate > earth_rate_model () const
Get earth rate model.
Vector3D gravity (bool sensor_frame=false) const
Get gravity vector at the pose position.
std::shared_ptr< Gravity > gravity_model () const
Get gravity model.
Vector3D inertial_angular_rate (bool navigation_frame=false) const
Compute inertial angular rate (angular_rate + earth_rate).
CoordinateSystem navigation_frame () const
Get navigation frame.
int num_elements () const
Number of elements (alias for num_poses).
int num_poses () const
Number of poses stored.
GlobalPose operator[] (int index) const
Get a single pose by index.
Coordinates position () const
Get position as Coordinates .
Vector3D specific_force (bool navigation_frame=false) const
Compute specific force from velocity and attitude derivatives.
std::optional< Timestamps > time () const
Get time array.
std::optional< geometry::Vector > velocity () const
Get velocity.

Public Static Functions

Type Name
GlobalPose FromEcef (const geometry::Rotation & attitude, const Coordinates & position, const std::optional< geometry::Vector > & velocity, std::shared_ptr< Gravity > gravity_model=nullptr, std::shared_ptr< EarthRate > earth_rate_model=nullptr)
Create GlobalPose from ECEF coordinates.
GlobalPose FromGeodetic (const geometry::Rotation & attitude, const Coordinates & position, const std::optional< geometry::Vector > & velocity, std::shared_ptr< Gravity > gravity_model=nullptr, std::shared_ptr< EarthRate > earth_rate_model=nullptr)
Create GlobalPose from geodetic coordinates.
GlobalPose FromInertial (const geometry::Rotation & attitude, const Coordinates & position, const std::optional< geometry::Vector > & velocity, std::shared_ptr< Gravity > gravity_model)
Create GlobalPose from inertial frame coordinates.
GlobalPose FromLocal (const geometry::Rotation & attitude, const Coordinates & position, const std::optional< geometry::Vector > & velocity, std::shared_ptr< Gravity > gravity_model=nullptr, std::shared_ptr< EarthRate > earth_rate_model=nullptr)
Create GlobalPose from local Cartesian coordinates.
GlobalPose FromTopocentric (const geometry::Rotation & attitude, const Coordinates & position, const std::optional< geometry::Vector > & velocity, std::shared_ptr< Gravity > gravity_model=nullptr, std::shared_ptr< EarthRate > earth_rate_model=nullptr)
Create GlobalPose from topocentric coordinates.

Protected Functions

Type Name
GlobalPose (CoordinateSystem navigation_frame, const geometry::Rotation & attitude, const Coordinates & position, const std::optional< geometry::Vector > & velocity, std::shared_ptr< Gravity > gravity_model, std::shared_ptr< EarthRate > earth_rate_model)
Full constructor for GlobalPose .

Detailed Description

GlobalPose represents attitude, position, and velocity in the standard form for inertial navigation. Attitude is also known as orientation.

This class manages the full 3D pose (attitude + position) along with velocity, gravity model, and Earth rate model. It supports multiple coordinate systems for representing position.

Use the From* factory methods to construct instances. Do not call the protected constructor directly.

** **

This class is for managing poses with respect to Earth's coordinate systems. See geometry::Pose for purely geometric pose without Earth reference. See also Coordinates for position with respect to Earth and for more details about coordinate conventions.

Note:

Supported factory methods: * FromGeodetic(): Geodetic coordinates (latitude, longitude, altitude) * FromEcef(): Earth-Centered Earth-Fixed Cartesian coordinates * FromTopocentric(): Local tangent plane coordinates (NED/ENU) * FromLocal(): Local Cartesian coordinates (for non-Earth simulations) * FromInertial(): Inertial frame coordinates (no Earth rate model)

Note:

The From*() methods automatically set appropriate default gravity and Earth rate models if not explicitly provided. For example, FromGeodetic() defaults to EllipsoidalGravity and EllipsoidalEarthRate.

See also: geometry::Pose for purely geometric pose

See also: Coordinates for position representation

See also: geometry::ExtendedPose for acceleration/position/velocity representation

Public Functions Documentation

function AsExtendedPose

Convert to ExtendedPose ( geometry::ExtendedPose ).

geometry::ExtendedPose inertialsim::geodesy::GlobalPose::AsExtendedPose () const

Returns:

ExtendedPose instance representing the same pose.


function Interpolate

Interpolate poses at given times.

GlobalPose inertialsim::geodesy::GlobalPose::Interpolate (
    const Timestamps & time,
    geometry::Interpolator method=geometry::Interpolator::LINEAR
) const

Parameters:

  • time Array of times at which to interpolate.
  • method Interpolation method (LINEAR or CUBIC).

Returns:

GlobalPose with interpolated poses.


function Slice

Get a slice of poses.

GlobalPose inertialsim::geodesy::GlobalPose::Slice (
    int start,
    int end
) const

Parameters:

  • start Start index (inclusive).
  • end End index (exclusive).

Returns:

GlobalPose containing the sliced poses.


function angular_rate

Compute angular rate from attitude time derivative.

Vector3D inertialsim::geodesy::GlobalPose::angular_rate (
    bool navigation_frame=false
) const

Parameters:

  • navigation_frame If true, return in navigation frame; otherwise sensor frame.

Returns:

Angular rate (3xN matrix).


function attitude

Get attitude.

inline geometry::Rotation inertialsim::geodesy::GlobalPose::attitude () const


function earth_rate

Get Earth rate vector at the pose position.

Vector3D inertialsim::geodesy::GlobalPose::earth_rate (
    bool sensor_frame=false
) const

Parameters:

  • sensor_frame If true, return in sensor frame; otherwise navigation frame.

Returns:

Earth rate vectors (3xN matrix).


function earth_rate_model

Get earth rate model.

inline std::shared_ptr< EarthRate > inertialsim::geodesy::GlobalPose::earth_rate_model () const


function gravity

Get gravity vector at the pose position.

Vector3D inertialsim::geodesy::GlobalPose::gravity (
    bool sensor_frame=false
) const

Parameters:

  • sensor_frame If true, return in sensor frame; otherwise navigation frame.

Returns:

Gravity vectors (3xN matrix).


function gravity_model

Get gravity model.

inline std::shared_ptr< Gravity > inertialsim::geodesy::GlobalPose::gravity_model () const


function inertial_angular_rate

Compute inertial angular rate (angular_rate + earth_rate).

Vector3D inertialsim::geodesy::GlobalPose::inertial_angular_rate (
    bool navigation_frame=false
) const

Parameters:

  • navigation_frame If true, return in navigation frame; otherwise sensor frame.

Returns:

Inertial angular rate (3xN matrix).


function navigation_frame

Get navigation frame.

inline CoordinateSystem inertialsim::geodesy::GlobalPose::navigation_frame () const


function num_elements

Number of elements (alias for num_poses).

inline int inertialsim::geodesy::GlobalPose::num_elements () const


function num_poses

Number of poses stored.

inline int inertialsim::geodesy::GlobalPose::num_poses () const


function operator[]

Get a single pose by index.

GlobalPose inertialsim::geodesy::GlobalPose::operator[] (
    int index
) const

Parameters:

  • index Index of the pose to retrieve.

Returns:

GlobalPose containing a single pose.


function position

Get position as Coordinates .

inline Coordinates inertialsim::geodesy::GlobalPose::position () const


function specific_force

Compute specific force from velocity and attitude derivatives.

Vector3D inertialsim::geodesy::GlobalPose::specific_force (
    bool navigation_frame=false
) const

Parameters:

  • navigation_frame If true, return in navigation frame; otherwise sensor frame.

Returns:

Specific force (3xN matrix).


function time

Get time array.

inline std::optional< Timestamps > inertialsim::geodesy::GlobalPose::time () const


function velocity

Get velocity.

inline std::optional< geometry::Vector > inertialsim::geodesy::GlobalPose::velocity () const


Public Static Functions Documentation

function FromEcef

Create GlobalPose from ECEF coordinates.

static GlobalPose inertialsim::geodesy::GlobalPose::FromEcef (
    const geometry::Rotation & attitude,
    const Coordinates & position,
    const std::optional< geometry::Vector > & velocity,
    std::shared_ptr< Gravity > gravity_model=nullptr,
    std::shared_ptr< EarthRate > earth_rate_model=nullptr
) 

Parameters:

Returns:

GlobalPose instance in ECEF frame.


function FromGeodetic

Create GlobalPose from geodetic coordinates.

static GlobalPose inertialsim::geodesy::GlobalPose::FromGeodetic (
    const geometry::Rotation & attitude,
    const Coordinates & position,
    const std::optional< geometry::Vector > & velocity,
    std::shared_ptr< Gravity > gravity_model=nullptr,
    std::shared_ptr< EarthRate > earth_rate_model=nullptr
) 

Parameters:

Returns:

GlobalPose instance in geodetic frame.


function FromInertial

Create GlobalPose from inertial frame coordinates.

static GlobalPose inertialsim::geodesy::GlobalPose::FromInertial (
    const geometry::Rotation & attitude,
    const Coordinates & position,
    const std::optional< geometry::Vector > & velocity,
    std::shared_ptr< Gravity > gravity_model
) 

Parameters:

Returns:

GlobalPose instance in inertial frame.


function FromLocal

Create GlobalPose from local Cartesian coordinates.

static GlobalPose inertialsim::geodesy::GlobalPose::FromLocal (
    const geometry::Rotation & attitude,
    const Coordinates & position,
    const std::optional< geometry::Vector > & velocity,
    std::shared_ptr< Gravity > gravity_model=nullptr,
    std::shared_ptr< EarthRate > earth_rate_model=nullptr
) 

Parameters:

Returns:

GlobalPose instance in local frame.


function FromTopocentric

Create GlobalPose from topocentric coordinates.

static GlobalPose inertialsim::geodesy::GlobalPose::FromTopocentric (
    const geometry::Rotation & attitude,
    const Coordinates & position,
    const std::optional< geometry::Vector > & velocity,
    std::shared_ptr< Gravity > gravity_model=nullptr,
    std::shared_ptr< EarthRate > earth_rate_model=nullptr
) 

Parameters:

Returns:

GlobalPose instance in topocentric frame.


Protected Functions Documentation

function GlobalPose

Full constructor for GlobalPose .

inertialsim::geodesy::GlobalPose::GlobalPose (
    CoordinateSystem navigation_frame,
    const geometry::Rotation & attitude,
    const Coordinates & position,
    const std::optional< geometry::Vector > & velocity,
    std::shared_ptr< Gravity > gravity_model,
    std::shared_ptr< EarthRate > earth_rate_model
) 

Use the factory methods (FromGeodetic, FromEcef, etc.) instead of calling this constructor directly.

Parameters:

  • navigation_frame Navigation frame for the pose.
  • attitude Rotation representing pose attitude.
  • position Coordinates representing position (for geodetic/ECEF/topocentric).
  • velocity Vector representing velocity.
  • gravity_model Gravity model for calculating gravity.
  • earth_rate_model Earth rate model for calculating Earth rotation.


The documentation for this class was generated from the following file cpp/include/inertialsim/geodesy/pose.h