# 任务中的包裹投递(开发)
包裹投递任务是航点任务的延伸,用户可将投递包裹作为航点进行规划。
本主题解释了数据包传送功能的架构。它面向正在扩展架构(例如支持新的有效载荷交付机制)的开发人员。
备注
目前只有 夹具 可用于运送包裹。目前还不支持绞盘。
# 包裹投递架构图
核心理念在于有一个实体来处理以下问题 DO_GRIPPER
或 DO_WINCH
载具命令,执行该命令,并在确认成功发送后发回确认信息。
因为 PX4 会自动广播 载具指令
将 uORB 信息发送到配置为在 MAVLink 中通信的 UART 端口,作为 命令长
(打开新窗口) 消息,外部有效载荷就能接收并执行命令。
同样,由于 PX4 会自动翻译 命令返回
(打开新窗口) 将通过为 MAVLink 配置的 UART 端口从外部输入的信息转换为 载具命令
uORB报文,PX4就能收到外部有效载荷对成功部署软件包的确认。 导航仪
模块。
下面将对包裹递送架构中涉及的每个实体进行说明。
# 导航仪
导航仪负责接收飞行器指令 ACK(如下所述)。接收到成功部署 ACK 信息后,导航仪会在任务块级别设置标志,以表示有效载荷已成功部署。
这样,任务就可以安全地进入下一个项目(例如航点),因为我们确信部署已经成功。
# 载具指令 ACK
我们正在等待来自内部的 ACK(通过 有效载荷发送器
模块),或外部(发送 MAVLink 信息的外部实体 命令返回
) 来确定包裹投递操作是否成功(无论是 DO_GRIPPER
或 DO_WINCH
).
# 使命
夹持器/绞盘命令被放置为 任务项目
.这是可能的,因为所有任务项目都有 MAV_CMD
执行(如着陆、起飞、航点等),可将其设置为 DO_GRIPPER
或 DO_WINCH
.
在任务逻辑中(上图绿色方框),如果到达抓取器/Winch 任务项目中的任一项目,就会执行制动保持功能(该功能会设置 有效
下一个任务项目航点的 错误
)用于旋翼飞行器(如多旋翼飞行器),这样飞行器就能在执行部署时保持位置不变。
对于固定翼飞机和其他飞行器,不考虑特殊的制动条件。因此,如果您为固定翼飞机设置了一个悬停任务项目,它将在悬停时执行运送任务,而不会停下来(因为这是不可能的)。
# 任务街区
任务模块
是 使命
处理 "Is Mission completed?"部分。
这一切都是在 任务项目已完成或已完成
函数,用于处理时间延迟/任务项目推进。
此外,它还实现了实际的 issue_command 函数,该函数将发出与任务项目的 MAV_CMD
,然后由外部有效载荷或 有效载荷发送器
模块内部。
# 有效载荷投送器
这是一个处理抓手/绞盘支持的专用模块,用于标准的 包裹投递任务计划.
设置 有效载荷发送器
模块在设置实际软件包发布机制的设置文档(如 夹具.