Formula Student Autonomous Systems
The code for the main driverless system
Loading...
Searching...
No Matches
slam_base_observation_model_test.cpp
Go to the documentation of this file.
1#include <gtest/gtest.h>
2
3#include <cmath>
4
6
11TEST(SLAMObservationModelTest, test_observation_model_1) {
12 Eigen::VectorXd state(3);
13 state << 0, 0, 0;
14 SLAMObservationModel observation_model_;
15 Eigen::VectorXd observations = observation_model_.observation_model(state, std::vector<int>());
16 EXPECT_FLOAT_EQ(observations.size(), 0);
17}
18
23TEST(SLAMObservationModelTest, test_observation_model_2) {
24 Eigen::VectorXd state(5);
25 state << 0, 0, 0, 1, 1;
26 SLAMObservationModel observation_model_;
27 Eigen::VectorXd observations = observation_model_.observation_model(state, std::vector<int>({3}));
28 EXPECT_FLOAT_EQ(observations.size(), 2);
29 EXPECT_FLOAT_EQ(observations(0), 1);
30 EXPECT_FLOAT_EQ(observations(1), 1);
31}
32
37TEST(SLAMObservationModelTest, test_observation_model_3) {
38 Eigen::VectorXd state(5);
39 state << 0, 0, M_PI / 2.0, 1, 1;
40 SLAMObservationModel observation_model_;
41 Eigen::VectorXd observations = observation_model_.observation_model(state, std::vector<int>({3}));
42 EXPECT_FLOAT_EQ(observations.size(), 2);
43 EXPECT_FLOAT_EQ(observations(0), 1);
44 EXPECT_FLOAT_EQ(observations(1), -1);
45}
46
51TEST(SLAMObservationModelTest, test_inverse_observation_model1) {
52 Eigen::VectorXd state(3);
53 state << 0, 0, 0;
54 SLAMObservationModel observation_model_;
55 Eigen::VectorXd observations(2);
56 observations << 0, 0;
57 Eigen::VectorXd inverse_observations =
58 observation_model_.inverse_observation_model(state, observations);
59 EXPECT_FLOAT_EQ(inverse_observations.size(), 2);
60 EXPECT_FLOAT_EQ(inverse_observations(0), 0);
61 EXPECT_FLOAT_EQ(inverse_observations(1), 0);
62}
virtual Eigen::VectorXd inverse_observation_model(const Eigen::VectorXd &state, const Eigen::VectorXd &observations) const
transforms the landmarks' coordinates from the car's frame to the global frame
virtual Eigen::VectorXd observation_model(const Eigen::VectorXd &state, const std::vector< int > matched_landmarks) const
transform landmarks' positions from global frame to the car's frame
TEST(SLAMObservationModelTest, test_observation_model_1)
Test the observation model with trivial state.