常见问题 FAQ¶
安装、升级与环境配置¶
安装时提示 WSL 未启用怎么办?
请运行安装包 0.UbuntuWSL\EnableWSL.bat,按提示输入 Y 并重启计算机。重启后再次运行确认 WSL 已启用。
如果仍然失败,请进入 控制面板 → 程序和功能 → 启用或关闭 Windows 功能,手动勾选「适用于 Linux 的 Windows 子系统」和「虚拟机平台」。
安装后桌面没有 RflyTools 文件夹?
请确认安装脚本执行完毕且未提前中断。可重新运行一键安装脚本,选择 "是" 重新安装。
杀毒软件删除了 RflySim 的文件?
RflySim 为绿色软件,不会修改系统文件或访问外网。请在安装前彻底关闭所有杀毒软件(包括 Windows Defender 实时保护),然后重新安装。
安装需要多少磁盘空间?
整安装约需 80-100GB,建议安装到固态硬盘。
安装 RflySim 时,显示文件权限报错问题,该如何解决?
该问题是由于当前安装包中的文件权限问题造成的,可关闭 MATLAB 软件,以管理员方式打开 MATLAB 再重新进行安装。

安装最新版 RflySim 时,显示安装路径报错,该如何解决?
安装路径需要设置为具体的文件夹中,不能以盘符作为安装路径。

请求更新版本可以直接下载新版本安装吗?需要卸载旧版本吗?
均可。可直接通过 OnekeyScript.p 或 OnekeyScript.exe 直接进行安装,在弹出的界面中设置为全新安装的配置即可;也可以先卸载后安装。
RflySim 工具链是否可以安装在 Windows 电脑外置的 U 盘等移动硬盘的设备中?便于多台电脑移动使用?
不能。RflySim 作为一个工具链,内部包含多款软件和组件,这种安装方式容易造成内部软件或组件之间的链接出错,即使只在一台电脑上使用也可能出现异常,导致无法正常运行。
如何查看 RflySim 工具链当前配置的一些参数?
RflySim 工具链在完成安装之后,版本的查看可以直接打开 CopterSim、RflySim3D 以及安装路径下的 *.txt 文件名称来查看。

RflySim 越使用占用内存越大,该如何解决?
RflySim 工具链在使用过程中确实会产生一些缓存文件,针对该问题的解决办法一般有如下几种:
- 删除缓存:删除
*\RflySimAPIs_Backup_****文件夹,该文件夹是在更新 RflySim 时备份的RflySimAPIs文件夹,若无重要文件可直接删除。另外,清除 PX4 软件系统缓存,多次运行 SITL/HITL 仿真时,PX4 会生成很多日志等文件,可直接在*\Desktop\RflyTools\WinWSL.lnk中运行make distclean直接清除缓存。 - 移动 RflySim 到其他大空间盘:可直接运行
uninstall.m完全卸载当前 RflySim 工具链,然后再安装到其他盘中,建议目标盘剩余空间在 300G 及以上。 - 扩充 RflySim 当前盘空间:可利用 DiskGenius 等软件来实现对当前盘的扩充,建议扩充到 300G 及以上。

仿真运行、显示与地面站¶
SITL 启动后 RflySim3D 没有显示无人机?
- 检查 CopterSim 是否正常启动且状态栏有数据跳动。
- 查看 RflySim3D 左上角是否有
*** EKF状态提示。 - 确认杀毒软件已关闭、防火墙未阻断 UDP 通信。
- 尝试使用
SITLRunLowGPU低精度模式。
仿真中飞行器不停抖动?
通常是 GPU 性能不足导致渲染帧率过低。解决方案如下:
- 使用
SITLRunLowGPU低配模式。 - 降低 RflySim3D 的分辨率和渲染质量。
- 关闭其他占用 GPU 的程序。
HITL 仿真连不上 Pixhawk?
- 确认 USB 线连接稳固,设备管理器中能看到 COM 口。
- 确认输入了正确的 COM 口号和波特率。
- 关闭 QGC 或其他可能占用串口的程序。
- 尝试更换 USB 端口或数据线。
多机仿真时只有第一架飞机能起飞?
检查各载具的 Vehicle ID 是否唯一,以及各 PX4 实例的端口是否冲突。
QGC 地面站无法打开,但电脑任务栏有图标,该如何解决?
该问题是 QGC 软件自身的常见问题,可双击电脑右下角的窗口预览进行恢复显示。另外,类似的问题还包括 QGC 中的地图无法显示但电脑已联网,此时可关闭相关 VPN 和杀毒软件后重启电脑,再查看是否恢复正常。

