#ifndef feature_INC #define feature_INC #include #include "types.h" using Eigen::Vector3d; using Eigen::Matrix; using Eigen::Quaterniond; /* * ===================================================================================== * Class: Feature * Description: * ===================================================================================== */ class Feature { public: /* ==================== LIFECYCLE ======================================= */ Feature (); /* constructor */ /* ==================== ACCESSORS ======================================= */ /* ==================== MUTATORS ======================================= */ /* ==================== OPERATORS ======================================= */ Matrix Fx(); Matrix Fy( const Vector3d &vel, const Vector3d &ang); Matrix Hx( const Vector3d &pos, const Quaterniond &q); Matrix Hy( const Vector3d &pos, const Quaterniond &q); Matrix h( const Vector3d &x, const Quaterniond &q); /* void motionModel ( const Vector3d &acc, const Vector3d &ang, const Quaterniond &q, const double dt); Matrix Q(double dt); Matrix R(); Matrix S(const Matrix &P); void skewSymmetric(const Vector3d &x, Matrix &y); void unicsv(); */ protected: /* ==================== METHODS ======================================= */ /* ==================== DATA MEMBERS ======================================= */ private: /* ==================== METHODS ======================================= */ Vector3d p2x(const Vector3d &p); Vector3d x2p(const Vector3d &x); /* ==================== DATA MEMBERS ======================================= */ Vector3d X; Quaterniond q0; Vector3d xb0w; }; /* ----- end of class Feature ----- */ #endif /* ----- #ifndef feature_INC ----- */