GCOP  1.0
Public Types | Public Member Functions | Public Attributes
gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz > Class Template Reference

#include <lssensorcost.h>

Inheritance diagram for gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >:
Inheritance graph
[legend]
Collaboration diagram for gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef Matrix< double, _ng, 1 > Vectorgd
typedef Matrix< double, _ng, _nx > Matrixgxd
typedef Matrix< double, _ng, _nu > Matrixgud
typedef Matrix< double, _ng, _np > Matrixgpd
typedef Matrix< double, _ng, _nz > Matrixgzd
typedef Matrix< double, _nx, 1 > Vectornd
typedef Matrix< double, _nu, 1 > Vectorcd
typedef Matrix< double, _np, 1 > Vectormd
typedef Matrix< double, _nx, _nx > Matrixnd
typedef Matrix< double, _nx, _nu > Matrixncd
typedef Matrix< double, _nu, _nx > Matrixcnd
typedef Matrix< double, _nu, _nu > Matrixcd
typedef Matrix< double, _np, _np > Matrixmd
typedef Matrix< double, _nx, _np > Matrixnmd
typedef Matrix< double, _np, _nx > Matrixmnd
typedef Matrix< double, _nz, 1 > Vectorrd
typedef Matrix< double, _nz, _nz > Matrixrd
typedef Matrix< double, _nz, _nx > Matrixrnd
typedef Matrix< double, _nz, _nu > Matrixrcd
typedef Matrix< double, _nz, _np > Matrixrmd

Public Member Functions

 LsSensorCost (System< T, _nx, _nu, _np > &sys, Manifold< Tz, _nz > &Z, int ng=0)
virtual bool Res (Vectorgd &g, double t, const Tz &z, const Vectornd &w, const Vectormd &p, double h, Matrixgxd *dgdw=0, Matrixgpd *dgdp=0, Matrixgzd *dgdz=0)
virtual bool Resp (Vectormd &gp, const Vectormd &p, Matrixmd *dgdp=0)

Public Attributes

int ng
 number of residuals per time-step
Vectorgd g
 residuals per time-step
Vectormd gp
 residual dependent on parameters

Detailed Description

template<typename T = VectorXd, int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic, int _ng = Dynamic, typename Tz = VectorXd, int _nz = Dynamic>
class gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >

Cost interface for optimal control on sensor manifold. Defines a cost function and means to compute difference between two states on a sensor manifold.

Subclasses should provide implementation of either a regular const function L or a parameter-dependent cost function Lp (e.g. for sys id / adaptive control / optimal design problems)

This defines cost only for a single sensor. Multiple sensors will and multiple systems based cost functions should be adapted somehow

Author1: Marin Kobilarov marin(at)jhu.edu

Author2: Gowtham Garimella ggarime1(at)jhu.edu


Member Typedef Documentation

