8#ifndef GMSF_UNARY_EXPRESSION_POSE3_H
9#define GMSF_UNARY_EXPRESSION_POSE3_H
12#include <gtsam/base/types.h>
13#include <gtsam/inference/Symbol.h>
14#include <gtsam/slam/expressions.h>
28 const Eigen::Isometry3d& T_I_sensorFrame,
const double createReferenceAlignmentKeyframeEveryNSeconds)
29 :
GmsfUnaryExpressionAbsolut(poseUnaryMeasurementPtr, imuFrameName, T_I_sensorFrame, createReferenceAlignmentKeyframeEveryNSeconds),
54 const Eigen::Matrix4d& T_W_I_est = W_currentPropagatedState.pose().matrix();
56 return gtsam::Pose3(T_W_I_est *
T_I_sensorFrameInit_ * T_fixedFrame_sensorFrame_meas.inverse().matrix());
90 gtsam::Pose3
convertToPose3(
const gtsam::Pose3& measurement)
final {
return measurement; }
92 gtsam::Pose3
convertFromPose3(
const gtsam::Pose3& measurement)
final {
return measurement; }
GmsfUnaryExpressionAbsolut(const std::shared_ptr< UnaryMeasurementAbsolute > &gmsfUnaryAbsoluteMeasurementPtr, const std::string &imuFrameName, const Eigen::Isometry3d &T_I_sensorFrame, const double createReferenceAlignmentKeyframeEveryNSeconds)
~GmsfUnaryExpressionAbsolutePose3()=default
std::shared_ptr< GMSF_MEASUREMENT_CLASS > gmsfPoseUnaryMeasurementPtr_
const gtsam::Vector getNoiseDensity() const final
gtsam::Pose3 computeT_W_fixedFrame_initial(const gtsam::NavState &W_currentPropagatedState) final
gtsam::Expression< gtsam::Pose3 > exp_T_fixedFrame_sensorFrame_
void setMeasurementPosition(const Eigen::Vector3d &position) final
void applyExtrinsicCalibrationCorrection(const gtsam::Pose3_ &expt_T_sensorFrame_sensorFrameCorrect) final
bool measuresPosition() const final
gtsam::Pose3 convertToPose3(const gtsam::Pose3 &measurement) final
const gtsam::Pose3 getGtsamMeasurementValue() const final
GmsfUnaryExpressionAbsolutePose3(const std::shared_ptr< GMSF_MEASUREMENT_CLASS > poseUnaryMeasurementPtr, const std::string &imuFrameName, const Eigen::Isometry3d &T_I_sensorFrame, const double createReferenceAlignmentKeyframeEveryNSeconds)
const Eigen::Vector3d getMeasurementPosition() final
gtsam::Pose3 convertFromPose3(const gtsam::Pose3 &measurement) final
void transformStateToReferenceFrameMeasurement(const gtsam::Pose3_ &exp_T_W_fixedFrame) override
const gtsam::Expression< gtsam::Pose3 > getGtsamExpression() const final
void generateImuStateInWorldFrameAtKey(const gtsam::Key &closestGeneralKey) final
void transformImuStateToSensorFrameState() final
Eigen::Isometry3d T_I_sensorFrameInit_
Class to represent x-dimensional absolute unary measurement in the graph.
UnaryMeasurementXDAbsolute< Eigen::Isometry3d, 6 > GMSF_MEASUREMENT_CLASS
gtsam::Pose3_ composeRigidTransformations(const gtsam::Pose3_ &T_frame1_frame2, const gtsam::Pose3_ &T_frame2_frame3)