X-Plane 循环模拟硬件

备注

已归档,不再支持

本文将介绍如何设置 X-Plane 循环模拟硬件.

备注

该模拟器专门针对飞机。

概述

在配置选项卡中选中 "高级视图 "时,模拟选项卡在顶部图标行上可见。

../_images/Capture__2_.png

如何使用 X-Plane 设置全硬件在环仿真

../_images/Xplane1.jpg

利用 APM 很容易创建一个功能强大的 "环路中的硬件 "模拟器,飞行模拟器可以利用传感器和 GPS 数据 "欺骗 "APM,就像在飞行中一样,然后 APM 据此驾驶飞机。

整体设置是这样的

../_images/X-Plain-Sim1.jpg

设置

  1. 下载 X-Plane 10 飞行模拟器如果您还没有这个软件的话。演示版是免费的,但十分钟后就会自动停止。值得一试 购买完整版只需 29.99 美元。我们支持 10.x 版本。

  2. 将 HIL Simulations 版本的 APM 软件加载到Mission Planner地面站中(下图红圈部分;选择要模拟的飞机的版本)。

  3. 如果尚未进行设置,请在Mission Planner地面站固件页面上按下 "APM 设置",这将打开另一个对话框。按照对话框中 "重置"、"无线电输入 "和 "模式 "选项卡上的说明进行操作。然后就可以进行模拟了!

../_images/missionplannerHIL1.jpg

连接 APM 和 X-Plane

Mission Planner地面站将作为您连接 X-plane 的桥梁,并将 APM 串行端口连接的输出发送到飞行模拟器。

注意:如果您使用的是 Mac,可以使用基于 Perl 的解决方案(如果您喜欢 Perl,也可以在 Windows 上使用)。下面是你需要的东西: X-Plane.pl

X-Plane 设置

X-Plane 通过网络接口与 Flight Planner 进行通信。因此,您可以在不同的电脑上运行 X-Plane 和 Flight Planner。如果 X-Plane 在速度较慢的计算机上运行,这将很有帮助。帧频非常重要。

您可以在 X-Plane 中选择任何飞机,但就我们的目的而言,最逼真的飞机是 PT-60 遥控飞机。这些截图显示了您需要在 "设置菜单 - 数据输入和输出 "中进行的必要设置:

../_images/Xplane_menu1.jpg ../_images/mavlinkhil1.jpg

您可能还想打开在屏幕上显示的帧频。

在 Xplane 的 IP 屏幕上,将 UDP 数据端口更改为 49005,如下图所示。(Mission Planner地面站也有一个高级 IP 设置对话框,但请保留默认值 49000。49005 是 Xplane 输入的 UDP 端口,49000 是Mission Planner地面站输出的 UDP 端口)。

../_images/xplane2.jpg

如果在与 APM Mission Planner 相同的计算机上运行 X-plane,则输入环回 IP 地址 (127.0.0.1),如上图所示。如果在另一台计算机上运行 X-plane,请在此处输入另一台计算机的 IP 地址(例如 192.168.1.1)。

飞行计划设置

现在可以运行模拟了。启动Mission Planner地面站,选择分配给 APM 的 COM 端口,并将 115200 波特作为速度。单击 "模拟 "选项卡,您将看到以下屏幕:

../_images/missionplannersim.jpg

如果使用的是 X-Plane 10.x,则必须选中此处显示的 "XPlane 10 "复选框:

./_images/xplane10.png

如果您在与 X-Plane 相同的计算机上运行 APM Mission Planner,那么默认 IP 设置应该没问题。但如果您有疑问,可以检查 "高级 IP 设置"。如图所示,IP 地址应为 127.0.0.1,端口应为 49000。如果您在另一台电脑上运行 X-plane,请在此处输入另一台电脑的 IP 地址(例如 192.168.1.2)。无论哪种情况,端口都应为 49000。

选择 "模拟链接开始/停止 "后,如果 APM 已连接且 Xplane 正在运行,您应该会看到Mission Planner地面站模拟屏幕上充满了数据。

