Aikido
aikido::statespace::dart::RJoint< N > Class Template Reference

Rn for an arbitrary type of DART Joint with an arbitrary number of DegreeOfFreedoms. More...

#include <aikido/statespace/dart/RnJoint.hpp>

Inheritance diagram for aikido::statespace::dart::RJoint< N >:
aikido::statespace::R< N > aikido::statespace::dart::JointStateSpace aikido::statespace::StateSpace aikido::statespace::StateSpace

Public Types

using VectorNd = typename R< DimensionAtCompileTime >::VectorNd
 
using DartJoint = typename detail::RJointTraits< N >::DartJoint
 
- Public Types inherited from aikido::statespace::R< N >
using VectorNd = Eigen::Matrix< double, N, 1 >
 
using StateHandle = RStateHandle< State >
 
using StateHandleConst = RStateHandle< const State >
 
using ScopedState = statespace::ScopedState< StateHandle >
 
using ScopedStateConst = statespace::ScopedState< StateHandleConst >
 
- 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

 RJoint (const DartJoint *joint)
 Create a real vector state space for _joint. More...
 
void convertPositionsToState (const Eigen::VectorXd &positions, StateSpace::State *state) const override
 Converts DART Joint positions, e.g. More...
 
void convertStateToPositions (const StateSpace::State *state, Eigen::VectorXd &positions) const override
 Converts a State in this state space to DART Joint positions, e.g. More...
 
- Public Member Functions inherited from aikido::statespace::R< N >
 R ()
 Constructs a N dimensional real vector space only when the dimension is can be known in compile time. More...
 
 R (int dimension)
 Constructs a dimension dimensional real vector space. 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...
 
Eigen::Map< const VectorNdgetValue (const State *_state) const
 Gets the real vector stored in a State. More...
 
void setValue (State *_state, const VectorNd &_value) const
 Sets the real vector stored in a State. More...
 
std::size_t getStateSizeInBytes () const override
 Gets the size of a State, in bytes. More...
 
StateSpace::StateallocateStateInBuffer (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 n-dimensional vector represented by the state Format: [x_1, x_2, ..., x_n]. 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 StateallocateState () 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...
 
- Public Member Functions inherited from aikido::statespace::dart::JointStateSpace
 JointStateSpace (const ::dart::dynamics::Joint *joint)
 Constructs a state space for joint. More...
 
virtual ~JointStateSpace ()=default
 Destructor. More...
 
const PropertiesgetProperties () const
 Gets the joint properties associated with this state space. More...
 
bool isCompatible (const ::dart::dynamics::Joint *joint) const
 Returns whether the Joint can be used with this state space. More...
 
void checkCompatibility (const ::dart::dynamics::Joint *joint) const
 Throws an error if the Joint cannot be used with this state space. More...
 
virtual void getState (const ::dart::dynamics::Joint *joint, StateSpace::State *state) const
 Gets the positions of the joint and store them in state. More...
 
virtual void setState (::dart::dynamics::Joint *joint, const StateSpace::State *state) const
 Sets the positions of the joint to state. More...
 

Static Public Attributes

static constexpr int DimensionAtCompileTime = N
 
- Static Public Attributes inherited from aikido::statespace::R< N >
static constexpr int DimensionAtCompileTime = N
 Dimension of the space. More...
 

Additional Inherited Members

- Protected Attributes inherited from aikido::statespace::dart::JointStateSpace
Properties mProperties
 

Detailed Description

template<int N>
class aikido::statespace::dart::RJoint< N >

Rn for an arbitrary type of DART Joint with an arbitrary number of DegreeOfFreedoms.

This class treats the joint's positions as a real vector space.

This may not be appropriate for all Joint types, e.g. FreeJoint is best modelled as having an SE(3) state space. If you are not sure what type of JointStateSpace to for a Joint you most likely should use the createJointStateSpace helper function.

Member Typedef Documentation

◆ DartJoint

template<int N>
using aikido::statespace::dart::RJoint< N >::DartJoint = typename detail::RJointTraits<N>::DartJoint

◆ VectorNd

Constructor & Destructor Documentation

◆ RJoint()

template<int N>
aikido::statespace::dart::RJoint< N >::RJoint ( const DartJoint joint)
explicit

Create a real vector state space for _joint.

Parameters
jointjoint to create a state space for

Member Function Documentation

◆ convertPositionsToState()

template<int N>
void aikido::statespace::dart::RJoint< N >::convertPositionsToState ( const Eigen::VectorXd &  positions,
StateSpace::State state 
) const
overridevirtual

Converts DART Joint positions, e.g.

those returned by getPositions, to a State in this state space.

Parameters
positionsinput DART Joint positions
[out]stateoutput state

Implements aikido::statespace::dart::JointStateSpace.

◆ convertStateToPositions()

template<int N>
void aikido::statespace::dart::RJoint< N >::convertStateToPositions ( const StateSpace::State state,
Eigen::VectorXd &  positions 
) const
overridevirtual

Converts a State in this state space to DART Joint positions, e.g.

that may be passed to setPositions.

Parameters
stateinput state
[out]positionsoutput DART Joint positions

Implements aikido::statespace::dart::JointStateSpace.

Member Data Documentation

◆ DimensionAtCompileTime

template<int N>
constexpr int aikido::statespace::dart::RJoint< N >::DimensionAtCompileTime = N
staticconstexpr