# 摄像机配置

可以将 PX4 配置为连接物理输出来触发摄像机,也可以将其与 MAVLink 摄像机.

备注

我们建议您使用 MAVLink 摄像机,因为它可以通过以下方式对摄像机进行全面控制 摄像机协议 (打开新窗口).直接连接的摄像机仅支持 一小部分 的 MAVLink 摄像机命令。

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

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

# 触发器配置

摄像机触发通常通过 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 信息(默认情况下,如果 MAVLink 应用程序处于 机载 模式。否则,需要启用自定义流)。
4 启用通用 PWM 接口。这样就可以使用 红外线触发器 (打开新窗口) 或伺服系统来触发相机。

# 触发器输出引脚配置

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

触发引脚可通过分配 相机触发器 功能在任何 FMU 输出上。如果使用需要两个引脚的触发器设置(如 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 致动器 通过在配置屏幕上指定 相机捕捉 功能。

备注

在撰写本报告时,摄像头捕捉功能仅适用于 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 摄像机触发器 (打开新窗口) 信息。如果配置了摄像机捕捉,则使用摄像机捕捉驱动程序的时间戳,否则使用触发时间戳。

在使用本文档中描述的连接到飞行控制器的相机时(例如使用 GPIO、PWM 或海鸥后端接口),相机驱动程序支持以下 MAVLink 命令子集:

mav_cmd_doo_trigger_control (打开新窗口) - 在命令控制模式下接受 (TRIG_MODE 1).

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

mav_cmd_doo_digicam_control (打开新窗口) - 接受所有模式。

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

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

mav_cmd_doo_set_cam_trigg_dist (打开新窗口) - 在 "任务受控 "模式下接受 (TRIG_MODE 4)

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

mav_cmd_oblique_survey (打开新窗口) - 任务指令,用于设置摄像机自动安装旋转斜测。

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

PX4 也可以配置为使用 MAVLink 触发器接口后台 配有 MAVLink 摄像机。

在这种情况下,MAVLink 摄像机信息会被转发到 MAVLink 摄像机进行处理(尽管 PX4 仍会发出 摄像机触发器 当收到触发命令时)。

建议使用 MAVLink 摄像机,因为直接连接的摄像机仅支持 一小部分 的可用 MAVLink 摄像机信息和命令。MAVLink 摄像机可通过使用 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 标准 (打开新窗口) 可提供照相机。