diff --git a/src/modules/mavlink/mavlink_receiver.cpp b/src/modules/mavlink/mavlink_receiver.cpp index f5ddacdaee..7a8d5f545b 100644 --- a/src/modules/mavlink/mavlink_receiver.cpp +++ b/src/modules/mavlink/mavlink_receiver.cpp @@ -2305,6 +2305,11 @@ MavlinkReceiver::handle_message_landing_target(mavlink_message_t *msg) _landing_target_pose_pub.publish(landing_target_pose); + } else if (landing_target.position_valid) { + // We only support MAV_FRAME_LOCAL_NED. In this case, the frame was unsupported. + mavlink_log_critical(&_mavlink_log_pub, "landing target: coordinate frame %d unsupported", + landing_target.frame); + } else { irlock_report_s irlock_report{}; diff --git a/src/modules/simulator/simulator_mavlink.cpp b/src/modules/simulator/simulator_mavlink.cpp index cb0e9d8402..b715040217 100644 --- a/src/modules/simulator/simulator_mavlink.cpp +++ b/src/modules/simulator/simulator_mavlink.cpp @@ -575,15 +575,20 @@ void Simulator::handle_message_landing_target(const mavlink_message_t *msg) mavlink_landing_target_t landing_target_mavlink; mavlink_msg_landing_target_decode(msg, &landing_target_mavlink); - irlock_report_s report{}; - report.timestamp = hrt_absolute_time(); - report.signature = landing_target_mavlink.target_num; - report.pos_x = landing_target_mavlink.angle_x; - report.pos_y = landing_target_mavlink.angle_y; - report.size_x = landing_target_mavlink.size_x; - report.size_y = landing_target_mavlink.size_y; + if (landing_target_mavlink.position_valid) { + PX4_WARN("Only landing targets relative to captured images are supported"); - _irlock_report_pub.publish(report); + } else { + irlock_report_s report{}; + report.timestamp = hrt_absolute_time(); + report.signature = landing_target_mavlink.target_num; + report.pos_x = landing_target_mavlink.angle_x; + report.pos_y = landing_target_mavlink.angle_y; + report.size_x = landing_target_mavlink.size_x; + report.size_y = landing_target_mavlink.size_y; + + _irlock_report_pub.publish(report); + } } void Simulator::handle_message_odometry(const mavlink_message_t *msg)