4 const Eigen::Vector3d& imu_data,
5 const double time_interval) {
6 Eigen::Vector3d next_velocities;
8 previous_velocities(0) +
9 (imu_data(0) + previous_velocities(1) * previous_velocities(2)) * time_interval;
11 previous_velocities(1) +
12 (imu_data(1) - previous_velocities(0) * previous_velocities(2)) * time_interval;
13 next_velocities(2) = previous_velocities(2);
15 return next_velocities;
19 const Eigen::Vector3d& previous_velocities, [[maybe_unused]]
const Eigen::Vector3d& imu_data,
20 const double time_interval) {
21 Eigen::Matrix3d jacobian_matrix = Eigen::Matrix3d::Identity();
22 jacobian_matrix(0, 1) = previous_velocities(2) * time_interval;
23 jacobian_matrix(0, 2) = previous_velocities(1) * time_interval;
24 jacobian_matrix(1, 0) = -previous_velocities(2) * time_interval;
25 jacobian_matrix(1, 2) = -previous_velocities(0) * time_interval;
27 return jacobian_matrix;
31 [[maybe_unused]]
const Eigen::Vector3d& previous_velocities,
32 [[maybe_unused]]
const Eigen::Vector3d& accelerations,
const double time_interval) {
33 Eigen::Matrix3d jacobian_matrix = Eigen::Matrix3d::Zero();
34 jacobian_matrix(0, 0) = time_interval;
35 jacobian_matrix(1, 1) = time_interval;
36 return jacobian_matrix;
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_sensor_data(const Eigen::Vector3d &previous_velocities, const Eigen::Vector3d &accelerations, const double time_interval) override
Returns the Jacobian of the velocity process model with respect to the accelerations.
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.