timings.cpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2015-2020 CNRS INRIA
3 //
4 
7 
19 
22 
23 #include <iostream>
24 
26 
27 
28 namespace pinocchio
29 {
30  template<typename Scalar, int Options, template<typename,int> class JointCollectionTpl>
32  : fusion::JointUnaryVisitorBase< EmptyForwardStepUnaryVisit<Scalar,Options,JointCollectionTpl> >
33  {
36 
38 
39  template<typename JointModel>
40  static void algo(const JointModelBase<JointModel> &,
42  )
43  { // do nothing
44  }
45 
46  };
47 
48  template<typename Scalar, int Options, template<typename,int> class JointCollectionTpl>
51  {
52  assert(model.check(data) && "data is not consistent with model.");
53 
56 
57  for(JointIndex i=1; i < (JointIndex)model.njoints; ++i)
58  {
59  Algo::run(model.joints[i],data.joints[i]);
60  }
61  }
62 
63  template<typename Scalar, int Options, template<typename,int> class JointCollectionTpl>
65  : fusion::JointUnaryVisitorBase< EmptyForwardStepUnaryVisitNoData<Scalar,Options,JointCollectionTpl> >
66  {
69 
71 
72  template<typename JointModel>
73  EIGEN_DONT_INLINE
74  static void algo(const JointModelBase<JointModel> &)
75  { // do nothing
76  }
77 
78  };
79 
80  template<typename Scalar, int Options, template<typename,int> class JointCollectionTpl>
83  {
85  assert(model.check(data) && "data is not consistent with model.");
86 
89 
90  for(JointIndex i=1; i < (JointIndex)model.njoints; ++i)
91  {
92  Algo::run(model.joints[i]);
93  }
94  }
95 
96  template<typename Scalar, int Options, template<typename,int> class JointCollectionTpl>
98  : fusion::JointBinaryVisitorBase< EmptyForwardStepBinaryVisit<Scalar,Options,JointCollectionTpl> >
99  {
102 
104 
105  template<typename JointModel1, typename JointModel2>
106  EIGEN_DONT_INLINE
107  static void algo(const JointModelBase<JointModel1> &,
111  { // do nothing
112  }
113 
114  };
115 
116  template<typename Scalar, int Options, template<typename,int> class JointCollectionTpl>
119  {
120  assert(model.check(data) && "data is not consistent with model.");
121 
124 
125  for(JointIndex i=1; i < (JointIndex)model.njoints; ++i)
126  {
127  Algo::run(model.joints[i],model.joints[i],
128  data.joints[i],data.joints[i]);
129  }
130  }
131 
132  template<typename Scalar, int Options, template<typename,int> class JointCollectionTpl>
134  : fusion::JointBinaryVisitorBase< EmptyForwardStepBinaryVisitNoData<Scalar,Options,JointCollectionTpl> >
135  {
138 
140 
141  template<typename JointModel1, typename JointModel2>
142  EIGEN_DONT_INLINE
143  static void algo(const JointModelBase<JointModel1> &,
145  { // do nothing
146  }
147 
148  };
149 
150  template<typename Scalar, int Options, template<typename,int> class JointCollectionTpl>
153  {
155  assert(model.check(data) && "data is not consistent with model.");
156 
159 
160  for(JointIndex i=1; i < (JointIndex)model.njoints; ++i)
161  {
162  Algo::run(model.joints[i],model.joints[i]);
163  }
164  }
165 }
166 
167 int main(int argc, const char ** argv)
168 {
169  using namespace Eigen;
170  using namespace pinocchio;
171 
173  #ifdef NDEBUG
174  const int NBT = 1000*100;
175  #else
176  const int NBT = 1;
177  std::cout << "(the time score in debug mode is not relevant) " << std::endl;
178  #endif
179 
181 
182  std::string filename = PINOCCHIO_MODEL_DIR + std::string("/simple_humanoid.urdf");
183  if(argc>1) filename = argv[1];
184 
185  bool with_ff = true;
186  if(argc>2)
187  {
188  const std::string ff_option = argv[2];
189  if(ff_option == "-no-ff")
190  with_ff = false;
191  }
192 
193  if( filename == "HS")
195  else
196  if(with_ff)
198  else
200  std::cout << "nq = " << model.nq << std::endl;
201 
202 
203 
205  const VectorXd qmax = Eigen::VectorXd::Ones(model.nq);
206 
210  for(size_t i=0;i<NBT;++i)
211  {
212  qs[i] = randomConfiguration(model,-qmax,qmax);
213  qdots[i] = Eigen::VectorXd::Random(model.nv);
214  qddots[i] = Eigen::VectorXd::Random(model.nv);
215  }
216 
217 
218  timer.tic();
219  SMOOTH(NBT)
220  {
221  rnea(model,data,qs[_smooth],qdots[_smooth],qddots[_smooth]);
222  }
223  std::cout << "RNEA = \t\t"; timer.toc(std::cout,NBT);
224 
225  timer.tic();
226  SMOOTH(NBT)
227  {
228  nonLinearEffects(model,data,qs[_smooth],qdots[_smooth]);
229  }
230  std::cout << "NLE = \t\t"; timer.toc(std::cout,NBT);
231 
232  timer.tic();
233  SMOOTH(NBT)
234  {
235  rnea(model,data,qs[_smooth],qdots[_smooth],Eigen::VectorXd::Zero(model.nv));
236  }
237  std::cout << "NLE via RNEA = \t\t"; timer.toc(std::cout,NBT);
238 
239  timer.tic();
240  SMOOTH(NBT)
241  {
242  crba(model,data,qs[_smooth]);
243  }
244  std::cout << "CRBA = \t\t"; timer.toc(std::cout,NBT);
245 
246  timer.tic();
247  SMOOTH(NBT)
248  {
249  crbaMinimal(model,data,qs[_smooth]);
250  }
251  std::cout << "CRBA minimal = \t\t"; timer.toc(std::cout,NBT);
252 
253  timer.tic();
254  SMOOTH(NBT)
255  {
256  computeAllTerms(model,data,qs[_smooth],qdots[_smooth]);
257  }
258  std::cout << "computeAllTerms = \t\t"; timer.toc(std::cout,NBT);
259 
260  double total = 0;
261  SMOOTH(NBT)
262  {
263  crba(model,data,qs[_smooth]);
264  timer.tic();
266  total += timer.toc(timer.DEFAULT_UNIT);
267  }
268  std::cout << "Branch Induced Sparsity Cholesky = \t" << (total/NBT)
269  << " " << timer.unitName(timer.DEFAULT_UNIT) <<std::endl;
270 
271  total = 0;
272  Eigen::LDLT<Eigen::MatrixXd> Mldlt(data.M);
273  SMOOTH(NBT)
274  {
275  crba(model,data,qs[_smooth]);
276  data.M.triangularView<Eigen::StrictlyLower>()
277  = data.M.transpose().triangularView<Eigen::StrictlyLower>();
278  timer.tic();
279  Mldlt.compute(data.M);
280  total += timer.toc(timer.DEFAULT_UNIT);
281  }
282  std::cout << "Dense Eigen Cholesky = \t" << (total/NBT)
283  << " " << timer.unitName(timer.DEFAULT_UNIT) <<std::endl;
284 
285  timer.tic();
286  SMOOTH(NBT)
287  {
289  }
290  std::cout << "Jacobian = \t"; timer.toc(std::cout,NBT);
291 
292  timer.tic();
293  SMOOTH(NBT)
294  {
295  computeJointJacobiansTimeVariation(model,data,qs[_smooth],qdots[_smooth]);
296  }
297  std::cout << "Jacobian Time Variation = \t"; timer.toc(std::cout,NBT);
298 
299  timer.tic();
300  SMOOTH(NBT)
301  {
302  jacobianCenterOfMass(model,data,qs[_smooth],true);
303  }
304  std::cout << "COM+Jcom = \t"; timer.toc(std::cout,NBT);
305 
306  timer.tic();
307  SMOOTH(NBT)
308  {
309  centerOfMass(model,data,qs[_smooth], qdots[_smooth], qddots[_smooth], true);
310  }
311  std::cout << "COM+vCOM+aCOM = \t"; timer.toc(std::cout,NBT);
312 
313  timer.tic();
314  SMOOTH(NBT)
315  {
316  forwardKinematics(model,data,qs[_smooth]);
317  }
318  std::cout << "Zero Order Kinematics = \t"; timer.toc(std::cout,NBT);
319 
320 
321  timer.tic();
322  SMOOTH(NBT)
323  {
324  forwardKinematics(model,data,qs[_smooth],qdots[_smooth]);
325  }
326  std::cout << "First Order Kinematics = \t"; timer.toc(std::cout,NBT);
327 
328  timer.tic();
329  SMOOTH(NBT)
330  {
331  forwardKinematics(model,data,qs[_smooth],qdots[_smooth], qddots[_smooth]);
332  }
333  std::cout << "Second Order Kinematics = \t"; timer.toc(std::cout,NBT);
334 
335  total = 0.;
336  SMOOTH(NBT)
337  {
338  forwardKinematics(model,data,qs[_smooth]);
339  timer.tic();
341  total += timer.toc(timer.DEFAULT_UNIT);
342  }
343  std::cout << "Update Frame Placement = \t" << (total/NBT)
344  << " " << timer.unitName(timer.DEFAULT_UNIT) << std::endl;
345 
346 
347  timer.tic();
348  SMOOTH(NBT)
349  {
351  }
352  std::cout << "Zero Order Frames Kinematics = \t"; timer.toc(std::cout,NBT);
353 
354  timer.tic();
355  SMOOTH(NBT)
356  {
357  ccrba(model,data,qs[_smooth],qdots[_smooth]);
358  }
359  std::cout << "CCRBA = \t"; timer.toc(std::cout,NBT);
360 
361  timer.tic();
362  SMOOTH(NBT)
363  {
364  aba(model,data,qs[_smooth],qdots[_smooth], qddots[_smooth]);
365  }
366  std::cout << "ABA = \t"; timer.toc(std::cout,NBT);
367 
368  timer.tic();
369  SMOOTH(NBT)
370  {
372  }
373  std::cout << "Empty Forward Pass Unary visit (no computations) = \t"; timer.toc(std::cout,NBT);
374 
375  timer.tic();
376  SMOOTH(NBT)
377  {
379  }
380  std::cout << "Empty Forward Pass Unary visit No Data (no computations) = \t"; timer.toc(std::cout,NBT);
381 
382  timer.tic();
383  SMOOTH(NBT)
384  {
386  }
387  std::cout << "Empty Forward Pass Binary visit (no computations) = \t"; timer.toc(std::cout,NBT);
388 
389  timer.tic();
390  SMOOTH(NBT)
391  {
393  }
394  std::cout << "Empty Forward Pass Binary visit No Data (no computations) = \t"; timer.toc(std::cout,NBT);
395 
396  timer.tic();
397  SMOOTH(NBT)
398  {
399  computeCoriolisMatrix(model,data,qs[_smooth],qdots[_smooth]);
400  }
401  std::cout << "Coriolis Matrix = \t"; timer.toc(std::cout,NBT);
402 
403  timer.tic();
404  SMOOTH(NBT)
405  {
406  computeMinverse(model,data,qs[_smooth]);
407  }
408  std::cout << "Minv = \t"; timer.toc(std::cout,NBT);
409 
410  std::cout << "--" << std::endl;
411  return 0;
412 }
pinocchio::emptyForwardPassUnaryVisit
void emptyForwardPassUnaryVisit(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
Definition: timings.cpp:49
pinocchio::python::VectorXd
Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > VectorXd
Definition: conversions.cpp:16
frames.hpp
PinocchioTicToc::toc
double toc()
Definition: timer.hpp:68
Eigen
pinocchio::EmptyForwardStepUnaryVisit::Data
DataTpl< Scalar, Options, JointCollectionTpl > Data
Definition: timings.cpp:35
pinocchio::EmptyForwardStepBinaryVisit::Model
ModelTpl< Scalar, Options, JointCollectionTpl > Model
Definition: timings.cpp:100
pinocchio::DataTpl
Definition: multibody/data.hpp:29
pinocchio::forwardKinematics
void forwardKinematics(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
Update the joint placements according to the current joint configuration.
compute-all-terms.hpp
omniidl_be_python_with_docstring.run
def run(tree, args)
Definition: cmake/hpp/idl/omniidl_be_python_with_docstring.py:140
pinocchio::JointModelBase
Definition: joint-model-base.hpp:67
pinocchio::EmptyForwardStepBinaryVisit::ArgsType
fusion::NoArg ArgsType
Definition: timings.cpp:103
sample-models.hpp
pinocchio::JointDataBase
Definition: joint-data-base.hpp:82
inverse-kinematics.i
int i
Definition: inverse-kinematics.py:20
kinematics.hpp
pinocchio::jacobianCenterOfMass
const DataTpl< Scalar, Options, JointCollectionTpl >::Matrix3x & jacobianCenterOfMass(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const bool computeSubtreeComs=true)
Computes both the jacobian and the the center of mass position of a given model according to a partic...
model.hpp
pinocchio::EmptyForwardStepBinaryVisitNoData::Data
DataTpl< Scalar, Options, JointCollectionTpl > Data
Definition: timings.cpp:137
setup.data
data
Definition: cmake/cython/setup.in.py:48
pinocchio::crbaMinimal
const DataTpl< Scalar, Options, JointCollectionTpl >::MatrixXs & crbaMinimal(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
Computes the upper triangular part of the joint space inertia matrix M by using the Composite Rigid B...
pinocchio::buildModels::humanoidRandom
void humanoidRandom(ModelTpl< Scalar, Options, JointCollectionTpl > &model, bool usingFF=true)
Create a humanoid kinematic tree with 6-DOF limbs and random joint placements.
pinocchio::fusion::JointBinaryVisitorBase
Base structure for Binary visitation of two JointModels. This structure provides runners to call the ...
Definition: joint-binary-visitor.hpp:27
pinocchio::ccrba
const DataTpl< Scalar, Options, JointCollectionTpl >::Matrix6x & ccrba(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v)
Computes the Centroidal Momentum Matrix, the Composite Ridig Body Inertia as well as the centroidal m...
pinocchio::EmptyForwardStepBinaryVisit
Definition: timings.cpp:97
pinocchio::EmptyForwardStepBinaryVisitNoData
Definition: timings.cpp:133
PinocchioTicToc::unitName
static std::string unitName(Unit u)
Definition: timer.hpp:52
append-urdf-model-with-another-model.model
model
Definition: append-urdf-model-with-another-model.py:59
PinocchioTicToc::DEFAULT_UNIT
Unit DEFAULT_UNIT
Definition: timer.hpp:50
pinocchio::randomConfiguration
void randomConfiguration(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorIn1 > &lowerLimits, const Eigen::MatrixBase< ConfigVectorIn2 > &upperLimits, const Eigen::MatrixBase< ReturnType > &qout)
Generate a configuration vector uniformly sampled among provided limits.
Definition: joint-configuration.hpp:224
pinocchio::fusion::JointUnaryVisitorBase
Base structure for Unary visitation of a JointModel. This structure provides runners to call the righ...
Definition: joint-unary-visitor.hpp:27
rnea.hpp
timer.hpp
pinocchio::EmptyForwardStepBinaryVisitNoData::ArgsType
fusion::NoArg ArgsType
Definition: timings.cpp:139
aba.hpp
pinocchio::JointModelFreeFlyer
JointModelFreeFlyerTpl< double > JointModelFreeFlyer
Definition: multibody/joint/fwd.hpp:63
center-of-mass.hpp
SMOOTH
#define SMOOTH(s)
Definition: timer.hpp:38
joint-configuration.hpp
pinocchio::computeMinverse
const DataTpl< Scalar, Options, JointCollectionTpl >::RowMatrixXs & computeMinverse(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
Computes the inverse of the joint space inertia matrix using Articulated Body formulation.
pinocchio::updateFramePlacements
void updateFramePlacements(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
Updates the position of each frame contained in the model.
pinocchio::computeCoriolisMatrix
const DataTpl< Scalar, Options, JointCollectionTpl >::MatrixXs & computeCoriolisMatrix(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v)
Computes the Coriolis Matrix of the Lagrangian dynamics:
pinocchio::EmptyForwardStepUnaryVisitNoData::Data
DataTpl< Scalar, Options, JointCollectionTpl > Data
Definition: timings.cpp:68
pinocchio::rnea
void rnea(const int num_threads, ModelPoolTpl< Scalar, Options, JointCollectionTpl > &pool, const Eigen::MatrixBase< ConfigVectorPool > &q, const Eigen::MatrixBase< TangentVectorPool1 > &v, const Eigen::MatrixBase< TangentVectorPool2 > &a, const Eigen::MatrixBase< TangentVectorPool3 > &tau)
The Recursive Newton-Euler algorithm. It computes the inverse dynamics, aka the joint torques accordi...
Definition: parallel/rnea.hpp:32
pinocchio::EmptyForwardStepBinaryVisitNoData::algo
static EIGEN_DONT_INLINE void algo(const JointModelBase< JointModel1 > &, const JointModelBase< JointModel2 > &)
Definition: timings.cpp:143
filename
filename
pinocchio::EmptyForwardStepUnaryVisit::ArgsType
fusion::NoArg ArgsType
Definition: timings.cpp:37
urdf.hpp
pinocchio::EmptyForwardStepUnaryVisit::Model
ModelTpl< Scalar, Options, JointCollectionTpl > Model
Definition: timings.cpp:34
data.hpp
pinocchio::EmptyForwardStepBinaryVisit::algo
static EIGEN_DONT_INLINE void algo(const JointModelBase< JointModel1 > &, const JointModelBase< JointModel2 > &, JointDataBase< typename JointModel1::JointDataDerived > &, JointDataBase< typename JointModel2::JointDataDerived > &)
Definition: timings.cpp:107
pinocchio::urdf::buildModel
ModelTpl< Scalar, Options, JointCollectionTpl > & buildModel(const std::string &filename, const typename ModelTpl< Scalar, Options, JointCollectionTpl >::JointModel &rootJoint, ModelTpl< Scalar, Options, JointCollectionTpl > &model, const bool verbose=false)
Build the model from a URDF file with a particular joint as root of the model tree inside the model g...
pinocchio::EmptyForwardStepUnaryVisitNoData::Model
ModelTpl< Scalar, Options, JointCollectionTpl > Model
Definition: timings.cpp:67
pinocchio::computeJointJacobians
const DataTpl< Scalar, Options, JointCollectionTpl >::Matrix6x & computeJointJacobians(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
Computes the full model Jacobian, i.e. the stack of all motion subspace expressed in the world frame....
pinocchio::cholesky::decompose
const DataTpl< Scalar, Options, JointCollectionTpl >::MatrixXs & decompose(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
Compute the Cholesky decomposition of the joint space inertia matrix M contained in data.
pinocchio::framesForwardKinematics
void framesForwardKinematics(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
First calls the forwardKinematics on the model, then computes the placement of each frame....
pinocchio::nonLinearEffects
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & nonLinearEffects(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v)
Computes the non-linear effects (Corriolis, centrifual and gravitationnal effects),...
PinocchioTicToc::US
@ US
Definition: timer.hpp:49
cholesky.hpp
main
int main(int argc, const char **argv)
Definition: timings.cpp:167
pinocchio::EmptyForwardStepUnaryVisitNoData::ArgsType
fusion::NoArg ArgsType
Definition: timings.cpp:70
pinocchio::emptyForwardPassUnaryVisitNoData
void emptyForwardPassUnaryVisitNoData(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
Definition: timings.cpp:81
centroidal.hpp
pinocchio::emptyForwardPassBinaryVisit
void emptyForwardPassBinaryVisit(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
Definition: timings.cpp:117
pinocchio::centerOfMass
const DataTpl< Scalar, Options, JointCollectionTpl >::Vector3 & centerOfMass(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const bool computeSubtreeComs=true)
Computes the center of mass position of a given model according to a particular joint configuration....
pinocchio::aba
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & aba(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &tau)
The Articulated-Body algorithm. It computes the forward dynamics, aka the joint accelerations given t...
pinocchio::fusion::NoArg
boost::blank NoArg
Definition: joint-binary-visitor.hpp:19
pinocchio::emptyForwardPassBinaryVisitNoData
void emptyForwardPassBinaryVisitNoData(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
Definition: timings.cpp:151
pinocchio::EmptyForwardStepUnaryVisit::algo
static void algo(const JointModelBase< JointModel > &, JointDataBase< typename JointModel::JointDataDerived > &)
Definition: timings.cpp:40
pinocchio::JointIndex
Index JointIndex
Definition: multibody/fwd.hpp:28
PINOCCHIO_ALIGNED_STD_VECTOR
#define PINOCCHIO_ALIGNED_STD_VECTOR(Type)
Definition: container/aligned-vector.hpp:11
pinocchio::EmptyForwardStepBinaryVisit::Data
DataTpl< Scalar, Options, JointCollectionTpl > Data
Definition: timings.cpp:101
pinocchio::EmptyForwardStepUnaryVisit
Definition: timings.cpp:31
pinocchio::crba
const DataTpl< Scalar, Options, JointCollectionTpl >::MatrixXs & crba(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
Computes the upper triangular part of the joint space inertia matrix M by using the Composite Rigid B...
pinocchio::EmptyForwardStepBinaryVisitNoData::Model
ModelTpl< Scalar, Options, JointCollectionTpl > Model
Definition: timings.cpp:136
pinocchio::computeJointJacobiansTimeVariation
const DataTpl< Scalar, Options, JointCollectionTpl >::Matrix6x & computeJointJacobiansTimeVariation(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v)
Computes the full model Jacobian variations with respect to time. It corresponds to dJ/dt which depen...
jacobian.hpp
pinocchio::ModelTpl< Scalar, Options, JointCollectionTpl >
pinocchio::EmptyForwardStepUnaryVisitNoData
Definition: timings.cpp:64
crba.hpp
pinocchio::computeAllTerms
void computeAllTerms(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v)
Computes efficiently all the terms needed for dynamic simulation. It is equivalent to the call at the...
PinocchioTicToc
Definition: timer.hpp:47
meshcat-viewer.qs
qs
Definition: meshcat-viewer.py:130
pinocchio::model
JointCollectionTpl & model
Definition: joint-configuration.hpp:746
pinocchio
Main pinocchio namespace.
Definition: timings.cpp:28
PINOCCHIO_UNUSED_VARIABLE
#define PINOCCHIO_UNUSED_VARIABLE(var)
Helper to declare that a parameter is unused.
Definition: include/pinocchio/macros.hpp:51
PINOCCHIO_MODEL_DIR
#define PINOCCHIO_MODEL_DIR
Definition: build-reduced-model.cpp:11
PinocchioTicToc::tic
void tic()
Definition: timer.hpp:63
pinocchio::EmptyForwardStepUnaryVisitNoData::algo
static EIGEN_DONT_INLINE void algo(const JointModelBase< JointModel > &)
Definition: timings.cpp:74


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