multibody/data.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2015-2022 CNRS INRIA
3 // Copyright (c) 2015 Wandercraft, 86 rue de Paris 91400 Orsay, France.
4 //
5 
6 #ifndef __pinocchio_multibody_data_hpp__
7 #define __pinocchio_multibody_data_hpp__
8 
10 
19 
21 
22 #include <iostream>
23 #include <Eigen/Cholesky>
24 
25 namespace pinocchio
26 {
27 
28  template<typename _Scalar, int _Options, template<typename,int> class JointCollectionTpl>
29  struct DataTpl
30  : serialization::Serializable< DataTpl<_Scalar,_Options,JointCollectionTpl> >
31  {
32  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
33 
34  typedef _Scalar Scalar;
35  enum { Options = _Options };
36 
37  typedef JointCollectionTpl<Scalar,Options> JointCollection;
38 
40 
46 
51  typedef std::vector<Index> IndexVector;
52 
55 
56  typedef PINOCCHIO_ALIGNED_STD_VECTOR(JointModel) JointModelVector;
57  typedef PINOCCHIO_ALIGNED_STD_VECTOR(JointData) JointDataVector;
58 
59  typedef Eigen::Matrix<Scalar,Eigen::Dynamic,Eigen::Dynamic,Options> MatrixXs;
60  typedef Eigen::Matrix<Scalar,Eigen::Dynamic,1,Options> VectorXs;
61  typedef Eigen::Matrix<Scalar,3,1,Options> Vector3;
62  typedef Eigen::Matrix<Scalar, 6, 1, Options> Vector6c;
63  typedef Eigen::Matrix<Scalar, 1, 6, Eigen::RowMajor | Options> Vector6r;
64 
67 
71 
73  typedef Eigen::Matrix<Scalar,6,Eigen::Dynamic,Options> Matrix6x;
75  typedef Eigen::Matrix<Scalar,3,Eigen::Dynamic,Options> Matrix3x;
76 
77  typedef Eigen::Matrix<Scalar,6,6,Options> Matrix6;
78  typedef Eigen::Matrix<Scalar,6,6,Eigen::RowMajor | Options> RowMatrix6;
79  typedef Eigen::Matrix<Scalar,Eigen::Dynamic,Eigen::Dynamic,Eigen::RowMajor | Options> RowMatrixXs;
80 
82  typedef Eigen::Matrix<Scalar,6,10,Options> BodyRegressorType;
83 
86 
89  JointDataVector joints;
90 
93 
96 
99 
102 
105 
108 
112 
116 
119 
122 
125 
128 
131 
136 
141 
144 
148 
150  PINOCCHIO_ALIGNED_STD_VECTOR(Matrix6) dYcrb; // TODO: change with dense symmetric matrix6
151 
154 
157 
160 
163 
166 
169 
172 
175 
178 
181 
184 
187 
190 
193 
196 
199 
202 
207 
210 
211  // ABA internal data
213  PINOCCHIO_ALIGNED_STD_VECTOR(Matrix6) Yaba; // TODO: change with dense symmetric matrix6
214 
216  TangentVectorType u; // Joint Inertia
217 
218  // CCRBA return quantities
222 
223  // dCCRBA return quantities
227 
233 
239 
243 
246 
248  std::vector<int> lastChild;
249 
251  std::vector<int> nvSubtree;
252 
254  std::vector<int> start_idx_v_fromRow;
255 
257  std::vector<int> end_idx_v_fromRow;
258 
261 
264 
267 
270 
272  std::vector<int> parents_fromRow;
273 
276  std::vector< std::vector<int> > supports_fromRow;
277 
279  std::vector<int> nvSubtree_fromRow;
280 
284 
287 
290 
294 
298 
301 
304 
307 
310 
313 
316 
319 
322 
325 
328 
331 
333  std::vector<Scalar> mass;
334 
338 
341 
344 
345  // Temporary variables used in forward dynamics
346 
349 
351  Eigen::LLT<MatrixXs> llt_JMinvJt;
352 
355 
358 
361 
364 
367 
370 
373 
376 
379 
383 
387 
391 
397 
403  explicit DataTpl(const Model & model);
404 
408  DataTpl() {}
409 
410  private:
411  void computeLastChild(const Model & model);
412  void computeParents_fromRow(const Model & model);
413  void computeSupports_fromRow(const Model & model);
414 
415  };
416 
417 } // namespace pinocchio
418 
419 /* --- Details -------------------------------------------------------------- */
420 /* --- Details -------------------------------------------------------------- */
421 /* --- Details -------------------------------------------------------------- */
422 #include "pinocchio/multibody/data.hxx"
423 
424 #endif // ifndef __pinocchio_multibody_data_hpp__
425 
pinocchio::DataTpl::d2tau_dvdv
Tensor3x d2tau_dvdv
SO Partial derivative of the joint torque vector with respect to the joint velocity.
Definition: multibody/data.hpp:386
pinocchio::DataTpl::TangentVectorType
VectorXs TangentVectorType
Dense vectorized version of a joint tangent vector (e.g. velocity, acceleration, etc)....
Definition: multibody/data.hpp:70
pinocchio::DataTpl::M
MatrixXs M
The joint space inertia matrix (a square matrix of dim model.nv).
Definition: multibody/data.hpp:153
pinocchio::DataTpl::parents_fromRow
std::vector< int > parents_fromRow
First previous non-zero row in M (used in Cholesky Decomposition).
Definition: multibody/data.hpp:272
pinocchio::DataTpl::Scalar
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar
Definition: multibody/data.hpp:34
pinocchio::DataTpl::ddq
TangentVectorType ddq
The joint accelerations computed from ABA.
Definition: multibody/data.hpp:209
pinocchio::DataTpl::JMinvJt
MatrixXs JMinvJt
Inverse of the operational-space inertia matrix.
Definition: multibody/data.hpp:348
pinocchio::FrameIndex
Index FrameIndex
Definition: multibody/fwd.hpp:30
pinocchio::DataTpl::dFdq
Matrix6x dFdq
Variation of the forceset with respect to the joint configuration.
Definition: multibody/data.hpp:165
fwd.hpp
pinocchio::DataTpl::computeLastChild
void computeLastChild(const Model &model)
pinocchio::DataTpl::d2tau_dqdq
Tensor3x d2tau_dqdq
SO Partial derivative of the joint torque vector with respect to the joint configuration.
Definition: multibody/data.hpp:382
pinocchio::DataTpl::GeomIndex
pinocchio::GeomIndex GeomIndex
Definition: multibody/data.hpp:49
pinocchio::DataTpl::g
VectorXs g
Vector of generalized gravity (dim model.nv).
Definition: multibody/data.hpp:140
pinocchio::DataTpl::PINOCCHIO_ALIGNED_STD_VECTOR
typedef PINOCCHIO_ALIGNED_STD_VECTOR(JointModel) JointModelVector
pinocchio::DataTpl::M6tmpR2
RowMatrix6 M6tmpR2
Definition: multibody/data.hpp:206
pinocchio::DataTpl::supports_fromRow
std::vector< std::vector< int > > supports_fromRow
Each element of this vector corresponds to the ordered list of indexes belonging to the supporting tr...
Definition: multibody/data.hpp:276
pinocchio::DataTpl::UDinv
Matrix6x UDinv
Used in computeMinverse.
Definition: multibody/data.hpp:177
pinocchio::DataTpl
Definition: multibody/data.hpp:29
pinocchio::DataTpl::M6tmp
Matrix6 M6tmp
Temporary for derivative algorithms.
Definition: multibody/data.hpp:204
pinocchio::DataTpl::MatrixXs
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic, Options > MatrixXs
Definition: multibody/data.hpp:59
pinocchio::DataTpl::dAdv
Matrix6x dAdv
Variation of the spatial acceleration set with respect to the joint velocity.
Definition: multibody/data.hpp:306
pinocchio::DataTpl::dAg
Matrix6x dAg
Centroidal Momentum Matrix Time Variation.
Definition: multibody/data.hpp:226
pinocchio::DataTpl::mass
std::vector< Scalar > mass
Vector of subtree mass. In other words, mass[j] is the mass of the subtree supported by joint ....
Definition: multibody/data.hpp:333
pinocchio::DataTpl::dhg
Force dhg
Centroidal momentum time derivative.
Definition: multibody/data.hpp:238
pinocchio::DataTpl::JointIndex
pinocchio::JointIndex JointIndex
Definition: multibody/data.hpp:48
pinocchio::DataTpl::dJ
Matrix6x dJ
Derivative of the Jacobian with respect to the time.
Definition: multibody/data.hpp:286
pinocchio::DataTpl::RowMatrixXs
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor|Options > RowMatrixXs
Definition: multibody/data.hpp:79
B
B
aligned-vector.hpp
pinocchio::DataTpl::ConfigVectorType
VectorXs ConfigVectorType
Dense vectorized version of a joint configuration vector.
Definition: multibody/data.hpp:66
pinocchio::DataTpl::d2tau_dqdv
Tensor3x d2tau_dqdv
SO Cross-Partial derivative of the joint torque vector with respect to the joint configuration/veloci...
Definition: multibody/data.hpp:390
pinocchio::DataTpl::kinetic_energy
Scalar kinetic_energy
Kinetic energy of the model.
Definition: multibody/data.hpp:340
pinocchio::SE3Tpl< Scalar, Options >
pinocchio::DataTpl::jointTorqueRegressor
MatrixXs jointTorqueRegressor
Matrix related to joint torque regressor.
Definition: multibody/data.hpp:375
pinocchio::DataTpl::dFdv
Matrix6x dFdv
Variation of the forceset with respect to the joint velocity.
Definition: multibody/data.hpp:168
pinocchio::DataTpl::kinematic_hessians
Tensor3x kinematic_hessians
Tensor containing the kinematic Hessian of all the joints.
Definition: multibody/data.hpp:378
serializable.hpp
inertia.hpp
pinocchio::DataTpl::FrameIndex
pinocchio::FrameIndex FrameIndex
Definition: multibody/data.hpp:50
pinocchio::DataTpl::lambda_c
VectorXs lambda_c
Lagrange Multipliers corresponding to the contact forces in pinocchio::forwardDynamics.
Definition: multibody/data.hpp:354
pinocchio::JointDataTpl
Definition: multibody/joint/fwd.hpp:97
pinocchio::DataTpl::dtau_dv
MatrixXs dtau_dv
Partial derivative of the joint torque vector with respect to the joint velocity.
Definition: multibody/data.hpp:312
pinocchio::DataTpl::u
TangentVectorType u
Intermediate quantity corresponding to apparent torque [ABA].
Definition: multibody/data.hpp:216
pinocchio::DataTpl::nvSubtree
std::vector< int > nvSubtree
Dimension of the subtree motion space (for CRBA)
Definition: multibody/data.hpp:251
motion.hpp
pinocchio::DataTpl::dFda
Matrix6x dFda
Variation of the forceset with respect to the joint acceleration.
Definition: multibody/data.hpp:171
pinocchio::DataTpl::ddJ
Matrix6x ddJ
Second derivative of the Jacobian with respect to the time.
Definition: multibody/data.hpp:289
pinocchio::DataTpl::joints
JointDataVector joints
Vector of pinocchio::JointData associated to the pinocchio::JointModel stored in model,...
Definition: multibody/data.hpp:89
pinocchio::DataTpl::SDinv
Matrix6x SDinv
Used in computeMinverse.
Definition: multibody/data.hpp:174
pinocchio::DataTpl::end_idx_v_fromRow
std::vector< int > end_idx_v_fromRow
End index of the Joint motion subspace.
Definition: multibody/data.hpp:257
pinocchio::DataTpl::Itmp
Matrix6 Itmp
Temporary for derivative algorithms.
Definition: multibody/data.hpp:201
pinocchio::DataTpl::Matrix6
Eigen::Matrix< Scalar, 6, 6, Options > Matrix6
Definition: multibody/data.hpp:77
pinocchio::DataTpl::sDUiJt
MatrixXs sDUiJt
Temporary corresponding to .
Definition: multibody/data.hpp:357
pinocchio::DataTpl::Vector6c
Eigen::Matrix< Scalar, 6, 1, Options > Vector6c
Definition: multibody/data.hpp:62
pinocchio::FrameTpl
A Plucker coordinate frame attached to a parent joint inside a kinematic tree.
Definition: multibody/frame.hpp:41
pinocchio::DataTpl::BodyRegressorType
Eigen::Matrix< Scalar, 6, 10, Options > BodyRegressorType
The type of the body regressor.
Definition: multibody/data.hpp:82
pinocchio::DataTpl::potential_energy
Scalar potential_energy
Potential energy of the model.
Definition: multibody/data.hpp:343
pinocchio::DataTpl::Force
ForceTpl< Scalar, Options > Force
Definition: multibody/data.hpp:43
pinocchio::DataTpl::staticRegressor
Matrix3x staticRegressor
Matrix related to static regressor.
Definition: multibody/data.hpp:369
pinocchio::DataTpl::C
MatrixXs C
The Coriolis matrix (a square matrix of dim model.nv).
Definition: multibody/data.hpp:159
pinocchio::DataTpl::JointCollection
JointCollectionTpl< Scalar, Options > JointCollection
Definition: multibody/data.hpp:37
pinocchio::DataTpl::SE3
SE3Tpl< Scalar, Options > SE3
Definition: multibody/data.hpp:41
pinocchio::DataTpl::computeSupports_fromRow
void computeSupports_fromRow(const Model &model)
pinocchio::DataTpl::d2tau_dadq
Tensor3x d2tau_dadq
SO Cross-Partial derivative of the joint torque vector with respect to the joint acceleration/configu...
Definition: multibody/data.hpp:396
pinocchio::DataTpl::JointModel
JointModelTpl< Scalar, Options, JointCollectionTpl > JointModel
Definition: multibody/data.hpp:53
pinocchio::DataTpl::Matrix6x
Eigen::Matrix< Scalar, 6, Eigen::Dynamic, Options > Matrix6x
The 6d jacobian type (temporary)
Definition: multibody/data.hpp:73
pinocchio::DataTpl::nvSubtree_fromRow
std::vector< int > nvSubtree_fromRow
Subtree of the current row index (used in Cholesky Decomposition).
Definition: multibody/data.hpp:279
pinocchio::DataTpl::Index
pinocchio::Index Index
Definition: multibody/data.hpp:47
joint-generic.hpp
se3.hpp
pinocchio::DataTpl::tau
TangentVectorType tau
Vector of joint torques (dim model.nv).
Definition: multibody/data.hpp:130
pinocchio::JointModelTpl
Definition: multibody/joint/fwd.hpp:93
pinocchio::DataTpl::Minv
RowMatrixXs Minv
The inverse of the joint space inertia matrix (a square matrix of dim model.nv).
Definition: multibody/data.hpp:156
pinocchio::ForceTpl< Scalar, Options >
pinocchio::DataTpl::psidd
Matrix6x psidd
psiddot Second Derivative of Jacobian w.r.t to the parent body moving a(p(j)) x Sj + v(p(j)) x psidj
Definition: multibody/data.hpp:297
pinocchio::DataTpl::Jcom
Matrix3x Jcom
Jacobian of center of mass.
Definition: multibody/data.hpp:337
pinocchio::Index
std::size_t Index
Definition: multibody/fwd.hpp:25
pinocchio::DataTpl::Frame
FrameTpl< Scalar, Options > Frame
Definition: multibody/data.hpp:45
pinocchio::DataTpl::IndexVector
std::vector< Index > IndexVector
Definition: multibody/data.hpp:51
pinocchio::DataTpl::psid
Matrix6x psid
psidot Derivative of Jacobian w.r.t to the parent body moving v(p(j)) x Sj
Definition: multibody/data.hpp:293
pinocchio::DataTpl::Ag
Matrix6x Ag
Centroidal Momentum Matrix.
Definition: multibody/data.hpp:221
pinocchio::DataTpl::VectorXs
Eigen::Matrix< Scalar, Eigen::Dynamic, 1, Options > VectorXs
Definition: multibody/data.hpp:60
pinocchio::DataTpl::Matrix3x
Eigen::Matrix< Scalar, 3, Eigen::Dynamic, Options > Matrix3x
The 3d jacobian type (temporary)
Definition: multibody/data.hpp:75
pinocchio::DataTpl::tmp
VectorXs tmp
Temporary of size NV used in Cholesky Decomposition.
Definition: multibody/data.hpp:269
pinocchio::DataTpl::Vector6r
Eigen::Matrix< Scalar, 1, 6, Eigen::RowMajor|Options > Vector6r
Definition: multibody/data.hpp:63
ur5x4.h
h
Definition: ur5x4.py:45
pinocchio::DataTpl::lastChild
std::vector< int > lastChild
Index of the last child (for CRBA)
Definition: multibody/data.hpp:248
pinocchio::DataTpl::start_idx_v_fromRow
std::vector< int > start_idx_v_fromRow
Starting index of the Joint motion subspace.
Definition: multibody/data.hpp:254
pinocchio::DataTpl::Dinv
VectorXs Dinv
Diagonal inverse of the joint space intertia matrix obtained by a Cholesky Decomposition.
Definition: multibody/data.hpp:266
a
Vec3f a
pinocchio::DataTpl::bodyRegressor
BodyRegressorType bodyRegressor
Body regressor.
Definition: multibody/data.hpp:372
pinocchio::v
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > const Eigen::MatrixBase< TangentVectorType > & v
Definition: joint-configuration.hpp:748
pinocchio::DataTpl::ddq_dv
MatrixXs ddq_dv
Partial derivative of the joint acceleration vector with respect to the joint velocity.
Definition: multibody/data.hpp:318
pinocchio::DataTpl::J
Matrix6x J
Jacobian of joint placements.
Definition: multibody/data.hpp:283
pinocchio::DataTpl::dq_after
TangentVectorType dq_after
Generalized velocity after impact.
Definition: multibody/data.hpp:363
pinocchio::DataTpl::Inertia
InertiaTpl< Scalar, Options > Inertia
Definition: multibody/data.hpp:44
pinocchio::DataTpl::Tensor3x
Tensor< Scalar, 3, Options > Tensor3x
&#160;
Definition: multibody/data.hpp:85
pinocchio::DataTpl::M6tmpR
RowMatrix6 M6tmpR
Definition: multibody/data.hpp:205
pinocchio::DataTpl::RowMatrix6
Eigen::Matrix< Scalar, 6, 6, Eigen::RowMajor|Options > RowMatrix6
Definition: multibody/data.hpp:78
pinocchio::DataTpl::llt_JMinvJt
Eigen::LLT< MatrixXs > llt_JMinvJt
Cholesky decompostion of .
Definition: multibody/data.hpp:351
pinocchio::DataTpl::hg
Force hg
Centroidal momentum quantity.
Definition: multibody/data.hpp:232
pinocchio::DataTpl::dHdq
Matrix6x dHdq
Variation of the spatial momenta with respect to the joint configuration.
Definition: multibody/data.hpp:162
pinocchio::DataTpl::U
MatrixXs U
Joint space intertia matrix square root (upper trianglular part) computed with a Cholesky Decompositi...
Definition: multibody/data.hpp:260
pinocchio::DataTpl::dtau_dq
MatrixXs dtau_dq
Partial derivative of the joint torque vector with respect to the joint configuration.
Definition: multibody/data.hpp:309
pinocchio::DataTpl::D
VectorXs D
Diagonal of the joint space intertia matrix obtained by a Cholesky Decomposition.
Definition: multibody/data.hpp:263
pinocchio::DataTpl::torque_residual
VectorXs torque_residual
Temporary corresponding to the residual torque .
Definition: multibody/data.hpp:360
pinocchio::DataTpl::Vector3
Eigen::Matrix< Scalar, 3, 1, Options > Vector3
Definition: multibody/data.hpp:61
pinocchio::DataTpl::Motion
MotionTpl< Scalar, Options > Motion
Definition: multibody/data.hpp:42
pinocchio::JointIndex
Index JointIndex
Definition: multibody/fwd.hpp:28
pinocchio::InertiaTpl< Scalar, Options >
pinocchio::DataTpl::DataTpl
DataTpl()
Default constructor.
Definition: multibody/data.hpp:408
pinocchio::DataTpl::IS
Matrix6x IS
Used in computeMinverse.
Definition: multibody/data.hpp:180
pinocchio::Tensor< Scalar, 3, Options >
pinocchio::DataTpl::computeParents_fromRow
void computeParents_fromRow(const Model &model)
pinocchio::MotionTpl< Scalar, Options >
pinocchio::ModelTpl< Scalar, Options, JointCollectionTpl >
tensor.hpp
force.hpp
pinocchio::DataTpl::Model
ModelTpl< Scalar, Options, JointCollectionTpl > Model
Definition: multibody/data.hpp:39
pinocchio::DataTpl::dVdq
Matrix6x dVdq
Variation of the spatial velocity set with respect to the joint configuration.
Definition: multibody/data.hpp:300
pinocchio::DataTpl::Ig
Inertia Ig
Centroidal Composite Rigid Body Inertia.
Definition: multibody/data.hpp:242
pinocchio::GeomIndex
Index GeomIndex
Definition: multibody/fwd.hpp:29
fwd.hpp
pinocchio::DataTpl::JointData
JointDataTpl< Scalar, Options, JointCollectionTpl > JointData
Definition: multibody/data.hpp:54
robot-wrapper-viewer.com
com
Definition: robot-wrapper-viewer.py:45
pinocchio::serialization::Serializable
Definition: serialization/serializable.hpp:16
pinocchio::DataTpl::impulse_c
VectorXs impulse_c
Lagrange Multipliers corresponding to the contact impulses in pinocchio::impulseDynamics.
Definition: multibody/data.hpp:366
pinocchio::model
JointCollectionTpl & model
Definition: joint-configuration.hpp:746
pinocchio::DataTpl::ddq_dq
MatrixXs ddq_dq
Partial derivative of the joint acceleration vector with respect to the joint configuration.
Definition: multibody/data.hpp:315
pinocchio::DataTpl::Options
@ Options
Definition: multibody/data.hpp:35
pinocchio
Main pinocchio namespace.
Definition: timings.cpp:28
pinocchio::DataTpl::nle
VectorXs nle
Vector of Non Linear Effects (dim model.nv). It corresponds to concatenation of the Coriolis,...
Definition: multibody/data.hpp:135
pinocchio::DataTpl::dAdq
Matrix6x dAdq
Variation of the spatial acceleration set with respect to the joint configuration.
Definition: multibody/data.hpp:303


pinocchio
Author(s):
autogenerated on Sun Apr 28 2024 02:41:51