diff --git a/src/features/feature_diff_drive.cpp b/src/features/feature_diff_drive.cpp index ae1f8a2b3a3298824ffd6703786d901b272a88c6..c33d5fdec4e487e4e1b8893625ba140b60b4f54e 100644 --- a/src/features/feature_diff_drive.cpp +++ b/src/features/feature_diff_drive.cpp @@ -13,7 +13,7 @@ FeatureDiffDrive::FeatureDiffDrive(const Eigen::VectorXs& _delta_preintegrated, // } -const Eigen::VectorXs& FeatureDiffDrive::getJacobianFactor() const +const Eigen::MatrixXs& FeatureDiffDrive::getJacobianFactor() const { return jacobian_diff_drive_factors_; } diff --git a/src/features/feature_diff_drive.h b/src/features/feature_diff_drive.h index ac13c490717c66b54c652d9f93e49387672a1d1c..5c837469b577cf411eb8c830e2941823d1a0d91f 100644 --- a/src/features/feature_diff_drive.h +++ b/src/features/feature_diff_drive.h @@ -26,12 +26,12 @@ public: virtual ~FeatureDiffDrive() = default; - const Eigen::VectorXs& getJacobianFactor() const; + const Eigen::MatrixXs& getJacobianFactor() const; protected: Eigen::VectorXs diff_drive_factors_; - Eigen::VectorXs jacobian_diff_drive_factors_; + Eigen::MatrixXs jacobian_diff_drive_factors_; }; } /* namespace wolf */ diff --git a/src/sensors/sensor_diff_drive.cpp b/src/sensors/sensor_diff_drive.cpp index 0931b700ce658b486823fa930e3f1c454f87be5e..4c57144c96375f6c077d90ea20fde5ad027e488d 100644 --- a/src/sensors/sensor_diff_drive.cpp +++ b/src/sensors/sensor_diff_drive.cpp @@ -33,7 +33,7 @@ SensorBasePtr SensorDiffDrive::create(const std::string& _unique_name, StateBlockPtr pos_ptr = std::make_shared<StateBlock>(_extrinsics_po.head(2), true); StateBlockPtr ori_ptr = std::make_shared<StateBlock>(_extrinsics_po.tail(1), true); - StateBlockPtr int_ptr = std::make_shared<StateBlock>(params->factors_, true); + StateBlockPtr int_ptr = std::make_shared<StateBlock>(params->factors_, false); SensorBasePtr odo = std::make_shared<SensorDiffDrive>(pos_ptr, ori_ptr, int_ptr, params); @@ -41,7 +41,7 @@ SensorBasePtr SensorDiffDrive::create(const std::string& _unique_name, /// @todo make calibration optional at creation //if (calibrate) - odo->unfixIntrinsics(); + // odo->unfixIntrinsics(); return odo; } diff --git a/src/sensors/sensor_diff_drive.h b/src/sensors/sensor_diff_drive.h index f4556a84a16c7a347f27a6f7f51ce913c02dc477..749772902dcf39e035b318705a4797028c896d5b 100644 --- a/src/sensors/sensor_diff_drive.h +++ b/src/sensors/sensor_diff_drive.h @@ -14,6 +14,9 @@ namespace wolf { +WOLF_STRUCT_PTR_TYPEDEFS(IntrinsicsDiffDrive); +WOLF_STRUCT_PTR_TYPEDEFS(SensorDiffDrive); + struct IntrinsicsDiffDrive : public IntrinsicsBase { Scalar left_radius_;