timings-parallel.cpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2021-2025 INRIA
3 //
4 
5 #include "model-fixture.hpp"
6 
11 
12 #ifdef PINOCCHIO_WITH_HPP_FCL
17 
26 #endif
27 
31 
32 #include <benchmark/benchmark.h>
33 
34 #include <iostream>
35 
36 typedef Eigen::Matrix<bool, Eigen::Dynamic, 1> VectorXb;
37 
38 struct ParallelFixture : benchmark::Fixture
39 {
40  void SetUp(benchmark::State & st)
41  {
42  const auto BATCH_SIZE = st.range(0);
43  const auto NUM_THREADS = st.range(1);
44 
45  model = MODEL;
47 
48  const Eigen::VectorXd qmax = Eigen::VectorXd::Ones(model.nq);
49  qs = Eigen::MatrixXd(model.nq, BATCH_SIZE);
50  vs = Eigen::MatrixXd(model.nv, BATCH_SIZE);
51  as = Eigen::MatrixXd(model.nv, BATCH_SIZE);
52  taus = Eigen::MatrixXd(model.nv, BATCH_SIZE);
53  res = Eigen::MatrixXd(model.nv, BATCH_SIZE);
54 
55  for (Eigen::DenseIndex i = 0; i < BATCH_SIZE; ++i)
56  {
57  qs.col(i) = randomConfiguration(model, -qmax, qmax);
58  vs.col(i) = Eigen::VectorXd::Random(model.nv);
59  as.col(i) = Eigen::VectorXd::Random(model.nv);
60  taus.col(i) = Eigen::VectorXd::Random(model.nv);
61  }
62 
63  pool = std::make_unique<pinocchio::ModelPool>(model, static_cast<size_t>(NUM_THREADS));
64  }
65 
66  void TearDown(benchmark::State &)
67  {
68  }
69 
72  Eigen::MatrixXd qs;
73  Eigen::MatrixXd vs;
74  Eigen::MatrixXd as;
75  Eigen::MatrixXd taus;
76  Eigen::MatrixXd res;
77  std::unique_ptr<pinocchio::ModelPool> pool;
78 
80 
81  static void GlobalSetUp(const ExtraArgs &)
82  {
83  const std::string filename =
85  + std::string("/example-robot-data/robots/talos_data/robots/talos_reduced.urdf");
86 
88  filename,
90  MODEL);
91 
92  std::cout << "nq = " << MODEL.nq << std::endl;
93  std::cout << "nv = " << MODEL.nv << std::endl;
94  std::cout << "name = " << MODEL.name << std::endl;
95  std::cout << "--" << std::endl;
96  }
97 };
98 
100 
101 static void MonoThreadCustomArguments(benchmark::internal::Benchmark * b)
102 {
103  b->MinWarmUpTime(3.)->ArgsProduct({{256}, {1}})->ArgNames({"BATCH_SIZE", "NUM_THREADS"});
104 }
105 
106 static void MultiThreadCustomArguments(benchmark::internal::Benchmark * b)
107 {
108  b->MinWarmUpTime(3.)
109  ->ArgsProduct({{256}, benchmark::CreateRange(1, omp_get_max_threads(), 2)})
110  ->ArgNames({"BATCH_SIZE", "NUM_THREADS"})
111  ->UseRealTime();
112 }
113 
114 // RNEA
115 
117  const pinocchio::Model & model,
119  const Eigen::MatrixXd::ColXpr & q,
120  const Eigen::MatrixXd::ColXpr & v,
121  const Eigen::MatrixXd::ColXpr & a,
122  const Eigen::MatrixXd::ColXpr & r)
123 {
124  PINOCCHIO_EIGEN_CONST_CAST(Eigen::MatrixXd::ColXpr, r) = pinocchio::rnea(model, data, q, v, a);
125 }
126 BENCHMARK_DEFINE_F(ParallelFixture, RNEA)(benchmark::State & st)
127 {
128  const auto BATCH_SIZE = st.range(0);
129  for (auto _ : st)
130  {
131  for (auto i = 0; i < BATCH_SIZE; ++i)
132  {
133  rneaCall(model, data, qs.col(i), vs.col(i), as.col(i), res.col(i));
134  }
135  }
136 }
138 
139 // RNEA_IN_PARALLEL
140 
142  size_t num_threads,
144  const Eigen::MatrixXd & qs,
145  const Eigen::MatrixXd & vs,
146  const Eigen::MatrixXd & as,
147  const Eigen::MatrixXd & res)
148 {
150 }
151 BENCHMARK_DEFINE_F(ParallelFixture, RNEA_IN_PARALLEL)(benchmark::State & st)
152 {
153  const auto NUM_THREADS = st.range(1);
154  for (auto _ : st)
155  {
156  rneaInParallelCall(static_cast<size_t>(NUM_THREADS), *pool, qs, vs, as, res);
157  }
158 }
160 
161 // ABA
162 
164  const pinocchio::Model & model,
166  const Eigen::MatrixXd::ColXpr & q,
167  const Eigen::MatrixXd::ColXpr & v,
168  const Eigen::MatrixXd::ColXpr & taus,
169  const Eigen::MatrixXd::ColXpr & r)
170 {
171  PINOCCHIO_EIGEN_CONST_CAST(Eigen::MatrixXd::ColXpr, r) =
173 }
174 BENCHMARK_DEFINE_F(ParallelFixture, ABA)(benchmark::State & st)
175 {
176  const auto BATCH_SIZE = st.range(0);
177  for (auto _ : st)
178  {
179  for (auto i = 0; i < BATCH_SIZE; ++i)
180  {
181  abaCall(model, data, qs.col(i), vs.col(i), taus.col(i), res.col(i));
182  }
183  }
184 }
186 
187 // ABA_IN_PARALLEL
188 
190  size_t num_threads,
192  const Eigen::MatrixXd & qs,
193  const Eigen::MatrixXd & vs,
194  const Eigen::MatrixXd & taus,
195  const Eigen::MatrixXd & res)
196 {
198 }
199 BENCHMARK_DEFINE_F(ParallelFixture, ABA_IN_PARALLEL)(benchmark::State & st)
200 {
201  const auto NUM_THREADS = st.range(1);
202  for (auto _ : st)
203  {
204  abaInParallelCall(static_cast<size_t>(NUM_THREADS), *pool, qs, vs, taus, res);
205  }
206 }
208 
209 #ifdef PINOCCHIO_WITH_HPP_FCL
210 
212 {
213  void SetUp(benchmark::State & st)
214  {
216 
219 
220  const Eigen::VectorXd qmax = Eigen::VectorXd::Ones(model.nq);
221  q = randomConfiguration(model, -qmax, qmax);
222  }
223 
224  void TearDown(benchmark::State & st)
225  {
227  }
228 
231  Eigen::VectorXd q;
232 
234 
235  static void GlobalSetUp(const ExtraArgs & extra_args)
236  {
237  ParallelFixture::GlobalSetUp(extra_args);
238 
239  const std::string filename =
241  + std::string("/example-robot-data/robots/talos_data/robots/talos_reduced.urdf");
242  const std::string package_path = PINOCCHIO_MODEL_DIR;
243  hpp::fcl::MeshLoaderPtr mesh_loader = std::make_shared<hpp::fcl::CachedMeshLoader>();
244  const std::string srdf_filename =
245  PINOCCHIO_MODEL_DIR + std::string("/example-robot-data/robots/talos_data/srdf/talos.srdf");
246  std::vector<std::string> package_paths(1, package_path);
248  MODEL, filename, pinocchio::COLLISION, GEOMETRY_MODEL, package_paths, mesh_loader);
249 
252 
253  // Count active collision pair
255  int num_active_collision_pairs = 0;
256  for (size_t k = 0; k < geometry_data.activeCollisionPairs.size(); ++k)
257  {
259  num_active_collision_pairs++;
260  }
261  std::cout << "active collision pairs = " << num_active_collision_pairs << std::endl;
262  std::cout << "---" << std::endl;
263  }
264 };
266 
267 // COMPUTE_COLLISIONS
268 
269 PINOCCHIO_DONT_INLINE static void computeCollisionsCall(
270  const pinocchio::Model & model,
272  const pinocchio::GeometryModel & geometry_model,
273  pinocchio::GeometryData & geometry_data,
274  const Eigen::VectorXd & q)
275 {
276  pinocchio::computeCollisions(model, data, geometry_model, geometry_data, q);
277 }
278 BENCHMARK_DEFINE_F(GeometryFixture, COMPUTE_COLLISIONS)(benchmark::State & st)
279 {
280  for (auto _ : st)
281  {
282  computeCollisionsCall(model, data, geometry_model, geometry_data, q);
283  }
284 }
286 
287 // COMPUTE_COLLISIONS_IN_PARALLEL
288 
289 PINOCCHIO_DONT_INLINE static void computeCollisionsInParallelCall(
290  size_t num_threads,
291  const pinocchio::Model & model,
293  const pinocchio::GeometryModel & geometry_model,
294  pinocchio::GeometryData & geometry_data,
295  const Eigen::VectorXd & q)
296 {
298  num_threads, model, data, geometry_model, geometry_data, q);
299 }
300 BENCHMARK_DEFINE_F(GeometryFixture, COMPUTE_COLLISIONS_IN_PARALLEL)(benchmark::State & st)
301 {
302  const auto NUM_THREADS = st.range(1);
303  for (auto _ : st)
304  {
305  computeCollisionsInParallelCall(
306  static_cast<size_t>(NUM_THREADS), model, data, geometry_model, geometry_data, q);
307  }
308 }
309 BENCHMARK_REGISTER_F(GeometryFixture, COMPUTE_COLLISIONS_IN_PARALLEL)
311 
312 // COMPUTE_COLLISIONS_BATCH
313 
314 PINOCCHIO_DONT_INLINE static void computeCollisionsBatchCall(
315  const pinocchio::Model & model,
317  const pinocchio::GeometryModel & geometry_model,
318  pinocchio::GeometryData & geometry_data,
319  const Eigen::MatrixXd::ColXpr & q)
320 {
321  pinocchio::computeCollisions(model, data, geometry_model, geometry_data, q);
322 }
323 BENCHMARK_DEFINE_F(GeometryFixture, COMPUTE_COLLISIONS_BATCH)(benchmark::State & st)
324 {
325  const auto BATCH_SIZE = st.range(0);
326  for (auto _ : st)
327  {
328  for (auto i = 0; i < BATCH_SIZE; ++i)
329  {
330  computeCollisionsBatchCall(model, data, geometry_model, geometry_data, qs.col(i));
331  }
332  }
333 }
334 BENCHMARK_REGISTER_F(GeometryFixture, COMPUTE_COLLISIONS_BATCH)->Apply(MonoThreadCustomArguments);
335 
336 // COMPUTE_COLLISIONS_BATCH_IN_PARALLEL
337 
338 PINOCCHIO_DONT_INLINE static void computeCollisionsBatchInParallelCall(
339  size_t num_threads, pinocchio::GeometryPool & pool, const Eigen::MatrixXd & qs, VectorXb & res)
340 {
342 }
343 BENCHMARK_DEFINE_F(GeometryFixture, COMPUTE_COLLISIONS_BATCH_IN_PARALLEL)(benchmark::State & st)
344 {
345  const auto BATCH_SIZE = st.range(0);
346  const auto NUM_THREADS = st.range(1);
347 
348  pinocchio::GeometryPool geometry_pool(model, geometry_model, static_cast<size_t>(NUM_THREADS));
349  VectorXb collision_res(BATCH_SIZE);
350  collision_res.fill(false);
351  for (auto _ : st)
352  {
353  computeCollisionsBatchInParallelCall(
354  static_cast<size_t>(NUM_THREADS), geometry_pool, qs, collision_res);
355  }
356 }
357 BENCHMARK_REGISTER_F(GeometryFixture, COMPUTE_COLLISIONS_BATCH_IN_PARALLEL)
359 
360 // COMPUTE_COLLISIONS_BATCH_IN_PARALLEL_WITH_BROADPHASE
361 
362 PINOCCHIO_DONT_INLINE static void computeCollisionsBatchInParallelWithBroadPhaseCall(
363  size_t num_threads,
365  const Eigen::MatrixXd & qs,
366  VectorXb & res)
367 {
369 }
370 BENCHMARK_DEFINE_F(GeometryFixture, COMPUTE_COLLISIONS_BATCH_IN_PARALLEL_WITH_BROADPHASE)(
371  benchmark::State & st)
372 {
373  const auto BATCH_SIZE = st.range(0);
374  const auto NUM_THREADS = st.range(1);
375 
377  model, geometry_model, static_cast<size_t>(NUM_THREADS));
378  VectorXb collision_res(BATCH_SIZE);
379  collision_res.fill(false);
380  for (auto _ : st)
381  {
382  computeCollisionsBatchInParallelWithBroadPhaseCall(
383  static_cast<size_t>(NUM_THREADS), pool, qs, collision_res);
384  }
385 }
386 BENCHMARK_REGISTER_F(GeometryFixture, COMPUTE_COLLISIONS_BATCH_IN_PARALLEL_WITH_BROADPHASE)
388 
389 // COMPUTE_COLLISIONS_BATCH_IN_PARALLEL_WITH_TREE_BROADPHASE
390 
391 PINOCCHIO_DONT_INLINE static void computeCollisionsBatchInParallelWithTreeBroadPhaseCall(
392  size_t num_threads,
394  const Eigen::MatrixXd & qs,
395  VectorXb & res)
396 {
398 }
399 BENCHMARK_DEFINE_F(GeometryFixture, COMPUTE_COLLISIONS_BATCH_IN_PARALLEL_WITH_TREE_BROADPHASE)(
400  benchmark::State & st)
401 {
402  const auto BATCH_SIZE = st.range(0);
403  const auto NUM_THREADS = st.range(1);
404 
406  model, geometry_model, static_cast<size_t>(NUM_THREADS));
407  VectorXb collision_res(BATCH_SIZE);
408  collision_res.fill(false);
409  for (auto _ : st)
410  {
411  computeCollisionsBatchInParallelWithTreeBroadPhaseCall(
412  static_cast<size_t>(NUM_THREADS), pool, qs, collision_res);
413  }
414 }
415 BENCHMARK_REGISTER_F(GeometryFixture, COMPUTE_COLLISIONS_BATCH_IN_PARALLEL_WITH_TREE_BROADPHASE)
417 
418 #endif // #ifdef PINOCCHIO_WITH_HPP_FCL
419 
420 #ifdef PINOCCHIO_WITH_HPP_FCL
422 #else
424 #endif
broadphase_dynamic_AABB_tree.h
broadphase_dynamic_AABB_tree_array.h
GeometryFixture::model
pinocchio::Model model
Definition: timings-geometry.cpp:43
pinocchio::DataTpl
Definition: context/generic.hpp:25
PINOCCHIO_DONT_INLINE
#define PINOCCHIO_DONT_INLINE
Function attribute to forbid inlining. This is a compiler hint that can be not respected.
Definition: include/pinocchio/macros.hpp:53
pinocchio::computeCollisions
bool computeCollisions(BroadPhaseManagerBase< BroadPhaseManagerDerived > &broadphase_manager, CollisionCallBackBase *callback)
Calls computeCollision for every active pairs of GeometryData. This function assumes that updateGeome...
Definition: broadphase.hpp:34
VectorXb
Eigen::Matrix< bool, Eigen::Dynamic, 1 > VectorXb
Definition: timings-parallel.cpp:36
loader.h
pinocchio::BroadPhaseManagerPoolBase
Definition: collision/pool/broadphase-manager.hpp:21
GeometryFixture::geometry_data
pinocchio::GeometryData geometry_data
Definition: timings-geometry.cpp:46
ParallelFixture::taus
Eigen::MatrixXd taus
Definition: timings-parallel.cpp:75
rnea.hpp
GeometryFixture::MODEL
static pinocchio::Model MODEL
Definition: timings-geometry.cpp:52
MonoThreadCustomArguments
static void MonoThreadCustomArguments(benchmark::internal::Benchmark *b)
Definition: timings-parallel.cpp:101
BENCHMARK_REGISTER_F
BENCHMARK_REGISTER_F(ParallelFixture, RNEA) -> Apply(MonoThreadCustomArguments)
continuous.BATCH_SIZE
int BATCH_SIZE
Definition: continuous.py:35
ParallelFixture::res
Eigen::MatrixXd res
Definition: timings-parallel.cpp:76
broadphase_bruteforce.h
PINOCCHIO_EIGEN_CONST_CAST
#define PINOCCHIO_EIGEN_CONST_CAST(TYPE, OBJ)
Macro for an automatic const_cast.
Definition: eigen-macros.hpp:51
pinocchio::Convention::WORLD
@ WORLD
abaInParallelCall
static PINOCCHIO_DONT_INLINE void abaInParallelCall(size_t num_threads, pinocchio::ModelPool &pool, const Eigen::MatrixXd &qs, const Eigen::MatrixXd &vs, const Eigen::MatrixXd &taus, const Eigen::MatrixXd &res)
Definition: timings-parallel.cpp:189
inverse-kinematics.i
int i
Definition: inverse-kinematics.py:17
run-algo-in-parallel.num_threads
num_threads
Definition: run-algo-in-parallel.py:10
ParallelFixture::SetUp
void SetUp(benchmark::State &st)
Definition: timings-parallel.cpp:40
setup.data
data
Definition: cmake/cython/setup.in.py:48
aba.hpp
GeometryFixture::geometry_model
pinocchio::GeometryModel geometry_model
Definition: timings-geometry.cpp:45
pinocchio::JointModelFreeFlyerTpl
Definition: multibody/joint/fwd.hpp:110
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, const Convention convention=Convention::LOCAL)
The Articulated-Body algorithm. It computes the forward dynamics, aka the joint accelerations given t...
pinocchio::GeometryData
Definition: multibody/geometry.hpp:241
pinocchio::ModelTpl::name
std::string name
Model name.
Definition: multibody/model.hpp:220
pinocchio::GeometryModel::addAllCollisionPairs
void addAllCollisionPairs()
Add all possible collision pairs.
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:315
tree-broadphase-manager.hpp
b
Vec3f b
pinocchio::abaInParallel
void abaInParallel(const size_t num_threads, ModelPoolTpl< Scalar, Options, JointCollectionTpl > &pool, const Eigen::MatrixBase< ConfigVectorPool > &q, const Eigen::MatrixBase< TangentVectorPool1 > &v, const Eigen::MatrixBase< TangentVectorPool2 > &tau, const Eigen::MatrixBase< TangentVectorPool3 > &a)
A parallel version of the Articulated Body algorithm. It computes the forward dynamics,...
Definition: algorithm/parallel/aba.hpp:40
GeometryFixture::SetUp
void SetUp(benchmark::State &)
Definition: timings-geometry.cpp:26
anymal-simulation.model
model
Definition: anymal-simulation.py:8
r
FCL_REAL r
rneaInParallelCall
static PINOCCHIO_DONT_INLINE void rneaInParallelCall(size_t num_threads, pinocchio::ModelPool &pool, const Eigen::MatrixXd &qs, const Eigen::MatrixXd &vs, const Eigen::MatrixXd &as, const Eigen::MatrixXd &res)
Definition: timings-parallel.cpp:141
hpp::fcl::MeshLoaderPtr
std::shared_ptr< MeshLoader > MeshLoaderPtr
Definition: meshloader-fwd.hpp:25
res
res
joint-configuration.hpp
ParallelFixture::qs
Eigen::MatrixXd qs
Definition: timings-parallel.cpp:72
model-fixture.hpp
pinocchio::Data
DataTpl< context::Scalar, context::Options > Data
Definition: multibody/fwd.hpp:34
BENCHMARK_DEFINE_F
BENCHMARK_DEFINE_F(ParallelFixture, RNEA)(benchmark
Definition: timings-parallel.cpp:126
ParallelFixture::vs
Eigen::MatrixXd vs
Definition: timings-parallel.cpp:73
PINOCCHIO_BENCHMARK_MAIN_WITH_SETUP
PINOCCHIO_BENCHMARK_MAIN_WITH_SETUP(ParallelFixture::GlobalSetUp)
broadphase_SSaP.h
pinocchio::GeometryData::activeCollisionPairs
std::vector< bool > activeCollisionPairs
Vector of collision pairs.
Definition: multibody/geometry.hpp:275
filename
filename
urdf.hpp
srdf.hpp
cartpole.v
v
Definition: cartpole.py:153
ParallelFixture::as
Eigen::MatrixXd as
Definition: timings-parallel.cpp:74
pinocchio::ModelPoolTpl
Definition: multibody/pool/fwd.hpp:17
run-algo-in-parallel.pool
pool
Definition: run-algo-in-parallel.py:8
ParallelFixture
Definition: timings-parallel.cpp:38
GeometryFixture::q
Eigen::VectorXd q
Definition: timings-geometry.cpp:48
ParallelFixture::data
pinocchio::Data data
Definition: timings-parallel.cpp:71
pinocchio::rneaInParallel
void rneaInParallel(const size_t 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:39
pinocchio::urdf::buildGeom
GeometryModel & buildGeom(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const std::string &filename, const GeometryType type, GeometryModel &geom_model, const std::vector< std::string > &package_paths=std::vector< std::string >(), ::hpp::fcl::MeshLoaderPtr mesh_loader=::hpp::fcl::MeshLoaderPtr())
Build The GeometryModel from a URDF file. Search for meshes in the directories specified by the user ...
inverse-dynamics._
_
Definition: inverse-dynamics.py:22
collisions.srdf_filename
string srdf_filename
Definition: collisions.py:25
q
q
a
Vec3f a
GeometryFixture
Definition: timings-geometry.cpp:24
geometry.hpp
pinocchio::rnea
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & rnea(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 > &a)
The Recursive Newton-Euler algorithm. It computes the inverse dynamics, aka the joint torques accordi...
rneaCall
static PINOCCHIO_DONT_INLINE void rneaCall(const pinocchio::Model &model, pinocchio::Data &data, const Eigen::MatrixXd::ColXpr &q, const Eigen::MatrixXd::ColXpr &v, const Eigen::MatrixXd::ColXpr &a, const Eigen::MatrixXd::ColXpr &r)
Definition: timings-parallel.cpp:116
pinocchio::ModelTpl::nv
int nv
Dimension of the velocity vector space.
Definition: multibody/model.hpp:101
pinocchio::computeCollisionsInParallel
void computeCollisionsInParallel(const size_t num_threads, BroadPhaseManagerPoolBase< BroadPhaseManagerDerived, Scalar, Options, JointCollectionTpl > &pool, const Eigen::MatrixBase< ConfigVectorPool > &q, const Eigen::MatrixBase< CollisionVectorResult > &res, const bool stopAtFirstCollisionInConfiguration=false, const bool stopAtFirstCollisionInBatch=false)
Definition: parallel/broadphase.hpp:25
ParallelFixture::pool
std::unique_ptr< pinocchio::ModelPool > pool
Definition: timings-parallel.cpp:77
GeometryFixture::TearDown
void TearDown(benchmark::State &)
Definition: timings-geometry.cpp:39
broadphase_SaP.h
ParallelFixture::TearDown
void TearDown(benchmark::State &)
Definition: timings-parallel.cpp:66
pinocchio::GeometryModel
Definition: multibody/geometry.hpp:54
pinocchio::COLLISION
@ COLLISION
Definition: multibody/geometry-object.hpp:27
ParallelFixture::MODEL
static pinocchio::Model MODEL
Definition: timings-parallel.cpp:79
sample-models.hpp
pinocchio::ModelTpl
Definition: context/generic.hpp:20
GeometryFixture::GlobalSetUp
static void GlobalSetUp(const ExtraArgs &)
Definition: timings-geometry.cpp:55
fwd.hpp
MultiThreadCustomArguments
static void MultiThreadCustomArguments(benchmark::internal::Benchmark *b)
Definition: timings-parallel.cpp:106
ParallelFixture::model
pinocchio::Model model
Definition: timings-parallel.cpp:70
abaCall
static PINOCCHIO_DONT_INLINE void abaCall(const pinocchio::Model &model, pinocchio::Data &data, const Eigen::MatrixXd::ColXpr &q, const Eigen::MatrixXd::ColXpr &v, const Eigen::MatrixXd::ColXpr &taus, const Eigen::MatrixXd::ColXpr &r)
Definition: timings-parallel.cpp:163
meshcat-viewer.qs
qs
Definition: meshcat-viewer.py:128
broadphase_interval_tree.h
pinocchio::ModelTpl::nq
int nq
Dimension of the configuration vector representation.
Definition: multibody/model.hpp:98
ExtraArgs
Store custom command line arguments.
Definition: model-fixture.hpp:24
ParallelFixture::GlobalSetUp
static void GlobalSetUp(const ExtraArgs &)
Definition: timings-parallel.cpp:81
pinocchio::GeometryPoolTpl
Definition: multibody/pool/fwd.hpp:24
broadphase_spatialhash.h
PINOCCHIO_MODEL_DIR
#define PINOCCHIO_MODEL_DIR
Definition: build-reduced-model.cpp:11
pinocchio::srdf::removeCollisionPairs
void removeCollisionPairs(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, GeometryModel &geom_model, const std::string &filename, const bool verbose=false)
Deactive all possible collision pairs mentioned in the SRDF file. It throws if the SRDF file is incor...
pinocchio::urdf::buildModel
ModelTpl< Scalar, Options, JointCollectionTpl > & buildModel(const std::string &filename, const typename ModelTpl< Scalar, Options, JointCollectionTpl >::JointModel &rootJoint, const std::string &rootJointName, ModelTpl< Scalar, Options, JointCollectionTpl > &model, const bool verbose=false, const bool mimic=false)
Build the model from a URDF file with a particular joint as root of the model tree inside the model g...
broadphase.hpp
GeometryFixture::GEOMETRY_MODEL
static pinocchio::GeometryModel GEOMETRY_MODEL
Definition: timings-geometry.cpp:53


pinocchio
Author(s):
autogenerated on Thu Apr 10 2025 02:42:22