dart
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
dart::dynamics::FreeJoint Class Reference

class FreeJoint More...

#include <FreeJoint.hpp>

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

Classes

struct  Properties
 

Public Types

using Base = GenericJoint< math::SE3Space >
 
- Public Types inherited from dart::dynamics::GenericJoint< math::SE3Space >
using ThisClass = GenericJoint< math::SE3Space >
 
using Base = detail::GenericJointBase< ThisClass, math::SE3Space >
 
using Point = typename math::SE3Space ::Point
 
using EuclideanPoint = typename math::SE3Space ::EuclideanPoint
 
using Vector = typename math::SE3Space ::Vector
 
using JacobianMatrix = typename math::SE3Space ::JacobianMatrix
 
using Matrix = typename math::SE3Space ::Matrix
 
using UniqueProperties = detail::GenericJointUniqueProperties< math::SE3Space >
 
using Properties = detail::GenericJointProperties< math::SE3Space >
 
using AspectState = typename Base::AspectState
 
using AspectProperties = typename Base::AspectProperties
 
- Public Types inherited from dart::common::EmbedStateAndPropertiesOnTopOf< DerivedT, StateDataT, PropertiesDataT, CompositeBases >
using Impl = EmbedStateAndProperties< DerivedT, StateDataT, PropertiesDataT >
 
using Derived = typename Impl::Derived
 
using AspectStateData = typename Impl::AspectStateData
 
using AspectState = typename Impl::AspectState
 
using AspectPropertiesData = typename Impl::AspectPropertiesData
 
using AspectProperties = typename Impl::AspectProperties
 
using Aspect = typename Impl::Aspect
 
using Base = CompositeJoiner< Impl, CompositeBases... >
 

Public Member Functions

 FreeJoint (const FreeJoint &)=delete
 
virtual ~FreeJoint ()
 Destructor.
 
Properties getFreeJointProperties () const
 Get the Properties of this FreeJoint.
 
const std::string & getType () const override
 
bool isCyclic (std::size_t _index) const override
 
void setSpatialMotion (const Eigen::Isometry3d *newTransform, const Frame *withRespectTo, const Eigen::Vector6d *newSpatialVelocity, const Frame *velRelativeTo, const Frame *velInCoordinatesOf, const Eigen::Vector6d *newSpatialAcceleration, const Frame *accRelativeTo, const Frame *accInCoordinatesOf)
 Set the transform, spatial velocity, and spatial acceleration of the child BodyNode relative to an arbitrary Frame. More...
 
void setRelativeTransform (const Eigen::Isometry3d &newTransform)
 Set the transform of the child BodyNode relative to the parent BodyNode. More...
 
void setTransform (const Eigen::Isometry3d &newTransform, const Frame *withRespectTo=Frame::World())
 Set the transform of the child BodyNode relative to an arbitrary Frame. More...
 
void setRelativeSpatialVelocity (const Eigen::Vector6d &newSpatialVelocity)
 Set the spatial velocity of the child BodyNode relative to the parent BodyNode. More...
 
void setRelativeSpatialVelocity (const Eigen::Vector6d &newSpatialVelocity, const Frame *inCoordinatesOf)
 Set the spatial velocity of the child BodyNode relative to the parent BodyNode. More...
 
void setSpatialVelocity (const Eigen::Vector6d &newSpatialVelocity, const Frame *relativeTo, const Frame *inCoordinatesOf)
 Set the spatial velocity of the child BodyNode relative to an arbitrary Frame. More...
 
void setLinearVelocity (const Eigen::Vector3d &newLinearVelocity, const Frame *relativeTo=Frame::World(), const Frame *inCoordinatesOf=Frame::World())
 Set the linear portion of classical velocity of the child BodyNode relative to an arbitrary Frame. More...
 
void setAngularVelocity (const Eigen::Vector3d &newAngularVelocity, const Frame *relativeTo=Frame::World(), const Frame *inCoordinatesOf=Frame::World())
 Set the angular portion of classical velocity of the child BodyNode relative to an arbitrary Frame. More...
 
void setRelativeSpatialAcceleration (const Eigen::Vector6d &newSpatialAcceleration)
 Set the spatial acceleration of the child BodyNode relative to the parent BodyNode. More...
 
