|
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().
1.7.6.1