DART
6.10.1
|
#include <FreeJoint.hpp>
Classes | |
struct | Properties |
Public Types | |
using | Base = GenericJoint< math::SE3Space > |
using | ThisClass = GenericJoint< math::SE3Space > |
using | Point = typename ConfigSpaceT::Point |
using | EuclideanPoint = typename ConfigSpaceT::EuclideanPoint |
using | Vector = typename ConfigSpaceT::Vector |
using | JacobianMatrix = typename ConfigSpaceT::JacobianMatrix |
using | Matrix = typename ConfigSpaceT::Matrix |
using | UniqueProperties = detail::GenericJointUniqueProperties< math::SE3Space > |
using | Properties = detail::GenericJointProperties< math::SE3Space > |
using | AspectState = typename Base::AspectState |
using | AspectProperties = typename Base::AspectProperties |
using | Impl = EmbedStateAndProperties< DerivedT, StateDataT, PropertiesDataT > |
using | Derived = typename Impl::Derived |
using | AspectStateData = typename Impl::AspectStateData |
using | AspectPropertiesData = typename Impl::AspectPropertiesData |
using | Aspect = typename Impl::Aspect |
Public Member Functions | |
FreeJoint (const FreeJoint &)=delete | |
virtual | ~FreeJoint () |
Destructor. More... | |
Properties | getFreeJointProperties () const |
Get the Properties of this FreeJoint. More... | |
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 |
bool | hasGenericJointAspect () const |
Check if this Composite currently has GenericJointAspect . More... | |
ThisClass::Aspect * | getGenericJointAspect () |
Get a(an) GenericJointAspect from this Composite. More... | |
const ThisClass::Aspect * | getGenericJointAspect () const |
Get a(an) GenericJointAspect from this Composite. More... | |
ThisClass::Aspect * | getGenericJointAspect (const bool createIfNull) |
Get a(an) GenericJointAspect from this Composite. More... | |
void | setGenericJointAspect (const typename ThisClass::Aspect *aspect) |
Make a clone of GenericJointAspect and place the clone into this Composite. More... | |
void | setGenericJointAspect (std::unique_ptr< typename ThisClass::Aspect > &&aspect) |
Use move semantics to place GenericJointAspect into this Composite. More... | |
ThisClass::Aspect * | createGenericJointAspect (Args &&... args) |
Construct a(an) GenericJointAspect inside of this Composite. More... | |
void | removeGenericJointAspect () |
Remove a(an) GenericJointAspect from this Composite. More... | |
std::unique_ptr< typename ThisClass::Aspect > | releaseGenericJointAspect () |
Remove a(an) GenericJointAspect from this Composite, but return its unique_ptr instead of letting it be deleted. More... | |
void | setProperties (const Properties &properties) |
Set the Properties of this GenericJoint. More... | |
void | setProperties (const UniqueProperties &properties) |
Set the Properties of this GenericJoint. More... | |
void | setAspectState (const AspectState &state) |
Set the AspectState of this GenericJoint. More... | |
void | setAspectProperties (const AspectProperties &properties) |
Set the AspectProperties of this GenericJoint. More... | |
Properties | getGenericJointProperties () const |
Get the Properties of this GenericJoint. More... | |
void | copy (const ThisClass &otherJoint) |
Copy the Properties of another GenericJoint. More... | |
void | copy (const ThisClass *otherJoint) |
Copy the Properties of another GenericJoint. More... | |
Eigen::Vector6d | getBodyConstraintWrench () const override |
const AspectProperties & | getAspectProperties () const |
const AspectState & | getAspectState () const |
Interface for generalized coordinates | |
DegreeOfFreedom * | getDof (std::size_t index) override |
const DegreeOfFreedom * | getDof (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 |
Command | |
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 |
Position | |
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 |
Fixed-size mutators and accessors | |
void | setPositionsStatic (const Vector &positions) |
Fixed-size version of setPositions() More... | |
const Vector & | getPositionsStatic () const |
Fixed-size version of getPositions() More... | |
void | setVelocitiesStatic (const Vector &velocities) |
Fixed-size version of setVelocities() More... | |
const Vector & | getVelocitiesStatic () const |
Fixed-size version of getVelocities() More... | |
void | setAccelerationsStatic (const Vector &accels) |
Fixed-size version of setAccelerations() More... | |
const Vector & | getAccelerationsStatic () const |
Fixed-size version of getAccelerations() More... | |
Velocity | |
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 |
Acceleration | |
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 |
Force | |
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 |
Velocity change | |
void | setVelocityChange (std::size_t index, double velocityChange) override |
double | getVelocityChange (std::size_t index) const override |
void | resetVelocityChanges () override |
Constraint impulse | |
void | setConstraintImpulse (std::size_t index, double impulse) override |
double | getConstraintImpulse (std::size_t index) const override |
void | resetConstraintImpulses () override |
Integration and finite difference | |
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() More... | |
Passive forces - spring, viscous friction, Coulomb friction | |
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 |
Energy | |
double | computePotentialEnergy () const override |
Jacobians | |
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() More... | |
virtual JacobianMatrix | getRelativeJacobianStatic (const Vector &positions) const=0 |
Fixed-size version of getRelativeJacobian(positions) More... | |
const math::Jacobian | getRelativeJacobianTimeDeriv () const override |
const JacobianMatrix & | getRelativeJacobianTimeDerivStatic () const |
Fixed-size version of getRelativeJacobianTimeDeriv() More... | |
Static Public Member Functions | |
static const std::string & | getStaticType () |
Get joint type for this class. More... | |
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. More... | |
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... | |
Static Public Attributes | |
static constexpr std::size_t | NumDofs |
Protected Member Functions | |
FreeJoint (const Properties &properties) | |
Constructor called by Skeleton class. More... | |
Joint * | clone () 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. More... | |
void | registerDofs () override |
Recursive algorithm routines for equations of motion | |
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 |
Protected Attributes | |
Eigen::Isometry3d | mQ |
Transformation matrix dependent on generalized coordinates. More... | |
std::array< DegreeOfFreedom *, NumDofs > | mDofs |
Array of DegreeOfFreedom objects. More... | |
Vector | mVelocityChanges |
Change of generalized velocity. More... | |
Vector | mImpulses |
Generalized impulse. More... | |
Vector | mConstraintImpulses |
Generalized constraint impulse. More... | |
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. More... | |
Vector | mTotalImpulse |
Total impluse projected on joint space. More... | |
Vector | mInvM_a |
Vector | mInvMassMatrixSegment |
AspectProperties | mAspectProperties |
Aspect::Properties data, directly accessible to your derived class. More... | |
AspectState | mAspectState |
Aspect::State data, directly accessible to your derived class. More... | |
Friends | |
class | Skeleton |
Recursive dynamics routines | |
const Matrix & | getInvProjArtInertia () const |
Get the inverse of the projected articulated inertia. More... | |
const Matrix & | getInvProjArtInertiaImplicit () const |
Get the inverse of projected articulated inertia for implicit joint damping and spring forces. More... | |
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 |
void | addChildArtInertiaToDynamic (Eigen::Matrix6d &parentArtInertia, const Eigen::Matrix6d &childArtInertia) |
void | addChildArtInertiaToKinematic (Eigen::Matrix6d &parentArtInertia, const Eigen::Matrix6d &childArtInertia) |
void | addChildArtInertiaImplicitToDynamic (Eigen::Matrix6d &parentArtInertia, const Eigen::Matrix6d &childArtInertia) |
void | addChildArtInertiaImplicitToKinematic (Eigen::Matrix6d &parentArtInertia, const Eigen::Matrix6d &childArtInertia) |
void | updateInvProjArtInertiaDynamic (const Eigen::Matrix6d &artInertia) |
void | updateInvProjArtInertiaKinematic (const Eigen::Matrix6d &artInertia) |
void | updateInvProjArtInertiaImplicitDynamic (const Eigen::Matrix6d &artInertia, double timeStep) |
void | updateInvProjArtInertiaImplicitKinematic (const Eigen::Matrix6d &artInertia, double timeStep) |
void | addChildBiasForceToDynamic (Eigen::Vector6d &parentBiasForce, const Eigen::Matrix6d &childArtInertia, const Eigen::Vector6d &childBiasForce, const Eigen::Vector6d &childPartialAcc) |
void | addChildBiasForceToKinematic (Eigen::Vector6d &parentBiasForce, const Eigen::Matrix6d &childArtInertia, const Eigen::Vector6d &childBiasForce, const Eigen::Vector6d &childPartialAcc) |
void | addChildBiasImpulseToDynamic (Eigen::Vector6d &parentBiasImpulse, const Eigen::Matrix6d &childArtInertia, const Eigen::Vector6d &childBiasImpulse) |
void | addChildBiasImpulseToKinematic (Eigen::Vector6d &parentBiasImpulse, const Eigen::Matrix6d &childArtInertia, const Eigen::Vector6d &childBiasImpulse) |
void | updateTotalForceDynamic (const Eigen::Vector6d &bodyForce, double timeStep) |
void | updateTotalForceKinematic (const Eigen::Vector6d &bodyForce, double timeStep) |
void | updateTotalImpulseDynamic (const Eigen::Vector6d &bodyImpulse) |
void | updateTotalImpulseKinematic (const Eigen::Vector6d &bodyImpulse) |
void | updateAccelerationDynamic (const Eigen::Matrix6d &artInertia, const Eigen::Vector6d &spatialAcc) |
void | updateAccelerationKinematic (const Eigen::Matrix6d &artInertia, const Eigen::Vector6d &spatialAcc) |
void | updateVelocityChangeDynamic (const Eigen::Matrix6d &artInertia, const Eigen::Vector6d &velocityChange) |
void | updateVelocityChangeKinematic (const Eigen::Matrix6d &artInertia, const Eigen::Vector6d &velocityChange) |
void | updateConstrainedTermsDynamic (double timeStep) |
void | updateConstrainedTermsKinematic (double timeStep) |
class FreeJoint
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
delete |
|
virtual |
Destructor.
|
protected |
Constructor called by Skeleton class.
|
overrideprotectedinherited |
|
overrideprotectedinherited |
|
privateinherited |
|
privateinherited |
|
overrideprotectedinherited |
|
privateinherited |
|
privateinherited |
|
overrideprotectedinherited |
|
overrideprotectedinherited |
|
overrideprotectedinherited |
|
privateinherited |
|
privateinherited |
|
overrideprotectedinherited |
|
privateinherited |
|
privateinherited |
|
overrideprotectedinherited |
|
overrideprotectedinherited |
|
overrideprotectedinherited |
|
overrideprotected |
|
overrideinherited |
|
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.
|
static |
Convert a FreeJoint-style 6D vector into a transform.
|
inherited |
Copy the Properties of another GenericJoint.
|
inherited |
Copy the Properties of another GenericJoint.
|
inlineinherited |
Construct a(an) GenericJointAspect inside of this Composite.
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
inherited |
Fixed-size version of getAccelerations()
|
overrideinherited |
|
overrideinherited |
|
inlineinherited |
|
inlineinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
FreeJoint::Properties dart::dynamics::FreeJoint::getFreeJointProperties | ( | ) | const |
Get the Properties of this FreeJoint.
|
inlineinherited |
Get a(an) GenericJointAspect from this Composite.
|
inlineinherited |
Get a(an) GenericJointAspect from this Composite.
|
inlineinherited |
Get a(an) GenericJointAspect from this Composite.
If _createIfNull is true, then a(an) GenericJointAspect will be generated if one does not already exist.
|
inherited |
Get the Properties of this GenericJoint.
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideprotectedinherited |
|
overrideprotectedinherited |
|
protectedinherited |
Get the inverse of the projected articulated inertia.
|
protectedinherited |
Get the inverse of projected articulated inertia for implicit joint damping and spring forces.
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
override |
|
virtualinherited |
Fixed-size version of getPositionDifferences()
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
inherited |
Fixed-size version of getPositions()
|
overrideinherited |
|
overrideinherited |
|
protected |
Access mQ, which is an auto-updating variable.
|
overrideinherited |
|
overrideinherited |
|
inherited |
Fixed-size version of getRelativeJacobian()
|
override |
|
pure virtualinherited |
Fixed-size version of getRelativeJacobian(positions)
|
overrideinherited |
|
inherited |
Fixed-size version of getRelativeJacobianTimeDeriv()
|
overrideinherited |
|
overrideprotectedinherited |
|
overrideinherited |
|
static |
Get joint type for this class.
|
override |
|
overrideinherited |
|
inherited |
Fixed-size version of getVelocities()
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
inlineinherited |
Check if this Composite currently has GenericJointAspect .
|
overrideinherited |
|
overrideprotected |
|
overrideinherited |
|
override |
|
overrideinherited |
|
overrideinherited |
|
overrideprotectedinherited |
|
inlineinherited |
Remove a(an) GenericJointAspect from this Composite, but return its unique_ptr instead of letting it be deleted.
This allows you to safely use move semantics to transfer a(an) GenericJointAspect between two Composites.
|
inlineinherited |
Remove a(an) GenericJointAspect from this Composite.
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideprotectedinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
inherited |
Fixed-size version of setAccelerations()
|
overrideinherited |
|
overrideinherited |
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.
[in] | newAngularAcceleration | |
[in] | relativeTo | The relative frame of "newAngularAcceleration". |
[in] | inCoordinatesOf | The reference frame of "newAngularAcceleration". |
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.
[in] | newAngularVelocity | |
[in] | relativeTo | The relative frame of "newAngularVelocity". |
[in] | inCoordinatesOf | The reference frame of "newAngularVelocity". |
|
inherited |
Set the AspectProperties of this GenericJoint.
|
inherited |
Set the AspectState of this GenericJoint.
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
inlineinherited |
Make a clone of GenericJointAspect and place the clone into this Composite.
If a(an) GenericJointAspect already exists in this Composite, the existing GenericJointAspect will be destroyed.
|
inlineinherited |
Use move semantics to place GenericJointAspect into this Composite.
If a(an) GenericJointAspect already exists in this Composite, the existing GenericJointAspect will be destroyed.
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
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.
[in] | newLinearAcceleration | |
[in] | relativeTo | The relative frame of "newLinearAcceleration". |
[in] | inCoordinatesOf | The reference frame of "newLinearAcceleration". |
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.
[in] | newLinearVelocity | |
[in] | relativeTo | The relative frame of "newLinearVelocity". |
[in] | inCoordinatesOf | The reference frame of "newLinearVelocity". |
|
overrideprotectedinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
inherited |
Fixed-size version of setPositions()
|
overrideinherited |
|
overrideinherited |
|
inherited |
Set the Properties of this GenericJoint.
|
inherited |
Set the Properties of this GenericJoint.
void dart::dynamics::FreeJoint::setRelativeSpatialAcceleration | ( | const Eigen::Vector6d & | newSpatialAcceleration | ) |
void dart::dynamics::FreeJoint::setRelativeSpatialAcceleration | ( | const Eigen::Vector6d & | newSpatialAcceleration, |
const Frame * | inCoordinatesOf | ||
) |
void dart::dynamics::FreeJoint::setRelativeSpatialVelocity | ( | const Eigen::Vector6d & | newSpatialVelocity | ) |
void dart::dynamics::FreeJoint::setRelativeSpatialVelocity | ( | const Eigen::Vector6d & | newSpatialVelocity, |
const Frame * | inCoordinatesOf | ||
) |
void dart::dynamics::FreeJoint::setRelativeTransform | ( | const Eigen::Isometry3d & | newTransform | ) |
|
overrideinherited |
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.
[in] | newSpatialAcceleration | Desired spatial acceleration of the child BodyNode. |
[in] | relativeTo | The relative frame of "newSpatialAcceleration". |
[in] | inCoordinatesOf | The reference frame of "newSpatialAcceleration". |
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.
[in] | newTransform | Desired transform of the child BodyNode. |
[in] | withRespectTo | The relative Frame of "newTransform". |
[in] | newSpatialVelocity | Desired spatial velocity of the child BodyNode. |
[in] | velRelativeTo | The relative frame of "newSpatialVelocity". |
[in] | velInCoordinatesOf | The reference frame of "newSpatialVelocity". |
[in] | newSpatialAcceleration | Desired spatial acceleration of the child BodyNode. |
[in] | accRelativeTo | The relative frame of "newSpatialAcceleration". |
[in] | accInCoordinatesOf | The reference frame of "newSpatialAcceleration". |
void dart::dynamics::FreeJoint::setSpatialVelocity | ( | const Eigen::Vector6d & | newSpatialVelocity, |
const Frame * | relativeTo, | ||
const Frame * | inCoordinatesOf | ||
) |
|
overrideinherited |
|
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".
void dart::dynamics::FreeJoint::setTransform | ( | const Eigen::Isometry3d & | newTransform, |
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".
|
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().
|
static |
|
static |
|
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().
|
overrideinherited |
|
inherited |
Fixed-size version of setVelocities()
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideinherited |
|
overrideprotectedinherited |
|
privateinherited |
|
privateinherited |
|
overrideprotectedinherited |
|
privateinherited |
|
privateinherited |
|
overrideprotected |
|
overrideprotectedinherited |
|
overrideprotectedinherited |
|
overrideprotectedinherited |
|
overrideprotectedinherited |
|
overrideprotectedinherited |
|
privateinherited |
|
overrideprotectedinherited |
|
privateinherited |
|
privateinherited |
|
privateinherited |
|
overrideprotected |
|
overrideprotected |
|
overrideprotectedinherited |
|
overrideprotectedinherited |
|
overrideprotectedinherited |
|
overrideprotected |
|
overrideprotectedinherited |
|
privateinherited |
|
overrideprotectedinherited |
|
privateinherited |
|
overrideprotectedinherited |
|
privateinherited |
|
privateinherited |
|
overrideprotectedinherited |
|
privateinherited |
|
privateinherited |
|
friend |
|
protectedinherited |
Aspect::Properties data, directly accessible to your derived class.
|
protectedinherited |
Aspect::State data, directly accessible to your derived class.
|
protectedinherited |
Generalized constraint impulse.
|
protectedinherited |
Array of DegreeOfFreedom objects.
|
protectedinherited |
Generalized impulse.
|
protectedinherited |
|
protectedinherited |
|
mutableprotectedinherited |
Inverse of projected articulated inertia.
Do not use directly! Use getInvProjArtInertia() to get this quantity
|
mutableprotectedinherited |
Inverse of projected articulated inertia for implicit joint damping and spring forces.
Do not use directly! Use getInvProjArtInertiaImplicit() to access this quantity
|
mutableprotectedinherited |
Spatial Jacobian expressed in the child body frame.
Do not use directly! Use getRelativeJacobianStatic() to access this quantity
|
mutableprotectedinherited |
Time derivative of spatial Jacobian expressed in the child body frame.
Do not use directly! Use getRelativeJacobianTimeDerivStatic() to access this quantity
|
mutableprotected |
Transformation matrix dependent on generalized coordinates.
Do not use directly! Use getQ() to access this
|
protectedinherited |
Total force projected on joint space.
|
protectedinherited |
Total impluse projected on joint space.
|
protectedinherited |
Change of generalized velocity.
|
staticconstexprinherited |