跳转至

工具链框架与组件

本页介绍 RflySim 工具链的设计理念、整体架构、支持的仿真模式,以及构成工具链的各类组件与自研核心软件,帮助读者建立全局认识。各组件的详细用法请通过文内链接跳转至对应专题页。

设计理念

RflySim 工具链是一款专业、免费且开放的无人系统开发仿真工具链,提供从算法开发、软件在环仿真、硬件在环仿真到真机部署实验的全流程自动化解决方案。其设计贯穿两条核心主线:

  • 基于模型的设计(Model-Based Design, MBD):将系统的设计、建模、仿真与验证集成于统一平台。借助 MATLAB/Simulink 在物理系统实现前完成早期功能验证与性能测试,并支持从模型到代码的自动生成,显著降低人工编码量、提升一致性与工程质量。
  • 仿真到真机迁移(Sim2Real):以硬件在环仿真(真实自驾仪与机载计算单元直接参与仿真)为桥梁,确保同一套算法代码既可在仿真环境运行,也可在真实无人系统平台上部署,缩小仿真与现实的差距。

底层控制与路径规划以 MATLAB/Simulink 为核心;高层智能感知与集群决策融合 Python、ROS 等开源生态;工程验证与部署集成 Pixhawk/PX4 自驾仪、QGroundControl 地面站及大量自研中间件与自动化脚本。

整体架构

RflySim 工具链整体框图由多个功能模块组成,主要包括软/硬件仿真节点(由“载具运动仿真器 + 底层控制器”构成)、三维仿真器,以及面向视觉与集群控制的上层控制器。这些模块共同构建了兼容 SITL 与 HITL 的完整闭环体系,覆盖无人系统从算法开发到验证测试的全流程。

RflySim 工具链整体框架

四大功能模块

模块 角色 实现要点
载具运动仿真器 模拟真实物理环境响应(运动学、传感器、执行器建模) 基于 MATLAB/Simulink 构建六自由度模型 → 自动生成 C/C++ → 编译为 DLL → 加载至 CopterSim 周期求解;可灵活嵌入故障模型实现故障注入
底层控制器 接收传感数据、生成控制指令,驱动仿真载具稳定运行 默认采用开源 PX4 自驾仪;支持 SITL(软件)、HITL(硬件)及 FPGA 高保真三种在环模式
三维仿真器 三维可视化、碰撞检测、通信可达性评估、大场景支持、视觉传感器数据生成 RflySim3D(UE4,主力)与 RflySimUE5(UE5,完整版)
上层控制器 协调“感知—决策—执行”控制链,面向视觉与集群控制 由多模感知决策层、组网通信层、集群控制层构成;输入三维仿真器的多模态传感数据与底层控制器的状态估计,输出外部控制指令

闭环数据流

“底层控制器”通过网络接口(SITL)或 USB 串口(HITL)与“载具运动仿真器”双向通信:① 替换传感器输入——接收虚拟传感器数据并屏蔽原始传感器芯片;② 替换执行器输出——禁用真实电机端口,将控制量(如 PWM)回送至仿真器执行器模型驱动虚拟载具运动。由此把整个控制系统接入闭环,避免对复杂嵌入式控制逻辑做人工建模。

仿真模式

RflySim 提供两个级别的在环仿真,并针对第三方闭源自驾仪扩展了 FPGA 高保真模式。

RflySim 支持的仿真模式

SITL 与 HITL 对比

对比项 SITL(软件在环) HITL(硬件在环)
自驾仪形态 PX4 软件运行于本地(WSL/Ubuntu 或 Docker) PX4 部署于物理自驾仪硬件(如 Pixhawk 6X)
通信链路 TCP/UDP 网络接口 USB 串口(或网络接口)
硬件需求 无需额外硬件,成本低 需真实自驾仪
实时性/逼真度 略低(缺乏真实信号噪声与延迟) 高,接近真机
适用阶段 原型设计、算法快速迭代(多数读者) 部署验证、软硬件联调(进阶读者)

同一套控制逻辑

SITL 与 HITL 运行的是同一套 PX4 控制逻辑,算法行为保持一致。建议初期用 SITL 快速迭代,成熟后切换 HITL 做稳定性验证与真机适配。

FPGA 高保真仿真模式

针对第三方闭源自驾仪难以即插即用、专用仿真模式会占用算力并干扰真机行为的问题,RflySim 引入基于 FPGA 的硬件在环模式:

  1. 物理屏蔽传感器硬件——拆除自驾仪上的 IMU、GNSS 等模块,无需修改固件即可屏蔽原生传感器输入;
  2. 引入 FPGA 中间层——在控制器与仿真器间由实时仿真系统模拟 SPI、I²C、UART、PWM 等底层协议,在电平层面复现真实感知输入;
  3. 保持真机运行模式——自驾仪始终以真实状态接入闭环,并支持传感器芯片级故障注入;
  4. 高通用性——仅需了解自驾仪所用传感器/执行器芯片型号及通信校验逻辑即可黑盒接入。低成本“ARM + FPGA”混合平台(如 Xilinx ZYNQ)的普及让该方案性价比愈加明显。

机载系统在环与分布式集群仿真

  • 机载系统软件在环:感知决策算法运行在本地(Python/WSL/ROS),图像/点云经共享内存或 UDP 与仿真器高速交互,适合算法设计与原型验证。
  • 机载系统硬件在环:仿真器经局域网将图像传至真实机载平台(Ubuntu + ROS)运行视觉算法,构成完整“感知—决策—执行”闭环,是仿真到实机部署的重要中间环节。
  • 分布式集群仿真:支持在多台主机上并行运行“三维仿真器 / 载具运动仿真器 / 底层控制器 / 上层控制器”,节点数量与通信拓扑按需扩展,应对多机视觉与点云处理的算力瓶颈。详见 DistSim.bat分布式仿真 SDK

