KrisLibrary  1.0.0
Public Member Functions | Public Attributes | List of all members
IntegratorObjectiveFunctional Class Referenceabstract

A cost functional of the form J[x,u] = int_0^T L(x(t),u(t)) dt + Phi(x(T)) More...

#include <Objective.h>

Inheritance diagram for IntegratorObjectiveFunctional:
ObjectiveFunctionalBase QuadraticObjective

Public Member Functions

 IntegratorObjectiveFunctional (Real dt=0.1, int timeIndex=-1)
 
virtual Real DifferentialCost (const State &x, const ControlInput &u)=0
 Subclasses must override this.
 
virtual Real Domain (const ControlInput &u, const Interpolator *path)
 Subclasses should override this if timeIndex < 0.
 
virtual Real IncrementalCost (const ControlInput &u, const Interpolator *path)
 This is implemented for you.
 
- Public Member Functions inherited from ObjectiveFunctionalBase
virtual const char * TypeString ()
 Subclasses: return an identifier for this goal type.
 
virtual std::string Description ()
 Subclasses: return a string for printing (optional)
 
virtual Real IncrementalCost (const Interpolator *path)
 
virtual Real IncrementalCost (const KinodynamicMilestonePath &path)
 
virtual Real TerminalCost (const Config &qend)
 Subclasses: return the cost of a terminal state.
 
virtual bool PathInvariant () const
 Subclasses: planners may exploit path-invariant costs for faster performance.
 
virtual Real PathCost (const MilestonePath &path)
 
virtual Real PathCost (const KinodynamicMilestonePath &path)
 
virtual bool SaveParams (AnyCollection &collection)
 Subclasses: read and write parameters to collection.
 
virtual bool LoadParams (AnyCollection &collection)
 

Public Attributes

Real dt
 
int timeIndex
 

Detailed Description

A cost functional of the form J[x,u] = int_0^T L(x(t),u(t)) dt + Phi(x(T))

where x is the state trajectory and u is the control trajectory with domain [0,T].

If timeIndex is provided and nonnegative, then that element of x is assumed to be time. Otherwise, the subclass needs to overload Domain() to tell this class what time domain should be integrated over, i.e., how long each segment takes to execute. This information may be, for example, in the first element of u.


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