GCOP
1.0
|
#include <gndoep.h>
Public Member Functions | |
GnDoep (System< T, _nx, _nu, _np > &sys, Sensor< T1, _nx1, _nu, _np, Tz, _nz > &sensor, LqSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz > &cost, vector< double > &ts, vector< T > &xs, vector< Vectorcd > &us, Vectormd &p, vector< double > &ts1, Func_type _project=NULL, bool update=true) | |
virtual | ~GnDoep () |
void | Iterate () |
Public Attributes | |
int | info |
double | fnorm |
double | covfac |
int | inputs |
int | values |
VectorXd | s |
optimization vector | |
GnCost< T, _nx, _nu, _np, _ng, Tz, _nz, T1, _nx1 > * | functor |
NumericalDiff< GnCost< T, _nx, _nu, _np, _ng, Tz, _nz, T1, _nx1 > > * | numDiff |
LevenbergMarquardt < NumericalDiff< GnCost< T, _nx, _nu, _np, _ng, Tz, _nz, T1, _nx1 > > > * | lm |
gcop::GnDoep< T, _nx, _nu, _np, _ng, Tz, _nz, T1, _nx1 >::GnDoep | ( | System< T, _nx, _nu, _np > & | sys, |
Sensor< T1, _nx1, _nu, _np, Tz, _nz > & | sensor, | ||
LqSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz > & | cost, | ||
vector< double > & | ts, | ||
vector< T > & | xs, | ||
vector< Vectorcd > & | us, | ||
Vectormd & | p, | ||
vector< double > & | ts1, | ||
Func_type | _project = NULL , |
||
bool | update = true |
||
) |
Create an optimal estimation problem using a system, sensor, a cost, and sensor measurements and parameters of the system.
The optimal estimation is done over selecting the right parameters for the system and also process noise to ensure the estimation cost on sensor measurements and noise is minimized Parameters can also have a prior which is added into the cost function. The parameters passed in here are used as initial guess to the system
You should set the ts[1:N+1], xs[0]; Known controls us
After initialization, every call to Iterate() will optimize the parameters of the system, process noise and modify them accordingly.
sys | system |
cost | cost |
tparam | trajectory parametrization |
ts | (N+1) sequence of discrete times |
xs | (N+1) sequence of discrete states |
us | (N) sequence of control inputs |
p | static parameter vector initial guess of it |
ng | |
_project | Optional function to project T into T1. Not needed if T == T1 |
update | whether to update trajectory xs using initial state xs[0] and inputs us. This is necessary only if xs was not already generated from us. |
References gcop::GnDoep< T, _nx, _nu, _np, _ng, Tz, _nz, T1, _nx1 >::inputs, and gcop::GnDoep< T, _nx, _nu, _np, _ng, Tz, _nz, T1, _nx1 >::values.
gcop::GnDoep< T, _nx, _nu, _np, _ng, Tz, _nz, T1, _nx1 >::~GnDoep | ( | ) | [virtual] |
void gcop::GnDoep< T, _nx, _nu, _np, _ng, Tz, _nz, T1, _nx1 >::Iterate | ( | ) | [virtual] |
Perform one DOCP iteration. Internally calls: are updated.
Reimplemented from gcop::Doep< T, _nx, _nu, _np, Tz, _nz, T1, _nx1 >.
References gcop::GnCost< T, _nx, _nu, _np, _ng, _ntp >::doep, and np.
double gcop::GnDoep< T, _nx, _nu, _np, _ng, Tz, _nz, T1, _nx1 >::covfac |
double gcop::GnDoep< T, _nx, _nu, _np, _ng, Tz, _nz, T1, _nx1 >::fnorm |
GnCost<T, _nx, _nu, _np, _ng, Tz, _nz, T1, _nx1>* gcop::GnDoep< T, _nx, _nu, _np, _ng, Tz, _nz, T1, _nx1 >::functor |
int gcop::GnDoep< T, _nx, _nu, _np, _ng, Tz, _nz, T1, _nx1 >::info |
int gcop::GnDoep< T, _nx, _nu, _np, _ng, Tz, _nz, T1, _nx1 >::inputs |
LevenbergMarquardt<NumericalDiff<GnCost<T, _nx, _nu, _np, _ng, Tz, _nz, T1, _nx1> > >* gcop::GnDoep< T, _nx, _nu, _np, _ng, Tz, _nz, T1, _nx1 >::lm |
NumericalDiff<GnCost<T, _nx, _nu, _np, _ng, Tz, _nz, T1, _nx1> >* gcop::GnDoep< T, _nx, _nu, _np, _ng, Tz, _nz, T1, _nx1 >::numDiff |
VectorXd gcop::GnDoep< T, _nx, _nu, _np, _ng, Tz, _nz, T1, _nx1 >::s |
optimization vector
int gcop::GnDoep< T, _nx, _nu, _np, _ng, Tz, _nz, T1, _nx1 >::values |