#ifndef body_INC #define body_INC #include #include #include "types.h" #define R_HEIGHT 1e-2 /* measurement noise of height measurement */ #define IMU_NOISE 800e-6 /* IMU process noise */ #define IMU_RANDOMWALK 5e-6 /* Bias process noise */ using Eigen::Matrix; using Eigen::Vector3d; using Eigen::Quaterniond; /* * ===================================================================================== * Class: Body * Description: State representation of body. * ===================================================================================== */ class Body { public: /* ==================== LIFECYCLE ======================================= */ Body (){}; /* constructor */ /* ==================== ACCESSORS ======================================= */ Vector3d ned(); Vector3d vel(); /* ==================== MUTATORS ======================================= */ void accelerometer_bias( const Vector3d &b); void pos( const UTM &utm); void dx( const Matrix &del); void vel(const Matrix &v); /* ==================== OPERATORS ======================================= */ Matrix F(const Vector3d &ang, const Quaterniond &q, double dt); Matrix H(); Matrix h(); void motionModel ( const Vector3d &acc, const Vector3d &ang, const Quaterniond &q, const double dt); Matrix Q(double dt); Matrix R(); Matrix S(const Matrix &Pxx); Matrix skewSymmetric(const Vector3d &x); void unicsv(); protected: /* ==================== METHODS ======================================= */ /* ==================== DATA MEMBERS ======================================= */ private: /* ==================== METHODS ======================================= */ /* ==================== DATA MEMBERS ======================================= */ Matrix X; char utm_c; int utm_i; }; /* ----- end of class Body ----- */ #endif /* ----- #ifndef body_INC ----- */