GCOP
1.0
|
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