#define EPSILON 0.000000001
#define CAL_STEPS 4
-/* We'll have multiple calibration levels
-* so that we can provide an estimation as fast as possible
-*/
-static const float min_diffs[CAL_STEPS] = { 0.2, 0.4, 0.6, 1.0 };
-static const float max_sqr_errs[CAL_STEPS] = { 10.0, 8.0, 5.0, 3.5 };
-static const unsigned int lookback_counts[CAL_STEPS] = { 3, 4, 5, 6 };
-
+#define MAGNETIC_LOW 960 /* 31 micro tesla squared */
+#define MAGNETIC_HIGH 3600 /* 60 micro tesla squared */
#ifdef DBG_RAW_DATA
#define RAW_DATA_FULL_PATH "/data/raw_compass_data_full_%d.txt"
};
struct gyro_cal {
- float bias[3];
- int start;
+ float bias_x, bias_y, bias_z;
int count;
- float sample[GYRO_DS_SIZE][3];
+ float min_x, min_y, min_z;
+ float max_x, max_y, max_z;
};
typedef double mat_input_t[DS_SIZE][3];