#pragma once #include #include "common/transformations/coordinates.hpp" Eigen::Quaterniond ensure_unique(const Eigen::Quaterniond &quat); Eigen::Quaterniond euler2quat(const Eigen::Vector3d &euler); Eigen::Vector3d quat2euler(const Eigen::Quaterniond &quat); Eigen::Matrix3d quat2rot(const Eigen::Quaterniond &quat); Eigen::Quaterniond rot2quat(const Eigen::Matrix3d &rot); Eigen::Matrix3d euler2rot(const Eigen::Vector3d &euler); Eigen::Vector3d rot2euler(const Eigen::Matrix3d &rot); Eigen::Matrix3d rot_matrix(double roll, double pitch, double yaw); Eigen::Matrix3d rot(const Eigen::Vector3d &axis, double angle); Eigen::Vector3d ecef_euler_from_ned(const ECEF &ecef_init, const Eigen::Vector3d &ned_pose); Eigen::Vector3d ned_euler_from_ecef(const ECEF &ecef_init, const Eigen::Vector3d &ecef_pose);