GCOP  1.0
rnlqsensorcost.h
Go to the documentation of this file.
00001 #ifndef GCOP_RNLQSENSORCOST_H
00002 #define GCOP_RNLQSENSORCOST_H
00003 
00004 #include "lqsensorcost.h"
00005 #include "rn.h"
00006 #include "system.h"
00007 
00008 namespace gcop {
00009   
00010   using namespace Eigen;
00011   
00015   template <int _nx = Dynamic, 
00016     int _nu = Dynamic, 
00017     int _np = Dynamic, 
00018     int _ng = Dynamic,
00019     int _nz = Dynamic> class RnLqSensorCost :
00020     public LqSensorCost< Matrix<double, _nx, 1>, _nx, _nu, _np, _ng, Matrix<double, _nz, 1>, _nz> {
00021     
00022     typedef Matrix<double, _nx, 1> Vectornd;
00023     typedef Matrix<double, _nu, 1> Vectorcd;
00024     typedef Matrix<double, _np, 1> Vectormd;
00025 
00026     typedef Matrix<double, _nz, 1> Vectorrd;
00027     typedef Matrix<double, _nz, _nz> Matrixrd;
00028     typedef Matrix<double, _nz, _nx> Matrixrnd;
00029     typedef Matrix<double, _nz, _nu> Matrixrcd;
00030     typedef Matrix<double, _nz, _np> Matrixrmd;
00031     
00032   public:  
00038     RnLqCost(System<Vectornd, _nx, _nu, _np> &sys, Manifold<Vectorrd, _nz> &Z, bool diag = true);
00039     
00040   };
00041   
00042   template <int _nx, int _nu, int _np, int _ng, int _nz> 
00043     RnLqSensorCost<_nx, _nu, _np, _ng, _nz>::RnLqCost(System<Vectornd, _nx, _nu, _np> &sys, 
00044                                                       Manifold<Vectorrd, _nz> &Z,
00045                                                       bool diag) : 
00046     LqSensorCost<Matrix<double, _nx, 1>, _nx, _nu, _np, _ng, Matrix<double, _nz, 1>, _nz>(sys, Z, diag) {    
00047     assert(_nx > 0);
00048     assert(_nu >= 0);
00049   }
00050 }
00051 
00052 #endif