地形跟踪

如果您的(飞行)控制器板(如 Pixhawk)具有本地存储功能,您就可以在固定翼飞机上使用自动地形跟踪功能。本页介绍了地形跟踪的工作原理、启用方法和限制条件。

如果使用 Copter,请参阅 旋翼飞行器专用地形,请按此处说明操作.

../_images/Terrain_TitleImage.png

工作原理

地形跟踪的工作原理是在(飞行)控制器的 microSD 卡上维护一个地形数据库,该数据库以海拔米为单位提供地理位置网格的地形高度。在(飞行)控制器上,该数据库存储在 microSD 卡的 APM/TERRAIN 目录中。

(飞行)控制器通过 MAVLink 遥测链路向地面站请求地形数据,从而自动填充数据库。当(飞行)控制器通过 USB 连接时,这可能发生在飞行计划期间;当通过无线电链路连接时,这可能发生在飞行期间。

备注

使用此功能,可以直接通过 PC 将地形数据下载到 SD 卡中。 网络工具.见下图。

备注

只有在(飞行)控制器锁定 GPS 的情况下,数据才会传输。因此,为确保您的任务在飞行前获得地形数据(以防地面站在飞行期间无法连接和/或无法通过互联网连接获得数据),在将任务加载到(飞行)控制器时,请确保 GPS 锁定有效。

地形数据从 GCS 发送到(飞行)控制器后,会存储在 microSD 卡中,这样即使 GCS 未连接时也可以使用。这样,即使在无法与地面站通话的情况下,(飞行)控制器也可以使用地形数据执行地形跟踪 RTL(返回发射)。

在飞行过程中,当飞机接近一个新区域时,ArduPilot 代码会自动将所需的地形数据从 microSD 卡读入内存。如果使用默认的地形网格间距,内存中会保留约 7 千米乘 8 千米的区域。

除了飞机附近的地形数据外,ArduPilot 还会要求地面站提供已加载任务航点和已加载集结点的地形数据。这就确保了即使地面站无法使用,microSD 卡上的地形数据也可用于整个飞行任务。

地形跟踪飞行模式

在以下飞行模式中可使用 "机内地形跟踪 "功能:

  • RTL - 返回发射

  • LOITER - 圈出一个点

  • CRUISE - 长途航行

  • FBWB - 速度/高度维护

  • 有导航--"飞往 "航点

  • AUTO - 完全自主的任务

在 RTL、LOITER、CRUISE、FBWB 和 GUIDED 模式下,地形跟踪的使用受控于 跟踪 参数。该参数默认为关闭,因此在这些模式下不会使用地形跟踪。在 跟踪 决定启用哪种高度控制模式的地形跟随。例如,将其设置为 "10 "后,FBWB 和 AUTO 模式下的地形跟进将启用。

在 CRUISE 和 FBWB 模式下,可通过指定的 RC 开关禁用地形跟踪功能。 RCx_OPTION = 86.使用开关启用(<1200us)或禁用(>1800us)地形跟随时,当前高度将分别成为地形上方或原点上方的目标设定点。无论使用的高度基准是高于原点还是高于地形,目标高度都可以通过升降舵正常更改。

在自动飞行任务中,地形跟踪的使用是通过使用航点的参考框架逐个航点进行控制的。正常(非地形跟踪)航点有一个 "相对 "参考框架,高度是相对于原点位置指定的。地形跟踪航点有一个 "地形 "参考框架,高度是相对于地形数据库中给出的地面高度而言的。

参见 了解 ArduPilot 中的高度 高度定义。

地形跟踪的用途

当 ArduPilot 在地形变化较大的地区飞行时,地形跟踪非常有用。主要用途如下

  • 安全 RTL.在丘陵地带进入 RTL 时,能够翻过山坡而不是试图飞过山坡是非常有用的!

  • 航空摄影。 在拍摄一系列航拍照片时,在地面上空保持稳定的高度非常有用

  • FPV 飞行 在 "巡航 "模式下飞行 FPV 时,保持与地面的恒定高度非常有用,这样您就可以花更多时间欣赏美景,减少躲避山丘的时间。

地形数据来源