组件总览

RflySim 融合多种通用开发工具与定制软件接口,按角色可分为下列七类。

核心仿真与开发平台

组件 作用
MATLAB/Simulink 建模与控制算法设计核心。图形化拖拽搭建无人系统模型与控制算法,对接 RflySim 接口模块实现自动代码生成、固件编译上传与离线/在线联调
虚幻引擎(UE) 高保真三维仿真与视觉感知环境支撑。RflySim 基于 UE4/UE5 自研可视化平台 RflySim3D,支持自定义场景导入、高逼真渲染与视觉传感器数据生成

操作系统与开发环境

组件 作用
Windows 图形界面友好的主仿真平台,运行 RflySim3D、Simulink 及配置工具
Ubuntu 无人系统算法开发与部署标准平台(20.04/22.04 LTS),集成 ROS 1/2、PX4 SDK、OpenCV、TensorFlow,适配 Jetson Orin NX、RK3588 等嵌入式平台
WSL 跨平台桥接环境,内置 WinWSL 编译环境(WSL 1/2 + Ubuntu 20.04/22.04),预装 PX4、ArduPilot 编译工具链及机器人开发框架,支持 WSL2 GPU 加速
Docker 容器化部署与跨架构镜像生成,集成于 WSL2;结合 QEMU/Buildx 可在 X86 主机直接生成 ARM64 机载算法镜像

编程语言与核心库

组件 作用
C/C++ 底层控制开发与 ROS 算法部署核心语言,用于自驾仪固件(PX4、ArduPilot)与高实时性节点
Python 上层算法开发与数据处理利器,用于视觉感知、路径规划、目标识别与策略决策,结合 OpenCV、NumPy、TensorFlow、PyTorch
OpenCV 计算机视觉算法开发核心库,在 Windows/Python 与 WSL/Ubuntu/C++/Python 环境均集成,提供静态识别、动态跟踪、定位估计等示例

中间件与通信协议

组件 作用
ROS 1/2 无人系统感知与通信中间件。ROS 1 以话题/服务/参数服务器为核心、适合教学与原型;ROS 2 基于 DDS,实时性、安全性与分布式支持更强。工具链提供一键切换脚本(Ros2ComMode.bat
IPC(进程间通信) 多进程协作的数据传输机制。共享内存用于话题零拷贝高速传输;套接字(TCP/UDP) 中,TCP 保证可靠用于控制指令,UDP 低延迟用于图像/传感器数据。CopterSim 与地面站、Python/Simulink 控制程序、RflySim3D 间通信均经 UDP 实现

详见 工具链协议汇总

自驾仪软硬件生态

组件 作用
PX4 开源自驾仪控制系统核心软件,模块化、实时性强,支持多旋翼/固定翼/VTOL/无人车等;原生集成 SITL/HITL 仿真模式与 MAVLink 转发
Pixhawk 开源自驾仪硬件平台,兼容 PX4 与 ArduPilot;HITL 与真机实验默认平台(如 Pixhawk 6X)
QGroundControl 跨平台地面站,提供任务规划、实时监控、参数调试、日志管理,经 MAVLink 连接 PX4/ArduPilot
MAVLink 轻量级双向通信协议标准,贯穿“仿真—部署—实验”全流程。上层适配库:MAVROS(ROS)、Pymavlink(Python)、MAVSDK(C++/Python)

机载计算机与外部控制

组件 作用
机载计算机(Onboard Computer) 无人系统“大脑”,运行智能感知、路径规划、控制计算。推荐 NVIDIA Jetson Orin NX(Ampere GPU + 8 核 ARM CPU,Super 版最高 157 TOPS),可装与 WSL 一致的 Ubuntu + ROS/OpenCV,并借 Docker 实现跨平台镜像发布
Offboard 模式 外部控制机制,允许外部计算单元经 MAVLink 向自驾仪发送实时控制指令(速度/位置/姿态/航点)。在 RflySim 中通过“ROS + MAVROS + PX4”联动实现闭环控制

自动化与接口工具

组件 作用
BAT(批处理文件) 一键启动与任务调度自动化。提供大量定制脚本,实现仿真启动、WSL 初始化、算法部署到数据记录的一键流程。详见 BAT 脚本速查
CMD(命令提示符) 仿真控制与交互入口,通常由 BAT 自动弹出,用于输入载具数量/初始位置/启动模式等参数,并可快速终止后台仿真进程
DLL(动态链接库) 模块化模型与算法接口。加载不同 DLL 可快速切换仿真载具动力学特性而无需重编译主程序,热插拔特性便于模型迭代,并支持算法闭源封装

RflySim 自研核心软件

工具链主要由以下自研核心软件、接口与例程构成(更详细信息见安装目录 RflySimAPIs\2.RflySimUsage\0.ApiExps\e1_RflySimSoftwareReadme):

软件 简介 详细文档
CopterSim 核心仿真软件,集成模型配置、通信中转、UI 设置与自驾仪仿真连接,负责动力学模型加载与闭环控制仿真
RflySim3D / RflySimUE5 基于 UE4/UE5 的三维仿真器,承担可视化、碰撞检测、视觉传感器数据生成等 三维资源索引快捷键与控制台命令模型导入 XML
BAT 一键脚本 仿真启动与环境配置自动化脚本集 BAT 脚本速查
RflySimAPIs Python/Simulink/ROS 开发接口与例程系统,覆盖控制、通信、视觉、集群、PHM 等 Python SDKSimulink 工具箱ROS/ROS2 接口

视觉相关

视觉传感器配置与通信协议见 视觉传感器配置协议视觉相关通信协议;自动化测试见 自动化测试配置协议