GCOP
1.0
|
00001 #ifndef GCOP_AIRPLANECOST_H 00002 #define GCOP_AIRPLANECOST_H 00003 00004 #include "lqcost.h" 00005 #include <limits> 00006 #include "normal.h" 00007 00008 namespace gcop { 00009 00010 using namespace std; 00011 using namespace Eigen; 00012 00013 typedef Matrix<double, 5, 1> Vector5d; 00014 typedef Matrix<double, 5, 5> Matrix5d; 00015 typedef Matrix<double, 5, 2> Matrix52d; 00016 typedef pair<Matrix3d, Vector2d> M3V2d; 00017 00018 00019 class AirplaneCost : public LqCost<M3V2d, 5, 2> { 00020 public: 00021 00022 AirplaneCost(Airdouble tf, const M3V2d &xf, int N); 00023 00024 double L(double t, const M3V2d &x, const Vector2d &u, double h, 00025 Vector5d *Lx = 0, Matrix5d *Lxx = 0, 00026 Vector2d *Lu = 0, Matrix2d *Luu = 0, 00027 Matrix52d *Lxu = 0); 00028 00029 void SetObstacle(double s, double n); 00030 00031 double n; 00032 // Normal gd; ///< Gaussian distribution 00033 vector<Normal> gds; 00034 00035 }; 00036 } 00037 00038 #endif