跳至内容

PX4 摄像机架构/集成

本主题简要介绍如何支持 PX4 摄像头。 已实施.

信息

参见 照相机 有关 使用 照相机

概述

PX4 可与三种类型的摄像机集成:

所有这些相机都需要响应通过 MAVLink 接收到的或在任务中发现的 MAVLink 命令(具体协议取决于相机)。

所采用的总体架构如下。

PX4 没有专门处理 MAVLink 摄像机 支持 摄像机协议 v2除以下情况外 将任务中的摄像机项目作为命令重新发射

地面站应直接与这些相机通信,以便发送指令。如果需要,必须对 PX4 进行配置,以便在摄像机和地面站之间路由 MAVLink 通信。

信息

摄像机触发器, 摄像头捕捉摄像机反馈 模块不与本相机一起使用。

FC 连接的摄像机

连接到飞行控制器输出端的摄像头 需要 PX4 激活输出以触发摄像机,可能还需要 PX4 来检测何时有 摄像头捕捉针 已由相机热靴触发(以改善记录的相机捕捉时间)。

这项工作由 PX4 的三个组件负责: 摄像机触发器 驱动程序, 摄像头捕捉 驱动程序, 相机反馈 模块.

摄像机触发器 订阅了 载具指令 主题,并监测其 支持的命令.当通过 MAVLink 接收到命令,或当在 MAVLink 上接收到命令时,这些更新就会发生。 在任务中完成相机项目.

这些命令可启用和禁用触发,并按时间和距离间隔配置触发。驱动程序会跟踪这些时间间隔,并在需要时触发输出。驱动程序会发布一个 相机触发器 主题 反馈 字段设置为 错误),导致 摄像机触发器 要发送的 MAVLink 信息。

摄像头捕捉 驱动程序(如果启用)会监控摄像头捕捉引脚,并在触发时发布一个 相机触发器 主题 反馈 字段设置为 ),这也会导致 摄像机触发器 要发送的 MAVLink 信息。

摄像机反馈 模块监控 相机触发器 主题,并出版了 相机捕捉 议题 相机触发器 来自 要么 摄像机触发器摄像头捕捉.使用的信息取决于是否启用了摄像机捕捉引脚,其值是否为 CameraTrigger.feedback 领域。这 相机捕捉 主题被记录下来,可用于获取捕获时间。

支持旧版摄像机协议 v1 的 MAVLink 摄像机 的整合方式与 FC 连接的摄像机.

摄像机触发器 订阅了 载具指令 主题,并监控 支持的命令.当通过 MAVLink 接收到命令或当 在任务中发现相机.

这些命令可启用或禁用触发功能,并按时间和距离间隔配置触发。驱动程序会跟踪这些时间间隔,但使用 MAVLink 后端无需实际触发任何输出(因为命令会转发给摄像头)。当摄像机触发时,驱动程序会发布一个 相机触发器 主题 反馈 字段设置为 错误),导致 摄像机触发器 要发出的 MAVLink 信息。信息 摄像机反馈 模块应记录相应的 相机捕捉 主题。

任务中的相机指令

PX4 可将任务中发现的相机项目作为 MAVLink 命令重新发送给所有受支持的相机。 摄像机协议 v2摄像机协议 v1 命令。发出指令的系统 ID 与自动驾驶仪的 ID 相同。命令的组件 ID 可能会有所不同,但通常会发送至 mav_comp_id_camera (100)mav_comp_id_all (关于每种情况下使用的 ID,请参见各个摄像机文件)。

无论是否连接了任何类型的摄像机,只要有一个 MAVLink 通道可以发送指令,就可以发送指令。

信息

一般来说,PX4 会重新发送外部 MAVLink 组件(如云台)可能会使用的所有任务指令。用于航点和条件行为的指令不会发送。

下面的章节重点介绍了代码库中有趣的部分

特派团支持的指挥部

这些方法中显示了任务中支持的命令,包括相机命令:

重新发射任务中发现的摄像机指令的流程

MAVLink 流代码会监控 载具指令 并通过 MAVLink 发布。无论摄像机是 MAVLink 摄像机还是连接到飞行控制器,都会发送 MAVLink 命令。

摄像机触发器 驱动程序(如果启用)还会监控 载具指令.如果配置了连接到飞行控制器输出端的摄像头后台,则会适当触发这些输出。

记录

相机捕捉 当出现 相机触发器 更新。记录的主题取决于是否启用了摄像头捕捉引脚。

请注意,当使用 支持摄像机协议 v2 的 MAVLink 摄像机因为相应的触发事件没有在 PX4 中生成。

另请参见