任务

一些参考的网站

点击查看代码

https://zhaoxuhui.top/blog/2021/12/01/airsim-note3-settings.html#31-采集平台选择
https://search.freefind.com/find.html?si=29065426&pid=r&n=0&charset=UTF-8&bcd=%C3%B7&query=airsim
https://microsoft.github.io/AirSim/apis_cpp/
https://microsoft.github.io/AirSim/
https://microsoft.github.io/AirSim/design/

✅ 项目整体 ToDo List(按功能模块划分)

一、系统架构与初始化


二、仿真场景设计与配置

2.1 地形与地图

2.2 环境要素

2.3 静态与动态对象


三、飞机控制系统

3.1 视景模式控制

3.2 仿真模式控制(AirSim 控制器)

3.3 多无人机支持


四、虚拟传感器与通信模块

4.1 传感器配置

4.2 传感器数据处理

4.3 外部数据通信(态势显示)


五、多视角系统


六、UI 系统开发

6.1 基础界面

6.2 系统展示与操作

6.3 UI 与逻辑联动


七、系统展示与交互控制


八、工程部署与测试


九、代码结构与工具支持

  • 这几个是在同样的代码下跑出来的。
  • 我那些修改只实现了一部分,有一部分暂时还没实现,因为我测试加上去指标又低了
  • 先拿这个跑别的,同时再继续实现吧。
  • 对比就先用mmp,这个,dePT那个用学弟跑的,

Airsim的闪退问题太严重了。。。。

为什么我封装的那个子类,一重新编译蓝图里就报缺失?是否和Airsim的特殊引入方式有关?

  • 论文方面进展不大和昨天差不多, 等我确认没啥效果的话我看看用点办法整我之前的那个,改改想法

  • 项目方面也是. 遇到点瓶颈, airsim相关文档实在不多,而且我用它api属于是问题百出. 在同一个项目里的所有操作都得用异步,而且会重新编译会出现蓝图重载问题需要重新修改.

  • 我在找别人对airsim的修改.

  • 如何实现通信控制?是死磕目前这套技术方案, 还是整个python服务端来转发并用airsim pythonapi来控制?

