10TEST(CAParticleModelTest, TestUpdateVelocities) {
12 Eigen::Vector3d velocities(1.0, 2.0, 0.5);
13 Eigen::Vector3d accelerations(0.1, 0.2, 0.3);
15 double time_interval = 1.0;
17 Eigen::Vector3d result =
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);
30TEST(CAParticleModelTest, TestJacobianOfVelocityUpdate) {
32 Eigen::Vector3d velocities(1.0, 2.0, 0.5);
33 Eigen::Vector3d accelerations(0.1, 0.2, 0.3);
35 double time_interval = 1.0;
36 Eigen::Matrix3d jacobian =
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);
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.