1 #ifndef BROWNIANMOTIONPOSE_H 2 #define BROWNIANMOTIONPOSE_H 7 #include <BayesFilters/StateModel.h> 13 BrownianMotionPose(
const float q_xy,
const float q_z,
const float theta,
const float cone_angle,
const unsigned int seed) noexcept;
15 BrownianMotionPose(
const float q_xy,
const float q_z,
const float theta,
const float cone_angle) noexcept;
29 void propagate(
const Eigen::Ref<const Eigen::MatrixXf>& cur_state, Eigen::Ref<Eigen::MatrixXf> prop_state)
override;
31 void motion(
const Eigen::Ref<const Eigen::MatrixXf>& cur_state, Eigen::Ref<Eigen::MatrixXf> mot_state)
override;
37 bool setProperty(
const std::string& property)
override {
return false; };
57 void addAxisangleDisturbance(
const Eigen::Ref<const Eigen::MatrixXf>& disturbance_vec, Eigen::Ref<Eigen::MatrixXf> current_vec);
std::function< float()> gaussian_random_pos_xy_
std::normal_distribution< float > distribution_pos_xy_
Eigen::MatrixXf getNoiseCovarianceMatrix() override
BrownianMotionPose & operator=(const BrownianMotionPose &bm)
void propagate(const Eigen::Ref< const Eigen::MatrixXf > &cur_state, Eigen::Ref< Eigen::MatrixXf > prop_state) override
std::normal_distribution< float > distribution_pos_z_
Eigen::Vector4f cone_dir_
~BrownianMotionPose() noexcept
void addAxisangleDisturbance(const Eigen::Ref< const Eigen::MatrixXf > &disturbance_vec, Eigen::Ref< Eigen::MatrixXf > current_vec)
void motion(const Eigen::Ref< const Eigen::MatrixXf > &cur_state, Eigen::Ref< Eigen::MatrixXf > mot_state) override
std::function< float()> gaussian_random_pos_z_
std::uniform_real_distribution< float > distribution_cone_
bool setProperty(const std::string &property) override
std::normal_distribution< float > distribution_theta_
BrownianMotionPose() noexcept
Eigen::MatrixXf getNoiseSample(const int num) override
std::function< float()> gaussian_random_cone_
std::mt19937_64 generator_
std::function< float()> gaussian_random_theta_