joint-composite.cpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2016 CNRS
3 //
4 
8 
9 #include <iostream>
10 #include <boost/test/unit_test.hpp>
11 #include <boost/utility/binary.hpp>
12 
13 using namespace pinocchio;
14 using namespace Eigen;
15 
16 template<typename JointModel>
18  const JointModelBase<JointModel> & jmodel, JointModelComposite & jmodel_composite);
19 
20 template<typename JointModel>
22 {
23  JointModelComposite jmodel_composite(jmodel);
24  test_joint_methods(jmodel, jmodel_composite);
25 }
26 
27 template<typename JointModel>
29  const JointModelBase<JointModel> & jmodel, JointModelComposite & jmodel_composite)
30 {
32 
33  JointData jdata = jmodel.createData();
34  JointDataComposite jdata_composite = jmodel_composite.createData();
35 
36  jmodel_composite.setIndexes(jmodel.id(), jmodel.idx_q(), jmodel.idx_v(), jmodel.idx_vExtended());
37 
38  typedef typename JointModel::ConfigVector_t ConfigVector_t;
39  typedef typename JointModel::TangentVector_t TangentVector_t;
40  typedef typename LieGroup<JointModel>::type LieGroupType;
41 
42  typedef Eigen::Matrix<typename ConfigVector_t::Scalar, Eigen::Dynamic, 1, ConfigVector_t::Options>
43  DynConfigVectorType;
44  typedef DynConfigVectorType DynTangentVectorType;
45 
46  ConfigVector_t ql(ConfigVector_t::Constant(jmodel.nq(), -M_PI));
47  ConfigVector_t qu(ConfigVector_t::Constant(jmodel.nq(), M_PI));
48  DynConfigVectorType q = LieGroupType().randomConfiguration(ql, qu);
49 
50  BOOST_CHECK(jmodel.nv() == jmodel_composite.nv());
51  BOOST_CHECK(jmodel.nq() == jmodel_composite.nq());
52 
53  jmodel.calc(jdata, q);
54  jmodel_composite.calc(jdata_composite, q);
55 
56  BOOST_CHECK(jdata_composite.M.isApprox((SE3)jdata.M));
57  BOOST_CHECK(jdata_composite.S.matrix().isApprox(jdata.S.matrix()));
58 
59  q = LieGroupType().randomConfiguration(ql, qu);
60  DynTangentVectorType v = TangentVector_t::Random(jmodel.nv());
61  jmodel.calc(jdata, q, v);
62  jmodel_composite.calc(jdata_composite, q, v);
63 
64  BOOST_CHECK(jdata_composite.M.isApprox((SE3)jdata.M));
65  BOOST_CHECK(jdata_composite.S.matrix().isApprox(jdata.S.matrix()));
66  BOOST_CHECK(jdata_composite.v.isApprox((Motion)jdata.v));
67  BOOST_CHECK(jdata_composite.c.isApprox((Motion)jdata.c));
68 
69  // TODO: Not yet checked
70  // {
71  // VectorXd q1(jmodel.random());
72  // jmodel.normalize(q1);
73  // VectorXd q2(jmodel.random());
74  // jmodel.normalize(q2);
75  // VectorXd v(VectorXd::Random(jmodel.nv()));
76  //
77  // BOOST_CHECK(jmodel_composite.integrate(q1,v).isApprox(jmodel.integrate(q1,v)));
78  //
79  // TangentVector_t v1 = jmodel_composite.difference(q1,q2);
80  // TangentVector_t v2 = jmodel.difference(q1,q2);
81  //
82  // BOOST_CHECK(v1.isApprox(v2));
83  //
84  // const double alpha = 0.2;
85  // BOOST_CHECK(jmodel_composite.interpolate(q1,q2,alpha).isApprox(jmodel.interpolate(q1,q2,alpha)));
86  // BOOST_CHECK(math::fabs(jmodel_composite.distance(q1,q2)-jmodel.distance(q1,q2))<=
87  // NumTraits<double>::dummy_precision());
88  // }
89 
90  Inertia::Matrix6 I0(Inertia::Random().matrix());
91 
92  Inertia::Matrix6 I1 = I0;
93  Inertia::Matrix6 I2 = I0;
94 
95  const Eigen::VectorXd armature =
96  Eigen::VectorXd::Random(jmodel.nv()) + Eigen::VectorXd::Ones(jmodel.nv());
97  jmodel.calc_aba(jdata, armature, I1, true);
98  jmodel_composite.calc_aba(jdata_composite, armature, I2, true);
99 
100  double prec = 1e-10; // higher tolerance to errors due to possible numerical imprecisions
101 
102  BOOST_CHECK(jdata.U.isApprox(jdata_composite.U, prec));
103  BOOST_CHECK(jdata.Dinv.isApprox(jdata_composite.Dinv, prec));
104  BOOST_CHECK(jdata.UDinv.isApprox(jdata_composite.UDinv, prec));
105 
106  // Checking the inertia was correctly updated
107  // We use isApprox as usual, except for the freeflyer,
108  // where the correct result is exacly zero and isApprox would fail.
109  // Only for this single case, we use the infinity norm of the difference
110  if (jmodel.shortname() == "JointModelFreeFlyer")
111  BOOST_CHECK((I1 - I2).lpNorm<Eigen::Infinity>() < prec);
112  else
113  BOOST_CHECK(I1.isApprox(I2, prec));
114 
115  // Test operator=
116  JointModelComposite jmodel_composite2 = jmodel_composite;
117  JointDataComposite jdata_composite2 = jmodel_composite2.createData();
118 
119  jmodel_composite2.calc(jdata_composite2, q, v);
120 
121  Inertia::Matrix6 I3 = I0;
122  jmodel_composite2.calc_aba(jdata_composite2, armature, I3, true);
123 
124  if (jmodel.shortname() == "JointModelFreeFlyer")
125  BOOST_CHECK((I3 - I2).lpNorm<Eigen::Infinity>() < prec);
126  else
127  BOOST_CHECK(I3.isApprox(I2, prec));
128 
129  BOOST_CHECK(jmodel_composite2 == jmodel_composite);
130 
131  BOOST_CHECK(jdata_composite2.U.isApprox(jdata_composite.U, prec));
132  BOOST_CHECK(jdata_composite2.Dinv.isApprox(jdata_composite.Dinv, prec));
133  BOOST_CHECK(jdata_composite2.UDinv.isApprox(jdata_composite.UDinv, prec));
134 
135  // Test operator <<
136  std::cout << "JointModelComposite operator<<:\n" << jmodel_composite << std::endl;
137 
138  // Test block operators
139  const int m = 100;
140  Data::Matrix6x mat(Data::Matrix6x::Ones(6, m));
141  const Data::Matrix6x mat_const(Data::Matrix6x::Ones(6, m));
142  Model::ConfigVectorType vec(Model::ConfigVectorType::Ones(m));
143  const Model::ConfigVectorType vec_const(Model::ConfigVectorType::Ones(m));
144 
145  BOOST_CHECK(
146  jmodel.JointMappedConfigSelector(vec) == jmodel_composite.JointMappedConfigSelector(vec));
147  BOOST_CHECK(
148  jmodel.JointMappedConfigSelector(vec_const)
149  == jmodel_composite.JointMappedConfigSelector(vec_const));
150 
151  BOOST_CHECK(jmodel.jointConfigSelector(vec) == jmodel_composite.jointConfigSelector(vec));
152  BOOST_CHECK(
153  jmodel.jointConfigSelector(vec_const) == jmodel_composite.jointConfigSelector(vec_const));
154 
155  BOOST_CHECK(jmodel.jointVelocitySelector(vec) == jmodel_composite.jointVelocitySelector(vec));
156  BOOST_CHECK(
157  jmodel.jointVelocitySelector(vec_const) == jmodel_composite.jointVelocitySelector(vec_const));
158 
159  BOOST_CHECK(
160  jmodel.JointMappedVelocitySelector(vec) == jmodel_composite.JointMappedVelocitySelector(vec));
161  BOOST_CHECK(
162  jmodel.JointMappedVelocitySelector(vec_const)
163  == jmodel_composite.JointMappedVelocitySelector(vec_const));
164 
165  BOOST_CHECK(jmodel.jointCols(mat) == jmodel_composite.jointCols(mat));
166  BOOST_CHECK(jmodel.jointCols(mat_const) == jmodel_composite.jointCols(mat_const));
167  BOOST_CHECK(jmodel.jointExtendedModelCols(mat) == jmodel_composite.jointExtendedModelCols(mat));
168  BOOST_CHECK(
169  jmodel.jointExtendedModelCols(mat_const) == jmodel_composite.jointExtendedModelCols(mat_const));
170 }
171 
173 {
174 
175  template<typename JointModel>
177  {
178  JointModel jmodel;
179  jmodel.setIndexes(0, 0, 0);
180 
181  test_joint_methods(jmodel);
182  }
183 
184  // void operator()(const JointModelBase<JointModelComposite> &) const
185  // {
186  // JointModelComposite jmodel_composite;
187  // jmodel_composite.addJoint(pinocchio::JointModelRX());
188  // jmodel_composite.addJoint(pinocchio::JointModelRY());
189  // jmodel_composite.setIndexes(0,0,0);
190  //
191  // test_joint_methods(jmodel_composite);
192  // }
193 
195  {
196  JointModelRevoluteUnaligned jmodel(1.5, 1., 0.);
197  jmodel.setIndexes(0, 0, 0);
198 
199  test_joint_methods(jmodel);
200  }
201 
203  {
204  JointModelPrismaticUnaligned jmodel(1.5, 1., 0.);
205  jmodel.setIndexes(0, 0, 0);
206  test_joint_methods(jmodel);
207  }
208 };
209 
210 BOOST_AUTO_TEST_SUITE(BOOST_TEST_MODULE)
211 
213 {
214  typedef boost::variant<
219  Variant;
220 
221  boost::mpl::for_each<Variant::types>(TestJointComposite());
222 }
223 
225 {
226  JointModelComposite jmodel_composite;
227  jmodel_composite.addJoint(JointModelRZ())
228  .addJoint(JointModelRY(), SE3::Random())
229  .addJoint(JointModelRX());
230  BOOST_CHECK_MESSAGE(jmodel_composite.nq() == 3, "Chain did not work");
231  BOOST_CHECK_MESSAGE(jmodel_composite.nv() == 3, "Chain did not work");
232  BOOST_CHECK_MESSAGE(jmodel_composite.njoints == 3, "Chain did not work");
233 }
234 
236 {
237  JointModelSphericalZYX jmodel_spherical;
238  jmodel_spherical.setIndexes(0, 0, 0);
239 
240  JointModelComposite jmodel_composite((JointModelRZ()));
241  jmodel_composite.addJoint(JointModelRY());
242  jmodel_composite.addJoint(JointModelRX());
243 
244  test_joint_methods(jmodel_spherical, jmodel_composite);
245 }
246 
247 BOOST_AUTO_TEST_CASE(vsTranslation)
248 {
249  JointModelTranslation jmodel_translation;
250  jmodel_translation.setIndexes(0, 0, 0);
251 
252  JointModelComposite jmodel_composite((JointModelPX()));
253  jmodel_composite.addJoint(JointModelPY());
254  jmodel_composite.addJoint(JointModelPZ());
255 
256  test_joint_methods(jmodel_translation, jmodel_composite);
257 }
258 
259 BOOST_AUTO_TEST_CASE(test_recursive_variant)
260 {
262  JointModelComposite jmodel_composite_two_rx((JointModelRX()));
263  jmodel_composite_two_rx.addJoint(JointModelRY());
264 
267  JointModelComposite jmodel_composite_recursive((JointModelFreeFlyer()));
268  jmodel_composite_recursive.addJoint(JointModelPlanar());
269  jmodel_composite_recursive.addJoint(jmodel_composite_two_rx);
270 }
271 
273 {
274  JointModelComposite jmodel_composite_planar((JointModelPX()));
275  jmodel_composite_planar.addJoint(JointModelPY());
276  jmodel_composite_planar.addJoint(JointModelRZ());
277  jmodel_composite_planar.setIndexes(0, 0, 0, 0);
278 
279  JointDataComposite jdata_composite_planar = jmodel_composite_planar.createData();
280 
281  VectorXd q1(VectorXd::Random(3));
282  VectorXd q1_dot(VectorXd::Random(3));
283 
284  JointModelComposite model_copy = jmodel_composite_planar;
285  JointDataComposite data_copy = model_copy.createData();
286 
287  BOOST_CHECK_MESSAGE(
288  model_copy.nq() == jmodel_composite_planar.nq(), "Test Copy Composite, nq are differents");
289  BOOST_CHECK_MESSAGE(
290  model_copy.nv() == jmodel_composite_planar.nv(), "Test Copy Composite, nv are differents");
291 
292  jmodel_composite_planar.calc(jdata_composite_planar, q1, q1_dot);
293  model_copy.calc(data_copy, q1, q1_dot);
294 }
295 
296 BOOST_AUTO_TEST_CASE(test_kinematics)
297 {
298  Model model;
299  JointModelComposite jmodel_composite;
300 
301  SE3 config = SE3::Random();
302  JointIndex parent = 0;
303 
304  for (int i = 0; i < 10; i++)
305  {
306  parent = model.addJoint(parent, JointModelRX(), config, "joint");
307  jmodel_composite.addJoint(JointModelRX(), config);
308 
309  config.setRandom();
310  }
311 
312  Data data(model);
313 
314  Model model_c;
315  model_c.addJoint(0, jmodel_composite, SE3::Identity(), "joint");
316 
317  Data data_c(model_c);
318 
319  BOOST_CHECK(model.nv == model_c.nv);
320  BOOST_CHECK(model.nq == model_c.nq);
321 
322  VectorXd q(VectorXd::Random(model.nv));
324  forwardKinematics(model_c, data_c, q);
325 
326  BOOST_CHECK(data.oMi.back().isApprox(data_c.oMi.back()));
327 
328  q.setRandom(model.nq);
329  VectorXd v(VectorXd::Random(model.nv));
331  forwardKinematics(model_c, data_c, q, v);
332 
333  BOOST_CHECK(data.oMi.back().isApprox(data_c.oMi.back()));
334  BOOST_CHECK(data.v.back().isApprox(data_c.v.back()));
335 
336  q.setRandom(model.nq);
337  v.setRandom(model.nv);
338  VectorXd a(VectorXd::Random(model.nv));
340  forwardKinematics(model_c, data_c, q, v, a);
341 
342  BOOST_CHECK(data.oMi.back().isApprox(data_c.oMi.back()));
343  BOOST_CHECK(data.v.back().isApprox(data_c.v.back()));
344  BOOST_CHECK(data.a.back().isApprox(data_c.a.back()));
345 }
346 
347 BOOST_AUTO_TEST_SUITE_END()
pinocchio::JointModelRevoluteUnalignedTpl::setIndexes
void setIndexes(JointIndex id, int q, int v)
Definition: joint-model-base.hpp:205
pinocchio::JointModelBase::createData
JointDataDerived createData() const
Definition: joint-model-base.hpp:94
pinocchio::JointModelCompositeTpl::createData
JointDataDerived createData() const
Definition: joint-composite.hpp:301
test_joint_methods
void test_joint_methods(const JointModelBase< JointModel > &jmodel, JointModelComposite &jmodel_composite)
Definition: joint-composite.cpp:28
pinocchio::JointModelCompositeTpl::jointExtendedModelCols
SizeDepType< NV >::template ColsReturn< D >::ConstType jointExtendedModelCols(const Eigen::MatrixBase< D > &A) const
Definition: joint-composite.hpp:533
pinocchio::JointDataTpl::v
Motion_t v() const
Definition: joint-generic.hpp:134
Eigen
test-cpp2pybind11.m
m
Definition: test-cpp2pybind11.py:25
pinocchio::JointModelFreeFlyer
JointModelFreeFlyerTpl< context::Scalar > JointModelFreeFlyer
Definition: multibody/joint/fwd.hpp:110
pinocchio::JointModelTranslationTpl::setIndexes
void setIndexes(JointIndex id, int q, int v)
Definition: joint-model-base.hpp:205
pinocchio::DataTpl
Definition: context/generic.hpp:25
pinocchio::JointModelTranslation
JointModelTranslationTpl< context::Scalar > JointModelTranslation
Definition: multibody/joint/fwd.hpp:126
pinocchio::forwardKinematics
void forwardKinematics(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
Update the joint placements according to the current joint configuration.
pinocchio::JointDataCompositeTpl::c
Bias_t c
Definition: joint-composite.hpp:137
pinocchio::JointModelBase
Definition: joint-model-base.hpp:78
lambdas.parent
parent
Definition: lambdas.py:21
TestJointComposite::operator()
void operator()(const JointModelBase< JointModel > &) const
Definition: joint-composite.cpp:176
pinocchio::SE3
context::SE3 SE3
Definition: spatial/fwd.hpp:59
inverse-kinematics.i
int i
Definition: inverse-kinematics.py:17
kinematics.hpp
pinocchio::JointModelRX
JointModelRevoluteTpl< context::Scalar, context::Options, 0 > JointModelRX
Definition: joint-revolute.hpp:877
pinocchio::JointModelBase::jointConfigSelector
SizeDepType< NQ >::template SegmentReturn< D >::ConstType jointConfigSelector(const Eigen::MatrixBase< D > &a) const
Definition: joint-model-base.hpp:322
setup.data
data
Definition: cmake/cython/setup.in.py:48
pinocchio::JointModelSpherical
JointModelSphericalTpl< context::Scalar > JointModelSpherical
Definition: multibody/joint/fwd.hpp:73
vec
vec
pinocchio::JointDataTpl
Definition: multibody/joint/fwd.hpp:176
pinocchio::JointModelTranslationTpl
Definition: multibody/joint/fwd.hpp:126
pinocchio::JointDataCompositeTpl::U
U_t U
Definition: joint-composite.hpp:140
pinocchio::JointDataTpl::c
Bias_t c() const
Definition: joint-generic.hpp:138
pinocchio::JointModelCompositeTpl::addJoint
JointModelDerived & addJoint(const JointModelBase< JointModel > &jmodel, const SE3 &placement=SE3::Identity())
Add a joint to the vector of joints.
Definition: joint-composite.hpp:286
pinocchio::JointModelBase::jointVelocitySelector
SizeDepType< NV >::template SegmentReturn< D >::ConstType jointVelocitySelector(const Eigen::MatrixBase< D > &a) const
Definition: joint-model-base.hpp:383
pinocchio::ModelTpl::addJoint
JointIndex addJoint(const JointIndex parent, const JointModel &joint_model, const SE3 &joint_placement, const std::string &joint_name)
Add a joint to the kinematic tree with infinite bounds.
pinocchio::JointModelBase::calc_aba
void calc_aba(JointDataDerived &data, const Eigen::MatrixBase< VectorLike > &armature, const Eigen::MatrixBase< Matrix6Like > &I, const bool update_I=false) const
Definition: joint-model-base.hpp:134
pinocchio::JointModelCompositeTpl::JointMappedVelocitySelector
SizeDepType< NV >::template SegmentReturn< D >::ConstType JointMappedVelocitySelector(const Eigen::MatrixBase< D > &a) const
Definition: joint-composite.hpp:501
pinocchio::JointModelPlanar
JointModelPlanarTpl< context::Scalar > JointModelPlanar
Definition: multibody/joint/fwd.hpp:118
joint-composite.hpp
pinocchio::JointModelRY
JointModelRevoluteTpl< context::Scalar, context::Options, 1 > JointModelRY
Definition: joint-revolute.hpp:881
pinocchio::JointModelCompositeTpl::JointMappedConfigSelector
SizeDepType< NQ >::template SegmentReturn< D >::ConstType JointMappedConfigSelector(const Eigen::MatrixBase< D > &a) const
Definition: joint-composite.hpp:475
pinocchio::JointModelTpl::setIndexes
void setIndexes(JointIndex id, int nq, int nv)
Definition: joint-generic.hpp:450
BOOST_AUTO_TEST_CASE
BOOST_AUTO_TEST_CASE(test_basic)
Definition: joint-composite.cpp:212
TestJointComposite::operator()
void operator()(const JointModelBase< JointModelRevoluteUnaligned > &) const
Definition: joint-composite.cpp:194
joint-configuration.hpp
pinocchio::JointModelSphericalZYXTpl::setIndexes
void setIndexes(JointIndex id, int q, int v)
Definition: joint-model-base.hpp:205
pinocchio::JointData
JointDataTpl< context::Scalar > JointData
Definition: multibody/joint/fwd.hpp:176
pinocchio::JointModelTpl
Definition: multibody/joint/fwd.hpp:169
mat
mat
pinocchio::JointModelBase::shortname
std::string shortname() const
Definition: joint-model-base.hpp:241
pinocchio::JointModelRZ
JointModelRevoluteTpl< context::Scalar, context::Options, 2 > JointModelRZ
Definition: joint-revolute.hpp:885
pinocchio::JointDataCompositeTpl::Dinv
D_t Dinv
Definition: joint-composite.hpp:141
pinocchio::JointModelPY
JointModelPrismaticTpl< context::Scalar, context::Options, 1 > JointModelPY
Definition: joint-prismatic.hpp:785
pinocchio::JointDataTpl::U
U_t U() const
Definition: joint-generic.hpp:144
pinocchio::JointModelBase::idx_vExtended
int idx_vExtended() const
Definition: joint-model-base.hpp:179
pinocchio::JointModelCompositeTpl::jointCols
SizeDepType< NV >::template ColsReturn< D >::ConstType jointCols(const Eigen::MatrixBase< D > &A) const
Definition: joint-composite.hpp:527
pinocchio::JointDataCompositeTpl::M
Transformation_t M
Definition: joint-composite.hpp:135
pinocchio::JointDataCompositeTpl::UDinv
UD_t UDinv
Definition: joint-composite.hpp:142
pinocchio::JointDataTpl::UDinv
UD_t UDinv() const
Definition: joint-generic.hpp:152
pinocchio::JointModelCompositeTpl::njoints
int njoints
Number of joints contained in the JointModelComposite.
Definition: joint-composite.hpp:694
pinocchio::JointModelBase::jointExtendedModelCols
SizeDepType< NVExtended >::template ColsReturn< D >::ConstType jointExtendedModelCols(const Eigen::MatrixBase< D > &A) const
Definition: joint-model-base.hpp:421
pinocchio::JointModelCompositeTpl::jointConfigSelector
SizeDepType< NQ >::template SegmentReturn< D >::ConstType jointConfigSelector(const Eigen::MatrixBase< D > &a) const
Definition: joint-composite.hpp:488
pinocchio::JointModelBase::nq
int nq() const
Definition: joint-model-base.hpp:148
pinocchio::JointDataTpl::S
Constraint_t S() const
Definition: joint-generic.hpp:126
pinocchio::JointModelPZ
JointModelPrismaticTpl< context::Scalar, context::Options, 2 > JointModelPZ
Definition: joint-prismatic.hpp:789
pinocchio::JointModelCompositeTpl::calc
void calc(JointDataDerived &data, const Eigen::MatrixBase< ConfigVectorType > &qs) const
pinocchio::q
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > & q
Definition: joint-configuration.hpp:1083
pinocchio::JointModelRUBX
JointModelRevoluteUnboundedTpl< context::Scalar, context::Options, 0 > JointModelRUBX
Definition: joint-revolute-unbounded.hpp:239
a
Vec3f a
pinocchio::JointModelBase::idx_v
int idx_v() const
Definition: joint-model-base.hpp:175
pinocchio::v
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > const Eigen::MatrixBase< TangentVectorType > & v
Definition: joint-configuration.hpp:1084
pinocchio::JointModelBase::JointMappedVelocitySelector
SizeDepType< NV >::template SegmentReturn< D >::ConstType JointMappedVelocitySelector(const Eigen::MatrixBase< D > &a) const
Definition: joint-model-base.hpp:353
pinocchio::JointModelBase::jointCols
SizeDepType< NV >::template ColsReturn< D >::ConstType jointCols(const Eigen::MatrixBase< D > &A) const
Definition: joint-model-base.hpp:414
pinocchio::JointModelRevoluteUnalignedTpl
Definition: multibody/joint/fwd.hpp:38
pinocchio::JointModelPrismaticUnalignedTpl
Definition: multibody/joint/fwd.hpp:94
pinocchio::JointModelCompositeTpl
Definition: multibody/joint/fwd.hpp:141
pinocchio::JointModelBase::idx_q
int idx_q() const
Definition: joint-model-base.hpp:171
pinocchio::JointDataTpl::Dinv
D_t Dinv() const
Definition: joint-generic.hpp:148
pinocchio::ModelTpl::nv
int nv
Dimension of the velocity vector space.
Definition: multibody/model.hpp:101
pinocchio::JointModelCompositeTpl::calc_aba
void calc_aba(JointDataDerived &data, const Eigen::MatrixBase< VectorLike > &armature, const Eigen::MatrixBase< Matrix6Like > &I, const bool update_I) const
Definition: joint-composite.hpp:354
pinocchio::JointModelSphericalZYXTpl
Definition: multibody/joint/fwd.hpp:81
pinocchio::JointModelBase::calc
void calc(JointDataDerived &data, const Eigen::MatrixBase< ConfigVectorType > &qs) const
Definition: joint-model-base.hpp:110
pinocchio::JointModelPrismaticUnalignedTpl::setIndexes
void setIndexes(JointIndex id, int q, int v)
Definition: joint-model-base.hpp:205
TestJointComposite::operator()
void operator()(const JointModelBase< JointModelPrismaticUnaligned > &) const
Definition: joint-composite.cpp:202
pinocchio::q1
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorIn1 > const Eigen::MatrixBase< ConfigVectorIn2 > & q1
Definition: joint-configuration.hpp:1138
pinocchio::JointDataCompositeTpl
Definition: multibody/joint/fwd.hpp:148
pinocchio::JointIndex
Index JointIndex
Definition: multibody/fwd.hpp:26
pinocchio::DataTpl::Matrix6x
Eigen::Matrix< Scalar, 6, Eigen::Dynamic, Options > Matrix6x
The 6d jacobian type (temporary)
Definition: multibody/data.hpp:92
pinocchio::JointModelPX
JointModelPrismaticTpl< context::Scalar, context::Options, 0 > JointModelPX
Definition: joint-prismatic.hpp:781
pinocchio::JointModelSphericalZYX
JointModelSphericalZYXTpl< context::Scalar > JointModelSphericalZYX
Definition: multibody/joint/fwd.hpp:81
pinocchio::VectorSpaceOperationTpl
Definition: vector-space.hpp:16
pinocchio::JointModelRevoluteUnaligned
JointModelRevoluteUnalignedTpl< context::Scalar > JointModelRevoluteUnaligned
Definition: multibody/joint/fwd.hpp:38
pinocchio::JointDataCompositeTpl::v
Motion_t v
Definition: joint-composite.hpp:136
pinocchio::JointModelBase::nv
int nv() const
Definition: joint-model-base.hpp:144
pinocchio::ModelTpl< Scalar >::ConfigVectorType
VectorXs ConfigVectorType
Dense vectorized version of a joint configuration vector.
Definition: multibody/model.hpp:87
pinocchio::JointModelPrismaticUnaligned
JointModelPrismaticUnalignedTpl< context::Scalar > JointModelPrismaticUnaligned
Definition: multibody/joint/fwd.hpp:94
pinocchio::MotionTpl
Definition: context/casadi.hpp:28
pinocchio::JointDataCompositeTpl::S
Constraint_t S
Definition: joint-composite.hpp:134
pinocchio::ModelTpl< Scalar >
pinocchio::JointModelRevoluteUnboundedTpl
Definition: multibody/joint/fwd.hpp:55
pinocchio::JointDataTpl::M
Transformation_t M() const
Definition: joint-generic.hpp:130
setup.config
config
Definition: cmake/cython/setup.in.py:103
TestJointComposite
Definition: joint-composite.cpp:172
pinocchio::JointModelBase::JointMappedConfigSelector
SizeDepType< NQ >::template SegmentReturn< D >::ConstType JointMappedConfigSelector(const Eigen::MatrixBase< D > &a) const
Definition: joint-model-base.hpp:292
pinocchio::ModelTpl::nq
int nq
Dimension of the configuration vector representation.
Definition: multibody/model.hpp:98
pinocchio::model
JointCollectionTpl & model
Definition: joint-configuration.hpp:1082
pinocchio::JointModelCompositeTpl::jointVelocitySelector
SizeDepType< NV >::template SegmentReturn< D >::ConstType jointVelocitySelector(const Eigen::MatrixBase< D > &a) const
Definition: joint-composite.hpp:514
pinocchio
Main pinocchio namespace.
Definition: timings.cpp:33
pinocchio::JointModelBase::id
JointIndex id() const
Definition: joint-model-base.hpp:183
pinocchio::JointModelRUBY
JointModelRevoluteUnboundedTpl< context::Scalar, context::Options, 1 > JointModelRUBY
Definition: joint-revolute-unbounded.hpp:243


pinocchio
Author(s):
autogenerated on Thu Apr 10 2025 02:42:18