|
Aikido
|
The three-dimensional special Euclidean group SE(3), i.e. More...
#include <aikido/statespace/SE3.hpp>
Classes | |
| class | State |
Public Types | |
| using | StateHandle = SE3StateHandle< State > |
| using | StateHandleConst = SE3StateHandle< const State > |
| using | ScopedState = statespace::ScopedState< StateHandle > |
| using | ScopedStateConst = statespace::ScopedState< StateHandleConst > |
| using | Isometry3d = State::Isometry3d |
Public Types inherited from aikido::statespace::StateSpace | |
| using | StateHandle = statespace::StateHandle< StateSpace, State > |
| using | StateHandleConst = statespace::StateHandle< StateSpace, const State > |
| using | ScopedState = statespace::ScopedState< StateHandle > |
| using | ScopedStateConst = statespace::ScopedState< StateHandleConst > |
Public Member Functions | |
| SE3 ()=default | |
| Constructs a state space representing SE(3). More... | |
| ScopedState | createState () const |
Helper function to create a ScopedState. More... | |
| ScopedState | cloneState (const StateSpace::State *stateIn) const |
Creates an identical clone of stateIn. More... | |
| const Isometry3d & | getIsometry (const State *_state) const |
| Gets value as an Eigen transformation object. More... | |
| void | setIsometry (State *_state, const Isometry3d &_transform) const |
| Sets value to an Eigen transfomation object. More... | |
| std::size_t | getStateSizeInBytes () const override |
| Gets the size of a State, in bytes. More... | |
| StateSpace::State * | allocateStateInBuffer (void *_buffer) const override |
| Create a new state in a pre-allocated buffer. More... | |
| void | freeStateInBuffer (StateSpace::State *_state) const override |
Free a state previously created by allocateStateInBuffer. More... | |
| void | compose (const StateSpace::State *_state1, const StateSpace::State *_state2, StateSpace::State *_out) const override |
| Lie group operation for this StateSpace. More... | |
| void | getIdentity (StateSpace::State *_out) const override |
| Gets the identity element for this Lie group, such that: More... | |
| void | getInverse (const StateSpace::State *_in, StateSpace::State *_out) const override |
Gets the inverse of _in in this Lie group, such that: More... | |
| std::size_t | getDimension () const override |
| Get the dimension of this Lie group. More... | |
| void | copyState (const StateSpace::State *_source, StateSpace::State *_destination) const override |
| Copy a state. More... | |
| void | expMap (const Eigen::VectorXd &_tangent, StateSpace::State *_out) const override |
| Exponential mapping of Lie algebra element to a Lie group element. More... | |
| void | logMap (const StateSpace::State *_in, Eigen::VectorXd &_tangent) const override |
| Log mapping of Lie group element to a Lie algebra element. More... | |
| void | print (const StateSpace::State *_state, std::ostream &_os) const override |
| Print the quaternion followed by the translation Format: [q.w, q.x, q.y, q.z, x, y, z] where is the quaternion representation of the rotational component of the state. More... | |
| virtual void | compose (const State *_state1, const State *_state2, State *_out) const=0 |
| Lie group operation for this StateSpace. More... | |
| virtual void | compose (State *_state1, const State *_state2) const |
| Lie group operation for this StateSpace. More... | |
Public Member Functions inherited from aikido::statespace::StateSpace | |
| virtual | ~StateSpace ()=default |
| ScopedState | createState () const |
Helper function to create a ScopedState. More... | |
| ScopedState | cloneState (const State *stateIn) const |
Creates an identical clone of stateIn. More... | |
| virtual State * | allocateState () const |
| Allocate a new state. More... | |
| virtual void | freeState (State *_state) const |
Free a state previously created by allocateState. More... | |
| virtual void | compose (State *_state1, const State *_state2) const |
| Lie group operation for this StateSpace. More... | |
| virtual void | getInverse (State *_state) const |
Gets the inverse of _in in this Lie group. More... | |
The three-dimensional special Euclidean group SE(3), i.e.
the space of spatial rigid body transformations. Note that the group operation for SE(3) differs from the group operation of the Cartesian product space R^3 x SO(3) because it is constructed through the semi-direct product.
| using aikido::statespace::SE3::StateHandleConst = SE3StateHandle<const State> |
|
default |
Constructs a state space representing SE(3).
|
overridevirtual |
Create a new state in a pre-allocated buffer.
The input argument must contain at least getStateSizeInBytes() bytes of memory. This state must be freed with freeStateInBuffer before freeing _buffer.
| _buffer | memory used to store the returned state |
_buffer Implements aikido::statespace::StateSpace.
| ScopedState aikido::statespace::SE3::cloneState | ( | const StateSpace::State * | stateIn | ) | const |
Creates an identical clone of stateIn.
| virtual void aikido::statespace::StateSpace::compose |
Lie group operation for this StateSpace.
It is not acceptable for _out to share memory with _state1 or _state2.
| _state1 | left input state | |
| _state2 | right input state | |
| [out] | _out | output state |
|
overridevirtual |
Lie group operation for this StateSpace.
It is not acceptable for _out to share memory with _state1 or _state2.
| _state1 | left input state | |
| _state2 | right input state | |
| [out] | _out | output state |
Implements aikido::statespace::StateSpace.
| virtual void aikido::statespace::StateSpace::compose |
Lie group operation for this StateSpace.
This is an in-place version of the three argument compose member function that computes:
| [in,out] | _state1 | left input state, overwritten by output |
| _state2 | right input state |
|
overridevirtual |
Copy a state.
| _source | input state | |
| [out] | _destination | output state |
Implements aikido::statespace::StateSpace.
| ScopedState aikido::statespace::SE3::createState | ( | ) | const |
Helper function to create a ScopedState.
ScopedState
|
overridevirtual |
Exponential mapping of Lie algebra element to a Lie group element.
The tangent space is parameterized a planar twist of the form (rotation, translation).
| _tangent | element of the tangent space | |
| [out] | _out | corresponding element of the Lie group |
Implements aikido::statespace::StateSpace.
|
overridevirtual |
Free a state previously created by allocateStateInBuffer.
It is undefined behavior to access _state after calling this function.
| _state | state to free |
Implements aikido::statespace::StateSpace.
|
overridevirtual |
Get the dimension of this Lie group.
This is also the dimension of the tangent space, i.e. the Lie algebra, associated with this group.
Implements aikido::statespace::StateSpace.
|
overridevirtual |
Gets the identity element for this Lie group, such that:
| [out] | _out | output state |
Implements aikido::statespace::StateSpace.
|
overridevirtual |
Gets the inverse of _in in this Lie group, such that:
It is not acceptable for _in to share memory with _out.
| _state | input state | |
| [out] | _out | output state |
Implements aikido::statespace::StateSpace.
| const Isometry3d& aikido::statespace::SE3::getIsometry | ( | const State * | _state | ) | const |
Gets value as an Eigen transformation object.
| _state | a State in this state space |
|
overridevirtual |
Gets the size of a State, in bytes.
State Implements aikido::statespace::StateSpace.
|
overridevirtual |
Log mapping of Lie group element to a Lie algebra element.
The tangent space is parameterized as a planar twist of the form (rotation, translation).
| _in | element of this Lie group | |
| [out] | _tangent | corresponding element of the tangent space |
Implements aikido::statespace::StateSpace.
|
overridevirtual |
Print the quaternion followed by the translation Format: [q.w, q.x, q.y, q.z, x, y, z] where is the quaternion representation of the rotational component of the state.
Implements aikido::statespace::StateSpace.
| void aikido::statespace::SE3::setIsometry | ( | State * | _state, |
| const Isometry3d & | _transform | ||
| ) | const |
Sets value to an Eigen transfomation object.
| _state | a State in this state space |
| _transform | Eigen transformation |