# 地形跟随

Copter支持几乎所有自主模式中的"terrain follow"\*\*AUTO \*\*,\*\*Guided \*\*,恪尽职守\*\*和\*\*Land \*\*. 该特征允许机体在地形上攀登或下降以保持一定的距离,使用一个\*\*向下面对利达尔或声纳\*\*或来自[语文](https://en.wikipedia.org/wiki/Shuttle_Radar_Topography_Mission)(a各项人权数据)由地面站提供,使用谷歌地图等绘图服务,或在自动驾驶员的SD卡上存储在"火车"子目录中. SRTM数据如何使用和存储的详情,可在页后的\*\*飞机地形上找到\*\*

[中华民国主题 政治主题 政治主题](https://youtu.be/mT67QOAxuG8)

> <table class="docutils field-list"><col class="field-name"></col><col class="field-body"></col><tbody><tr class="field"><th class="field-name">宽度 :</th><td class="field-body">100%</td></tr></tbody></table>

见**常识-高度**用于高度定义。

<div class="callout info" id="bkmrk-%E8%AF%B4%E6%98%8E%EF%BC%9A%2A%2Aloiter-%2A%2A%2C%2A%2Apos">**说明**：

\*\*Loiter \*\*,\*\*PosHold \*\*和\*\*其目的在于\*\*模式也支持随后的低海拔地形,称为表面跟踪. 请参看\*\*Surface Tracking \*\*维基页面.

</div>## 建立使用Terrain数据的任务

- 如果依赖于一个面临LIDAR的向他们向下倾斜的系统,则确保它能像这里描述的那样被设置
- 如果使用GCS提供地形数据集,则该数据集为\*\*TERRAIN ENBEL \*\* 参数改为1
- 使用飞行计划屏幕上见上文最新版本的"任务规划员"(或其他支持地形后续的GCS),将高度类型设定为"列车". 一旦设定包含一个"Alt"字段的所有任务命令驰骋,将解释为高度-上方-خلشر .
- 将任务上传到机体上,并按你通常在\*\*AUTOia\*\*
    
    [![../images/terrain_mission.png](https://ardupilot.org/copter/_images/terrain_mission.png)](https://doc.yufeiaero.com/_images/terrain_mission.png)

<div class="callout warning" id="bkmrk-%E8%AD%A6%E5%91%8A%EF%BC%9A%E4%B8%8D%E5%B0%86%2A%2Aek3-src1-pops">**警告**：

不将\*\*EK3 SRC1 POPSZ \*\* 设置为 Rangefinder 。 此参数应在默认值时保留 。

不设置\*\*EK3 RNG USE HGT \*\* 参数。 此参数应保留在"-1".

</div>## 地形数据来源

地面站通常负责提供通过MAVLink发送给飞机的原始地形数据。 任务规划员,Q笙调控制,SiYi UniGCS建立起和MAVProxy支持在下载支持后地形所需的TERAIN DATA和TERAIN REQULAST全面参与MAVLink消息. 如果使用不同的地面站,为了下载地形数据,您需要使用这两个地面站中的一个连接,以便ArduPilot在地面或飞行中将地形数据加载到您的板上。 一旦加载,它会被永久保存在微SD卡上.

MissionPlanner和MAVProxy都支持全球SRTM数据库的地形数据. MAVProxy和Mission Planner使用的ArduPilot SRTM服务器有100m的网格间隔. 除非地面站使用距离更近的服务器,设置 \*\*TERRAIN SPACING \*\*低于100m的参数不能提供更好的解析度,只在SD卡上消耗更多的空间.

Terrain Data在您保存或连接这些地面站的加载任务时都会被下载,或者,如果飞行,如果自动驾驶员的飞行进入尚未下载的区域会支撑数据. 假设地面站可以提供. 地面站通常需要互联网连接。

或者,你可以下载一组地形数据瓦片,用于任何预期飞行区,使用此工具[网络工具](https://terrain.ardupilot.org/).

![../../../images/common-terrain-dl-utility.png](https://ardupilot.org/copter/_images/common-terrain-dl-utility.png)它将在一个地理位置周围为指定的半径创建瓦片。 然后可以下载它们,解析后在SD卡的APM/TERRAIN文件夹中写作.

您也可以下载整个大陆的 .zip 文件, 或从 .[这里](https://terrain.ardupilot.org/data/)。使用“大陆apm41”/“tilesapm41”文件夹。

从2024年9月20日发布的β版本开始,你可以从Mission Planner创建地形dat文件,并上传到SD卡.

- 去飞行规划师那里
- 选择带 ALT+ MouseCLICK 的区域并拖动
- 打开上下文菜单并选择 Make Terrain DAT

如果没有选择区域,则使用实际显示的区域。

如果您将 Digital Elevation Model 文件加载到 Mission Planner 中,那么生成的地形文件将用作源文件. 您可以指定5至100米之间的间隔。 (由于Ardupilot 代码中的错误, 无法允许大于 2Gbyte 的文件)

网格间距100米,对于大多数用途,特别是快速飞行机体来说,都足够. 使用较小的网格间隔往往导致不必要的SD卡存储消耗. 然而,在特定情况下,需要遵循精确的地形——例如在向地形不均匀的地形喷洒喷雾时——较小的网格间隔可能是有益的。 不要忘记将地形间隔参数与您生成和上传的网格大小相匹配.

Terrain数据文件总是作为每个一一度区域的一个文件创建,文件大小取决于间隔.

## 在 RTL 和 Land 期间使用地面高度

记得**恐怖主义**设定为 " 1 " ,以便能够使用地形数据,并允许GCS更新数据(如果互联网连接),用于当前的一般地点和计划的任务。 设定**RTL ALT 类型**至少要使用**RTL \*\*飞行模式. 如果设定, 机体将解释 \*\*RTL ALT都可以**作为高度上方的地形,而不是高于家庭高度,这意味着它一般会在返回家园的道路上爬过山丘。夙田也会减速到**陆地 SPD MS**(通常为50cm/还参加了),当它高于地形10m(而不是高于家园10m)时. 目前不建议设置这一参数,因为下文提到的边缘情况涉及机体在运输期间无法检索地形数据的情况。**RTL \*\*. 在这些情况下,\*\* RTL ALT M 的跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑具有普遍性.**爱的爱 爱的爱 爱的爱 爱的爱 爱的爱 爱的爱 爱的爱 爱的爱 爱的爱 爱的爱 爱的爱 爱的爱 爱的爱 爱的爱 爱的爱 爱的爱 爱的爱 爱的爱 爱的爱 爱的爱 爱的爱 爱的爱 爱的爱 爱的爱 爱的爱 爱 爱的爱 爱的 爱 爱的爱 爱 爱 爱的爱 爱 的爱 爱 的爱 爱 的爱 爱 爱 爱 爱 的 爱 爱 爱 的 爱 的爱 爱 爱 的 爱 爱 的 爱 爱 的 爱 的 的 冗长

此外,如果**WP RFND USE (法语)**也设定为 1, 使用测距器, 而不是在 RTL 期间使用地形数据库。 当然**RTL ALT M 电话**必须是在测距仪的操作范围内 它必须是健康的。

## 没有地面数据时的安全性

如果该机体正在执行需要地形数据的任务命令,但无法在两秒钟内检索地形数据(通常因为测距器故障、超出射程或地面站无法提供地形数据),该机体将切换为RTL模式(如果正在飞行)或解除武装(如果着陆)。

请注意,由于在这种情况下无法立即列明地形数据,它将进行正常的RTL解释。**RTL ALT M 电话**无论是高度还是高度**RTL ALT 类型**已设定为“ 1 ” 的基础是“ ” 。

用户报告的一个常见问题是,当用户换乘AU 我告诉你,在机体落地时,机体立即解除任务。 原因是射程查找器(可以从MP的飞行数据极力显示器的状态各项人权显示器的声纳 距域中检查)报告的高度比RNGFNDx MIN(例如\*\*RNGFND1 MIN \*\*)参数短,这意味着射程查找器在地面上报告"不健康". 其解决方案是降低RNGFNDx MIN值(可能为"0.05").

## 地形间距和精确度

\*\*TERRAIN SPACING \*\*参数控制从地面站请求地形高度时使用的网格大小(如果使用Lidar,则不使用). 这是默认的100m,但减少到30可能会提供更好的精度,牺牲GCS和自动驾驶之间更多的遥测流量,SD卡上9x多的文件存储空间,但只有地面站使用带有此分辨率的服务器. 马夫普罗西和任务规划师目前没有。 另外,如果机体行进非常快,自动驾驶可能无法快速嫉取和缓存数据以便实际使用增加的分辨率. 因此,建议您使用100米的\*\*TERRAIN SPACING\*\*。

对于较新的自动助理,带有1M RAM,**恐怖主义 CACHE SZ**可以这样 用于缓存地形瓷砖。 默认 12,但在STM32-H 小姐7处理器上 62.

如果地面站没有飞机要求的决议所要求的地形数据,地面站 你真是根据需要进行内插,以提供所要求的网格大小。鳏夫

## 地面精确度

SRTM数据库的精度因地球表面而异. 典型的准确度约为10米,但一名开发商注意到滑雪山峰的准确度为35米。 这使得之后 Ferrari的地形适合飞行高度在60塞族人以上的飞机. 对于在较低高度紧随其后的非常精确的地形,建议使用一个\*\*向下面向利达尔或声纳\*\*。

## 高性能自动驾驶的可选设置

- 设定**恐怖主义**改为1
- 设定**恐怖主义 攻击**至 30米,用于更精确的 AGL 计算
- 设定**恐怖主义 CACHE SZ**至 60 以加载更多瓷砖到内存( RAM)

## 警告

在规划包含不同高度-上方-地铁指令的任务时,要记住机体的高度-上方-地铁会逐渐在路标之间发生变化. 即它不会立即攀登或下降至新的目标高度-上方-地铁,因为它会从下一个方向开始.

在实际操作中,最好设定初始起飞指挥高度足够高,以清除障碍.

> [![../images/terrain-warning-diagram.png](https://ardupilot.org/copter/_images/terrain-warning-diagram.png)](https://doc.yufeiaero.com/_images/terrain-warning-diagram.png)

## 使用Lidar进行2米的示例任务

[28. https://youtu.be/r4RBP0 LQ循序渐进](https://youtu.be/r4RBP0_LQ5Y)

> <table class="docutils field-list"><col class="field-name"></col><col class="field-body"></col><tbody><tr class="field"><th class="field-name">宽度 :</th><td class="field-body">100%</td></tr></tbody></table>

---

*译自 ArduPilot Copter「Terrain Following (in Auto, Guided, etc)」· [查看原文](https://ardupilot.org/copter/docs/terrain-following.html) · CC BY-SA 3.0*