Browse Source

fixed bug in beta fusion

master
CarlOlsson 9 years ago committed by Lorenz Meier
parent
commit
a9182259a5
  1. 5
      EKF/control.cpp

5
EKF/control.cpp

@ -778,13 +778,12 @@ void Ekf::controlAirDataFusion()
void Ekf::controlBetaFusion() void Ekf::controlBetaFusion()
{ {
bool beta_fusion_time_triggered = _time_last_imu - _time_last_beta_fuse > _params.beta_avg_ft_us; bool beta_fusion_time_triggered = _time_last_imu - _time_last_beta_fuse > _params.beta_avg_ft_us;
if(beta_fusion_time_triggered && _control_status.flags.fuse_beta && _control_status.flags.in_air && _time_last_arsp_fuse > 5e6){
if(beta_fusion_time_triggered && _control_status.flags.fuse_beta && _control_status.flags.in_air && _time_last_imu - _time_last_arsp_fuse > 5e6){
fuseSideslip(); fuseSideslip();
} }
bool sideslip_timed_out = _time_last_imu - _time_last_beta_fuse > 10e6; bool sideslip_timed_out = _time_last_imu - _time_last_beta_fuse > 10e6;
if(sideslip_timed_out && _control_status.flags.fuse_beta){ if(sideslip_timed_out && _control_status.flags.fuse_beta && _time_last_beta_fuse > 0.0f){
_control_status.flags.wind = false; _control_status.flags.wind = false;
} }

Loading…
Cancel
Save