Go to the documentation of this file.
   16 #include <casadi/casadi.hpp> 
   19 #include <boost/test/unit_test.hpp> 
   20 #include <boost/utility/binary.hpp> 
   22 BOOST_AUTO_TEST_SUITE(BOOST_TEST_MODULE)
 
   37   model.lowerPositionLimit.head<3>().
fill(-1.);
 
   38   model.upperPositionLimit.head<3>().
fill(1.);
 
   45   TangentVector 
v(TangentVector::Random(
model.nv));
 
   46   TangentVector 
a(TangentVector::Random(
model.nv));
 
   58   q_ad = Eigen::Map<ConfigVectorAD>(
static_cast<std::vector<ADScalar>
>(cs_q).
data(), 
model.nq, 1);
 
   60     Eigen::Map<ConfigVectorAD>(
static_cast<std::vector<ADScalar>
>(cs_v_int).
data(), 
model.nv, 1);
 
   63   casadi::SX cs_q_int(
model.nq, 1);
 
   66   casadi::Function eval_integrate(
 
   67     "eval_integrate", casadi::SXVector{cs_q, cs_v_int}, casadi::SXVector{cs_q_int});
 
   68   std::vector<double> q_vec((
size_t)
model.nq);
 
   69   Eigen::Map<ConfigVector>(q_vec.data(), 
model.nq, 1) = 
q;
 
   71   std::vector<double> v_int_vec((
size_t)
model.nv);
 
   72   Eigen::Map<TangentVector>(v_int_vec.data(), 
model.nv, 1).setZero();
 
   73   casadi::DM q_int_res = eval_integrate(casadi::DMVector{q_vec, v_int_vec})[0];
 
   76     static_cast<std::vector<double>
>(q_int_res).
data(), 
model.nq, 1);
 
   78   ConfigVector q_plus(
model.nq);
 
   81   BOOST_CHECK(q_plus.isApprox(q_int_vec));
 
   84 BOOST_AUTO_TEST_SUITE_END()
 
  
VectorXs ConfigVectorType
Dense vectorized version of a joint configuration vector.
void sym(const Eigen::MatrixBase< MatrixDerived > &eig_mat, std::string const &name)
DataTpl< Scalar, Options, JointCollectionTpl > Data
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.
void integrate(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v, const Eigen::MatrixBase< ReturnType > &qout)
Integrate a configuration vector for the specified model for a tangent vector during one unit time.
VectorXs TangentVectorType
Dense vectorized version of a joint tangent vector (e.g. velocity, acceleration, etc)....
BOOST_AUTO_TEST_CASE(test_integrate)
CppAD::AD< Scalar > ADScalar
pinocchio::ModelTpl< ADScalar > ADModel
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...
void copy(::casadi::Matrix< Scalar > const &src, Eigen::MatrixBase< MT > &dst)
VectorXs ConfigVectorType
Dense vectorized version of a joint configuration vector.
pinocchio::ModelTpl< Scalar > Model
pinocchio
Author(s): 
autogenerated on Wed May 28 2025 02:41:18