12TEST(BASE_OBSERVATION_MODEL, ALIGNED_RANDOM_TEST) {
13 Eigen::Matrix2f q_matrix = Eigen::Matrix2f::Zero();
16 std::random_device rd;
17 std::mt19937 gen(rd());
18 std::uniform_int_distribution dis(-500, 500);
19 for (
unsigned int i = 0; i < 1000; i++) {
20 Eigen::VectorXf expected_state(5);
21 float vehicle_x =
static_cast<float>(dis(gen));
22 float vehicle_y =
static_cast<float>(dis(gen));
23 float landmark_x =
static_cast<float>(dis(gen));
24 float landmark_y =
static_cast<float>(dis(gen));
25 expected_state << vehicle_x, vehicle_y, 0, landmark_x, landmark_y;
27 observation_data.
position.
x = landmark_x - vehicle_x;
28 observation_data.
position.
y = landmark_y - vehicle_y;
29 Eigen::Vector2f observed_landmark_position =
31 Eigen::Vector2f predicted_observation = observation_model.
observation_model(expected_state, 3);
32 EXPECT_EQ(observed_landmark_position(0), landmark_x);
33 EXPECT_EQ(observed_landmark_position(1), landmark_y);
34 EXPECT_EQ(predicted_observation(0), observation_data.
position.
x);
35 EXPECT_EQ(predicted_observation(1), observation_data.
position.
y);
43TEST(BASE_OBSERVATION_MODEL, INDIVIDUAL_CASE_TEST1) {
44 Eigen::Matrix2f q_matrix = Eigen::Matrix2f::Zero();
47 Eigen::VectorXf expected_state(5);
50 float orientation =
static_cast<float>(-M_PI / 4);
52 float landmark_y =
static_cast<float>(-2 - sqrt(2));
55 expected_state << vehicle_x, vehicle_y, orientation, landmark_x, landmark_y;
56 Eigen::Vector2f observed_landmark_position =
58 Eigen::Vector2f predicted_observation = observation_model.
observation_model(expected_state, 3);
59 EXPECT_NEAR(observed_landmark_position(0), landmark_x, 0.00001);
60 EXPECT_NEAR(observed_landmark_position(1), landmark_y, 0.00001);
61 EXPECT_NEAR(predicted_observation(0), observation_data.
position.
x, 0.00001);
62 EXPECT_NEAR(predicted_observation(1), observation_data.
position.
y, 0.00001);
69TEST(BASE_OBSERVATION_MODEL, INDIVIDUAL_CASE_TEST2) {
70 Eigen::Matrix2f q_matrix = Eigen::Matrix2f::Zero();
73 Eigen::VectorXf expected_state(5);
76 float orientation =
static_cast<float>(2 * M_PI);
78 float landmark_y = -3;
81 expected_state << vehicle_x, vehicle_y, orientation, landmark_x, landmark_y;
82 Eigen::Vector2f observed_landmark_position =
84 Eigen::Vector2f predicted_observation = observation_model.
observation_model(expected_state, 3);
85 EXPECT_NEAR(observed_landmark_position(0), landmark_x, 0.00001);
86 EXPECT_NEAR(observed_landmark_position(1), landmark_y, 0.00001);
87 EXPECT_NEAR(predicted_observation(0), observation_data.
position.
x, 0.00001);
88 EXPECT_NEAR(predicted_observation(1), observation_data.
position.
y, 0.00001);
95TEST(BASE_OBSERVATION_MODEL, INDIVIDUAL_CASE_TEST3) {
96 Eigen::Matrix2f q_matrix = Eigen::Matrix2f::Zero();
99 Eigen::VectorXf expected_state(5);
101 float vehicle_y = -2;
102 float orientation =
static_cast<float>(M_PI / 2);
103 float landmark_x = 6;
104 float landmark_y = -1;
107 expected_state << vehicle_x, vehicle_y, orientation, landmark_x, landmark_y;
108 Eigen::Vector2f observed_landmark_position =
110 Eigen::Vector2f predicted_observation = observation_model.
observation_model(expected_state, 3);
111 EXPECT_NEAR(observed_landmark_position(0), landmark_x, 0.00001);
112 EXPECT_NEAR(observed_landmark_position(1), landmark_y, 0.00001);
113 EXPECT_NEAR(predicted_observation(0), observation_data.
position.
x, 0.00001);
114 EXPECT_NEAR(predicted_observation(1), observation_data.
position.
y, 0.00001);