Integrate asynchronous GPS IMU fusion

This commit is contained in:
2026-07-16 23:49:43 +03:00
parent 38a96dd88f
commit 7cc3eb2a54
80 changed files with 3901 additions and 553 deletions
+1 -1
View File
@@ -8,7 +8,7 @@ TARGET := test_imu_calibration
all: $(TARGET)
$(TARGET): test_imu_calibration.c $(ROOT)/src/imu_calibration.c
$(TARGET): test_imu_calibration.c $(ROOT)/src/imu/imu_calibration.c
$(CC) $(CFLAGS) -I$(ROOT)/header $^ -lm -o $@
run: $(TARGET)
@@ -1,4 +1,4 @@
#include "imu_calibration.h"
#include "imu/imu_calibration.h"
#include <assert.h>
#include <math.h>
@@ -14,12 +14,12 @@ static void test_identity_is_noop(void)
{
imu_calibration_t calibration;
imu_calibration_default(&calibration);
fusion_imu_measurement_t measurement = {
imu_sample_t measurement = {
.accel_mps2 = {1.0, -2.0, 9.7},
.gyro_rps = {0.01, -0.02, 0.03},
.temperature_c = 41.0
};
fusion_imu_measurement_t expected = measurement;
imu_sample_t expected = measurement;
assert(imu_calibration_apply(&calibration, &measurement));
assert(memcmp(measurement.accel_mps2, expected.accel_mps2,
sizeof(measurement.accel_mps2)) == 0);
@@ -46,7 +46,7 @@ static void test_bias_transform_and_temperature(void)
calibration.reference_temperature_c = 25.0;
calibration.temperature_compensation_enabled = true;
fusion_imu_measurement_t measurement = {
imu_sample_t measurement = {
.accel_mps2 = {3.0, 5.0, 7.0},
.gyro_rps = {0.4, 0.5, 0.6},
.temperature_c = 35.0