(7)(7.1) 使用航点和事件规划任务

文章目录

前言

[7.1.1 设置Home位置](#7.1.1 设置Home位置)

[7.1.2 视频:制作并保存多路点任务](#7.1.2 视频:制作并保存多路点任务)

[7.1.3 视频:加载已保存的多航点任务](#7.1.3 视频:加载已保存的多航点任务)

[7.1.4 使用说明](#7.1.4 使用说明)

[7.1.5 提示](#7.1.5 提示)

[7.1.6 自动网格](#7.1.6 自动网格)

[7.1.7 任务指令](#7.1.7 任务指令)

[7.1.8 任务结束](#7.1.8 任务结束)

[7.1.9 任务重置](#7.1.9 任务重置)

[7.1.10 MIS_OPTIONS](#7.1.10 MIS_OPTIONS)

[7.1.11 任务再出发](#7.1.11 任务再出发)

[7.1.12 任务大小](#7.1.12 任务大小)

[7.1.13 如何预取已存储的任务地图](#7.1.13 如何预取已存储的任务地图)

[7.1.14 偶尔你会看到一些非常大的数字](#7.1.14 偶尔你会看到一些非常大的数字)


前言

本页介绍所有类型飞行器的通用航点设置。


7.1.1 设置Home位置

对于 Copter、Plane 和 Rover,Home 点被设置为飞行器解锁的位置。这意味着如果你执行 RTL,它将返回解锁时的位置,因此请在你希望它返回的位置解锁车辆,或使用集结点设置其他返回点。

7.1.2 视频:制作并保存多路点任务

7.1.3 视频:加载已保存的多航点任务

7.1.4 使用说明

在下面的截图中,旋翼机任务开始时会自动起飞到 20m 的高度;然后飞往 WP2,途中会上升到 100m 的高度,然后等待 10s;接着飞行器会飞往 WP3(途中会下降到 50m 的高度),然后返回发射位置。到达发射位置后,飞行器将着陆。飞行任务假定发射位置设置在 Home 原点。

你可以输入航点和其他命令(更多信息请参阅下面的任务命令(Mission commands)部分)。在每一行的下拉菜单中,选择你想要的命令。列标题将发生变化,显示该命令需要哪些数据。点击地图即可输入纬度和经度。高度是相对于你的发射高度/Home 原点位置而言的,例如,如果你设置为 100m,它就会在你上方 100m 处飞行。

Default Alt 是输入新航点时的默认高度。有关高度定义,请参阅 ArduPilot 中的"理解高度"(Understanding Altitude in ArduPilot)。

验证高度是指 Mission Planner 将使用谷歌地球的地形数据来调整每个航点的理想高度,以反映下方地面的高度。因此,如果你的航点位于山丘上,如果选择了该选项,Mission Planner 将按照山丘的高度增加你的 ALT 设置。这是确保不会撞山的好方法!

完成任务后,选择"写入",任务就会发送到 APM 并保存在 EEPROM 中。你可以通过选择"读取"来确认是否如你所愿。

你可以通过选择"保存WP文件"将多个任务文件保存到本地硬盘,或通过右键菜单中的 "加载WP文件"读取文件:

7.1.5 提示

预取:你可以缓存地图数据,这样就不需要在野外访问互联网了。单击"预获取"按钮,按住 Alt 键画出一个方框,下载所选地点的图像。

网格:它允许你绘制一个多边形(右键单击),并在所选区域内自动创建航点。请注意,它不会进行"孤岛检测",也就是说,如果你有一个大的多边形,里面还有一个小的多边形,那么小的多边形不会被排除在大的多边形之外(更多信息请参阅 this)。此外,如果多边形部分向后翻了一倍(如字母 U),中间的空地也将作为飞越的一部分。

将 Home 位置设置为当前位置非常简单,只需点击输入 Home 位置上方的"Home位置",它就会将 Home 位置设置为当前坐标。

右键单击一端并选择"测量距离",即可测量航点之间的距离。然后右键单击另一端,再次选择"测量距离"。这时会打开一个对话框,显示两点之间的距离。

7.1.6 自动网格

你还可以让 Mission Planner 为你创建一个任务,这对于测绘任务等功能非常有用,因为在这些任务中,飞机只需以"割草机"的模式在某一区域上空来回飞行以收集照片。

为此,请在右键菜单中选择多边形,然后在要绘制的区域周围画一个方框。然后选择自动 WP、网格。按照对话框流程选择高度和间距。然后,Mission Planner 将生成类似下面这样的任务:

7.1.7 任务指令

Mission Planner 会提供适合当前飞行器类型的命令过滤列表,并为需要用户提供值的参数添加列标题。这些参数包括前往航点和在附近停泊的导航命令、执行特定操作(例如拍照)的 DO 命令,以及可控制 DO 命令运行时间的条件命令。


示例:LOITER_TURNS命令,带标题,指示转弯的圈数,方向和位置

所有 ArduPilot 平台支持的全套任务命令均列于 MAVLink 任务命令信息 (MAV_CMD) (MAVLink Mission Command Messages (MAV_CMD)) 中。其中包括每条命令的全名(在协议定义中定义)、支持哪些参数的信息以及相应的 Mission Planner 列标题。

Note

Mission Planner 使用的是命令全名的缩略版。例如,MAV_CMD_NAV_WAYPOINT、MAV_CMD_CONDITION_DISTANCE、MAV_CMD_DO_SET_SERVO 等命令在 MP 中分别列为 WAYPOINT、CONDITION_DISTANCE 和 DO_SET_SERVO。

7.1.8 任务结束

任务列表完成后,Copter 将无限期地在最后一个航点悬停,直到模式改变或加锁(如着陆时),Rover 将保持,但 Plane 将 RTL,除非最后一个任务项目是无限悬停或转弯,或者着陆。

7.1.9 任务重置

在旋翼机和无人车上,每次加锁时,任务都会重置到任务列表的起始位置。在固定翼上,除了在"自动"模式下不会在加锁时重置,并且会将"任务指针"停留在要执行的最后一个任务项目上之外,其他情况都是类似重置。对于所有飞行器,任何着陆任务项目在完成着陆后都不会进入下一个任务项目。可以设置 MIS_OPTIONS 参数第 2 位,以便在着陆后继续执行任务。

可以设置 RCx_OPTION 开关功能("24"),以便随时将任务项目指针重置到任务列表的起始位置。

此外,还可以使用 MIS_RESTART 参数将任务设置为在进入自动模式后重置。默认值(0)是在重新进入自动模式时恢复飞行任务。

7.1.10 MIS_OPTIONS

可以设置 MIS_OPTIONS 参数位来修改任务的运行方式:

|----------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|
| ref:MIS_OPTIONS<MIS_OPTIONS> bit | Option |
| 0 | 启动时清除已加载的任务。必须在每次启动后加载。 |
| 1 (Plane only) | 使用电池失控保护时的着陆距离计算。请参阅使用 DO_LAND_START(Using DO_LAND_START) |
| 2 | 着陆后继续。着陆完成后,将任务项目指针前进到下一个任务项目。如果没有项目,则 RTL。 |

7.1.11 任务再出发

当模式更改中断时,返回任务序列的行为将在"任务恢复时的倒带"(Mission Rewind on Resume)一节中描述。

7.1.12 任务大小

自动驾驶仪可存储的任务项目数量限制为大约 650 个航点。如果你需要更长的飞行任务,可以设置 BRD_SD_MISSION 参数,在 SD 卡上创建一个文件来存储更多的飞行任务。该文件最大可设置为 64 (kB),这将允许在一个任务中总共存储超过 4,000 个航点。

7.1.13 如何预取已存储的任务地图

7.1.14 偶尔你会看到一些非常大的数字

相关推荐
weixin_6182323040 分钟前
国产开源双响 + 闭源补端 + Agent 安全继续爆雷
安全·开源
Ai_easygo1 小时前
AI下半场_04_CSDN版_开源逆袭
人工智能·开源
冷雨夜中漫步1 小时前
DeepSeek Harness:一切皆插件的 AI Agent 框架深度解析
java·人工智能·ai·开源·github
笨鸟先飞的橘猫2 小时前
c++游戏后端开源框架学习——wukong(十、lua热更新)
c++·游戏·开源
vipjx12 小时前
2026最新解决:PanDownload账号限速、下载出错?百度网盘不限速修复实录
开源
ONLYOFFICE2 小时前
微软365停止支持,如何实现无痛切换?
microsoft·开源·onlyoffice
DevHub3 小时前
电视盒子刷 Armbian 教程:30 元旧盒子变 NAS 跑 Docker,200+ 机型可刷
linux·嵌入式硬件·docker·容器·开源·电视盒子
字节跳动的猫3 小时前
开源电商系统选型观察|2026 三款可私有化部署电商框架技术评估
开源
小小龙学IT3 小时前
Google Test(gtest/gmock)开源 C++ 单元测试与 Mock 框架完全指南
c++·单元测试·开源