GCOP
1.0
|
00001 #ifndef GCOP_INS_H 00002 #define GCOP_INS_H 00003 00004 #include "system.h" 00005 #include "insmanifold.h" 00006 #include "so3.h" 00007 #include <limits> 00008 #include <iostream> 00009 #include <utility> 00010 00011 namespace gcop { 00012 00013 using namespace std; 00014 using namespace Eigen; 00015 00016 typedef Matrix<double, 15, 1> Vector15d; 00017 typedef Matrix<double, 6, 1> Vector6d; 00018 typedef Matrix<double, 15, 6> Matrix15x6d; 00019 typedef Matrix<double, 15, 15> Matrix15d; 00020 typedef Matrix<double, 15, Dynamic> Matrix15Xd; 00021 00022 typedef Matrix<double, 6, 3> Matrix63d; 00023 typedef Matrix<double, 6, 6> Matrix6d; 00024 typedef Matrix<double, 6, 15> Matrix6x15d; 00025 typedef Matrix<double, 6, Dynamic> Matrix6Xd; 00026 00032 class Ins : public System<InsState, 15, 6> { 00033 public: 00034 00035 Ins(); 00036 00037 virtual ~Ins(); 00038 00039 double Step(InsState &xb, double t, const InsState &xa, 00040 const Vector6d &u, double h, const VectorXd *p = 0, 00041 Matrix15d *A = 0, Matrix15x6d *B = 0, Matrix15Xd *C = 0); 00042 00043 bool Noise(Matrix15d &Q, double t, const InsState &x, const Vector3d &u, 00044 double dt, const VectorXd *p = 0); 00045 00046 double sv; 00047 double su; 00048 double sa; 00049 00050 double sra; 00051 00052 Vector3d g0; 00053 }; 00054 } 00055 00056 #endif