OpenShoe
1.0
|
00001 00020 #ifndef NAV_EQ_H_ 00021 #define NAV_EQ_H_ 00022 00023 00024 #include "nav_types.h" 00025 #include <math.h> 00026 #include <stdint.h> 00027 #include "compiler.h" 00028 00029 00030 //************* Definitions *************// 00031 00032 00034 #define MAX_ORIENTATIONS 12 00035 00037 #define MIN_ORIENTATIONS 3 00038 00040 #define MATRIX_INVERSION_ERROR 1 00041 00043 #define ACC_STATIONARITY_ERROR 2 00044 00046 #define ACC_CALIBRATION_ILLCONDITIONED 3 00047 00049 #define NUMBER_OF_ORIENTATIONS_TO_LARGE 4 00050 00052 #define NUMBER_OF_ORIENTATIONS_TO_SMALL 5 00053 00055 #define absf(a)(a>0 ? a:-a) 00056 00057 00058 //************* Function declarations **************// 00059 00060 00061 00094 void calibrate_accelerometers(void); 00095 00103 void estimate_accelerometer_biases(void); 00104 00119 void correct_navigation_states(void); 00120 00121 00122 00134 void gain_matrix(void); 00135 00136 00137 00166 void initialize_navigation_algorithm(void); 00167 00168 00169 00170 00179 void measurement_update(void); 00180 00181 00182 00204 void strapdown_mechanisation_equations(void); 00205 00206 00207 00220 void time_up_data(void); 00221 00222 00223 00239 void update_imu_data_buffers(void); 00240 00241 00260 void ZUPT_detector(void); 00261 00262 00263 00276 void zupt_update(void); 00277 00278 00279 #endif /* NAV_EQ_H_ */ 00280