motion-base.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2015-2019 CNRS INRIA
3 // Copyright (c) 2015-2016 Wandercraft, 86 rue de Paris 91400 Orsay, France.
4 //
5 
6 #ifndef __pinocchio_motion_base_hpp__
7 #define __pinocchio_motion_base_hpp__
8 
9 namespace pinocchio
10 {
11 
12  template<class Derived>
13  class MotionBase
14  {
15  public:
16  MOTION_TYPEDEF_TPL(Derived);
17 
18  Derived & derived() { return *static_cast<Derived*>(this); }
19  const Derived & derived() const { return *static_cast<const Derived*>(this); }
20 
21  ConstAngularType angular() const { return derived().angular_impl(); }
22  ConstLinearType linear() const { return derived().linear_impl(); }
23  AngularType angular() { return derived().angular_impl(); }
24  LinearType linear() { return derived().linear_impl(); }
25 
26  template<typename V3Like>
27  void angular(const Eigen::MatrixBase<V3Like> & w)
28  { derived().angular_impl(w.derived()); }
29 
30  template<typename V3Like>
31  void linear(const Eigen::MatrixBase<V3Like> & v)
32  { derived().linear_impl(v.derived()); }
33 
34  operator PlainReturnType() const { return derived().plain(); }
35  PlainReturnType plain() const { return derived().plain(); }
36 
37  ToVectorConstReturnType toVector() const { return derived().toVector_impl(); }
38  ToVectorReturnType toVector() { return derived().toVector_impl(); }
39  operator Vector6() const { return toVector(); }
40 
41  ActionMatrixType toActionMatrix() const { return derived().toActionMatrix_impl(); }
42  ActionMatrixType toDualActionMatrix() const { return derived().toDualActionMatrix_impl(); }
43  operator Matrix6() const { return toActionMatrix(); }
44 
58  HomogeneousMatrixType toHomogeneousMatrix() const { return derived().toHomogeneousMatrix_impl(); }
59 
60  void setZero() { derived().setZero(); }
61 
62  template<typename M2>
63  bool operator==(const MotionBase<M2> & other) const
64  { return derived().isEqual_impl(other.derived()); }
65 
66  template<typename M2>
67  bool operator!=(const MotionBase<M2> & other) const
68  { return !(derived() == other.derived()); }
69 
70  Derived operator-() const { return derived().__opposite__(); }
71  Derived operator+(const MotionBase<Derived> & v) const { return derived().__plus__(v.derived()); }
72  Derived operator-(const MotionBase<Derived> & v) const { return derived().__minus__(v.derived()); }
73  Derived & operator+=(const MotionBase<Derived> & v) { return derived().__pequ__(v.derived()); }
74  Derived & operator-=(const MotionBase<Derived> & v) { return derived().__mequ__(v.derived()); }
75 
76  template<typename OtherScalar>
78  operator*(const OtherScalar & alpha) const
79  { return derived().__mult__(alpha); }
80 
81  template<typename OtherScalar>
82  Derived operator/(const OtherScalar & alpha) const
83  { return derived().__div__(alpha); }
84 
85  template<typename OtherSpatialType>
87  cross(const OtherSpatialType & d) const
88  {
89  return derived().cross_impl(d);
90  }
91 
92  bool isApprox(const Derived & other, const Scalar & prec = Eigen::NumTraits<Scalar>::dummy_precision()) const
93  { return derived().isApprox_impl(other, prec);}
94 
95  bool isZero(const Scalar & prec = Eigen::NumTraits<Scalar>::dummy_precision()) const
96  { return derived().isZero_impl(prec);}
97 
98  template<typename S2, int O2>
100  se3Action(const SE3Tpl<S2,O2> & m) const
101  { return derived().se3Action_impl(m); }
102 
103  template<typename S2, int O2>
106  { return derived().se3ActionInverse_impl(m); }
107 
108  template<typename ForceDerived>
109  Scalar dot(const ForceDense<ForceDerived> & f) const { return derived().dot(f.derived()); }
110 
111  void disp(std::ostream & os) const { derived().disp_impl(os); }
112  friend std::ostream & operator << (std::ostream & os, const MotionBase<Derived> & v)
113  {
114  v.disp(os);
115  return os;
116  }
117 
118  }; // class MotionBase
119 
120  template<typename MotionDerived>
122  operator*(const typename MotionDerived::Scalar & alpha,
124  {
125  return motion*alpha;
126  }
127 
128 } // namespace pinocchio
129 
130 #endif // ifndef __pinocchio_motion_base_hpp__
pinocchio::MotionBase::se3Action
SE3GroupAction< Derived >::ReturnType se3Action(const SE3Tpl< S2, O2 > &m) const
Definition: motion-base.hpp:100
m
float m
pinocchio::MotionBase::operator+=
Derived & operator+=(const MotionBase< Derived > &v)
Definition: motion-base.hpp:73
pinocchio::MotionBase::operator!=
bool operator!=(const MotionBase< M2 > &other) const
Definition: motion-base.hpp:67
pinocchio::MotionBase::operator-=
Derived & operator-=(const MotionBase< Derived > &v)
Definition: motion-base.hpp:74
pinocchio::MotionBase::toActionMatrix
ActionMatrixType toActionMatrix() const
Definition: motion-base.hpp:41
pinocchio::MotionBase::operator*
internal::RHSScalarMultiplication< Derived, OtherScalar >::ReturnType operator*(const OtherScalar &alpha) const
Definition: motion-base.hpp:78
pinocchio::operator*
MultiplicationOp< InertiaTpl< Scalar, Options >, ConstraintDerived >::ReturnType operator*(const InertiaTpl< Scalar, Options > &Y, const ConstraintBase< ConstraintDerived > &constraint)
&#160;
Definition: constraint-base.hpp:112
pinocchio::SE3Tpl
Definition: spatial/fwd.hpp:38
pinocchio::SE3GroupAction::ReturnType
D ReturnType
Definition: spatial/se3.hpp:39
pinocchio::MotionBase::angular
ConstAngularType angular() const
Definition: motion-base.hpp:21
pinocchio::MotionBase::derived
Derived & derived()
Definition: motion-base.hpp:18
pinocchio::MotionBase::setZero
void setZero()
Definition: motion-base.hpp:60
pinocchio::MotionBase::plain
PlainReturnType plain() const
Definition: motion-base.hpp:35
pinocchio::MotionBase::linear
ConstLinearType linear() const
Definition: motion-base.hpp:22
pinocchio::internal::RHSScalarMultiplication::ReturnType
Type ReturnType
Definition: spatial/fwd.hpp:21
pinocchio::MotionBase::isApprox
bool isApprox(const Derived &other, const Scalar &prec=Eigen::NumTraits< Scalar >::dummy_precision()) const
Definition: motion-base.hpp:92
pinocchio::MotionBase::isZero
bool isZero(const Scalar &prec=Eigen::NumTraits< Scalar >::dummy_precision()) const
Definition: motion-base.hpp:95
pinocchio::MotionBase::disp
void disp(std::ostream &os) const
Definition: motion-base.hpp:111
pinocchio::MotionBase
Definition: spatial/fwd.hpp:40
pinocchio::MotionBase::operator==
bool operator==(const MotionBase< M2 > &other) const
Definition: motion-base.hpp:63
pinocchio::MotionBase::operator/
Derived operator/(const OtherScalar &alpha) const
Definition: motion-base.hpp:82
pinocchio::MotionAlgebraAction::ReturnType
D ReturnType
Definition: spatial/motion.hpp:46
pinocchio::python::Scalar
SE3::Scalar Scalar
Definition: conversions.cpp:15
pinocchio::ForceDense::derived
Derived & derived()
Definition: force-base.hpp:27
pinocchio::MotionBase::cross
MotionAlgebraAction< OtherSpatialType, Derived >::ReturnType cross(const OtherSpatialType &d) const
Definition: motion-base.hpp:87
pinocchio::MotionBase::dot
Scalar dot(const ForceDense< ForceDerived > &f) const
Definition: motion-base.hpp:109
ur5x4.w
w
Definition: ur5x4.py:45
pinocchio::MotionBase::toVector
ToVectorConstReturnType toVector() const
Definition: motion-base.hpp:37
pinocchio::MotionBase::operator<<
friend std::ostream & operator<<(std::ostream &os, const MotionBase< Derived > &v)
Definition: motion-base.hpp:112
pinocchio::MotionBase::MOTION_TYPEDEF_TPL
MOTION_TYPEDEF_TPL(Derived)
pinocchio::v
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > const Eigen::MatrixBase< TangentVectorType > & v
Definition: joint-configuration.hpp:748
pinocchio::MotionBase::se3ActionInverse
SE3GroupAction< Derived >::ReturnType se3ActionInverse(const SE3Tpl< S2, O2 > &m) const
Definition: motion-base.hpp:105
pinocchio::motion
MotionTpl< Scalar, Options > motion(const JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata)
Visit a JointDataTpl through JointMotionVisitor to get the joint internal motion as a dense motion.
pinocchio::ForceDense
Definition: force-dense.hpp:24
pinocchio::MotionBase::operator-
Derived operator-() const
Definition: motion-base.hpp:70
pinocchio::MotionBase::operator-
Derived operator-(const MotionBase< Derived > &v) const
Definition: motion-base.hpp:72
pinocchio::MotionBase::operator+
Derived operator+(const MotionBase< Derived > &v) const
Definition: motion-base.hpp:71
pinocchio::MotionBase::toVector
ToVectorReturnType toVector()
Definition: motion-base.hpp:38
pinocchio::MotionBase::toDualActionMatrix
ActionMatrixType toDualActionMatrix() const
Definition: motion-base.hpp:42
d
FCL_REAL d
pinocchio::MotionBase::toHomogeneousMatrix
HomogeneousMatrixType toHomogeneousMatrix() const
The homogeneous representation of the motion vector .
Definition: motion-base.hpp:58
pinocchio
Main pinocchio namespace.
Definition: timings.cpp:28


pinocchio
Author(s):
autogenerated on Tue Feb 13 2024 03:43:59