用无声之翼翱翔海丰县¶
寂静之翼》(Silent Wings)是一款专门针对风帆飞机的模拟器。尽管现在已经有些过时,但截至 2019 年 4 月,它仍然提供了一些最精确的帆船飞行模拟,以及与之相关的大气现象细节,如热生命周期、热升力和脊升力在地形上的分布、它们对天气的依赖性等。这使其成为测试自主翱翔各个方面的绝佳工具。
概述¶
本文档介绍如何使用 Silent Wings 运行 ArduPlane 软件在环(SITL)仿真。无论您是在为特定类型的升力(如热升力)开发翱翔控制器,还是在开发越野帆机导航策略,您都会发现在仿真中测试您的方法非常有用。对于远距离导航来说尤其如此,因为在开放世界中对其进行评估既困难又昂贵。SITL 测试允许您将 ArduPlane 代码编译成一个特殊的二进制文件,该二进制文件可以在您的普通计算机上运行,接收来自在同一或不同计算机上运行的模拟器的传感器数据,并将输入发送回模拟器以控制模拟帆机。
以下说明已在 Windows 10 上进行了测试。
先决条件¶
安装 寂静之翼 和至少一个 风光包 . 您可以使用为期两周的演示版来试用这些说明。我们建议从挪威风光包开始;我们的示例任务使用的是弗里亚-利勒哈默尔-斯塔莫恩地图。
配置 Silent Wings 以远程发送传感器数据和接收控制输入。 为此,请打开
%USERPROFILE%\AppData\Local\VirtualStore\Program 文件 (x86)\Silent Wings\Silent Wings\data\options.dat
并将其中的 "UDP 输出协议 "和 "远程控制协议 "部分替换为#--------------------- # UDP 输出协议 #--------------------- 使用输出 UDP = 真 输出 UDP 协议 = 二进制 输出 UDP 地址 = 本地主机 输出 UDP 端口 = 6060 输出 UDP 速率 = 90 #------------------------- # 远程控制协议 #------------------------- 使用远程控制 = 真 远程控制端口 = 6070 远程控制模式 = UDP
另外,设置
刷新屏幕 = 60
请注意,在
C:\Program 文件 (x86)\Silent Wings\Silent Wings\data
.这不是我们需要的。output_udp_rate = 90 的值对 screen_refresh = 60 很有效。在调整后者时,可能还需要调整前者,以便更流畅地控制。
安装 Mission Planner地面站, 地面控制站(GCS)软件。 其他 ArduPilot GCS 软件也可以使用。
构建 ArduPlane 的 SITL 版本。 为此,首先 按此处所述安装和配置 Cygwin.就翱翔 SITL 而言,您不需要执行翱翔 SITL 中的步骤。 在 Cygwin 中设置目录/路径 和 安装所需的 Python 软件包 但做了也无妨。那就做吧:
打开 Cygwin 终端(如果已经打开,则重新打开)。
如果您已经拥有 ArduPilot 的源代码,只需在 Cygwin 终端切换到本地 ArduPilot 代码库的根目录即可。这些说明假定 ArduPilot 目录。
如果您还没有 ArduPilot 的源代码,可以通过在 Cygwin 中运行以下命令序列来获取:
git 复制 --递归-子模块 https://github.网/ArduPilot/ardupilot.git CD ardupilot
运行
./waf 清洁 ./waf 配置 --官方 坐标 ./waf 飞机
运行 Silent Wings SITL¶
发射无声之翼 无声的翅膀 飞行计划器 部分,在 飞机 选项卡选择一个帆板。请注意,每个帆板模型都有不同的特征,ArduPlane 需要该模型的参数(.param)文件才能了解这些特征。我们提供了一个 Rolladen-Schneider LS-8b 参数文件这就是我们推荐的起步帆船。
设置天气和空中交通状况 天气 和 交通 标签页。在 地点 选项卡,选择地图和起始位置,并记下其 GPS 坐标、高度和航向。启动 SITL 时需要这些信息。然后点击 现在就飞 按钮。游戏将以暂停状态开始。请暂时保持暂停状态。
启动 ArduPlane SITL。 为此,请打开 Cygwin64 终端,切换到 ArduPilot 软件源的根目录,然后运行
构建/坐标/箱柜/arduplane --模型 无声翼 --首页 <;纬度>;,<;长>;,<;选一>;,<;打呵欠>;
例如
构建/坐标/箱柜/arduplane --模型 无声翼 --首页 60.8805696600,11.6695970300,216,145
给你 <lat>; 和 long>; 是您在启动 Silent Wings 时记下的起始位置的经纬度,如果纬度是南纬或西经,则加上"-"号。 但是,"<alt> "应该是起始位置的地形海拔高度,即使您选择在空中起始。 要确定它,请将任务开始时您在 "静默之翼 "窗口左上角看到的高度(为 MSL)减去您之前记下的起始高度(为 AGL)。结果就是 alt>; 您需要将其传递给 SITL。因此,请注意上面截图中的任务、 alt>; =216,而不是 800。 <偏航/航向>; 是您为 "静默之翼 "任务选择的初始航向。
提示
我们建议起始地点的地形海拔高度接近于零,因为如果模拟飞行器的高度低于起始地点的海拔高度,ArduPlane 的 SITL 版本偶尔会出现怪异行为。 alt>;.
此时,SITL 应在等待与地面控制站(Mission Planner地面站)的连接:
启动Mission Planner地面站,连接操纵杆,然后 在Mission Planner地面站中设置操纵杆 来配置其滚轴、俯仰轴和偏航轴(Silent Wings 将忽略其他轴)。
提示
不幸的是,Mission Planner地面站关闭后似乎会忘记操纵杆的设置,因此每次重启Mission Planner地面站或重新连接操纵杆时都必须重新执行此步骤。另外,您也可以尝试使用键盘控制飞机。
让Mission Planner地面站与 Silent Wings 和 ArduPlane SITL 建立连接。 为此,请在Mission Planner地面站右上角选择 TCP,点击 连接在弹出的窗口中输入运行 Silent Wings 的 IP 地址(如果在同一台机器上,则为 127.0.0.1),并在下一个窗口中输入 5760 作为端口号。等到 连接 Mavlink 窗口会消失,所有参数都会复制过来,Mission Planner地面站 HUD 中的所有校准信息也会消失。您应该看到Mission Planner地面站的 HUD 报告说 GPS 已锁定,空速传感器读取的值约为 0。
现在,ArduPlane 就可以在 Silent Wings 中控制飞机了。
通过Mission Planner地面站将所选静音翼帆板的参数文件载入 ArduPlane。 (只有第一次在 Silent Wings 中飞行特定的帆船模型时才需要执行此步骤)。 为此,请访问Mission Planner地面站的 配置/飞行稳定调整 选项卡,选择 完整参数列表 点击左侧的 从文件加载 右侧,找到参数文件,然后单击 写参数 右侧。之后,在 Cygwin64 终端中终止 ArduPlane SITL,关闭 Mission Planner,并重复步骤 2 和 4。
如果需要,可在Mission Planner地面站中加载任务。 为此,请访问Mission Planner地面站的 飞行计划 选项卡,点击 加载 WP 文件 右侧,找到任务文件,然后单击 编写 WP.我们为 挪威斯塔莫恩附近的试验任务.
开始飞行 现在,一切准备就绪,可以开始飞行了。在 Silent Wings 窗口中,点击 "p "键取消模拟。您应该会看到Mission Planner地面站 HUD 中的空速、高度和 AHRS 读数与 Silent Wings 右上角和左上角的读数非常接近。要让 Silent Wings 的帆船跟随载入的任务飞行,请将飞行模式切换为 载具 在Mission Planner地面站中。
衷心感谢 萨姆-泰伯 和 Silent Wings 的 Thomas Sevaldrud 在此功能开发过程中提供的帮助,以及 杰克-朗格朗 宾夕法尼亚州立大学提供了宝贵的见解。