DART  6.10.1
dart::dynamics::TemplatedJacobianNode< NodeType > Class Template Referenceabstract

TemplatedJacobianNode provides a curiously recurring template pattern implementation of the various JacobianNode non-caching functions. More...

#include <TemplatedJacobianNode.hpp>

Inheritance diagram for dart::dynamics::TemplatedJacobianNode< NodeType >:
dart::dynamics::JacobianNode dart::dynamics::Frame dart::dynamics::Node dart::dynamics::Entity dart::common::Subject dart::common::VersionCounter dart::common::Subject

Public Types

using EntitySignal = common::Signal< void(const Entity *)>
 
using FrameChangedSignal = common::Signal< void(const Entity *, const Frame *_oldFrame, const Frame *_newFrame)>
 
using NameChangedSignal = common::Signal< void(const Entity *, const std::string &_oldName, const std::string &_newName)>
 
template<class Mixin >
using MakeState = common::MakeCloneable< State, Mixin >
 Use the MakeState class to easily create a State extension from an existing class or struct. More...
 
template<class Mixin >
using MakeProperties = common::MakeCloneable< Properties, Mixin >
 Use the MakeProperties class to easily create a Properties extension from an existing class or struct. More...
 

Public Member Functions

math::Jacobian getJacobian (const Frame *_inCoordinatesOf) const override final
 A version of getJacobian() that lets you specify a coordinate Frame to express the Jacobian in. More...
 
math::Jacobian getJacobian (const Eigen::Vector3d &_offset) const override final
 Return the generalized Jacobian targeting an offset within the Frame of this JacobianNode. More...
 
math::Jacobian getJacobian (const Eigen::Vector3d &_offset, const Frame *_inCoordinatesOf) const override final
 A version of getJacobian(const Eigen::Vector3d&) that lets you specify a coordinate Frame to express the Jacobian in. More...
 
math::Jacobian getWorldJacobian (const Eigen::Vector3d &_offset) const override final
 Return the generalized Jacobian targeting an offset in this JacobianNode. More...
 
math::LinearJacobian getLinearJacobian (const Frame *_inCoordinatesOf=Frame::World()) const override final
 Return the linear Jacobian targeting the origin of this BodyNode. More...
 
math::LinearJacobian getLinearJacobian (const Eigen::Vector3d &_offset, const Frame *_inCoordinatesOf=Frame::World()) const override final
 Return the generalized Jacobian targeting an offset within the Frame of this BodyNode. More...
 
math::AngularJacobian getAngularJacobian (const Frame *_inCoordinatesOf=Frame::World()) const override final
 Return the angular Jacobian targeting the origin of this BodyNode. More...
 
math::Jacobian getJacobianSpatialDeriv (const Frame *_inCoordinatesOf) const override final
 A version of getJacobianSpatialDeriv() that can return the Jacobian in coordinates of any Frame. More...
 
math::Jacobian getJacobianSpatialDeriv (const Eigen::Vector3d &_offset) const override final
 Return the spatial time derivative of the generalized Jacobian targeting an offset in the Frame of this BodyNode. More...
 
math::Jacobian getJacobianSpatialDeriv (const Eigen::Vector3d &_offset, const Frame *_inCoordinatesOf) const override final
 A version of getJacobianSpatialDeriv(const Eigen::Vector3d&) that allows an arbitrary coordinate Frame to be specified. More...
 
math::Jacobian getJacobianClassicDeriv (const Frame *_inCoordinatesOf) const override final
 A version of getJacobianClassicDeriv() that can return the Jacobian in coordinates of any Frame. More...
 
math::Jacobian getJacobianClassicDeriv (const Eigen::Vector3d &_offset, const Frame *_inCoordinatesOf=Frame::World()) const override final
 A version of getJacobianClassicDeriv() that can compute the Jacobian for an offset within the Frame of this BodyNode. More...
 
math::LinearJacobian getLinearJacobianDeriv (const Frame *_inCoordinatesOf=Frame::World()) const override final
 Return the linear Jacobian (classical) time derivative, in terms of any coordinate Frame. More...
 
math::LinearJacobian getLinearJacobianDeriv (const Eigen::Vector3d &_offset, const Frame *_inCoordinatesOf=Frame::World()) const override final
 A version of getLinearJacobianDeriv() that can compute the Jacobian for an offset within the Frame of this BodyNode. More...
 
math::AngularJacobian getAngularJacobianDeriv (const Frame *_inCoordinatesOf=Frame::World()) const override final
 Return the angular Jacobian time derivative, in terms of any coordinate Frame. More...
 
const std::shared_ptr< InverseKinematics > & getIK (bool _createIfNull=false)
 Get a pointer to an IK module for this JacobianNode. More...
 
std::shared_ptr< const InverseKinematicsgetIK () const
 Get a pointer to an IK module for this JacobianNode. More...
 
const std::shared_ptr< InverseKinematics > & getOrCreateIK ()
 Get a pointer to an IK module for this JacobianNode. More...
 
const std::shared_ptr< InverseKinematics > & createIK ()
 Create a new IK module for this JacobianNode. More...
 
void clearIK ()
 Wipe away the IK module for this JacobianNode, leaving it as a nullptr. More...
 
void notifyJacobianUpdate ()
 Notify this BodyNode and all its descendents that their Jacobians need to be updated. More...
 
void dirtyJacobian ()
 Notify this BodyNode and all its descendents that their Jacobians need to be updated. More...
 
void notifyJacobianDerivUpdate ()
 Notify this BodyNode and all its descendents that their Jacobian derivatives need to be updated. More...
 
void dirtyJacobianDeriv ()
 Notify this BodyNode and all its descendents that their Jacobian derivatives need to be updated. More...
 
virtual const std::string & getName () const=0
 Get the name of this Node. More...
 
virtual const std::string & getName () const =0
 Return the name of this Entity. More...
 
virtual const std::string & getName () const =0
 Get the name of this Node. More...
 
virtual const std::string & setName (const std::string &newName)=0
 Set the name of this Node. More...
 
virtual const std::string & setName (const std::string &_name)=0
 Set name. More...
 
virtual const std::string & setName (const std::string &newName)=0
 Set the name of this Node. More...
 
virtual const Eigen::Isometry3d & getRelativeTransform () const =0
 Get the transform of this Frame with respect to its parent Frame. More...
 
const Eigen::Isometry3d & getWorldTransform () const
 Get the transform of this Frame with respect to the World Frame. More...
 
Eigen::Isometry3d getTransform (const Frame *_withRespectTo=Frame::World()) const
 Get the transform of this Frame with respect to some other Frame. More...
 
Eigen::Isometry3d getTransform (const Frame *withRespectTo, const Frame *inCoordinatesOf) const
 Get the transform of this Frame with respect to some other Frame. More...
 
virtual const Eigen::Vector6dgetRelativeSpatialVelocity () const =0
 Get the spatial velocity of this Frame relative to its parent Frame, in its own coordinates. More...
 
const Eigen::Vector6dgetSpatialVelocity () const
 Get the total spatial velocity of this Frame in the coordinates of this Frame. More...
 
Eigen::Vector6d getSpatialVelocity (const Frame *_relativeTo, const Frame *_inCoordinatesOf) const
 Get the spatial velocity of this Frame relative to some other Frame. More...
 
Eigen::Vector6d getSpatialVelocity (const Eigen::Vector3d &_offset) const
 Get the spatial velocity of a fixed point in this Frame. More...
 
Eigen::Vector6d getSpatialVelocity (const Eigen::Vector3d &_offset, const Frame *_relativeTo, const Frame *_inCoordinatesOf) const
 Get the spatial velocity of a fixed point in this Frame. More...
 
Eigen::Vector3d getLinearVelocity (const Frame *_relativeTo=Frame::World(), const Frame *_inCoordinatesOf=Frame::World()) const
 Get the linear portion of classical velocity of this Frame relative to some other Frame. More...
 
Eigen::Vector3d getLinearVelocity (const Eigen::Vector3d &_offset, const Frame *_relativeTo=Frame::World(), const Frame *_inCoordinatesOf=Frame::World()) const
 Get the linear velocity of a point that is fixed in this Frame. More...
 
