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