Go to the documentation of this file.
35 void SetUp(benchmark::State & st)
52 static std::unique_ptr<pinocchio::CodeGenABA<double>>
ABA_CODE_GEN;
57 static std::unique_ptr<pinocchio::CodeGenConstraintDynamicsDerivatives<double>>
64 const std::string RF =
"RLEG_ANKLE_R";
65 const std::string LF =
"LLEG_ANKLE_R";
72 CONTACT_MODELS_6D6D.push_back(ci_RF);
73 CONTACT_MODELS_6D6D.push_back(ci_LF);
77 CONTACT_DATAS_6D6D.push_back(cd_RF);
78 CONTACT_DATAS_6D6D.push_back(cd_LF);
89 std::make_unique<pinocchio::CodeGenConstraintDynamicsDerivatives<double>>(
110 CGFixture::CONTACT_MODELS_6D6D;
112 CGFixture::CONTACT_DATAS_6D6D;
119 std::unique_ptr<pinocchio::CodeGenConstraintDynamicsDerivatives<double>>
124 b->MinWarmUpTime(3.);
132 const Eigen::VectorXd & q,
133 const Eigen::VectorXd &
v,
134 const Eigen::VectorXd &
a)
153 RNEA_CODE_GEN->evalFunction(
q,
v,
a);
164 RNEA_CODE_GEN->evalJacobian(
q,
v,
a);
175 RNEA_DERIVATIVES_CODE_GEN->evalFunction(
q,
v,
a);
202 CRBA_CODE_GEN->evalFunction(
q);
229 MINV_CODE_GEN->evalFunction(
q);
239 const Eigen::VectorXd & q,
240 const Eigen::VectorXd &
v,
241 const Eigen::VectorXd &
tau)
260 ABA_CODE_GEN->evalFunction(
q,
v,
tau);
271 ABA_CODE_GEN->evalJacobian(
q,
v,
tau);
282 ABA_DERIVATIVES_CODE_GEN->evalFunction(
q,
v,
tau);
292 const Eigen::VectorXd & q,
293 const Eigen::VectorXd &
v,
294 const Eigen::VectorXd &
tau,
296 & contact_models_6d6d,
301 model,
data, contact_models_6d6d, contact_datas_6d6d);
320 CONSTRAINT_DYNAMICS_DERIVATIVES_CODE_GEN->evalFunction(
q,
v,
tau);
BENCHMARK_REGISTER_F(CGFixture, RNEA) -> Apply(CustomArguments)
void TearDown(benchmark::State &st)
static PINOCCHIO_DONT_INLINE void computeMinverseQCall(const pinocchio::Model &model, pinocchio::Data &data, const Eigen::VectorXd &q)
static PINOCCHIO_DONT_INLINE void abaWorldCall(const pinocchio::Model &model, pinocchio::Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v, const Eigen::VectorXd &tau)
static std::unique_ptr< pinocchio::CodeGenConstraintDynamicsDerivatives< double > > CONSTRAINT_DYNAMICS_DERIVATIVES_CODE_GEN
void SetUp(benchmark::State &st)
#define PINOCCHIO_DONT_INLINE
Function attribute to forbid inlining. This is a compiler hint that can be not respected.
static std::unique_ptr< pinocchio::CodeGenRNEA< double > > RNEA_CODE_GEN
void computeConstraintDynamicsDerivatives(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 ProximalSettingsTpl< Scalar > &settings, const Eigen::MatrixBase< MatrixType1 > &ddq_partial_dq, const Eigen::MatrixBase< MatrixType2 > &ddq_partial_dv, const Eigen::MatrixBase< MatrixType3 > &ddq_partial_dtau, const Eigen::MatrixBase< MatrixType4 > &lambda_partial_dq, const Eigen::MatrixBase< MatrixType5 > &lambda_partial_dv, const Eigen::MatrixBase< MatrixType6 > &lambda_partial_dtau)
static PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR(pinocchio::RigidConstraintModel) CONTACT_MODELS_6D6D
void TearDown(benchmark::State &)
const DataTpl< Scalar, Options, JointCollectionTpl >::MatrixXs & crba(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Convention convention=Convention::LOCAL)
Computes the upper triangular part of the joint space inertia matrix M by using the Composite Rigid B...
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...
static void GlobalSetUp(const ExtraArgs &extra_args)
@ CONTACT_6D
Point contact model.
void SetUp(benchmark::State &)
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.
static PINOCCHIO_DONT_INLINE void rneaCall(const pinocchio::Model &model, pinocchio::Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v, const Eigen::VectorXd &a)
static void GlobalSetUp(const ExtraArgs &extra_args)
static std::unique_ptr< pinocchio::CodeGenRNEADerivatives< double > > RNEA_DERIVATIVES_CODE_GEN
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.
PINOCCHIO_BENCHMARK_MAIN_WITH_SETUP(CGFixture::GlobalSetUp)
#define PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR(T)
static std::unique_ptr< pinocchio::CodeGenABADerivatives< double > > ABA_DERIVATIVES_CODE_GEN
PINOCCHIO_DONT_INLINE void constraintDynamicsDerivativeCall(const pinocchio::Model &model, pinocchio::Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v, const Eigen::VectorXd &tau, const PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR(pinocchio::RigidConstraintModel) &contact_models_6d6d, PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR(pinocchio::RigidConstraintData) &contact_datas_6d6d)
static std::unique_ptr< pinocchio::CodeGenABA< double > > ABA_CODE_GEN
static pinocchio::Model MODEL
BENCHMARK_DEFINE_F(CGFixture, RNEA)(benchmark
static std::unique_ptr< pinocchio::CodeGenCRBA< double > > CRBA_CODE_GEN
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...
static std::unique_ptr< pinocchio::CodeGenMinv< double > > MINV_CODE_GEN
static void CustomArguments(benchmark::internal::Benchmark *b)
static PINOCCHIO_DONT_INLINE void crbaWorldCall(const pinocchio::Model &model, pinocchio::Data &data, const Eigen::VectorXd &q)
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & constraintDynamics(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 std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &contact_datas, ProximalSettingsTpl< Scalar > &settings)
Computes the forward dynamics with contact constraints according to a given list of contact informati...
pinocchio
Author(s):
autogenerated on Wed Apr 16 2025 02:41:51