base
TwistWithCovariance.hpp
Go to the documentation of this file.
1 #ifndef __BASE_TWIST_WITH_COVARIANCE_HPP__
2 #define __BASE_TWIST_WITH_COVARIANCE_HPP__
3 
4 #include <base/Eigen.hpp>
5 
6 namespace base {
7 
8 
10  {
11  public:
13 
14  public:
15 
18 
21 
23  Covariance cov;
24 
25  public:
26  explicit TwistWithCovariance (const base::Vector3d& vel = base::Vector3d::Zero(), const base::Vector3d& rot = base::Vector3d::Zero() );
27 
28  TwistWithCovariance(const base::Vector3d& vel, const base::Vector3d& rot, const Covariance& cov);
29 
30  TwistWithCovariance(const base::Vector6d& velocity, const Covariance& cov);
31 
33  friend std::ostream & operator<<(std::ostream &out, const base::Vector6d& vel);
34 
36  const base::Vector3d& getTranslation() const;
37  void setTranslation(const base::Vector3d& vel);
38 
39  const base::Vector3d& getRotation() const;
40  void setRotation(const base::Vector3d& rot);
41 
42  const Covariance& getCovariance() const;
43  void setCovariance(const Covariance& cov);
44 
46  void setLinearVelocityCov(const base::Matrix3d& cov);
48  void setAngularVelocityCov(const base::Matrix3d& cov);
49 
50  const base::Vector3d& getLinearVelocity() const;
51  void setLinearVelocity(const base::Vector3d& vel);
52  const base::Vector3d& getAngularVelocity() const;
53  void setAngularVelocity(const base::Vector3d& rot);
54 
55  const base::Vector3d& translation() const;
56  const base::Vector3d& rotation() const;
57 
58  const base::Vector6d getVelocity() const;
59 
60 
61  void setVelocity(const base::Vector6d& velocity);
62 
65  bool hasValidVelocity() const;
66 
67  void invalidateVelocity();
68 
69  bool hasValidCovariance() const;
70  void invalidateCovariance();
71 
72 
73  void invalidate();
74 
75  static TwistWithCovariance Zero();
76 
77  double& operator[](int i);
78 
79  double operator[](int i) const;
80 
81 
83 
84 
86 
88 
90 
91  friend TwistWithCovariance operator*(const TwistWithCovariance& lhs,double rhs);
92 
93  friend TwistWithCovariance operator*(double lhs, const TwistWithCovariance& rhs);
94 
95  //Spatial Cross product
97 
98  friend TwistWithCovariance operator/(const TwistWithCovariance& lhs,double rhs);
99 
100 
103 
104  static Eigen::Matrix<double, 3, 6> crossJacobian(const base::Vector3d& u, const base::Vector3d& v);
105 
106  };
107 
110  std::ostream & operator<<(std::ostream &out, const base::TwistWithCovariance& twist);
111 
112 } // namespaces
113 
114 #endif
base::Vector3d vel
Definition: TwistWithCovariance.hpp:17
TwistWithCovariance & operator-=(const TwistWithCovariance &arg)
Definition: TwistWithCovariance.cpp:192
const base::Matrix3d getAngularVelocityCov() const
Definition: TwistWithCovariance.cpp:72
static TwistWithCovariance Zero()
Definition: TwistWithCovariance.cpp:154
TwistWithCovariance & operator+=(const TwistWithCovariance &arg)
Definition: TwistWithCovariance.cpp:175
base::Matrix6d Covariance
Definition: TwistWithCovariance.hpp:12
const base::Matrix3d getLinearVelocityCov() const
Definition: TwistWithCovariance.cpp:62
const base::Vector3d & getLinearVelocity() const
Definition: TwistWithCovariance.cpp:82
base::Vector3d rot
Definition: TwistWithCovariance.hpp:20
Eigen::Matrix< double, 6, 1, Eigen::DontAlign > Vector6d
Definition: Eigen.hpp:22
friend TwistWithCovariance operator/(const TwistWithCovariance &lhs, double rhs)
Definition: TwistWithCovariance.cpp:276
const base::Vector3d & getRotation() const
Definition: TwistWithCovariance.cpp:42
void setAngularVelocity(const base::Vector3d &rot)
Definition: TwistWithCovariance.cpp:97
void setCovariance(const Covariance &cov)
Definition: TwistWithCovariance.cpp:57
Definition: TwistWithCovariance.hpp:9
bool hasValidVelocity() const
Definition: TwistWithCovariance.cpp:127
double & operator[](int i)
Definition: TwistWithCovariance.cpp:159
bool hasValidCovariance() const
Definition: TwistWithCovariance.cpp:138
void invalidate()
Definition: TwistWithCovariance.cpp:148
const base::Vector3d & translation() const
Definition: TwistWithCovariance.cpp:102
void setAngularVelocityCov(const base::Matrix3d &cov)
Definition: TwistWithCovariance.cpp:77
void setRotation(const base::Vector3d &rot)
Definition: TwistWithCovariance.cpp:47
void setVelocity(const base::Vector6d &velocity)
Definition: TwistWithCovariance.cpp:120
Covariance cov
Definition: TwistWithCovariance.hpp:23
void invalidateCovariance()
Definition: TwistWithCovariance.cpp:143
const base::Vector3d & getAngularVelocity() const
Definition: TwistWithCovariance.cpp:92
const base::Vector3d & rotation() const
Definition: TwistWithCovariance.cpp:107
void setLinearVelocityCov(const base::Matrix3d &cov)
Definition: TwistWithCovariance.cpp:67
const Covariance & getCovariance() const
Definition: TwistWithCovariance.cpp:52
Definition: LinearAngular6DCommand.hpp:8
static Eigen::Matrix< double, 3, 6 > crossJacobian(const base::Vector3d &u, const base::Vector3d &v)
Definition: TwistWithCovariance.cpp:286
void setLinearVelocity(const base::Vector3d &vel)
Definition: TwistWithCovariance.cpp:87
Eigen::Matrix< double, 3, 1, Eigen::DontAlign > Vector3d
Definition: Eigen.hpp:20
void invalidateVelocity()
Definition: TwistWithCovariance.cpp:132
Eigen::Matrix< double, 6, 6, Eigen::DontAlign > Matrix6d
Definition: Eigen.hpp:29
const base::Vector6d getVelocity() const
Definition: TwistWithCovariance.cpp:112
const base::Vector3d & getTranslation() const
Definition: TwistWithCovariance.cpp:32
Eigen::Matrix< double, 3, 3, Eigen::DontAlign > Matrix3d
Definition: Eigen.hpp:27
friend TwistWithCovariance operator*(const TwistWithCovariance &lhs, double rhs)
Definition: TwistWithCovariance.cpp:210
friend TwistWithCovariance operator+(TwistWithCovariance lhs, const TwistWithCovariance &rhs)
Definition: TwistWithCovariance.cpp:187
friend TwistWithCovariance operator-(TwistWithCovariance lhs, const TwistWithCovariance &rhs)
Definition: TwistWithCovariance.cpp:205
void setTranslation(const base::Vector3d &vel)
Definition: TwistWithCovariance.cpp:37
friend std::ostream & operator<<(std::ostream &out, const base::Vector6d &vel)
TwistWithCovariance(const base::Vector3d &vel=base::Vector3d::Zero(), const base::Vector3d &rot=base::Vector3d::Zero())
Definition: TwistWithCovariance.cpp:14