RobotFrame.h
Go to the documentation of this file.
1 /*
2  * Copyright 2015-2022 CNRS-UM LIRMM, CNRS-AIST JRL
3  */
4 
5 #pragma once
6 
7 #include <mc_tvm/Frame.h>
8 
9 #include <mc_rbdyn/RobotFrame.h>
10 
11 namespace mc_tvm
12 {
13 
28 {
29  SET_OUTPUTS(RobotFrame, Jacobian, NormalAcceleration, JDot)
30  SET_UPDATES(RobotFrame, Jacobian, NormalAcceleration, JDot)
31 
32  friend struct mc_rbdyn::RobotFrame;
33 
34 protected:
36  {
37  };
38 
39 public:
41 
43  inline const tvm::internal::MatrixWithProperties & jacobian() const noexcept { return jacobian_; }
44 
46  inline const sva::MotionVecd & normalAcceleration() const noexcept { return normalAcceleration_; }
47 
49  inline const tvm::internal::MatrixWithProperties & JDot() const noexcept { return jacDot_; }
50 
59  inline const rbd::Jacobian & rbdJacobian() const noexcept { return jac_; }
60 
62  inline const mc_rbdyn::RobotFrame & frame() const noexcept
63  {
64  return static_cast<const mc_rbdyn::RobotFrame &>(frame_);
65  }
66 
67 protected:
68  Eigen::Matrix3d h_ = Eigen::Matrix3d::Zero();
69 
70  rbd::Jacobian jac_;
71  rbd::Blocks blocks_;
72 
73  Eigen::MatrixXd jacTmp_;
74 
75  tvm::internal::MatrixWithProperties jacobian_;
76  void updateJacobian();
77 
78  sva::MotionVecd normalAcceleration_;
79  void updateNormalAcceleration();
80 
81  tvm::internal::MatrixWithProperties jacDot_;
82  void updateJDot();
83 };
84 
85 } // namespace mc_tvm
RobotFrame.h
Frame.h
mc_tvm::RobotFrame::normalAcceleration
const sva::MotionVecd & normalAcceleration() const noexcept
Definition: RobotFrame.h:46
mc_tvm::RobotFrame::normalAcceleration_
sva::MotionVecd normalAcceleration_
Definition: RobotFrame.h:78
mc_tvm::RobotFrame::jac_
rbd::Jacobian jac_
Definition: RobotFrame.h:70
MC_TVM_DLLAPI
#define MC_TVM_DLLAPI
Definition: api.h:47
mc_tvm
Definition: CollisionFunction.h:15
mc_tvm::RobotFrame::jacobian
const tvm::internal::MatrixWithProperties & jacobian() const noexcept
Definition: RobotFrame.h:43
mc_tvm::RobotFrame::jacDot_
tvm::internal::MatrixWithProperties jacDot_
Definition: RobotFrame.h:81
mc_rbdyn::RobotFrame
Definition: RobotFrame.h:21
mc_tvm::Frame::NewFrameToken
Definition: Frame.h:41
mc_tvm::RobotFrame
Definition: RobotFrame.h:27
mc_tvm::RobotFrame::NewRobotFrameToken
Definition: RobotFrame.h:35
mc_tvm::RobotFrame::JDot
const tvm::internal::MatrixWithProperties & JDot() const noexcept
Definition: RobotFrame.h:49
mc_tvm::RobotFrame::frame
const mc_rbdyn::RobotFrame & frame() const noexcept
Definition: RobotFrame.h:62
mc_tvm::RobotFrame::rbdJacobian
const rbd::Jacobian & rbdJacobian() const noexcept
Definition: RobotFrame.h:59
mc_tvm::Frame
Definition: Frame.h:33
mc_tvm::RobotFrame::blocks_
rbd::Blocks blocks_
Definition: RobotFrame.h:71
mc_tvm::RobotFrame::jacTmp_
Eigen::MatrixXd jacTmp_
Definition: RobotFrame.h:73
mc_rbdyn
Definition: generic_gripper.h:14
mc_tvm::RobotFrame::jacobian_
tvm::internal::MatrixWithProperties jacobian_
Definition: RobotFrame.h:75