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