Eigen::Vector3d getAngularVelocity (const Frame *_relativeTo=Frame::World(), const Frame *_inCoordinatesOf=Frame::World()) const
 Get the angular portion of classical velocity of this Frame relative to some other Frame. More...
 
virtual const Eigen::Vector6dgetRelativeSpatialAcceleration () const =0
 Get the spatial acceleration of this Frame relative to its parent Frame, in the coordinates of this Frame. More...
 
virtual const Eigen::Vector6dgetPrimaryRelativeAcceleration () const =0
 The Featherstone ABI algorithm exploits a component of the spatial acceleration which we refer to as the partial acceleration, accessible by getPartialAcceleration(). More...
 
virtual const Eigen::Vector6dgetPartialAcceleration () const =0
 The Featherstone ABI algorithm exploits a component of the spatial acceleration which we refer to as the partial acceleration. More...
 
const Eigen::Vector6dgetSpatialAcceleration () const
 Get the total spatial acceleration of this Frame in the coordinates of this Frame. More...
 
Eigen::Vector6d getSpatialAcceleration (const Frame *_relativeTo, const Frame *_inCoordinatesOf) const
 Get the spatial acceleration of this Frame relative to some other Frame. More...
 
Eigen::Vector6d getSpatialAcceleration (const Eigen::Vector3d &_offset) const
 Get the spatial acceleration of a fixed point in this Frame. More...
 
Eigen::Vector6d getSpatialAcceleration (const Eigen::Vector3d &_offset, const Frame *_relativeTo, const Frame *_inCoordinatesOf) const
 Get the spatial acceleration of a fixed point in this Frame. More...
 
Eigen::Vector3d getLinearAcceleration (const Frame *_relativeTo=Frame::World(), const Frame *_inCoordinatesOf=Frame::World()) const
 Get the linear portion of classical acceleration of this Frame relative to some other Frame. More...
 
Eigen::Vector3d getLinearAcceleration (const Eigen::Vector3d &_offset, const Frame *_relativeTo=Frame::World(), const Frame *_inCoordinatesOf=Frame::World()) const
 
Eigen::Vector3d getAngularAcceleration (const Frame *_relativeTo=Frame::World(), const Frame *_inCoordinatesOf=Frame::World()) const
 Get the angular portion of classical acceleration of this Frame relative to some other Frame. More...
 
const std::set< Entity * > & getChildEntities ()
 Get a container with the Entities that are children of this Frame. More...
 
const std::set< const Entity * > getChildEntities () const
 Get a container with the Entities that are children of this Frame. More...
 
std::size_t getNumChildEntities () const
 Get the number of Entities that are currently children of this Frame. More...
 
const std::set< Frame * > & getChildFrames ()
 Get a container with the Frames that are children of this Frame. More...
 
std::set< const Frame * > getChildFrames () const
 Get a container with the Frames that are children of this Frame. More...
 
std::size_t getNumChildFrames () const
 Get the number of Frames that are currently children of this Frame. More...
 
bool isShapeFrame () const
 Returns true if this Frame is a ShapeFrame. More...
 
virtual ShapeFrameasShapeFrame ()
 Convert 'this' into a ShapeFrame pointer if Frame is a ShapeFrame, otherwise return nullptr. More...
 
virtual const ShapeFrameasShapeFrame () const
 Convert 'const this' into a ShapeFrame pointer if Frame is a ShapeFrame, otherwise return nullptr. More...
 
bool isWorld () const
 Returns true if this Frame is the World Frame. More...
 
virtual void dirtyTransform () override
 Notify the transformation updates of this Frame and all its children are needed. More...
 
virtual void dirtyVelocity () override
 Notify the velocity updates of this Frame and all its children are needed. More...
 
virtual void dirtyAcceleration () override
 Notify the acceleration updates of this Frame and all its children are needed. More...
 
FramegetParentFrame ()
 Get the parent (reference) frame of this Entity. More...
 
const FramegetParentFrame () const
 Get the parent (reference) frame of this Entity. More...
 