void setRelativeSpatialAcceleration (const Eigen::Vector6d &newSpatialAcceleration, const Frame *inCoordinatesOf)
 Set the spatial acceleration of the child BodyNode relative to the parent BodyNode. More...
 
void setSpatialAcceleration (const Eigen::Vector6d &newSpatialAcceleration, const Frame *relativeTo, const Frame *inCoordinatesOf)
 Set the spatial acceleration of the child BodyNode relative to an arbitrary Frame. More...
 
void setLinearAcceleration (const Eigen::Vector3d &newLinearAcceleration, const Frame *relativeTo=Frame::World(), const Frame *inCoordinatesOf=Frame::World())
 Set the linear portion of classical acceleration of the child BodyNode relative to an arbitrary Frame. More...
 
void setAngularAcceleration (const Eigen::Vector3d &newAngularAcceleration, const Frame *relativeTo=Frame::World(), const Frame *inCoordinatesOf=Frame::World())
 Set the angular portion of classical acceleration of the child BodyNode relative to an arbitrary Frame. More...
 
Eigen::Matrix6d getRelativeJacobianStatic (const Eigen::Vector6d &_positions) const override
 
Eigen::Vector6d getPositionDifferencesStatic (const Eigen::Vector6d &_q2, const Eigen::Vector6d &_q1) const override
 
- Public Member Functions inherited from dart::dynamics::GenericJoint< math::SE3Space >
 DART_BAKE_SPECIALIZED_ASPECT_IRREGULAR (typename ThisClass::Aspect, GenericJointAspect) GenericJoint(const ThisClass &)=delete
 
virtual ~GenericJoint ()
 Destructor.
 
void setProperties (const Properties &properties)
 Set the Properties of this GenericJoint.
 
void setProperties (const UniqueProperties &properties)
 Set the Properties of this GenericJoint.
 
void setAspectState (const AspectState &state)
 Set the AspectState of this GenericJoint.
 
void setAspectProperties (const AspectProperties &properties)
 Set the AspectProperties of this GenericJoint.
 
Properties getGenericJointProperties () const
 Get the Properties of this GenericJoint.
 
void copy (const ThisClass &otherJoint)
 Copy the Properties of another GenericJoint.
 
void copy (const ThisClass *otherJoint)
 Copy the Properties of another GenericJoint.
 
ThisClassoperator= (const ThisClass &other)
 Same as copy(const GenericJoint&)
 
Eigen::Vector6d getBodyConstraintWrench () const override
 
DegreeOfFreedomgetDof (std::size_t index) override
 
const DegreeOfFreedomgetDof (std::size_t _index) const override
 
std::size_t getNumDofs () const override
 
const std::string & setDofName (std::size_t index, const std::string &name, bool preserveName=true) override
 
void preserveDofName (size_t index, bool preserve) override
 
bool isDofNamePreserved (size_t index) const override
 
const std::string & getDofName (size_t index) const override
 
size_t getIndexInSkeleton (size_t index) const override
 
size_t getIndexInTree (size_t index) const override
 
void setCommand (std::size_t index, double command) override
 
double getCommand (std::size_t index) const override
 
void setCommands (const Eigen::VectorXd &commands) override
 
Eigen::VectorXd getCommands () const override
 
void resetCommands () override
 
void setPosition (std::size_t index, double position) override
 
double getPosition (std::size_t index) const override
 
void setPositions (const Eigen::VectorXd &positions) override
 
Eigen::VectorXd getPositions () const override
 
void setPositionLowerLimit (std::size_t index, double position) override
 
double getPositionLowerLimit (std::size_t index) const override
 
void setPositionLowerLimits (const Eigen::VectorXd &lowerLimits) override
 
Eigen::VectorXd getPositionLowerLimits () const override
 
void setPositionUpperLimit (std::size_t index, double position) override
 
double getPositionUpperLimit (std::size_t index) const override
 
void setPositionUpperLimits (const Eigen::VectorXd &upperLimits) override
 
Eigen::VectorXd getPositionUpperLimits () const override
 
bool hasPositionLimit (std::size_t index) const override
 
void resetPosition (std::size_t index) override
 
