Skip to content

Commit 3933a6d

Browse files
committed
Update implementation of UKFCorrection in order to use the measurement model input and measurement vector descriptions
1 parent b716a40 commit 3933a6d

File tree

2 files changed

+6
-11
lines changed

2 files changed

+6
-11
lines changed

src/BayesFilters/include/BayesFilters/UKFCorrection.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ namespace bfl {
2424
class bfl::UKFCorrection : public GaussianCorrection
2525
{
2626
public:
27-
UKFCorrection(std::unique_ptr<MeasurementModel> meas_model, const size_t n, const double alpha, const double beta, const double kappa) noexcept;
27+
UKFCorrection(std::unique_ptr<MeasurementModel> meas_model, const double alpha, const double beta, const double kappa) noexcept;
2828

29-
UKFCorrection(std::unique_ptr<AdditiveMeasurementModel> meas_model, const size_t n, const double alpha, const double beta, const double kappa) noexcept;
29+
UKFCorrection(std::unique_ptr<AdditiveMeasurementModel> meas_model, const double alpha, const double beta, const double kappa) noexcept;
3030

3131
UKFCorrection(UKFCorrection&& ukf_prediction) noexcept;
3232

src/BayesFilters/src/UKFCorrection.cpp

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,28 +16,26 @@ using namespace Eigen;
1616
UKFCorrection::UKFCorrection
1717
(
1818
std::unique_ptr<MeasurementModel> measurement_model,
19-
const size_t n,
2019
const double alpha,
2120
const double beta,
2221
const double kappa
2322
) noexcept :
2423
measurement_model_(std::move(measurement_model)),
2524
type_(UKFCorrectionType::Generic),
26-
ut_weight_(n, alpha, beta, kappa)
25+
ut_weight_(measurement_model_->getInputDescription(), alpha, beta, kappa)
2726
{ }
2827

2928

3029
UKFCorrection::UKFCorrection
3130
(
3231
std::unique_ptr<AdditiveMeasurementModel> measurement_model,
33-
const size_t n,
3432
const double alpha,
3533
const double beta,
3634
const double kappa
3735
) noexcept :
3836
additive_measurement_model_(std::move(measurement_model)),
3937
type_(UKFCorrectionType::Additive),
40-
ut_weight_(n, alpha, beta, kappa)
38+
ut_weight_(additive_measurement_model_->getInputDescription().noiseless_description(), alpha, beta, kappa)
4139
{ }
4240

4341

@@ -89,11 +87,8 @@ void UKFCorrection::correctStep(const GaussianMixture& pred_state, GaussianMixtu
8987
return;
9088
}
9189

92-
/* Initialize predicted measurement GaussianMixture. */
93-
std::pair<std::size_t, std::size_t> meas_sizes = model.getOutputSize();
94-
std::size_t meas_size = meas_sizes.first + meas_sizes.second;
95-
/* GaussianMixture will effectively resize only if it needs to. */
96-
predicted_meas_.resize(pred_state.components, meas_size);
90+
/* Extract measurement size. */
91+
std::size_t meas_size = model.getMeasurementDescription().total_size();
9792

9893
/* Evaluate the joint state-measurement statistics, if possible. */
9994
bool valid = false;

0 commit comments

Comments
 (0)