dart
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
dart::dynamics::JacobianNode Class Referenceabstract

The JacobianNode class serves as a common interface for BodyNodes and EndEffectors to both be used as references for IK modules. More...

#include <JacobianNode.hpp>

Inheritance diagram for dart::dynamics::JacobianNode:
Inheritance graph
[legend]
Collaboration diagram for dart::dynamics::JacobianNode:
Collaboration graph
[legend]

Public Member Functions

virtual ~JacobianNode ()
 Virtual destructor.
 
const std::shared_ptr< InverseKinematics > & getIK (bool _createIfNull=false)
 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...
 
std::shared_ptr< const InverseKinematicsgetIK () const
 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.
 
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...
 
Structural Properties
virtual bool dependsOn (std::size_t _genCoordIndex) const =0
 Return true if _genCoordIndex-th generalized coordinate.
 
virtual std::size_t getNumDependentGenCoords () const =0
 The number of the generalized coordinates which affect this JacobianNode.
 
virtual std::size_t getDependentGenCoordIndex (std::size_t _arrayIndex) const =0
 Return a generalized coordinate index from the array index (< getNumDependentDofs)
 
virtual const std::vector< std::size_t > & getDependentGenCoordIndices () const =0
 Indices of the generalized coordinates which affect this JacobianNode.
 
virtual std::size_t getNumDependentDofs () const =0
 Same as getNumDependentGenCoords()
 
virtual DegreeOfFreedomgetDependentDof (std::size_t _index)=0
 Get a pointer to the _indexth dependent DegreeOfFreedom for this BodyNode.
 
virtual const DegreeOfFreedomgetDependentDof (std::size_t _index) const =0
 Get a pointer to the _indexth dependent DegreeOfFreedom for this BodyNode.
 
virtual const std::vector< DegreeOfFreedom * > & getDependentDofs ()=0
 Return a std::vector of DegreeOfFreedom pointers that this Node depends on.
 
virtual const std::vector< const DegreeOfFreedom * > & getDependentDofs () const =0
 Return a std::vector of DegreeOfFreedom pointers that this Node depends on.
 
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::Jacobian & getJacobian () const =0
 Return the generalized Jacobian targeting the origin of this JacobianNode. More...
 
virtual math::Jacobian getJacobian (const Frame *_inCoordinatesOf) const =0
 A version of getJacobian() that lets you specify a coordinate Frame to express the Jacobian in. More...
 
virtual math::Jacobian getJacobian (const Eigen::Vector3d &_offset) const =0
 Return the generalized Jacobian targeting an offset within the Frame of this JacobianNode. More...
 
virtual math::Jacobian getJacobian (const Eigen::Vector3d &_offset, const Frame *_inCoordinatesOf) const =0
 A version of getJacobian(const Eigen::Vector3d&) that lets you specify a coordinate Frame to express the Jacobian in. More...
 
virtual const math::Jacobian & getWorldJacobian () const =0
 Return the generalized Jacobian targeting the origin of this JacobianNode. More...
 
virtual math::Jacobian getWorldJacobian (const Eigen::Vector3d &_offset) const =0
 Return the generalized Jacobian targeting an offset in this JacobianNode. More...
 
virtual math::LinearJacobian getLinearJacobian (const Frame *_inCoordinatesOf=Frame::World()) const =0
 Return the linear Jacobian targeting the origin of this BodyNode. More...
 
virtual math::LinearJacobian getLinearJacobian (const Eigen::Vector3d &_offset, const Frame *_inCoordinatesOf=Frame::World()) const =0
 Return the generalized Jacobian targeting an offset within the Frame of this BodyNode. More...
 
virtual math::AngularJacobian getAngularJacobian (const Frame *_inCoordinatesOf=Frame::World()) const =0
 Return the angular Jacobian targeting the origin of this BodyNode. More...
 
virtual const math::Jacobian & getJacobianSpatialDeriv () const =0
 Return the spatial time derivative of the generalized Jacobian targeting the origin of this BodyNode. More...
 
virtual math::Jacobian getJacobianSpatialDeriv (const Frame *_inCoordinatesOf) const =0
 A version of getJacobianSpatialDeriv() that can return the Jacobian in coordinates of any Frame. More...
 
virtual math::Jacobian getJacobianSpatialDeriv (const Eigen::Vector3d &_offset) const =0
 Return the spatial time derivative of the generalized Jacobian targeting an offset in the Frame of this BodyNode. More...
 
