28#ifndef ODOMETRYEVENT_H_
29#define ODOMETRYEVENT_H_
31#include "rtabmap/utilite/UEvent.h"
34#include "rtabmap/core/SensorData.h"
35#include "rtabmap/core/OdometryInfo.h"
44 _info.reg.
covariance = cv::Mat::eye(6,6,CV_64FC1);
56 _info.reg.
covariance = cv::Mat::eye(6,6,CV_64FC1);
59 UASSERT_MSG(
uIsFinite(_info.reg.
covariance.at<
double>(0,0)) && _info.reg.
covariance.at<
double>(0,0)>0,
"Transitional variance should not be null! (set to 1 if unknown)");
60 UASSERT_MSG(
uIsFinite(_info.reg.
covariance.at<
double>(1,1)) && _info.reg.
covariance.at<
double>(1,1)>0,
"Transitional variance should not be null! (set to 1 if unknown)");
61 UASSERT_MSG(
uIsFinite(_info.reg.
covariance.at<
double>(2,2)) && _info.reg.
covariance.at<
double>(2,2)>0,
"Transitional variance should not be null! (set to 1 if unknown)");
62 UASSERT_MSG(
uIsFinite(_info.reg.
covariance.at<
double>(3,3)) && _info.reg.
covariance.at<
double>(3,3)>0,
"Rotational variance should not be null! (set to 1 if unknown)");
63 UASSERT_MSG(
uIsFinite(_info.reg.
covariance.at<
double>(4,4)) && _info.reg.
covariance.at<
double>(4,4)>0,
"Rotational variance should not be null! (set to 1 if unknown)");
64 UASSERT_MSG(
uIsFinite(_info.reg.
covariance.at<
double>(5,5)) && _info.reg.
covariance.at<
double>(5,5)>0,
"Rotational variance should not be null! (set to 1 if unknown)");
70 const SensorData & data()
const {
return _data;}
71 const Transform & pose()
const {
return _pose;}
72 const cv::Mat & covariance()
const {
return _info.reg.
covariance;}
73 std::vector<float> velocity()
const {
74 if(_info.interval>0.0)
76 std::vector<float> velocity(6,0);
77 float x,y,z,roll,pitch,yaw;
79 velocity[0] = x/_info.interval;
80 velocity[1] = y/_info.interval;
81 velocity[2] = z/_info.interval;
82 velocity[3] = roll/_info.interval;
83 velocity[4] = pitch/_info.interval;
84 velocity[5] = yaw/_info.interval;
87 return std::vector<float>();
89 const OdometryInfo & info()
const {
return _info;}
102 virtual std::string
getClassName()
const {
return "OdometryResetEvent";}
103 const Transform & getPose()
const {
return _pose;}
ULogger class and convenient macros.
#define UASSERT(condition)
Basic mathematics functions.
bool uIsFinite(const T &value)
virtual std::string getClassName() const
virtual std::string getClassName() const
Container class for all sensor data captured at a specific time.