1#pragma once
2
3#include <tests/Measurement.h>
4
5namespace gtsam {
6
7/**
8 *\brief Contains data from the IMU mesaurements.
9 */
10class ImuMeasurement : public Measurement {
11 public:
12 enum Name { BODY = 0, RF_FOOT = 1, RH_FOOT = 2 };
13
14 Name name; ///< Unique string identifier
15 Eigen::Vector3d I_a_WI; ///< Raw acceleration from the IMU (m/s/s)
16 Eigen::Vector3d I_w_WI; ///< Raw angular velocity from the IMU (rad/s)
17
18 ImuMeasurement()
19 : Measurement("ImuMeasurement"), I_a_WI{0, 0, 0}, I_w_WI{0, 0, 0} {}
20
21 ~ImuMeasurement() override {}
22
23 friend std::ostream& operator<<(std::ostream& stream,
24 const ImuMeasurement& meas);
25};
26
27std::ostream& operator<<(std::ostream& stream, const ImuMeasurement& meas) {
28 stream << "IMU Measurement at time = " << meas.time << " : \n"
29 << "dt : " << meas.dt << "\n"
30 << "I_a_WI: " << meas.I_a_WI.transpose() << "\n"
31 << "I_w_WI: " << meas.I_w_WI.transpose() << "\n";
32 return stream;
33}
34
35} // namespace gtsam
36