|
Aikido
|
Interpolate by parallel transport along a geodesic between two states in a Lie group with an affine connection. More...
#include <aikido/statespace/GeodesicInterpolator.hpp>
Public Member Functions | |
| GeodesicInterpolator (statespace::ConstStateSpacePtr _stateSpace) | |
Constructs a GeodesicInterpolator for _stateSpace. More... | |
| virtual | ~GeodesicInterpolator ()=default |
| ConstStateSpacePtr | getStateSpace () const override |
Gets the StateSpace on which this Interpolator operates. More... | |
| std::size_t | getNumDerivatives () const override |
| Upper bound on the number of non-zero derivatives. More... | |
| Eigen::VectorXd | getTangentVector (const statespace::StateSpace::State *_from, const statespace::StateSpace::State *_to) const |
| Gets the tangent vector that defines the geodesic, scaled such that: More... | |
| void | interpolate (const statespace::StateSpace::State *_from, const statespace::StateSpace::State *_to, double _alpha, statespace::StateSpace::State *_state) const override |
Computes the state that lies at path parameter _alpha along the path that connects _from to _to. More... | |
| void | getDerivative (const statespace::StateSpace::State *_from, const statespace::StateSpace::State *_to, std::size_t _derivative, double _alpha, Eigen::VectorXd &_tangentVector) const override |
Computes the _derivative-th derivative of the path at path parameter _alpha between _from and _to. More... | |
Public Member Functions inherited from aikido::statespace::Interpolator | |
| virtual | ~Interpolator ()=default |
Private Attributes | |
| statespace::ConstStateSpacePtr | mStateSpace |
Interpolate by parallel transport along a geodesic between two states in a Lie group with an affine connection.
The geodesic is defined by a single tangent vector that remains constant during interpolation.
|
explicit |
Constructs a GeodesicInterpolator for _stateSpace.
| _stateSpace | used for interpolation |
|
virtualdefault |
|
overridevirtual |
Computes the _derivative-th derivative of the path at path parameter _alpha between _from and _to.
The output is an element of the tangent space in the local (i.e. "body") frame.
| _from | start state in getStateSpace() | |
| _to | end state in getStateSpace() | |
| _derivative | order of the derivative to compute | |
| _alpha | path parameter in the range [0, 1] | |
| [out] | _tangentVector | output element of the tangent space |
Implements aikido::statespace::Interpolator.
|
overridevirtual |
Upper bound on the number of non-zero derivatives.
Implements aikido::statespace::Interpolator.
|
overridevirtual |
Gets the StateSpace on which this Interpolator operates.
Implements aikido::statespace::Interpolator.
| Eigen::VectorXd aikido::statespace::GeodesicInterpolator::getTangentVector | ( | const statespace::StateSpace::State * | _from, |
| const statespace::StateSpace::State * | _to | ||
| ) | const |
Gets the tangent vector that defines the geodesic, scaled such that:
| _from | start state in getStateSpace() |
| _to | goal state in getStateSpace() |
|
overridevirtual |
Computes the state that lies at path parameter _alpha along the path that connects _from to _to.
By definition interpolate(0) is _from and interpolate(1) is _to. The memory location of _state must differ from the memory locations of _from and _to.
| _from | start state in getStateSpace() | |
| _to | end state in getStateSpace() | |
| _alpha | path parameter in the range [0, 1] | |
| [out] | _state | output interpolated state |
Implements aikido::statespace::Interpolator.
|
private |