90 double maxPoseInterval = 1.0,
91 double velocityWindow = 0.5,
92 double gravity = 9.80665);
94 double maxPoseInterval()
const {
return maxPoseInterval_;}
95 double velocityWindow()
const {
return velocityWindow_;}
96 double gravity()
const {
return gravity_;}
143 void addSample(
double stamp,
const Eigen::Quaterniond & orientation,
const Eigen::Vector3d & acceleration);
147 Eigen::Quaterniond orientation;
148 Eigen::Vector3d acceleration;
150 Eigen::Quaterniond orientationAt(
double stamp)
const;
151 Eigen::Vector3d accelerationAt(
double stamp)
const;
152 void integrate(
double from,
double to,
const Eigen::Quaterniond & rotation,
153 Eigen::Vector3d & velocity, Eigen::Vector3d & position)
const;
154 void updateIntegration()
const;
160 Eigen::Vector3d acceleration;
161 Eigen::Vector3d velocity;
162 Eigen::Vector3d position;
166 double maxPoseInterval_;
167 double velocityWindow_;
169 std::map<double, Sample> samples_;
171 std::map<double, rtabmap::Transform> poses_;
176 Eigen::Vector3d velocity_;
179 Eigen::Quaterniond worldToOdom_;
183 mutable std::map<double, Integrated> integrated_;
186 mutable bool integratedStartIsFinal_;