mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 17:40:23 +08:00
IMU: changed members from Eigen to cv to avoid seg faults about Eigen memory alignment when copying IMU object created dynamically (#270)
This commit is contained in:
@@ -19,11 +19,11 @@ class IMU
|
||||
{
|
||||
public:
|
||||
IMU() {}
|
||||
IMU(const Eigen::Quaterniond & orientation,
|
||||
IMU(const cv::Vec4d & orientation,
|
||||
const cv::Mat & orientationCovariance,
|
||||
const Eigen::Vector3d & angularVelocity,
|
||||
const cv::Vec3d & angularVelocity,
|
||||
const cv::Mat & angularVelocityCovariance,
|
||||
const Eigen::Vector3d & linearAcceleration,
|
||||
const cv::Vec3d & linearAcceleration,
|
||||
const cv::Mat & linearAccelerationCovariance,
|
||||
const Transform & localTransform = Transform::getIdentity()) :
|
||||
orientation_(orientation),
|
||||
@@ -38,9 +38,9 @@ public:
|
||||
UASSERT(!angularVelocityCovariance.empty() && angularVelocityCovariance.cols == 3 && angularVelocityCovariance.rows == 3 && angularVelocityCovariance.type() == CV_64FC1);
|
||||
UASSERT(!linearAccelerationCovariance.empty() && linearAccelerationCovariance.cols == 3 && linearAccelerationCovariance.rows == 3 && linearAccelerationCovariance.type() == CV_64FC1);
|
||||
}
|
||||
IMU(const Eigen::Vector3d & angularVelocity,
|
||||
IMU(const cv::Vec3d & angularVelocity,
|
||||
const cv::Mat & angularVelocityCovariance,
|
||||
const Eigen::Vector3d & linearAcceleration,
|
||||
const cv::Vec3d & linearAcceleration,
|
||||
const cv::Mat & linearAccelerationCovariance,
|
||||
const Transform & localTransform = Transform::getIdentity()) :
|
||||
angularVelocity_(angularVelocity),
|
||||
@@ -53,13 +53,13 @@ public:
|
||||
UASSERT(!linearAccelerationCovariance.empty() && linearAccelerationCovariance.cols == 3 && linearAccelerationCovariance.rows == 3 && linearAccelerationCovariance.type() == CV_64FC1);
|
||||
}
|
||||
|
||||
const Eigen::Quaterniond & orientation() const {return orientation_;}
|
||||
const cv::Vec4d & orientation() const {return orientation_;}
|
||||
const cv::Mat & orientationCovariance() const {return orientationCovariance_;} // 3x3 double Row major about x, y, z axes, empty if orientation is not set
|
||||
|
||||
const Eigen::Vector3d & angularVelocity() const {return angularVelocity_;}
|
||||
const cv::Vec3d & angularVelocity() const {return angularVelocity_;}
|
||||
const cv::Mat & angularVelocityCovariance() const {return angularVelocityCovariance_;} // 3x3 double Row major about x, y, z axes, empty if angularVelocity is not set
|
||||
|
||||
const Eigen::Vector3d linearAcceleration() const {return linearAcceleration_;}
|
||||
const cv::Vec3d linearAcceleration() const {return linearAcceleration_;}
|
||||
const cv::Mat & linearAccelerationCovariance() const {return linearAccelerationCovariance_;} // 3x3 double Row major x, y z, empty if linearAcceleration is not set
|
||||
|
||||
const Transform & localTransform() const {return localTransform_;}
|
||||
@@ -71,13 +71,13 @@ public:
|
||||
|
||||
|
||||
private:
|
||||
Eigen::Quaterniond orientation_;
|
||||
cv::Vec4d orientation_;
|
||||
cv::Mat orientationCovariance_; // 3x3 double Row major about x, y, z axes, empty if orientation is not set
|
||||
|
||||
Eigen::Vector3d angularVelocity_;
|
||||
cv::Vec3d angularVelocity_;
|
||||
cv::Mat angularVelocityCovariance_; // 3x3 double Row major about x, y, z axes, empty if angularVelocity is not set
|
||||
|
||||
Eigen::Vector3d linearAcceleration_;
|
||||
cv::Vec3d linearAcceleration_;
|
||||
cv::Mat linearAccelerationCovariance_; // 3x3 double Row major x, y z, empty if linearAcceleration is not set
|
||||
|
||||
Transform localTransform_;
|
||||
|
||||
Reference in New Issue
Block a user