Go to the documentation of this file.
14 #include <benchmark/benchmark.h>
20 void SetUp(benchmark::State & st)
24 const std::string RF =
"RLEG_LINK6";
26 const std::string LF =
"LLEG_LINK6";
29 ci_RF_6D = std::make_unique<pinocchio::RigidConstraintModel>(
31 ci_LF_6D = std::make_unique<pinocchio::RigidConstraintModel>(
36 contact_models_6D.clear();
37 contact_models_6D.push_back(*
ci_RF_6D);
39 contact_data_6D.clear();
44 contact_models_6D6D.clear();
45 contact_models_6D6D.push_back(*
ci_RF_6D);
46 contact_models_6D6D.push_back(*
ci_LF_6D);
48 contact_data_6D6D.clear();
54 r_coeff = (Eigen::ArrayXd::Random(1)[0] + 1.) / 2.;
65 std::unique_ptr<pinocchio::RigidConstraintModel>
ci_RF_6D;
66 std::unique_ptr<pinocchio::RigidConstraintModel>
ci_LF_6D;
BENCHMARK_REGISTER_F(ContactFixture, IMPULSE_DYNAMICS_DERIVATIVES_EMPTY) -> Apply(CustomArguments)
BENCHMARK_DEFINE_F(ContactFixture, IMPULSE_DYNAMICS_DERIVATIVES_EMPTY)(benchmark
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 &)
@ CONTACT_6D
Point contact model.
void SetUp(benchmark::State &)
Structure containing all the settings parameters for the proximal algorithms.
PINOCCHIO_BENCHMARK_MAIN()
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.
void computeImpulseDynamicsDerivatives(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &contact_data, const Scalar r_coeff, const ProximalSettingsTpl< Scalar > &settings, const Eigen::MatrixBase< MatrixType1 > &dvimpulse_partial_dq, const Eigen::MatrixBase< MatrixType2 > &dvimpulse_partial_dv, const Eigen::MatrixBase< MatrixType3 > &impulse_partial_dq, const Eigen::MatrixBase< MatrixType4 > &impulse_partial_dv)
#define PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR(T)
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.
static void CustomArguments(benchmark::internal::Benchmark *b)
static PINOCCHIO_DONT_INLINE void impulseDynamicsDerivativesCall(const pinocchio::Model &model, pinocchio::Data &data, 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)
pinocchio
Author(s):
autogenerated on Wed Apr 16 2025 02:41:51