Example #1
0
void alt_filter_periodic(void) {
  // estimation at each step
  kalmanEstimation(&alt_filter,0.);

  // update on new data
  float ga = (float)gps.hmsl / 1000.;
  if (baro_ets_altitude != last_baro_alt) {
    kalmanCorrectionAltimetre(&alt_filter, baro_ets_altitude);
    last_baro_alt = baro_ets_altitude;
  }
  if (ga != last_gps_alt && GpsFixValid()) {
    kalmanCorrectionGPS(&alt_filter, ga);
    last_gps_alt = ga;
  }

  RunOnceEvery(6,DOWNLINK_SEND_VFF(DefaultChannel, &baro_ets_altitude,
        &(alt_filter.X[0]), &(alt_filter.X[1]), &(alt_filter.X[2]),
        &(alt_filter.P[0][0]), &(alt_filter.P[1][1]), &(alt_filter.P[2][2])));

}
Example #2
0
static void send_vff(void) {
    DOWNLINK_SEND_VFF(DefaultChannel, DefaultDevice,
                      &vff_z_meas, &vff_z, &vff_zdot, &vff_bias,
                      &vff_P[0][0], &vff_P[1][1], &vff_P[2][2]);
}