void resetPositions () override
 
void setInitialPosition (std::size_t index, double initial) override
 
double getInitialPosition (std::size_t index) const override
 
void setInitialPositions (const Eigen::VectorXd &initial) override
 
Eigen::VectorXd getInitialPositions () const override
 
void setPositionsStatic (const Vector &positions)
 Fixed-size version of setPositions()
 
const Vector & getPositionsStatic () const
 Fixed-size version of getPositions()
 
void setVelocitiesStatic (const Vector &velocities)
 Fixed-size version of setVelocities()
 
const Vector & getVelocitiesStatic () const
 Fixed-size version of getVelocities()
 
void setAccelerationsStatic (const Vector &accels)
 Fixed-size version of setAccelerations()
 
const Vector & getAccelerationsStatic () const
 Fixed-size version of getAccelerations()
 
void setVelocity (std::size_t index, double velocity) override
 
double getVelocity (std::size_t index) const override
 
void setVelocities (const Eigen::VectorXd &velocities) override
 
Eigen::VectorXd getVelocities () const override
 
void setVelocityLowerLimit (std::size_t index, double velocity) override
 
double getVelocityLowerLimit (std::size_t index) const override
 
void setVelocityLowerLimits (const Eigen::VectorXd &lowerLimits) override
 
Eigen::VectorXd getVelocityLowerLimits () const override
 
void setVelocityUpperLimit (std::size_t index, double velocity) override
 
double getVelocityUpperLimit (std::size_t index) const override
 
void setVelocityUpperLimits (const Eigen::VectorXd &upperLimits) override
 
Eigen::VectorXd getVelocityUpperLimits () const override
 
void resetVelocity (std::size_t index) override
 
void resetVelocities () override
 
void setInitialVelocity (std::size_t index, double initial) override
 
double getInitialVelocity (std::size_t index) const override
 
void setInitialVelocities (const Eigen::VectorXd &initial) override
 
Eigen::VectorXd getInitialVelocities () const override
 
void setAcceleration (std::size_t index, double acceleration) override
 
double getAcceleration (std::size_t index) const override
 
void setAccelerations (const Eigen::VectorXd &accelerations) override
 
Eigen::VectorXd getAccelerations () const override
 
void setAccelerationLowerLimit (size_t index, double acceleration) override
 
double getAccelerationLowerLimit (std::size_t index) const override
 
void setAccelerationLowerLimits (const Eigen::VectorXd &lowerLimits) override
 
Eigen::VectorXd getAccelerationLowerLimits () const override
 
void setAccelerationUpperLimit (std::size_t index, double acceleration) override
 
double getAccelerationUpperLimit (std::size_t index) const override
 
void setAccelerationUpperLimits (const Eigen::VectorXd &upperLimits) override
 
Eigen::VectorXd getAccelerationUpperLimits () const override
 
void resetAccelerations () override
 
void setForce (std::size_t index, double force) override
 
double getForce (std::size_t index) const override
 
void setForces (const Eigen::VectorXd &forces) override
 
Eigen::VectorXd getForces () const override
 
void setForceLowerLimit (size_t index, double force) override
 
double getForceLowerLimit (std::size_t index) const override
 
void setForceLowerLimits (const Eigen::VectorXd &lowerLimits) override
 
Eigen::VectorXd getForceLowerLimits () const override
 
void setForceUpperLimit (size_t index, double force) override
 
double getForceUpperLimit (size_t index) const override
 
void setForceUpperLimits (const Eigen::VectorXd &upperLimits) override
 
Eigen::VectorXd getForceUpperLimits () const override
 
void resetForces () override
 
void setVelocityChange (std::size_t index, double velocityChange) override
 
double getVelocityChange (std::size_t index) const override
 
void resetVelocityChanges () override
 
void setConstraintImpulse (std::size_t index, double impulse) override
 
double getConstraintImpulse (std::size_t index) const override
 
void resetConstraintImpulses () override
 
void integratePositions (double dt) override
 
void integrateVelocities (double dt) override
 
Eigen::VectorXd getPositionDifferences (const Eigen::VectorXd &q2, const Eigen::VectorXd &q1) const override
 