打开发射机,检查与接收机的连接。(请记住,如果您使用的是 APM 1,则必须将电调和锂电池插入 APM 的 RC 引脚,以便为 RC 接收机供电;而 APM 2 则不需要这样做,因为无线电是由 USB 供电的)。当您移动摇杆时,您应该可以在飞行计划模拟器窗口中看到 APM 输出的变化。

首次测试时,请将三个遥控切换开关模式设置为手动、稳定和 RTL。您可以通过Mission Planner地面站的 MAVLink 设置进行设置。连接完成后,在Mission Planner地面站中点击 control-G,进入设置界面,在这里可以找到模式设置。

飞行测试

现在使用遥控发射器在模拟器中驾驶飞机。首先,按下 "C "键,这样您就可以近距离和从侧面观察飞机。尝试遥控发射机上的每个摇杆,确保控制面在手动模式下方向正确。如果不对,请在遥控发射机上反转,就像使用普通遥控飞机一样。

现在您可以尝试飞行了。在 Xplane 中重新载入飞机,按 "Shift-8 "键,以便从后面看到飞机,然后按 "b "键松开刹车。飞机应该会开始向前移动。您可以在地面上用舵杆操纵飞机。一旦速度加快,稍稍抬高升降舵即可起飞。您应该可以像遥控飞行模拟器一样驾驶它。

如果飞行顺利,请尝试将拨动开关切换到稳定模式。飞机应立即开始平飞。如果飞机颠倒飞行,您需要将发射机上 SIM 模式的副翼反转。潜水也是如此。

如果稳定效果良好,则尝试 RTL。飞机应返回跑道起点,并在 100 米处盘旋。

完成后,尝试输入一些航点并执行自动飞行任务。在Mission Planner地面站中读取存储的航点,然后让它重置原点到存储的位置(现在将是您正在飞行的 Xplane 模拟器中的机场)。点击添加几个航点,然后切换到自动飞行模式观看表演!

一般来说,加载和运行所有内容的正确顺序如下:

  1. 使用Mission Planner地面站加载模拟版本的 APM 代码并进行设置。

  2. 启动 Xplane。初始化后,当飞机停在地面上时,按 "a "键查看后视图,然后按 "p "键暂停。

  3. 启动Mission Planner地面站,为 APM 板选择合适的端口和波特率,然后连接 APM。

  4. 在Mission Planner地面站模拟选项卡中,单击 ArduPilotSim 中的按钮进行连接。您应该会看到输出字段中出现数值。将 TX 模式开关切换到手动位置,并验证输出是否与 TX 摇杆一起移动。

  5. 确保油门杆向下。

  6. 切换到 Xplane。准备就绪。点击 "p "键取消暂停。点击 "b "键解除刹车。推进油门,起飞!

说明

  • 我一直在 Xplane 中使用原版 PT-60,效果不错。我建议巡航空速为 15 米/秒。

  • PT-60 有一个怪癖,就是在地面上颠簸得很厉害,一不小心就会发生螺旋桨撞击,然后模拟发动机熄火,这真的很烦人。如果发动机停转,请重新装载飞机。握住俯仰杆进行适度爬升,然后全油门加速。

  • 请记住,APM 总是会自动将其 "原点 "设置为机场,在这种情况下就是您将 Xplane 设置为从哪个机场开始。它会覆盖您在Mission Planner地面站中设置的任何 "原点"。如果您希望模拟飞行从其他机场开始,则必须从 Xplane 的 "位置 "菜单中选择。您只能选择提供的机场,而不能选择世界上任何您想飞的地方。

  • 如果您想使用代码并通过 Arduino 加载它。

    而不是Mission Planner地面站中的预编译十六进制文件。您只需将 APM_config.h 文件修改如下:

#define HIL_MODE HIL_MODE_ATTITUDE

