GCOP
1.0
|
00001 #ifndef GCOP_BODY2DTRACKCOST_H 00002 #define GCOP_BODY2DTRACKCOST_H 00003 00004 #include <limits> 00005 #include <iostream> 00006 #include "cost.h" 00007 #include "body2dtrack.h" 00008 #include "body2d.h" 00009 00010 namespace gcop { 00011 00012 using namespace std; 00013 using namespace Eigen; 00014 00015 typedef Matrix<double, Dynamic, 6> MatrixX6d; 00016 typedef Matrix<double, 6, Dynamic> Matrix6Xd; 00017 00018 class Body2dTrackCost : public Cost<Body2dState, 6, 3> { 00019 public: 00020 Body2dTrackCost(double tf, const Body2dTrack &pg); 00021 00022 double L(double t, const Body2dState &x, const Vector3d &u, double h, 00023 const VectorXd *p, 00024 Vector6d *Lx = 0, Matrix6d *Lxx = 0, 00025 Vector3d *Lu = 0, Matrix3d *Luu = 0, 00026 Matrix63d *Lxu = 0, 00027 VectorXd *Lp = 0, MatrixXd *Lpp = 0, MatrixX6d *Lpx = 0); 00028 00029 const Body2dTrack &pg; 00030 }; 00031 } 00032 00033 #endif