GCOP
1.0
|
00001 #ifndef GCOP_RCCAR_H 00002 #define GCOP_RCCAR_H 00003 00004 #include "system.h" 00005 #include <limits> 00006 //#define RCCAR_RADIO_INPUTS 00007 00008 namespace gcop { 00009 00010 using namespace std; 00011 using namespace Eigen; 00012 00013 typedef Matrix<double, 4, 2> Matrix42d; 00014 typedef Matrix<double, 4, Dynamic> Matrix4pd; 00015 typedef System<Vector4d, 4, 2> BaseSystem; 00016 //typedef Matrix<double, 6, 1> Vector6d; 00017 00027 class Rccar : public BaseSystem 00028 { 00029 public: 00030 Rccar(int np = 2); 00031 00032 virtual double Step(Vector4d &xb, double t, const Vector4d &xa, 00033 const Vector2d &u, double h, const VectorXd *p, 00034 Matrix4d *A = 0, Matrix42d *B = 0, Matrix4pd *C = 0); 00035 00036 /*virtual double Step(Vector4d &xb, double t, const Vector4d &xa, 00037 const Vector2d &u, double h, const VectorXd *p, 00038 const Vector4d &w, 00039 Matrix4d *A = 0, Matrix42d *B = 0, Matrix4pd *C = 0, Matrix4d *D = 0); 00040 */ 00041 00042 00043 virtual void StateAndControlsToFlat(VectorXd &y, const Vector4d &x, const Vector2d &u); 00044 00045 virtual void FlatToStateAndControls(Vector4d &x, Vector2d &u, const std::vector<VectorXd> &y); 00046 00047 double l; 00048 double r; 00049 double h; 00050 }; 00051 } 00052 00053 00054 #endif