virtual math::Jacobian getJacobianSpatialDeriv (const Eigen::Vector3d &_offset, const Frame *_inCoordinatesOf) const =0
 A version of getJacobianSpatialDeriv(const Eigen::Vector3d&) that allows an arbitrary coordinate Frame to be specified. More...
 
virtual const math::Jacobian & getJacobianClassicDeriv () const =0
 Return the classical time derivative of the generalized Jacobian targeting the origin of this BodyNode. More...
 
virtual math::Jacobian getJacobianClassicDeriv (const Frame *_inCoordinatesOf) const =0
 A version of getJacobianClassicDeriv() that can return the Jacobian in coordinates of any Frame. More...
 
virtual math::Jacobian getJacobianClassicDeriv (const Eigen::Vector3d &_offset, const Frame *_inCoordinatesOf=Frame::World()) const =0
 A version of getJacobianClassicDeriv() that can compute the Jacobian for an offset within the Frame of this BodyNode. More...
 
virtual math::LinearJacobian getLinearJacobianDeriv (const Frame *_inCoordinatesOf=Frame::World()) const =0
 Return the linear Jacobian (classical) time derivative, in terms of any coordinate Frame. More...
 
virtual math::LinearJacobian getLinearJacobianDeriv (const Eigen::Vector3d &_offset, const Frame *_inCoordinatesOf=Frame::World()) const =0
 A version of getLinearJacobianDeriv() that can compute the Jacobian for an offset within the Frame of this BodyNode. More...
 
virtual math::AngularJacobian getAngularJacobianDeriv (const Frame *_inCoordinatesOf=Frame::World()) const =0
 Return the angular Jacobian time derivative, in terms of any coordinate Frame. More...
 
- Public Member Functions inherited from dart::dynamics::Frame
 Frame (const Frame &)=delete
 
 ~Frame () override
 Destructor.
 
virtual const Eigen::Isometry3d & getRelativeTransform () const =0
 Get the transform of this Frame with respect to its parent Frame.
 
const Eigen::Isometry3d & getWorldTransform () const
 Get the transform of this Frame with respect to the World Frame.
 
Eigen::Isometry3d getTransform (const Frame *_withRespectTo=Frame::World()) const
 Get the transform of this Frame with respect to some other Frame.
 
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::Vector6d & getRelativeSpatialVelocity () const =0
 Get the spatial velocity of this Frame relative to its parent Frame, in its own coordinates. More...
 
const Eigen::Vector6d & getSpatialVelocity () 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.
 
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::Vector6d & getRelativeSpatialAcceleration () const =0
 Get the spatial acceleration of this Frame relative to its parent Frame, in the coordinates of this Frame. More...
 
virtual const Eigen::Vector6d & getPrimaryRelativeAcceleration () 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::Vector6d & getPartialAcceleration () const =0
 The Featherstone ABI algorithm exploits a component of the spatial acceleration which we refer to as the partial acceleration. More...
 
const Eigen::Vector6d & getSpatialAcceleration () 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.
 
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.
 
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.
 
bool isShapeFrame () const
 Returns true if this Frame is a ShapeFrame.
 
virtual ShapeFrameasShapeFrame ()
 Convert 'this' into a ShapeFrame pointer if Frame is a ShapeFrame, otherwise return nullptr.
 
virtual const ShapeFrameasShapeFrame () const
 Convert 'const this' into a ShapeFrame pointer if Frame is a ShapeFrame, otherwise return nullptr.
 
bool isWorld () const
 Returns true if this Frame is the World Frame.
 
virtual void dirtyTransform () override
 Notify the transformation updates of this Frame and all its children are needed.
 
virtual void dirtyVelocity () override
 Notify the velocity updates of this Frame and all its children are needed.
 
virtual void dirtyAcceleration () override
 Notify the acceleration updates of this Frame and all its children are needed.
 
- Public Member Functions inherited from dart::dynamics::Entity
 Entity (Frame *_refFrame, bool _quiet)
 Constructor for typical usage.
 
 Entity ()
 Default constructor, delegates to Entity(ConstructAbstract_t)
 
 Entity (const Entity &)=delete
 
virtual ~Entity ()
 Destructor.
 
virtual const std::string & setName (const std::string &_name)=0
 Set name. More...
 
virtual const std::string & getName () const =0
 Return the name of this Entity.
 
FramegetParentFrame ()
 Get the parent (reference) frame of this Entity.
 
const FramegetParentFrame () const
 Get the parent (reference) frame of this Entity.
 
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.
 
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.
 