FlightGear 2016.1.2 软件问题?
FlightGear 2016.1.2 相较于当前内置的 RflySim3D 软件而言,显示效果较差,我们更推荐使用目前已经封装好的 RflySim3D 软件通信模块。若必须使用 FlightGear,可通过 https://pan.baidu.com/s/voBFTUMzohBVFj5__amdZg?pwd=2g1x 下载后,将 4.HILApps/ElightGear 2016.1.2.zip 拷贝到安装目录(默认 C:\PX4PSP)下解压,运行其中的 FlightGear-F450.bat 即可启动。相关使用方式也可参考:[RflySim安装路径]\RflySimAPIs\2.RflySimUsage\1.BasicExps\e10_Firmware-Upload。

如何使用 FlightGear 配套件?
FlightGear 2016.1.2 是专用于 Pixhawk 飞件的地面站软件。具体使用方法可参考:[RflySim安装路径]\RflySimAPIs\2.RflySimUsage\1.BasicExps\e10_Firmware-Upload。
视觉传图的例程是否支持从 Windows 将图像通过局域网传输到 rk3588 板载计算机 (ubuntu20.04) 端?
RflySim 工具链中内置有 WSL 子系统,该子系统可直接作为一个 Linux 虚拟机使用。在进行纯软件在环仿真时,可以将图像传输方式修改为 UDP 形式,这样就可以将 Windows 中的图像传输到虚拟机(WSL)环境中;在进行机载板卡的硬件在环仿真时,也可以采用同样方式直接将图像通过局域网传输到板卡上。另外,若发现可以直接 ping 通两个设备,但接收不到图像数据,可检查一下 Windows 后台防火墙是否有拦截。
开发环境、SDK 与 ROS¶
Python 环境无法 import RflySimSDK?
- 确认使用的是 RflySim 自带的 Python 环境(
Python38\python.exe)。 - 如使用自定义环境,先运行
RflySimSDK\ReLabPath.py注册路径。 - 检查是否有依赖包缺失,按提示执行
pip install。
更详细的环境配置方法可参考:[RflySim安装路径]\RflySimAPIs\1.RflySimIntro\2.AdvExps\e3.PythonConfig。
Simulink 代码生成失败?
- 确认 MATLAB 版本 ≥
R2022b。 - 确认已安装
Simulink Coder和Embedded Coder。 - 检查模型中是否使用了不支持代码生成的模块。
如果问题出在 Simulink 编译环境、VS 配置或接口切换上,可参考:[RflySim安装路径]\RflySimAPIs\5.RflySimFlyCtrl\0.ApiExps\13.Simulink_MS_FuncVS 和 [RflySim安装路径]\RflySimAPIs\5.RflySimFlyCtrl\0.ApiExps\21.SwitchPX4Simulink。
ROS 1 / ROS 2 如何选择与配置?
RflySim 工具链对 ROS 1 和 ROS 2 都提供了较完整的支持。一般来说:
- 若当前主要使用 MAVROS、老版本工作流或已有 ROS 1 项目,建议优先选择 ROS 1。
- 若需要更现代的通信机制、共享内存或后续系统扩展,建议优先选择 ROS 2。
相关入门和配置例程可参考:
- ROS 1 安装:[RflySim安装路径]\RflySimAPIs\2.RflySimUsage\0.ApiExps\e8_RosInstall
- ROS 2 安装:[RflySim安装路径]\RflySimAPIs\2.RflySimUsage\0.ApiExps\e9_Ros2Install
- ROS 教程总入口:[RflySim安装路径]\RflySimAPIs\1.RflySimIntro\0.ApiExps\8.ROS_Tutorials
- ROS 2 共享内存示例:[RflySim安装路径]\RflySimAPIs\1.RflySimIntro\2.AdvExps\e12.ROS2SharedMem
- PX4 ROS 2 接口示例:[RflySim安装路径]\RflySimAPIs\2.RflySimUsage\0.ApiExps\e12_PX4ROS2
ROS 节点无法连接到 PX4 SITL?
- 确认 MAVROS 的
fcu_url参数正确。 - 检查 WSL 的网络模式,
WSL1共享网络栈,WSL2一般需要额外考虑端口映射。 - 确认 PX4 SITL 已正常启动。
如果需要对照现成例程排查,可参考:[RflySim安装路径]\RflySimAPIs\2.RflySimUsage\0.ApiExps\e10_Mavros 和 [RflySim安装路径]\RflySimAPIs\5.RflySimFlyCtrl\0.ApiExps\18.MavrosCommAPI。
飞控接口、通信与硬件在环¶
DShot 协议:PX4 用 DShot 读取电机转速如何做?
DShot(Digital Shot)是一种用于飞控与电子调速器(ESC)之间通信的数字协议。在实施前,必须确保软硬件满足 双向 DShot 的要求:
飞控:必须支持 DShot 输出。对于 Pixhawk 系列飞控,通常只有 FMU 端口(Aux 端口或一体板的 Main 端口)支持 DShot,而通过 IO 协处理器输出的端口通常不支持。
电调:
- 32 位电调(
BLHeli_32):原生支持双向 DShot。 - 8 位电调(
BLHeli_S):原厂固件不支持双向 DShot,必须刷写第三方固件(如Bluejay或AM32)后才能支持双向 DShot。
硬件连接:无需额外的 Telemetry 线(UART),仅需标准信号线(Signal)和地线(GND)。
具体步骤:
- 电调固件准备:
- 如果是
BLHeli_32电调,通常默认开启。连接BLHeliSuite32,确认Bidirectional选项处于开启状态。 - 如果是
BLHeli_S电调,访问ESC-Configurator,刷写Bluejay固件,推荐选择48kHz或96kHzPWM 频率。刷写完成后,在设置页面启用Bidirectional DShot。 - PX4 参数配置:启用 DShot 输出、设置电机磁极数,并启用 DShot 遥测。
- 配置完成后,必须断电重启飞控和电调,然后再进行验证。
固件集成:MAVLink、MAVSDK 如何使用?
RflySim 工具链已经集成了多种 PX4 固件接口和高级控制通道。选择方式通常如下:
- 若使用
MAVLink/Offboard方式进行位置、速度、姿态控制,优先参考:[RflySim安装路径]\RflySimAPIs\5.RflySimFlyCtrl\0.ApiExps\17.OffboardCtrlsAPI - 若使用
MAVROS/ROS通信链路,可参考:[RflySim安装路径]\RflySimAPIs\5.RflySimFlyCtrl\0.ApiExps\18.MavrosCommAPI 和 [RflySim安装路径]\RflySimAPIs\6.RflySimExtCtrl\0.ApiExps\e18_MavrosExps - 若使用模型级控制或 DLL 接口,可参考:[RflySim安装路径]\RflySimAPIs\4.RflySimModel\0.ApiExps\12.DllModelImport
如果只是按模块理解工具链结构,则主要包括:底层控制、模型控制、视觉控制、姿航控制和集群控制等几个方向。
模型控制:HIL16CtrlsNorm / HIL16CtrlsPWM 如何使用?
这两套不同的模型控制接口用于不同场景:
HIL16CtrlsNorm:标准化的模型控制接口,适用于大多数控制场景。默认通过 Offboard 模式控制,提供稳定的位置、速度、姿态控制。
HIL16CtrlsPWM:PWM 直接控制接口,适用于需要高性能或直接电机控制的场景。输出类型为 PWM 信号,响应速度更快。
UDP_FULL 模式的数据结构是怎样的?
该例程中的通信模式为 UDP_FULL 模式,该模式的数据结构如右下图所示。因此,在启动 HITL 仿真之前,需确保 bat 脚本中的 UDPSIMMODE 变量为 UDP_FULL 模式,即:UDPSIMMODE=0。

