Question
MotionTL calibration fails
Hi,
I am currently trying to calibrate a LSM6DSL using the MotionTL calibration but it keeps failing. There must be something I am doing wrong, but I have not been able to find it while comparing my code to the mems examples.
MTL_acc_cal_t calibration_values;
MTL_cal_result_t calibration_result;
calibration_result = MotionTL_SetCalValues(&calibration_values);
float accel_values[3];
int orientation, sample, i;
for(orientation = 0; orientation < 6; orientation++){
// calibrate for 6 different orientations
// read new value to first to get good values
readIMUData(&dev_ctx, accel_values);
float samples[sample_size][3];
for(sample = 0; sample < sample_size; sample++){
// get data
readIMUData(&dev_ctx, accel_values);
HAL_Delay(3);
for(i = 0; i < 3; i++)
samples[sample][i] = accel_values[i];
}
// add to motiontl
switch(orientation){
case 0:
MotionTL_CalibratePosition(samples, sample_size, X_UP);
break;
case 1:
MotionTL_CalibratePosition(samples, sample_size, X_DOWN);
break;
case 2:
MotionTL_CalibratePosition(samples, sample_size, Y_UP);
break;
case 3:
MotionTL_CalibratePosition(samples, sample_size, Y_DOWN);
break;
case 4:
MotionTL_CalibratePosition(samples, sample_size, Z_UP);
break;
case 5:
MotionTL_CalibratePosition(samples, sample_size, Z_DOWN);
break;
}
}
calibration_result = MotionTL_GetCalValues(&calibration_values);Please let me know what I am doing wrong.
Cheers,
Kevin
