33 #ifndef DART_DYNAMICS_SIMPLEFRAME_HPP_ 34 #define DART_DYNAMICS_SIMPLEFRAME_HPP_ 36 #include "dart/dynamics/ShapeNode.hpp" 54 DART_DEFINE_ALIGNED_SHARED_OBJECT_CREATOR(
SimpleFrame)
58 Frame* _refFrame = Frame::World(),
59 const std::string& _name =
"simple_frame",
60 const Eigen::Isometry3d& _relativeTransform
61 = Eigen::Isometry3d::Identity());
72 const std::string&
setName(
const std::string& _name)
override;
75 const std::string&
getName()
const override;
80 std::shared_ptr<SimpleFrame>
clone(
Frame* _refFrame = Frame::World())
const;
87 const Frame& _otherFrame,
88 Frame* _refFrame = Frame::World(),
89 bool _copyProperties =
true);
93 const Frame* _otherFrame,
94 Frame* _refFrame = Frame::World(),
95 bool _copyProperties =
true);
106 const std::string& name =
"SimpleFrame",
107 const Eigen::Isometry3d& relativeTransform
108 = Eigen::Isometry3d::Identity());
127 const Eigen::Isometry3d& _newTransform,
128 const Frame* _withRespectTo = Frame::World());
134 const Eigen::Vector3d& _newTranslation,
135 const Frame* _withRespectTo = Frame::World());
141 const Eigen::Matrix3d& _newRotation,
142 const Frame* _withRespectTo = Frame::World());
167 const Eigen::Vector6d& _newSpatialVelocity,
168 const Frame* _inCoordinatesOf);
183 const Eigen::Vector6d& _newSpatialAcceleration);
188 const Eigen::Vector6d& _newSpatialAcceleration,
189 const Frame* _inCoordinatesOf);
218 const Eigen::Vector3d& _linearVelocity = Eigen::Vector3d::Zero(),
219 const Eigen::Vector3d& _angularVelocity = Eigen::Vector3d::Zero(),
220 const Eigen::Vector3d& _linearAcceleration = Eigen::Vector3d::Zero(),
221 const Eigen::Vector3d& _angularAcceleration = Eigen::Vector3d::Zero());
241 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
247 #endif // DART_DYNAMICS_SIMPLEFRAME_HPP_ const std::string & getName() const override
Return the name of this Entity.
Definition: SimpleFrame.cpp:95
void setRelativeTranslation(const Eigen::Vector3d &_newTranslation)
Set the relative translation of this SimpleFrame.
Definition: SimpleFrame.cpp:169
const Eigen::Vector6d & getRelativeSpatialAcceleration() const override
Get the spatial acceleration of this Frame relative to its parent Frame, in the coordinates of this F...
Definition: SimpleFrame.cpp:258
void setRelativeSpatialVelocity(const Eigen::Vector6d &_newSpatialVelocity)
Set the spatial velocity of this SimpleFrame relative to its parent Frame.
Definition: SimpleFrame.cpp:213
SimpleFrame & operator=(const SimpleFrame &_otherFrame)
Same as copy(const Frame&) except the parent frame of this SimpleFrame is left the same...
Definition: SimpleFrame.cpp:147
~SimpleFrame() override
Destructor.
Definition: SimpleFrame.cpp:74
void setTranslation(const Eigen::Vector3d &_newTranslation, const Frame *_withRespectTo=Frame::World())
Set the translation of this SimpleFrame so that its translation with respect to Frame _withRespectTo ...
Definition: SimpleFrame.cpp:191
Eigen::Isometry3d mRelativeTf
Relative transform of the SimpleFrame.
Definition: SimpleFrame.hpp:228
void setRotation(const Eigen::Matrix3d &_newRotation, const Frame *_withRespectTo=Frame::World())
Set the rotation of this SimpleFrame so that its rotation with respect to Frame _withRespectTo is equ...
Definition: SimpleFrame.cpp:199
const Eigen::Vector6d & getPartialAcceleration() const override
The Featherstone ABI algorithm exploits a component of the spatial acceleration which we refer to as ...
Definition: SimpleFrame.cpp:270
The Frame class serves as the backbone of DART's kinematic tree structure.
Definition: Frame.hpp:57
void setRelativeTransform(const Eigen::Isometry3d &_newRelTransform)
Set the relative transform of this SimpleFrame.
Definition: SimpleFrame.cpp:161
const Eigen::Vector6d & getPrimaryRelativeAcceleration() const override
The Featherstone ABI algorithm exploits a component of the spatial acceleration which we refer to as ...
Definition: SimpleFrame.cpp:264
const std::string & setName(const std::string &_name) override
Set name.
Definition: SimpleFrame.cpp:80
Definition: Aspect.cpp:40
std::string mName
Name of this SimpleFrame.
Definition: SimpleFrame.hpp:225
const Eigen::Vector6d & getRelativeSpatialVelocity() const override
Get the spatial velocity of this Frame relative to its parent Frame, in its own coordinates.
Definition: SimpleFrame.cpp:232
void setTransform(const Eigen::Isometry3d &_newTransform, const Frame *_withRespectTo=Frame::World())
Set the transform of this SimpleFrame so that its transform with respect to Frame _withRespectTo is e...
Definition: SimpleFrame.cpp:183
SimpleFrame(Frame *_refFrame=Frame::World(), const std::string &_name="simple_frame", const Eigen::Isometry3d &_relativeTransform=Eigen::Isometry3d::Identity())
Constructor.
Definition: SimpleFrame.cpp:41
void setClassicDerivatives(const Eigen::Vector3d &_linearVelocity=Eigen::Vector3d::Zero(), const Eigen::Vector3d &_angularVelocity=Eigen::Vector3d::Zero(), const Eigen::Vector3d &_linearAcceleration=Eigen::Vector3d::Zero(), const Eigen::Vector3d &_angularAcceleration=Eigen::Vector3d::Zero())
Set the relative velocity and acceleration of this Frame according to classical (non-spatial) relativ...
Definition: SimpleFrame.cpp:278
void setRelativeSpatialAcceleration(const Eigen::Vector6d &_newSpatialAcceleration)
Set the spatial acceleration of this SimpleFrame relative to its parent Frame.
Definition: SimpleFrame.cpp:238
void setRelativeRotation(const Eigen::Matrix3d &_newRotation)
Set the relative rotation of this SimpleFrame.
Definition: SimpleFrame.cpp:176
Eigen::Vector6d mPartialAcceleration
Partial Acceleration of this Frame.
Definition: SimpleFrame.hpp:237
std::shared_ptr< SimpleFrame > spawnChildSimpleFrame(const std::string &name="SimpleFrame", const Eigen::Isometry3d &relativeTransform=Eigen::Isometry3d::Identity())
Spawn a child SimpleFrame to this SimpleFrame.
Definition: SimpleFrame.cpp:154
Definition: ShapeFrame.hpp:189
const Eigen::Isometry3d & getRelativeTransform() const override
Get the transform of this Frame with respect to its parent Frame.
Definition: SimpleFrame.cpp:207
Eigen::Vector6d mRelativeAcceleration
Relative spatial acceleration of the SimpleFrame.
Definition: SimpleFrame.hpp:234
Eigen::Vector6d mRelativeVelocity
Relative spatial velocity of the SimpleFrame.
Definition: SimpleFrame.hpp:231
The Detachable class is a special case of the Entity base class.
Definition: Entity.hpp:237
std::shared_ptr< SimpleFrame > clone(Frame *_refFrame=Frame::World()) const
Create a new SimpleFrame with the same world transform, velocity, and acceleration as this one...
Definition: SimpleFrame.cpp:101
The SimpleFrame class offers a user-friendly way of creating arbitrary Frames within the kinematic tr...
Definition: SimpleFrame.hpp:51
void copy(const Frame &_otherFrame, Frame *_refFrame=Frame::World(), bool _copyProperties=true)
Make the world transform, world velocity, and world acceleration of this SimpleFrame match another Fr...
Definition: SimpleFrame.cpp:107