跳至内容

任务中的包裹投递

PX4 v1.14

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

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

信息

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

信息

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

包裹投递架构图

包裹投递架构概述

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

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

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

同样,由于 PX4 会自动翻译 命令返回 将通过为 MAVLink 配置的 UART 端口从外部输入的信息转换为 载具命令 PX4'UORB 消息可接收到外部有效载荷'对成功部署软件包的确认。 导航仪 模块。

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

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

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

载具指令 ACK

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

使命

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

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

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

任务街区

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

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

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

有效载荷投送器

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

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