GCOP  1.0
ins.h
Go to the documentation of this file.
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