Go to the documentation of this file.
   11 #include <boost/test/unit_test.hpp> 
   12 #include <boost/utility/binary.hpp> 
   16 BOOST_AUTO_TEST_SUITE(BOOST_TEST_MODULE)
 
   21   typedef CppAD::cg::CG<Scalar> 
CGScalar;
 
   22   typedef CppAD::AD<CGScalar> 
ADScalar;
 
   24   typedef Eigen::Matrix<ADScalar, Eigen::Dynamic, 1> ADVector;
 
   34   model.lowerPositionLimit.head<3>().
fill(-1.);
 
   35   model.upperPositionLimit.head<3>().
fill(1.);
 
   38   const std::string RF = 
"rleg6_joint";
 
   39   const std::string LF = 
"lleg6_joint";
 
   45   contact_models_6D3D.push_back(ci_RF);
 
   48   contact_models_6D3D.push_back(ci_LF);
 
   51   Eigen::VectorXd 
q = Eigen::VectorXd::Random(
model.nq);
 
   52   Eigen::VectorXd 
v = Eigen::VectorXd::Random(
model.nv);
 
   53   Eigen::VectorXd 
tau = Eigen::VectorXd::Random(
model.nv);
 
   54   std::vector<Eigen::VectorXd> results_q(2, Eigen::VectorXd::Zero(
model.nq));
 
   55   std::vector<Eigen::VectorXd> results_v(2, Eigen::VectorXd::Zero(
model.nv));
 
   58   cg_constraintDynamics.
initLib();
 
   59   cg_constraintDynamics.
loadLib();
 
   64     model, 
data, 
q, 
v, 
tau, contact_models_6D3D, contact_datas_6D3D, 0.);
 
   65   BOOST_CHECK(
data.ddq.isApprox(cg_constraintDynamics.
ddq));
 
   66   BOOST_CHECK(
data.lambda_c.isApprox(cg_constraintDynamics.
lambda_c));
 
   69 BOOST_AUTO_TEST_SUITE_END()
 
  
RigidConstraintDataTpl< context::Scalar, context::Options > RigidConstraintData
CppAD::cg::CG< Scalar > CGScalar
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 evalFunction(const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVector1 > &v, const Eigen::MatrixBase< TangentVector2 > &tau)
@ CONTACT_6D
Point contact model.
void loadLib(const bool generate_if_not_exist=true, const std::string &gcc_path="/usr/bin/gcc", const std::string &compile_options="-Ofast")
DataTpl< context::Scalar, context::Options > Data
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)
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > & q
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > const Eigen::MatrixBase< TangentVectorType > & v
CppAD::AD< Scalar > ADScalar
pinocchio::ModelTpl< ADScalar > ADModel
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...
ModelTpl< context::Scalar, context::Options > Model
JointCollectionTpl & model
Main pinocchio namespace.
pinocchio
Author(s): 
autogenerated on Wed May 28 2025 02:41:17