bool needsTransformUpdate () const
 Returns true iff a transform update is needed for this Entity.
 
virtual void notifyVelocityUpdate ()
 Notify the velocity update of this Entity that its parent Frame's velocity is needed.
 
bool needsVelocityUpdate () const
 Returns true iff a velocity update is needed for this Entity.
 
virtual void notifyAccelerationUpdate ()
 Notify the acceleration of this Entity that its parent Frame's acceleration is needed.
 
bool needsAccelerationUpdate () const
 Returns true iff an acceleration update is needed for this Entity.
 
- Public Member Functions inherited from dart::common::Subject
virtual ~Subject ()
 Destructor will notify all Observers that it is destructing.
 
- Public Member Functions inherited from dart::dynamics::Node
virtual ~Node ()=default
 Virtual destructor.
 
virtual const std::string & setName (const std::string &newName)=0
 Set the name of this Node.
 
virtual const std::string & getName () const =0
 Get the name of this Node.
 
virtual void setNodeState (const State &otherState)
 Set the State of this Node. By default, this does nothing.
 
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.
 
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.
 
ConstBodyNodePtr getBodyNodePtr () const
 Get a pointer to the BodyNode that this Node is associated with.
 
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.
 
virtual std::shared_ptr< const SkeletongetSkeleton () const
 Return the Skeleton that this Node is attached to.
 
- Public Member Functions inherited from dart::common::VersionCounter
 VersionCounter ()
 Default constructor.
 
virtual std::size_t incrementVersion ()
 Increment the version for this object.
 
virtual std::size_t getVersion () const
 Get the version number of this object.
 

Protected Member Functions

 JacobianNode (BodyNode *bn)
 Constructor.
 
- Protected Member Functions inherited from dart::dynamics::Frame
 Frame (Frame *_refFrame)
 Constructor for typical usage.
 
 Frame ()
 Default constructor, delegates to Frame(ConstructAbstract_t)
 
 Frame (ConstructAbstractTag)
 Constructor for use by pure abstract classes.
 
virtual void changeParentFrame (Frame *_newParentFrame) override
 Used by derived classes to change their parent frames.
 
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...
 
- Protected Member Functions inherited from dart::dynamics::Entity
 Entity (ConstructFrameTag)
 
 Entity (ConstructAbstractTag)
 
- Protected Member Functions inherited from dart::common::Subject
void sendDestructionNotification () const
 Send a destruction notification to all Observers. More...
 
void addObserver (Observer *_observer) const
 Add an Observer to the list of Observers.
 
void removeObserver (Observer *_observer) const
 Remove an Observer from the list of Observers.
 
- Protected Member Functions inherited from dart::dynamics::Node
virtual NodecloneNode (BodyNode *bn) const =0
 Allow your Node implementation to be cloned into a new BodyNode.
 
 Node (BodyNode *_bn)
 Constructor.
 
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.
 
void stageForRemoval ()
 When all external references to the Node disappear, it will be deleted.
 
- Protected Member Functions inherited from dart::common::VersionCounter
void setVersionDependentObject (VersionCounter *dependent)
 

Protected Attributes

bool mIsBodyJacobianDirty
 Dirty flag for body Jacobian.
 
bool mIsWorldJacobianDirty
 Dirty flag for world Jacobian.
 
bool mIsBodyJacobianSpatialDerivDirty
 Dirty flag for spatial time derivative of body Jacobian.
 
bool mIsWorldJacobianClassicDerivDirty
 Dirty flag for the classic time derivative of the Jacobian.
 
std::shared_ptr< InverseKinematicsmIK
 Inverse kinematics module which gets lazily created upon request.
 
std::unordered_set< JacobianNode * > mChildJacobianNodes
 JacobianNode children that descend from this JacobianNode.
 
- Protected Attributes inherited from dart::dynamics::Frame
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.
 
std::set< Entity * > mChildEntities
 Container of this Frame's child Entities.
 
- Protected Attributes inherited from dart::dynamics::Entity
FramemParentFrame
 Parent frame of this Entity.
 
bool mNeedTransformUpdate
 Does this Entity need a Transform update.
 
bool mNeedVelocityUpdate
 Does this Entity need a Velocity update.
 
bool mNeedAccelerationUpdate
 Does this Entity need an Acceleration update.
 
FrameChangedSignal mFrameChangedSignal
 Frame changed signal.
 
NameChangedSignal mNameChangedSignal
 Name changed signal.
 
