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 ).
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:
timeArray of times at which to interpolate.methodInterpolation method (LINEAR or CUBIC).
Returns:
GlobalPose with interpolated poses.
function Slice¶
Get a slice of poses.
Parameters:
startStart index (inclusive).endEnd index (exclusive).
Returns:
GlobalPose containing the sliced poses.
function angular_rate¶
Compute angular rate from attitude time derivative.
Parameters:
navigation_frameIf true, return in navigation frame; otherwise sensor frame.
Returns:
Angular rate (3xN matrix).
function attitude¶
Get attitude.
function earth_rate¶
Get Earth rate vector at the pose position.
Parameters:
sensor_frameIf true, return in sensor frame; otherwise navigation frame.
Returns:
Earth rate vectors (3xN matrix).
function earth_rate_model¶
Get earth rate model.
function gravity¶
Get gravity vector at the pose position.
Parameters:
sensor_frameIf true, return in sensor frame; otherwise navigation frame.
Returns:
Gravity vectors (3xN matrix).
function gravity_model¶
Get gravity model.
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_frameIf true, return in navigation frame; otherwise sensor frame.
Returns:
Inertial angular rate (3xN matrix).
function navigation_frame¶
Get navigation frame.
function num_elements¶
Number of elements (alias for num_poses).
function num_poses¶
Number of poses stored.
function operator[]¶
Get a single pose by index.
Parameters:
indexIndex of the pose to retrieve.
Returns:
GlobalPose containing a single pose.
function position¶
Get position as Coordinates .
function specific_force¶
Compute specific force from velocity and attitude derivatives.
Parameters:
navigation_frameIf true, return in navigation frame; otherwise sensor frame.
Returns:
Specific force (3xN matrix).
function time¶
Get time array.
function velocity¶
Get velocity.
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:
attitudeRotation object.positionCoordinates object.velocityVector object.gravity_modelGravity model (default: EllipsoidalGravity).earth_rate_modelEarth rate model (default: EllipsoidalEarthRate).
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:
attitudeRotation object.positionCoordinates object.velocityVector object.gravity_modelGravity model (default: EllipsoidalGravity).earth_rate_modelEarth rate model (default: EllipsoidalEarthRate).
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:
attitudeRotation object.positionCoordinates object (inertial coordinates).velocityVector object.gravity_modelGravity model (default: ConstantGravity).
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:
attitudeRotation object.positionCoordinates object.velocityVector object.gravity_modelGravity model (default: ConstantGravity).earth_rate_modelEarth rate model (default: ZeroEarthRate).
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:
attitudeRotation object.positionCoordinates object.velocityVector object.gravity_modelGravity model (default: EllipsoidalGravity).earth_rate_modelEarth rate model (default: EllipsoidalEarthRate).
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_frameNavigation frame for the pose.attitudeRotation representing pose attitude.positionCoordinates representing position (for geodetic/ECEF/topocentric).velocityVector representing velocity.gravity_modelGravity model for calculating gravity.earth_rate_modelEarth rate model for calculating Earth rotation.
The documentation for this class was generated from the following file cpp/include/inertialsim/geodesy/pose.h