GCOP  1.0
Public Types | Public Member Functions | Public Attributes
gcop::Manifold< T, _n > Class Template Reference

#include <manifold.h>

Collaboration diagram for gcop::Manifold< T, _n >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef Matrix< double, _n, 1 > Vectornd
typedef Matrix< double, _n, _n > Matrixnd

Public Member Functions

 Manifold (int n=_n)
virtual void Lift (Vectornd &v, const T &xa, const T &xb)=0
virtual void Retract (T &xb, const T &xa, const Vectornd &v)=0
virtual void dtau (Matrixnd &M, const Vectornd &v)
virtual void Adtau (Matrixnd &M, const Vectornd &v)

Public Attributes

int n
 dimension
bool bnd
 is the space bounded (false by default). Bounds are defined below: these "box" bounds make sense when there is a natural ordering on the manifold, e.g. of the natural numbers)
lb
 lower bound (-inf by default)
ub
 upper bound (inf by default)

Detailed Description

template<typename T, int _n = Dynamic>
class gcop::Manifold< T, _n >

Homogeneous manifold

Author: Marin Kobilarov marin(at)jhu.edu


Member Typedef Documentation

template<typename T, int _n = Dynamic>
typedef Matrix<double, _n, _n> gcop::Manifold< T, _n >::Matrixnd
template<typename T, int _n = Dynamic>
typedef Matrix<double, _n, 1> gcop::Manifold< T, _n >::Vectornd

Constructor & Destructor Documentation

template<typename T , int _n>
gcop::Manifold< T, _n >::Manifold ( int  n = _n)

Create a manifold of dimension n. For fixed-size use default constructor Manifold<T,n>() For dynamic-size use Manifold<T>(n).

Parameters:
nmanifold dimension

Member Function Documentation

template<typename T, int _n = Dynamic>
virtual void gcop::Manifold< T, _n >::Adtau ( Matrixnd M,
const Vectornd v 
) [inline, virtual]

Adjoint map of the retraction, i.e. Ad((v))

Parameters:
Mresulting matrix operator
vLie algebra element

Reimplemented in gcop::Group< 6, 4 >, gcop::Group< 3, 3 >, gcop::Rn< _n >, gcop::Rn< Dynamic >, gcop::Rn< _np >, and gcop::Rn< _nu >.

template<typename T, int _n = Dynamic>
virtual void gcop::Manifold< T, _n >::dtau ( Matrixnd M,
const Vectornd v 
) [inline, virtual]

Right-trivialized derivative of the retraction map dtau(v)

Parameters:
Mmatrix operator
vLie algebra element

Reimplemented in gcop::Group< 6, 4 >, gcop::Group< 3, 3 >, gcop::Rn< _n >, gcop::Rn< Dynamic >, gcop::Rn< _np >, and gcop::Rn< _nu >.

template<typename T, int _n = Dynamic>
virtual void gcop::Manifold< T, _n >::Lift ( Vectornd v,
const T &  xa,
const T &  xb 
) [pure virtual]

Compute a lie algebra element corresponding to a group action between two given states on a manifold. This operation geometrically means that the curve from xa to xb is "lifted" to the tangent space of the manifold to a vector represented by the lie algebra element.

The element can also be regarded as a difference between the two states xa and xb. On a vector space this is v = xb - xa. On homogeneous manifolds v is a Lie algebra element corresponding to an action taking xa to xb.

Parameters:
vLie algebra element (regarded as difference between xb and xa)
xastarting state
xbending state

Implemented in gcop::Group< 6, 4 >, gcop::Group< 3, 3 >, gcop::Rn< _n >, gcop::Rn< Dynamic >, gcop::Rn< _np >, gcop::Rn< _nu >, and gcop::MbsCspace.

template<typename T, int _n = Dynamic>
virtual void gcop::Manifold< T, _n >::Retract ( T &  xb,
const T &  xa,
const Vectornd v 
) [pure virtual]

Retracts a tangent vector on a manifold at state xa to produce a new state xb. The vector is represented using a Lie algebra element.

The operation can also be regarded as a way to perform addition on manifolds, i.e. to increment a given state xa by v to get a new state xb. On a vector space this is xb = xa + v. On homogeneous manifolds v is a Lie algebra element corresponding to an action taking xa to xb.

Parameters:
xbending state
xastarting state
vLie algebra element (regarded as difference between xb and xa)

Implemented in gcop::Group< 6, 4 >, gcop::Group< 3, 3 >, gcop::Rn< _n >, gcop::Rn< Dynamic >, gcop::Rn< _np >, and gcop::Rn< _nu >.


Member Data Documentation

template<typename T, int _n = Dynamic>
bool gcop::Manifold< T, _n >::bnd

is the space bounded (false by default). Bounds are defined below: these "box" bounds make sense when there is a natural ordering on the manifold, e.g. of the natural numbers)

Referenced by gcop::Airbot::Airbot(), gcop::Bulletrccar::Bulletrccar(), gcop::Bulletrccar1::Bulletrccar1(), gcop::Chain::Chain(), gcop::Rccar::Rccar(), and gcop::Rccar1::Rccar1().

template<typename T, int _n = Dynamic>
T gcop::Manifold< T, _n >::lb
template<typename T, int _n = Dynamic>
int gcop::Manifold< T, _n >::n
template<typename T, int _n = Dynamic>
T gcop::Manifold< T, _n >::ub

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