EntitySignal mTransformUpdatedSignal
 Transform changed signal.
 
EntitySignal mVelocityChangedSignal
 Velocity changed signal.
 
EntitySignal mAccelerationChangedSignal
 Acceleration changed signal.
 
- Protected Attributes inherited from dart::common::Subject
std::set< Observer * > mObservers
 List of current Observers.
 
- Protected Attributes inherited from dart::dynamics::Node
std::weak_ptr< NodeDestructormDestructor
 weak pointer to the destructor for this Node. More...
 
BodyNodemBodyNode
 Pointer to the BodyNode that this Node is attached to.
 
bool mAmAttached
 bool that tracks whether this Node is attached to its BodyNode
 
std::size_t mIndexInBodyNode
 The index of this Node within its vector in its BodyNode's NodeMap.
 
std::size_t mIndexInSkeleton
 The index of this Node within its vector in its Skeleton's NodeMap.
 
std::size_t mIndexInTree
 Index of this Node within its tree.
 
- Protected Attributes inherited from dart::common::VersionCounter
std::size_t mVersion
 

Additional Inherited Members

- Public Types inherited from dart::dynamics::Entity
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)>
 
- Public Types inherited from dart::dynamics::Node
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.
 
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...
 
- Static Public Member Functions inherited from dart::dynamics::Frame
static FrameWorld ()
 
static std::shared_ptr< FrameWorldShared ()
 
- Public Attributes inherited from dart::dynamics::Entity
common::SlotRegister< FrameChangedSignalonFrameChanged
 Slot register for frame changed signal.
 
common::SlotRegister< NameChangedSignalonNameChanged
 Slot register for name changed signal.
 
common::SlotRegister< EntitySignalonTransformUpdated
 Slot register for transform updated signal.
 
common::SlotRegister< EntitySignalonVelocityChanged
 Slot register for velocity updated signal.
 
common::SlotRegister< EntitySignalonAccelerationChanged
 Slot register for acceleration updated signal.
 
- Protected Types inherited from dart::dynamics::Frame
enum  ConstructAbstractTag { ConstructAbstract }
 Used when constructing a pure abstract class, because calling the Frame constructor is just a formality.
 
- Protected Types inherited from dart::dynamics::Entity
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.
 
enum  ConstructAbstractTag { ConstructAbstract }
 Used when constructing a pure abstract class, because calling the Entity constructor is just a formality.
 

Detailed Description

The JacobianNode class serves as a common interface for BodyNodes and EndEffectors to both be used as references for IK modules.

This is a pure abstract class.

Member Function Documentation

◆ createIK()

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

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.

◆ dirtyJacobian()

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

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

◆ dirtyJacobianDeriv()

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

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

◆ getAngularJacobian()

virtual math::AngularJacobian dart::dynamics::JacobianNode::getAngularJacobian ( const Frame _inCoordinatesOf = Frame::World()) const
pure virtual

Return the angular Jacobian targeting the origin of this BodyNode.

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

Implemented in dart::dynamics::TemplatedJacobianNode< NodeType >, and dart::dynamics::TemplatedJacobianNode< BodyNode >.

◆ getAngularJacobianDeriv()

virtual math::AngularJacobian dart::dynamics::JacobianNode::getAngularJacobianDeriv ( const Frame _inCoordinatesOf = Frame::World()) const
pure virtual

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

Implemented in dart::dynamics::TemplatedJacobianNode< NodeType >, and dart::dynamics::TemplatedJacobianNode< BodyNode >.

◆ getChainDofs()

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

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.

◆ getIK() [1/2]

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

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.

◆ getIK() [2/2]

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

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.

◆ getJacobian() [1/4]

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

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]

virtual math::Jacobian dart::dynamics::JacobianNode::getJacobian ( const Frame _inCoordinatesOf) const
pure virtual

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

Implemented in dart::dynamics::TemplatedJacobianNode< NodeType >, and dart::dynamics::TemplatedJacobianNode< BodyNode >.

◆ getJacobian() [3/4]

virtual math::Jacobian dart::dynamics::JacobianNode::getJacobian ( const Eigen::Vector3d &  _offset) const
pure virtual

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

Implemented in dart::dynamics::TemplatedJacobianNode< NodeType >, and dart::dynamics::TemplatedJacobianNode< BodyNode >.

◆ getJacobian() [4/4]

virtual math::Jacobian dart::dynamics::JacobianNode::getJacobian ( const Eigen::Vector3d &  _offset,
const Frame _inCoordinatesOf 
) const
pure virtual

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

