15 #include <Eigen/Dense>
24 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
52 const Eigen::Vector3d& p_ab,
const Eigen::Quaterniond& q_ab,
74 static Eigen::Matrix3d
Skew(
const Eigen::Vector3d& v);
82 static Eigen::Matrix4d
MatExp(
const Eigen::Matrix4d& A,
const int& order = 4);
91 static Eigen::Matrix4d
OmegaMat(
const Eigen::Vector3d& v);
107 const Eigen::Vector3d& correction);
123 static bool CheckCov(
const Eigen::MatrixXd& cov_mat,
const std::string& description,
const bool& check_cond =
false);
148 template <
typename T,
typename A>
151 std::vector<T> every_nth_data;
152 const int len = data.size();
154 for (
int k = 0; k < len - nth; k += nth)
156 every_nth_data.push_back(data[k]);
158 return every_nth_data;
162 static Eigen::Quaterniond
NormalizeQuaternion(
const double& w,
const double& x,
const double& y,
const double& z,
163 std::string note =
"");
Definition: imu_measurement_type.h:21
static Eigen::Matrix4d OmegaMat(const Eigen::Vector3d &v)
omega_mat ight multiplication
static Eigen::Quaterniond NormalizeQuaternion(const Eigen::Quaterniond &quat, std::string note="")
static Eigen::MatrixXd EnforceMatrixSymmetry(const Eigen::Ref< const Eigen::MatrixXd > &mat_in)
EnforceMatrixSymmetry.
static bool CheckCov(const Eigen::MatrixXd &cov_mat, const std::string &description, const bool &check_cond=false)
check_cov Performs tests for the properties of a given covariance matrix
static Eigen::Matrix3d Skew(const Eigen::Vector3d &v)
skew generate the skew symmetric matrix of v
static Eigen::Quaterniond quaternionAverage(const std::vector< Eigen::Quaterniond > &quats)
quaternionAverage without weights
static void TransformImu(const mars::IMUMeasurementType &now, const Eigen::Vector3d &p_ab, const Eigen::Quaterniond &q_ab, mars::IMUMeasurementType &result)
TransformImu Transform IMU measurements from current frame A to frame B.
static Eigen::Matrix4d MatExp(const Eigen::Matrix4d &A, const int &order=4)
mat_exp Calculation of the matrix exponential, Taylor series cut-off at specified order
static Eigen::Vector3d RPYFromRotMat(const Eigen::Matrix3d &rot_mat)
RPYFromRotMat derives the roll pitch and yaw angle from a rotation matrix (in that order)
static void TransformImu(const mars::IMUMeasurementType &prev, const mars::IMUMeasurementType &now, const double &dt, const Eigen::Vector3d &p_ab, const Eigen::Quaterniond &q_ab, mars::IMUMeasurementType &result)
TransformImu Transform IMU measurements from current frame A to frame B.
static Eigen::Quaterniond NormalizeQuaternion(const double &w, const double &x, const double &y, const double &z, std::string note="")
static std::string get_mars_version_string()
get_mars_version_string
static Eigen::Quaterniond QuatFromSmallAngle(const Eigen::Vector3d &d_theta_vec)
QuatFromSmallAngle.
static std::vector< T > VecExtractEveryNthElm(std::vector< T, A > const &data, const int &nth)
VecExtractEveryNthElm Takes a vector and returns a new vector which only contains every n'th element.
Definition: utils.h:149
static void PrintMarsVersion()
PrintMarsVersion.
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Utils()
static Eigen::Quaterniond ApplySmallAngleQuatCorr(const Eigen::Quaterniond &q_prior, const Eigen::Vector3d &correction)
ApplySmallAngleQuatCorr.