|
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
1.7.6.1