GCOP
1.0
|
#include <sensorcost.h>
Public Types | |
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 | |
SensorCost (System< T, _nx, _nu, _np > &sys, Manifold< Tz, _nz > &Z) | |
virtual double | L (double t, const Tz &z, const Vectornd &w, const Vectormd &p, double h, Vectornd *Lw=0, Matrixnd *Lww=0, Vectormd *Lp=0, Matrixmd *Lpp=0, Vectorrd *Lz=0, Matrixrd *Lzz=0, Matrixmnd *Lpw=0, Matrixrnd *Lzw=0, Matrixrmd *Lzp=0) |
virtual double | Lp (const Vectormd &p, Vectormd *Lp=0, Matrixmd *Lpp=0) |
Public Attributes | |
System< T, _nx, _nu, _np > & | sys |
system | |
Manifold< Tz, _nz > & | Z |
system |
Cost interface for optimal control on sensor manifold. (Estimation Problems) 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
typedef Matrix<double, _nu, _nu> gcop::SensorCost< T, _nx, _nu, _np, Tz, _nz >::Matrixcd |
Reimplemented in gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >, gcop::LsSensorCost< Matrix< double, _nx, 1 >, _nx, _nu, _np, _ng, Matrix< double, _nz, 1 >, _nz >, 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 >.
typedef Matrix<double, _nu, _nx> gcop::SensorCost< T, _nx, _nu, _np, Tz, _nz >::Matrixcnd |
Reimplemented in gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >, gcop::LsSensorCost< Matrix< double, _nx, 1 >, _nx, _nu, _np, _ng, Matrix< double, _nz, 1 >, _nz >, 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 >.
typedef Matrix<double, _np, _np> gcop::SensorCost< T, _nx, _nu, _np, Tz, _nz >::Matrixmd |
Reimplemented in gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >, gcop::LsSensorCost< Matrix< double, _nx, 1 >, _nx, _nu, _np, _ng, Matrix< double, _nz, 1 >, _nz >, 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 >.
typedef Matrix<double, _np, _nx> gcop::SensorCost< T, _nx, _nu, _np, Tz, _nz >::Matrixmnd |
Reimplemented in gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >, gcop::LsSensorCost< Matrix< double, _nx, 1 >, _nx, _nu, _np, _ng, Matrix< double, _nz, 1 >, _nz >, 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 >.
typedef Matrix<double, _nx, _nu> gcop::SensorCost< T, _nx, _nu, _np, Tz, _nz >::Matrixncd |
Reimplemented in gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >, gcop::LsSensorCost< Matrix< double, _nx, 1 >, _nx, _nu, _np, _ng, Matrix< double, _nz, 1 >, _nz >, 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 >.
typedef Matrix<double, _nx, _nx> gcop::SensorCost< T, _nx, _nu, _np, Tz, _nz >::Matrixnd |
Reimplemented in gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >, gcop::LsSensorCost< Matrix< double, _nx, 1 >, _nx, _nu, _np, _ng, Matrix< double, _nz, 1 >, _nz >, 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 >.
typedef Matrix<double, _nx, _np> gcop::SensorCost< T, _nx, _nu, _np, Tz, _nz >::Matrixnmd |
Reimplemented in gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >, gcop::LsSensorCost< Matrix< double, _nx, 1 >, _nx, _nu, _np, _ng, Matrix< double, _nz, 1 >, _nz >, 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 >.
typedef Matrix<double, _nz, _nu> gcop::SensorCost< T, _nx, _nu, _np, Tz, _nz >::Matrixrcd |
Reimplemented in gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >, gcop::LsSensorCost< Matrix< double, _nx, 1 >, _nx, _nu, _np, _ng, Matrix< double, _nz, 1 >, _nz >, 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 >.
typedef Matrix<double, _nz, _nz> gcop::SensorCost< T, _nx, _nu, _np, Tz, _nz >::Matrixrd |
Reimplemented in gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >, gcop::LsSensorCost< Matrix< double, _nx, 1 >, _nx, _nu, _np, _ng, Matrix< double, _nz, 1 >, _nz >, 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 >.
typedef Matrix<double, _nz, _np> gcop::SensorCost< T, _nx, _nu, _np, Tz, _nz >::Matrixrmd |
Reimplemented in gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >, gcop::LsSensorCost< Matrix< double, _nx, 1 >, _nx, _nu, _np, _ng, Matrix< double, _nz, 1 >, _nz >, 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 >.
typedef Matrix<double, _nz, _nx> gcop::SensorCost< T, _nx, _nu, _np, Tz, _nz >::Matrixrnd |
Reimplemented in gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >, gcop::LsSensorCost< Matrix< double, _nx, 1 >, _nx, _nu, _np, _ng, Matrix< double, _nz, 1 >, _nz >, 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 >.
typedef Matrix<double, _nu, 1> gcop::SensorCost< T, _nx, _nu, _np, Tz, _nz >::Vectorcd |
Reimplemented in gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >, gcop::LsSensorCost< Matrix< double, _nx, 1 >, _nx, _nu, _np, _ng, Matrix< double, _nz, 1 >, _nz >, 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 >.
typedef Matrix<double, _np, 1> gcop::SensorCost< T, _nx, _nu, _np, Tz, _nz >::Vectormd |
Reimplemented in gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >, gcop::LsSensorCost< Matrix< double, _nx, 1 >, _nx, _nu, _np, _ng, Matrix< double, _nz, 1 >, _nz >, 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 >.
typedef Matrix<double, _nx, 1> gcop::SensorCost< T, _nx, _nu, _np, Tz, _nz >::Vectornd |
Reimplemented in gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >, gcop::LsSensorCost< Matrix< double, _nx, 1 >, _nx, _nu, _np, _ng, Matrix< double, _nz, 1 >, _nz >, 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 >.
typedef Matrix<double, _nz, 1> gcop::SensorCost< T, _nx, _nu, _np, Tz, _nz >::Vectorrd |
Reimplemented in gcop::LsSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >, gcop::LsSensorCost< Matrix< double, _nx, 1 >, _nx, _nu, _np, _ng, Matrix< double, _nz, 1 >, _nz >, 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 >.
gcop::SensorCost< T, _nx, _nu, _np, Tz, _nz >::SensorCost | ( | System< T, _nx, _nu, _np > & | sys, |
Manifold< Tz, _nz > & | Z | ||
) |
create a cost interface
sys | provides the system manifold X for performing addition and substraction of states |
Z | provides sensor manifold for performing addition and substraction of measurements |
double gcop::SensorCost< T, _nx, _nu, _np, Tz, _nz >::L | ( | double | t, |
const Tz & | z, | ||
const Vectornd & | w, | ||
const Vectormd & | p, | ||
double | h, | ||
Vectornd * | Lw = 0 , |
||
Matrixnd * | Lww = 0 , |
||
Vectormd * | Lp = 0 , |
||
Matrixmd * | Lpp = 0 , |
||
Vectorrd * | Lz = 0 , |
||
Matrixrd * | Lzz = 0 , |
||
Matrixmnd * | Lpw = 0 , |
||
Matrixrnd * | Lzw = 0 , |
||
Matrixrmd * | Lzp = 0 |
||
) | [virtual] |
Time dependent Cost function L_i with noise as a part of cost function (Optimal Estimation)
t | time |
z | sensor measurement |
w | noise |
h | time-step |
Lw | derivative wrt w |
Lp | derivative wrt p |
Lz | derivative wrt z |
Lpp | derivative wrt p,p |
Lww | derivative wrt w,w |
Lzz | derivative wrt z,z |
Lpw | derivative wrt p,w |
Lzw | derivative wrt z,w |
Lzp | derivative wrt z,p |
double gcop::SensorCost< T, _nx, _nu, _np, Tz, _nz >::Lp | ( | const Vectormd & | p, |
Vectormd * | Lp = 0 , |
||
Matrixmd * | Lpp = 0 |
||
) | [virtual] |
Part of cost function which is independent of time and only dependent on parameters The net cost for a trajectory is sum i:1->N [L_i] + Lp
p | parameters |
Lp | derivative wrt p |
Lpp | derivative wrt p,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 >.
System<T, _nx, _nu, _np>& gcop::SensorCost< T, _nx, _nu, _np, Tz, _nz >::sys |
system
Manifold<Tz, _nz>& gcop::SensorCost< T, _nx, _nu, _np, Tz, _nz >::Z |
system