bool descendsFrom (const Frame *_someFrame) const
 Returns true if and only if this Entity is itself (i.e. More...
 
bool isFrame () const
 True iff this Entity is also a Frame. More...
 
bool isQuiet () const
 Returns true if this Entity is set to be quiet. More...
 
virtual void notifyTransformUpdate ()
 Notify the transformation update of this Entity that its parent Frame's pose is needed. More...
 
bool needsTransformUpdate () const
 Returns true iff a transform update is needed for this Entity. More...
 
virtual void notifyVelocityUpdate ()
 Notify the velocity update of this Entity that its parent Frame's velocity is needed. More...
 
bool needsVelocityUpdate () const
 Returns true iff a velocity update is needed for this Entity. More...
 
virtual void notifyAccelerationUpdate ()
 Notify the acceleration of this Entity that its parent Frame's acceleration is needed. More...
 
bool needsAccelerationUpdate () const
 Returns true iff an acceleration update is needed for this Entity. More...
 
virtual void setNodeState (const State &otherState)
 Set the State of this Node. By default, this does nothing. More...
 
virtual std::unique_ptr< StategetNodeState () const
 Get the State of this Node. More...
 
virtual void copyNodeStateTo (std::unique_ptr< State > &outputState) const
 Copy the State of this Node into a unique_ptr. More...
 
virtual void setNodeProperties (const Properties &properties)
 Set the Properties of this Node. By default, this does nothing. More...
 
virtual std::unique_ptr< PropertiesgetNodeProperties () const
 Get the Properties of this Node. More...
 
virtual void copyNodePropertiesTo (std::unique_ptr< Properties > &outputProperties) const
 Copy the Properties of this Node into a unique_ptr. More...
 
BodyNodePtr getBodyNodePtr ()
 Get a pointer to the BodyNode that this Node is associated with. More...
 
ConstBodyNodePtr getBodyNodePtr () const
 Get a pointer to the BodyNode that this Node is associated with. More...
 
bool isRemoved () const
 Returns true if this Node has been staged for removal from its BodyNode. More...
 
virtual std::shared_ptr< SkeletongetSkeleton ()
 Return the Skeleton that this Node is attached to. More...
 
virtual std::shared_ptr< const SkeletongetSkeleton () const
 Return the Skeleton that this Node is attached to. More...
 
virtual std::size_t incrementVersion ()
 Increment the version for this object. More...
 
virtual std::size_t getVersion () const
 Get the version number of this object. More...
 
Structural Properties
virtual bool dependsOn (std::size_t _genCoordIndex) const =0
 Return true if _genCoordIndex-th generalized coordinate. More...
 
virtual std::size_t getNumDependentGenCoords () const =0
 The number of the generalized coordinates which affect this JacobianNode. More...
 
virtual std::size_t getDependentGenCoordIndex (std::size_t _arrayIndex) const =0
 Return a generalized coordinate index from the array index (< getNumDependentDofs) More...
 
virtual const std::vector< std::size_t > & getDependentGenCoordIndices () const =0
 Indices of the generalized coordinates which affect this JacobianNode. More...
 
virtual std::size_t getNumDependentDofs () const =0
 Same as getNumDependentGenCoords() More...
 
virtual DegreeOfFreedomgetDependentDof (std::size_t _index)=0
 Get a pointer to the _indexth dependent DegreeOfFreedom for this BodyNode. More...
 
virtual const DegreeOfFreedomgetDependentDof (std::size_t _index) const =0
 Get a pointer to the _indexth dependent DegreeOfFreedom for this BodyNode. More...
 
virtual const std::vector< DegreeOfFreedom * > & getDependentDofs ()=0
 Return a std::vector of DegreeOfFreedom pointers that this Node depends on. More...
 
virtual const std::vector< const DegreeOfFreedom * > & getDependentDofs () const =0
 Return a std::vector of DegreeOfFreedom pointers that this Node depends on. More...
 
virtual const std::vector< const DegreeOfFreedom * > getChainDofs () const =0
 Returns a DegreeOfFreedom vector containing the dofs that form a Chain leading up to this JacobianNode from the root of the Skeleton. More...
 
Jacobian Functions
virtual const math::JacobiangetJacobian () const =0
 Return the generalized Jacobian targeting the origin of this JacobianNode. More...
 
virtual const math::JacobiangetWorldJacobian () const =0
 Return the generalized Jacobian targeting the origin of this JacobianNode. More...
 
virtual const math::JacobiangetJacobianSpatialDeriv () const =0
 Return the spatial time derivative of the generalized Jacobian targeting the origin of this BodyNode. More...
 
virtual const math::JacobiangetJacobianClassicDeriv () const =0
 Return the classical time derivative of the generalized Jacobian targeting the origin of this BodyNode. More...
 

Static Public Member Functions

static FrameWorld ()
 
static std::shared_ptr< FrameWorldShared ()
 

Protected Types

enum  ConstructAbstractTag { ConstructAbstract }
 Used when constructing a pure abstract class, because calling the Frame constructor is just a formality. More...
 
enum  ConstructFrameTag { ConstructFrame }
 Used when constructing a Frame class, because the Frame constructor will take care of setting up the parameters you pass into it. More...
 

Protected Member Functions

 TemplatedJacobianNode (BodyNode *bn)
 Constructor. More...
 
virtual void changeParentFrame (Frame *_newParentFrame) override
 Used by derived classes to change their parent frames. More...
 
virtual void processNewEntity (Entity *_newChildEntity)
 Called during a parent Frame change to allow extensions of the Frame class to handle new children in customized ways. More...
 
virtual void processRemovedEntity (Entity *_oldChildEntity)
 Called when a child Entity is removed from its parent Frame. More...
 
void sendDestructionNotification () const
 Send a destruction notification to all Observers. More...
 
void addObserver (Observer *_observer) const
 Add an Observer to the list of Observers. More...
 
void removeObserver (Observer *_observer) const
 Remove an Observer from the list of Observers. More...
 
virtual NodecloneNode (BodyNode *bn) const =0
 Allow your Node implementation to be cloned into a new BodyNode. More...
 
std::string registerNameChange (const std::string &newName)
 Inform the Skeleton that the name of this Node has changed. More...
 
void attach ()
 Attach the Node to its BodyNode. More...
 
void stageForRemoval ()
 When all external references to the Node disappear, it will be deleted. More...
 
void setVersionDependentObject (VersionCounter *dependent)
 

Protected Attributes

bool mIsBodyJacobianDirty
 Dirty flag for body Jacobian. More...
 
bool mIsWorldJacobianDirty
 Dirty flag for world Jacobian. More...
 
bool mIsBodyJacobianSpatialDerivDirty
 Dirty flag for spatial time derivative of body Jacobian. More...
 
bool mIsWorldJacobianClassicDerivDirty
 Dirty flag for the classic time derivative of the Jacobian. More...
 
std::shared_ptr< InverseKinematicsmIK
 Inverse kinematics module which gets lazily created upon request. More...
 
std::unordered_set< JacobianNode * > mChildJacobianNodes
 JacobianNode children that descend from this JacobianNode. More...
 
Eigen::Isometry3d mWorldTransform
 World transform of this Frame. More...
 
Eigen::Vector6d mVelocity
 Total velocity of this Frame, in the coordinates of this Frame. More...
 
Eigen::Vector6d mAcceleration
 Total acceleration of this Frame, in the coordinates of this Frame. More...
 
std::set< Frame * > mChildFrames
 Container of this Frame's child Frames. More...
 
std::set< Entity * > mChildEntities
 Container of this Frame's child Entities. More...
 
FramemParentFrame
 Parent frame of this Entity. More...
 
bool mNeedTransformUpdate
 Does this Entity need a Transform update. More...
 
bool mNeedVelocityUpdate
 Does this Entity need a Velocity update. More...
 
bool mNeedAccelerationUpdate
 Does this Entity need an Acceleration update. More...
 
FrameChangedSignal mFrameChangedSignal
 Frame changed signal. More...
 
NameChangedSignal mNameChangedSignal
 Name changed signal. More...
 
EntitySignal mTransformUpdatedSignal
 Transform changed signal. More...
 
EntitySignal mVelocityChangedSignal
 Velocity changed signal. More...
 
EntitySignal mAccelerationChangedSignal
 Acceleration changed signal. More...
 
std::set< Observer * > mObservers
 List of current Observers. More...
 
std::weak_ptr< NodeDestructormDestructor
 weak pointer to the destructor for this Node. More...
 
BodyNodemBodyNode
 Pointer to the BodyNode that this Node is attached to. More...
 
bool mAmAttached
 bool that tracks whether this Node is attached to its BodyNode More...
 
std::size_t mIndexInBodyNode
 The index of this Node within its vector in its BodyNode's NodeMap. More...
 
std::size_t mIndexInSkeleton
 The index of this Node within its vector in its Skeleton's NodeMap. More...
 
std::size_t mIndexInTree
 Index of this Node within its tree. More...
 
std::size_t mVersion
 

Private Types

enum  ConstructWorldTag { ConstructWorld }
 Used when constructing the World. More...
 

Private Member Functions

std::shared_ptr< NodeDestructorgetOrCreateDestructor ()
 

Private Attributes

const bool mAmWorld
 Contains whether or not this is the World Frame. More...
 
bool mAmShapeFrame
 Contains whether or not this is a ShapeFrame. More...
 
VersionCountermDependent
 

Slot registers

const bool mAmQuiet
 Whether or not this Entity is set to be quiet. More...
 
bool mAmFrame
 Whether or not this Entity is a Frame. More...
 
common::SlotRegister< FrameChangedSignalonFrameChanged
 Slot register for frame changed signal. More...
 
common::SlotRegister< NameChangedSignalonNameChanged
 Slot register for name changed signal. More...
 
common::SlotRegister< EntitySignalonTransformUpdated
 Slot register for transform updated signal. More...
 
common::SlotRegister< EntitySignalonVelocityChanged
 Slot register for velocity updated signal. More...
 
common::SlotRegister< EntitySignalonAccelerationChanged
 Slot register for acceleration updated signal. More...
 

Detailed Description

template<class NodeType>
class dart::dynamics::TemplatedJacobianNode< NodeType >

TemplatedJacobianNode provides a curiously recurring template pattern implementation of the various JacobianNode non-caching functions.

These functions are easily distinguished because they return by value instead of returning by const reference.

This style of implementation allows BodyNode and EndEffector to share the implementations of these various auxiliary Jacobian functions without any penalty from dynamic overload resolution.

Member Typedef Documentation

◆ EntitySignal

◆ FrameChangedSignal

using dart::dynamics::Entity::FrameChangedSignal = common::Signal<void( const Entity*, const Frame* _oldFrame, const Frame* _newFrame)>
inherited

◆ MakeProperties

template<class Mixin >
using dart::dynamics::Node::MakeProperties = common::MakeCloneable<Properties, Mixin>
inherited

Use the MakeProperties class to easily create a Properties extension from an existing class or struct.

◆ MakeState

template<class Mixin >
using dart::dynamics::Node::MakeState = common::MakeCloneable<State, Mixin>
inherited

Use the MakeState class to easily create a State extension from an existing class or struct.

◆ NameChangedSignal

using dart::dynamics::Entity::NameChangedSignal = common::Signal<void( const Entity*, const std::string& _oldName, const std::string& _newName)>
inherited

Member Enumeration Documentation

◆ ConstructAbstractTag

Used when constructing a pure abstract class, because calling the Frame constructor is just a formality.

Enumerator
ConstructAbstract 

◆ ConstructFrameTag

Used when constructing a Frame class, because the Frame constructor will take care of setting up the parameters you pass into it.

Enumerator
ConstructFrame 

◆ ConstructWorldTag

Used when constructing the World.

Enumerator
ConstructWorld 

Constructor & Destructor Documentation

◆ TemplatedJacobianNode()

template<class NodeType >
dart::dynamics::TemplatedJacobianNode< NodeType >::TemplatedJacobianNode ( BodyNode bn)
protected

Constructor.

Member Function Documentation

◆ addObserver()

void dart::common::Subject::addObserver ( Observer _observer) const
protectedinherited

Add an Observer to the list of Observers.

◆ asShapeFrame() [1/2]

ShapeFrame * dart::dynamics::Frame::asShapeFrame ( )
virtualinherited

Convert 'this' into a ShapeFrame pointer if Frame is a ShapeFrame, otherwise return nullptr.

Reimplemented in dart::dynamics::ShapeFrame.

◆ asShapeFrame() [2/2]

const ShapeFrame * dart::dynamics::Frame::asShapeFrame ( ) const
virtualinherited

Convert 'const this' into a ShapeFrame pointer if Frame is a ShapeFrame, otherwise return nullptr.

Reimplemented in dart::dynamics::ShapeFrame.

◆ attach()

void dart::dynamics::Node::attach ( )
protectedinherited

Attach the Node to its BodyNode.

◆ changeParentFrame()

void dart::dynamics::Frame::changeParentFrame ( Frame _newParentFrame)
overrideprotectedvirtualinherited

Used by derived classes to change their parent frames.

Reimplemented from dart::dynamics::Entity.

◆ clearIK()

void dart::dynamics::JacobianNode::clearIK ( )
inherited

Wipe away the IK module for this JacobianNode, leaving it as a nullptr.

◆ cloneNode()

virtual Node* dart::dynamics::Node::cloneNode ( BodyNode bn) const
protectedpure virtualinherited

Allow your Node implementation to be cloned into a new BodyNode.

Implemented in dart::dynamics::BodyNode.

◆ copyNodePropertiesTo()

void dart::dynamics::Node::copyNodePropertiesTo ( std::unique_ptr< Properties > &  outputProperties) const
virtualinherited

Copy the Properties of this Node into a unique_ptr.

By default, this simply calls getNodeProperties() and passes the result into the outputProperties, but this function can be overriden to be more performant.

◆ copyNodeStateTo()

void dart::dynamics::Node::copyNodeStateTo ( std::unique_ptr< State > &  outputState) const
virtualinherited

Copy the State of this Node into a unique_ptr.

By default, this simply calls getNodeState() and passes the result into the outputState, but this function can be overriden to be more performant by avoiding allocations.

◆ createIK()

const std::shared_ptr< InverseKinematics > & dart::dynamics::JacobianNode::createIK ( )
inherited

Create a new IK module for this JacobianNode.

If an IK module already exists in this JacobianNode, it will be destroyed and replaced by a brand new one.

◆ dependsOn()

virtual bool dart::dynamics::JacobianNode::dependsOn ( std::size_t  _genCoordIndex) const
pure virtualinherited

Return true if _genCoordIndex-th generalized coordinate.

Implemented in dart::dynamics::BodyNode.

◆ descendsFrom()

bool dart::dynamics::Entity::descendsFrom ( const Frame _someFrame) const
inherited

Returns true if and only if this Entity is itself (i.e.

this == _someFrame) or depends on (i.e. kinematically descends from) _someFrame.

If _someFrame is nullptr, this returns true in order to accommodate BodyNodes which always have a nullptr BodyNode as the parent of a root BodyNode.

◆ dirtyAcceleration()

void dart::dynamics::Frame::dirtyAcceleration ( )
overridevirtualinherited

Notify the acceleration updates of this Frame and all its children are needed.

Reimplemented from dart::dynamics::Entity.

Reimplemented in dart::dynamics::BodyNode.

◆ dirtyJacobian()

void dart::dynamics::JacobianNode::dirtyJacobian ( )
inherited

Notify this BodyNode and all its descendents that their Jacobians need to be updated.

◆ dirtyJacobianDeriv()

void dart::dynamics::JacobianNode::dirtyJacobianDeriv ( )
inherited

Notify this BodyNode and all its descendents that their Jacobian derivatives need to be updated.

◆ dirtyTransform()

void dart::dynamics::Frame::dirtyTransform ( )
overridevirtualinherited

Notify the transformation updates of this Frame and all its children are needed.

Reimplemented from dart::dynamics::Entity.

Reimplemented in dart::dynamics::BodyNode.

◆ dirtyVelocity()

void dart::dynamics::Frame::dirtyVelocity ( )
overridevirtualinherited

Notify the velocity updates of this Frame and all its children are needed.

Reimplemented from dart::dynamics::Entity.

Reimplemented in dart::dynamics::BodyNode.

◆ getAngularAcceleration()

Eigen::Vector3d dart::dynamics::Frame::getAngularAcceleration ( const Frame _relativeTo = Frame::World(),
const Frame _inCoordinatesOf = Frame::World() 
) const
inherited

Get the angular portion of classical acceleration of this Frame relative to some other Frame.

It can be expressed in the coordinates of any Frame.

◆ getAngularJacobian()

template<class NodeType >
math::AngularJacobian dart::dynamics::TemplatedJacobianNode< NodeType >::getAngularJacobian ( const Frame _inCoordinatesOf = Frame::World()) const
finaloverridevirtual

Return the angular Jacobian targeting the origin of this BodyNode.

You can specify a coordinate Frame to express the Jacobian in.

Implements dart::dynamics::JacobianNode.

◆ getAngularJacobianDeriv()

template<class NodeType >
math::AngularJacobian dart::dynamics::TemplatedJacobianNode< NodeType >::getAngularJacobianDeriv ( const Frame _inCoordinatesOf = Frame::World()) const
finaloverridevirtual

Return the angular Jacobian time derivative, in terms of any coordinate Frame.

Implements dart::dynamics::JacobianNode.

◆ getAngularVelocity()

Eigen::Vector3d dart::dynamics::Frame::getAngularVelocity ( const Frame _relativeTo = Frame::World(),
const Frame _inCoordinatesOf = Frame::World() 
) const
inherited

Get the angular portion of classical velocity of this Frame relative to some other Frame.

It can be expressed in the coordinates of any Frame.

◆ getBodyNodePtr() [1/2]

BodyNodePtr dart::dynamics::Node::getBodyNodePtr ( )
inherited

Get a pointer to the BodyNode that this Node is associated with.

◆ getBodyNodePtr() [2/2]

ConstBodyNodePtr dart::dynamics::Node::getBodyNodePtr ( ) const
inherited

Get a pointer to the BodyNode that this Node is associated with.

◆ getChainDofs()

virtual const std::vector<const DegreeOfFreedom*> dart::dynamics::JacobianNode::getChainDofs ( ) const
pure virtualinherited

Returns a DegreeOfFreedom vector containing the dofs that form a Chain leading up to this JacobianNode from the root of the Skeleton.

Implemented in dart::dynamics::BodyNode.

◆ getChildEntities() [1/2]

const std::set< Entity * > & dart::dynamics::Frame::getChildEntities ( )
inherited

Get a container with the Entities that are children of this Frame.

std::set is used because Entities may be arbitrarily added and removed from a parent Frame, and each entry should be unique. std::set makes this procedure easier.

◆ getChildEntities() [2/2]

const std::set< const Entity * > dart::dynamics::Frame::getChildEntities ( ) const
inherited

Get a container with the Entities that are children of this Frame.

Note that this is version is slightly less efficient than the non-const version because it needs to rebuild a set where each pointer is converted to be a const pointer.

◆ getChildFrames() [1/2]

const std::set< Frame * > & dart::dynamics::Frame::getChildFrames ( )
inherited

Get a container with the Frames that are children of this Frame.

std::set is used because Frames may be arbitrarily added and removed from a parent Frame, and each entry should be unique.

◆ getChildFrames() [2/2]

std::set< const Frame * > dart::dynamics::Frame::getChildFrames ( ) const
inherited

Get a container with the Frames that are children of this Frame.

Note that this version is less efficient than the non-const version because it needs to rebuild a set so that the entries are const.

◆ getDependentDof() [1/2]

virtual const DegreeOfFreedom* dart::dynamics::JacobianNode::getDependentDof ( std::size_t  _index) const
pure virtualinherited

Get a pointer to the _indexth dependent DegreeOfFreedom for this BodyNode.

Implemented in dart::dynamics::BodyNode.

◆ getDependentDof() [2/2]

virtual DegreeOfFreedom* dart::dynamics::JacobianNode::getDependentDof ( std::size_t  _index)
pure virtualinherited

Get a pointer to the _indexth dependent DegreeOfFreedom for this BodyNode.

Implemented in dart::dynamics::BodyNode.

◆ getDependentDofs() [1/2]

virtual const std::vector<const DegreeOfFreedom*>& dart::dynamics::JacobianNode::getDependentDofs ( ) const
pure virtualinherited

Return a std::vector of DegreeOfFreedom pointers that this Node depends on.

Implemented in dart::dynamics::BodyNode.

◆ getDependentDofs() [2/2]

virtual const std::vector<DegreeOfFreedom*>& dart::dynamics::JacobianNode::getDependentDofs ( )
pure virtualinherited

Return a std::vector of DegreeOfFreedom pointers that this Node depends on.

Implemented in dart::dynamics::BodyNode.

◆ getDependentGenCoordIndex()

virtual std::size_t dart::dynamics::JacobianNode::getDependentGenCoordIndex ( std::size_t  _arrayIndex) const
pure virtualinherited

Return a generalized coordinate index from the array index (< getNumDependentDofs)

Implemented in dart::dynamics::BodyNode.

◆ getDependentGenCoordIndices()

virtual const std::vector<std::size_t>& dart::dynamics::JacobianNode::getDependentGenCoordIndices ( ) const
pure virtualinherited

Indices of the generalized coordinates which affect this JacobianNode.

Implemented in dart::dynamics::BodyNode.

◆ getIK() [1/2]

std::shared_ptr< const InverseKinematics > dart::dynamics::JacobianNode::getIK ( ) const
inherited

Get a pointer to an IK module for this JacobianNode.

Because this is a const function, a new IK module cannot be created if one does not already exist.

◆ getIK() [2/2]

const std::shared_ptr< InverseKinematics > & dart::dynamics::JacobianNode::getIK ( bool  _createIfNull = false)
inherited

Get a pointer to an IK module for this JacobianNode.

If _createIfNull is true, then the IK module will be generated if one does not already exist.

◆ getJacobian() [1/4]

virtual const math::Jacobian& dart::dynamics::JacobianNode::getJacobian ( ) const
pure virtualinherited

Return the generalized Jacobian targeting the origin of this JacobianNode.

The Jacobian is expressed in the Frame of this JacobianNode.

Implemented in dart::dynamics::BodyNode.

◆ getJacobian() [2/4]

template<class NodeType >
math::Jacobian dart::dynamics::TemplatedJacobianNode< NodeType >::getJacobian ( const Eigen::Vector3d &  _offset) const
finaloverridevirtual

Return the generalized Jacobian targeting an offset within the Frame of this JacobianNode.

Implements dart::dynamics::JacobianNode.

◆ getJacobian() [3/4]

template<class NodeType >
math::Jacobian dart::dynamics::TemplatedJacobianNode< NodeType >::getJacobian ( const Eigen::Vector3d &  _offset,
const Frame _inCoordinatesOf 
) const
finaloverridevirtual

A version of getJacobian(const Eigen::Vector3d&) that lets you specify a coordinate Frame to express the Jacobian in.

Implements dart::dynamics::JacobianNode.

◆ getJacobian() [4/4]

template<class NodeType >
math::Jacobian dart::dynamics::TemplatedJacobianNode< NodeType >::getJacobian ( const Frame _inCoordinatesOf) const
finaloverridevirtual

A version of getJacobian() that lets you specify a coordinate Frame to express the Jacobian in.

Implements dart::dynamics::JacobianNode.

◆ getJacobianClassicDeriv() [1/3]

virtual const math::Jacobian& dart::dynamics::JacobianNode::getJacobianClassicDeriv ( ) const
pure virtualinherited

Return the classical time derivative of the generalized Jacobian targeting the origin of this BodyNode.

The Jacobian is expressed in the World coordinate Frame.

NOTE: Since this is a classical time derivative, it should be used with classical linear and angular vectors. If you are using spatial vectors, use getJacobianSpatialDeriv() instead.

Implemented in dart::dynamics::BodyNode.

◆ getJacobianClassicDeriv() [2/3]

template<class NodeType >
math::Jacobian dart::dynamics::TemplatedJacobianNode< NodeType >::getJacobianClassicDeriv ( const Eigen::Vector3d &  _offset,
const Frame _inCoordinatesOf = Frame::World() 
) const
finaloverridevirtual

A version of getJacobianClassicDeriv() that can compute the Jacobian for an offset within the Frame of this BodyNode.

The offset must be expressed in the coordinates of this BodyNode Frame.

NOTE: Since this is a classical time derivative, it should be used with classical linear and angular vectors. If you are using spatial vectors, use getJacobianSpatialDeriv() instead.

Implements dart::dynamics::JacobianNode.

◆ getJacobianClassicDeriv() [3/3]

template<class NodeType >
math::Jacobian dart::dynamics::TemplatedJacobianNode< NodeType >::getJacobianClassicDeriv ( const Frame _inCoordinatesOf) const
finaloverridevirtual

A version of getJacobianClassicDeriv() that can return the Jacobian in coordinates of any Frame.

NOTE: Since this is a classical time derivative, it should be used with classical linear and angular vectors. If you are using spatial vectors, use getJacobianSpatialDeriv() instead.

Implements dart::dynamics::JacobianNode.

◆ getJacobianSpatialDeriv() [1/4]

virtual const math::Jacobian& dart::dynamics::JacobianNode::getJacobianSpatialDeriv ( ) const
pure virtualinherited

Return the spatial time derivative of the generalized Jacobian targeting the origin of this BodyNode.

The Jacobian is expressed in this BodyNode's coordinate Frame.

NOTE: Since this is a spatial time derivative, it should be used with spatial vectors. If you are using classical linear and angular acceleration vectors, then use getJacobianClassicDeriv(), getLinearJacobianDeriv(), or getAngularJacobianDeriv() instead.

Implemented in dart::dynamics::BodyNode.

◆ getJacobianSpatialDeriv() [2/4]

template<class NodeType >
math::Jacobian dart::dynamics::TemplatedJacobianNode< NodeType >::getJacobianSpatialDeriv ( const Eigen::Vector3d &  _offset) const
finaloverridevirtual

Return the spatial time derivative of the generalized Jacobian targeting an offset in the Frame of this BodyNode.

The Jacobian is expressed in this BodyNode's coordinate Frame.

NOTE: This Jacobian Derivative is only for use with spatial vectors. If you are using classic linear and angular vectors, then use getJacobianClassicDeriv(), getLinearJacobianDeriv(), or getAngularJacobianDeriv() instead.

See also
getJacobianSpatialDeriv()

Implements dart::dynamics::JacobianNode.

◆ getJacobianSpatialDeriv() [3/4]

template<class NodeType >
math::Jacobian dart::dynamics::TemplatedJacobianNode< NodeType >::getJacobianSpatialDeriv ( const Eigen::Vector3d &  _offset,
const Frame _inCoordinatesOf 
) const
finaloverridevirtual

A version of getJacobianSpatialDeriv(const Eigen::Vector3d&) that allows an arbitrary coordinate Frame to be specified.

Implements dart::dynamics::JacobianNode.

◆ getJacobianSpatialDeriv() [4/4]

template<class NodeType >
math::Jacobian dart::dynamics::TemplatedJacobianNode< NodeType >::getJacobianSpatialDeriv ( const Frame _inCoordinatesOf) const
finaloverridevirtual

A version of getJacobianSpatialDeriv() that can return the Jacobian in coordinates of any Frame.

NOTE: This Jacobian Derivative is only for use with spatial vectors. If you are using classical linear and angular vectors, then use getJacobianClassicDeriv(), getLinearJacobianDeriv(), or getAngularJacobianDeriv() instead.

Implements dart::dynamics::JacobianNode.

◆ getLinearAcceleration() [1/2]

Eigen::Vector3d dart::dynamics::Frame::getLinearAcceleration ( const Eigen::Vector3d &  _offset,
const Frame _relativeTo = Frame::World(),
const Frame _inCoordinatesOf = Frame::World() 
) const
inherited

◆ getLinearAcceleration() [2/2]

Eigen::Vector3d dart::dynamics::Frame::getLinearAcceleration ( const Frame _relativeTo = Frame::World(),
const Frame _inCoordinatesOf = Frame::World() 
) const
inherited

Get the linear portion of classical acceleration of this Frame relative to some other Frame.

It can be expressed in the coordinates of any Frame.

◆ getLinearJacobian() [1/2]

template<class NodeType >
math::LinearJacobian dart::dynamics::TemplatedJacobianNode< NodeType >::getLinearJacobian ( const Eigen::Vector3d &  _offset,
const Frame _inCoordinatesOf = Frame::World() 
) const
finaloverridevirtual

Return the generalized Jacobian targeting an offset within the Frame of this BodyNode.

Implements dart::dynamics::JacobianNode.

◆ getLinearJacobian() [2/2]

template<class NodeType >
math::LinearJacobian dart::dynamics::TemplatedJacobianNode< NodeType >::getLinearJacobian ( const Frame _inCoordinatesOf = Frame::World()) const
finaloverridevirtual

Return the linear Jacobian targeting the origin of this BodyNode.

You can specify a coordinate Frame to express the Jacobian in.

Implements dart::dynamics::JacobianNode.

◆ getLinearJacobianDeriv() [1/2]

template<class NodeType >
math::LinearJacobian dart::dynamics::TemplatedJacobianNode< NodeType >::getLinearJacobianDeriv ( const Eigen::Vector3d &  _offset,
const Frame _inCoordinatesOf = Frame::World() 
) const
finaloverridevirtual

A version of getLinearJacobianDeriv() that can compute the Jacobian for an offset within the Frame of this BodyNode.

The offset must be expressed in coordinates of this BodyNode Frame.

NOTE: Since this is a classical time derivative, it should be used with classical linear vectors. If you are using spatial vectors, use getJacobianSpatialDeriv() instead.

Implements dart::dynamics::JacobianNode.

◆ getLinearJacobianDeriv() [2/2]

template<class NodeType >
math::LinearJacobian dart::dynamics::TemplatedJacobianNode< NodeType >::getLinearJacobianDeriv ( const Frame _inCoordinatesOf = Frame::World()) const
finaloverridevirtual

Return the linear Jacobian (classical) time derivative, in terms of any coordinate Frame.

NOTE: Since this is a classical time derivative, it should be used with classical linear vectors. If you are using spatial vectors, use getJacobianSpatialDeriv() instead.

Implements dart::dynamics::JacobianNode.

◆ getLinearVelocity() [1/2]

Eigen::Vector3d dart::dynamics::Frame::getLinearVelocity ( const Eigen::Vector3d &  _offset,
const Frame _relativeTo = Frame::World(),
const Frame _inCoordinatesOf = Frame::World() 
) const
inherited

Get the linear velocity of a point that is fixed in this Frame.

You can specify a relative Frame, and it can be expressed in the coordinates of any Frame.

◆ getLinearVelocity() [2/2]

Eigen::Vector3d dart::dynamics::Frame::getLinearVelocity ( const Frame _relativeTo = Frame::World(),
const Frame _inCoordinatesOf = Frame::World() 
) const
inherited

Get the linear portion of classical velocity of this Frame relative to some other Frame.

It can be expressed in the coordinates of any Frame.

◆ getName() [1/3]

virtual const std::string& dart::dynamics::Entity::getName ( ) const
pure virtualinherited

◆ getName() [2/3]

virtual const std::string& dart::dynamics::Node::getName ( ) const
pure virtualinherited

Get the name of this Node.

Implemented in dart::dynamics::BodyNode.

◆ getName() [3/3]

virtual const std::string& dart::dynamics::Node::getName
inherited

Get the name of this Node.

◆ getNodeProperties()

std::unique_ptr< Node::Properties > dart::dynamics::Node::getNodeProperties ( ) const
virtualinherited

Get the Properties of this Node.

By default, this returns a nullptr which implies that the Node has no properties.

◆ getNodeState()

std::unique_ptr< Node::State > dart::dynamics::Node::getNodeState ( ) const
virtualinherited

Get the State of this Node.

By default, this returns a nullptr which implies that the Node is stateless.

◆ getNumChildEntities()

std::size_t dart::dynamics::Frame::getNumChildEntities ( ) const
inherited

Get the number of Entities that are currently children of this Frame.

◆ getNumChildFrames()

std::size_t dart::dynamics::Frame::getNumChildFrames ( ) const
inherited

Get the number of Frames that are currently children of this Frame.

◆ getNumDependentDofs()

virtual std::size_t dart::dynamics::JacobianNode::getNumDependentDofs ( ) const
pure virtualinherited

◆ getNumDependentGenCoords()

virtual std::size_t dart::dynamics::JacobianNode::getNumDependentGenCoords ( ) const
pure virtualinherited

The number of the generalized coordinates which affect this JacobianNode.

Implemented in dart::dynamics::BodyNode.

◆ getOrCreateDestructor()

std::shared_ptr< NodeDestructor > dart::dynamics::Node::getOrCreateDestructor ( )
privateinherited

◆ getOrCreateIK()

const std::shared_ptr< InverseKinematics > & dart::dynamics::JacobianNode::getOrCreateIK ( )
inherited

Get a pointer to an IK module for this JacobianNode.

The IK module will be generated if one does not already exist. This function is actually the same as getIK(true).

◆ getParentFrame() [1/2]

Frame * dart::dynamics::Entity::getParentFrame ( )
inherited

Get the parent (reference) frame of this Entity.

◆ getParentFrame() [2/2]

const Frame * dart::dynamics::Entity::getParentFrame ( ) const
inherited

Get the parent (reference) frame of this Entity.

◆ getPartialAcceleration()

virtual const Eigen::Vector6d& dart::dynamics::Frame::getPartialAcceleration ( ) const
pure virtualinherited

The Featherstone ABI algorithm exploits a component of the spatial acceleration which we refer to as the partial acceleration.

This function returns that component of acceleration.

Implemented in dart::dynamics::WorldFrame, dart::dynamics::SimpleFrame, dart::dynamics::FixedFrame, and dart::dynamics::BodyNode.

◆ getPrimaryRelativeAcceleration()

virtual const Eigen::Vector6d& dart::dynamics::Frame::getPrimaryRelativeAcceleration ( ) const
pure virtualinherited

The Featherstone ABI algorithm exploits a component of the spatial acceleration which we refer to as the partial acceleration, accessible by getPartialAcceleration().

We save operations during our forward kinematics by computing and storing the partial acceleration separately from the rest of the Frame's acceleration. getPrimaryRelativeAcceleration() will return the portion of the relative spatial acceleration that is not contained in the partial acceleration. To get the full spatial acceleration of this Frame relative to its parent Frame, use getRelativeSpatialAcceleration(). To get the full spatial acceleration of this Frame relative to the World Frame, use getSpatialAcceleration().

Implemented in dart::dynamics::WorldFrame, dart::dynamics::SimpleFrame, dart::dynamics::FixedFrame, and dart::dynamics::BodyNode.

◆ getRelativeSpatialAcceleration()

virtual const Eigen::Vector6d& dart::dynamics::Frame::getRelativeSpatialAcceleration ( ) const
pure virtualinherited

Get the spatial acceleration of this Frame relative to its parent Frame, in the coordinates of this Frame.

Implemented in dart::dynamics::WorldFrame, dart::dynamics::SimpleFrame, dart::dynamics::FixedFrame, and dart::dynamics::BodyNode.

◆ getRelativeSpatialVelocity()

virtual const Eigen::Vector6d& dart::dynamics::Frame::getRelativeSpatialVelocity ( ) const
pure virtualinherited

Get the spatial velocity of this Frame relative to its parent Frame, in its own coordinates.

Implemented in dart::dynamics::WorldFrame, dart::dynamics::SimpleFrame, dart::dynamics::FixedFrame, and dart::dynamics::BodyNode.

◆ getRelativeTransform()

virtual const Eigen::Isometry3d& dart::dynamics::Frame::getRelativeTransform ( ) const
pure virtualinherited

Get the transform of this Frame with respect to its parent Frame.

Implemented in dart::dynamics::WorldFrame, dart::dynamics::SimpleFrame, dart::dynamics::FixedFrame, and dart::dynamics::BodyNode.

◆ getSkeleton() [1/2]

std::shared_ptr< Skeleton > dart::dynamics::Node::getSkeleton ( )
virtualinherited

Return the Skeleton that this Node is attached to.

Reimplemented in dart::dynamics::BodyNode.

◆ getSkeleton() [2/2]

std::shared_ptr< const Skeleton > dart::dynamics::Node::getSkeleton ( ) const
virtualinherited

Return the Skeleton that this Node is attached to.

Reimplemented in dart::dynamics::BodyNode.

◆ getSpatialAcceleration() [1/4]

const Eigen::Vector6d & dart::dynamics::Frame::getSpatialAcceleration ( ) const
inherited

Get the total spatial acceleration of this Frame in the coordinates of this Frame.

◆ getSpatialAcceleration() [2/4]

Eigen::Vector6d dart::dynamics::Frame::getSpatialAcceleration ( const Eigen::Vector3d &  _offset) const
inherited

Get the spatial acceleration of a fixed point in this Frame.

The acceleration is in coordinates of this Frame and is relative to the World Frame.

◆ getSpatialAcceleration() [3/4]

Eigen::Vector6d dart::dynamics::Frame::getSpatialAcceleration ( const Eigen::Vector3d &  _offset,
const Frame _relativeTo,
const Frame _inCoordinatesOf 
) const
inherited

Get the spatial acceleration of a fixed point in this Frame.

◆ getSpatialAcceleration() [4/4]

Eigen::Vector6d dart::dynamics::Frame::getSpatialAcceleration ( const Frame _relativeTo,
const Frame _inCoordinatesOf 
) const
inherited

Get the spatial acceleration of this Frame relative to some other Frame.

It can be expressed in the coordinates of any Frame.

◆ getSpatialVelocity() [1/4]

const Eigen::Vector6d & dart::dynamics::Frame::getSpatialVelocity ( ) const
inherited

Get the total spatial velocity of this Frame in the coordinates of this Frame.

◆ getSpatialVelocity() [2/4]

Eigen::Vector6d dart::dynamics::Frame::getSpatialVelocity ( const Eigen::Vector3d &  _offset) const
inherited

Get the spatial velocity of a fixed point in this Frame.

The velocity is in coordinates of this Frame and is relative to the World Frame.

◆ getSpatialVelocity() [3/4]

Eigen::Vector6d dart::dynamics::Frame::getSpatialVelocity ( const Eigen::Vector3d &  _offset,
const Frame _relativeTo,
const Frame _inCoordinatesOf 
) const
inherited

Get the spatial velocity of a fixed point in this Frame.

◆ getSpatialVelocity() [4/4]

Eigen::Vector6d dart::dynamics::Frame::getSpatialVelocity ( const Frame _relativeTo,
const Frame _inCoordinatesOf 
) const
inherited

Get the spatial velocity of this Frame relative to some other Frame.

It can be expressed in the coordinates of any Frame.

◆ getTransform() [1/2]

Eigen::Isometry3d dart::dynamics::Frame::getTransform ( const Frame _withRespectTo = Frame::World()) const
inherited

Get the transform of this Frame with respect to some other Frame.

◆ getTransform() [2/2]

Eigen::Isometry3d dart::dynamics::Frame::getTransform ( const Frame withRespectTo,
const Frame inCoordinatesOf 
) const
inherited

Get the transform of this Frame with respect to some other Frame.

It can be expressed in the coordinates of any Frame.

◆ getVersion()

std::size_t dart::common::VersionCounter::getVersion ( ) const
virtualinherited

Get the version number of this object.

◆ getWorldJacobian() [1/2]

virtual const math::Jacobian& dart::dynamics::JacobianNode::getWorldJacobian ( ) const
pure virtualinherited

Return the generalized Jacobian targeting the origin of this JacobianNode.

The Jacobian is expressed in the World Frame.

Implemented in dart::dynamics::BodyNode.

◆ getWorldJacobian() [2/2]

template<class NodeType >
math::Jacobian dart::dynamics::TemplatedJacobianNode< NodeType >::getWorldJacobian ( const Eigen::Vector3d &  _offset) const
finaloverridevirtual

Return the generalized Jacobian targeting an offset in this JacobianNode.

The _offset is expected in coordinates of this BodyNode Frame. The Jacobian is expressed in the World Frame.

Implements dart::dynamics::JacobianNode.

◆ getWorldTransform()

const Eigen::Isometry3d & dart::dynamics::Frame::getWorldTransform ( ) const
inherited

Get the transform of this Frame with respect to the World Frame.

◆ incrementVersion()

std::size_t dart::common::VersionCounter::incrementVersion ( )
virtualinherited

Increment the version for this object.

Reimplemented in dart::dynamics::Shape.

◆ isFrame()

bool dart::dynamics::Entity::isFrame ( ) const
inherited

True iff this Entity is also a Frame.

◆ isQuiet()

bool dart::dynamics::Entity::isQuiet ( ) const
inherited

Returns true if this Entity is set to be quiet.

A quiet entity is unknown to its parent Frame. It will not be tracked by its parent; it will not receive notifications from its parent, and it will not be rendered. The advantage to a quiet Entity is that it has less overhead when constructing and deconstructing, which makes it more suitable for temporary objects.

◆ isRemoved()

bool dart::dynamics::Node::isRemoved ( ) const
inherited

Returns true if this Node has been staged for removal from its BodyNode.

It will be deleted once all strong references to it expire. If it is an AccessoryNode, you can call reattach() to prevent that from happening.

◆ isShapeFrame()

bool dart::dynamics::Frame::isShapeFrame ( ) const
inherited

Returns true if this Frame is a ShapeFrame.

◆ isWorld()

bool dart::dynamics::Frame::isWorld ( ) const
inherited

Returns true if this Frame is the World Frame.

◆ needsAccelerationUpdate()

bool dart::dynamics::Entity::needsAccelerationUpdate ( ) const
inherited

Returns true iff an acceleration update is needed for this Entity.

◆ needsTransformUpdate()

bool dart::dynamics::Entity::needsTransformUpdate ( ) const
inherited

Returns true iff a transform update is needed for this Entity.

◆ needsVelocityUpdate()

bool dart::dynamics::Entity::needsVelocityUpdate ( ) const
inherited

Returns true iff a velocity update is needed for this Entity.

◆ notifyAccelerationUpdate()

void dart::dynamics::Entity::notifyAccelerationUpdate ( )
virtualinherited

Notify the acceleration of this Entity that its parent Frame's acceleration is needed.

◆ notifyJacobianDerivUpdate()

void dart::dynamics::JacobianNode::notifyJacobianDerivUpdate ( )
inherited

Notify this BodyNode and all its descendents that their Jacobian derivatives need to be updated.

◆ notifyJacobianUpdate()

void dart::dynamics::JacobianNode::notifyJacobianUpdate ( )
inherited

Notify this BodyNode and all its descendents that their Jacobians need to be updated.

◆ notifyTransformUpdate()

void dart::dynamics::Entity::notifyTransformUpdate ( )
virtualinherited

Notify the transformation update of this Entity that its parent Frame's pose is needed.

◆ notifyVelocityUpdate()

void dart::dynamics::Entity::notifyVelocityUpdate ( )
virtualinherited

Notify the velocity update of this Entity that its parent Frame's velocity is needed.

◆ processNewEntity()

void dart::dynamics::Frame::processNewEntity ( Entity _newChildEntity)
protectedvirtualinherited

Called during a parent Frame change to allow extensions of the Frame class to handle new children in customized ways.

This function is a no op unless an inheriting class (such as BodyNode) overrides it.

Reimplemented in dart::dynamics::BodyNode.

◆ processRemovedEntity()

void dart::dynamics::Frame::processRemovedEntity ( Entity _oldChildEntity)
protectedvirtualinherited

Called when a child Entity is removed from its parent Frame.

This allows special post-processing to be performed for extensions of the Frame class.

Reimplemented in dart::dynamics::BodyNode.

◆ registerNameChange()

std::string dart::dynamics::Node::registerNameChange ( const std::string &  newName)
protectedinherited

Inform the Skeleton that the name of this Node has changed.

If the name is already taken by another Node of the same type, then this function will return a modified version which is unique. If the name is not already taken, then it will just return the same name that the function was given.

◆ removeObserver()

void dart::common::Subject::removeObserver ( Observer _observer) const
protectedinherited

Remove an Observer from the list of Observers.

◆ sendDestructionNotification()

void dart::common::Subject::sendDestructionNotification ( ) const
protectedinherited

Send a destruction notification to all Observers.

This will cause all Observers to behave as if this Subject has been permanently deleted, so it should only be called when that behavior is desired.

◆ setName() [1/3]

virtual const std::string& dart::dynamics::Entity::setName ( const std::string &  _name)
pure virtualinherited

Set name.

Some implementations of Entity may make alterations to the name that gets passed in. The final name that this entity will use gets passed back in the return of this function.

Implemented in dart::dynamics::WorldFrame, dart::dynamics::SimpleFrame, dart::dynamics::PointMassNotifier, and dart::dynamics::BodyNode.

◆ setName() [2/3]

virtual const std::string& dart::dynamics::Node::setName
inherited

Set the name of this Node.

◆ setName() [3/3]

virtual const std::string& dart::dynamics::Node::setName ( const std::string &  newName)
pure virtualinherited

Set the name of this Node.

Implemented in dart::dynamics::BodyNode.

◆ setNodeProperties()

void dart::dynamics::Node::setNodeProperties ( const Properties properties)
virtualinherited

Set the Properties of this Node. By default, this does nothing.

◆ setNodeState()

void dart::dynamics::Node::setNodeState ( const State otherState)
virtualinherited

Set the State of this Node. By default, this does nothing.

◆ setVersionDependentObject()

void dart::common::VersionCounter::setVersionDependentObject ( VersionCounter dependent)
protectedinherited

◆ stageForRemoval()

void dart::dynamics::Node::stageForRemoval ( )
protectedinherited

When all external references to the Node disappear, it will be deleted.

◆ World()

Frame * dart::dynamics::Frame::World ( )
staticinherited

◆ WorldShared()

std::shared_ptr< Frame > dart::dynamics::Frame::WorldShared ( )
staticinherited

Member Data Documentation

◆ mAcceleration

Eigen::Vector6d dart::dynamics::Frame::mAcceleration
mutableprotectedinherited

Total acceleration of this Frame, in the coordinates of this Frame.

Do not use directly! Use getSpatialAcceleration() to access this quantity

◆ mAccelerationChangedSignal

EntitySignal dart::dynamics::Entity::mAccelerationChangedSignal
protectedinherited

Acceleration changed signal.

◆ mAmAttached

bool dart::dynamics::Node::mAmAttached
protectedinherited

bool that tracks whether this Node is attached to its BodyNode

◆ mAmFrame

bool dart::dynamics::Entity::mAmFrame
privateinherited

Whether or not this Entity is a Frame.

◆ mAmQuiet

const bool dart::dynamics::Entity::mAmQuiet
privateinherited

Whether or not this Entity is set to be quiet.

◆ mAmShapeFrame

bool dart::dynamics::Frame::mAmShapeFrame
privateinherited

Contains whether or not this is a ShapeFrame.

◆ mAmWorld

const bool dart::dynamics::Frame::mAmWorld
privateinherited

Contains whether or not this is the World Frame.

◆ mBodyNode

BodyNode* dart::dynamics::Node::mBodyNode
protectedinherited

Pointer to the BodyNode that this Node is attached to.

◆ mChildEntities

std::set<Entity*> dart::dynamics::Frame::mChildEntities
protectedinherited

Container of this Frame's child Entities.

◆ mChildFrames

std::set<Frame*> dart::dynamics::Frame::mChildFrames
protectedinherited

Container of this Frame's child Frames.

◆ mChildJacobianNodes

std::unordered_set<JacobianNode*> dart::dynamics::JacobianNode::mChildJacobianNodes
protectedinherited

JacobianNode children that descend from this JacobianNode.

◆ mDependent

VersionCounter* dart::common::VersionCounter::mDependent
privateinherited

◆ mDestructor

std::weak_ptr<NodeDestructor> dart::dynamics::Node::mDestructor
protectedinherited

weak pointer to the destructor for this Node.

We use a shared_ptr "destructor" class instead of managing Nodes directly with shared_ptrs because this scheme allows BodyNodes to circumvent the shared_ptr management by setting the mNode member of the Destructor to a nullptr. That way the BodyNode can never be deleted by its Destructor.

◆ mFrameChangedSignal

FrameChangedSignal dart::dynamics::Entity::mFrameChangedSignal
protectedinherited

Frame changed signal.

◆ mIK

std::shared_ptr<InverseKinematics> dart::dynamics::JacobianNode::mIK
protectedinherited

Inverse kinematics module which gets lazily created upon request.

◆ mIndexInBodyNode

std::size_t dart::dynamics::Node::mIndexInBodyNode
protectedinherited

The index of this Node within its vector in its BodyNode's NodeMap.

◆ mIndexInSkeleton

std::size_t dart::dynamics::Node::mIndexInSkeleton
protectedinherited

The index of this Node within its vector in its Skeleton's NodeMap.

◆ mIndexInTree

std::size_t dart::dynamics::Node::mIndexInTree
protectedinherited

Index of this Node within its tree.

◆ mIsBodyJacobianDirty

bool dart::dynamics::JacobianNode::mIsBodyJacobianDirty
mutableprotectedinherited

Dirty flag for body Jacobian.

◆ mIsBodyJacobianSpatialDerivDirty

bool dart::dynamics::JacobianNode::mIsBodyJacobianSpatialDerivDirty
mutableprotectedinherited

Dirty flag for spatial time derivative of body Jacobian.

◆ mIsWorldJacobianClassicDerivDirty

bool dart::dynamics::JacobianNode::mIsWorldJacobianClassicDerivDirty
mutableprotectedinherited

Dirty flag for the classic time derivative of the Jacobian.

◆ mIsWorldJacobianDirty

bool dart::dynamics::JacobianNode::mIsWorldJacobianDirty
mutableprotectedinherited

Dirty flag for world Jacobian.

◆ mNameChangedSignal

NameChangedSignal dart::dynamics::Entity::mNameChangedSignal
protectedinherited

Name changed signal.

◆ mNeedAccelerationUpdate

bool dart::dynamics::Entity::mNeedAccelerationUpdate
mutableprotectedinherited

Does this Entity need an Acceleration update.

◆ mNeedTransformUpdate

bool dart::dynamics::Entity::mNeedTransformUpdate
mutableprotectedinherited

Does this Entity need a Transform update.

◆ mNeedVelocityUpdate

bool dart::dynamics::Entity::mNeedVelocityUpdate
mutableprotectedinherited

Does this Entity need a Velocity update.

◆ mObservers

std::set<Observer*> dart::common::Subject::mObservers
mutableprotectedinherited

List of current Observers.

◆ mParentFrame

Frame* dart::dynamics::Entity::mParentFrame
protectedinherited

Parent frame of this Entity.

◆ mTransformUpdatedSignal

EntitySignal dart::dynamics::Entity::mTransformUpdatedSignal
protectedinherited

Transform changed signal.

◆ mVelocity

Eigen::Vector6d dart::dynamics::Frame::mVelocity
mutableprotectedinherited

Total velocity of this Frame, in the coordinates of this Frame.

Do not use directly! Use getSpatialVelocity() to access this quantity

◆ mVelocityChangedSignal

EntitySignal dart::dynamics::Entity::mVelocityChangedSignal
protectedinherited

Velocity changed signal.

◆ mVersion

std::size_t dart::common::VersionCounter::mVersion
protectedinherited

◆ mWorldTransform

Eigen::Isometry3d dart::dynamics::Frame::mWorldTransform
mutableprotectedinherited

World transform of this Frame.

This object is mutable to enable auto-updating to happen in the const member getWorldTransform() function

Do not use directly! Use getWorldTransform() to access this quantity

◆ onAccelerationChanged

common::SlotRegister<EntitySignal> dart::dynamics::Entity::onAccelerationChanged
inherited

Slot register for acceleration updated signal.

◆ onFrameChanged

common::SlotRegister<FrameChangedSignal> dart::dynamics::Entity::onFrameChanged
inherited

Slot register for frame changed signal.

◆ onNameChanged

common::SlotRegister<NameChangedSignal> dart::dynamics::Entity::onNameChanged
inherited

Slot register for name changed signal.

◆ onTransformUpdated

common::SlotRegister<EntitySignal> dart::dynamics::Entity::onTransformUpdated
inherited

Slot register for transform updated signal.

◆ onVelocityChanged

common::SlotRegister<EntitySignal> dart::dynamics::Entity::onVelocityChanged
inherited

Slot register for velocity updated signal.