移动平台起降(船舶、卡车等)

Plane 4.2 固件支持 VTOL 与 QuadPlanes 在移动平台上起飞和着陆。VTOL 起飞和着陆将跟踪平台的运动,使其保持垂直于起飞/着陆垫,着陆将提供跟踪停靠徘徊点和受控角度接近,以避开载具上层建筑或其他障碍物。本文将介绍如何设置和使用该功能。

所需设备

要使用该功能,您需要在着陆平台上设置一个信标。该信标应基于运行 ArduPilot Rover 固件的 ArduPilot (飞行)控制器。您可以设置 框架类别 将信标(飞行)控制器上的参数设置为 "2",使其成为一艘 "船";或设置为 "1",使其成为一辆卡车,以便地面站显示正确的图标。信标将广播其位置,以便 QuadPlane 跟踪其移动的 HOME 位置,类似于 旋翼飞行器的跟踪模式.

../_images/ship-landing.jpg

信标系统需要以下设备

  • 一个可靠的偏航源。将双 F9P GPS 与 移动基线偏航 如果移动平台会导致指南针出现问题,则建议使用"......"。

  • 设置遥测无线电,以便飞机可以看到信标(飞行)控制器发出的 GLOBAL_POSITION_INT mavlink 信息。有多种方法可以实现这一目的,请参阅下文有关无线电设置的部分

  • 信标需要一个与飞机和 GCS 不同的 mavlink 系统 ID。您可以使用 SYSID_THISMAV 参数。在下面的示例中 SYSID_THISMAV = 17,已经设定。

  • 信标可以偏离实际着陆位置。应先放置信标以获得最佳无线电性能,然后再根据以下说明设置相对于信标的实际着陆位置。

以下是信标设置的范例(由 FreeSpace Operations 和 Offshore Aviation 提供):

../_images/freespace-beacon.jpg ../_images/offshore-aviation.jpg

遥测

遥测系统需要具备以下能力

  • 允许地面站看到信标和飞机发出的 MAVLink 数据包

  • 允许飞行器看到信标发出的 MAVLink 数据包(飞行器唯一需要的信标数据包是 GLOBAL_POSITION_INT 信息)

有几种方法可以设置这种类型 遥测:

  • 带有组播网络的 WiFi

  • 具有网状功能的遥测无线电

  • 使用 GCS <-> 载具和 GCS <-> 信标的任何一种远程尝试,设置 GCS 从信标向飞行器转发 GLOBAL_POSITION_INT 数据包(例如,MAVProxy GCS 可以通过将 fwdpos 设置为 TRUE 来做到这一点(即在命令行中键入 "set fwdpos true")。

对于具有网格功能的无线电设备,您可以使用三个 RFD900x 无线电设备,并将无线电设备设置为广播。 RFD900 无线电调制解调器)

您也可以使用 RFD900x 继电器固件,该固件来自 这里 将 GCS 设置为 NODE=1,将信标设置为 NODE=0,将飞机设置为 NODE=2。

固件

您需要 ArduPilot 飞机 4.2 或更高版本

Lua 脚本

飞船着陆功能位于 LUA 脚本.您需要使用 plane_ship_landing.lua 脚本,该脚本来自 这里

需要将此脚本放到飞机 microSD 卡上的 APM/scripts 目录中。

该脚本还创建了几个新的 SHIP_ 需要设置的参数(见下文)。

参数设置

飞机

请注意,您需要刷新参数并重新启动才能使其全部生效。参数 SHIP_ENABLE, 船陆角度SHIP_AUTO_OFS_n 参数将在脚本正常运行时出现。

灯塔

陆地角度

您可以选择飞机接近飞船的角度。默认角度为 船陆角度 = 0 表示从飞船后方着陆。90 表示飞机从左侧接近船只。数值为 -90 表示飞机从右侧接近。数值为 180 表示飞机从船的前方接近着陆。

您应该选择 船陆角度 值,以避开船上的障碍物,如桅杆。角度的选择还应该考虑到,如果需要放弃着陆,笔直向前飞行会给障碍物留出足够的空隙。

信标信息

当飞机可以看到信标位置时,就会打印出类似这样的 GCS 信息:"有信标"。

如果失去与信标的连接(3 秒后),您将看到一条 GCS 消息 "Lost Beacon"(信标丢失)。

如果在信标不工作的情况下尝试上膛,也会出现上膛失败。

着陆偏移

为以下参数设置正确的值非常重要 FOLL_OFS_X, FOLL_OFS_YFOLL_OFS_Z 飞机上相对于信标的着陆点。这些值的单位为米,格式为前右下。设置这些值的最简单方法是在信标正常工作的情况下将飞机置于正确的着陆位置,然后设置参数 SHIP_AUTO_OFS 为 1。当该参数设置为 1 时,飞船着陆 lua 脚本将计算出正确的偏移值,并将其设置在 FOLL_OFS_X, FOLL_OFS_YFOLL_OFS_Z 价值观

这些值是

  • FOLL_OFS_X 在信标前降落的距离(在信标后降落时使用负值)

  • FOLL_OFS_Y 航标右侧的着陆距离(左侧为负值)

  • FOLL_OFS_Z 在航标下方着陆的距离(使用负值在航标上方着陆)

当信标处于激活状态时,您应该看到 GCS 上的 "主页 "图标移动到与着陆位置相匹配的位置。在飞行过程中,"居家 "位置会不断更新,这为您在着陆前确保信标正常工作提供了一个好方法。

