mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-17 12:23:34 +08:00
Reorder innovations in LPE
This commit is contained in:
@@ -189,20 +189,20 @@ void BlockLocalPositionEstimator::gpsCorrect()
|
||||
Matrix<float, n_y_gps, n_y_gps> S = C * m_P * C.transpose() + R;
|
||||
|
||||
// publish innovations
|
||||
_pub_innov.get().gps_hvel[0] = r(3);
|
||||
_pub_innov.get().gps_hvel[1] = r(4);
|
||||
_pub_innov.get().gps_vvel = r(5);
|
||||
_pub_innov.get().gps_hpos[0] = r(0);
|
||||
_pub_innov.get().gps_hpos[1] = r(1);
|
||||
_pub_innov.get().gps_vpos = r(2);
|
||||
_pub_innov.get().gps_hvel[0] = r(3);
|
||||
_pub_innov.get().gps_hvel[1] = r(4);
|
||||
_pub_innov.get().gps_vvel = r(5);
|
||||
|
||||
// publish innovation variances
|
||||
_pub_innov_var.get().gps_hvel[0] = S(3, 3);
|
||||
_pub_innov_var.get().gps_hvel[1] = S(4, 4);
|
||||
_pub_innov_var.get().gps_vvel = S(5, 5);
|
||||
_pub_innov_var.get().gps_hpos[0] = S(0, 0);
|
||||
_pub_innov_var.get().gps_hpos[1] = S(1, 1);
|
||||
_pub_innov_var.get().gps_vpos = S(2, 2);
|
||||
_pub_innov_var.get().gps_hvel[0] = S(3, 3);
|
||||
_pub_innov_var.get().gps_hvel[1] = S(4, 4);
|
||||
_pub_innov_var.get().gps_vvel = S(5, 5);
|
||||
|
||||
// residual covariance, (inverse)
|
||||
Matrix<float, n_y_gps, n_y_gps> S_I = inv<float, n_y_gps>(S);
|
||||
|
||||
@@ -145,20 +145,20 @@ void BlockLocalPositionEstimator::mocapCorrect()
|
||||
Matrix<float, n_y_mocap, n_y_mocap> S = C * m_P * C.transpose() + R;
|
||||
|
||||
// publish innovations
|
||||
_pub_innov.get().ev_hvel[0] = NAN;
|
||||
_pub_innov.get().ev_hvel[1] = NAN;
|
||||
_pub_innov.get().ev_vvel = NAN;
|
||||
_pub_innov.get().ev_hpos[0] = r(0);
|
||||
_pub_innov.get().ev_hpos[1] = r(1);
|
||||
_pub_innov.get().ev_vpos = r(2);
|
||||
_pub_innov.get().ev_hvel[0] = NAN;
|
||||
_pub_innov.get().ev_hvel[1] = NAN;
|
||||
_pub_innov.get().ev_vvel = NAN;
|
||||
|
||||
// publish innovation variances
|
||||
_pub_innov_var.get().ev_hvel[0] = NAN;
|
||||
_pub_innov_var.get().ev_hvel[1] = NAN;
|
||||
_pub_innov_var.get().ev_vvel = NAN;
|
||||
_pub_innov_var.get().ev_hpos[0] = S(0, 0);
|
||||
_pub_innov_var.get().ev_hpos[1] = S(1, 1);
|
||||
_pub_innov_var.get().ev_vpos = S(2, 2);
|
||||
_pub_innov_var.get().ev_hvel[0] = NAN;
|
||||
_pub_innov_var.get().ev_hvel[1] = NAN;
|
||||
_pub_innov_var.get().ev_vvel = NAN;
|
||||
|
||||
// residual covariance, (inverse)
|
||||
Matrix<float, n_y_mocap, n_y_mocap> S_I = inv<float, n_y_mocap>(S);
|
||||
|
||||
@@ -162,20 +162,20 @@ void BlockLocalPositionEstimator::visionCorrect()
|
||||
Matrix<float, n_y_vision, n_y_vision> S = C * m_P * C.transpose() + R;
|
||||
|
||||
// publish innovations
|
||||
_pub_innov.get().ev_hvel[0] = NAN;
|
||||
_pub_innov.get().ev_hvel[1] = NAN;
|
||||
_pub_innov.get().ev_vvel = NAN;
|
||||
_pub_innov.get().ev_hpos[0] = r(0, 0);
|
||||
_pub_innov.get().ev_hpos[1] = r(1, 0);
|
||||
_pub_innov.get().ev_vpos = r(2, 0);
|
||||
_pub_innov.get().ev_hvel[0] = NAN;
|
||||
_pub_innov.get().ev_hvel[1] = NAN;
|
||||
_pub_innov.get().ev_vvel = NAN;
|
||||
|
||||
// publish innovation variances
|
||||
_pub_innov_var.get().ev_hvel[0] = NAN;
|
||||
_pub_innov_var.get().ev_hvel[1] = NAN;
|
||||
_pub_innov_var.get().ev_vvel = NAN;
|
||||
_pub_innov_var.get().ev_hpos[0] = S(0, 0);
|
||||
_pub_innov_var.get().ev_hpos[1] = S(1, 1);
|
||||
_pub_innov_var.get().ev_vpos = S(2, 2);
|
||||
_pub_innov_var.get().ev_hvel[0] = NAN;
|
||||
_pub_innov_var.get().ev_hvel[1] = NAN;
|
||||
_pub_innov_var.get().ev_vvel = NAN;
|
||||
|
||||
// residual covariance, (inverse)
|
||||
Matrix<float, n_y_vision, n_y_vision> S_I = inv<float, n_y_vision>(S);
|
||||
|
||||
Reference in New Issue
Block a user