Program Listing for File navigation.hpp
↰ Return to documentation for file (src/navtk/navutils/navigation.hpp)
#pragma once
#include <memory>
#include <utility>
#include <navtk/tensors.hpp>
namespace navtk {
namespace navutils {
Matrix3 axis_angle_to_dcm(const Vector3 &axis, double angle);
Matrix calc_van_loan(const Matrix &F, const Matrix &G, const Matrix &Q, double dt);
Matrix3 correct_dcm_with_tilt(const Matrix3 &dcm, const Vector3 &tilt);
Vector4 dcm_to_quat(const Matrix3 &dcm);
Vector3 dcm_to_rpy(const Matrix3 &dcm);
double delta_lat_to_north(double delta_lat, double approx_lat, double altitude = 0.0);
double delta_lon_to_east(double delta_lon, double approx_lat, double altitude = 0.0);
std::pair<Matrix, Matrix> discretize_first_order(const Matrix &f, const Matrix &q, double dt);
std::pair<Matrix, Matrix> discretize_second_order(const Matrix &f, const Matrix &q, double dt);
std::pair<Matrix, Matrix> discretize_van_loan(const Matrix &f, const Matrix &q, double dt);
double east_to_delta_lon(double east_distance, double approx_lat, double altitude = 0.0);
Matrix3 ecef_to_cen(const Vector3 &Pe);
Vector3 ecef_to_llh(const Vector3 &Pe);
Vector3 ecef_to_local_level(const Vector3 &P0e, const Vector3 &Pe);
Matrix3 llh_to_cen(const Vector3 &Pwgs);
Vector3 llh_to_ecef(const Vector3 &Pwgs);
Vector3 local_level_to_ecef(const Vector3 &P0e, const Vector3 &Pn);
double meridian_radius(double latitude);
double north_to_delta_lat(double north_distance, double approx_lat, double altitude = 0.0);
Matrix3 quat_to_dcm(const Vector4 &quat);
Vector3 quat_to_rpy(const Vector4 &quat);
Matrix3 rpy_to_dcm(const Vector3 &rpy);
Vector4 rpy_to_quat(const Vector3 &rpy);
double transverse_radius(double latitude);
Matrix3 wander_to_C_enu_to_n(double wander);
Matrix3 wander_to_C_ned_to_n(double wander);
Matrix3 wander_to_C_ned_to_l(double wander);
Matrix3 lat_lon_wander_to_C_n_to_e(double lat, double lon, double wander = 0.0);
Vector3 C_n_to_e_to_lat_lon_wander(const Matrix &C_n_to_e);
double C_n_to_e_to_wander(const Matrix3 &C_n_to_e);
std::pair<Matrix3, double> ecef_wander_to_C_n_to_e_h(const Vector3 &ecef_pos, double wander = 0.0);
Vector3 C_n_to_e_h_to_llh(const Matrix3 &C_n_to_e, double h);
Vector3 C_n_to_e_h_to_ecef(const Matrix3 &C_n_to_e, double h);
Matrix3 C_ecef_to_e();
Matrix3 rot_vec_to_dcm(const Vector3 &phi);
std::pair<bool, double> geoid_minus_ellipsoid(double latitude,
double longitude,
const std::string &path = "WW15MGH.GRD");
std::pair<bool, double> hae_to_msl(double hae,
double latitude,
double longitude,
const std::string &path = "WW15MGH.GRD");
std::pair<bool, double> msl_to_hae(double msl,
double latitude,
double longitude,
const std::string &path = "WW15MGH.GRD");
} // namespace navutils
} // namespace navtk