virtual Vector getPositionDifferencesStatic (const Vector &q2, const Vector &q1) const
 Fixed-size version of getPositionDifferences()
 
void setSpringStiffness (std::size_t index, double k) override
 
double getSpringStiffness (std::size_t index) const override
 
void setRestPosition (std::size_t index, double q0) override
 
double getRestPosition (std::size_t index) const override
 
void setDampingCoefficient (std::size_t index, double coeff) override
 
double getDampingCoefficient (std::size_t index) const override
 
void setCoulombFriction (std::size_t index, double friction) override
 
double getCoulombFriction (std::size_t index) const override
 
double computePotentialEnergy () const override
 
const math::Jacobian getRelativeJacobian () const override
 
math::Jacobian getRelativeJacobian (const Eigen::VectorXd &_positions) const override
 
const GenericJoint< math::SE3Space >::JacobianMatrix & getRelativeJacobianStatic () const
 Fixed-size version of getRelativeJacobian()
 
virtual JacobianMatrix getRelativeJacobianStatic (const Vector &positions) const=0
 Fixed-size version of getRelativeJacobian(positions)
 
const math::Jacobian getRelativeJacobianTimeDeriv () const override
 
const JacobianMatrix & getRelativeJacobianTimeDerivStatic () const
 Fixed-size version of getRelativeJacobianTimeDeriv()
 
- Public Member Functions inherited from dart::common::EmbedStateAndPropertiesOnTopOf< DerivedT, StateDataT, PropertiesDataT, CompositeBases >
template<typename... Args>
 EmbedStateAndPropertiesOnTopOf (Args &&... args)
 

Static Public Member Functions

static const std::string & getStaticType ()
 Get joint type for this class.
 
static Eigen::Vector6d convertToPositions (const Eigen::Isometry3d &_tf)
 Convert a transform into a 6D vector that can be used to set the positions of a FreeJoint. More...
 
static Eigen::Isometry3d convertToTransform (const Eigen::Vector6d &_positions)
 Convert a FreeJoint-style 6D vector into a transform.
 
static void setTransform (Joint *joint, const Eigen::Isometry3d &tf, const Frame *withRespectTo=Frame::World())
 If the given joint is a FreeJoint, then set the transform of the given Joint's child BodyNode so that its transform with respect to "withRespecTo" is equal to "tf". More...
 
static void setTransformOf (Joint *joint, const Eigen::Isometry3d &tf, const Frame *withRespectTo=Frame::World())
 If the given joint is a FreeJoint, then set the transform of the given Joint's child BodyNode so that its transform with respect to "withRespecTo" is equal to "tf". More...
 
static void setTransform (BodyNode *bodyNode, const Eigen::Isometry3d &tf, const Frame *withRespectTo=Frame::World())
 If the parent Joint of the given BodyNode is a FreeJoint, then set the transform of the given BodyNode so that its transform with respect to "withRespecTo" is equal to "tf". More...
 
static void setTransformOf (BodyNode *bodyNode, const Eigen::Isometry3d &tf, const Frame *withRespectTo=Frame::World())
 If the parent Joint of the given BodyNode is a FreeJoint, then set the transform of the given BodyNode so that its transform with respect to "withRespecTo" is equal to "tf". More...
 
static void setTransform (Skeleton *skeleton, const Eigen::Isometry3d &tf, const Frame *withRespectTo=Frame::World(), bool applyToAllRootBodies=true)
 Apply setTransform(bodyNode, tf, withRespecTo) for all the root BodyNodes of the given Skeleton. More...
 
static void setTransformOf (Skeleton *skeleton, const Eigen::Isometry3d &tf, const Frame *withRespectTo=Frame::World(), bool applyToAllRootBodies=true)
 Apply setTransform(bodyNode, tf, withRespecTo) for all the root BodyNodes of the given Skeleton. More...
 

Protected Member Functions

 FreeJoint (const Properties &properties)
 Constructor called by Skeleton class.
 
Jointclone () const override
 
void integratePositions (double _dt) override
 
void updateDegreeOfFreedomNames () override
 
void updateRelativeTransform () const override
 
void updateRelativeJacobian (bool _mandatory=true) const override
 
void updateRelativeJacobianTimeDeriv () const override
 
