跳至内容

连接到飞行控制器输出端的摄像头

本主题将介绍如何使用 PX4 与 照相机 与飞行控制器输出相连。

概述

PX4 可以触发 照相机 使用 摄像机指令 或由地面控制站发送。支持的命令是 MAVLink 中定义的命令的子集。 摄像机协议 v1.

每当摄像机被触发时,MAVLink 摄像机触发器 发布包含当前会话图像的消息 序列号 以及相应的时间戳。该时间戳可用于多种用途,包括:为航测和重建照片打上时间戳、同步多相机系统或视觉惯性导航。

摄像头可连接到不同的输出端,包括 PWM 输出端、GPIO 输出端,以及通过 PWM 输出端连接的 Seagull MAP2。

相机还可以(可选)在拍摄照片/画面的准确时刻使用 摄像头捕捉针 这样就能更精确地将图像映射到 GPS 位置以进行地理标记,或映射到正确的 IMU 样本以进行 VIO 同步等。这样就能更精确地将图像映射到 GPS 位置以进行地理标记,或映射到正确的 IMU 样本以进行 VIO 同步等。

PX4 在执行任务时和从 GCS 接收时都支持以下用于连接 FC 摄像机的 MAVLink 命令:

支持的行为如下(这些行为与 MAVLink 规范并不完全一致)。

mav_cmd_doo_trigger_control

mav_cmd_doo_trigger_control - 在命令控制模式下接受 (TRIG_MODE 1).

命令参数说明
参数 1启用/禁用触发器。 1:启用(启动)、 0:禁用。
参数 #2重置触发顺序。 1:重置,任何其他值都不起作用。
参数 #3暂停触发,但不关闭或收回相机。 1暂停、 0重新启动。

mav_cmd_doo_digicam_control

mav_cmd_doo_digicam_control - 接受所有模式。

GCS 使用它从用户界面对摄像机进行试拍。触发器驱动程序不支持 MAVLink 规范定义的所有摄像机控制参数。

命令参数说明
参数 #5触发单帧命令(设为 1 时触发单帧图像)。

mav_cmd_doo_set_cam_trigg_dist

mav_cmd_doo_set_cam_trigg_dist - 在 "任务受控 "模式下接受 (TRIG_MODE 4)

该命令在执行任务期间自动生成,以根据全球卫星定位系统的勘测任务触发照相机。

mav_cmd_doo_set_cam_trigg_interval

mav_cmd_doo_set_cam_trigg_interval

mav_cmd_oblique_survey

mav_cmd_oblique_survey - 任务指令,用于设置摄像机自动安装旋转斜测。

接受 参数1参数4 如 MAVLink 信息定义中所述。快门积分设置 (参数2) 仅适用于 GPIO 后端。

触发器配置

可将摄像头连接到 FC,使用不同的接口(如 PWM 和 GPIO)进行触发,具体方法是指定相应的 触发界面后台.您还可以指示相机 触发模式.

这种配置可以通过 QGroundControl 载具设置 > 摄像头 节。

触发器引脚

不同的 触发模式, 后端接口触发输出配置 如下所述(也可直接从 参数).

信息

基于 FMUv2 的飞行控制器(如 3DR Pixhawk)默认不提供相机设置部分,因为固件中不会自动包含相机模块。更多信息请参阅 查找/更新参数> 固件中没有的参数.

触发模式

支持四种不同的模式,由 TRIG_MODE 参数:

模式说明
0摄像机触发已禁用。
1工作原理与基本间隔计类似,可通过 MAVLink 命令启用或禁用 mav_cmd_doo_trigger_control.湖泊 命令接口 了解更多详情。
2持续打开间隔计。
3根据距离触发。每当超过设定的水平距离,就会进行一次拍摄。不过,两次拍摄之间的最小时间间隔受限于设定的触发间隔。
4在任务模式下飞行勘测时自动触发。

信息

如果您是第一次启用相机触发器应用程序,请记住在更改 TRIG_MODE 参数。

触发器接口后端

摄像机触发器驱动程序支持多个后端,每个后端用于特定的应用,由 TRIG_INTERFACE 参数:

