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