自动代码生成烧录到飞控后,启动 HIL 或实飞仿真无法正常解锁,改如何解决?
这个问题相对复杂,因为涉及 HIL 或实飞仿真,与软硬件配置的相关性较大。建议按下面顺序排查:
- 先查看底层控制开发工作流文档:[RflySim安装路径]\RflySimAPIs\5.RflySimFlyCtrl\2.AdvExps\e0_DevWorkflow\1.Low-level_Controller_Dev,确认当前开发和部署流程本身是否正确。
- 检查硬件是否可以在官方固件下先完成 HIL 仿真或实飞基础验证。HIL 基础验证可参考:[RflySim安装路径]\RflySimAPIs\1.RflySimIntro\2.AdvExps\e2.FCUIntro。
- 最后确认所有硬件连接和状态是否正常,例如 USB 线是否为官方标配、遥控器通道设置是否正确、真机上的飞控与电调连接端口是否正确等。
《微小型固定翼无人机飞行控制设计与实践》书籍中的部分硬件在环仿真的例程是否可以用于真机飞行?
部分实验是可以用于真机实飞的,但需要注意控制器输出部分需要根据自己无人机的执行器通道进行修改,可使用 AUX_output、PWM_output 等模块来替换。另外,固定翼飞行实验与多旋翼无人机飞行难度较大,建议在有专业人员参与的情况下进行试飞。

