|
GCOP
1.0
|
#include <rn.h>


Public Member Functions | |
| Rn (int n=_n) | |
| void | Lift (Vectornd &v, const Vectornd &xa, const Vectornd &xb) |
| void | Retract (Vectornd &xb, const Vectornd &xa, const Vectornd &v) |
| void | dtau (Matrixnd &M, const Vectornd &v) |
| void | Adtau (Matrixnd &M, const Vectornd &v) |
| virtual bool | Bound (Vectornd &v, Vectornd &d, const Vectornd &v0) |
| virtual bool | Clip (Vectornd &v) const |
Static Public Member Functions | |
| static Rn< _n > & | Instance () |
Public Attributes | |
| char | bndType |
| type of bound | |
| Vectornd | w |
| ellipsoidal bound weights | |
Static Public Attributes | |
| static const char | BND_BOX = 0 |
| static const char | BND_ELLIPSOID = 1 |
n-dimension vector space, i.e.
Adjoint map of the retraction, i.e. Ad((v))
| M | resulting matrix operator |
| v | Lie algebra element |
Reimplemented from gcop::Manifold< Matrix< double, _n, 1 >, _n >.
| bool gcop::Rn< _n >::Bound | ( | Vectornd & | v, |
| Vectornd & | d, | ||
| const Vectornd & | v0 | ||
| ) | [virtual] |
Find a vector v = v0 + d for given v0 and d such that v satisfies the bounds; this is accomplished by modifying d appropriately and returning the updated v and d. Default implementation is assuming the bound is a box defined by the vectors lb and ub.
| v | vector satisfying bounds |
| d | direction |
| v0 | starting vector |
Referenced by gcop::Ddp< T, nx, nu, np >::Forward().
Clips a vector to be within lb and ub
| vector | v |
Right-trivialized derivative of the retraction map dtau(v)
| M | matrix operator |
| v | Lie algebra element |
Reimplemented from gcop::Manifold< Matrix< double, _n, 1 >, _n >.
Singleton to be used only for fixed-size Rn, i.e. Rn<n>::Instance()
| void gcop::Rn< _n >::Lift | ( | Vectornd & | v, |
| const Vectornd & | xa, | ||
| const Vectornd & | xb | ||
| ) | [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 |
Implements gcop::Manifold< Matrix< double, _n, 1 >, _n >.
| void gcop::Rn< _n >::Retract | ( | Vectornd & | xb, |
| const Vectornd & | xa, | ||
| const Vectornd & | v | ||
| ) | [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) |
Implements gcop::Manifold< Matrix< double, _n, 1 >, _n >.
const char gcop::Rn< _n >::BND_ELLIPSOID = 1 [static] |
ellipsoidal bound weights
Referenced by gcop::Rn< _n >::Rn().
1.7.6.1