Formula Student Autonomous Systems
The code for the main driverless system
Loading...
Searching...
No Matches
observation_models.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <eigen3/Eigen/Dense>
4
7
24
32public:
39 explicit ObservationModel(const Eigen::MatrixXf &observation_noise_covariance_matrix);
40
50 Eigen::Vector2f observation_model(const Eigen::VectorXf &expected_state,
51 const unsigned int landmark_index) const;
52
53 Eigen::VectorXf observation_model_n_landmarks(const Eigen::VectorXf &current_state,
54 const std::vector<int> &matched_ids) const;
55
56 Eigen::VectorXf format_observation(const std::vector<Eigen::Vector2f> &observations) const;
57
58 Eigen::MatrixXf get_jacobian_of_observation_model(const Eigen::VectorXf &current_state,
59 const std::vector<int> &matched_ids) const;
60
61 Eigen::MatrixXf get_full_observation_noise_covariance_matrix(const int observation_size) const;
62
72 Eigen::Vector2f inverse_observation_model(const Eigen::VectorXf &expected_state,
73 const ObservationData &observation_data) const;
74
75 Eigen::MatrixXf get_gv(const Eigen::VectorXf &expected_state,
76 const ObservationData &observation_data) const;
77
78 Eigen::MatrixXf get_gz(const Eigen::VectorXf &expected_state,
79 const ObservationData &observation_data) const;
80
90 Eigen::MatrixXf get_state_to_observation_matrix(
91 const Eigen::VectorXf &expected_state, const unsigned int landmark_index,
92 const unsigned int state_size) const; // TODO(marhcouto): refactor this maybe
93
99 Eigen::MatrixXf get_observation_noise_covariance_matrix() const;
100
106 static Eigen::MatrixXf create_observation_noise_covariance_matrix(float noise_value);
107};
Observation Model class compiled of functions for observation model.
Eigen::Vector2f observation_model(const Eigen::VectorXf &expected_state, const unsigned int landmark_index) const
Calculate expected observation from the state vector.
Eigen::MatrixXf get_full_observation_noise_covariance_matrix(const int observation_size) const
Eigen::Vector2f inverse_observation_model(const Eigen::VectorXf &expected_state, const ObservationData &observation_data) const
Calculate landmark position from observation.
Eigen::MatrixXf get_gv(const Eigen::VectorXf &expected_state, const ObservationData &observation_data) const
Eigen::MatrixXf _observation_noise_covariance_matrix_
H or C.
Eigen::VectorXf format_observation(const std::vector< Eigen::Vector2f > &observations) const
Eigen::MatrixXf get_observation_noise_covariance_matrix() const
Get the observation noise covariance matrix (C or H)
Eigen::MatrixXf get_state_to_observation_matrix(const Eigen::VectorXf &expected_state, const unsigned int landmark_index, const unsigned int state_size) const
Get the state to observation matrix of the observation model (H in LaTeX documentation)
Eigen::VectorXf observation_model_n_landmarks(const Eigen::VectorXf &current_state, const std::vector< int > &matched_ids) const
Eigen::MatrixXf get_gz(const Eigen::VectorXf &expected_state, const ObservationData &observation_data) const
static Eigen::MatrixXf create_observation_noise_covariance_matrix(float noise_value)
Create a Q matrix from a given noise value.
Eigen::MatrixXf get_jacobian_of_observation_model(const Eigen::VectorXf &current_state, const std::vector< int > &matched_ids) const
Struct containing observation data.
ObservationData(double x, double y, common_lib::competition_logic::Color color)
ObservationData(common_lib::structures::Position position, common_lib::competition_logic::Color color)
common_lib::structures::Position position
common_lib::competition_logic::Color color
@ BLUE
Definition types.hpp:10