diff --git a/README.md b/README.md index 42c9238..8f5e001 100644 --- a/README.md +++ b/README.md @@ -10,14 +10,16 @@ - fc_test:获取飞控信息的测试脚本; - infer_camera_direct.py:通过摄像头检测目标并调用方法控制无人机; - infer.py:使用图片检测目标,仅用于测试环境; -- infer_camera_modular.py:模块化处理过的摄像头检测与控制(未测试) +- infer_camera_modular.py:模块化处理过的摄像头检测与控制(以确认链路基本通顺,但是无人机追踪效果如何尚未测试) - infer_camera_video.py:使用视频检测目标并调用方法控制无人机(用于测试,未调参) - gent_mission.py:尝试将视觉追踪与自动巡点飞行相结合(未测试,这应该是本项目一阶段的最终预期) - run_mission.py:自动巡点飞行的业务测试(未测试) #### drone_controller:控制模块 -- base_control.py:定义了部分基本动作的方法 +- base_control.py:定义了部分基本动作的方法(最新规划已改用路由,已弃置) - pid_counter.py:抽离出来的PID计算器 -- mission_manager.py:自动巡点飞行的控制模块 +- mission_manager.py:自动巡点飞行的控制模块(最新规划已改用路由,已弃置) +- router_proxy.py:基于新路由的路由规则编写的相关代码 +- target_tracker.py:通过math库和numpy编写的简单目标跟踪 #### 其他目录以及文件: - om:推理使用的.om文件 - asset:用于基础测试的文件 diff --git a/config.json b/config.json index 7ad40bb..94db9d0 100644 --- a/config.json +++ b/config.json @@ -13,6 +13,15 @@ "udp_port": 9999 }, "flight_control": { + "req_endpoint": "tcp://127.0.0.1:5555", + "sub_endpoint": "tcp://127.0.0.1:5556", + "takeoff_alt": 5.0, + "control_hz": 20, + "target_tracker": { + "max_lost_frames": 8, + "max_asscociation_dist": 200.0, + "min_hits": 3 + }, "connection_string": "/dev/ttyAMA1", "baud_rate": 57600 }, diff --git a/infer_camera_modular.py b/infer_camera_modular.py index 1828c5a..d59459f 100644 --- a/infer_camera_modular.py +++ b/infer_camera_modular.py @@ -9,7 +9,7 @@ import json import sys # ================== 昇腾 NPU SDK(保护性导入) ===================== -# 说明:本机可能无昇腾环境,try-except 确保 import 错误仅告警不崩溃。 +# 开发机可能无昇腾环境,try-except 确保 import 错误仅告警不崩溃。 # 部署到香橙派 AI Pro 时只需安装 ais_bench 即可无缝运行。 try: from ais_bench.infer.interface import InferSession @@ -290,7 +290,7 @@ class UAVControlLoop: # ------------------------------------------------ # 控制参数(按协议改为 20Hz,§4.1 要求 ≥20Hz) - self.control_hz = 20.0 + self.control_hz = fc_cfg.get("control_hz", 20.0) self.control_interval = 1.0 / self.control_hz # 线程控制 @@ -355,7 +355,7 @@ class UAVControlLoop: return False # ---- ④ 起飞到目标高度(如高度不足) ---- - takeoff_alt = self.fc_cfg.get("takeoff_alt", 15.0) + takeoff_alt = self.fc_cfg.get("takeoff_alt", 5.0) if alt_rel < takeoff_alt * 0.9: print(f"🛫 高度 {alt_rel:.1f}m < 目标 {takeoff_alt:.1f}m,执行起飞...")