Go to the documentation of this file.
   22 #include <benchmark/benchmark.h> 
   28   void SetUp(benchmark::State & st)
 
   32     const std::string RF = 
"RLEG_LINK6";
 
   34     const std::string LF = 
"LLEG_LINK6";
 
   37     ci_RF_6D = std::make_unique<pinocchio::RigidConstraintModel>(
 
   39     ci_LF_6D = std::make_unique<pinocchio::RigidConstraintModel>(
 
   44     contact_models_6D.clear();
 
   45     contact_models_6D.push_back(*
ci_RF_6D);
 
   47     contact_data_6D.clear();
 
   52     contact_models_6D6D.clear();
 
   53     contact_models_6D6D.push_back(*
ci_RF_6D);
 
   54     contact_models_6D6D.push_back(*
ci_LF_6D);
 
   56     contact_data_6D6D.clear();
 
   76   std::unique_ptr<pinocchio::RigidConstraintModel> 
ci_RF_6D;
 
   77   std::unique_ptr<pinocchio::RigidConstraintModel> 
ci_LF_6D;
 
  107   const Eigen::VectorXd & q,
 
  108   const Eigen::VectorXd & 
v,
 
  109   const Eigen::VectorXd & 
tau)
 
  144   const Eigen::VectorXd & q,
 
  145   const Eigen::VectorXd & 
v,
 
  146   const Eigen::VectorXd & 
tau,
 
  166   const Eigen::VectorXd & q,
 
  167   const Eigen::VectorXd & 
v,
 
  168   const Eigen::VectorXd & 
tau,
 
  190   const Eigen::VectorXd & q,
 
  191   const Eigen::VectorXd & 
v,
 
  192   const Eigen::VectorXd & 
tau,
 
  223   benchmark::State & st)
 
  229       contact_chol_empty, 
model, 
data, contact_models_empty, contact_data_empty);
 
  240   contact.inverse(H_inverse);
 
  244   benchmark::State & st)
 
  247   contact_chol_empty.compute(
model, 
data, contact_models_empty, contact_data_empty);
 
  248   Eigen::MatrixXd H_inverse(contact_chol_empty.size(), contact_chol_empty.size());
 
  262   const Eigen::VectorXd & q,
 
  263   const Eigen::VectorXd & 
v,
 
  264   const Eigen::VectorXd & 
tau,
 
  323       contact_chol_6D, 
model, 
data, contact_models_6D, contact_data_6D);
 
  334   contact_chol_6D.compute(
model, 
data, contact_models_6D, contact_data_6D);
 
  335   Eigen::MatrixXd H_inverse(contact_chol_6D.size(), contact_chol_6D.size());
 
  361   const Eigen::MatrixXd & 
J,
 
  362   const Eigen::MatrixXd & MJtJ_inv)
 
  370   Eigen::MatrixXd 
J(contact_chol_6D.constraintDim(), 
model.nv);
 
  373   Eigen::MatrixXd MJtJ_inv(
 
  374     model.nv + contact_chol_6D.constraintDim(), 
model.nv + contact_chol_6D.constraintDim());
 
  377   Eigen::VectorXd gamma(contact_chol_6D.constraintDim());
 
  382     model, 
data, ci_RF_6D->joint1_id, ci_RF_6D->reference_frame, 
J.middleRows<6>(0));
 
  432   benchmark::State & st)
 
  438       contact_chol_6D6D, 
model, 
data, contact_models_6D6D, contact_data_6D6D);
 
  447   benchmark::State & st)
 
  450   contact_chol_6D6D.compute(
model, 
data, contact_models_6D6D, contact_data_6D6D);
 
  451   Eigen::MatrixXd H_inverse(contact_chol_6D6D.size(), contact_chol_6D6D.size());
 
  475   benchmark::State & st)
 
  477   Eigen::MatrixXd 
J(contact_chol_6D6D.constraintDim(), 
model.nv);
 
  480   Eigen::MatrixXd MJtJ_inv(
 
  481     model.nv + contact_chol_6D6D.constraintDim(), 
model.nv + contact_chol_6D6D.constraintDim());
 
  484   Eigen::VectorXd gamma(contact_chol_6D6D.constraintDim());
 
  507   const Eigen::VectorXd & q,
 
  508   const Eigen::VectorXd & 
v,
 
  509   const Eigen::VectorXd & 
tau,
 
  511   const Eigen::VectorXd & gamma)
 
  521   Eigen::MatrixXd 
J(contact_chol_6D6D.constraintDim(), 
model.nv);
 
  524   Eigen::VectorXd gamma(contact_chol_6D6D.constraintDim());
 
  
PINOCCHIO_DEPRECATED void getKKTContactDynamicMatrixInverse(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConstraintMatrixType > &J, const Eigen::MatrixBase< KKTMatrixType > &KKTMatrix_inv)
Computes the inverse of the KKT matrix for dynamics with contact constraints.
FrameVector frames
Vector of operational frames registered on the model.
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & constrainedABA(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 >, ContactModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, ContactDataAllocator > &contact_datas, ProximalSettingsTpl< Scalar > &settings)
The constrained Articulated Body Algorithm (constrainedABA). It computes constrained forward dynamics...
#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 &)
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & pv(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 >, ContactModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, ContactDataAllocator > &contact_datas, ProximalSettingsTpl< Scalar > &settings)
The Popov-Vereshchagin algorithm. It computes constrained forward dynamics, aka the joint acceleratio...
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...
void initPvSolver(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const std::vector< RigidConstraintModelTpl< Scalar, Options >, Allocator > &contact_models)
Init the data according to the contact information contained in contact_models.
@ CONTACT_6D
Point contact model.
void SetUp(benchmark::State &)
Structure containing all the settings parameters for the proximal algorithms.
void getJointJacobian(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const JointIndex joint_id, const ReferenceFrame reference_frame, const Eigen::MatrixBase< Matrix6Like > &J)
Computes the Jacobian of a specific joint frame expressed in one of the pinocchio::ReferenceFrame opt...
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.
const PINOCCHIO_DEPRECATED DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & forwardDynamics(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 Eigen::MatrixBase< ConstraintMatrixType > &J, const Eigen::MatrixBase< DriftVectorType > &gamma, const Scalar inv_damping=0.)
Compute the forward dynamics with contact constraints. Internally, pinocchio::computeAllTerms is call...
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)
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.
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & contactABA(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 >, ModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, DataAllocator > &contact_data)
ContactCholeskyDecompositionTpl< context::Scalar, context::Options > ContactCholeskyDecomposition
int max_iter
Maximal number of iterations.
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...
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 May 28 2025 02:41:22