GCOP
1.0
|
#include <doep.h>
Public Member Functions | |
Doep (System< T, nx, nu, np > &sys, Sensor< T1, nx1, nu, np, Tz, nz > &sensor, SensorCost< T, nx, nu, np, 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 | ~Doep () |
virtual void | Iterate () |
void | Update (bool der=true) |
Public Attributes | |
System< T, nx, nu, np > & | sys |
dynamical system | |
Sensor< T1, nx1, nu, np, Tz, nz > & | sensor |
sensor | |
SensorCost< T, nx, nu, np, Tz, nz > & | cost |
given cost function | |
std::vector< double > & | ts |
times (N+1) vector | |
std::vector< double > & | ts1 |
times (N+1) vector for sensor measurements | |
std::vector< T > & | xs |
states (N+1) vector | |
std::vector< Vectorcd > & | us |
controls (N) vector | |
Vectormd & | p |
parameter vector | |
std::vector< Vectornd > | ws |
Internal process noise. | |
std::vector< Vectorrd > | zs |
Internal sensor measurements. | |
bool | debug |
whether to display debugging info | |
double | eps |
epsilon used for finite differences | |
Func_type | project |
Project T to T1 will add jacobians later. |
gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::Doep | ( | System< T, nx, nu, np > & | sys, |
Sensor< T1, nx1, nu, np, Tz, nz > & | sensor, | ||
SensorCost< T, nx, nu, np, 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 a discrete optimal estimation problem using a system, sensor, a cost, and a trajectory given by a sequence of times, states, and controls. The controls us are provided. The times ts must be given, the initial state xs[0] must be set.
After initialization, every call to Iterate() will optimize the parameters p and process noise wi are varied to fit the measurements in the sensorcost
sys | system |
sensor | sensor |
cost | cost |
ts | (N+1) sequence of discrete times |
ts1 | (N1+1) sequence of discrete times for sensor measurements |
xs | (N+1) sequence of discrete states |
us | (N) sequence of control inputs |
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::Manifold< T, _n >::n, gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::Update(), gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::us, gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::ws, gcop::System< T, _nx, _nu, _np >::X, gcop::Sensor< T, _nx, _nu, _np, Tz, _nz >::Z, and gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::zs.
gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::~Doep | ( | ) | [virtual] |
void gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::Iterate | ( | ) | [virtual] |
Perform one DOCP iteration.
Reimplemented in gcop::GnDoep< T, _nx, _nu, _np, _ng, Tz, _nz, T1, _nx1 >, and gcop::GnDoep1< T, _nx, _nu, _np, _ng, Tz, _nz, T1, _nx1 >.
void gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::Update | ( | bool | der = true | ) |
Update the trajectory and sensor measurements
der | NOT USED RIGHT NOW |
Referenced by gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::Doep().
SensorCost<T, nx, nu, np, Tz, nz>& gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::cost |
given cost function
bool gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::debug |
whether to display debugging info
double gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::eps |
epsilon used for finite differences
Vectormd& gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::p |
parameter vector
Func_type gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::project |
Project T to T1 will add jacobians later.
Sensor<T1, nx1, nu, np, Tz, nz>& gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::sensor |
sensor
System<T, nx, nu, np>& gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::sys |
dynamical system
std::vector<double>& gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::ts |
times (N+1) vector
std::vector<double>& gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::ts1 |
times (N+1) vector for sensor measurements
std::vector<Vectorcd>& gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::us |
controls (N) vector
Referenced by gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::Doep().
std::vector<Vectornd> gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::ws |
Internal process noise.
Referenced by gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::Doep().
std::vector<T>& gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::xs |
states (N+1) vector
std::vector<Vectorrd> gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::zs |
Internal sensor measurements.
Referenced by gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::Doep().