建议设置方法 SHIP_AUTO_OFS = 1 用于在每次飞行前获取位置。请仔细查看设置该参数时给出的信息(使用 MissionPlanner 中的 "信息 "选项卡):

设置跟踪偏移(-10.82,3.29,0.46)

该信息确认已计算出 X、Y 和 Z 偏移量。请检查它们是否合理,并密切关注 Z 偏移。如果得到的 Z 偏移不准确(即与信标和飞机之间的实际高度差相差很远),则可能需要重新启动信标和/或飞机,以应对 GPS 高度漂移。

起飞程序

何时 SHIP_ENABLE = 1 且飞机可以看到信标,则自动 VTOL 起飞将使用速度匹配,因此飞机在上升时将保持相对于信标的速度。只有在自动模式下作为任务项目的 VTOL 起飞才会进行速度匹配。

暂停位置

舰船着陆的一个关键部分是 "停止位置"。停机位置是飞机在等待飞行员通过移动油门杆(见下文油门杆信息)发出着陆命令时的停机位置。

搁置位置基于几个标准:

  • RTL_RADIUS 米(负数表示逆时针空转,正数表示顺时针空转)。如果 RTL_RADIUS 为零,则 WP_LOITER_RAD 参数。

  • 船陆角度 参数,用于控制飞机接近飞船着陆的角度。数值为零表示从飞船后方接近。停机徘徊位置的设置将使圆的切线与信标着陆点相交。

  • Q_TRANS_DECEL 参数,该参数决定飞机减速的速度

  • 船速、风速和飞机速度

下面是一个例子 船陆角度 为 -45 和 RTL_RADIUS 为 -100:

./_images/landing-angle-zero.png

下面是一个例子,使用 船陆角度 0 和 RTL_RADIUS 第 100 页:

./_images/landing-angle-45.png

着陆程序

准备降落时,可以将飞行器切换到 RTL 模式。在 RTL 模式下,飞行器将飞向着陆地点(着陆前,您可以通过 GCS 上的 "主页 "图标看到着陆地点,该图标会随着信标移动)。

飞机最初将接近 "关闭 "位置。停机位置的高度由 RTL_ALTITUDE 参数(以着陆点上方厘米为单位)。该参数的理想值为 9000 左右,即着陆点上方 90 米处。

下面的描述将假定 船陆角度 = 0 表示从信标后面着陆。进场和着陆按该参数值旋转,单位为度。以 船陆角度 = 0 时,锁定位置将位于信标的后方和上方。距离取决于信标速度、风速和 Q_TRANS_DECEL 参数(控制飞机的减速)。

一旦飞机到达停止位置,它将一直盘旋,直到油门杆降到 40% 以下。发射机上的油门杆用于控制着陆顺序和终止着陆。

油门杆控制装置为

  • 节气门在 40% 或以上意味着保持在关闭位置(在节气门在 40% 或以上时)。 RTL_ALTITUDE 信标上方高度(厘米)

  • 油门低于 40%、高于 10%是指在徘徊时下降到进场高度。进场高度由 Q_RTL_ALT 以信标上方米为单位。测试的理想值可能是 40 米。

  • 油门低于 10% 意味着一旦飞机处于 Q_RTL_ALT 并与 船陆角度 向载具移动。

着陆下降开始后,仍可终止着陆。为此 Q_OPTIONS 必须设置第 15 位才能启用 ThrLandControl。设置该选项后,您可以将节流阀瞬间升至 70% 以上,以启用节流阀控制爬升和下降速度。您可以用它来减缓下降速度或爬升速度。如果爬升超过 Q_RTL_ALT 然后,飞机将返回停机位徘徊。 Q_RTL_ALT.

您可能还想使用 Q_OPTIONS 第 17 位(EnableLandResponsition)。如果启用了该功能,您就可以在着陆时手动调整飞机的水平位置,以消除 GPS 位置误差。

简单使命

最简单的任务是单个 VTOL_TAKEOFF 航点。起飞完成后,飞机将立即切换到 RTL 模式并飞往停机位置。您应将油门杆控制在 40% 以上,以保持飞机在停机位置盘旋。这个非常简单的任务非常适合舰船操作,因为它没有特定的经纬度,所以无论舰船在哪里都可以执行。

您也可以在达到设定的起飞高度之前切换到固定翼模式,然后在飞行员控制下飞行,准备降落时,只需切换回自动模式即可 RTL 和降落。

模拟

模拟 QuadPlane 船着陆:

  1. 将 plane_ship_landing.lua LUA 脚本复制到运行模拟的 /scripts 目录中

  2. 为 Linux SITL 运行以下命令:

sim_vehicle.py -v 飞机 -f 垂直起降 --控制台 --地图 -w  /start SITL  默认 params 参数 设置 sim_ship_enable 1                              /启用 船运 模拟参数 设置 scr_enable 1                                   /启用 脚本 关于 垂直起降参数 ftp                                                /刷新 参数  看看 SCR_ params 参数 设置 堆大小 100000                           /设置 内存  足够  运行 脚本重启                                                   /重新启动  启动 跑步 脚本参数 设置 船舶启用 1                                  /启用 脚本 行动
  1. 然后设置任务项目:将 VTOL_TAKEOFF 调至所需高度

  2. 输入:

模式 自动臂 throttle                                              /起飞  开始 rc 3 1500                                                 /升起 throttle   暂缓 位置悬停

QuadPlane 将起飞,然后执行 RTL 到停机点,等到油门降低(rc 3 1000)后开始着陆。

学分

非常感谢 SpektreWorks 在飞船着陆支持方面提供的大量资助!