spatial/se3-tpl.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2015-2020 CNRS INRIA
3 // Copyright (c) 2016 Wandercraft, 86 rue de Paris 91400 Orsay, France.
4 //
5 
6 #ifndef __pinocchio_se3_tpl_hpp__
7 #define __pinocchio_se3_tpl_hpp__
8 
11 
15 
16 #include <Eigen/Geometry>
17 
18 namespace pinocchio
19 {
20  template<typename _Scalar, int _Options>
21  struct traits< SE3Tpl<_Scalar,_Options> >
22  {
23  enum {
24  Options = _Options,
25  LINEAR = 0,
26  ANGULAR = 3
27  };
28  typedef _Scalar Scalar;
29  typedef Eigen::Matrix<Scalar,3,1,Options> Vector3;
30  typedef Eigen::Matrix<Scalar,4,1,Options> Vector4;
31  typedef Eigen::Matrix<Scalar,6,1,Options> Vector6;
32  typedef Eigen::Matrix<Scalar,3,3,Options> Matrix3;
33  typedef Eigen::Matrix<Scalar,4,4,Options> Matrix4;
34  typedef Eigen::Matrix<Scalar,6,6,Options> Matrix6;
36  typedef typename PINOCCHIO_EIGEN_REF_TYPE(Matrix3) AngularRef;
37  typedef typename PINOCCHIO_EIGEN_REF_CONST_TYPE(Matrix3) ConstAngularRef;
39  typedef typename PINOCCHIO_EIGEN_REF_TYPE(Vector3) LinearRef;
40  typedef typename PINOCCHIO_EIGEN_REF_CONST_TYPE(Vector3) ConstLinearRef;
44  }; // traits SE3Tpl
45 
46  template<typename _Scalar, int _Options>
47  struct SE3Tpl : public SE3Base< SE3Tpl<_Scalar,_Options> >
48  {
49  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
52  typedef Eigen::Quaternion<Scalar,Options> Quaternion;
53  typedef typename traits<SE3Tpl>::Vector3 Vector3;
54  typedef typename traits<SE3Tpl>::Matrix3 Matrix3;
55  typedef typename traits<SE3Tpl>::Matrix4 Matrix4;
56  typedef typename traits<SE3Tpl>::Vector4 Vector4;
57  typedef typename traits<SE3Tpl>::Matrix6 Matrix6;
58 
59  using Base::rotation;
60  using Base::translation;
61 
62  SE3Tpl(): rot(), trans() {};
63 
64  template<typename QuaternionLike,typename Vector3Like>
65  SE3Tpl(const Eigen::QuaternionBase<QuaternionLike> & quat,
66  const Eigen::MatrixBase<Vector3Like> & trans)
67  : rot(quat.matrix()), trans(trans)
68  {
69  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Vector3Like,3)
70  }
71 
72  template<typename Matrix3Like,typename Vector3Like>
73  SE3Tpl(const Eigen::MatrixBase<Matrix3Like> & R,
74  const Eigen::MatrixBase<Vector3Like> & trans)
75  : rot(R), trans(trans)
76  {
77  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Vector3Like,3)
78  EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(Matrix3Like,3,3)
79  }
80 
81  template<typename Matrix4Like>
82  explicit SE3Tpl(const Eigen::MatrixBase<Matrix4Like> & m)
83  : rot(m.template block<3,3>(LINEAR,LINEAR))
84  , trans(m.template block<3,1>(LINEAR,ANGULAR))
85  {
86  EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(Matrix4Like,4,4);
87  }
88 
89  SE3Tpl(int)
90  : rot(AngularType::Identity())
91  , trans(LinearType::Zero())
92  {}
93 
94  template<int O2>
97 
98  template<int O2>
100  {
101  rot = other.rotation();
102  trans = other.translation();
103  return *this;
104  }
105 
106  static SE3Tpl Identity()
107  {
108  return SE3Tpl(1);
109  }
110 
112  { rot.setIdentity (); trans.setZero (); return *this;}
113 
115  SE3Tpl inverse() const
116  {
117  return SE3Tpl(rot.transpose(), -rot.transpose()*trans);
118  }
119 
120  static SE3Tpl Random()
121  {
122  return SE3Tpl().setRandom();
123  }
124 
126  {
128  rot = q.matrix();
129  trans.setRandom();
130 
131  return *this;
132  }
133 
134  HomogeneousMatrixType toHomogeneousMatrix_impl() const
135  {
136  HomogeneousMatrixType M;
137  M.template block<3,3>(LINEAR,LINEAR) = rot;
138  M.template block<3,1>(LINEAR,ANGULAR) = trans;
139  M.template block<1,3>(ANGULAR,LINEAR).setZero();
140  M(3,3) = 1;
141  return M;
142  }
143 
145  ActionMatrixType toActionMatrix_impl() const
146  {
147  typedef Eigen::Block<ActionMatrixType,3,3> Block3;
148  ActionMatrixType M;
149  M.template block<3,3>(ANGULAR,ANGULAR)
150  = M.template block<3,3>(LINEAR,LINEAR) = rot;
151  M.template block<3,3>(ANGULAR,LINEAR).setZero();
152  Block3 B = M.template block<3,3>(LINEAR,ANGULAR);
153 
154  B.col(0) = trans.cross(rot.col(0));
155  B.col(1) = trans.cross(rot.col(1));
156  B.col(2) = trans.cross(rot.col(2));
157  return M;
158  }
159 
160  ActionMatrixType toActionMatrixInverse_impl() const
161  {
162  typedef Eigen::Block<ActionMatrixType,3,3> Block3;
163  ActionMatrixType M;
164  M.template block<3,3>(ANGULAR,ANGULAR)
165  = M.template block<3,3>(LINEAR,LINEAR) = rot.transpose();
166  Block3 C = M.template block<3,3>(ANGULAR,LINEAR); // used as temporary
167  Block3 B = M.template block<3,3>(LINEAR,ANGULAR);
168 
169 #define PINOCCHIO_INTERNAL_COMPUTATION(axis_id,v3_in,v3_out,R,res) \
170  CartesianAxis<axis_id>::cross(v3_in,v3_out); \
171  res.col(axis_id).noalias() = R.transpose() * v3_out;
172 
176 
177 #undef PINOCCHIO_INTERNAL_COMPUTATION
178 
179  C.setZero();
180  return M;
181  }
182 
183  ActionMatrixType toDualActionMatrix_impl() const
184  {
185  typedef Eigen::Block<ActionMatrixType,3,3> Block3;
186  ActionMatrixType M;
187  M.template block<3,3>(ANGULAR,ANGULAR)
188  = M.template block<3,3>(LINEAR,LINEAR) = rot;
189  M.template block<3,3>(LINEAR,ANGULAR).setZero();
190  Block3 B = M.template block<3,3>(ANGULAR,LINEAR);
191 
192  B.col(0) = trans.cross(rot.col(0));
193  B.col(1) = trans.cross(rot.col(1));
194  B.col(2) = trans.cross(rot.col(2));
195  return M;
196  }
197 
198  void disp_impl(std::ostream & os) const
199  {
200  os
201  << " R =\n" << rot << std::endl
202  << " p = " << trans.transpose() << std::endl;
203  }
204 
206 
208  template<typename D>
210  act_impl(const D & d) const
211  {
212  return d.se3Action(*this);
213  }
214 
216  template<typename D> typename SE3GroupAction<D>::ReturnType
217  actInv_impl(const D & d) const
218  {
219  return d.se3ActionInverse(*this);
220  }
221 
222  template<typename EigenDerived>
223  typename EigenDerived::PlainObject
224  actOnEigenObject(const Eigen::MatrixBase<EigenDerived> & p) const
225  { return (rotation()*p+translation()).eval(); }
226 
227  template<typename MapDerived>
228  Vector3 actOnEigenObject(const Eigen::MapBase<MapDerived> & p) const
229  { return Vector3(rotation()*p+translation()); }
230 
231  template<typename EigenDerived>
232  typename EigenDerived::PlainObject
233  actInvOnEigenObject(const Eigen::MatrixBase<EigenDerived> & p) const
234  { return (rotation().transpose()*(p-translation())).eval(); }
235 
236  template<typename MapDerived>
237  Vector3 actInvOnEigenObject(const Eigen::MapBase<MapDerived> & p) const
238  { return Vector3(rotation().transpose()*(p-translation())); }
239 
240  Vector3 act_impl(const Vector3 & p) const
241  { return Vector3(rotation()*p+translation()); }
242 
243  Vector3 actInv_impl(const Vector3 & p) const
244  { return Vector3(rotation().transpose()*(p-translation())); }
245 
246  template<int O2>
248  { return SE3Tpl(rot*m2.rotation()
249  ,translation()+rotation()*m2.translation());}
250 
251  template<int O2>
253  { return SE3Tpl(rot.transpose()*m2.rotation(),
254  rot.transpose()*(m2.translation()-translation()));}
255 
256  template<int O2>
258  { return this->act_impl(m2);}
259 
260  template<int O2>
261  bool isEqual(const SE3Tpl<Scalar,O2> & m2) const
262  {
263  return (rotation() == m2.rotation() && translation() == m2.translation());
264  }
265 
266  template<int O2>
268  const Scalar & prec = Eigen::NumTraits<Scalar>::dummy_precision()) const
269  {
270  return rotation().isApprox(m2.rotation(), prec)
271  && translation().isApprox(m2.translation(), prec);
272  }
273 
274  bool isIdentity(const Scalar & prec = Eigen::NumTraits<Scalar>::dummy_precision()) const
275  {
276  return rotation().isIdentity(prec) && translation().isZero(prec);
277  }
278 
279  ConstAngularRef rotation_impl() const { return rot; }
280  AngularRef rotation_impl() { return rot; }
281  void rotation_impl(const AngularType & R) { rot = R; }
282  ConstLinearRef translation_impl() const { return trans;}
283  LinearRef translation_impl() { return trans;}
284  void translation_impl(const LinearType & p) { trans = p; }
285 
287  template<typename NewScalar>
289  {
290  typedef SE3Tpl<NewScalar,Options> ReturnType;
291  ReturnType res(rot.template cast<NewScalar>(),
292  trans.template cast<NewScalar>());
293 
294  // During the cast, it may appear that the matrix is not normalized correctly.
295  // Force the normalization of the rotation part of the matrix.
297  return res;
298  }
299 
300  bool isNormalized(const Scalar & prec = Eigen::NumTraits<Scalar>::dummy_precision()) const
301  {
302  return isUnitary(rot,prec);
303  }
304 
305  void normalize()
306  {
307  rot = orthogonalProjection(rot);
308  }
309 
310  PlainType normalized() const
311  {
312  PlainType res(*this); res.normalize();
313  return res;
314  }
315 
327  template<typename OtherScalar>
328  static SE3Tpl Interpolate(const SE3Tpl & A, const SE3Tpl & B, const OtherScalar & alpha);
329 
330  protected:
331  AngularType rot;
332  LinearType trans;
333 
334  }; // class SE3Tpl
335 
336  namespace internal
337  {
338  template<typename Scalar, int Options>
340  {
341  template<typename T>
342  static void run(T &) {}
343  };
344 
345  template<typename Scalar, int Options, typename NewScalar>
347  {
348  template<typename T>
349  static void run(T & self)
350  {
351  if(pinocchio::cast<NewScalar>(Eigen::NumTraits<Scalar>::epsilon()) > Eigen::NumTraits<NewScalar>::epsilon())
352  self.normalize();
353  }
354  };
355 
356  }
357 
358 } // namespace pinocchio
359 
360 #endif // ifndef __pinocchio_se3_tpl_hpp__
361 
pinocchio::traits< SE3Tpl< _Scalar, _Options > >::Matrix3
Eigen::Matrix< Scalar, 3, 3, Options > Matrix3
Definition: spatial/se3-tpl.hpp:32
pinocchio::SE3Tpl::actOnEigenObject
Vector3 actOnEigenObject(const Eigen::MapBase< MapDerived > &p) const
Definition: spatial/se3-tpl.hpp:228
pinocchio::SE3Tpl::Matrix4
traits< SE3Tpl >::Matrix4 Matrix4
Definition: spatial/se3-tpl.hpp:55
m
float m
pinocchio::SE3Tpl::act_impl
SE3Tpl act_impl(const SE3Tpl< Scalar, O2 > &m2) const
Definition: spatial/se3-tpl.hpp:247
pinocchio::SE3Tpl::disp_impl
void disp_impl(std::ostream &os) const
Definition: spatial/se3-tpl.hpp:198
quaternion.hpp
fwd.hpp
pinocchio::SE3Tpl::act_impl
SE3GroupAction< D >::ReturnType act_impl(const D &d) const
— GROUP ACTIONS ON M6, F6 and I6 —
Definition: spatial/se3-tpl.hpp:210
pinocchio::SE3Tpl::Vector3
traits< SE3Tpl >::Vector3 Vector3
Definition: spatial/se3-tpl.hpp:53
pinocchio::SE3Tpl::act_impl
Vector3 act_impl(const Vector3 &p) const
Definition: spatial/se3-tpl.hpp:240
pinocchio::SE3Tpl::inverse
SE3Tpl inverse() const
aXb = bXa.inverse()
Definition: spatial/se3-tpl.hpp:115
omniidl_be_python_with_docstring.run
def run(tree, args)
Definition: cmake/hpp/idl/omniidl_be_python_with_docstring.py:140
pinocchio::quaternion::uniformRandom
void uniformRandom(Eigen::QuaternionBase< Derived > &q)
Uniformly random quaternion sphere.
Definition: math/quaternion.hpp:108
rotation.hpp
pinocchio::isUnitary
bool isUnitary(const Eigen::MatrixBase< MatrixLike > &mat, const typename MatrixLike::RealScalar &prec=Eigen::NumTraits< typename MatrixLike::Scalar >::dummy_precision())
Check whether the input matrix is Unitary within the given precision.
Definition: math/matrix.hpp:140
pinocchio::SE3Tpl::toActionMatrix_impl
ActionMatrixType toActionMatrix_impl() const
Vb.toVector() = bXa.toMatrix() * Va.toVector()
Definition: spatial/se3-tpl.hpp:145
simulation-pendulum.T
int T
Definition: simulation-pendulum.py:113
pinocchio::SE3Tpl::setRandom
SE3Tpl & setRandom()
Definition: spatial/se3-tpl.hpp:125
quat
quat
pinocchio::Options
Options
Definition: joint-configuration.hpp:746
pinocchio::SE3Tpl
Definition: spatial/fwd.hpp:38
pinocchio::SE3GroupAction::ReturnType
D ReturnType
Definition: spatial/se3.hpp:39
pinocchio::SE3Tpl::Matrix6
traits< SE3Tpl >::Matrix6 Matrix6
Definition: spatial/se3-tpl.hpp:57
pinocchio::PINOCCHIO_EIGEN_REF_CONST_TYPE
PINOCCHIO_EIGEN_REF_CONST_TYPE(Matrix6Like) operator*(const Eigen
Definition: joint-free-flyer.hpp:122
pinocchio::SE3Tpl::isNormalized
bool isNormalized(const Scalar &prec=Eigen::NumTraits< Scalar >::dummy_precision()) const
Definition: spatial/se3-tpl.hpp:300
pinocchio::SE3Tpl::rotation_impl
void rotation_impl(const AngularType &R)
Definition: spatial/se3-tpl.hpp:281
pinocchio::SE3Tpl::SE3Tpl
SE3Tpl()
Definition: spatial/se3-tpl.hpp:62
pinocchio::traits< SE3Tpl< _Scalar, _Options > >::Scalar
_Scalar Scalar
Definition: spatial/se3-tpl.hpp:28
pinocchio::SE3Tpl::rotation_impl
AngularRef rotation_impl()
Definition: spatial/se3-tpl.hpp:280
PINOCCHIO_INTERNAL_COMPUTATION
#define PINOCCHIO_INTERNAL_COMPUTATION(axis_id, v3_in, v3_out, R, res)
pinocchio::traits< SE3Tpl< _Scalar, _Options > >::Vector4
Eigen::Matrix< Scalar, 4, 1, Options > Vector4
Definition: spatial/se3-tpl.hpp:30
R
R
pinocchio::SE3Tpl::translation_impl
ConstLinearRef translation_impl() const
Definition: spatial/se3-tpl.hpp:282
pinocchio::SE3Tpl::cast
SE3Tpl< NewScalar, Options > cast() const
Definition: spatial/se3-tpl.hpp:288
pinocchio::SE3Tpl::Interpolate
static SE3Tpl Interpolate(const SE3Tpl &A, const SE3Tpl &B, const OtherScalar &alpha)
Linear interpolation on the SE3 manifold.
simulation-pendulum.rotation
rotation
Definition: simulation-pendulum.py:34
pinocchio::SE3Tpl::translation_impl
void translation_impl(const LinearType &p)
Definition: spatial/se3-tpl.hpp:284
pinocchio::traits< SE3Tpl< _Scalar, _Options > >::ActionMatrixType
Matrix6 ActionMatrixType
Definition: spatial/se3-tpl.hpp:41
pinocchio::SE3Tpl::isEqual
bool isEqual(const SE3Tpl< Scalar, O2 > &m2) const
Definition: spatial/se3-tpl.hpp:261
B
B
pinocchio::SE3Base::translation
ConstLinearRef translation() const
Definition: se3-base.hpp:38
pinocchio::traits< SE3Tpl< _Scalar, _Options > >::Vector3
Eigen::Matrix< Scalar, 3, 1, Options > Vector3
Definition: spatial/se3-tpl.hpp:29
pinocchio::SE3Tpl::Matrix3
traits< SE3Tpl >::Matrix3 Matrix3
Definition: spatial/se3-tpl.hpp:54
pinocchio::SE3Tpl::translation
ConstLinearRef translation() const
Definition: se3-base.hpp:38
pinocchio::SE3Tpl::SE3Tpl
SE3Tpl(const SE3Tpl< Scalar, O2 > &clone)
Definition: spatial/se3-tpl.hpp:95
dpendulum.p
p
Definition: dpendulum.py:6
res
res
pinocchio::SE3Tpl::translation_impl
LinearRef translation_impl()
Definition: spatial/se3-tpl.hpp:283
dcrba.C
C
Definition: dcrba.py:412
pinocchio::python::Scalar
SE3::Scalar Scalar
Definition: conversions.cpp:15
cartesian-axis.hpp
pinocchio::SE3Tpl::Vector4
traits< SE3Tpl >::Vector4 Vector4
Definition: spatial/se3-tpl.hpp:56
pinocchio::SE3Tpl::rotation
ConstAngularRef rotation() const
Definition: se3-base.hpp:37
se3-base.hpp
pinocchio::SE3Tpl::isApprox_impl
bool isApprox_impl(const SE3Tpl< Scalar, O2 > &m2, const Scalar &prec=Eigen::NumTraits< Scalar >::dummy_precision()) const
Definition: spatial/se3-tpl.hpp:267
pinocchio::SE3Tpl::isIdentity
bool isIdentity(const Scalar &prec=Eigen::NumTraits< Scalar >::dummy_precision()) const
Definition: spatial/se3-tpl.hpp:274
pinocchio::SE3Tpl::operator=
SE3Tpl & operator=(const SE3Tpl< Scalar, O2 > &other)
Definition: spatial/se3-tpl.hpp:99
M
M
pinocchio::SE3Tpl::SE3Tpl
SE3Tpl(const Eigen::QuaternionBase< QuaternionLike > &quat, const Eigen::MatrixBase< Vector3Like > &trans)
Definition: spatial/se3-tpl.hpp:65
pinocchio::SE3Tpl::rot
AngularType rot
Definition: spatial/se3-tpl.hpp:331
pinocchio::q
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > & q
Definition: joint-configuration.hpp:747
pinocchio::SE3Tpl::actInvOnEigenObject
Vector3 actInvOnEigenObject(const Eigen::MapBase< MapDerived > &p) const
Definition: spatial/se3-tpl.hpp:237
pinocchio::SE3Tpl::normalized
PlainType normalized() const
Definition: spatial/se3-tpl.hpp:310
pinocchio::SE3Tpl::actInvOnEigenObject
EigenDerived::PlainObject actInvOnEigenObject(const Eigen::MatrixBase< EigenDerived > &p) const
Definition: spatial/se3-tpl.hpp:233
clone
virtual CollisionGeometry * clone() const=0
pinocchio::SE3Tpl::actOnEigenObject
EigenDerived::PlainObject actOnEigenObject(const Eigen::MatrixBase< EigenDerived > &p) const
Definition: spatial/se3-tpl.hpp:224
pinocchio::SE3Base
Base class for rigid transformation.
Definition: se3-base.hpp:30
pinocchio::SE3Tpl::Random
static SE3Tpl Random()
Definition: spatial/se3-tpl.hpp:120
collision-with-point-clouds.translation
translation
Definition: collision-with-point-clouds.py:28
pinocchio::SE3Tpl::toHomogeneousMatrix_impl
HomogeneousMatrixType toHomogeneousMatrix_impl() const
Definition: spatial/se3-tpl.hpp:134
pinocchio::SE3Tpl::Quaternion
Eigen::Quaternion< Scalar, Options > Quaternion
Definition: spatial/se3-tpl.hpp:52
pinocchio::SE3Tpl::Identity
static SE3Tpl Identity()
Definition: spatial/se3-tpl.hpp:106
pinocchio::SE3Tpl::actInv_impl
Vector3 actInv_impl(const Vector3 &p) const
Definition: spatial/se3-tpl.hpp:243
pinocchio::SE3Tpl::SE3Tpl
SE3Tpl(const Eigen::MatrixBase< Matrix3Like > &R, const Eigen::MatrixBase< Vector3Like > &trans)
Definition: spatial/se3-tpl.hpp:73
pinocchio::traits< SE3Tpl< _Scalar, _Options > >::Matrix4
Eigen::Matrix< Scalar, 4, 4, Options > Matrix4
Definition: spatial/se3-tpl.hpp:33
pinocchio::SE3Tpl::Base
SE3Base< SE3Tpl< _Scalar, _Options > > Base
Definition: spatial/se3-tpl.hpp:51
pinocchio::SE3Base::rotation
ConstAngularRef rotation() const
Definition: se3-base.hpp:37
pinocchio::SE3Tpl::SE3Tpl
SE3Tpl(int)
Definition: spatial/se3-tpl.hpp:89
pinocchio::traits
Common traits structure to fully define base classes for CRTP.
Definition: fwd.hpp:44
pinocchio::SE3Tpl::PINOCCHIO_SE3_TYPEDEF_TPL
EIGEN_MAKE_ALIGNED_OPERATOR_NEW PINOCCHIO_SE3_TYPEDEF_TPL(SE3Tpl)
pinocchio::traits< SE3Tpl< _Scalar, _Options > >::LinearType
Vector3 LinearType
Definition: spatial/se3-tpl.hpp:38
pinocchio::SE3Tpl::trans
LinearType trans
Definition: spatial/se3-tpl.hpp:332
pinocchio::SE3Tpl::toActionMatrixInverse_impl
ActionMatrixType toActionMatrixInverse_impl() const
Definition: spatial/se3-tpl.hpp:160
pinocchio::traits< SE3Tpl< _Scalar, _Options > >::Matrix6
Eigen::Matrix< Scalar, 6, 6, Options > Matrix6
Definition: spatial/se3-tpl.hpp:34
PINOCCHIO_EIGEN_REF_TYPE
#define PINOCCHIO_EIGEN_REF_TYPE(D)
Definition: eigen-macros.hpp:25
pinocchio::internal::cast_call_normalize_method
Definition: spatial/fwd.hpp:108
pinocchio::SE3Tpl::SE3Tpl
SE3Tpl(const Eigen::MatrixBase< Matrix4Like > &m)
Definition: spatial/se3-tpl.hpp:82
pinocchio::SE3Tpl::__mult__
SE3Tpl __mult__(const SE3Tpl< Scalar, O2 > &m2) const
Definition: spatial/se3-tpl.hpp:257
pinocchio::SE3Tpl::normalize
void normalize()
Definition: spatial/se3-tpl.hpp:305
pinocchio::SE3Tpl::setIdentity
SE3Tpl & setIdentity()
Definition: spatial/se3-tpl.hpp:111
pinocchio::internal::cast_call_normalize_method< SE3Tpl< Scalar, Options >, NewScalar, Scalar >::run
static void run(T &self)
Definition: spatial/se3-tpl.hpp:349
d
FCL_REAL d
pinocchio::SE3Tpl::rotation_impl
ConstAngularRef rotation_impl() const
Definition: spatial/se3-tpl.hpp:279
pinocchio::SE3Tpl::actInv_impl
SE3Tpl actInv_impl(const SE3Tpl< Scalar, O2 > &m2) const
Definition: spatial/se3-tpl.hpp:252
pinocchio::SE3Tpl::actInv_impl
SE3GroupAction< D >::ReturnType actInv_impl(const D &d) const
by = aXb.actInv(ay)
Definition: spatial/se3-tpl.hpp:217
pinocchio::traits< SE3Tpl< _Scalar, _Options > >::Vector6
Eigen::Matrix< Scalar, 6, 1, Options > Vector6
Definition: spatial/se3-tpl.hpp:31
pinocchio::internal::cast_call_normalize_method< SE3Tpl< Scalar, Options >, Scalar, Scalar >::run
static void run(T &)
Definition: spatial/se3-tpl.hpp:342
pinocchio::SE3Tpl::toDualActionMatrix_impl
ActionMatrixType toDualActionMatrix_impl() const
Definition: spatial/se3-tpl.hpp:183
pinocchio::traits< SE3Tpl< _Scalar, _Options > >::AngularType
Matrix3 AngularType
Definition: spatial/se3-tpl.hpp:35
pinocchio::traits< SE3Tpl< _Scalar, _Options > >::PlainType
SE3Tpl< Scalar, Options > PlainType
Definition: spatial/se3-tpl.hpp:43
pinocchio
Main pinocchio namespace.
Definition: timings.cpp:28
pinocchio::traits< SE3Tpl< _Scalar, _Options > >::HomogeneousMatrixType
Matrix4 HomogeneousMatrixType
Definition: spatial/se3-tpl.hpp:42


pinocchio
Author(s):
autogenerated on Tue Feb 13 2024 03:44:00