75 inline const std::string &
name() const noexcept {
return name_; }
79 {
return parent_ ? position_ * parent_->position() : position_; }
84 if(!parent_) {
return velocity_; }
85 auto vel = parent_->velocity();
86 auto X_0_p = parent_->position();
87 vel.
linear() += -
hat(X_0_p.rotation().transpose() * position_.translation()) * vel.angular();
124 if(!tvm_frame_) { init_tvm_frame(); }
static MotionVec< T > Zero()
const vector3_t & linear() const
std::optional< Eigen::VectorXd > velocity
#define MC_RBDYN_DLLAPI
Definition: api.h:50
Definition: generic_gripper.h:15
std::shared_ptr< Frame > FramePtr
Definition: fwd.h:28
Eigen::Matrix3d hat(const Eigen::Vector3d &v)
Definition: hat.h:12
std::unique_ptr< Frame > FramePtr
Definition: fwd.h:19
Frame & velocity(sva::MotionVecd velocity) noexcept
Definition: Frame.h:109
mc_tvm::Frame & tvm_frame() const
Definition: Frame.h:122
Frame(NewFrameToken, const std::string &name, Frame &parent, sva::PTransformd X_p_f, bool bake) noexcept
Frame & operator=(Frame &&)=delete
mc_tvm::FramePtr tvm_frame_
Definition: Frame.h:141
Frame & position(sva::PTransformd pos) noexcept
Definition: Frame.h:97
std::string name_
Definition: Frame.h:130
const std::string & name() const noexcept
Definition: Frame.h:75
Frame(NewFrameToken, const std::string &name) noexcept
Frame & operator=(const Frame &)=delete
static FramePtr make(const std::string &name) noexcept
Definition: Frame.h:53
virtual sva::MotionVecd velocity() const noexcept
Definition: Frame.h:82
virtual void init_tvm_frame() const
const FramePtr & parent() const noexcept
Definition: Frame.h:116
static FramePtr make(const std::string &name, Frame &parent, sva::PTransformd X_p_f, bool baked)
virtual sva::PTransformd position() const noexcept
Definition: Frame.h:78
Frame(const Frame &)=delete