# 任务中的包裹投递(开发)

包裹投递任务是航点任务的延伸,用户可将投递包裹作为航点进行规划。

本主题解释了数据包传送功能的架构。它面向正在扩展架构(例如支持新的有效载荷交付机制)的开发人员。

备注

目前只有 夹具 可用于运送包裹。目前还不支持绞盘。

备注

有关如何设置包裹投递任务计划的详细文档,请参见 这里.设置 有效载荷发送器 模块在交付机制的文档中有所涉及,例如 夹具.

# 包裹投递架构图

包裹投递架构概述

包裹递送功能以 载具指令 及样品; 载具指令应答 留言

核心理念在于有一个实体来处理以下问题 DO_GRIPPERDO_WINCH 载具命令,执行该命令,并在确认成功发送后发回确认信息。

因为 PX4 会自动广播 载具指令 将 uORB 信息发送到配置为在 MAVLink 中通信的 UART 端口,作为 命令长 (打开新窗口) 消息,外部有效载荷就能接收并执行命令。

同样,由于 PX4 会自动翻译 命令返回 (打开新窗口) 将通过为 MAVLink 配置的 UART 端口从外部输入的信息转换为 载具命令 uORB报文,PX4就能收到外部有效载荷对成功部署软件包的确认。 导航仪 模块。

下面将对包裹递送架构中涉及的每个实体进行说明。

导航仪负责接收飞行器指令 ACK(如下所述)。接收到成功部署 ACK 信息后,导航仪会在任务块级别设置标志,以表示有效载荷已成功部署。

这样,任务就可以安全地进入下一个项目(例如航点),因为我们确信部署已经成功。

# 载具指令 ACK

我们正在等待来自内部的 ACK(通过 有效载荷发送器 模块),或外部(发送 MAVLink 信息的外部实体 命令返回) 来确定包裹投递操作是否成功(无论是 DO_GRIPPERDO_WINCH).

# 使命

夹持器/绞盘命令被放置为 任务项目.这是可能的,因为所有任务项目都有 MAV_CMD 执行(如着陆、起飞、航点等),可将其设置为 DO_GRIPPERDO_WINCH.

在任务逻辑中(上图绿色方框),如果到达抓取器/Winch 任务项目中的任一项目,就会执行制动保持功能(该功能会设置 有效 下一个任务项目航点的 错误)用于旋翼飞行器(如多旋翼飞行器),这样飞行器就能在执行部署时保持位置不变。

对于固定翼飞机和其他飞行器,不考虑特殊的制动条件。因此,如果您为固定翼飞机设置了一个悬停任务项目,它将在悬停时执行运送任务,而不会停下来(因为这是不可能的)。

# 任务街区

任务模块使命 处理 "Is Mission completed?"部分。

这一切都是在 任务项目已完成或已完成 函数,用于处理时间延迟/任务项目推进。

此外,它还实现了实际的 issue_command 函数,该函数将发出与任务项目的 MAV_CMD,然后由外部有效载荷或 有效载荷发送器 模块内部。

# 有效载荷投送器

这是一个处理抓手/绞盘支持的专用模块,用于标准的 包裹投递任务计划.

设置 有效载荷发送器 模块在设置实际软件包发布机制的设置文档(如 夹具.