LLM 驱动的无人机智能仿真与控制平台(AirSim-Lib)
实验室项目(2026.03 — 2026.07)
项目概述:从零搭建 UE4 + AirSim + PX4 高保真无人机仿真环境,并在此基础上构建 LLM Agent 驱动的自然语言无人机控制系统——“两架无人机编队飞到 (20, 0, -10) 悬停 30 秒后降落”这类任务,由 Agent 自动分解为工具调用序列执行
我的角色:Agent 控制系统设计与工具集开发、仿真环境搭建
技术栈:Python · smolagents · UE4.27 + AirSim 1.8.1 · PX4 SITL · ROS 2 Humble · MAVSDK · vLLM(Qwen) · Milvus · PyQt6/Flask
核心成果:三平台(AirSim 仿真 / PiMAVLink 实机编队 / Web APM)统一 Agent 控制框架,30+ 飞行工具集
Situation(背景)
无人机任务规划传统上依赖地面站软件手动打点、手动配置飞行模式,存在两个痛点:
- 使用门槛高:操作者需熟悉飞控参数、坐标系约定(NED/ENU)、MAVLink 协议细节,非专业人员难以上手;
- 任务编排僵硬:预设航线缺乏灵活性,面对”飞到那栋楼后面看看,然后绕一圈回来”这类自然语言描述的任务,传统方式无能为力。
与此同时,LLM 的 Tool Use(工具调用)能力让”自然语言 → 代码 → 设备控制”成为可能。但要把这件事在无人机上做通,需要一个高保真、可复现、支持多机的仿真环境作为试验场——而实验室当时没有一套完整的 AirSim + PX4 仿真基础设施。
Task(任务)
- 仿真基础设施:搭建 UE4.27 + AirSim 1.8.1 + PX4 SITL 的完整仿真环境,打通 ROS 2 通信链路,支持多无人机仿真与远程分布式部署;
- LLM 智能控制系统(核心):基于 smolagents 框架构建 UAV Agent,实现自然语言驱动的单机/编队飞行控制,覆盖仿真与实机多平台后端;
Action(行动)
1. 仿真环境搭建
完整走通 UE4 → AirSim → PX4 → ROS 2 的技术栈:UE4.27 源码编译、AirSim 1.8.1 适配 Ubuntu 22.04(编译工具链从 clang-8 迁移到 clang-12 等 9 处修改)、MAVSDK 控制链路与 ROS 2 传感器监控链路打通、PX4 多实例 SITL 多机仿真,并支持仿真主机与控制主机分离的远程部署。全部流程沉淀为文档,形成实验室可复用的基础设施。
2. Agent 系统架构设计(核心)
系统分为五层:
- Agent 层:基于 smolagents
CodeAgent封装UAVs_CodeAgent——LLM 直接生成 Python 代码并执行工具调用,支持流式输出、每步耗时统计; - 接口层:
OpenAIServerModel2统一对接云端(DashScope qwen-plus)与本地 vLLM(Qwen 量化版)推理服务,可热切换; - 工具层:按平台封装 30+ 个
smolagents.Tool——起飞/降落/GPS 导航/Offboard 位置与速度控制/航点任务/编队飞行/临时避障等,Agent 按任务语义自主选择调用; - 记忆层:Milvus 向量数据库存储任务记忆;
- UI 层:PyQt6 桌面端(Step 思考过程与代码执行分色显示)+ Flask Web 端(SSE 流式响应)双界面。
数据流:用户自然语言输入 → UI(SSE 推送)→ UAVs_CodeAgent.step() → LLM 生成代码 → 解析并执行 → 调用工具层 Tool.forward()(MAVSDK / ROS 2 话题 / HTTP API 三条通路)→ 工具返回结果 → LLM 下一步决策 → 循环直到任务完成。
坐标系统一是多机控制的关键细节:各机原始 NED 各自为原点,系统统一到以 Drone1 起飞点为原点的全局 NED(to_unified_ned / from_unified_ned),航点与编队工具全部基于统一坐标系实现,规避了多机相对位置计算中的坐标歧义。
3. 三平台后端适配
同一套 Agent 框架通过替换工具集即可切换后端,仿真验证过的任务指令可直接推向实机:
| 后端 | 通信方式 | 场景 |
|---|---|---|
| AirSim UE4 仿真 | ROS 2 话题 + MAVSDK | 高保真仿真,NED 控制,Offboard 模式 |
| PiMAVLink | ROS 2 自定义消息(/a{N}/...) | 实机/SITL 编队,26 种 MAVLink 模式切换 |
| Web APM (ArduPilot) | HTTP API + WebSocket | 与 Cesium GCS 前端联动,不依赖 ROS 2 |
Result(结果)
- 智能控制系统:自然语言指令端到端可用,覆盖多旋翼与垂起固定翼机型、本地部署与云端 API 两种 LLM 接入方式;
- 仿真基础设施:形成一套可复现的环境搭建文档与配置模板,新成员从零搭建周期从数周缩短到数天;
- 持续迭代:仓库自 2026.03 起持续开发 5 个月,覆盖多机坐标系修复、编队飞行、集群航点规划 HTML 可视化、机间临时避障等功能。