# Drone_Autopilot **Repository Path**: abonaventure/drone_autopilot ## Basic Information - **Project Name**: Drone_Autopilot - **Description**: 本工程为农林植保+吊装作业核心适配的工业级无人机飞控与作业管理系统,基于C++端侧轻量化开发(无第三方依赖),配套Python调试/仿真脚本,支持平滑拓展至巡检、测绘等全工业无人机场景及航拍摄影类消费无人机场景。系统集成多传感器融合飞控、作业场景专属控制、全链路安全防护、AI轻量化融合能力,支持ARM64/x86端侧部署,兼顾工业作业的高精度、高稳定性、高安全性与场景拓展的低耦合、高复用,核心指标 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2026-02-26 - **Last Updated**: 2026-05-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README • README.md(系统全景手册) markdown # Drone_Autopilot_Full_System 无人机飞控系统 ## 工程简介 工业级+消费级一体化飞控系统,基于C++开发无第三方依赖,支持多机型、多作业场景差异化部署,具备工业级鲁棒性、安全冗余及量产适配能力。 ## 核心特性 1. 多机型适配:consumer/industrial_entry/industrial_advance/industrial_high-end 2. 多作业场景:核心(植保/吊装)、拓展(巡检/测绘)、消费级(航拍/娱乐) 3. 工业级安全:紧急避障、冗余安全、物理兜底、安全审计 4. 轻量化部署:适配ARM64/x86_64,仅调试模块依赖基础Python库 5. 工程化适配:差异化编译、一键部署、版本回滚,配套完整工具链 ## 环境要求 - 操作系统:Linux(Ubuntu 18.04+/Debian 10+) - 架构:ARM64、x86_64 - C++标准:C++17 - CMake:≥3.16 - Python(仅调试):≥3.8 ## 快速上手 ### 1. 环境初始化 ```bash sudo ./env_setup.sh --device-level industrial_advance 2. 系统编译 bash 运行 cd script/build ./build.sh --device-level industrial_advance --core-task plant_protection 3. 系统启动 bash 运行 # 后台生产(植保) ./run_system.sh industrial_advance plant_protection prod # 前台调试(吊装) ./run_system.sh industrial_advance hoisting debug 工程结构 简单版 Drone_Autopilot_Full_System/ ├── 根目录文件(配置/脚本/说明) ├── config/(全维度配置管理) ├── src/(核心源码,C++生产级) ├── script/(工程化工具链) ├── test/(全场景测试套件) └── doc/(工程文档) 完整版 Drone_Autopilot_Full_System/ ├── README.md # 系统全景手册(部署/运维/拓展/安全) ├── LICENSE # Apache 2.0许可证(版权/二次开发授权) ├── requirements.txt # Python依赖(调试/仿真/日志,标注最低版本) ├── env_setup.sh # 环境初始化(编译器/依赖/权限,支持多Linux发行版) ├── run_system.sh # 系统启动(机型/作业/模式三参数,支持prod/debug/ai) ├── CMakeLists.txt # 根代码仓编译配置(差异化编译,模块开关,输出代码仓) ├── .version # 工程版本(语义化版本,适配架构/兼容版本/编译依赖) ├── .gitignore # Git忽略规则(编译产物/日志/临时文件/加密配置) ├── config/ # 全维度配置(版本化/场景化/默认兜底) │ ├── template/ # 配置模板(按场景提取通用参数,减少重复) │ │ ├── plant_protection_template.yaml # 植保场景通用模板 │ │ ├── hoisting_template.yaml # 吊装场景通用模板 │ │ ├── power_inspection_template.yaml # 巡检场景通用模板 │ │ └── consumer_template.yaml # 消费级场景通用模板 │ ├── validator/ # 配置校验(启动/部署前自动校验) │ │ ├── config_validate.py # 校验核心脚本(关联JSON Schema) │ │ └── schema/ │ │ ├── safety_schema.json # 安全配置校验规则 │ │ ├── hardware_schema.json # 硬件配置校验规则 │ │ ├── scene_schema.json # 场景配置校验规则 │ │ ├── global_schema.json # 全局配置校验规则 │ │ └── loader_schema.json # 加载规则校验(优先级/路径映射参数) │ ├── global/ # 全局通用配置(全场景复用) │ │ ├── default/ # 默认兜底配置 │ │ │ ├── safety_default.yaml # 安全通用阈值(避障/冗余/物理兜底) │ │ │ ├── log_default.yaml # 日志通用配置(级别/路径/滚动规则) │ │ │ ├── hardware_default.yaml # 硬件通用参数(传感器/执行器/电源) │ │ │ └── common_default.yaml # 通用基础配置(版本/模式/优先级) │ │ └── version/ # 版本化配置(支持回滚) │ │ ├── v2.0.0/ │ │ │ ├── core_industrial.yaml # v2.0.0核心工业场景配置 │ │ │ ├── ext_industrial.yaml # v2.0.0拓展工业场景配置 │ │ │ └── consumer.yaml # v2.0.0消费级场景配置 │ │ └── v2.1.0/ │ │ ├── core_industrial.yaml # v2.1.0核心工业场景配置(兼容v2.0.0) │ │ ├── ext_industrial.yaml # v2.1.0拓展工业场景配置(兼容v2.0.0) │ │ └── consumer.yaml # v2.1.0消费级场景配置(兼容v2.0.0) │ ├── core_industrial/ # 核心工业作业配置(植保+吊装) │ │ ├── plant_protection/ # 农林植保配置 │ │ │ ├── entry/ # 入门级(基础喷药/定高) │ │ │ │ └── plant_protection_entry.yaml │ │ │ ├── advance/ # 进阶级(精准喷药/断点续喷) │ │ │ │ └── plant_protection_advance.yaml │ │ │ └── version/ # 机型版本适配 │ │ │ ├── m200_v1.yaml # m200 v1植保配置(关联v2.1.0) │ │ │ ├── m400_v2.yaml # m400 v2植保配置(关联v2.1.0) │ │ │ └── m400_v1.yaml # m400 v1植保配置(兼容v2.0.0) │ │ └── hoisting/ # 吊装作业配置 │ │ ├── light/ # 轻型(≤50kg) │ │ │ └── hoisting_light.yaml │ │ ├── heavy/ # 重型(50-200kg) │ │ │ └── hoisting_heavy.yaml │ │ ├── ultra_heavy/ # 超重型(>200kg) │ │ │ └── hoisting_ultra_heavy.yaml │ │ └── version/ # 机型版本适配 │ │ ├── m600_v1.yaml # m600 v1吊装配置(关联v2.1.0) │ │ ├── x800_v2.yaml # x800 v2吊装配置(关联v2.1.0) │ │ └── x800_v1.yaml # x800 v1吊装配置(兼容v2.0.0) │ ├── ext_industrial/ # 拓展工业作业配置(巡检/测绘) │ │ ├── power_inspection/ # 电力巡检(基础/进阶/高端) │ │ │ ├── power_inspection_base.yaml │ │ │ ├── power_inspection_advance.yaml │ │ │ └── power_inspection_ultra.yaml │ │ └── survey_mapping/ # 地形测绘(基础/进阶/高端) │ │ ├── survey_mapping_base.yaml │ │ ├── survey_mapping_advance.yaml │ │ └── survey_mapping_ultra.yaml │ ├── consumer/ # 消费级作业配置(航拍/娱乐) │ │ ├── aerial_photography/ # 航拍摄影(基础/进阶/专业) │ │ │ ├── aerial_photography_base.yaml │ │ │ ├── aerial_photography_advance.yaml │ │ │ └── aerial_photography_pro.yaml │ │ └── entertainment/ # 娱乐场景(特技/互动/简易) │ │ ├── entertainment_stunt.yaml │ │ ├── entertainment_interactive.yaml │ │ └── entertainment_simple.yaml │ └── config_loader.yaml # 配置加载规则(优先级/路径映射/缓存) ├── src/ # 核心源码(C++无第三方依赖,工业级鲁棒性) │ ├── CMakeLists.txt # 源码编译配置(模块依赖/编译选项) │ ├── main/ # 系统统一入口(模块初始化/启动/停止) │ │ ├── src/drone_main.cpp # 启动核心实现 │ │ └── include/drone_main.h # 启动接口声明 │ ├── interface/ # 标准化接入接口(拓展规范) │ │ ├── task_interface.h # 作业任务接口(所有作业需实现) │ │ ├── hardware_interface.h # 硬件适配接口(所有硬件需实现) │ │ ├── ai_interface.h # AI能力接口(所有AI模型需实现) │ │ └── safety_interface.h # 安全防护接口(所有安全机制需实现) │ ├── common/ # 通用基础模块(全系统复用) │ │ ├── exception/ # 统一异常处理(故障定位) │ │ │ ├── src/exception_core.cpp # 异常核心实现 │ │ │ └── include/ │ │ │ ├── HardwareException.h # 硬件异常类 │ │ │ ├── AIException.h # AI异常类 │ │ │ └── SafetyException.h # 安全异常类 │ │ ├── init/ # 初始化校验(模块启动前校验) │ │ │ ├── src/init_core.cpp # 校验核心实现 │ │ │ └── include/init_core.h # 校验接口声明 │ │ ├── utils/ # 通用工具函数 │ │ │ ├── src/ │ │ │ │ ├── coordinate_transform.cpp # 坐标转换(经纬度/大地/机体坐标) │ │ │ │ ├── time_sync.cpp # 时间同步(传感器/系统时间) │ │ │ │ └── data_valid.cpp # 数据有效性校验(传感器/配置/指令) │ │ │ └── include/ # 工具函数头文件 │ │ ├── data_type/ # 通用数据结构(全系统复用) │ │ │ ├── src/data_type.cpp # 数据结构实现 │ │ │ └── include/data_type.h # 数据结构定义 │ │ └── log/ # 通用日志模块 │ │ ├── src/log_core.cpp # 日志核心实现(控制台/文件输出) │ │ └── include/log_core.h # 日志接口声明 │ ├── hardware/ # 硬件适配层(屏蔽机型差异) │ │ ├── driver/ # 硬件驱动(按机型拆分) │ │ │ ├── m200/ # m200机型驱动 │ │ │ ├── m400/ # m400机型驱动 │ │ │ ├── m600/ # m600机型驱动 │ │ │ ├── x800/ # x800机型驱动 │ │ │ └── base/ # 基础驱动模板 │ │ ├── monitor/ # 硬件监控(故障预判) │ │ │ ├── data/ # 监控数据存储 │ │ │ ├── src/ │ │ │ │ ├── hardware_monitor_core.cpp # 监控核心(CPU/内存/电池/传感器) │ │ │ │ ├── plant_protection_monitor.cpp # 植保专属监控(药箱/喷泵) │ │ │ │ ├── hoisting_monitor.cpp # 吊装专属监控(卷扬机/吊绳) │ │ │ │ └── fault_diagnose.cpp # 故障诊断(根因定位) │ │ │ └── include/ # 监控接口声明 │ │ └── adapter/ # 硬件适配(统一读写接口) │ │ ├── src/hardware_adapter.cpp # 适配核心实现 │ │ └── include/hardware_adapter.h # 适配接口声明 │ ├── ai/ # AI融合层(与业务解耦) │ │ ├── model_mgr/ # AI模型管理(懒加载/内存共享) │ │ │ ├── src/model_mgr_core.cpp # 管理核心实现 │ │ │ └── include/model_mgr_core.h # 管理接口声明 │ │ ├── infer_pool/ # 推理线程池(高并发) │ │ │ ├── src/infer_pool_core.cpp # 线程池实现 │ │ │ └── include/infer_pool_core.h # 线程池接口声明 │ │ ├── model/ # AI模型(按场景拆分) │ │ │ ├── plant_protection/ # 植保模型(杂草识别/作物密度) │ │ │ ├── hoisting/ # 吊装模型(障碍物/载荷姿态) │ │ │ ├── ext_industrial/ # 拓展场景模型 │ │ │ └── common/ # 通用模型模板 │ │ ├── infer/ # AI推理(场景差异化) │ │ │ ├── src/ │ │ │ │ ├── infer_core.cpp # 推理核心实现 │ │ │ │ ├── plant_protection_infer.cpp # 植保场景推理 │ │ │ │ └── hoisting_infer.cpp # 吊装场景推理 │ │ │ └── include/ # 推理接口声明 │ │ ├── fallback/ # AI失效兜底(与安全层联动) │ │ │ ├── config/ # 兜底策略配置(按场景) │ │ │ │ ├── plant_protection_fallback.yaml │ │ │ │ └── hoisting_fallback.yaml │ │ │ ├── src/ai_fallback.cpp # 兜底核心实现 │ │ │ └── include/ai_fallback.h # 兜底接口声明 │ │ └── bridge/ # AI-业务桥接(解耦核心逻辑) │ │ ├── src/ │ │ │ ├── ai_task_bridge.cpp # AI结果→作业指令 │ │ │ └── ai_safety_bridge.cpp # AI风险→安全指令 │ │ └── include/ # 桥接接口声明 │ ├── task/ # 作业任务层(标准化实现) │ │ ├── core/ # 核心工业作业(植保+吊装) │ │ │ ├── plant_protection/ │ │ │ │ ├── demo/ # 植保基础示例 │ │ │ │ ├── src/ # 植保作业实现 │ │ │ │ └── include/ # 植保作业接口 │ │ │ └── hoisting/ │ │ │ ├── demo/ # 吊装基础示例 │ │ │ ├── src/ # 吊装作业实现 │ │ │ └── include/ # 吊装作业接口 │ │ ├── ext/ # 拓展工业作业(巡检/测绘) │ │ │ ├── template/ # 拓展场景模板(复用基础逻辑) │ │ │ │ ├── ext_task_template.h │ │ │ │ └── ext_task_template.cpp │ │ │ ├── power_inspection/ │ │ │ │ ├── demo/ # 巡检基础示例 │ │ │ │ ├── src/ # 巡检作业实现 │ │ │ │ └── include/ # 巡检作业接口 │ │ │ └── survey_mapping/ │ │ │ ├── demo/ # 测绘基础示例 │ │ │ ├── src/ # 测绘作业实现 │ │ │ └── include/ # 测绘作业接口 │ │ ├── consumer/ # 消费级作业(航拍/娱乐) │ │ │ ├── aerial_photography/ │ │ │ │ ├── demo/ # 航拍基础示例 │ │ │ │ ├── src/ # 航拍作业实现 │ │ │ │ └── include/ # 航拍作业接口 │ │ │ └── entertainment/ │ │ │ ├── demo/ # 娱乐基础示例 │ │ │ ├── src/ # 娱乐作业实现 │ │ │ └── include/ # 娱乐作业接口 │ │ └── common/ # 作业通用逻辑(路径/状态管理) │ │ ├── src/ │ │ │ ├── route_interpolate.cpp # 路径插值通用实现 │ │ │ └── task_status.cpp # 作业状态管理通用实现 │ │ └── include/ # 通用逻辑接口 │ ├── safety/ # 安全兜底层(工业级高冗余) │ │ ├── emergency_avoidance/ # 紧急避障 │ │ │ ├── src/emergency_avoidance_core.cpp # 避障核心实现 │ │ │ └── include/ # 避障接口声明 │ │ ├── redundant/ # 冗余安全(通用核心) │ │ │ ├── src/ │ │ │ │ ├── redundant_core.cpp # 冗余核心实现 │ │ │ │ └── fallback_control.cpp # 冗余失效兜底 │ │ │ └── include/ # 冗余接口声明 │ │ ├── physical_fallback/ # 物理层兜底(最终保障) │ │ │ ├── src/physical_fallback_core.cpp # 物理兜底实现 │ │ │ └── include/ # 物理兜底接口声明 │ │ └── audit/ # 安全审计(合规性) │ │ ├── src/ │ │ │ ├── safety_audit.cpp # 审计核心实现 │ │ │ └── report_generator.cpp # 审计报告生成 │ │ └── include/ # 审计接口声明 │ └── control/ # 飞行控制层(与作业解耦) │ ├── flight_core/ # 飞行核心(定高/定速/悬停) │ │ ├── src/flight_core.cpp # 飞行核心实现(定高/定速/悬停逻辑) │ │ └── include/flight_core.h # 飞行核心接口声明 │ ├── attitude_control/ # 姿态控制(滚转/俯仰/偏航) │ │ ├── src/attitude_control_core.cpp # 姿态控制核心实现 │ │ └── include/attitude_control.h # 姿态控制接口声明 │ └── trajectory_planning/ # 轨迹规划(多路径算法) │ ├── src/trajectory_planning_core.cpp # 轨迹规划核心实现 │ └── include/trajectory_planning.h # 轨迹规划接口声明 ├── script/ # 工程化工具链(量产/运维/测试/仿真) │ ├── build/ # 构建编译工具 │ │ ├── build_config.sh # 编译参数封装(简化命令) │ │ ├── build.sh # 主编译脚本(差异化编译) │ │ ├── clean_build.sh # 编译产物清理 │ │ ├── cmake_helper.sh # CMake辅助配置 │ │ └── version_check.sh # 版本兼容性检查 │ ├── test/ # 测试验证工具 │ │ ├── unit_test.sh # 单元测试(全模块覆盖) │ │ ├── integration_test.sh # 集成测试(模块联动) │ │ ├── prod_acceptance_test.sh # 量产验收测试 │ │ └── debug_test.py # Python调试验证 │ ├── deploy/ # 量产部署工具 │ │ ├── prod_deploy.sh # 部署主脚本(环境检查/配置推送/验证) │ │ ├── config_deploy.sh # 配置部署(按机型/作业) │ │ ├── firmware_upgrade.sh # 固件在线升级 │ │ ├── rollback.sh # 部署回滚(失败恢复) │ │ └── encrypt/ # 配置加密(工业级安全) │ │ └── config_encrypt.cpp # 加密核心实现 │ ├── log/ # 日志工具(故障定位) │ │ ├── log_collector.sh # 日志采集(按模块/级别/时间) │ │ ├── log_analyzer.py # 日志分析(故障识别) │ │ ├── log_struct.py # 结构化日志生成(JSON) │ │ └── fault_trace.py # 故障溯源(多日志关联) │ ├── sim/ # 仿真工具(虚拟测试) │ │ ├── core/ # 仿真核心(物理引擎/环境模拟) │ │ │ ├── src/sim_core.cpp # 仿真核心实现(物理引擎适配) │ │ │ └── include/sim_core.h # 仿真核心接口声明 │ │ ├── plant_protection/ # 植保场景仿真 │ │ │ ├── src/pp_sim.cpp # 植保场景仿真实现 │ │ │ └── include/pp_sim.h # 植保仿真接口声明 │ │ ├── hoisting/ # 吊装场景仿真 │ │ │ ├── src/hoist_sim.cpp # 吊装场景仿真实现 │ │ │ └── include/hoist_sim.h # 吊装仿真接口声明 │ │ ├── ext_industrial/ # 拓展场景仿真模板 │ │ │ ├── src/ext_sim_template.cpp # 拓展场景仿真模板实现 │ │ │ └── include/ext_sim_template.h # 拓展仿真模板接口 │ │ └── visualizer.py # 仿真可视化(轨迹/状态) │ ├── monitor/ # 系统监控工具 │ │ ├── system_monitor.sh # 整机监控(CPU/内存/电池/AI) │ │ ├── process_manager.sh # 进程管理(自动重启/异常监控) │ │ └── resource_monitor.sh # 资源监控(72小时无人值守) │ ├── sensor/ # 传感器工具 │ │ ├── sensor_calib.sh # 传感器校准 │ │ ├── sensor_verify.sh # 校准验证 │ │ └── calib_data_converter.py # 校准数据转换 │ └── crypto/ # 配置加密工具 │ ├── Config_Crypto/ # 加密核心模块 │ │ ├── src/crypto_core.cpp # 加密核心实现 │ │ └── include/crypto_core.h # 加密核心接口声明 │ └── crypto_verify.sh # 加密验证脚本 ├── test/ # 全场景测试套件(量产验证) │ ├── scene_test_suite/ # 场景自动化测试 │ │ ├── scene_test_core.py # 测试核心框架 │ │ ├── plant_protection_test.py # 植保场景测试用例 │ │ └── hoisting_test.py # 吊装场景测试用例 │ ├── robustness_test/ # 鲁棒性测试(极端场景) │ │ ├── extreme_scene_robustness.py # 极端环境测试 │ │ └── ai_failure_robustness.py # AI失效测试 │ ├── safety_verification/ # 安全验证(冗余/兜底) │ │ ├── redundant_safety_test.py # 冗余安全测试 │ │ └── physical_fallback_test.py # 物理兜底测试 │ └── platform_adaptation_test/ # 平台适配测试 │ ├── m200_adapt_test.py # m200机型适配测试 │ ├── m400_adapt_test.py # m400机型适配测试 │ ├── m600_adapt_test.py # m600机型适配测试 │ └── x800_adapt_test.py # x800机型适配测试 └── doc/ # 工程文档(全维度说明) ├── quick_ref.md # 快速参考(高频操作速查) ├── version_log/ # 版本迭代日志(变更/兼容/升级) │ ├── v2.0.0.md # v2.0.0版本说明 │ └── v2.1.0.md # v2.1.0版本说明 ├── hardware_adapt_guide.md # 硬件适配指南(部署/调优) ├── test_guide.md # 测试指南(用例/结果分析) ├── config_reference.md # 配置参考(全配置项说明) ├── contribution_guide.md # 贡献指南(协作规范) ├── architecture.md # 系统架构说明(模块/交互/分层) ├── api_reference.md # 接口参考手册(功能/参数/示例) ├── deploy_guide.md # 量产部署指南(单机/批量/排查) ├── maintenance_guide.md # 运维手册(巡检/故障定位) └── extension_guide.md # 场景拓展指南(接入步骤/模板) 开源协议 Apache 2.0(详见 LICENSE 文件) 版本信息 当前版本:v2.1.0(语义化版本) 兼容版本:v2.0.0、v2.1.0 版本描述:农林植保 + 工业吊装核心适配,支持多场景拓展,工业级高冗余量产版本 常见问题 1. 编译失败:检查 CMake 版本、root 权限、src 目录完整性 2. 启动失败:检查可执行文件(output/bin/drone_autopilot)及参数合法性 3. 日志异常:查看 log 目录对应文件,排查配置或硬件适配问题