数量说明
1启用 GPIO 接口。AUX 输出为高电平或低电平脉冲(取决于 TRIG_POLARITY 参数)每 TRIG_INTERVAL 持续时间这可用于直接触发大多数标准机器视觉相机。请注意,在 PX4FMU 系列硬件(Pixhawk、Pixracer 等)上,AUX 引脚上的信号电平为 3.3v。
2启用 Seagull MAP2 接口。这样就可以使用 海鸥地图2 以连接多种支持的摄像机。MAP2 的引脚/通道 1(摄像机触发器)和引脚/通道 2(模式选择器)应分别连接到较低和较高的映射位置。 摄像机触发引脚.通过使用 Seagull MAP2,PX4 还支持索尼多端口摄像机(如 QX-1)的自动电源控制和保持在线功能。
3此模式可让使用传统 上述 MAVLink 接口.信息会自动发送到 MAVLink 上。 机载 频道。PX4 发出 摄像机触发器 当摄像机被触发时,MAVLink 消息默认为 机载 通道(如果不使用,则需要启用自定义流)。 简单的 MAVLink 摄像机 更详细地解释了这种用例。
4启用通用 PWM 接口。这样就可以使用 红外线触发器 或伺服系统来触发相机。

触发器输出引脚配置

相机触发引脚设置在 QGroundControl 致动器 配置屏幕。

触发引脚可通过分配 相机触发器 功能在任何 FMU 输出上。如果使用需要两个引脚的触发器设置(如 Seagull MAP2),则可以分配到任意两个输出端。

但请注意,如果 PWM 如果输出已用于摄像机触发(如 Seagull MAP2),则整个 PWM 组不能用于任何其他用途(不能将组中的其他输出用于执行器、电机或摄像机捕捉,因为定时器已被使用)。

信息

在编写本报告时,触发功能仅适用于 FMU 引脚:

  • 在配有 FMU 和 I/O 板的 Pixhawk 飞行控制器上,FMU 引脚映射到 辅助 输出(例如 Pixhawk 4、CUAV v5+)。
  • 只有 FMU 的控制器,引脚映射到 MAIN 输出(如 Pixhawk 4 mini、CUAV v5 nano)。

其他参数

参数说明
TRIG_POLARITY仅与使用 GPIO 接口时相关。设置触发引脚的极性。高电平有效表示引脚在正常情况下为低电平,触发事件时为高电平。低电平有效则反之。
TRIG_INTERVAL以毫秒为单位定义两个连续触发事件之间的时间。
TRIG_ACT_TIME以毫秒为单位定义触发引脚在返回中性之前保持激活状态的时间。在 PWM 模式中,最小时间限制为 40 毫秒,以确保在 50Hz PWM 信号中始终保持激活脉冲。

有关摄像机触发器模块参数的完整列表可在 参数参考 page.

摄像机捕捉配置

相机还可以(选择性地)使用相机捕捉引脚,在拍摄照片/帧的确切时刻发出信号。这样就能更精确地将图像映射到 GPS 位置以进行地理标记,或映射到正确的 IMU 样本以进行 VIO 同步等。

在 PX4 中,通过设置 cam_cap_fback = 1.然后在 QGroundControl 致动器 通过在配置屏幕上指定 相机捕捉 功能。

请注意,如果 PWM 输出 作为摄像机捕捉输入时,整个 PWM 组就不能用于其他用途(不能将组中的其他输出用于执行器、电机或摄像机触发器,因为定时器已被使用)。

信息

在撰写本报告时,摄像头捕捉功能仅适用于 FMU 引脚:

  • 在配有 FMU 和 I/O 板的 Pixhawk 飞行控制器上,FMU 引脚映射到 辅助 输出(如 Pixhawk 4、CUAV v5+)。
  • 只有 FMU 的控制器,引脚映射到 MAIN 输出(如 Pixhawk 4 mini、CUAV v5 nano)。

PX4 可检测相机捕捉引脚上具有适当电压电平的上升沿(对于 Pixhawk 飞行控制器,通常为 3.3V)。如果摄像头没有输出适当的电压,则需要额外的电路使信号兼容。

有热靴接口(用于连接闪光灯)的相机通常可以通过热靴适配器进行连接。例如 海鸥 #SYNC2 通用相机热靴适配器 是一个光耦合器,用于将闪光灯电压与 Pixhawk 电压解耦和转换。它可滑入相机顶部的闪光灯插槽。红线和黑线输出端连接到伺服轨/地线,白线连接到输入捕捉引脚。

海鸥 SYNC#2

信息

