GCOP  1.0
Public Member Functions | Public Attributes
gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 > Class Template Reference

#include <doep.h>

Collaboration diagram for gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >:
Collaboration graph
[legend]

List of all members.

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.

template<typename T, int nx = Dynamic, int nu = Dynamic, int np = Dynamic, typename Tz = VectorXd, int nz = Dynamic, typename T1 = T, int nx1 = nx>
class gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >


Constructor & Destructor Documentation

template<typename T, int nx, int nu, int np, typename Tz, int nz, typename T1, int nx1>
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

Parameters:
syssystem
sensorsensor
costcost
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
updatewhether 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.

template<typename T , int nx, int nu, int np, typename Tz , int nz, typename T1 , int nx1>
gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::~Doep ( ) [virtual]

Member Function Documentation

template<typename T , int nx, int nu, int np, typename Tz , int nz, typename T1 , int nx1>
void gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::Iterate ( ) [virtual]
template<typename T , int nx, int nu, int np, typename Tz , int nz, typename T1 , int nx1>
void gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::Update ( bool  der = true)

Update the trajectory and sensor measurements

Parameters:
derNOT USED RIGHT NOW

Referenced by gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::Doep().


Member Data Documentation

template<typename T, int nx = Dynamic, int nu = Dynamic, int np = Dynamic, typename Tz = VectorXd, int nz = Dynamic, typename T1 = T, int nx1 = nx>
SensorCost<T, nx, nu, np, Tz, nz>& gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::cost

given cost function

template<typename T, int nx = Dynamic, int nu = Dynamic, int np = Dynamic, typename Tz = VectorXd, int nz = Dynamic, typename T1 = T, int nx1 = nx>
bool gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::debug

whether to display debugging info

template<typename T, int nx = Dynamic, int nu = Dynamic, int np = Dynamic, typename Tz = VectorXd, int nz = Dynamic, typename T1 = T, int nx1 = nx>
double gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::eps

epsilon used for finite differences

template<typename T, int nx = Dynamic, int nu = Dynamic, int np = Dynamic, typename Tz = VectorXd, int nz = Dynamic, typename T1 = T, int nx1 = nx>
Vectormd& gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::p

parameter vector

template<typename T, int nx = Dynamic, int nu = Dynamic, int np = Dynamic, typename Tz = VectorXd, int nz = Dynamic, typename T1 = T, int nx1 = nx>
Func_type gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::project

Project T to T1 will add jacobians later.

template<typename T, int nx = Dynamic, int nu = Dynamic, int np = Dynamic, typename Tz = VectorXd, int nz = Dynamic, typename T1 = T, int nx1 = nx>
Sensor<T1, nx1, nu, np, Tz, nz>& gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::sensor

sensor

template<typename T, int nx = Dynamic, int nu = Dynamic, int np = Dynamic, typename Tz = VectorXd, int nz = Dynamic, typename T1 = T, int nx1 = nx>
System<T, nx, nu, np>& gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::sys

dynamical system

template<typename T, int nx = Dynamic, int nu = Dynamic, int np = Dynamic, typename Tz = VectorXd, int nz = Dynamic, typename T1 = T, int nx1 = nx>
std::vector<double>& gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::ts

times (N+1) vector

template<typename T, int nx = Dynamic, int nu = Dynamic, int np = Dynamic, typename Tz = VectorXd, int nz = Dynamic, typename T1 = T, int nx1 = nx>
std::vector<double>& gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::ts1

times (N+1) vector for sensor measurements

template<typename T, int nx = Dynamic, int nu = Dynamic, int np = Dynamic, typename Tz = VectorXd, int nz = Dynamic, typename T1 = T, int nx1 = nx>
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().

template<typename T, int nx = Dynamic, int nu = Dynamic, int np = Dynamic, typename Tz = VectorXd, int nz = Dynamic, typename T1 = T, int nx1 = nx>
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().

template<typename T, int nx = Dynamic, int nu = Dynamic, int np = Dynamic, typename Tz = VectorXd, int nz = Dynamic, typename T1 = T, int nx1 = nx>
std::vector<T>& gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::xs

states (N+1) vector

template<typename T, int nx = Dynamic, int nu = Dynamic, int np = Dynamic, typename Tz = VectorXd, int nz = Dynamic, typename T1 = T, int nx1 = nx>
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().


The documentation for this class was generated from the following file: