joints-models.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2015-2022 CNRS INRIA
3 //
4 
5 #ifndef __pinocchio_python_joints_models_hpp__
6 #define __pinocchio_python_joints_models_hpp__
7 
8 #include <boost/python.hpp>
9 
13 
15 
16 namespace pinocchio
17 {
18  namespace python
19  {
20  namespace bp = boost::python;
21 
22  // generic expose_joint_model : do nothing special
23  template<class T>
24  bp::class_<T> & expose_joint_model(bp::class_<T> & cl)
25  {
26  return cl;
27  }
28 
29  // specialization for JointModelRevoluteUnaligned
30  template<>
31  bp::class_<context::JointModelRevoluteUnaligned> &
32  expose_joint_model<context::JointModelRevoluteUnaligned>(
33  bp::class_<context::JointModelRevoluteUnaligned> & cl)
34  {
35  return cl
36  .def(bp::init<context::Scalar, context::Scalar, context::Scalar>(
37  bp::args("self", "x", "y", "z"),
38  "Init JointModelRevoluteUnaligned from the components x, y, z of the axis"))
39  .def(bp::init<const context::Vector3s &>(
40  bp::args("self", "axis"),
41  "Init JointModelRevoluteUnaligned from an axis with x-y-z components"))
42  .def_readwrite(
44  "Rotation axis of the JointModelRevoluteUnaligned.");
45  }
46 
47  // specialization for JointModelPrismaticUnaligned
48  template<>
49  bp::class_<context::JointModelPrismaticUnaligned> &
50  expose_joint_model<context::JointModelPrismaticUnaligned>(
51  bp::class_<context::JointModelPrismaticUnaligned> & cl)
52  {
53  return cl
54  .def(bp::init<context::Scalar, context::Scalar, context::Scalar>(
55  bp::args("self", "x", "y", "z"),
56  "Init JointModelPrismaticUnaligned from the components x, y, z of the axis"))
57  .def(bp::init<const context::Vector3s &>(
58  bp::args("self", "axis"),
59  "Init JointModelPrismaticUnaligned from an axis with x-y-z components"))
60  .def_readwrite(
62  "Translation axis of the JointModelPrismaticUnaligned.");
63  }
64 
65  // specialization for JointModelHelicalUnaligned
66  template<>
67  bp::class_<context::JointModelHelicalUnaligned> &
68  expose_joint_model<context::JointModelHelicalUnaligned>(
69  bp::class_<context::JointModelHelicalUnaligned> & cl)
70  {
71  return cl
72  .def(bp::init<context::Scalar, context::Scalar, context::Scalar, context::Scalar>(
73  bp::args("self", "x", "y", "z", "pitch"),
74  "Init JointModelHelicalUnaligned from the components x, y, z of the axis and the pitch"))
75  .def(bp::init<const context::Vector3s &, context::Scalar>(
76  bp::args("self", "axis", "pitch"),
77  "Init JointModelHelicalUnaligned from an axis with x-y-z components and the pitch"))
78  .def_readwrite(
80  "Translation axis of the JointModelHelicalUnaligned.")
81  .def_readwrite(
83  "Pitch h of the JointModelHelicalUnaligned.");
84  }
85 
86  // specialization for JointModelHelical
87  template<>
88  bp::class_<context::JointModelHX> &
89  expose_joint_model<context::JointModelHX>(bp::class_<context::JointModelHX> & cl)
90  {
91  return cl
92  .def(bp::init<context::Scalar>(
93  bp::args("self", "pitch"), "Init JointModelHX with pitch value"))
94  .def(bp::init<>(bp::args("self"), "Init JointModelHX with pitch 0.0"))
95  .def_readwrite("pitch", &context::JointModelHX::m_pitch, "Pitch h of the JointModelHX.");
96  }
97 
98  template<>
99  bp::class_<context::JointModelHY> &
100  expose_joint_model<context::JointModelHY>(bp::class_<context::JointModelHY> & cl)
101  {
102  return cl
103  .def(bp::init<context::Scalar>(
104  bp::args("self", "pitch"), "Init JointModelHY with pitch value."))
105  .def(bp::init<>(bp::args("self"), "Init JointModelHY with pitch 0.0"))
106  .def_readwrite("pitch", &context::JointModelHY::m_pitch, "Pitch h of the JointModelHY.");
107  }
108 
109  template<>
110  bp::class_<context::JointModelHZ> &
111  expose_joint_model<context::JointModelHZ>(bp::class_<context::JointModelHZ> & cl)
112  {
113  return cl
114  .def(bp::init<context::Scalar>(
115  bp::args("self", "pitch"), "Init JointModelHZ with pitch value"))
116  .def(bp::init<>(bp::args("self"), "Init JointModelHZ with pitch 0.0"))
117  .def_readwrite("pitch", &context::JointModelHZ::m_pitch, "Pitch h of the JointModelHZ.");
118  }
119 
120  // specialization for JointModelUniversal
121  template<>
122  bp::class_<context::JointModelUniversal> &
123  expose_joint_model<context::JointModelUniversal>(bp::class_<context::JointModelUniversal> & cl)
124  {
125  return cl
126  .def(bp::init<
129  bp::args("self", "x1", "y1", "z1", "x2", "y2", "z2"),
130  "Init JointModelUniversal from the components x, y, z of the axes"))
131  .def(bp::init<const context::Vector3s &, const context::Vector3s &>(
132  bp::args("self", "axis1", "axis2"),
133  "Init JointModelUniversal from two axes with x-y-z components"))
134  .def_readwrite(
136  "First rotation axis of the JointModelUniversal.")
137  .def_readwrite(
139  "Second rotation axis of the JointModelUniversal.");
140  }
141 
142  // specialization for JointModelComposite
143 
145  : public boost::static_visitor<context::JointModelComposite &>
146  {
149 
151  context::JointModelComposite & joint_composite, const context::SE3 & joint_placement)
152  : m_joint_composite(joint_composite)
154  {
155  }
156 
157  template<typename JointModelDerived>
158  context::JointModelComposite & operator()(JointModelDerived & jmodel) const
159  {
161  }
162  }; // struct JointModelCompositeAddJointVisitor
163 
165  context::JointModelComposite & joint_composite,
166  const context::JointModel & jmodel,
168  {
169  return boost::apply_visitor(
170  JointModelCompositeAddJointVisitor(joint_composite, joint_placement), jmodel.toVariant());
171  }
172 
174  : public boost::static_visitor<context::JointModelComposite *>
175  {
177 
180  {
181  }
182 
183  template<typename JointModelDerived>
184  context::JointModelComposite * operator()(JointModelDerived & jmodel) const
185  {
187  }
188  }; // struct JointModelCompositeConstructorVisitor
189 
191  {
192  return boost::apply_visitor(
194  }
195 
198  {
199  return boost::apply_visitor(JointModelCompositeConstructorVisitor(joint_placement), jmodel);
200  }
201 
202  template<>
203  bp::class_<context::JointModelComposite> &
204  expose_joint_model<context::JointModelComposite>(bp::class_<context::JointModelComposite> & cl)
205  {
206  return cl
207  .def(bp::init<const size_t>(
208  bp::args("self", "size"), "Init JointModelComposite with a defined size"))
209  .def(
210  "__init__",
211  bp::make_constructor(init_proxy1, bp::default_call_policies(), bp::args("joint_model")),
212  "Init JointModelComposite from a joint")
213  .def(
214  "__init__",
215  bp::make_constructor(
216  init_proxy2, bp::default_call_policies(), bp::args("joint_model", "joint_placement")),
217  "Init JointModelComposite from a joint and a placement")
218  .add_property("joints", &context::JointModelComposite::joints)
219  .add_property("jointPlacements", &context::JointModelComposite::jointPlacements)
220  .add_property("njoints", &context::JointModelComposite::njoints)
221  .def(
222  "addJoint", &addJoint_proxy,
223  (bp::arg("self"), bp::arg("joint_model"),
224  bp::arg("joint_placement") = context::SE3::Identity()),
225  "Add a joint to the vector of joints.", bp::return_internal_reference<>())
226 
227 #ifndef PINOCCHIO_PYTHON_SKIP_COMPARISON_OPERATIONS
228  .def(bp::self == bp::self)
229  .def(bp::self != bp::self)
230 #endif
231 
232  ;
233  }
234  } // namespace python
235 } // namespace pinocchio
236 
237 #endif // ifndef __pinocchio_python_joint_models_hpp__
init
void init(bool compute_local_aabb=true)
boost::python
pinocchio::python::expose_joint_model
bp::class_< T > & expose_joint_model(bp::class_< T > &cl)
Definition: joints-models.hpp:24
pinocchio::python::JointModelCompositeAddJointVisitor::JointModelCompositeAddJointVisitor
JointModelCompositeAddJointVisitor(context::JointModelComposite &joint_composite, const context::SE3 &joint_placement)
Definition: joints-models.hpp:150
pinocchio::JointModelUniversalTpl::axis2
Vector3 axis2
Definition: joint-universal.hpp:610
pinocchio::python::JointModelCompositeAddJointVisitor::operator()
context::JointModelComposite & operator()(JointModelDerived &jmodel) const
Definition: joints-models.hpp:158
pinocchio::python::JointModelCompositeAddJointVisitor::m_joint_composite
context::JointModelComposite & m_joint_composite
Definition: joints-models.hpp:147
pinocchio::SE3Tpl< Scalar, Options >
pinocchio::python::JointModelCompositeAddJointVisitor
Definition: joints-models.hpp:144
eigen-to-python.hpp
pinocchio::python::JointModelCompositeAddJointVisitor::m_joint_placement
const context::SE3 & m_joint_placement
Definition: joints-models.hpp:148
pinocchio::JointModelTpl::toVariant
JointModelVariant & toVariant()
Definition: joint-generic.hpp:308
pinocchio::JointModelHelicalUnalignedTpl::axis
Vector3 axis
Definition: joint-helical-unaligned.hpp:767
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:279
joint-composite.hpp
joint-collection.hpp
pinocchio::JointModelCompositeTpl::joints
JointModelVector joints
Vector of joints contained in the joint composite.
Definition: joint-composite.hpp:447
pinocchio::python::init_proxy2
static context::JointModelComposite * init_proxy2(const context::JointModel &jmodel, const context::SE3 &joint_placement)
Definition: joints-models.hpp:197
joint-generic.hpp
python
pinocchio::python::JointModelCompositeConstructorVisitor::operator()
context::JointModelComposite * operator()(JointModelDerived &jmodel) const
Definition: joints-models.hpp:184
pinocchio::JointModelTpl
Definition: multibody/joint/fwd.hpp:155
pinocchio::python::init_proxy1
static context::JointModelComposite * init_proxy1(const context::JointModel &jmodel)
Definition: joints-models.hpp:190
pinocchio::JointModelCompositeTpl::njoints
int njoints
Number of joints contained in the JointModelComposite.
Definition: joint-composite.hpp:576
pinocchio::python::JointModelCompositeConstructorVisitor::m_joint_placement
const context::SE3 & m_joint_placement
Definition: joints-models.hpp:176
pinocchio::python::context::JointModelComposite
JointModelCompositeTpl< Scalar > JointModelComposite
Definition: bindings/python/context/generic.hpp:136
pinocchio::python::JointModelCompositeConstructorVisitor
Definition: joints-models.hpp:173
pinocchio::JointModelCompositeTpl
Definition: multibody/joint/fwd.hpp:141
append-urdf-model-with-another-model.joint_placement
joint_placement
Definition: append-urdf-model-with-another-model.py:29
pinocchio::JointModelHelicalUnalignedTpl::m_pitch
Scalar m_pitch
Definition: joint-helical-unaligned.hpp:768
pinocchio::python::JointModelCompositeConstructorVisitor::JointModelCompositeConstructorVisitor
JointModelCompositeConstructorVisitor(const context::SE3 &joint_placement)
Definition: joints-models.hpp:178
pinocchio::JointModelHelicalTpl::m_pitch
Scalar m_pitch
Definition: joint-helical.hpp:936
pinocchio::SE3Tpl< Scalar, Options >::Identity
static SE3Tpl Identity()
Definition: spatial/se3-tpl.hpp:136
cl
cl
pinocchio::JointModelPrismaticUnalignedTpl::axis
Vector3 axis
3d main axis of the joint.
Definition: joint-prismatic-unaligned.hpp:706
pinocchio::JointModelRevoluteUnalignedTpl::axis
Vector3 axis
3d main axis of the joint.
Definition: joint-revolute-unaligned.hpp:730
pinocchio::python::addJoint_proxy
static context::JointModelComposite & addJoint_proxy(context::JointModelComposite &joint_composite, const context::JointModel &jmodel, const context::SE3 &joint_placement=context::SE3::Identity())
Definition: joints-models.hpp:164
pinocchio::python::context::Scalar
PINOCCHIO_PYTHON_SCALAR_TYPE Scalar
Definition: bindings/python/context/generic.hpp:37
pinocchio
Main pinocchio namespace.
Definition: timings.cpp:27
pinocchio::JointModelUniversalTpl::axis1
Vector3 axis1
3d main axii of the joint.
Definition: joint-universal.hpp:609


pinocchio
Author(s):
autogenerated on Sat Jun 1 2024 02:40:37