const Eigen::Isometry3d & getQ () const
 Access mQ, which is an auto-updating variable.
 
- Protected Member Functions inherited from dart::dynamics::GenericJoint< math::SE3Space >
 GenericJoint (const Properties &properties)
 
void registerDofs () override
 
void addChildBiasForceForInvMassMatrix (Eigen::Vector6d &parentBiasForce, const Eigen::Matrix6d &childArtInertia, const Eigen::Vector6d &childBiasForce) override
 
void addChildBiasForceForInvAugMassMatrix (Eigen::Vector6d &parentBiasForce, const Eigen::Matrix6d &childArtInertia, const Eigen::Vector6d &childBiasForce) override
 
void updateTotalForceForInvMassMatrix (const Eigen::Vector6d &bodyForce) override
 
void getInvMassMatrixSegment (Eigen::MatrixXd &invMassMat, const size_t col, const Eigen::Matrix6d &artInertia, const Eigen::Vector6d &spatialAcc) override
 
void getInvAugMassMatrixSegment (Eigen::MatrixXd &invMassMat, const size_t col, const Eigen::Matrix6d &artInertia, const Eigen::Vector6d &spatialAcc) override
 
void addInvMassMatrixSegmentTo (Eigen::Vector6d &acc) override
 
Eigen::VectorXd getSpatialToGeneralized (const Eigen::Vector6d &spatial) override
 
const Matrix & getInvProjArtInertia () const
 Get the inverse of the projected articulated inertia.
 
const Matrix & getInvProjArtInertiaImplicit () const
 Get the inverse of projected articulated inertia for implicit joint damping and spring forces.
 
void updateRelativeSpatialVelocity () const override
 
void updateRelativeSpatialAcceleration () const override
 
void updateRelativePrimaryAcceleration () const override
 
void addVelocityTo (Eigen::Vector6d &vel) override
 
void setPartialAccelerationTo (Eigen::Vector6d &partialAcceleration, const Eigen::Vector6d &childVelocity) override
 
void addAccelerationTo (Eigen::Vector6d &acc) override
 
void addVelocityChangeTo (Eigen::Vector6d &velocityChange) override
 
void addChildArtInertiaTo (Eigen::Matrix6d &parentArtInertia, const Eigen::Matrix6d &childArtInertia) override
 
void addChildArtInertiaImplicitTo (Eigen::Matrix6d &parentArtInertiaImplicit, const Eigen::Matrix6d &childArtInertiaImplicit) override
 
void updateInvProjArtInertia (const Eigen::Matrix6d &artInertia) override
 
void updateInvProjArtInertiaImplicit (const Eigen::Matrix6d &artInertia, double timeStep) override
 
void addChildBiasForceTo (Eigen::Vector6d &parentBiasForce, const Eigen::Matrix6d &childArtInertia, const Eigen::Vector6d &childBiasForce, const Eigen::Vector6d &childPartialAcc) override
 
void addChildBiasImpulseTo (Eigen::Vector6d &parentBiasImpulse, const Eigen::Matrix6d &childArtInertia, const Eigen::Vector6d &childBiasImpulse) override
 
void updateTotalForce (const Eigen::Vector6d &bodyForce, double timeStep) override
 
void updateTotalImpulse (const Eigen::Vector6d &bodyImpulse) override
 
void resetTotalImpulses () override
 
void updateAcceleration (const Eigen::Matrix6d &artInertia, const Eigen::Vector6d &spatialAcc) override
 
void updateVelocityChange (const Eigen::Matrix6d &artInertia, const Eigen::Vector6d &velocityChange) override
 
void updateForceID (const Eigen::Vector6d &bodyForce, double timeStep, bool withDampingForces, bool withSpringForces) override
 
void updateForceFD (const Eigen::Vector6d &bodyForce, double timeStep, bool withDampingForcese, bool withSpringForces) override
 
void updateImpulseID (const Eigen::Vector6d &bodyImpulse) override
 
void updateImpulseFD (const Eigen::Vector6d &bodyImpulse) override
 
void updateConstrainedTerms (double timeStep) override
 

Protected Attributes

Eigen::Isometry3d mQ
 Transformation matrix dependent on generalized coordinates. More...
 
