diff --git a/conf/airframes/tudelft/rot_wing_25kg.xml b/conf/airframes/tudelft/rot_wing_25kg.xml index c76944658e..398774817c 100644 --- a/conf/airframes/tudelft/rot_wing_25kg.xml +++ b/conf/airframes/tudelft/rot_wing_25kg.xml @@ -304,6 +304,8 @@ + +
@@ -326,8 +328,8 @@ - - + + @@ -571,12 +573,14 @@ Location, airspace and weather Check the RC battery Check wings secured (and taped) + Initialize and check wing rotation Check attitude and heading Calibrate airspeed sensor Put UAV on take-off location Check flight plan Switch to correct flight block Switch on camera + Arm parachute Announce flight to other airspace users diff --git a/conf/airframes/tudelft/rot_wing_v3b.xml b/conf/airframes/tudelft/rot_wing_v3b.xml index 324748eca3..be10dabece 100644 --- a/conf/airframes/tudelft/rot_wing_v3b.xml +++ b/conf/airframes/tudelft/rot_wing_v3b.xml @@ -467,7 +467,7 @@ - +
diff --git a/conf/airframes/tudelft/rot_wing_v3c_oneloop.xml b/conf/airframes/tudelft/rot_wing_v3c_oneloop.xml index 240e870ff4..f6e5f0a414 100644 --- a/conf/airframes/tudelft/rot_wing_v3c_oneloop.xml +++ b/conf/airframes/tudelft/rot_wing_v3c_oneloop.xml @@ -240,7 +240,7 @@ - + diff --git a/conf/airframes/tudelft/rot_wing_v3c_oneloop_optitrack_ext_pose.xml b/conf/airframes/tudelft/rot_wing_v3c_oneloop_optitrack_ext_pose.xml index e8d7e3ae19..859d9ea913 100644 --- a/conf/airframes/tudelft/rot_wing_v3c_oneloop_optitrack_ext_pose.xml +++ b/conf/airframes/tudelft/rot_wing_v3c_oneloop_optitrack_ext_pose.xml @@ -240,7 +240,7 @@ - + diff --git a/conf/airframes/tudelft/rot_wing_v3d.xml b/conf/airframes/tudelft/rot_wing_v3d.xml index 5b3f3efaa6..d88f0a6700 100644 --- a/conf/airframes/tudelft/rot_wing_v3d.xml +++ b/conf/airframes/tudelft/rot_wing_v3d.xml @@ -455,7 +455,7 @@ - + diff --git a/conf/airframes/tudelft/rot_wing_v3e.xml b/conf/airframes/tudelft/rot_wing_v3e.xml index ff728c35fd..9d582c4fa1 100644 --- a/conf/airframes/tudelft/rot_wing_v3e.xml +++ b/conf/airframes/tudelft/rot_wing_v3e.xml @@ -455,7 +455,7 @@ - + diff --git a/conf/airframes/tudelft/rot_wing_v3f.xml b/conf/airframes/tudelft/rot_wing_v3f.xml index bc9f439973..93799faa67 100644 --- a/conf/airframes/tudelft/rot_wing_v3f.xml +++ b/conf/airframes/tudelft/rot_wing_v3f.xml @@ -455,7 +455,7 @@ - + diff --git a/conf/airframes/tudelft/rot_wing_v3g.xml b/conf/airframes/tudelft/rot_wing_v3g.xml index 0c7867c0d3..7200db5d17 100644 --- a/conf/airframes/tudelft/rot_wing_v3g.xml +++ b/conf/airframes/tudelft/rot_wing_v3g.xml @@ -462,7 +462,7 @@ - + diff --git a/conf/airframes/tudelft/rot_wing_v3h.xml b/conf/airframes/tudelft/rot_wing_v3h.xml index 7577f2fdfc..26243b110f 100644 --- a/conf/airframes/tudelft/rot_wing_v3h.xml +++ b/conf/airframes/tudelft/rot_wing_v3h.xml @@ -462,7 +462,7 @@ - + diff --git a/conf/telemetry/highspeed_rotorcraft.xml b/conf/telemetry/highspeed_rotorcraft.xml index 7197499de3..a25ca6910c 100644 --- a/conf/telemetry/highspeed_rotorcraft.xml +++ b/conf/telemetry/highspeed_rotorcraft.xml @@ -49,7 +49,6 @@ - @@ -98,6 +97,7 @@ + @@ -251,11 +251,9 @@ - - - + diff --git a/sw/airborne/modules/imu/imu_heater.c b/sw/airborne/modules/imu/imu_heater.c index d220d4e0a6..7aaa22b5cb 100644 --- a/sw/airborne/modules/imu/imu_heater.c +++ b/sw/airborne/modules/imu/imu_heater.c @@ -81,7 +81,7 @@ static struct preflight_check_t imu_heater_pfc; /** Maximum error in percentile */ #ifndef IMU_HEATER_MAX_ERROR -#define IMU_HEATER_MAX_ERROR 0.15f +#define IMU_HEATER_MAX_ERROR 0.20f #endif /** ABI id from either guro or accel */ @@ -92,8 +92,8 @@ static struct preflight_check_t imu_heater_pfc; #endif static void imu_heater_preflight(struct preflight_result_t *result) { - if(imu_heater.meas_temp < ((1.0f-IMU_HEATER_MAX_ERROR)*imu_heater.target_temp) || imu_heater.meas_temp > ((1.0f+IMU_HEATER_MAX_ERROR)*imu_heater.target_temp)) { - preflight_error(result, "IMU %d temperature outside limits %.2f < %.2f < %.2f", IMU_HEATER_ABI_ID, ((1.0f-IMU_HEATER_MAX_ERROR)*imu_heater.target_temp), imu_heater.meas_temp, ((1.0f+IMU_HEATER_MAX_ERROR)*imu_heater.target_temp)); + if(imu_heater.meas_temp < ((1.0f-IMU_HEATER_MAX_ERROR)*imu_heater.target_temp) || imu_heater.meas_temp > ((1.0f+2*IMU_HEATER_MAX_ERROR)*imu_heater.target_temp)) { + preflight_error(result, "IMU %d temperature outside limits %.2f < %.2f < %.2f", IMU_HEATER_ABI_ID, ((1.0f-IMU_HEATER_MAX_ERROR)*imu_heater.target_temp), imu_heater.meas_temp, ((1.0f+2*IMU_HEATER_MAX_ERROR)*imu_heater.target_temp)); } else { preflight_success(result, "IMU %d temperature ok", IMU_HEATER_ABI_ID); } diff --git a/sw/airborne/modules/ins/ins_ekf2.cpp b/sw/airborne/modules/ins/ins_ekf2.cpp index 0dc31ee517..a2aecdc96e 100644 --- a/sw/airborne/modules/ins/ins_ekf2.cpp +++ b/sw/airborne/modules/ins/ins_ekf2.cpp @@ -929,11 +929,13 @@ static void gps_cb(uint8_t sender_id __attribute__((unused)), gps_msg.yaw_offset = 0; #elif defined(INS_EKF2_GPS_YAW_OFFSET) if(ISFINITE(gps_relposned.relPosHeading)) { - gps_msg.yaw = wrap_pi(RadOfDeg(gps_relposned.relPosHeading)); + gps_msg.yaw = wrap_pi(RadOfDeg(gps_relposned.relPosHeading - INS_EKF2_GPS_YAW_OFFSET)); } else { gps_msg.yaw = NAN; } - gps_msg.yaw_offset = INS_EKF2_GPS_YAW_OFFSET; + + // Offset also needs to be substracted from the heading (this is for roll/pitch angle limits) + gps_msg.yaw_offset = RadOfDeg(INS_EKF2_GPS_YAW_OFFSET); #else gps_msg.yaw = NAN; gps_msg.yaw_offset = NAN;