// generated from rosidl_adapter/resource/msg.idl.em
// with input from px4_msgs/msg/EstimatorStatusFlags.msg
// generated code does not contain a copyright notice


module px4_msgs {
  module msg {
    struct EstimatorStatusFlags {
      @verbatim (language="comment", text=
        "time since system start (microseconds)")
      uint64 timestamp;

      @verbatim (language="comment", text=
        "the timestamp of the raw data (microseconds)")
      uint64 timestamp_sample;

      @verbatim (language="comment", text=
        "filter control status" "\n"
        "number of filter control status (cs) changes")
      uint32 control_status_changes;

      @verbatim (language="comment", text=
        "0 - true if the filter tilt alignment is complete")
      boolean cs_tilt_align;

      @verbatim (language="comment", text=
        "1 - true if the filter yaw alignment is complete")
      boolean cs_yaw_align;

      @verbatim (language="comment", text=
        "2 - true if GPS measurement fusion is intended")
      boolean cs_gps;

      @verbatim (language="comment", text=
        "3 - true if optical flow measurements fusion is intended")
      boolean cs_opt_flow;

      @verbatim (language="comment", text=
        "4 - true if a simple magnetic yaw heading fusion is intended")
      boolean cs_mag_hdg;

      @verbatim (language="comment", text=
        "5 - true if 3-axis magnetometer measurement fusion is intended")
      boolean cs_mag_3d;

      @verbatim (language="comment", text=
        "6 - true if synthetic magnetic declination measurements fusion is intended")
      boolean cs_mag_dec;

      @verbatim (language="comment", text=
        "7 - true when the vehicle is airborne")
      boolean cs_in_air;

      @verbatim (language="comment", text=
        "8 - true when wind velocity is being estimated")
      boolean cs_wind;

      @verbatim (language="comment", text=
        "9 - true when baro height is being fused as a primary height reference")
      boolean cs_baro_hgt;

      @verbatim (language="comment", text=
        "10 - true when range finder height is being fused as a primary height reference")
      boolean cs_rng_hgt;

      @verbatim (language="comment", text=
        "11 - true when GPS height is being fused as a primary height reference")
      boolean cs_gps_hgt;

      @verbatim (language="comment", text=
        "12 - true when local position data fusion from external vision is intended")
      boolean cs_ev_pos;

      @verbatim (language="comment", text=
        "13 - true when yaw data from external vision measurements fusion is intended")
      boolean cs_ev_yaw;

      @verbatim (language="comment", text=
        "14 - true when height data from external vision measurements is being fused")
      boolean cs_ev_hgt;

      @verbatim (language="comment", text=
        "15 - true when synthetic sideslip measurements are being fused")
      boolean cs_fuse_beta;

      @verbatim (language="comment", text=
        "16 - true when the mag field does not match the expected strength")
      boolean cs_mag_field_disturbed;

      @verbatim (language="comment", text=
        "17 - true when the vehicle is operating as a fixed wing vehicle")
      boolean cs_fixed_wing;

      @verbatim (language="comment", text=
        "18 - true when the magnetometer has been declared faulty and is no longer being used")
      boolean cs_mag_fault;

      @verbatim (language="comment", text=
        "19 - true when airspeed measurements are being fused")
      boolean cs_fuse_aspd;

      @verbatim (language="comment", text=
        "20 - true when protection from ground effect induced static pressure rise is active")
      boolean cs_gnd_effect;

      @verbatim (language="comment", text=
        "21 - true when rng data wasn't ready for more than 10s and new rng values haven't changed enough")
      boolean cs_rng_stuck;

      @verbatim (language="comment", text=
        "22 - true when yaw (not ground course) data fusion from a GPS receiver is intended")
      boolean cs_gps_yaw;

      @verbatim (language="comment", text=
        "23 - true when the in-flight mag field alignment has been completed")
      boolean cs_mag_aligned_in_flight;

      @verbatim (language="comment", text=
        "24 - true when local frame velocity data fusion from external vision measurements is intended")
      boolean cs_ev_vel;

      @verbatim (language="comment", text=
        "25 - true when we are using a synthesized measurement for the magnetometer Z component")
      boolean cs_synthetic_mag_z;

      @verbatim (language="comment", text=
        "26 - true when the vehicle is at rest")
      boolean cs_vehicle_at_rest;

      @verbatim (language="comment", text=
        "27 - true when the GNSS heading has been declared faulty and is no longer being used")
      boolean cs_gps_yaw_fault;

      @verbatim (language="comment", text=
        "28 - true when the range finder has been declared faulty and is no longer being used")
      boolean cs_rng_fault;

      @verbatim (language="comment", text=
        "29 - true if we are no longer fusing measurements that constrain horizontal velocity drift")
      boolean cs_inertial_dead_reckoning;

