I am getting X, Y, Z values from magnetometer in uT units.
Below is the pseudocode that I am using, can you please check that the usage is correct?
TRICAL_instance_t global_instance;
int main(void) {
TRICAL_init(&global_instance);
TRICAL_norm_set(&global_instance, 50.0);
TRICAL_noise_set(&global_instance, 1.5);
float bias_estimate[3];
float scale_estimate[9];
float sensor_reading[3];
float expected_field[3];
// for holding data received from magnetometer, in uT.
float mag_x, mag_y, mag_z;
while(true) {
// get the latest sensor reading
read_magnetometer(mag_x, mag_y, mag_z);
sensor_reading[0] = mag_x;
sensor_reading[1] = mag_y;
sensor_reading[2] = mag_z;
// What should be passed to expected field?
TRICAL_estimate_update(&global_instance, sensor_reading, expected_field);
TRICAL_estimate_get(&global_instance, bias_estimate, scale_estimate);
printf("[%f %f %f]\n", bias_estimate[0], bias_estimate[1], bias_estimate[2]);
}
return 0;
}