固件系统如何兼容? 如何集成多种硬件组件?
RflySim 工具链集成了多种类型的 PX4 固件接口和开发入口,包括:
- 底层数据采集:ADC、串口通信。
- 执行器输出:PWM、AUX、辅助输出。
- 传感器管理:RGB_LED、电池测量、输入输出。
- 各种控制模块:姿态控制、导航、任务管理等。
若希望从定制飞控实验总入口继续查看,可参考:[RflySim安装路径]\RflySimAPIs\5.RflySimFlyCtrl\3.CustExps。
控制、建模与智能算法¶
RflySim 可以做到基于强化学习的姿态控制嘛?
可以。RflySim 当前已经提供了基于强化学习的飞控设计实验,不仅可以做,而且工具链中已有现成例程可直接参考。
目前最直接的实验例程为:[RflySim安装路径]\RflySimAPIs\5.RflySimFlyCtrl\3.CustExps\e2_RL-CtrlExp,其名称为“基于强化学习的最优控制飞控设计实验”。该目录下同时提供了 SITL\RL_SITL.slx 和 HITL_FLY\RL_HITL_FLY.slx,可用于软件在环和硬件在环验证。
如果希望采用外部仿真平台进行训练,再回到 RflySim 做验证,也可以参考:[RflySim安装路径]\RflySimAPIs\6.RflySimExtCtrl\2.AdvExps\e6.IsaacSimExps。该实验目录下包含 RL_attctrl\rl.py、circle_follow.py 等文件,可用于参考强化学习姿态控制相关流程。
此外,如果希望绕开三维渲染、直接利用高逼真动力学模型进行训练,也可以结合 DLL 综合模型接口开展强化学习训练,参考:[RflySim安装路径]\RflySimAPIs\4.RflySimModel\0.ApiExps\12.DllModelImport。
基于 RflySim 中的部分如下 Simulink 模型中,大多数例程基本都是设置轨迹控制的,有没有在 X,Y 方向上用速度控制,Z 方向上用高度控制的方法?
可以。推荐直接使用 Offboard 的位置、速度、加速度混合控制接口来实现,其中最适合的是:[RflySim安装路径]\RflySimAPIs\5.RflySimFlyCtrl\0.ApiExps\17.OffboardCtrlsAPI 对应的 OffboardPvaCtrlAPI。
该接口支持同时输入位置、速度、加速度、偏航角、偏航角速度共 11 维控制量,并且支持按通道单独使能。因此可以将:
X、Y方向设置为速度控制。Z方向设置为位置控制,即高度控制。- 其余未使用通道设置为
NaN,并在EnList中关闭对应使能位。
例如在 NED 坐标系下,可采用“x/y 用 Vx/Vy,z 用位置”的混合方式。由于 NED 坐标系中高度向下为正,实际飞行时若无人机在地面上方,通常 z 为负值,这一点需要特别注意。
如果使用 Python 接口,也可以参考 PX4MavCtrlV4 的 SendOffAll() / PosTypeMask 组合方式,实现同样的混合维度控制;如果只看现成例程,可先参考速度控制实验:[RflySim安装路径]\RflySimAPIs\6.RflySimExtCtrl\1.BasicExps\e2_VelCtrl,再结合 OffboardCtrlsAPI 中的混合控制接口进行扩展。
SLAM 定位实验中,为什么没有 GPS 信号?
SLAM(同时定位与建图)定位实验通常不使用 GPS 信号,主要是因为室内环境下 GPS 信号易被遮挡、精度不足,而 SLAM 更强调基于激光雷达、摄像头、IMU 等传感器的自主定位与建图能力。实验中,SLAM 依赖这些传感器获取环境信息,以实现高精度定位和地图构建,从而避免对 GPS 的外部依赖。
在室外场景下,可通过融合 GPS 与 SLAM 或使用 RTK-GPS 等方式弥补,但 SLAM 的核心优势仍然在于无 GPS 环境下的鲁棒性和精确性。
其他信息与支持¶
如何获取技术支持?
- 邮箱:service@rflysim.com
- QQ 技术交流群:

- 微信技术交流群:

RflySim 是否开源?
RflySim 工具链的 Python SDK、部分例程代码开源。核心仿真软件(CopterSim、RflySim3D)为闭源免费使用。