Bayes Filters Library
UKFPrediction.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2016-2019 Istituto Italiano di Tecnologia (IIT)
3  *
4  * This software may be modified and distributed under the terms of the
5  * BSD 3-Clause license. See the accompanying LICENSE file for details.
6  */
7 
8 #ifndef UKFPREDICTION_H
9 #define UKFPREDICTION_H
10 
17 
18 #include <memory>
19 
20 namespace bfl {
21  class UKFPrediction;
22 }
23 
24 
26 {
27 public:
28  enum class UKFPredictionType
29  {
30  Generic,
31  Additive
32  };
33 
34  UKFPrediction(std::unique_ptr<StateModel> state_model, const double alpha, const double beta, const double kappa) noexcept;
35 
36  UKFPrediction(std::unique_ptr<AdditiveStateModel> state_model, const double alpha, const double beta, const double kappa) noexcept;
37 
38  UKFPrediction(const UKFPrediction& prediction) noexcept = delete;
39 
40  UKFPrediction& operator=(const UKFPrediction& prediction) noexcept = delete;
41 
42  UKFPrediction(UKFPrediction&& prediction) noexcept;
43 
44  UKFPrediction& operator=(UKFPrediction&& prediction) noexcept;
45 
46  virtual ~UKFPrediction() noexcept = default;
47 
48  StateModel& getStateModel() noexcept override;
49 
50 
51 protected:
52  void predictStep(const GaussianMixture& prev_state, GaussianMixture& pred_state) override;
53 
54 
55 private:
56  std::unique_ptr<StateModel> state_model_;
57 
59 
65 
70 };
71 
72 #endif /* UKFPREDICTION_H */
sigma_point.h
bfl::UKFPrediction::getStateModel
StateModel & getStateModel() noexcept override
Definition: UKFPrediction.cpp:69
StateModel.h
bfl::UKFPrediction
Definition: UKFPrediction.h:25
GaussianPrediction.h
bfl
Port of boost::any for C++11 compilers.
Definition: AdditiveMeasurementModel.h:13
bfl::UKFPrediction::UKFPredictionType
UKFPredictionType
Definition: UKFPrediction.h:28
AdditiveStateModel.h
bfl::UKFPrediction::~UKFPrediction
virtual ~UKFPrediction() noexcept=default
bfl::sigma_point::sigma_point
Eigen::MatrixXd sigma_point(const GaussianMixture &state, const double c)
Definition: sigma_point.cpp:84
bfl::UKFPrediction::UKFPredictionType::Additive
@ Additive
bfl::UKFPrediction::operator=
UKFPrediction & operator=(const UKFPrediction &prediction) noexcept=delete
bfl::UKFPrediction::state_model_
std::unique_ptr< StateModel > state_model_
Definition: UKFPrediction.h:56
GaussianMixture.h
bfl::UKFPrediction::UKFPrediction
UKFPrediction(std::unique_ptr< StateModel > state_model, const double alpha, const double beta, const double kappa) noexcept
Definition: UKFPrediction.cpp:16
bfl::GaussianPrediction
Definition: GaussianPrediction.h:23
bfl::UKFPrediction::add_state_model_
std::unique_ptr< AdditiveStateModel > add_state_model_
Definition: UKFPrediction.h:58
bfl::UKFPrediction::type_
UKFPredictionType type_
Distinguish between a UKFPrediction using a generic StateModel and a UKFPrediction using an AdditiveS...
Definition: UKFPrediction.h:64
bfl::UKFPrediction::predictStep
void predictStep(const GaussianMixture &prev_state, GaussianMixture &pred_state) override
Definition: UKFPrediction.cpp:78
bfl::StateModel
Definition: StateModel.h:22
ExogenousModel.h
bfl::AdditiveStateModel
Definition: AdditiveStateModel.h:19
bfl::GaussianMixture
Definition: GaussianMixture.h:20
bfl::UKFPrediction::ut_weight_
sigma_point::UTWeight ut_weight_
Unscented transform weight.
Definition: UKFPrediction.h:69
bfl::UKFPrediction::UKFPredictionType::Generic
@ Generic