PX4-Autopilot/docs/zh/camera/mavlink_v1_camera.md
PX4 Build Bot 2e84e55d93
New Crowdin translations - zh-CN (#25483)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-09-11 08:29:25 +10:00

6.5 KiB
Raw Permalink Blame History

简单的 MAVLink 摄像头(Camera Protcol v1)

本节说明了如何使用 PX4 的 MAVLink 相机, 实现了 Camera Protocol v1 (简单触发协议) 的 PX4 和地面站。

:::warning MAVLink 相机 使用MAVLink 相机协议 v2应在可能时使用! 此方法保留用于旧的 MAVLink 相机。 :::

综述

相机协议v1 定义了一小组命令,允许用于触发相机进行拍摄:

  • 仍然根据时间或距离以频率捕获图像
  • 视频捕获
  • 有限的相机配置

PX4 支持此命令集以触发通过原生支持协议的相机 (如本节所述),以及连接到飞控输出的相机。

地面站和 MAVLink SDK 通常将相机命令发送给自动驾驶仪,然后转发给连接的类型为 '板载' 的 MAVLink 通道。 PX4 还会将其在任务中遇到的任何相机任务项重新发出为相机命令:未被接受的命令将被记录。 在所有情况下,命令都是使用自动驾驶仪的系统 ID 和组件 ID 为 0即发送给所有组件包括摄像头

每次触发图像捕获时 PX4 也会发出一个 CAMERA_TRIGGER (相机本身也可能在触发时发出此消息)。

控制相机

相机协议v1简单触发协议定义了以下命令:

MAVLink 摄像头将支持这些命令的一些子集。 由于协议没有发现过程的功能,唯一的方法是检查响应中返回的COMMAND_ACK

相机在每次拍摄图像时也应发出CAMERA_TRIGGER

Camera Protocol v1 更详细地描述了协议。

地面站

地面站可以使用 Camera Protocol v1简单触发协议 中的任何命令,并且应该将这些命令发送给自驾仪组件 id。 如果相机不支持命令,它将返回带有错误结果的COMMAND_ACK

通常命令是针对自驾仪的,因为这样无论相机是通过 MAVLink 连接还是直接连接飞控都能工作。 如果发送给自驾仪 PX4每次拍摄图像时 PX4 都会发出CAMERA_TRIGGER,并可能记录相机拍摄事件。

理论上,您也可以直接向相机发送命令。

任务中的相机命令

以下Camera Protocol v1 (简单触发协议)命令可在任务中使用(这与上面的命令列表相同)。

PX4 重新使用与自驾仪相同的系统 ID 和组件 ID MAV_COMP_ID_ALL 重新发送它们:

Manual Control

这些相机不支持手动触发(无论是摇杆还是遥控器)。

PX4 配置

将 PX4 连接到您的 MAVLink 相机上,将它连接到您飞控上一个未使用的串口,如TELEM2。 然后,您可以将端口配置为MAVLink 外设. 本文件解释了如何做,总的来说:

  1. 修改一个未使用的 MAV_n_CONFIG 参数,例如MAV_2_CONFIG,使其分配给相机连接的端口。
  2. 将对应的 MAV_2_MODE 设置为 2 (板载)。 这确保正确的 MAVLink 消息集被发出和转发。
  3. 您可能需要设置一些其他参数,取决于您的连接 - 例如波特率。

然后按照其用户指南中的建议连接和配置相机。

相机模式和触发

配置 PX4 相机驱动器以启用 MAVLink 相机后端,并设置触发模式为在勘测任务中按命令捕获。

使用 QGroundControl:

:::info 您也可以直接设置参数

:::