GCOP
1.0
|
#include <manifold.h>
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) | |
T | lb |
lower bound (-inf by default) | |
T | ub |
upper bound (inf by default) |
Homogeneous manifold
Author: Marin Kobilarov marin(at)jhu.edu
typedef Matrix<double, _n, _n> gcop::Manifold< T, _n >::Matrixnd |
typedef Matrix<double, _n, 1> gcop::Manifold< T, _n >::Vectornd |
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).
n | manifold dimension |
virtual void gcop::Manifold< T, _n >::Adtau | ( | Matrixnd & | M, |
const Vectornd & | v | ||
) | [inline, virtual] |
Adjoint map of the retraction, i.e. Ad((v))
M | resulting matrix operator |
v | Lie 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 >.
virtual void gcop::Manifold< T, _n >::dtau | ( | Matrixnd & | M, |
const Vectornd & | v | ||
) | [inline, virtual] |
Right-trivialized derivative of the retraction map dtau(v)
M | matrix operator |
v | Lie 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 >.
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.
v | Lie algebra element (regarded as difference between xb and xa) |
xa | starting state |
xb | ending 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.
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.
xb | ending state |
xa | starting state |
v | Lie 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 >.
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().
T gcop::Manifold< T, _n >::lb |
lower bound (-inf by default)
Referenced by gcop::Airbot::Airbot(), gcop::Bulletrccar::Bulletrccar(), gcop::Bulletrccar1::Bulletrccar1(), gcop::Chain::Chain(), gcop::Mbs::CheckLimits(), gcop::Mbs::ClampPose(), gcop::Mbs::ClampVelocity(), gcop::Mbs::Force(), gcop::Mbs::GetImpulse(), gcop::Rccar::Rccar(), and gcop::Rccar1::Rccar1().
int gcop::Manifold< T, _n >::n |
dimension
Referenced by gcop::Airbot::Airbot(), gcop::ControllerTparam< Tx, nx, nu, np, _ntp, Tc >::ControllerTparam(), gcop::Ddp< T, nx, nu, np >::Ddp(), gcop::Docp< T, nx, nu, np >::Docp(), gcop::Doep< T, nx, nu, np, Tz, nz, T1, nx1 >::Doep(), gcop::KalmanCorrector< T, _nx, _nu, _np, Tz, _nz >::KalmanCorrector(), gcop::LqSensorCost< T, _nx, _nu, _np, _ng, Tz, _nz >::LqSensorCost(), gcop::PDdp< T, n, c, np >::PDdp(), gcop::SDdp< T, nx, nu, np >::SDdp(), gcop::Sensor< T, _nx, _nu, _np, Tz, _nz >::Sensor(), gcop::SystemCe< T, n, c, np, ntp, Tc >::SystemCe(), gcop::Mbs::TrapStep(), and gcop::UnscentedBase< T, _nx >::UnscentedBase().
T gcop::Manifold< T, _n >::ub |
upper bound (inf by default)
Referenced by gcop::Airbot::Airbot(), gcop::Bulletrccar::Bulletrccar(), gcop::Bulletrccar1::Bulletrccar1(), gcop::Chain::Chain(), gcop::Mbs::CheckLimits(), gcop::Mbs::ClampPose(), gcop::Mbs::ClampVelocity(), gcop::Mbs::Force(), gcop::Mbs::GetImpulse(), gcop::Rccar::Rccar(), and gcop::Rccar1::Rccar1().