      @verbatim (language="comment", text=
        "30 - true if we are navigationg reliant on wind relative measurements")
      boolean cs_wind_dead_reckoning;

      @verbatim (language="comment", text=
        "31 - true when the range finder kinematic consistency check is passing")
      boolean cs_rng_kin_consistent;

      @verbatim (language="comment", text=
        "32 - true when fake position measurements are being fused")
      boolean cs_fake_pos;

      @verbatim (language="comment", text=
        "33 - true when fake height measurements are being fused")
      boolean cs_fake_hgt;

      @verbatim (language="comment", text=
        "34 - true when gravity vector measurements are being fused")
      boolean cs_gravity_vector;

      @verbatim (language="comment", text=
        "35 - true if 3-axis magnetometer measurement fusion (mag states only) is intended")
      boolean cs_mag;

      @verbatim (language="comment", text=
        "36 - true when the EV heading has been declared faulty and is no longer being used")
      boolean cs_ev_yaw_fault;

      @verbatim (language="comment", text=
        "37 - true when the heading obtained from mag data is declared consistent with the filter")
      boolean cs_mag_heading_consistent;

      @verbatim (language="comment", text=
        "38 - true if auxiliary global position measurement fusion is intended")
      boolean cs_aux_gpos;

      @verbatim (language="comment", text=
        "fault status" "\n"
        "number of filter fault status (fs) changes")
      uint32 fault_status_changes;

      @verbatim (language="comment", text=
        "0 - true if the fusion of the magnetometer X-axis has encountered a numerical error")
      boolean fs_bad_mag_x;

      @verbatim (language="comment", text=
        "1 - true if the fusion of the magnetometer Y-axis has encountered a numerical error")
      boolean fs_bad_mag_y;

      @verbatim (language="comment", text=
        "2 - true if the fusion of the magnetometer Z-axis has encountered a numerical error")
      boolean fs_bad_mag_z;

      @verbatim (language="comment", text=
        "3 - true if the fusion of the heading angle has encountered a numerical error")
      boolean fs_bad_hdg;

      @verbatim (language="comment", text=
        "4 - true if the fusion of the magnetic declination has encountered a numerical error")
      boolean fs_bad_mag_decl;

      @verbatim (language="comment", text=
        "5 - true if fusion of the airspeed has encountered a numerical error")
      boolean fs_bad_airspeed;

      @verbatim (language="comment", text=
        "6 - true if fusion of the synthetic sideslip constraint has encountered a numerical error")
      boolean fs_bad_sideslip;

      @verbatim (language="comment", text=
        "7 - true if fusion of the optical flow X axis has encountered a numerical error")
      boolean fs_bad_optflow_x;

      @verbatim (language="comment", text=
        "8 - true if fusion of the optical flow Y axis has encountered a numerical error")
      boolean fs_bad_optflow_y;

      @verbatim (language="comment", text=
        "9 - true if bad delta velocity bias estimates have been detected")
      boolean fs_bad_acc_bias;

      @verbatim (language="comment", text=
        "10 - true if bad vertical accelerometer data has been detected")
      boolean fs_bad_acc_vertical;

      @verbatim (language="comment", text=
        "11 - true if delta velocity data contains clipping (asymmetric railing)")
      boolean fs_bad_acc_clipping;

      @verbatim (language="comment", text=
        "innovation test failures" "\n"
        "number of innovation fault status (reject) changes")
      uint32 innovation_fault_status_changes;

      @verbatim (language="comment", text=
        "0 - true if horizontal velocity observations have been rejected")
      boolean reject_hor_vel;

      @verbatim (language="comment", text=
        "1 - true if vertical velocity observations have been rejected")
      boolean reject_ver_vel;

      @verbatim (language="comment", text=
        "2 - true if horizontal position observations have been rejected")
      boolean reject_hor_pos;

      @verbatim (language="comment", text=
        "3 - true if vertical position observations have been rejected")
      boolean reject_ver_pos;

      @verbatim (language="comment", text=
        "7 - true if the yaw observation has been rejected")
      boolean reject_yaw;

      @verbatim (language="comment", text=
        "8 - true if the airspeed observation has been rejected")
      boolean reject_airspeed;

      @verbatim (language="comment", text=
        "9 - true if the synthetic sideslip observation has been rejected")
      boolean reject_sideslip;

      @verbatim (language="comment", text=
        "10 - true if the height above ground observation has been rejected")
      boolean reject_hagl;

      @verbatim (language="comment", text=
        "11 - true if the X optical flow observation has been rejected")
      boolean reject_optflow_x;

      @verbatim (language="comment", text=
        "12 - true if the Y optical flow observation has been rejected")
      boolean reject_optflow_y;
    };
  };
};
