GCOP  1.0
body3dtrack.h
Go to the documentation of this file.
00001 #ifndef GCOP_BODY3DTRACK_H
00002 #define GCOP_BODY3DTRACK_H
00003 
00004 #include <Eigen/Dense>
00005 #include <vector>
00006 #include <type_traits>
00007 #include "body3d.h"
00008 
00009 namespace gcop {
00010   
00011   using namespace std;
00012   using namespace Eigen;
00013 
00014   
00020   class Body3dTrack {
00021   public:
00022     
00034     Body3dTrack(Body3d<> &sys, int nf, double vd0, double t0, double tf,
00035                 double r = 25,
00036                 bool odometry = true,
00037                 bool extforce = false,
00038                 bool forces = false);
00039 
00045     void Optp(VectorXd &p, const vector<Body3dState> &xs);
00046 
00047     void Get(Body3dState &x, double vd, double t) const;
00048 
00049     void MakeTrue();
00050 
00051     void Add(const Vector6d &u, const Body3dState &x, double h);
00052 
00059     void Add2(const Vector6d &u, const Body3dState &x, double h);
00060 
00061     Body3d<> &sys;     
00062 
00063     double t0;       
00064     double tf;       
00065     double r;       
00066     double w;      
00067     double h;      
00068     double dmax;    
00069 
00070     bool odometry;         
00071 
00072     bool extforce;         
00073 
00074     bool forces;           
00075     
00076     vector<double> ts;     
00077 
00078     vector<Body3dState> xs;      
00079 
00080     vector<Vector6d> us;   
00081     
00082     vector<Vector3d> ls;   
00083     vector<bool> observed; 
00084 
00085     vector<Body3dState> xos;     
00086     vector<Vector6d> uos;     
00087 
00088     bool init; 
00089     VectorXd p;            
00090     vector<int> pis;       
00091 
00092     double pr;     
00093 
00094     vector< vector<pair<int, Vector3d> > > Is;  
00095 
00096     vector< vector<pair<int, Vector3d> > > Js;  
00097     vector<int> cis;       
00098 
00099         
00100     vector<Vector6d> vs;   
00101 
00102     double cp;             
00103 
00104     Vector6d cv;           
00105 
00106     Vector6d cw;           
00107 
00108   };
00109 }
00110 
00111 #endif