diff --git a/conf/airframes/TUDelft/IMAV2013/chouchou_lisa_s.xml b/conf/airframes/TUDelft/IMAV2013/chouchou_lisa_s.xml index 4ce0305ecf..34be1e87a5 100644 --- a/conf/airframes/TUDelft/IMAV2013/chouchou_lisa_s.xml +++ b/conf/airframes/TUDelft/IMAV2013/chouchou_lisa_s.xml @@ -183,6 +183,7 @@ + diff --git a/conf/airframes/TUDelft/IMAV2013/quadrotor_lisa_s.xml b/conf/airframes/TUDelft/IMAV2013/quadrotor_lisa_s.xml index 6e5b38afe9..e8b8e0f9a3 100644 --- a/conf/airframes/TUDelft/IMAV2013/quadrotor_lisa_s.xml +++ b/conf/airframes/TUDelft/IMAV2013/quadrotor_lisa_s.xml @@ -185,6 +185,7 @@ + diff --git a/conf/airframes/TUDelft/IMAV2013/walkera_genius_v1.xml b/conf/airframes/TUDelft/IMAV2013/walkera_genius_v1.xml index d06a6cbdee..a2798f84d4 100644 --- a/conf/airframes/TUDelft/IMAV2013/walkera_genius_v1.xml +++ b/conf/airframes/TUDelft/IMAV2013/walkera_genius_v1.xml @@ -166,6 +166,7 @@ + diff --git a/conf/airframes/ardrone2_raw.xml b/conf/airframes/ardrone2_raw.xml index 5d91ec3e6d..b71dd43411 100644 --- a/conf/airframes/ardrone2_raw.xml +++ b/conf/airframes/ardrone2_raw.xml @@ -31,6 +31,7 @@ + diff --git a/conf/airframes/examples/quadrotor_lisa_s.xml b/conf/airframes/examples/quadrotor_lisa_s.xml index 0ba0db9545..987bd3bbc8 100644 --- a/conf/airframes/examples/quadrotor_lisa_s.xml +++ b/conf/airframes/examples/quadrotor_lisa_s.xml @@ -186,6 +186,7 @@ + diff --git a/conf/modules/send_imu_mag_current.xml b/conf/modules/send_imu_mag_current.xml new file mode 100644 index 0000000000..24c45fee89 --- /dev/null +++ b/conf/modules/send_imu_mag_current.xml @@ -0,0 +1,17 @@ + + + + + + Enables sending of IMU_MAG_CURRENT_CALIBRATION message. + For calibration of changing magnetometer offset due to estimated or measured current. + + +
+ +
+ + + + +
diff --git a/conf/telemetry/default_rotorcraft.xml b/conf/telemetry/default_rotorcraft.xml index 1987a72b9a..0d6b1979df 100644 --- a/conf/telemetry/default_rotorcraft.xml +++ b/conf/telemetry/default_rotorcraft.xml @@ -133,13 +133,6 @@ - - - - - - - diff --git a/sw/airborne/modules/calibration/send_imu_mag_current.c b/sw/airborne/modules/calibration/send_imu_mag_current.c new file mode 100644 index 0000000000..9e36d0c505 --- /dev/null +++ b/sw/airborne/modules/calibration/send_imu_mag_current.c @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2013 Felix Ruess + * + * This file is part of paparazzi. + * + * paparazzi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * paparazzi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with paparazzi; see the file COPYING. If not, write to + * the Free Software Foundation, 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * @file modules/calibration/send_imu_mag_current.c + * Enables sending of IMU_MAG_CURRENT_CALIBRATION message. + */ + +#include "subsystems/imu.h" +#include "subsystems/electrical.h" + +#include "messages.h" +#include "mcu_periph/uart.h" +#include "subsystems/datalink/downlink.h" + +void send_imu_mag_current(void) { + DOWNLINK_SEND_IMU_MAG_CURRENT_CALIBRATION(DefaultChannel, DefaultDevice, + &imu.mag_unscaled.x, + &imu.mag_unscaled.y, + &imu.mag_unscaled.z, + &electrical.current); +} + diff --git a/sw/airborne/modules/calibration/send_imu_mag_current.h b/sw/airborne/modules/calibration/send_imu_mag_current.h new file mode 100644 index 0000000000..d6fca90029 --- /dev/null +++ b/sw/airborne/modules/calibration/send_imu_mag_current.h @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2013 Felix Ruess + * + * This file is part of paparazzi. + * + * paparazzi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * paparazzi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with paparazzi; see the file COPYING. If not, write to + * the Free Software Foundation, 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * @file modules/calibration/send_imu_mag_current_calib.h + * Enables sending of IMU_MAG_CURRENT_CALIBRATION message. + */ + +#ifndef SEND_IMU_MAG_CURRENT_H +#define SEND_IMU_MAG_CURRENT_H + +extern void send_imu_mag_current(void); + +#endif diff --git a/sw/airborne/subsystems/imu.c b/sw/airborne/subsystems/imu.c index b145b00f09..4f0044d21c 100644 --- a/sw/airborne/subsystems/imu.c +++ b/sw/airborne/subsystems/imu.c @@ -93,17 +93,6 @@ static void send_mag(void) { DOWNLINK_SEND_IMU_MAG(DefaultChannel, DefaultDevice, &mag_float.x, &mag_float.y, &mag_float.z); } - -// TODO this could be a special module ? -#if !defined(AP) || (defined(AP) && defined(FBW)) -#include "subsystems/electrical.h" -static void send_mag_calib(void) { - DOWNLINK_SEND_IMU_MAG_CURRENT_CALIBRATION(DefaultChannel, DefaultDevice, - &imu.mag_unscaled.x, &imu.mag_unscaled.y, &imu.mag_unscaled.z, - &electrical.current); -} -#endif - #endif // !USE_IMU_FLOAT #endif @@ -153,9 +142,6 @@ INFO("Magnetometer neutrals are set to zero, you should calibrate!") register_periodic_telemetry(DefaultPeriodic, "IMU_MAG_RAW", send_mag_raw); register_periodic_telemetry(DefaultPeriodic, "IMU_MAG_SCALED", send_mag_scaled); register_periodic_telemetry(DefaultPeriodic, "IMU_MAG", send_mag); -#if !defined(AP) || (defined(AP) && defined(FBW)) - register_periodic_telemetry(DefaultPeriodic, "IMU_MAG_CURRENT_CALIBRATION", send_mag_calib); -#endif #endif // !USE_IMU_FLOAT #endif // DOWNLINK