33 #ifndef DART_DYNAMICS_FREEJOINT_HPP_
34 #define DART_DYNAMICS_FREEJOINT_HPP_
38 #include <Eigen/Dense>
72 const std::string&
getType()
const override;
78 bool isCyclic(std::size_t _index)
const override;
100 const
Eigen::Isometry3d& tf,
108 const
Eigen::Isometry3d& tf,
119 const
Eigen::Isometry3d& tf,
127 const
Eigen::Isometry3d& tf,
139 const
Eigen::Isometry3d& tf,
141 bool applyToAllRootBodies = true);
149 const
Eigen::Isometry3d& tf,
151 bool applyToAllRootBodies = true);
180 const
Eigen::Isometry3d* newTransform,
181 const
Frame* withRespectTo,
183 const
Frame* velRelativeTo,
184 const
Frame* velInCoordinatesOf,
186 const
Frame* accRelativeTo,
187 const
Frame* accInCoordinatesOf);
197 const
Eigen::Isometry3d& newTransform,
223 const
Frame* relativeTo,
224 const
Frame* inCoordinatesOf);
236 const
Eigen::Vector3d& newLinearVelocity,
238 const
Frame* inCoordinatesOf =
Frame::World());
250 const
Eigen::Vector3d& newAngularVelocity,
252 const
Frame* inCoordinatesOf =
Frame::World());
270 const
Frame* inCoordinatesOf);
281 const
Frame* relativeTo,
282 const
Frame* inCoordinatesOf);
294 const
Eigen::Vector3d& newLinearAcceleration,
296 const
Frame* inCoordinatesOf =
Frame::World());
309 const
Eigen::Vector3d& newAngularAcceleration,
311 const
Frame* inCoordinatesOf =
Frame::World());
356 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
#define DART_DEPRECATED(version)
Definition: Deprecated.hpp:51
#define DART_DEFINE_ALIGNED_SHARED_OBJECT_CREATOR(class_name)
Definition: Memory.hpp:155
BodyPropPtr properties
Definition: SdfParser.cpp:80
Terminator for the variadic template.
Definition: CompositeJoiner.hpp:45
BodyNode class represents a single node of the skeleton.
Definition: BodyNode.hpp:79
The Frame class serves as the backbone of DART's kinematic tree structure.
Definition: Frame.hpp:58
class FreeJoint
Definition: FreeJoint.hpp:48
void setRelativeTransform(const Eigen::Isometry3d &newTransform)
Set the transform of the child BodyNode relative to the parent BodyNode.
Definition: FreeJoint.cpp:186
Eigen::Vector6d getPositionDifferencesStatic(const Eigen::Vector6d &_q2, const Eigen::Vector6d &_q1) const override
Definition: FreeJoint.cpp:542
FreeJoint(const FreeJoint &)=delete
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...
Definition: FreeJoint.cpp:455
Properties getFreeJointProperties() const
Get the Properties of this FreeJoint.
Definition: FreeJoint.cpp:58
void updateDegreeOfFreedomNames() override
Definition: FreeJoint.cpp:599
static const std::string & getStaticType()
Get joint type for this class.
Definition: FreeJoint.cpp:576
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...
Definition: FreeJoint.cpp:90
void updateRelativeJacobian(bool _mandatory=true) const override
Definition: FreeJoint.cpp:627
void updateRelativeTransform() const override
Definition: FreeJoint.cpp:616
void setRelativeSpatialVelocity(const Eigen::Vector6d &newSpatialVelocity)
Set the spatial velocity of the child BodyNode relative to the parent BodyNode.
Definition: FreeJoint.cpp:205
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.
Definition: FreeJoint.cpp:283
void setRelativeSpatialAcceleration(const Eigen::Vector6d &newSpatialAcceleration)
Set the spatial acceleration of the child BodyNode relative to the parent BodyNode.
Definition: FreeJoint.cpp:357
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 ar...
Definition: FreeJoint.cpp:162
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 Fram...
Definition: FreeJoint.cpp:496
void updateRelativeJacobianTimeDeriv() const override
Definition: FreeJoint.cpp:635
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.
Definition: FreeJoint.cpp:386
void integratePositions(double _dt) override
Definition: FreeJoint.cpp:590
Joint * clone() const override
Definition: FreeJoint.cpp:564
const std::string & getType() const override
Definition: FreeJoint.cpp:570
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...
Definition: FreeJoint.cpp:83
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.
Definition: FreeJoint.cpp:320
static Eigen::Isometry3d convertToTransform(const Eigen::Vector6d &_positions)
Convert a FreeJoint-style 6D vector into a transform.
Definition: FreeJoint.cpp:73
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.
Definition: FreeJoint.cpp:64
const Eigen::Isometry3d & getQ() const
Access mQ, which is an auto-updating variable.
Definition: FreeJoint.cpp:641
Eigen::Isometry3d mQ
Transformation matrix dependent on generalized coordinates.
Definition: FreeJoint.hpp:352
virtual ~FreeJoint()
Destructor.
Definition: FreeJoint.cpp:52
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.
Definition: FreeJoint.cpp:230
bool isCyclic(std::size_t _index) const override
Definition: FreeJoint.cpp:583
Definition: GenericJoint.hpp:48
const GenericJoint< math::SE3Space >::JacobianMatrix & getRelativeJacobianStatic() const
Fixed-size version of getRelativeJacobian()
Definition: GenericJoint.hpp:1570
detail::GenericJointProperties< math::SE3Space > Properties
Definition: GenericJoint.hpp:62
class Joint
Definition: Joint.hpp:60
class Skeleton
Definition: Skeleton.hpp:59
Definition: Random-impl.hpp:92
Matrix< double, 6, 1 > Vector6d
Definition: MathTypes.hpp:49
Matrix< double, 6, 6 > Matrix6d
Definition: MathTypes.hpp:50
Definition: BulletCollisionDetector.cpp:65
Definition: FreeJoint.hpp:55
virtual ~Properties()=default
Properties(const Base::Properties &properties=Base::Properties())
Definition: FreeJoint.cpp:45