架构图
graph TB %% 外部仿真机系统 subgraph SIM["🖥️ 仿真机端"] DYNAMICS["无人机动力学模型"] PATHPLAN["路径规划算法"] DECISION["决策控制系统"] UDPSEND["UDP数据发送器"] DYNAMICS --> UDPSEND PATHPLAN --> UDPSEND DECISION --> UDPSEND end %% Python中间件 subgraph MIDDLEWARE["🐍 Python中间件服务器"] subgraph COMM["通信模块"] UDPRECV["UDP接收器<br/>端口:12345"] TCPSERVER["TCP服务器<br/>端口:12346"] WSSERVER["WebSocket服务器<br/>端口:12347"] end subgraph CORE["核心处理模块"] MODEMANAGER["模式管理器<br/>仿真/视景切换"] DATAPARSER["数据解析器<br/>位置/姿态/速度"] CMDPROCESSOR["命令处理器<br/>天气/场景/控制"] end subgraph API["AirSim API封装"] POSITIONAPI["位置控制API"] SENSORAPI["传感器数据API"] ENVAPI["环境控制API"] PHYSICSAPI["物理引擎API"] end UDPRECV --> DATAPARSER TCPSERVER --> CMDPROCESSOR WSSERVER --> CMDPROCESSOR DATAPARSER --> MODEMANAGER CMDPROCESSOR --> MODEMANAGER MODEMANAGER --> POSITIONAPI MODEMANAGER --> ENVAPI MODEMANAGER --> PHYSICSAPI end %% UE AirSim系统 subgraph UE["🎮 UE AirSim端"] subgraph AIRSIM["AirSim插件"] FLYINGPAWN["BP_FlyingPawn<br/>无人机实体"] SENSORS["传感器系统<br/>D435i + MID360"] PHYSICS["物理引擎<br/>多旋翼动力学"] ENVIRONMENT["环境系统<br/>天气/光照/季节"] end subgraph SCENE["场景系统"] TERRAIN["地形系统<br/>中蒙/中印/中朝边境"] VEGETATION["植被系统<br/>树木/灌木"] ANIMALS["动态目标<br/>飞鸟/动物/敌机"] WEATHER["天气系统<br/>风/雨/雾"] end subgraph UI["用户界面"] SCENECONFIG["场景配置面板"] WEATHERCONTROL["天气控制面板"] TIMECONTROL["时间控制面板"] VIEWCONTROL["视角切换控制"] STATUSDISPLAY["实时状态显示"] end FLYINGPAWN --> SENSORS PHYSICS --> FLYINGPAWN ENVIRONMENT --> WEATHER ENVIRONMENT --> SCENE end %% 展示UI软件 subgraph DISPLAY["📊 展示UI软件"] CONFIGUI["态势配置界面"] MONITORING["实时监控面板"] TRAJECTORY["轨迹显示"] DATALOG["数据记录"] end %% 数据流连接 UDPSEND -.->|"UDP 100Hz<br/>位置/姿态数据"| UDPRECV POSITIONAPI -->|"AirSim API调用"| FLYINGPAWN SENSORAPI -->|"传感器数据获取"| SENSORS ENVAPI -->|"环境参数设置"| ENVIRONMENT PHYSICSAPI -->|"物理引擎控制"| PHYSICS UI -->|"TCP命令<br/>天气/场景控制"| TCPSERVER WSSERVER -->|"WebSocket<br/>实时状态推送"| STATUSDISPLAY CONFIGUI -->|"TCP连接<br/>场景配置"| TCPSERVER MONITORING <-->|"WebSocket<br/>双向数据"| WSSERVER %% 模式切换逻辑 MODEMANAGER -.->|"仿真模式<br/>启用物理引擎"| PHYSICS MODEMANAGER -.->|"视景模式<br/>禁用物理引擎"| PHYSICS %% 传感器数据流 SENSORS -.->|"传感器数据"| SENSORAPI SENSORAPI -.->|"数据转发"| WSSERVER %% 环境控制流 SCENECONFIG --> CMDPROCESSOR WEATHERCONTROL --> CMDPROCESSOR TIMECONTROL --> CMDPROCESSOR %% 样式定义 classDef simBox fill:#e1f5fe,stroke:#01579b,stroke-width:2px classDef middlewareBox fill:#f3e5f5,stroke:#4a148c,stroke-width:2px classDef ueBox fill:#e8f5e8,stroke:#1b5e20,stroke-width:2px classDef uiBox fill:#fff3e0,stroke:#e65100,stroke-width:2px class SIM simBox class MIDDLEWARE middlewareBox class UE ueBox class DISPLAY uiBox
数据流
sequenceDiagram participant SIM as 仿真机 participant MW as Python中间件 participant UE as UE AirSim participant UI as 展示界面 participant SENSORS as 传感器系统 Note over MW: 系统启动和初始化 MW->>UE: 连接AirSim API MW->>MW: 设置默认仿真模式 MW->>UE: 启用物理引擎 Note over SIM,UI: 仿真模式数据流 loop 仿真模式 (100Hz) SIM->>MW: UDP位置数据 {x,y,z,roll,pitch,yaw} MW->>MW: 解析位置数据 MW->>UE: 透传API控制命令 UE->>UE: 物理引擎计算 UE->>SENSORS: 更新传感器位置 SENSORS->>MW: 传感器数据 (D435i/MID360) MW->>UI: WebSocket推送状态 end Note over MW,UI: 模式切换流程 UI->>MW: TCP请求切换到视景模式 MW->>UE: 禁用物理引擎 MW->>MW: 切换到视景模式 MW->>UI: 确认模式切换成功 Note over SIM,UI: 视景模式数据流 loop 视景模式 (100Hz) SIM->>MW: UDP位置数据 MW->>MW: 解析数据并忽略物理 MW->>UE: 直接设置Actor位置 (瞬移) UE->>SENSORS: 更新传感器位置 SENSORS->>MW: 传感器数据 MW->>UI: WebSocket推送状态 end Note over UI,UE: 环境控制流程 UI->>MW: TCP天气控制命令 {type:"rain", intensity:0.8} MW->>UE: AirSim天气API调用 UE->>UE: 更新天气效果 UE->>MW: 天气状态反馈 MW->>UI: WebSocket状态更新 Note over UI,UE: 场景配置流程 UI->>MW: TCP场景配置 {trees, terrain, animals} MW->>UE: 场景参数设置 UE->>UE: 动态生成场景元素 UE->>MW: 场景配置完成 MW->>UI: 配置结果反馈 Note over SENSORS,UI: 传感器数据流 loop 传感器数据 (30Hz) SENSORS->>MW: 深度图像/点云数据 MW->>MW: 数据格式转换 MW->>UI: WebSocket传感器数据流 UI->>UI: 实时显示传感器视图 end Note over SIM,UE: 错误处理流程 SIM-->>MW: 连接中断 MW->>MW: 检测超时 MW->>UE: 暂停位置更新 MW->>UI: 推送连接状态警告 SIM->>MW: 重新连接 MW->>UI: 恢复正常状态
分层图
graph TD %% 应用层 subgraph APP["🎯 应用层"] PATROL["边境巡逻任务"] PATHPLAN["路径规划评估"] DATACOLLECT["仿真数据采集"] REALTIME["实时态势显示"] end %% 业务逻辑层 subgraph BUSINESS["🔧 业务逻辑层"] MODESWITCH["仿真/视景模式切换"] SCENEMANAGE["场景管理"] VEHICLECONTROL["无人机控制"] SENSORMANAGE["传感器管理"] ENVCONTROL["环境控制"] end %% 中间件层 subgraph MIDDLEWARE["⚙️ 中间件层 (Python服务器)"] subgraph PROTOCOL["协议适配"] UDP["UDP服务器<br/>高频位置数据"] TCP["TCP服务器<br/>控制命令"] WS["WebSocket<br/>实时推送"] end subgraph PROCESSING["数据处理"] PARSER["数据解析器"] VALIDATOR["数据校验器"] CONVERTER["格式转换器"] BUFFER["数据缓冲器"] end subgraph APIGATEWAY["API网关"] AIRSIMAPI["AirSim API封装"] CMDROUTER["命令路由器"] RESPMANAGER["响应管理器"] end end %% 平台层 subgraph PLATFORM["🏗️ 平台层"] subgraph AIRSIMCORE["AirSim核心"] SIMAPI["AirSim Python API"] MULTIROTOR["多旋翼仿真器"] SENSORS["传感器仿真"] PHYSICS["物理引擎"] end subgraph UEENGINE["UE引擎"] RENDERING["渲染引擎"] BLUEPRINT["蓝图系统"] UIFRAMEWORK["UI框架"] ASSETMANAGE["资源管理"] end end %% 基础设施层 subgraph INFRA["🔧 基础设施层"] subgraph NETWORK["网络基础"] ETHERNET["以太网"] LOCALHOST["本地回环"] FIREWALL["防火墙配置"] end subgraph SYSTEM["系统基础"] WINDOWS["Windows OS"] DRIVERS["硬件驱动"] MEMORY["内存管理"] GPU["GPU加速"] end end %% 连接关系 APP --> BUSINESS BUSINESS --> MIDDLEWARE MIDDLEWARE --> PLATFORM PLATFORM --> INFRA %% 具体连接 PATROL --> MODESWITCH PATHPLAN --> VEHICLECONTROL DATACOLLECT --> SENSORMANAGE REALTIME --> ENVCONTROL MODESWITCH --> UDP SCENEMANAGE --> TCP VEHICLECONTROL --> PARSER SENSORMANAGE --> WS ENVCONTROL --> CONVERTER UDP --> SIMAPI TCP --> MULTIROTOR WS --> SENSORS PARSER --> PHYSICS SIMAPI --> RENDERING MULTIROTOR --> BLUEPRINT SENSORS --> UIFRAMEWORK PHYSICS --> ASSETMANAGE RENDERING --> ETHERNET BLUEPRINT --> LOCALHOST UIFRAMEWORK --> WINDOWS ASSETMANAGE --> GPU %% 关键数据流标注 PATROL -.->|"任务参数"| DATACOLLECT VEHICLECONTROL -.->|"控制指令"| SENSORMANAGE APIGATEWAY -.->|"API调用"| AIRSIMCORE AIRSIMCORE -.->|"渲染数据"| UEENGINE %% 样式定义 classDef appLayer fill:#ffeb3b,stroke:#f57f17,stroke-width:2px classDef businessLayer fill:#4caf50,stroke:#1b5e20,stroke-width:2px classDef middlewareLayer fill:#9c27b0,stroke:#4a148c,stroke-width:2px classDef platformLayer fill:#2196f3,stroke:#0d47a1,stroke-width:2px classDef infraLayer fill:#ff5722,stroke:#bf360c,stroke-width:2px class APP appLayer class BUSINESS businessLayer class MIDDLEWARE middlewareLayer class PLATFORM platformLayer class INFRA infraLayer
posted @ 2025-06-30 15:57  灰色耳机  阅读(35)  评论(0)    收藏  举报