diff --git a/conf/airframes/TU_Delft/MicrojetCDW.xml b/conf/airframes/TU_Delft/MicrojetCDW.xml index 34d651058f..baba44fc6f 100644 --- a/conf/airframes/TU_Delft/MicrojetCDW.xml +++ b/conf/airframes/TU_Delft/MicrojetCDW.xml @@ -5,7 +5,7 @@ - + @@ -28,7 +28,7 @@ - + @@ -42,7 +42,7 @@
- + @@ -81,9 +81,9 @@ - - - + + + @@ -92,7 +92,7 @@ - + @@ -161,7 +161,7 @@ - +
diff --git a/sw/airborne/modules/ins/ins_ppzuavimu.c b/sw/airborne/modules/ins/ins_ppzuavimu.c index 2f7394ab89..4f5d5ae9ea 100644 --- a/sw/airborne/modules/ins/ins_ppzuavimu.c +++ b/sw/airborne/modules/ins/ins_ppzuavimu.c @@ -195,9 +195,9 @@ void ppzuavimu_module_event( void ) z = (int16_t) ((ppzuavimu_adxl345.buf[5] << 8) | ppzuavimu_adxl345.buf[4]); #ifdef ASPIRIN_IMU - VECT3_ASSIGN(imu.accel_unscaled, -x, y, z); + VECT3_ASSIGN(imu.accel_unscaled, x, -y, -z); #else // PPZIMU - VECT3_ASSIGN(imu.accel_unscaled, x, -y, z); + VECT3_ASSIGN(imu.accel_unscaled, -x, y, -z); #endif acc_valid = TRUE; diff --git a/sw/airborne/subsystems/ahrs/ahrs_float_dcm.c b/sw/airborne/subsystems/ahrs/ahrs_float_dcm.c index 62a5e78f5b..788acb1e8f 100644 --- a/sw/airborne/subsystems/ahrs/ahrs_float_dcm.c +++ b/sw/airborne/subsystems/ahrs/ahrs_float_dcm.c @@ -213,6 +213,13 @@ void ahrs_update_accel(void) ACCELS_FLOAT_OF_BFP(accel_float, imu.accel); + // DCM filter uses g-force as positive + // accelerometer measures [0 0 -g] in a static case + + accel_float.x = -accel_float.x; + accel_float.y = -accel_float.y; + accel_float.z = -accel_float.z; + #ifdef USE_GPS if (gps.fix == GPS_FIX_3D) { //Remove centrifugal acceleration. accel_float.y += gps.speed_3d/100. * Omega[2]; // Centrifugal force on Acc_y = GPS_speed*GyroZ