简单 MAVLink 摄像机(摄像机 Protcol v1)
本主题介绍如何将 PX4 与 MAVLink 配合使用。 照相机 的 摄像机协议 v1(简单触发协议) 配有 PX4 和地面站。
警告
MAVLink 摄像机 使用 MAVLink 摄像机协议 v2 在可能的情况下,应改用这种方法保留给旧版 MAVLink 摄像机使用。
概述
摄像机协议 v1 定义了允许触发摄像机的一小组命令:
- 根据时间或距离以一定频率拍摄静态图像
- 视频采集
- 有限的摄像机配置
PX4 支持此命令集,用于触发本机支持该协议的摄像机(如本主题所述),也用于 连接到飞行控制器输出端的摄像机.
地面站和 MAVLink SDK 通常会将相机指令发送至自动驾驶仪,然后由自动驾驶仪将其转发至连接的 MAVLink 通道,通道类型为 机载
.PX4 还会将任务中遇到的任何摄像机任务项目作为摄像机命令重新发送:未被接受的命令会被记录下来。在所有情况下,发送的命令都使用自动驾驶仪的系统 ID 和 0 组件 ID(即发送给所有组件,包括摄像机)。
PX4 还会发出 摄像机触发器 每当触发图像捕捉(摄像机本身也可能在触发时发出此信息)。
控制摄像机
MAVLink 命令和信息
摄像机协议 v1(简单触发协议) 定义了以下命令
- mav_cmd_doo_trigger_control
- mav_cmd_nav_cmd_doo_digicam_control
- mav_cmd_doo_set_cam_trigg_dist
- mav_cmd_doo_set_cam_trigg_interval
- mav_cmd_oblique_survey
- mav_cmd_doo_control_video
MAVLink 摄像机将支持这些命令的某些子集。由于该协议没有功能发现过程,因此唯一的方法就是检查 命令返回 作为回应返回。
摄像头还应发出 摄像机触发器 每次捕捉图像时
摄像机协议 v1 更详细地介绍了该协议。
地面站
地面站可以使用 摄像机协议 v1(简单触发协议) 并应将其指向自动驾驶组件 id。如果摄像机不支持这些命令,它将返回一个 命令返回 结果出错。
一般情况下,这些命令都是针对自动驾驶仪的,因为无论相机是通过 MAVLink 连接还是直接连接到飞行控制器,都可以执行这些命令。如果向自动驾驶仪发出指令,PX4 将发出 摄像机触发器 每次捕捉图像时,都会记录摄像机捕捉事件。
理论上,您也可以直接向摄像机发出指令。
任务中的相机指令
以下是 摄像机协议 v1(简单触发协议) 命令可以在任务中使用(与上面的列表相同)。
- mav_cmd_doo_trigger_control
- mav_cmd_nav_cmd_doo_digicam_control
- mav_cmd_doo_set_cam_trigg_dist
- mav_cmd_doo_set_cam_trigg_interval
- mav_cmd_oblique_survey
- mav_cmd_doo_control_video
PX4 会以与自动驾驶仪相同的系统 ID 和组件 ID 重新发射这些数据。 mav_comp_id_all:
手动控制
不支持使用这些相机进行手动触发(对于操纵杆或遥控控制器)。
PX4 配置
MAVLink 端口 & 转发配置
将 PX4 与 MAVLink 摄像机连接,将其连接到飞行控制器上未使用的串行端口,如 TELEM2
.然后可以将端口配置为 MAVLink 外围设备.本文件简要说明了如何进行:
- 修改未使用的
MAV_n_CONFIG
参数,例如 MAV_2_CONFIG,以便将其分配给相机所连接的端口。 - 设置相应的 MAV_2_MODE 至
2
(机载)。这可确保发出和转发正确的 MAVLink 信息。 - 您可能需要设置一些其他参数,具体取决于您的连接情况,例如波特率。
然后按照用户指南的建议连接和配置摄像机。
照相机模式和触发器
配置 PX4 摄像机驱动程序以启用 MAVLink 摄像机后端,并将触发模式设置为在勘测任务中按命令捕捉。
使用 QGroundControl:
开放 载具设置 > 摄像头.
如图所示设置数值: