15 #include <SpaceVecAlg/SpaceVecAlg>
74 static FramePtr make(
const std::string & name,
Frame & parent, sva::PTransformd X_p_f,
bool baked);
77 inline const std::string &
name() const noexcept {
return name_; }
80 virtual inline sva::PTransformd
position() const noexcept
82 return parent_ ? position_ * parent_->position() : position_;
86 virtual inline sva::MotionVecd
velocity() const noexcept
88 if(!parent_) {
return velocity_; }
89 auto vel = parent_->velocity();
90 auto X_0_p = parent_->position();
91 vel.linear() += -
hat(X_0_p.rotation().transpose() * position_.translation()) * vel.angular();
115 velocity_ = velocity;
128 if(!tvm_frame_) { init_tvm_frame(); }
138 sva::PTransformd position_ = sva::PTransformd::Identity();
140 sva::MotionVecd velocity_ = sva::MotionVecd::Zero();
147 virtual void init_tvm_frame()
const;