Go to the documentation of this file.
20 const std::string &
name,
24 typedef typename D::TangentVector_t TV;
25 typedef typename D::ConfigVector_t CV;
29 1e3 * (TV::Random() + TV::Constant(1)), 1e3 * (CV::Random() - CV::Constant(1)),
30 1e3 * (CV::Random() + CV::Constant(1)));
32 model.appendBodyToJoint(idx,
Y, SE3::Identity());
42 "spherical", Inertia::Random());
57 SE3::Identity(),
"pu", Inertia::Random());
60 SE3::Identity(),
"ru", Inertia::Random());
63 SE3::Identity(),
"hu", Inertia::Random());
66 "sphericalZYX", Inertia::Random());
69 "translation", Inertia::Random());
75 const std::vector<pinocchio::JointIndex> & mimicking_ids,
76 const std::vector<double> & ratio,
77 const std::vector<double> & offset,
78 const Eigen::VectorXd &
q,
83 double joint_ratio = 1.0;
84 double joint_offset = 0.0;
85 auto it = std::find(mimicking_ids.begin(), mimicking_ids.end(),
n);
86 if (
it != mimicking_ids.end())
89 joint_offset = offset[size_t(
std::distance(mimicking_ids.begin(),
it))];
92 joint_ratio *
model_mimic.joints[size_t(
n)].JointMappedConfigSelector(
q)
93 + joint_offset * Eigen::VectorXd::Ones(
model_full.joints[
size_t(
n)].nq());
100 const std::vector<pinocchio::JointIndex> & ,
101 const std::vector<pinocchio::JointIndex> & mimicking_ids,
102 const std::vector<double> & ratios,
111 if (std::find(mimicking_ids.begin(), mimicking_ids.end(), j) == mimicking_ids.end())
119 for (
size_t i = 0;
i < mimicking_ids.size(); ++
i)
151 std::cout <<
"Mimic test case : ";
158 std::cout <<
"Mimicked/mimicking parent/child";
168 std::cout <<
"Spaced mimicked/mimicking";
178 std::cout <<
"Parallel mimic";
188 std::cout <<
"Double mimic, not same mimicked";
203 std::cout <<
"Double mimic, same mimicked";
218 std::cout <<
"Mimicking terminal joint";
228 std::invalid_argument,
229 "No mimic test case number " << case_i <<
". Max number " <<
N_CASES - 1);
234 std::cout << std::endl;
void addJointAndBody(Model &model, const JointModelBase< D > &jmodel, const Model::JointIndex parent_id, const SE3 &joint_placement, const std::string &name, const Inertia &Y)
JointModelFreeFlyerTpl< context::Scalar > JointModelFreeFlyer
JointModelTranslationTpl< context::Scalar > JointModelTranslation
void toFull(const Eigen::VectorXd &q, Eigen::VectorXd &q_full) const
JointModelHelicalTpl< context::Scalar, context::Options, 0 > JointModelHX
ConfigVectorType lowerPositionLimit
Lower joint configuration limit.
std::string name(const LieGroupGenericTpl< LieGroupCollection > &lg)
Visit a LieGroupVariant to get the name of it.
void buildMimicModel(const ModelTpl< Scalar, Options, JointCollectionTpl > &input_model, const std::vector< JointIndex > &index_mimicked, const std::vector< JointIndex > &index_mimicking, const std::vector< Scalar > &scaling, const std::vector< Scalar > &offset, ModelTpl< Scalar, Options, JointCollectionTpl > &output_model)
Transform joints of a model into mimic joints.
JointModelRevoluteTpl< context::Scalar, context::Options, 0 > JointModelRX
JointModelSphericalTpl< context::Scalar > JointModelSpherical
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.
JointModelPlanarTpl< context::Scalar > JointModelPlanar
pinocchio::JointIndex JointIndex
std::vector< double > ratios
#define PINOCCHIO_THROW_PRETTY(exception, message)
pinocchio::Model model_mimic
std::vector< pinocchio::JointIndex > mimicking_ids
std::vector< double > offsets
void buildAllJointsModel(Model &model)
std::vector< pinocchio::JointIndex > mimicked_ids
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > & q
JointModelHelicalUnalignedTpl< context::Scalar > JointModelHelicalUnaligned
FCL_REAL distance(const KDOP< N > &other, Vec3f *P=NULL, Vec3f *Q=NULL) const
JointIndex getJointId(const std::string &name) const
Return the index of a joint given by its name.
void mimicTransformMatrix(const Model &model_full, const Model &model_mimic, const std::vector< pinocchio::JointIndex > &, const std::vector< pinocchio::JointIndex > &mimicking_ids, const std::vector< double > &ratios, Eigen::MatrixXd &G)
MimicTestCases(int case_i, bool verbose=false)
JointModelPrismaticTpl< context::Scalar, context::Options, 0 > JointModelPX
JointModelSphericalZYXTpl< context::Scalar > JointModelSphericalZYX
JointModelRevoluteUnalignedTpl< context::Scalar > JointModelRevoluteUnaligned
void toFull(const Model &model_full, const Model &model_mimic, const std::vector< pinocchio::JointIndex > &mimicking_ids, const std::vector< double > &ratio, const std::vector< double > &offset, const Eigen::VectorXd &q, Eigen::VectorXd &q_full)
JointModelPrismaticUnalignedTpl< context::Scalar > JointModelPrismaticUnaligned
pinocchio::Model model_full
ConfigVectorType upperPositionLimit
Upper joint configuration limit.
JointCollectionTpl & model
Main pinocchio namespace.
pinocchio
Author(s):
autogenerated on Thu Apr 10 2025 02:42:20