added covariances to estimator_status and logging

This commit is contained in:
Youssef Demitri
2015-06-24 15:28:09 +02:00
parent da29b88a04
commit 66a637dcc7
6 changed files with 53 additions and 10 deletions
@@ -478,8 +478,13 @@ int AttitudePositionEstimatorEKF::check_filter_state()
size_t max_states = (sizeof(rep.states) / sizeof(rep.states[0]));
rep.n_states = (ekf_n_states < max_states) ? ekf_n_states : max_states;
// Copy diagonal elemnts of covariance matrix
float covariances[28];
_ekf->get_covariance(covariances);
for (size_t i = 0; i < rep.n_states; i++) {
rep.states[i] = ekf_report.states[i];
rep.covariances[i] = covariances[i];
}
@@ -3337,3 +3337,10 @@ void AttPosEKF::setIsFixedWing(const bool fixedWing)
{
_isFixedWing = fixedWing;
}
void AttPosEKF::get_covariance(float c[EKF_STATE_ESTIMATES])
{
for (unsigned int i = 0; i < EKF_STATE_ESTIMATES; i++) {
c[i] = P[i][i];
}
}
@@ -379,6 +379,8 @@ public:
*/
void ZeroVariables();
void get_covariance(float c[28]);
protected:
/**