MRPT  1.9.9
CObservationIMU.h
Go to the documentation of this file.
1 /* +------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | http://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2018, Individual contributors, see AUTHORS file |
6  | See: http://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See details in http://www.mrpt.org/License |
8  +------------------------------------------------------------------------+ */
9 #ifndef CObservationIMU_H
10 #define CObservationIMU_H
11 
13 #include <mrpt/math/CMatrixD.h>
14 #include <mrpt/obs/CObservation.h>
15 #include <mrpt/poses/CPose3D.h>
16 #include <mrpt/poses/CPose2D.h>
17 
18 namespace mrpt::obs
19 {
20 /** Symbolic names for the indices of IMU data (refer to
21  * mrpt::obs::CObservationIMU)
22  * \ingroup mrpt_obs_grp
23  */
25 {
26  /** x-axis acceleration (local/vehicle frame) (m/sec<sup>2</sup>) */
27  IMU_X_ACC = 0,
28  /** y-axis acceleration (local/vehicle frame) (m/sec<sup>2</sup>) */
30  /** z-axis acceleration (local/vehicle frame) (m/sec<sup>2</sup>) */
32  /** yaw angular velocity (local/vehicle frame) (rad/sec) */
34  /** pitch angular velocity (local/vehicle frame) (rad/sec) */
36  /** roll angular velocity (local/vehicle frame) (rad/sec) */
38  /** x-axis velocity (global/navigation frame) (m/sec) */
40  /** y-axis velocity (global/navigation frame) (m/sec) */
42  /** z-axis velocity (global/navigation frame) (m/sec) */
44  /** orientation yaw absolute value (global/navigation frame) (rad) */
46  /** orientation pitch absolute value (global/navigation frame) (rad) */
48  /** orientation roll absolute value (global/navigation frame) (rad) */
50  /** x absolute value (global/navigation frame) (meters) */
52  /** y absolute value (global/navigation frame) (meters) */
54  /** z absolute value (global/navigation frame) (meters) */
56  /** x magnetic field value (local/vehicle frame) (gauss) */
58  /** y magnetic field value (local/vehicle frame) (gauss) */
60  /** z magnetic field value (local/vehicle frame) (gauss) */
62  /** air pressure (Pascals) */
64  /** altitude from an altimeter (meters) */
66  /** temperature (degrees Celsius) */
68  /** Orientation Quaternion X (global/navigation frame) */
70  /** Orientation Quaternion Y (global/navigation frame) */
72  /** Orientation Quaternion Z (global/navigation frame) */
74  /** Orientation Quaternion W (global/navigation frame) */
76  /** yaw angular velocity (global/navigation frame) (rad/sec) */
78  /** pitch angular velocity (global/navigation frame) (rad/sec) */
80  /** roll angular velocity (global/navigation frame) (rad/sec) */
82  /** x-axis acceleration (global/navigation frame) (m/sec<sup>2</sup>) */
84  /** y-axis acceleration (global/navigation frame) (m/sec<sup>2</sup>) */
86  /** z-axis acceleration (global/navigation frame) (m/sec<sup>2</sup>) */
88 
89  // Always leave this last value to reflect the number of enum values
91 };
92 
93 /** This class stores measurements from an Inertial Measurement Unit (IMU)
94  * (attitude estimation, raw gyroscope and accelerometer values), altimeters or
95  * magnetometers.
96  *
97  * The order of the values in each entry of
98  * mrpt::obs::CObservationIMU::rawMeasurements is defined as symbolic names in
99  * the enum mrpt::obs::TIMUDataIndex.
100  * Check it out also for reference on the unit and the coordinate frame used
101  * for each value.
102  *
103  * \sa CObservation
104  * \ingroup mrpt_obs_grp
105  */
107 {
109 
110  public:
111  /** Constructor.
112  */
114  : sensorPose(),
117  {
118  }
119 
120  /** Destructor
121  */
122  virtual ~CObservationIMU() {}
123  /** The pose of the sensor on the robot. */
125 
126  /** Each entry in this vector is true if the corresponding data index
127  * contains valid data (the IMU unit supplies that kind of data).
128  * See the top of this page for the meaning of the indices.
129  */
130  std::vector<bool> dataIsPresent;
131 
132  /** The accelerometer and/or gyroscope measurements taken by the IMU at the
133  * given timestamp.
134  * \sa dataIsPresent, CObservation::timestamp
135  */
136  std::vector<double> rawMeasurements;
137 
138  // See base class docs
139  void getSensorPose(mrpt::poses::CPose3D& out_sensorPose) const override
140  {
141  out_sensorPose = sensorPose;
142  }
143  void setSensorPose(const mrpt::poses::CPose3D& newSensorPose) override
144  {
145  sensorPose = newSensorPose;
146  }
147  void getDescriptionAsText(std::ostream& o) const override;
148 
149 }; // End of class def.
150 
151 }
152 #endif
153 
154 
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
Declares a class that represents any robot's observation.
Definition: CObservation.h:44
This class stores measurements from an Inertial Measurement Unit (IMU) (attitude estimation,...
std::vector< double > rawMeasurements
The accelerometer and/or gyroscope measurements taken by the IMU at the given timestamp.
void setSensorPose(const mrpt::poses::CPose3D &newSensorPose) override
A general method to change the sensor pose on the robot.
mrpt::poses::CPose3D sensorPose
The pose of the sensor on the robot.
std::vector< bool > dataIsPresent
Each entry in this vector is true if the corresponding data index contains valid data (the IMU unit s...
void getDescriptionAsText(std::ostream &o) const override
Build a detailed, multi-line textual description of the observation contents and dump it to the outpu...
virtual ~CObservationIMU()
Destructor.
void getSensorPose(mrpt::poses::CPose3D &out_sensorPose) const override
A general method to retrieve the sensor pose on the robot.
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
Definition: CPose3D.h:87
TIMUDataIndex
Symbolic names for the indices of IMU data (refer to mrpt::obs::CObservationIMU)
@ IMU_MAG_Y
y magnetic field value (local/vehicle frame) (gauss)
@ IMU_Y_ACC_GLOBAL
y-axis acceleration (global/navigation frame) (m/sec2)
@ IMU_MAG_Z
z magnetic field value (local/vehicle frame) (gauss)
@ IMU_YAW_VEL_GLOBAL
yaw angular velocity (global/navigation frame) (rad/sec)
@ IMU_ALTITUDE
altitude from an altimeter (meters)
@ IMU_X_ACC_GLOBAL
x-axis acceleration (global/navigation frame) (m/sec2)
@ IMU_X_ACC
x-axis acceleration (local/vehicle frame) (m/sec2)
@ IMU_PITCH_VEL
pitch angular velocity (local/vehicle frame) (rad/sec)
@ IMU_X
x absolute value (global/navigation frame) (meters)
@ IMU_ROLL_VEL_GLOBAL
roll angular velocity (global/navigation frame) (rad/sec)
@ IMU_ORI_QUAT_W
Orientation Quaternion W (global/navigation frame)
@ IMU_PITCH
orientation pitch absolute value (global/navigation frame) (rad)
@ IMU_PRESSURE
air pressure (Pascals)
@ COUNT_IMU_DATA_FIELDS
@ IMU_ORI_QUAT_Y
Orientation Quaternion Y (global/navigation frame)
@ IMU_YAW
orientation yaw absolute value (global/navigation frame) (rad)
@ IMU_ORI_QUAT_X
Orientation Quaternion X (global/navigation frame)
@ IMU_TEMPERATURE
temperature (degrees Celsius)
@ IMU_Y
y absolute value (global/navigation frame) (meters)
@ IMU_X_VEL
x-axis velocity (global/navigation frame) (m/sec)
@ IMU_Z_ACC
z-axis acceleration (local/vehicle frame) (m/sec2)
@ IMU_Z
z absolute value (global/navigation frame) (meters)
@ IMU_ORI_QUAT_Z
Orientation Quaternion Z (global/navigation frame)
@ IMU_Z_VEL
z-axis velocity (global/navigation frame) (m/sec)
@ IMU_PITCH_VEL_GLOBAL
pitch angular velocity (global/navigation frame) (rad/sec)
@ IMU_ROLL_VEL
roll angular velocity (local/vehicle frame) (rad/sec)
@ IMU_YAW_VEL
yaw angular velocity (local/vehicle frame) (rad/sec)
@ IMU_MAG_X
x magnetic field value (local/vehicle frame) (gauss)
@ IMU_Y_ACC
y-axis acceleration (local/vehicle frame) (m/sec2)
@ IMU_Y_VEL
y-axis velocity (global/navigation frame) (m/sec)
@ IMU_ROLL
orientation roll absolute value (global/navigation frame) (rad)
@ IMU_Z_ACC_GLOBAL
z-axis acceleration (global/navigation frame) (m/sec2)
This namespace contains representation of robot actions and observations.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.



Page generated by Doxygen 1.9.1 for MRPT 1.9.9 Git: 814d80880 Fri Aug 24 01:51:28 2018 +0200 at mar 26 may 2026 12:30:59 CEST