#ifndef NAVIGATION_FUSION_H #define NAVIGATION_FUSION_H #include #include #include "fusion_engine.h" #include "fusion_measurement.h" #include "fusion_motion.h" typedef struct { uint64_t timestamp_ticks; double position_enu_m[3]; double velocity_enu_mps[3]; double latitude_deg; double longitude_deg; double height_m; double position_std_m[3]; double speed_mps; double last_position_nis; fusion_motion_state_t motion_state; uint64_t gps_accepted; uint64_t gps_nis_rejected; bool valid; } navigation_fusion_output_t; bool navigation_fusion_init(uint64_t local_timebase_hz); bool navigation_fusion_publish_gps(const fusion_gps_measurement_t* measurement); unsigned int navigation_fusion_service(void); bool navigation_fusion_get_output(navigation_fusion_output_t* output); const fusion_engine_t* navigation_fusion_engine(void); #endif