template<typename T = VectorXd, int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic, int _ng = Dynamic, typename Tz = VectorXd, int _nz = Dynamic>
typedef Matrix<double, _nu, _nu> gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::Matrixcd
template<typename T = VectorXd, int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic, int _ng = Dynamic, typename Tz = VectorXd, int _nz = Dynamic>
typedef Matrix<double, _nu, _nx> gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::Matrixcnd
template<typename T = VectorXd, int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic, int _ng = Dynamic, typename Tz = VectorXd, int _nz = Dynamic>
typedef Matrix<double, _ng, _np> gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::Matrixgpd
template<typename T = VectorXd, int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic, int _ng = Dynamic, typename Tz = VectorXd, int _nz = Dynamic>
typedef Matrix<double, _ng, _nu> gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::Matrixgud
template<typename T = VectorXd, int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic, int _ng = Dynamic, typename Tz = VectorXd, int _nz = Dynamic>
typedef Matrix<double, _ng, _nx> gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::Matrixgxd
template<typename T = VectorXd, int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic, int _ng = Dynamic, typename Tz = VectorXd, int _nz = Dynamic>
typedef Matrix<double, _ng, _nz> gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::Matrixgzd
template<typename T = VectorXd, int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic, int _ng = Dynamic, typename Tz = VectorXd, int _nz = Dynamic>
typedef Matrix<double, _np, _np> gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::Matrixmd
template<typename T = VectorXd, int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic, int _ng = Dynamic, typename Tz = VectorXd, int _nz = Dynamic>
typedef Matrix<double, _np, _nx> gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::Matrixmnd
template<typename T = VectorXd, int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic, int _ng = Dynamic, typename Tz = VectorXd, int _nz = Dynamic>
typedef Matrix<double, _nx, _nu> gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::Matrixncd
template<typename T = VectorXd, int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic, int _ng = Dynamic, typename Tz = VectorXd, int _nz = Dynamic>
typedef Matrix<double, _nx, _nx> gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::Matrixnd
template<typename T = VectorXd, int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic, int _ng = Dynamic, typename Tz = VectorXd, int _nz = Dynamic>
typedef Matrix<double, _nx, _np> gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::Matrixnmd
template<typename T = VectorXd, int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic, int _ng = Dynamic, typename Tz = VectorXd, int _nz = Dynamic>
typedef Matrix<double, _nz, _nu> gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::Matrixrcd
template<typename T = VectorXd, int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic, int _ng = Dynamic, typename Tz = VectorXd, int _nz = Dynamic>
typedef Matrix<double, _nz, _nz> gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::Matrixrd
template<typename T = VectorXd, int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic, int _ng = Dynamic, typename Tz = VectorXd, int _nz = Dynamic>
typedef Matrix<double, _nz, _np> gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::Matrixrmd
template<typename T = VectorXd, int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic, int _ng = Dynamic, typename Tz = VectorXd, int _nz = Dynamic>
typedef Matrix<double, _nz, _nx> gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::Matrixrnd
template<typename T = VectorXd, int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic, int _ng = Dynamic, typename Tz = VectorXd, int _nz = Dynamic>
typedef Matrix<double, _nu, 1> gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::Vectorcd
template<typename T = VectorXd, int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic, int _ng = Dynamic, typename Tz = VectorXd, int _nz = Dynamic>
typedef Matrix<double, _ng, 1> gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::Vectorgd
template<typename T = VectorXd, int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic, int _ng = Dynamic, typename Tz = VectorXd, int _nz = Dynamic>
typedef Matrix<double, _np, 1> gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::Vectormd
template<typename T = VectorXd, int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic, int _ng = Dynamic, typename Tz = VectorXd, int _nz = Dynamic>
typedef Matrix<double, _nx, 1> gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::Vectornd
template<typename T = VectorXd, int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic, int _ng = Dynamic, typename Tz = VectorXd, int _nz = Dynamic>
typedef Matrix<double, _nz, 1> gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::Vectorrd

Constructor & Destructor Documentation

template<typename T, int _nx, int _nu, int _np, int _ng, typename Tz, int _nz>
gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::LsSensorCost ( System< T, _nx, _nu, _np > &  sys,
Manifold< Tz, _nz > &  Z,
int  ng = 0 
)

create a cost interface for optimal estimation problem

Parameters:
sysprovides the state manifold which is used to perform addition/subtraction of states
sensorprovides the sensor manifold and measurement model for computing the cost
ngnumber of residuals per time-step

References gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::g, gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::gp, np, and gcop::System< T, _nx, _nu, _np >::P.


Member Function Documentation

template<typename T , int _nx, int _nu, int _np, int _ng, typename Tz, int _nz>
bool gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::Res ( Vectorgd g,
double  t,
const Tz &  z,
const Vectornd w,
const Vectormd p,
double  h,
Matrixgxd dgdw = 0,
Matrixgpd dgdp = 0,
Matrixgzd dgdz = 0 
) [virtual]

Residual cost with noise as input (For estimation problems) #TODO Modify this to directly accept z sensor estimation instead of x, u

Parameters:
gresidual
ttime
zsensor measurement
wnoise
htime-step
pparameter (optional)
dgdwderivative wrt w (optional)
dgdpderivative wrt p (optional)
dgdzderivative wrt p (optional)
template<typename T , int _nx, int _nu, int _np, int _ng, typename Tz , int _nz>
bool gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::Resp ( Vectormd gp,
const Vectormd p,
Matrixmd dgdp = 0 
) [virtual]

Residual Cost independent of time and only dependent on parameters

Parameters:
gresidual for parameters
pparameter
dgdpderivative wrt p

Reimplemented in gcop::LqSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >, and gcop::LqSensorCost< Matrix< double, _nx, 1 >, _nx, _nu, _np, _ng, Matrix< double, _nz, 1 >, _nz >.


Member Data Documentation

template<typename T = VectorXd, int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic, int _ng = Dynamic, typename Tz = VectorXd, int _nz = Dynamic>
Vectorgd gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::g
template<typename T = VectorXd, int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic, int _ng = Dynamic, typename Tz = VectorXd, int _nz = Dynamic>
Vectormd gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::gp

residual dependent on parameters

Referenced by gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::LsSensorCost().

template<typename T = VectorXd, int _nx = Dynamic, int _nu = Dynamic, int _np = Dynamic, int _ng = Dynamic, typename Tz = VectorXd, int _nz = Dynamic>
int gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::ng

number of residuals per time-step


The documentation for this class was generated from the following file: