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 Thu Apr 10 2025 02:42:18