Formula Student Autonomous Systems
The code for the main driverless system
Loading...
Searching...
No Matches
particle_model_test.cpp
Go to the documentation of this file.
2
3#include <gtest/gtest.h>
4
10TEST(CAParticleModelTest, TestUpdateVelocities) {
11 CAParticleModel particle_model;
12 Eigen::Vector3d velocities(1.0, 2.0, 0.5);
13 Eigen::Vector3d accelerations(0.1, 0.2, 0.3);
14
15 double time_interval = 1.0;
16
17 Eigen::Vector3d result =
18 particle_model.get_next_velocities(velocities, accelerations, time_interval);
19
20 EXPECT_NEAR(result(0), 2.1, 1e-5);
21 EXPECT_NEAR(result(1), 1.7, 1e-5);
22 EXPECT_NEAR(result(2), 0.5, 1e-5);
23}
24
30TEST(CAParticleModelTest, TestJacobianOfVelocityUpdate) {
31 CAParticleModel particle_model;
32 Eigen::Vector3d velocities(1.0, 2.0, 0.5);
33 Eigen::Vector3d accelerations(0.1, 0.2, 0.3);
34
35 double time_interval = 1.0;
36 Eigen::Matrix3d jacobian =
37 particle_model.get_jacobian_velocities(velocities, accelerations, time_interval);
38
39 EXPECT_FLOAT_EQ(jacobian(0, 0), 1.0);
40 EXPECT_FLOAT_EQ(jacobian(1, 1), 1.0);
41 EXPECT_FLOAT_EQ(jacobian(2, 2), 1.0);
42 EXPECT_FLOAT_EQ(jacobian(0, 1), 0.5);
43 EXPECT_FLOAT_EQ(jacobian(0, 2), 2.0);
44 EXPECT_FLOAT_EQ(jacobian(1, 0), 0.5);
45 EXPECT_FLOAT_EQ(jacobian(1, 2), 1.0);
46 EXPECT_FLOAT_EQ(jacobian(2, 0), 0.0);
47 EXPECT_FLOAT_EQ(jacobian(2, 1), 0.0);
48}
Eigen::Vector3d get_next_velocities(const Eigen::Vector3d &previous_velocities, const Eigen::Vector3d &imu_data, const double time_interval) override
Predicts the next velocities based on the previous velocities and accelerations from IMU.
Eigen::Matrix3d get_jacobian_velocities(const Eigen::Vector3d &previous_velocities, const Eigen::Vector3d &imu_data, const double time_interval) override
Returns the Jacobian of the velocity process model.
TEST(CAParticleModelTest, TestUpdateVelocities)
Test the particle model.