- Protected Attributes inherited from dart::dynamics::GenericJoint< math::SE3Space >
std::array< DegreeOfFreedom *, NumDofs > mDofs
 Array of DegreeOfFreedom objects.
 
Vector mVelocityChanges
 Change of generalized velocity.
 
Vector mImpulses
 Generalized impulse.
 
Vector mConstraintImpulses
 Generalized constraint impulse.
 
JacobianMatrix mJacobian
 Spatial Jacobian expressed in the child body frame. More...
 
JacobianMatrix mJacobianDeriv
 Time derivative of spatial Jacobian expressed in the child body frame. More...
 
Matrix mInvProjArtInertia
 Inverse of projected articulated inertia. More...
 
Matrix mInvProjArtInertiaImplicit
 Inverse of projected articulated inertia for implicit joint damping and spring forces. More...
 
Vector mTotalForce
 Total force projected on joint space.
 
Vector mTotalImpulse
 Total impluse projected on joint space.
 
Vector mInvM_a
 
Vector mInvMassMatrixSegment
 

Friends

class Skeleton
 

Additional Inherited Members

- Static Public Attributes inherited from dart::dynamics::GenericJoint< math::SE3Space >
static constexpr std::size_t NumDofs
 

Detailed Description

class FreeJoint

Member Function Documentation

◆ convertToPositions()

Eigen::Vector6d dart::dynamics::FreeJoint::convertToPositions ( const Eigen::Isometry3d &  _tf)
static

Convert a transform into a 6D vector that can be used to set the positions of a FreeJoint.

The positions returned by this function will result in a relative transform of getTransformFromParentBodyNode() * _tf * getTransformFromChildBodyNode().inverse() between the parent BodyNode and the child BodyNode frames when applied to a FreeJoint.

◆ setAngularAcceleration()

void dart::dynamics::FreeJoint::setAngularAcceleration ( const Eigen::Vector3d &  newAngularAcceleration,
const Frame relativeTo = Frame::World(),
const Frame inCoordinatesOf = Frame::World() 
)

Set the angular portion of classical acceleration of the child BodyNode relative to an arbitrary Frame.

Note that the linear portion of claasical acceleration of the child BodyNode will not be changed after this function called.

Parameters
[in]newAngularAcceleration
[in]relativeToThe relative frame of "newAngularAcceleration".
[in]inCoordinatesOfThe reference frame of "newAngularAcceleration".

◆ setAngularVelocity()

void dart::dynamics::FreeJoint::setAngularVelocity ( const Eigen::Vector3d &  newAngularVelocity,
const Frame relativeTo = Frame::World(),
const Frame inCoordinatesOf = Frame::World() 
)

Set the angular portion of classical velocity of the child BodyNode relative to an arbitrary Frame.

Note that the linear portion of claasical velocity of the child BodyNode will not be changed after this function called.

Parameters
[in]newAngularVelocity
[in]relativeToThe relative frame of "newAngularVelocity".
[in]inCoordinatesOfThe reference frame of "newAngularVelocity".

◆ setLinearAcceleration()

void dart::dynamics::FreeJoint::setLinearAcceleration ( const Eigen::Vector3d &  newLinearAcceleration,
const Frame relativeTo = Frame::World(),
const Frame inCoordinatesOf = Frame::World() 
)

Set the linear portion of classical acceleration of the child BodyNode relative to an arbitrary Frame.

Note that the angular portion of claasical acceleration of the child BodyNode will not be changed after this function called.

Parameters
[in]newLinearAcceleration
[in]relativeToThe relative frame of "newLinearAcceleration".
[in]inCoordinatesOfThe reference frame of "newLinearAcceleration".

◆ setLinearVelocity()

void dart::dynamics::FreeJoint::setLinearVelocity ( const Eigen::Vector3d &  newLinearVelocity,
const Frame relativeTo = Frame::World(),
const Frame inCoordinatesOf = Frame::World() 
)

Set the linear portion of classical velocity of the child BodyNode relative to an arbitrary Frame.

Note that the angular portion of claasical velocity of the child BodyNode will not be changed after this function called.

Parameters
[in]newLinearVelocity
[in]relativeToThe relative frame of "newLinearVelocity".
[in]inCoordinatesOfThe reference frame of "newLinearVelocity".

