GCOP  1.0
body2dslamcost.h
Go to the documentation of this file.
00001 #ifndef GCOP_BODY2DSLAMCOST_H
00002 #define GCOP_BODY2DSLAMCOST_H
00003 
00004 #include <limits>
00005 #include <iostream>
00006 #include "cost.h"
00007 #include "body2dgraph.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 Body2dSlamCost : public Cost<Body2dState, 6, 3> {
00019   public:
00020     Body2dSlamCost(Body2d<> &sys, double tf, const Body2dGraph &pg);
00021     
00022     double Lp(double t, const Body2dState &x, const Vector3d &u, const VectorXd &p,
00023               Vector6d *Lx = 0, Matrix6d *Lxx = 0,
00024               Vector3d *Lu = 0, Matrix3d *Luu = 0,
00025               Matrix63d *Lxu = 0, 
00026               VectorXd *Lp = 0, MatrixXd *Lpp = 0, MatrixX6d *Lpx = 0);
00027 
00028     const Body2dGraph &pg;
00029   };  
00030 }
00031 
00032 #endif