HIL_MODE_SENSORS 目前(2012 年 1 月)无法工作。HIL_MODE_ATTITUDE 通知 Plane 飞机的姿态,但不通知加速度或滚动率。HIL_MODE_SENSORS 原本是要将低层次的物理信息注入到真正的传感器代码中,从而(希望)从中得出相同或类似的姿态数据,以及更多来自气压计等的信息。

软件在环(SITL)仿真在此基础上更进一步,模拟 Arduino 寄存器并尽可能在最低级别注入传感器信息。因此,如果您想使用最真实的输入进行模拟,它是更好的选择。

错误信息和修复

  1. 无法打开串行端口:未选择 COM 端口或端口正在使用中。您是否打开了 APM 的终端?请注意,任务计划程序会在找到每个端口时加载连接窗口的 COM 端口菜单。如果 USB 驱动程序连接失败,没有将端口添加到 Windows 中,则该菜单将缺少实际端口或默认为其他端口。

  2. 套接字(IP)设置问题。您是否已经打开了这个程序? : 您运行的另一个程序正在使用 IP 端口,并与 Xplanes 和 APM Planner 之间的数据通信发生冲突。

  3. Xplane 数据问题 - 您需要 DATA IN/OUT 3、18、19、20:请重新进行设置并确保勾选了所有复选框。您可能需要重新启动 X-Plane。

  4. 增益错误: 模拟器的一个增益数字无效。

  5. 没有 SIM 卡数据:ArduPilot Mega Planner 无法从 Xplane 接收任何数据。请检查您的 Xplane 设置。

  6. 无线电无法控制--你按下摇杆,什么都不会发生。您的 PID 设置是否为零?您是否设置了无线电输入?配置默认值可能不适合您的无线电。请查看最小、最大和微调数字,如有必要,请使用任务计划程序或命令行设置模式中的无线电设置模式。

  7. 飞行控制有偏差。您需要将摇杆推得很远才能驾驶飞机。检查 APM 中的无线电设置。是否配置了无线电?请参见 (7)。

调试

  1. 只有在与 APM 建立有效连接后,屏幕上的状态详情才会更新。

  2. 打开终端,验证所看到的内容。如果文本可读,请转到下面第二点,如果不可读,请看第一点

    1. 单击 "连接 "后,文本框中应打印出 APM 标头。如果没有,可能是端口或波特率不正确。

    2. 在 APM Planner 中打开终端验证设置,看它会打印出什么。它应该从 APM 头文件开始,一直打印出 AAA????。如果您没有看到 AAA,那么您可能上传了错误的固件(非模拟模式),或者如果您是手动加载代码,则可能没有对以下内容进行必要的更改 APM_Config.h 定义

  3. 请尝试在选择模拟后重新进行无线电校准,并确保在模拟选项卡中将油门增益设置为 10,000。

使用 XPlane 编写 Python 脚本

本节介绍如何使用 Python 为固定翼飞机编写一些基本的杂技动作脚本(包括左滚、右滚和大部分环形动作)。说明来自教程 固定翼杂技脚本.

  1. 您需要一个基于 python 的脚本。你可以从我编写的脚本开始。附在这里。"simple_script.txt"

  2. 打开 X-plane、APM Mission Planner地面站(MP)和脚本,让飞机在空中飞行,按 "p "键暂停。按 "a "进入追逐视图(按 "w "返回飞机),按"-"和"="放大或缩小飞机视图。

  3. 在 MP 中点击 "Flight Data(飞行数据)"按钮,然后选择抬头显示器下方的 "Actions(操作)"选项卡。

  4. 点击 "脚本 "按钮。这将弹出另一个窗口,其中有预载的脚本(用于 Copter)。切换到已打开的 "simple_script.txt",全选然后复制。

  5. 转到 python 脚本窗口,将 "simple_script.txt "粘贴到 python 脚本窗口。先不要关闭。

  6. 进入 X-plane,再次按 "p "键取消暂停。

  7. 返回 python 脚本窗口并关闭。这将在您点击弹出窗口中的 "是 "时触发脚本的执行。

  8. 注意看飞机做一些翻滚动作,以及大部分的回旋动作。