Go to the documentation of this file.
21 #include <benchmark/benchmark.h>
27 void SetUp(benchmark::State & st)
31 const std::string RF =
"RLEG_LINK6";
33 const std::string LF =
"LLEG_LINK6";
36 ci_RF_6D = std::make_unique<pinocchio::RigidConstraintModel>(
38 ci_LF_6D = std::make_unique<pinocchio::RigidConstraintModel>(
43 contact_models_6D.clear();
44 contact_models_6D.push_back(*
ci_RF_6D);
46 contact_data_6D.clear();
51 contact_models_6D6D.clear();
52 contact_models_6D6D.push_back(*
ci_RF_6D);
53 contact_models_6D6D.push_back(*
ci_LF_6D);
55 contact_data_6D6D.clear();
61 r_coeff = (Eigen::ArrayXd::Random(1)[0] + 1.) / 2.;
72 std::unique_ptr<pinocchio::RigidConstraintModel>
ci_RF_6D;
73 std::unique_ptr<pinocchio::RigidConstraintModel>
ci_LF_6D;
101 const Eigen::VectorXd & q,
102 const Eigen::VectorXd &
v,
FrameVector frames
Vector of operational frames registered on the model.
#define PINOCCHIO_DONT_INLINE
Function attribute to forbid inlining. This is a compiler hint that can be not respected.
Scalar mu
Regularization parameter of the proximal algorithm.
void TearDown(benchmark::State &)
BENCHMARK_DEFINE_F(ContactFixture, IMPULSE_DYNAMICS_EMPTY)(benchmark
PINOCCHIO_BENCHMARK_MAIN()
static PINOCCHIO_DONT_INLINE void impulseDynamicsCall(const pinocchio::Model &model, pinocchio::Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v, const PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR(pinocchio::RigidConstraintModel) &contact_models, PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR(pinocchio::RigidConstraintData) &contact_data, double r_coeff, const pinocchio::ProximalSettings &prox_settings)
@ CONTACT_6D
Point contact model.
void SetUp(benchmark::State &)
Structure containing all the settings parameters for the proximal algorithms.
FrameIndex getFrameId(const std::string &name, const FrameType &type=(FrameType)(JOINT|FIXED_JOINT|BODY|OP_FRAME|SENSOR)) const
Returns the index of a frame given by its name.
void initConstraintDynamics(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const std::vector< RigidConstraintModelTpl< Scalar, Options >, Allocator > &contact_models)
Init the forward dynamics data according to the contact information contained in contact_models.
#define PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR(T)
static void CustomArguments(benchmark::internal::Benchmark *b)
ContactCholeskyDecompositionTpl< context::Scalar, context::Options > ContactCholeskyDecomposition
int max_iter
Maximal number of iterations.
const PINOCCHIO_DEPRECATED DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & impulseDynamics(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v_before, const Eigen::MatrixBase< ConstraintMatrixType > &J, const Scalar r_coeff=0., const Scalar inv_damping=0.)
Compute the impulse dynamics with contact constraints. Internally, pinocchio::crba is called.
BENCHMARK_REGISTER_F(ContactFixture, IMPULSE_DYNAMICS_EMPTY) -> Apply(CustomArguments)
pinocchio
Author(s):
autogenerated on Thu Apr 10 2025 02:42:22