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... | |
![]() | |
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 |