地面站通常负责提供原始地形数据,并通过 MAVLink 发送给飞机。目前只有 Mission Planner 和 MAVProxy 支持下载地形所需的 TERRAIN_DATA 和 TERRAIN_REQUEST MAVLink 消息。如果您使用不同的地面站,为了下载地形数据,您需要使用这两个地面站中的一个进行连接,以便 ArduPilot 在地面或飞行中将地形数据加载到您的电路板上。一旦加载完成,数据将永久保存在 microSD 卡上。

MissionPlanner 和 MAVProxy 均支持全球 SRTM 数据库的地形数据。MAVProxy 和 Mission Planner 使用的 ArduPilot SRTM 服务器的网格间距为 100 米。除非地面控制站使用间距更小的其他服务器,否则应设置 地形间距 低于 100 米的参数无法提供更好的分辨率,只会占用 SD 卡的更多空间。

地形数据可在保存或连接已加载任务的过程中随时通过这些地面站下载,或者在飞行过程中,(飞行)控制器会在飞入尚未下载数据的区域时请求下载数据,前提是地面站能够提供这些数据。通常地面站需要互联网连接。

警告

虽然(飞行)控制器会请求获得航点和原点周围的地形数据,但如果没有连接到可以提供航路地形图的 GCS,(飞行)控制器就只能在航点的地形高程之间进行内插。见下图:

../_images/terrain-warning.jpg

如果您使用的 GCS 无法在飞行器在航点之间飞行时获取和提供地形数据,则可能需要手动加载覆盖飞行路线和/或 RTL 路径区域的地形数据。

您可以使用此功能下载任何预期飞行区域的地形数据图。 网络工具.

../_images/common-terrain-dl-utility.png

它将在地理位置周围指定半径范围内创建磁贴。然后下载、解压缩并写入 SD 卡的 APM/TERRAIN 文件夹中。

您还可以从以下网站下载整个大陆或单个地砖的 .zip 文件 这里.

地形间距

ArduPilot 地形代码有一个用户可设置的参数,名为 地形间距 用于控制网格间距,网格间距用于飞机向地面站请求地形数据。默认 地形间距 为 100 米,但用户可为专业应用设置不同的网格间距。

请注意,内存中保存的地形数据量与网格间距直接相关。如果减少 地形间距 2 倍,那么内存中保存的地形区域就会减少 4 倍。 地形间距 100 米,以防止飞机在飞行中偏离网格而无法获得数据。

如果地面站没有飞机要求的分辨率的地形数据,那么地面站将根据需要进行内插,以提供飞机要求的网格大小。目前,MAVPRoxy 和Mission Planner地面站只能提供最小间距为 100 米的数据。

地形精度

SRTM 数据库的精度在地球表面各不相同。一般精度在 10 到 20 米左右,但有些地区会更差。因此,地形跟踪适用于飞行高度在 60 米或以上的飞机。不建议在低空飞行时使用地形数据。

以下地形的设置

按照以下步骤设置固定翼飞机的地形

  • 确保已加载 Plane 3.0.4 或更高版本

  • 确保安装了最新的 MissionPlanner(1.3.9 或更高版本)

  • 设置 TERRAIN_ENABLE 为 1 和 跟踪 至 1

  • 在锁定 GPS 时通过 USB 与载具连接

  • 查看 MissionPlanner 中的 FlightData->Status 页面并查找地形状态数据:

./_images/MP-terrain.png

(飞行)控制器完成加载地形数据后,"ter_pend "将归零,"ter_alt "中将显示以米为单位的当前地形高度。ter_pend "值是(飞行)控制器等待从地面站加载的地形块数量。

地形预览

地形跟踪代码沿飞行路径 "前瞻 "当前位置,以确保飞机尽快爬升,避开即将出现的地形。前瞻的数量由 地形_lookahd 参数,默认值为 2000 米。在 "自动 "模式下,"前瞻 "也受到到下一个航点距离的限制,因此您需要确保飞行任务中没有任何航段包含飞机无法达到的爬升率。

地形前瞻中使用的爬升率基于

TECS_CLMB_MAX 参数,再加上您当前的地面速度。