◆ setRelativeSpatialAcceleration() [1/2]

void dart::dynamics::FreeJoint::setRelativeSpatialAcceleration ( const Eigen::Vector6d &  newSpatialAcceleration)

Set the spatial acceleration of the child BodyNode relative to the parent BodyNode.

Parameters
[in]newSpatialAccelerationDesired spatial acceleration of the child BodyNode. The reference frame of "newSpatialAcceleration" is the child BodyNode.

◆ setRelativeSpatialAcceleration() [2/2]

void dart::dynamics::FreeJoint::setRelativeSpatialAcceleration ( const Eigen::Vector6d &  newSpatialAcceleration,
const Frame inCoordinatesOf 
)

Set the spatial acceleration of the child BodyNode relative to the parent BodyNode.

Parameters
[in]newSpatialAccelerationDesired spatial acceleration of the child BodyNode.
[in]inCoordinatesOfThe reference frame of "newSpatialAcceleration".

◆ setRelativeSpatialVelocity() [1/2]

void dart::dynamics::FreeJoint::setRelativeSpatialVelocity ( const Eigen::Vector6d &  newSpatialVelocity)

Set the spatial velocity of the child BodyNode relative to the parent BodyNode.

Parameters
[in]newSpatialVelocityDesired spatial velocity of the child BodyNode. The reference frame of "newSpatialVelocity" is the child BodyNode.

◆ setRelativeSpatialVelocity() [2/2]

void dart::dynamics::FreeJoint::setRelativeSpatialVelocity ( const Eigen::Vector6d &  newSpatialVelocity,
const Frame inCoordinatesOf 
)

Set the spatial velocity of the child BodyNode relative to the parent BodyNode.

Parameters
[in]newSpatialVelocityDesired spatial velocity of the child BodyNode.
[in]inCoordinatesOfThe reference frame of "newSpatialVelocity".

◆ setRelativeTransform()

void dart::dynamics::FreeJoint::setRelativeTransform ( const Eigen::Isometry3d &  newTransform)

Set the transform of the child BodyNode relative to the parent BodyNode.

Parameters
[in]newTransformDesired transform of the child BodyNode.

◆ setSpatialAcceleration()

void dart::dynamics::FreeJoint::setSpatialAcceleration ( const Eigen::Vector6d &  newSpatialAcceleration,
const Frame relativeTo,
const Frame inCoordinatesOf 
)

Set the spatial acceleration of the child BodyNode relative to an arbitrary Frame.

Parameters
[in]newSpatialAccelerationDesired spatial acceleration of the child BodyNode.
[in]relativeToThe relative frame of "newSpatialAcceleration".
[in]inCoordinatesOfThe reference frame of "newSpatialAcceleration".

◆ setSpatialMotion()

void dart::dynamics::FreeJoint::setSpatialMotion ( const Eigen::Isometry3d *  newTransform,
const Frame withRespectTo,
const Eigen::Vector6d *  newSpatialVelocity,
const Frame velRelativeTo,
const Frame velInCoordinatesOf,
const Eigen::Vector6d *  newSpatialAcceleration,
const Frame accRelativeTo,
const Frame accInCoordinatesOf 
)

Set the transform, spatial velocity, and spatial acceleration of the child BodyNode relative to an arbitrary Frame.

The reference frame can be arbitrarily specified.

If you want to set more than one kind of Cartetian coordinates (e.g., transform and spatial velocity) at the same time, you should call corresponding setters in a certain order (transform -> velocity -> acceleration), If you don't velocity or acceleration can be corrupted by transform or velocity. This function calls the corresponding setters in the right order so that all the desired Cartetian coordinates are properly set.

Pass nullptr for "newTransform", "newSpatialVelocity", or "newSpatialAcceleration" if you don't want to set them.

Parameters
[in]newTransformDesired transform of the child BodyNode.
[in]withRespectToThe relative Frame of "newTransform".
[in]newSpatialVelocityDesired spatial velocity of the child BodyNode.
[in]velRelativeToThe relative frame of "newSpatialVelocity".
[in]velInCoordinatesOfThe reference frame of "newSpatialVelocity".
[in]newSpatialAccelerationDesired spatial acceleration of the child BodyNode.
[in]accRelativeToThe relative frame of "newSpatialAcceleration".
[in]accInCoordinatesOfThe reference frame of "newSpatialAcceleration".

