base
RigidBodyState.hpp
Go to the documentation of this file.
1 #ifndef __BASE_SAMPLES_RIGID_BODY_STATE_HH
2 #define __BASE_SAMPLES_RIGID_BODY_STATE_HH
3 
4 #include <base/Pose.hpp>
5 #include <base/Time.hpp>
6 #include <base/Float.hpp>
7 
8 #include <Eigen/Core>
9 #include <Eigen/LU>
10 
11 namespace base { namespace samples {
32  {
33 
34  RigidBodyState(bool doInvalidation=true);
35 
37 
39  std::string sourceFrame;
40 
42  std::string targetFrame;
43 
50 
57 
64 
73 
74  void setTransform(const Eigen::Affine3d& transform);
75 
77 
78  void setPose(const base::Pose& pose);
79 
80  base::Pose getPose() const;
81 
82  double getYaw() const;
83 
84  double getPitch() const;
85 
86  double getRoll() const;
87 
88  template <int _Options>
89  operator Eigen::Transform<double, 3, Eigen::Affine, _Options>() const
90  {
91  Eigen::Transform<double, 3, Eigen::Affine, _Options> ret;
92  ret.setIdentity();
93  ret.rotate(this->orientation);
94  ret.translation() = this->position;
95  return ret;
96  }
97 
98  static RigidBodyState unknown();
99 
100  static RigidBodyState invalid();
101 
103  void initSane();
104 
108  void invalidate();
109 
115  void initUnknown();
116 
118  static bool isValidValue(base::Vector3d const& vec);
119 
122  static bool isValidValue(base::Orientation const& ori);
123 
127  static bool isKnownValue(base::Matrix3d const& cov);
128 
132  static bool isValidCovariance(base::Matrix3d const& cov);
133 
135  static bool isValidValue(base::Vector3d const& vec, int dim);
136 
138  static bool isValidCovariance(base::Matrix3d const& cov, int dim);
139 
141  static bool isKnownValue(base::Matrix3d const& cov, int dim);
142 
143  static base::Vector3d invalidValue();
144 
146 
148 
150 
151  bool hasValidPosition() const;
152  bool hasValidPosition(int idx) const;
153  bool hasValidPositionCovariance() const;
154  void invalidatePosition();
156 
157  bool hasValidOrientation() const;
158  bool hasValidOrientationCovariance() const;
159  void invalidateOrientation();
161 
162  bool hasValidVelocity() const;
163  bool hasValidVelocity(int idx) const;
164  bool hasValidVelocityCovariance() const;
165  void invalidateVelocity();
167 
168  bool hasValidAngularVelocity() const;
169  bool hasValidAngularVelocity(int idx) const;
173 
174  void invalidateValues(bool invPos, bool invOri, bool invVel = true,
175  bool invAngVel = true);
176 
177  void invalidateCovariances(bool invPos = true, bool invOri = true,
178  bool invVel = true, bool invAngVel = true);
179  };
180 }}
181 
182 #endif
Eigen::Affine3d getTransform() const
Definition: RigidBodyState.cpp:17
void invalidatePositionCovariance()
Definition: RigidBodyState.cpp:181
void invalidateValues(bool invPos, bool invOri, bool invVel=true, bool invAngVel=true)
Definition: RigidBodyState.cpp:256
void invalidateOrientation()
Definition: RigidBodyState.cpp:196
Orientation orientation
Definition: RigidBodyState.hpp:52
base::Matrix3d cov_angular_velocity
Definition: RigidBodyState.hpp:72
static RigidBodyState invalid()
Definition: RigidBodyState.cpp:59
RigidBodyState(bool doInvalidation=true)
Definition: RigidBodyState.cpp:5
static bool isValidCovariance(base::Matrix3d const &cov)
Definition: RigidBodyState.cpp:117
Representation for a pose in 3D.
Definition: Pose.hpp:115
static bool isKnownValue(base::Matrix3d const &cov)
Definition: RigidBodyState.cpp:110
void setTransform(const Eigen::Affine3d &transform)
Definition: RigidBodyState.cpp:11
base::Vector3d angular_velocity
Definition: RigidBodyState.hpp:69
base::Time time
Definition: RigidBodyState.hpp:36
base::Quaterniond Orientation
Definition: Pose.hpp:11
bool hasValidVelocityCovariance() const
Definition: RigidBodyState.cpp:216
Position position
Definition: RigidBodyState.hpp:46
static base::Orientation invalidOrientation()
Definition: RigidBodyState.cpp:146
base::Matrix3d cov_velocity
Definition: RigidBodyState.hpp:63
Definition: Time.hpp:11
bool hasValidPositionCovariance() const
Definition: RigidBodyState.cpp:171
void invalidatePosition()
Definition: RigidBodyState.cpp:176
base::Matrix3d cov_orientation
Definition: RigidBodyState.hpp:56
bool hasValidAngularVelocityCovariance() const
Definition: RigidBodyState.cpp:241
base::Vector3d Position
Definition: Pose.hpp:10
static base::Vector3d invalidValue()
Definition: RigidBodyState.cpp:141
void invalidate()
Definition: RigidBodyState.cpp:70
base::Pose getPose() const
Definition: RigidBodyState.cpp:32
std::string sourceFrame
Definition: RigidBodyState.hpp:39
static base::Matrix3d setValueUnknown()
Definition: RigidBodyState.cpp:151
static bool isValidValue(base::Vector3d const &vec)
Definition: RigidBodyState.cpp:94
bool hasValidAngularVelocity() const
Definition: RigidBodyState.cpp:231
void invalidateVelocityCovariance()
Definition: RigidBodyState.cpp:226
bool hasValidOrientationCovariance() const
Definition: RigidBodyState.cpp:191
void invalidateVelocity()
Definition: RigidBodyState.cpp:221
void initUnknown()
Definition: RigidBodyState.cpp:82
bool hasValidOrientation() const
Definition: RigidBodyState.cpp:186
base::Matrix3d cov_position
Definition: RigidBodyState.hpp:49
Definition: LinearAngular6DCommand.hpp:8
double getYaw() const
Definition: RigidBodyState.cpp:37
static base::Matrix3d invalidCovariance()
Definition: RigidBodyState.cpp:156
void invalidateOrientationCovariance()
Definition: RigidBodyState.cpp:201
Eigen::Matrix< double, 3, 1, Eigen::DontAlign > Vector3d
Definition: Eigen.hpp:20
Definition: RigidBodyState.hpp:31
double getPitch() const
Definition: RigidBodyState.cpp:42
static RigidBodyState unknown()
Definition: RigidBodyState.cpp:52
Eigen::Transform< double, 3, Eigen::Affine > Affine3d
Definition: Eigen.cpp:20
void invalidateAngularVelocityCovariance()
Definition: RigidBodyState.cpp:251
void invalidateCovariances(bool invPos=true, bool invOri=true, bool invVel=true, bool invAngVel=true)
Definition: RigidBodyState.cpp:264
void invalidateAngularVelocity()
Definition: RigidBodyState.cpp:246
void initSane()
Definition: RigidBodyState.cpp:65
base::Vector3d velocity
Definition: RigidBodyState.hpp:60
Eigen::Matrix< double, 3, 3, Eigen::DontAlign > Matrix3d
Definition: Eigen.hpp:27
void setPose(const base::Pose &pose)
Definition: RigidBodyState.cpp:26
double getRoll() const
Definition: RigidBodyState.cpp:47
std::string targetFrame
Definition: RigidBodyState.hpp:42
bool hasValidVelocity() const
Definition: RigidBodyState.cpp:206
bool hasValidPosition() const
Definition: RigidBodyState.cpp:161