PX4 发射 MAVLink 摄像机触发器 信息。如果配置了摄像机捕捉,则使用摄像机捕捉驱动程序的时间戳,否则使用触发时间戳。

测试触发器功能

警告

以下部分已经过时,需要重新测试。

  1. 在 PX4 控制台上:

    外壳
    摄像机触发器 测试
  2. 来自 QGroundControl:

    点击 触发相机 在主仪表板上。这些镜头不会被记录或计入地理标记。

    QGC 测试相机

索尼 QX-1 示例(摄影测量)

摄影测量

在本示例中,我们将使用海鸥 MAP2 触发器电缆连接索尼 QX-1,并在执行完全自主的勘测任务后使用该设置创建正射影像图。

触发器设置

建议的相机设置为

  • 触发接口=2 (海鸥 MAP2)。
  • TRIG_MODE=4 (任务受控)。
  • 其余参数保持默认值。

您需要将 Seagull MAP2 连接到自动驾驶仪上的 FMU 引脚。MAP2 电缆的另一端将连接到 QX-1' 的 MULTI" 端口。

摄像机配置

在这个例子中,我们使用的是配备 16-50mm f3.5-5.6 镜头的索尼 QX-1。

为避免触发相机时出现自动对焦和测光延迟,应遵循以下指导原则:

  • 手动对焦至无限远
  • 将相机设置为连拍模式
  • 手动设置曝光和光圈
  • ISO 设置应尽可能低
  • 适合场景的手动白平衡

任务规划

QGC 勘测多边形

QGC 调查参数

地理标记

下载/复制飞行日志文件和图像,并将 QGroundControl 指向它们。然后点击 开始标记.

QGC 地理标记

您可以使用免费在线服务(如 Pic2Map.请注意,Pic2Map 仅限于 40 幅图像。

重建

我们使用 Pix4D 进行三轴重建。

地理标签

摄像机-IMU 同步示例(VIO)

在本示例中,我们将介绍将 IMU 测量与视觉数据同步以构建立体视觉惯性导航系统 (VINS) 的基础知识。需要明确的是,这里的想法并不是要在我们拍照的同时进行 IMU 测量,而是要对我们的图像进行正确的时间标记,以便为我们的 VIO 算法提供准确的数据。

自动驾驶仪和飞行伴侣的时钟基准不同(自动驾驶仪为开机时间,飞行伴侣为 UNIX 时间),因此我们不对任一时钟进行倾斜,而是直接观察时钟之间的时间偏移。这个偏移量会从 MAVLink 信息中的时间戳(例如 HIGHRES_IMU)中的跨中间件翻译组件(如 MAVROS 的伴生和 接收器 在 PX4 中)。实际的同步算法是网络时间协议(NTP)算法的改进版,使用指数移动平均来平滑跟踪的时间偏移。如果 MAVROS 使用高带宽机载链路(MAVLink 模式),则会自动进行同步。 机载).

为了获取同步图像帧和惯性测量值,我们将两台相机的触发输入连接到自动驾驶仪的 GPIO 引脚上。从曝光开始的惯性测量时间戳和图像序列号会被记录下来,并发送到配套的计算机上("GPIO")。摄像机触发器 消息),它将缓冲这些数据包和从摄像机获取的图像帧。匹配的依据是序列号(第一个图像帧为序列 0)、图像的时间戳(时间戳来自于 摄像机触发器 信息),然后发布。

下图说明了为正确给图像加上时间戳而必须发生的一系列事件。

美人鱼序列图

步骤 1

首先,将 TRIG_MODE 设置为 1,使驱动程序等待启动命令,然后重启 FCU 以获取其余参数。

步骤 2

在本示例中,我们将配置触发器与以 30 FPS 运行的 Point Grey Firefly MV 摄像机配合使用。

  • TRIG_INTERVAL:33.33 毫秒
  • TRIG_POLARITY:0(低电平有效)
  • TRIG_ACT_TIME:0.5 毫秒。手册中规定至少为 1 微秒。
  • TRIG_MODE:1,因为我们希望相机驱动程序在开始触发前就做好接收图像的准备。这对于正确处理序列号至关重要。

步骤 3

通过将接地和信号引脚连接到适当位置,将摄像头连接到 AUX 端口。

步骤 4

您必须按照上述序列图修改驱动程序。的公共参考实现 IDS 成像 UEye 照相机和 符合 IEEE1394 标准 可提供照相机。

另请参见