Implemented in dart::dynamics::TemplatedJacobianNode< NodeType >, and dart::dynamics::TemplatedJacobianNode< BodyNode >.

◆ getJacobianClassicDeriv() [1/3]

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

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]

virtual math::Jacobian dart::dynamics::JacobianNode::getJacobianClassicDeriv ( const Frame _inCoordinatesOf) const
pure virtual

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.

Implemented in dart::dynamics::TemplatedJacobianNode< NodeType >, and dart::dynamics::TemplatedJacobianNode< BodyNode >.

◆ getJacobianClassicDeriv() [3/3]

virtual math::Jacobian dart::dynamics::JacobianNode::getJacobianClassicDeriv ( const Eigen::Vector3d &  _offset,
const Frame _inCoordinatesOf = Frame::World() 
) const
pure virtual

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.

Implemented in dart::dynamics::TemplatedJacobianNode< NodeType >, and dart::dynamics::TemplatedJacobianNode< BodyNode >.

◆ getJacobianSpatialDeriv() [1/4]

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

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]

virtual math::Jacobian dart::dynamics::JacobianNode::getJacobianSpatialDeriv ( const Frame _inCoordinatesOf) const
pure virtual

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.

Implemented in dart::dynamics::TemplatedJacobianNode< NodeType >, and dart::dynamics::TemplatedJacobianNode< BodyNode >.

◆ getJacobianSpatialDeriv() [3/4]

virtual math::Jacobian dart::dynamics::JacobianNode::getJacobianSpatialDeriv ( const Eigen::Vector3d &  _offset) const
pure virtual

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()

Implemented in dart::dynamics::TemplatedJacobianNode< NodeType >, and dart::dynamics::TemplatedJacobianNode< BodyNode >.

◆ getJacobianSpatialDeriv() [4/4]

virtual math::Jacobian dart::dynamics::JacobianNode::getJacobianSpatialDeriv ( const Eigen::Vector3d &  _offset,
const Frame _inCoordinatesOf 
) const
pure virtual

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

Implemented in dart::dynamics::TemplatedJacobianNode< NodeType >, and dart::dynamics::TemplatedJacobianNode< BodyNode >.

◆ getLinearJacobian() [1/2]

virtual math::LinearJacobian dart::dynamics::JacobianNode::getLinearJacobian ( const Frame _inCoordinatesOf = Frame::World()) const
pure virtual

Return the linear Jacobian targeting the origin of this BodyNode.

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

Implemented in dart::dynamics::TemplatedJacobianNode< NodeType >, and dart::dynamics::TemplatedJacobianNode< BodyNode >.

◆ getLinearJacobian() [2/2]

virtual math::LinearJacobian dart::dynamics::JacobianNode::getLinearJacobian ( const Eigen::Vector3d &  _offset,
const Frame _inCoordinatesOf = Frame::World() 
) const
pure virtual

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

Implemented in dart::dynamics::TemplatedJacobianNode< NodeType >, and dart::dynamics::TemplatedJacobianNode< BodyNode >.

◆ getLinearJacobianDeriv() [1/2]

virtual math::LinearJacobian dart::dynamics::JacobianNode::getLinearJacobianDeriv ( const Frame _inCoordinatesOf = Frame::World()) const
pure virtual

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.

Implemented in dart::dynamics::TemplatedJacobianNode< NodeType >, and dart::dynamics::TemplatedJacobianNode< BodyNode >.

◆ getLinearJacobianDeriv() [2/2]

virtual math::LinearJacobian dart::dynamics::JacobianNode::getLinearJacobianDeriv ( const Eigen::Vector3d &  _offset,
const Frame _inCoordinatesOf = Frame::World() 
) const
pure virtual

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.

Implemented in dart::dynamics::TemplatedJacobianNode< NodeType >, and dart::dynamics::TemplatedJacobianNode< BodyNode >.

◆ getOrCreateIK()

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

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).

◆ getWorldJacobian() [1/2]

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

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]

virtual math::Jacobian dart::dynamics::JacobianNode::getWorldJacobian ( const Eigen::Vector3d &  _offset) const
pure virtual

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.

Implemented in dart::dynamics::TemplatedJacobianNode< NodeType >, and dart::dynamics::TemplatedJacobianNode< BodyNode >.

◆ notifyJacobianDerivUpdate()

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

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

◆ notifyJacobianUpdate()

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

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


The documentation for this class was generated from the following files: