31#include "rtabmap/core/rtabmap_core_export.h"
32#include <opencv2/core/core.hpp>
33#include <rtabmap/utilite/UEvent.h>
34#include <rtabmap/core/Transform.h>
56class RTABMAP_CORE_EXPORT
IMU
72 IMU(
const cv::Vec4d & orientation,
73 const cv::Mat & orientationCovariance,
74 const cv::Vec3d & angularVelocity,
75 const cv::Mat & angularVelocityCovariance,
76 const cv::Vec3d & linearAcceleration,
77 const cv::Mat & linearAccelerationCovariance,
78 const Transform & localTransform = Transform::getIdentity()) :
79 orientation_(orientation),
80 orientationCovariance_(orientationCovariance),
81 angularVelocity_(angularVelocity),
82 angularVelocityCovariance_(angularVelocityCovariance),
83 linearAcceleration_(linearAcceleration),
84 linearAccelerationCovariance_(linearAccelerationCovariance),
85 localTransform_(localTransform)
97 IMU(
const cv::Vec3d & angularVelocity,
98 const cv::Mat & angularVelocityCovariance,
99 const cv::Vec3d & linearAcceleration,
100 const cv::Mat & linearAccelerationCovariance,
101 const Transform & localTransform = Transform::getIdentity()) :
102 angularVelocity_(angularVelocity),
103 angularVelocityCovariance_(angularVelocityCovariance),
104 linearAcceleration_(linearAcceleration),
105 linearAccelerationCovariance_(linearAccelerationCovariance),
106 localTransform_(localTransform)
143 return localTransform_.isNull();
147 cv::Vec4d orientation_;
148 cv::Mat orientationCovariance_;
150 cv::Vec3d angularVelocity_;
151 cv::Mat angularVelocityCovariance_;
153 cv::Vec3d linearAcceleration_;
154 cv::Mat linearAccelerationCovariance_;
UEvent carrying an IMU sample and timestamp.
IMUEvent()
Default-constructs an event with zero stamp.
const IMU & getData() const
virtual std::string getClassName() const
IMUEvent(const IMU &data, double stamp)
Constructs an event with IMU data and stamp.
Inertial measurement sample (ROS sensor_msgs/Imu-like fields).
const Transform & localTransform() const
void convertToBaseFrame()
Rotate motion (and optionally orientation) into the base frame.
const cv::Vec4d & orientation() const
const cv::Mat & linearAccelerationCovariance() const
IMU(const cv::Vec3d &angularVelocity, const cv::Mat &angularVelocityCovariance, const cv::Vec3d &linearAcceleration, const cv::Mat &linearAccelerationCovariance, const Transform &localTransform=Transform::getIdentity())
Constructs a sample without orientation (e.g. no magnetometer / no attitude).
const cv::Mat & angularVelocityCovariance() const
IMU()
Default-constructs an empty sample (null localTransform()).
IMU(const cv::Vec4d &orientation, const cv::Mat &orientationCovariance, const cv::Vec3d &angularVelocity, const cv::Mat &angularVelocityCovariance, const cv::Vec3d &linearAcceleration, const cv::Mat &linearAccelerationCovariance, const Transform &localTransform=Transform::getIdentity())
Constructs a sample with orientation and motion data.
const cv::Vec3d & linearAcceleration() const
const cv::Mat & orientationCovariance() const
bool empty() const
True when localTransform() is null (placeholder / unset sample).
const cv::Vec3d & angularVelocity() const