diff --git a/src/MissionManager/MissionManager.cc b/src/MissionManager/MissionManager.cc index a8b68814ef7720b7fbfaf7456a72c4ee52240607..636396c913e2e589085625fa412421d139419f3f 100644 --- a/src/MissionManager/MissionManager.cc +++ b/src/MissionManager/MissionManager.cc @@ -184,8 +184,13 @@ bool MissionManager::_stopAckTimeout(AckType_t expectedAck) _ackTimeoutTimer->stop(); if (savedRetryAck != expectedAck) { - _sendError(ProtocolOrderError, QString("Vehicle responded incorrectly to mission item protocol sequence: %1:%2").arg(_ackTypeToString(savedRetryAck)).arg(_ackTypeToString(expectedAck))); - _finishTransaction(false); + if (savedRetryAck == AckNone) { + // Don't annoy the user with warnings about unexpected mission commands, just ignore them; ArduPilot updates home position using + // spurious MISSION_ITEMs. + } else { + _sendError(ProtocolOrderError, QString("Vehicle responded incorrectly to mission item protocol sequence: %1:%2").arg(_ackTypeToString(savedRetryAck)).arg(_ackTypeToString(expectedAck))); + _finishTransaction(false); + } success = false; } else { success = true;