Go to the documentation of this file.
    8 int main(
int , 
char ** )
 
   24   model.lowerPositionLimit.head<3>().
fill(-1.);
 
   25   model.upperPositionLimit.head<3>().
fill(1.);
 
   29   Eigen::VectorXd 
q(
model.nq);
 
   39   ConfigVectorAD q_ad(
model.nq);
 
   40   q_ad = Eigen::Map<ConfigVectorAD>(
static_cast<std::vector<ADScalar>
>(cs_q).
data(), 
model.nq, 1);
 
   44   ad_data.M.triangularView<Eigen::StrictlyLower>() =
 
   45     ad_data.M.transpose().triangularView<Eigen::StrictlyLower>();
 
   47   for (Eigen::DenseIndex j = 0; j < 
model.nv; ++j)
 
   49     for (Eigen::DenseIndex 
i = 0; 
i < 
model.nv; ++
i)
 
   51       M_ad(
i, j) = ad_data.M(
i, j);
 
   55   ::casadi::Function eval_crba(
"eval_crba", ::casadi::SXVector{cs_q}, ::casadi::SXVector{M_ad});
 
   58   std::vector<double> q_vec((
size_t)
model.nq);
 
   59   Eigen::Map<Eigen::VectorXd>(q_vec.data(), 
model.nq, 1) = 
q;
 
   61   ::casadi::DM M_res = eval_crba(::casadi::DMVector{q_vec})[0];
 
   63     Eigen::Map<Data::MatrixXs>(
static_cast<std::vector<double>
>(M_res).
data(), 
model.nv, 
model.nv);
 
   67   data.M.triangularView<Eigen::StrictlyLower>() =
 
   68     data.M.transpose().triangularView<Eigen::StrictlyLower>();
 
   71   std::cout << 
"pinocchio double:\n" << 
"\tM =\n" << 
data.M << std::endl;
 
   72   std::cout << 
"pinocchio CasADi:\n" << 
"\tM =\n" << M_mat.transpose() << std::endl;
 
  
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic, Options > MatrixXs
void sym(const Eigen::MatrixBase< MatrixDerived > &eig_mat, std::string const &name)
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...
void humanoidRandom(ModelTpl< Scalar, Options, JointCollectionTpl > &model, bool usingFF=true, bool mimic=false)
Create a humanoid kinematic tree with 6-DOF limbs and random joint placements.
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.
DataTpl< context::Scalar, context::Options > Data
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > & q
CppAD::AD< Scalar > ADScalar
pinocchio::ModelTpl< ADScalar > ADModel
VectorXs ConfigVectorType
Dense vectorized version of a joint configuration vector.
ModelTpl< context::Scalar, context::Options > Model
JointCollectionTpl & model
Main pinocchio namespace.
pinocchio
Author(s): 
autogenerated on Wed May 28 2025 02:41:15