◆ setSpatialVelocity()

void dart::dynamics::FreeJoint::setSpatialVelocity ( const Eigen::Vector6d &  newSpatialVelocity,
const Frame relativeTo,
const Frame inCoordinatesOf 
)

Set the spatial velocity of the child BodyNode relative to an arbitrary Frame.

Parameters
[in]newSpatialVelocityDesired spatial velocity of the child BodyNode.
[in]relativeToThe relative frame of "newSpatialVelocity".
[in]inCoordinatesOfThe reference frame of "newSpatialVelocity".

◆ setTransform() [1/4]

void dart::dynamics::FreeJoint::setTransform ( Joint joint,
const Eigen::Isometry3d &  tf,
const Frame withRespectTo = Frame::World() 
)
static

If the given joint is a FreeJoint, then set the transform of the given Joint's child BodyNode so that its transform with respect to "withRespecTo" is equal to "tf".

Deprecated:
Deprecated in DART 6.9. Use setTransformOf() instead

◆ setTransform() [2/4]

void dart::dynamics::FreeJoint::setTransform ( BodyNode bodyNode,
const Eigen::Isometry3d &  tf,
const Frame withRespectTo = Frame::World() 
)
static

If the parent Joint of the given BodyNode is a FreeJoint, then set the transform of the given BodyNode so that its transform with respect to "withRespecTo" is equal to "tf".

Deprecated:
Deprecated in DART 6.9. Use setTransformOf() instead

◆ setTransform() [3/4]

void dart::dynamics::FreeJoint::setTransform ( Skeleton skeleton,
const Eigen::Isometry3d &  tf,
const Frame withRespectTo = Frame::World(),
bool  applyToAllRootBodies = true 
)
static

Apply setTransform(bodyNode, tf, withRespecTo) for all the root BodyNodes of the given Skeleton.

If false is passed in "applyToAllRootBodies", then it will be applied to only the default root BodyNode that will be obtained by Skeleton::getRootBodyNode().

Deprecated:
Deprecated in DART 6.9. Use setTransformOf() instead

◆ setTransform() [4/4]

void dart::dynamics::FreeJoint::setTransform ( const Eigen::Isometry3d &  newTransform,
const Frame withRespectTo = Frame::World() 
)

Set the transform of the child BodyNode relative to an arbitrary Frame.

Parameters
[in]newTransformDesired transform of the child BodyNode.
[in]withRespectToThe relative Frame of "newTransform".

◆ setTransformOf() [1/3]

void dart::dynamics::FreeJoint::setTransformOf ( Joint joint,
const Eigen::Isometry3d &  tf,
const Frame withRespectTo = Frame::World() 
)
static

If the given joint is a FreeJoint, then set the transform of the given Joint's child BodyNode so that its transform with respect to "withRespecTo" is equal to "tf".

◆ setTransformOf() [2/3]

void dart::dynamics::FreeJoint::setTransformOf ( BodyNode bodyNode,
const Eigen::Isometry3d &  tf,
const Frame withRespectTo = Frame::World() 
)
static

If the parent Joint of the given BodyNode is a FreeJoint, then set the transform of the given BodyNode so that its transform with respect to "withRespecTo" is equal to "tf".

◆ setTransformOf() [3/3]

void dart::dynamics::FreeJoint::setTransformOf ( Skeleton skeleton,
const Eigen::Isometry3d &  tf,
const Frame withRespectTo = Frame::World(),
bool  applyToAllRootBodies = true 
)
static

Apply setTransform(bodyNode, tf, withRespecTo) for all the root BodyNodes of the given Skeleton.

If false is passed in "applyToAllRootBodies", then it will be applied to only the default root BodyNode that will be obtained by Skeleton::getRootBodyNode().

Member Data Documentation

◆ mQ

Eigen::Isometry3d dart::dynamics::FreeJoint::mQ
mutableprotected

Transformation matrix dependent on generalized coordinates.

Do not use directly! Use getQ() to access this


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