# 有效载荷和摄像头

PX4 支持多种有效载荷和相机。

# 无人机测绘

在勘测过程中,测绘无人机使用相机按时间或距离间隔捕捉图像。

支持 MAVLink 摄像机协议 (打开新窗口) 提供与 PX4 和 QGroundControl 的最佳集成。MAVSDK 提供了简单的应用程序接口,可在以下两个方面使用该协议 独立摄像机操作 (打开新窗口) 并在 任务 (打开新窗口).

也可使用 PWM 或 GPI 输出将摄像机直接连接到飞行控制器。对于连接到飞行控制器的相机,PX4 支持以下 MAVLink 命令/任务项目:

以下主题介绍了如何 接通 您的相机配置 PX4:

# 货运无人机("致动器"有效载荷)

货运无人机通常使用伺服/执行器来触发货物释放、控制绞盘等。PX4 支持通过 RC 和 MAVLink 命令触发伺服和 GPIO。

# 遥控触发

您最多可以映射三个遥控通道,使用参数控制连接到飞行控制器上的舵机/执行器 RC_MAP_AUX1RC_MAP_AUX3.

遥控通道为 通常 映射到 AUX1, AUX2, AUX3 飞行控制器的输出(使用 混合器文件 在您的 airfame 中定义)。您可以在 "RC AUX "选项卡中确认哪些输出用于载具的 RC AUX 直通。 机身参考.例如 Quadrotor-X 具有正常映射:";AUX1: RC AUX1 通道的馈通",";AUX2: RC AUX2 通道的馈通",";AUX3: RC AUX3 通道的馈通"。

如果您的载具没有指定 RC 辅助馈通输出,您可以使用自定义的 混合器文件 该地图 对照组 3 输出 5-7 至所需端口。默认直通混音器就是这样一个例子: pass.aux.mix (打开新窗口).

备注

用于 RC 辅助馈通的相同输出也可通过 MAVLink 命令进行设置(请参阅 "MAVLink")。 低于).PX4 将使用通过任一机制设置的最后一个值。

# 任务触发

您可以使用 mav_cmd_doo_set_actuator (打开新窗口) MAVLink 命令,可在任务中或作为命令同时设置(最多)三个执行器的值。

命令参数 参数1, 参数2参数3通常 映射到 AUX1, AUX2, AUX3 飞行控制器的输出,而指令参数 参数4参数7 是 PX4 未使用/忽略的参数。参数取值范围为 [-1, 1] (导致 PWM 输出范围在 [PWM_AUX_MINx,PWM_AUX_MAXx] (PWM_AUX_MINx, PWM_AUX_MAXx)其中 X 为输出编号)。所有不受控制的参数/执行器都应设置为 .

备注

MAVLink 使用的输出与为以下设备配置的输出相同 RC 辅助信号直通 (见上节)。您可以在 机身参考 为您的载具更换,必要时使用 自定义混合器文件.

# MAVSDK (脚本示例)

以下是 MAVSDK (打开新窗口) 示例代码显示了如何触发有效载荷释放。

代码使用 MAVSDK MavlinkPassthrough (打开新窗口) 插件发送 mav_cmd_doo_set_actuator (打开新窗口) MAVLink 命令,指定(最多)3 个执行机构的值。

#包括 <mavsdk/mavsdk.h>;
#包括 <mavsdk/plugins/mavlink_passthrough/mavlink_passthrough.h>;
#包括 <mavsdk/plugins/info/info.h>;
#包括 时间顺序<chrono>;
#包括 <cstdint>;
#包括 iostream>;
#包括 未来;
#包括 <内存>;
使用 命名空间 mavsdk;
空白 发送促动器(MavlinkPassthrough及样品; mavlink_passsthrough,
        浮动 值1, 浮动 值2, 浮动 值3);
int 主要(int 参数, 烧焦 **参数)
{
    Mavsdk mavsdk;
    标准::字符串 connection_url;
    连接结果 connection_result;
    浮动 值1, 值2, 值3;
    如果 (参数 == 5) {
        connection_url = 参数[1];
        连接结果 = mavsdk.添加任意连接(connection_url);
        值1 = 标准::单链(参数[2]);
        值2 = 标准::单链(参数[3]);
        值3 = 标准::单链(参数[4]);
    } 
    如果 (连接结果 != 连接结果::成功) {
        标准::cout <<; 连接失败:"; <<; 连接结果 <<; 标准::endl;
        返回 1;
    }
    bool 发现的系统 = 错误;
    mavsdk.subscribe_on_new_system([及样品;mavsdk, 及样品;发现的系统]() {
         汽车 系统 = mavsdk.系统().(0);
        如果 (系统->;is_connected()) {
            标准::cout <<; 发现系统"; <<; 标准::endl;
            发现的系统 = ;
        }
    });
    标准::this_thread::sleep_for(标准::计时器::秒钟(2));
    如果 (!发现的系统) {
        标准::cout <<; 未找到设备,退出; <<; 标准::endl;
        返回 1;
    }
    标准::共享_ptr<;系统>; 系统 = mavsdk.系统().(0);
    对于 (汽车及样品; 系统 : mavsdk.系统()) {
        汽车 信息 = 信息{系统};
        标准::cout <<; 信息.获取标识().附议.hardware_uid <<; 标准::endl;
        如果 (信息.获取标识().附议.hardware_uid == "3762846593019032885") {
            系统 = 系统;
        }
    }
    汽车 mavlink_passsthrough = MavlinkPassthrough{系统};
    发送促动器(mavlink_passsthrough, 值1, 值2, 值3);
    返回 0;
}
空白 发送促动器(MavlinkPassthrough及样品; mavlink_passsthrough,
        浮动 值1, 浮动 值2, 浮动 值3)
{
    标准::cout <<; 发送信息"; <<; 标准::endl;
    mavlink_message_t 消息;
    mavlink_msg_command_long_pack(
            mavlink_passsthrough.get_our_sysid(),
            mavlink_passsthrough.get_our_compid(),
            及样品;信息,
            1, 1,
            mav_cmd_doo_set_actuator,
            0,
            值1, 值2, 值3,
            南网, 南网, 南网, 0);
    mavlink_passsthrough.发送消息(信息);
    标准::cout <<; "已发送信息"; <<; 标准::endl;
}

# 监视、搜索和救援

监视和搜索救援无人机的要求与测绘无人机类似。主要区别在于,除了在规划的勘测区域内飞行外,它们通常还需要对相机进行良好的独立控制,以捕捉图像和视频,而且可能需要能够在白天和夜间工作。

使用支持 MAVLink 摄像机协议 (打开新窗口) 因为它支持图像和视频捕捉、缩放、存储管理、同一载具上的多个摄像头以及在它们之间切换等功能。这些摄像头可以通过 QGroundControl 手动控制,也可以通过 MAVSDK 控制(两者都适用于 QGroundControl 和 MAVSDK)。 独立摄像机操作 (打开新窗口) 并在 任务 (打开新窗口)).参见 相机触发 以了解如何配置您的摄像机与 MAVLink 配合使用。

备注

直接连接到飞行控制装置的摄像头 只是 支持摄像机触发,不太适合大多数监控/搜索工作。

搜救无人机可能还需要携带货物,例如为受困的徒步旅行者提供应急物资。参见 货运无人机 有关有效载荷运送的信息,请参阅上文。