From 04cd6856f6838646acc574b9087b8fb696bf5232 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=80=E5=96=B5?= Date: Tue, 30 Jun 2026 16:33:43 +0800 Subject: [PATCH] =?UTF-8?q?2026.6.30=E5=B0=8F=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- drone_controller/mission_manager.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drone_controller/mission_manager.py b/drone_controller/mission_manager.py index 62cb972..55376f2 100644 --- a/drone_controller/mission_manager.py +++ b/drone_controller/mission_manager.py @@ -332,10 +332,15 @@ class MissionManager: armed = drone.get("armed", False) mode = drone.get("mode", "") alt_rel = drone.get("alt_rel", 0.0) + home = state.get("home", {}) logger.info("[INIT] mode=%s armed=%s alt_rel=%.1fm", mode, armed, alt_rel) + if not home.get("valid", False): + logger.warning("[ARMING] home.valid=false,等待起飞点有效...") + return + # A) 已在 OFFBOARD + 已解锁 → 直接巡航 if armed and mode == "OFFBOARD": logger.info("[INIT] 已在 OFFBOARD,直接进入航点巡航") @@ -372,6 +377,7 @@ class MissionManager: """ try: armed = state["drone"].get("armed", False) + home = state.get("home", {}) if not armed: elapsed = time.time() - self._state_start_time @@ -383,6 +389,10 @@ class MissionManager: logger.info("[ARMING] 等待解锁... (%.1fs)", elapsed) return + if not home.get("valid", False): + logger.warning("[ARMING] home.valid=false,等待起飞点有效...") + return + # ---- 解锁成功 → 起飞 ---- takeoff_alt = -self.target_altitude # 正值(协议 altitude 为正) logger.info("\n[解锁成功] 发送起飞指令 (alt=%.1fm)", takeoff_alt)