地形跟踪(在自动、引导等模式下)

在几乎所有自主模式下,旋翼飞行器都支持 "地形跟随 "功能 自动, 指导, RTL土地.该功能允许载具爬升或下降,以保持与地形的指定距离。 朝下的激光雷达或声纳 或从 SRTM SRTM 数据(又称地形高度数据)由地面站使用谷歌地图等地图服务提供,或存储在(飞行)控制器 SD 卡的 "地形 "子目录中。有关如何使用和存储 SRTM 数据的详细信息,请参阅网站 平面地形见下页

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

备注

位置悬停, PosHoldAltHold 模式还支持低空地形跟踪,称为地表跟踪。请参考 表面跟踪 维基页面。

设置任务以使用地形数据

  • 如果依靠 朝下的激光雷达确保按此处所述进行设置

  • 如果使用 GCS 提供的地形数据集,则 TERRAIN_ENABLE 参数为 1

  • 使用最新版本的Mission Planner地面站(或其他支持地形跟踪的 GCS),在飞行计划屏幕上将高度类型设置为 "地形"。设置完成后,所有包含 "高度 "字段的飞行任务指令都将被解释为 "地形以上高度"。

  • 将任务上传到飞行器,然后像在正常情况下一样执行任务。 自动

    ../_images/terrain_mission.png

警告

不要设置 EK3_SRC1_POSZ 到测距仪。该参数应保持默认值。

不要设置 ek3_rng_use_hgt 参数。该参数应保持为"-1"。

地形数据来源

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

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

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

此外,您还可以使用以下方法下载任何预期飞行区域的地形数据图块集 网络工具.

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

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

您还可以从以下网站下载整个大陆或单个地砖的 .zip 文件 这里.请注意,ArduPilot 4.0.x 和 4.1.x 有不同的图块集。使用 ArduPilot 4.0.x 的 "continent"/"tiles "文件夹,或使用 ArduPilot 4.1.x 的 "contentsapm41"/"tilesapm41 "文件夹。

警告

在 Plane 4.0.6、Copter 4.0.4 和 Rover 4.1 中修复了下载的地形数据文件中的一个长期存在的错误,该错误偶尔会导致地形数据丢失,即使应该已经下载。当连接到兼容的 GCS 时,会自动重新下载。不过,如果您依赖某个区域的 SD 地形数据,但不打算在飞越该区域时连接到 GCS,或者该区域不是任务的一部分,则应使用上述实用程序下载该区域的数据,或从链接的瓦片数据存储库中下载,并将其放在 SD 卡的 Terrain 目录中。

警告

ArduPilot 4.0.x 和 4.1.x 使用不同的地形瓦片集。从 4.0.x 升级到 4.1.x 时,SD 卡上的任何地形图都需要重新下载。对于已加载任务和/或家庭位置所覆盖的区域,当您的 GCS 连接到互联网时,这将自动发生。否则,您可以设置 地形 为 50,以继续使用旧的瓷砖组。

在 RTL 和陆地过程中使用地形高度

设置 跟踪 参数设置为 1,以便在 RTL土地 飞行模式。如果设置了该模式,载具将解释 RTL_ALT 作为海拔高度高于地形的飞行器,这意味着它在返航时通常会翻山越岭。同样,"陆地 "号也会减速到 LAND_SPEED (通常为 50 厘米/秒)。目前不建议设置此参数,因为会出现下面提到的边缘情况,即载具无法在 "驶离地形 "期间检索地形数据。 RTL.在这些情况下 RTL_ALT 将被解释为另一个以上的家。

无地形数据时的故障安全保护

如果飞行器正在执行需要地形数据的任务指令,但在两秒钟内无法获取地形数据(通常是因为测距仪失灵、超出范围或地面站无法提供地形数据),则飞行器将切换到 RTL 模式(如果正在飞行)或解除模式(如果正在着陆)。

请注意,在这种情况下,由于它无法立即访问地形数据,它将执行正常的 RTL,解释 RTL_ALT 作为原点以上的海拔高度,无论 跟踪 是否设置为 "1"。

用户报告的一个常见问题是,当飞行器在地面上时,当用户切换到自动模式启动任务时,飞行器会立即解除警报。原因是测距仪报告的高度(可从 MP 的 "飞行数据 "屏幕的 "状态 "选项卡的 sonar_range 字段进行检查)比 RNGFNDx_MIN_CM 短(例如 RNGFND1_MIN_CM)参数,这意味着测距仪在地面上报告 "不健康"。解决方法是降低 RNGFNDx_MIN_CM 值(或许为 "5")。

地形间距和精度

"这款" 地形间距 参数控制从地面站请求地形高度时使用的网格大小(使用激光雷达时不使用)。默认值为 100 米,但减小到 30 米可能会提供更好的精度,但代价是地面站和(飞行)控制器之间的遥测流量会增加,SD 卡上的文件存储空间也会增加 9 倍,但前提是地面站使用的是具有该分辨率的服务器。MavProxy 和 Mission Planner 目前没有这样的功能。此外,如果飞行器移动速度非常快,(飞行)控制器可能无法快速检索和缓存数据,从而无法实际使用增加的分辨率。因此建议您使用 地形间距 100 米。

如果地面站没有飞机所要求分辨率的地形数据,那么地面站将根据需要进行内插,以提供所要求的网格大小。

地形精度

SRTM 数据库的精度在地球表面各不相同。一般精度在 10 米左右,但一位开发人员注意到,在滑雪山顶的精度高达 35 米。因此,地形跟踪适用于飞行高度在 60 米或以上的飞机。如果要在较低高度进行非常精确的地形跟踪,建议使用 朝下的激光雷达或声纳.

警告

在规划包含不同地表以上高度指令的任务时,请记住飞行器的地表以上高度将在航点之间逐渐变化。也就是说,当飞行器开始飞往下一个航点时,不会立即爬升或下降到新的目标海拔高度。

在实际操作中,最好将初始起飞指令的高度设置得足够高,以便清除障碍物。

../_images/terrain-warning-diagram.png

使用激光雷达在 2 米处执行任务的示例