31 belief_anchor_point_ =
object.center;
32 belief_velocity_ =
object.velocity.cast<
double>();
33 a_matrix_.setIdentity();
35 posteriori_state_(0) = belief_anchor_point_(0);
36 posteriori_state_(1) = belief_anchor_point_(1);
37 posteriori_state_(2) = belief_velocity_(0);
38 posteriori_state_(3) = belief_velocity_(1);
39 priori_state_ = posteriori_state_;
40 q_matrix_.setIdentity();
41 q_matrix_ *= s_q_matrix_ratio_;
42 r_matrix_.setIdentity();
43 r_matrix_.topLeftCorner(2, 2) =
44 object.center_uncertainty.topLeftCorner(2, 2).cast<
double>();
45 r_matrix_.block<2, 2>(2, 2) =
46 object.velocity_uncertainty.topLeftCorner(2, 2).cast<
double>();
47 p_matrix_.setIdentity();
48 p_matrix_.topLeftCorner(2, 2) =
49 object.center_uncertainty.topLeftCorner(2, 2).cast<
double>();
50 p_matrix_.block<2, 2>(2, 2) =
51 object.velocity_uncertainty.topLeftCorner(2, 2).cast<
double>();
52 c_matrix_.setIdentity();
68 a_matrix_.setIdentity();
69 a_matrix_(0, 2) = time_diff;
70 a_matrix_(1, 3) = time_diff;
71 priori_state_ = a_matrix_ * posteriori_state_;
72 p_matrix_ = ((a_matrix_ * p_matrix_) * a_matrix_.transpose()) + q_matrix_;
73 belief_anchor_point_ = new_object.
center;
74 belief_velocity_ = new_object.
velocity.cast<
double>();
75 Eigen::Vector4d measurement;
76 measurement(0) = belief_anchor_point_(0);
77 measurement(1) = belief_anchor_point_(1);
78 measurement(2) = belief_velocity_(0);
79 measurement(3) = belief_velocity_(1);
80 r_matrix_.setIdentity();
81 r_matrix_.topLeftCorner(2, 2) =
83 r_matrix_.block<2, 2>(2, 2) =
86 p_matrix_ * c_matrix_.transpose() *
87 (c_matrix_ * p_matrix_ * c_matrix_.transpose() + r_matrix_).inverse();
88 Eigen::Vector4d predict_measurement(priori_state_(0), priori_state_(1),
89 priori_state_(2), priori_state_(3));
91 priori_state_ + k_matrix_ * (measurement - predict_measurement);
93 (Eigen::Matrix4d::Identity() - k_matrix_ * c_matrix_) * p_matrix_ *
94 (Eigen::Matrix4d::Identity() - k_matrix_ * c_matrix_).transpose() +
95 k_matrix_ * r_matrix_ * k_matrix_.transpose();
96 belief_anchor_point_(0) = posteriori_state_(0);
97 belief_anchor_point_(1) = posteriori_state_(1);
98 belief_velocity_(0) = posteriori_state_(2);
99 belief_velocity_(1) = posteriori_state_(3);
100 Eigen::VectorXd state;
102 state[0] = belief_anchor_point_[0];
103 state[1] = belief_anchor_point_[1];
104 state[2] = belief_velocity_[0];
105 state[3] = belief_velocity_[1];