8#ifndef GMSF_UNARY_EXPRESSION_POSITION3_LANDMARK_H
9#define GMSF_UNARY_EXPRESSION_POSITION3_LANDMARK_H
12#include <gtsam/base/types.h>
13#include <gtsam/inference/Symbol.h>
14#include <gtsam/slam/expressions.h>
15#include "gtsam/navigation/NavState.h"
28 const std::string& imuFrameName,
const Eigen::Isometry3d& T_I_sensorFrame,
const int landmarkCreationCounter)
49 const gtsam::Pose3& T_W_I_est = W_currentPropagatedState.pose();
52 const gtsam::Point3 W_t_W_S_est = T_W_S_est.translation();
53 const gtsam::Point3 W_t_S_L_meas = T_W_S_est.rotation().rotate(S_t_S_L_meas);
54 return W_t_W_S_est + W_t_S_L_meas;
74 gtsam::Pose3
convertToPose3(
const gtsam::Point3& measurement)
final {
return gtsam::Pose3(gtsam::Rot3::Identity(), measurement); }
76 gtsam::Point3
convertFromPose3(
const gtsam::Pose3& pose)
final {
return pose.translation(); }
virtual gtsam::Point3 computeW_t_W_L_initial(const gtsam::NavState &W_currentPropagatedState) final
const gtsam::Expression< gtsam::Point3 > getGtsamExpression() const override
const gtsam::Point3 getGtsamMeasurementValue() const override
GmsfUnaryExpressionLandmarkPosition3(const std::shared_ptr< UnaryMeasurementXDLandmark< Eigen::Vector3d, 3 > > &positionXDLandmarkMeasurementPtr, const std::string &imuFrameName, const Eigen::Isometry3d &T_I_sensorFrame, const int landmarkCreationCounter)
gtsam::Pose3 convertToPose3(const gtsam::Point3 &measurement) final
void transformImuStateToSensorFrameState() final
gtsam::Point3 convertFromPose3(const gtsam::Pose3 &pose) final
std::shared_ptr< UnaryMeasurementXDLandmark< Eigen::Vector3d, 3 > > positionXDLandmarkMeasurementPtr_
~GmsfUnaryExpressionLandmarkPosition3()=default
const gtsam::Vector getNoiseDensity() const override
void applyExtrinsicCalibrationCorrection(const gtsam::Point3_ &) final
GmsfUnaryExpressionLandmark(const std::shared_ptr< UnaryMeasurementLandmark > &gmsfUnaryLandmarkMeasurementPtr, const std::string &imuFrameName, const Eigen::Isometry3d &T_I_sensorFrame, const long landmarkCreationCounter)
gtsam::Point3_ exp_sensorFrame_t_sensorFrame_landmark_
Eigen::Isometry3d T_I_sensorFrameInit_
Class to represent x-dimensional landmark unary measurement in the graph.