base
BodyState.hpp
Go to the documentation of this file.
1 #ifndef __BASE_SAMPLES_BODY_STATE_HH
2 #define __BASE_SAMPLES_BODY_STATE_HH
3 
4 #include <base/Time.hpp>
5 #include <base/Float.hpp>
6 #include <base/TransformWithCovariance.hpp>
7 #include <base/TwistWithCovariance.hpp>
8 #include <base/samples/RigidBodyState.hpp>
10 namespace base { namespace samples {
11 
31  struct BodyState
32  {
33 
34  BodyState(bool doInvalidation=true);
35 
37  pose(pose), velocity(velocity) {};
38 
41 
44 
50 
51  void setPose(const base::Affine3d& pose);
52 
53  const base::Affine3d getPose() const;
54 
55  double getYaw() const;
56 
57  double getPitch() const;
58 
59  double getRoll() const;
60 
61  const base::Position& position() const;
62 
64 
66  const base::Quaterniond& orientation() const;
67 
69 
70  const base::Vector3d& linear_velocity() const;
71 
73 
74  const base::Vector3d& angular_velocity() const;
75 
77 
78 
80  const base::Matrix6d& cov_pose() const;
81 
83 
85  const base::Matrix3d cov_orientation() const;
86 
87  void cov_orientation(const base::Matrix3d& cov);
88 
90  const base::Matrix3d cov_position() const;
91 
92  void cov_position(const base::Matrix3d& cov);
93 
95  const base::Matrix6d& cov_velocity() const;
96 
98 
100  const base::Matrix3d cov_linear_velocity() const;
101 
102  void cov_linear_velocity(const base::Matrix3d& cov);
103 
105  const base::Matrix3d cov_angular_velocity() const;
106 
107  void cov_angular_velocity(const base::Matrix3d& cov);
108 
109  static BodyState Unknown();
110 
111  static BodyState Invalid();
112 
114  void initSane();
115 
119  void invalidate();
120 
126  void initUnknown();
127 
128  bool hasValidPose() const;
129  bool hasValidPoseCovariance() const;
130  void invalidatePose();
132 
133  bool hasValidVelocity() const;
134  bool hasValidVelocityCovariance() const;
135  void invalidateVelocity();
137 
138  void invalidateValues ( bool pose = true, bool velocity = true);
139 
140  void invalidateCovariances ( bool pose = true, bool velocity = true);
141 
144 
145 
148  friend std::ostream & operator<<(std::ostream &out, const TransformWithCovariance& trans);
149 
153  BodyState composition( const BodyState& bs ) const;
154 
157  BodyState operator*( const BodyState& bs ) const;
158  };
159 
162  std::ostream & operator<<(std::ostream &out, const base::samples::BodyState& bs);
163 
164 
165 }}//end namespace base::samples
166 #endif
167 
const base::Vector3d & angular_velocity() const
Definition: BodyState.cpp:64
double getRoll() const
Definition: BodyState.cpp:34
void invalidatePose()
Definition: BodyState.cpp:183
bool hasValidPose() const
Definition: BodyState.cpp:173
const base::Matrix3d cov_angular_velocity() const
Definition: BodyState.cpp:129
void invalidateVelocityCovariance()
Definition: BodyState.cpp:208
BodyState composition(const BodyState &bs) const
Definition: BodyState.cpp:245
BodyState operator*(const BodyState &bs) const
Definition: BodyState.cpp:250
const base::Matrix6d & cov_velocity() const
Definition: BodyState.cpp:109
void initSane()
Definition: BodyState.cpp:152
void invalidatePoseCovariance()
Definition: BodyState.cpp:188
void invalidateValues(bool pose=true, bool velocity=true)
Definition: BodyState.cpp:213
base::TwistWithCovariance velocity
Definition: BodyState.hpp:49
Eigen::Transform< double, 3, Eigen::Affine, Eigen::DontAlign > Affine3d
Definition: Eigen.hpp:35
base::TransformWithCovariance pose
Definition: BodyState.hpp:43
Definition: TwistWithCovariance.hpp:9
bool hasValidVelocityCovariance() const
Definition: BodyState.cpp:198
Definition: Time.hpp:11
base::Time time
Definition: BodyState.hpp:37
void invalidateVelocity()
Definition: BodyState.cpp:203
base::Vector3d Position
Definition: Pose.hpp:10
const base::Vector3d & linear_velocity() const
Definition: BodyState.cpp:59
const base::Matrix3d cov_orientation() const
Definition: BodyState.cpp:89
double getPitch() const
Definition: BodyState.cpp:29
Eigen::Quaternion< double, Eigen::DontAlign > Quaterniond
Definition: Eigen.hpp:33
friend std::ostream & operator<<(std::ostream &out, const TransformWithCovariance &trans)
Definition: TransformWithCovariance.cpp:268
const base::Position & position() const
Definition: BodyState.cpp:39
BodyState(bool doInvalidation=true)
Definition: BodyState.cpp:8
void initUnknown()
Definition: BodyState.cpp:165
const base::Matrix3d cov_linear_velocity() const
Definition: BodyState.cpp:119
void setPose(const base::Affine3d &pose)
Definition: BodyState.cpp:14
const base::Quaterniond & orientation() const
Definition: BodyState.cpp:49
Definition: LinearAngular6DCommand.hpp:8
Definition: TransformWithCovariance.hpp:20
double getYaw() const
Definition: BodyState.cpp:24
bool hasValidPoseCovariance() const
Definition: BodyState.cpp:178
Eigen::Matrix< double, 3, 1, Eigen::DontAlign > Vector3d
Definition: Eigen.hpp:20
Definition: RigidBodyState.hpp:31
Eigen::Matrix< double, 6, 6, Eigen::DontAlign > Matrix6d
Definition: Eigen.hpp:29
const base::Matrix6d & cov_pose() const
Definition: BodyState.cpp:79
void invalidate()
Definition: BodyState.cpp:157
const base::Matrix3d cov_position() const
Definition: BodyState.cpp:99
Eigen::Matrix< double, 3, 3, Eigen::DontAlign > Matrix3d
Definition: Eigen.hpp:27
static BodyState Invalid()
Definition: BodyState.cpp:146
BodyState & operator=(const base::samples::RigidBodyState &rbs)
Definition: BodyState.cpp:225
BodyState(const base::TransformWithCovariance &pose, const base::TwistWithCovariance &velocity)
Definition: BodyState.hpp:36
static BodyState Unknown()
Definition: BodyState.cpp:139
bool hasValidVelocity() const
Definition: BodyState.cpp:193
const base::Affine3d getPose() const
Definition: BodyState.cpp:19
void invalidateCovariances(bool pose=true, bool velocity=true)
Definition: BodyState.cpp:219
Definition: BodyState.hpp:31