RTAB-Map 0.23.10
Real-Time Appearance-Based Mapping
Loading...
Searching...
No Matches
rtabmap::IMU Class Reference

Inertial measurement sample (ROS sensor_msgs/Imu-like fields). More...

#include <IMU.h>

Public Member Functions

 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.
 
 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::Vec4d & orientation () const
 
const cv::Mat & orientationCovariance () const
 
const cv::Vec3d & angularVelocity () const
 
const cv::Mat & angularVelocityCovariance () const
 
const cv::Vec3d & linearAcceleration () const
 
const cv::Mat & linearAccelerationCovariance () const
 
const TransformlocalTransform () const
 
void convertToBaseFrame ()
 Rotate motion (and optionally orientation) into the base frame.
 
bool empty () const
 True when localTransform() is null (placeholder / unset sample).
 

Detailed Description

Inertial measurement sample (ROS sensor_msgs/Imu-like fields).

Holds orientation (quaternion), angular velocity, linear acceleration, optional 3×3 row-major covariance matrices (double), and an optional Transform expressing the IMU frame relative to the robot base.

empty() is true when localTransform() is null (default constructor). A sample constructed with Transform::getIdentity() is not empty.

convertToBaseFrame() rotates linear/angular velocity (and orientation when quaternion x/y/z are non-zero) into the base frame, then clears rotation in localTransform() while keeping translation.

See also
SensorData::imu()
IMUEvent

Definition at line 56 of file IMU.h.

Constructor & Destructor Documentation

◆ IMU() [1/3]

rtabmap::IMU::IMU ( )
inline

Default-constructs an empty sample (null localTransform()).

Definition at line 60 of file IMU.h.

◆ IMU() [2/3]

rtabmap::IMU::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() 
)
inline

Constructs a sample with orientation and motion data.

Parameters
orientationUnit quaternion (qx, qy, qz, qw).
orientationCovariance3×3 row-major covariance about x, y, z (empty if unused).
angularVelocityRad/s about x, y, z.
angularVelocityCovariance3×3 row-major covariance (empty if unused).
linearAccelerationm/s² about x, y, z.
linearAccelerationCovariance3×3 row-major covariance (empty if unused).
localTransformIMU frame in base coordinates (default identity).

Definition at line 72 of file IMU.h.

◆ IMU() [3/3]

rtabmap::IMU::IMU ( const cv::Vec3d &  angularVelocity,
const cv::Mat &  angularVelocityCovariance,
const cv::Vec3d &  linearAcceleration,
const cv::Mat &  linearAccelerationCovariance,
const Transform localTransform = Transform::getIdentity() 
)
inline

Constructs a sample without orientation (e.g. no magnetometer / no attitude).

Parameters
angularVelocityRad/s about x, y, z.
angularVelocityCovariance3×3 row-major covariance (empty if unused).
linearAccelerationm/s² about x, y, z.
linearAccelerationCovariance3×3 row-major covariance (empty if unused).
localTransformIMU frame in base coordinates (default identity).

Definition at line 97 of file IMU.h.

Member Function Documentation

◆ orientation()

const cv::Vec4d & rtabmap::IMU::orientation ( ) const
inline
Returns
Orientation quaternion (qx, qy, qz, qw).

Definition at line 111 of file IMU.h.

◆ orientationCovariance()

const cv::Mat & rtabmap::IMU::orientationCovariance ( ) const
inline
Returns
3×3 orientation covariance (row-major, empty if orientation unset).

Definition at line 113 of file IMU.h.

◆ angularVelocity()

const cv::Vec3d & rtabmap::IMU::angularVelocity ( ) const
inline
Returns
Angular velocity (rad/s).

Definition at line 116 of file IMU.h.

◆ angularVelocityCovariance()

const cv::Mat & rtabmap::IMU::angularVelocityCovariance ( ) const
inline
Returns
3×3 angular velocity covariance (row-major, empty if unused).

Definition at line 118 of file IMU.h.

◆ linearAcceleration()

const cv::Vec3d & rtabmap::IMU::linearAcceleration ( ) const
inline
Returns
Linear acceleration (m/s²).

Definition at line 121 of file IMU.h.

◆ linearAccelerationCovariance()

const cv::Mat & rtabmap::IMU::linearAccelerationCovariance ( ) const
inline
Returns
3×3 linear acceleration covariance (row-major, empty if unused).

Definition at line 123 of file IMU.h.

◆ localTransform()

const Transform & rtabmap::IMU::localTransform ( ) const
inline
Returns
Transform from IMU frame to base frame.

Definition at line 126 of file IMU.h.

◆ convertToBaseFrame()

void rtabmap::IMU::convertToBaseFrame ( )

Rotate motion (and optionally orientation) into the base frame.

Applies localTransform() rotation to vectors and covariances, then sets rotational part of localTransform() to identity (translation unchanged). No-op if localTransform() is null or rotation is identity. Orientation is updated only when quaternion qx, qy, qz, qw are not all zero.

◆ empty()

bool rtabmap::IMU::empty ( ) const
inline

True when localTransform() is null (placeholder / unset sample).

Definition at line 141 of file IMU.h.


The documentation for this class was generated from the following file: