# 有效载荷和摄像头
PX4 支持多种有效载荷和相机。
# 无人机测绘
在勘测过程中,测绘无人机使用相机按时间或距离间隔捕捉图像。
支持 MAVLink 摄像机协议 (打开新窗口) 提供与 PX4 和 QGroundControl 的最佳集成。MAVSDK 提供了简单的应用程序接口,可在以下两个方面使用该协议 独立摄像机操作 (打开新窗口) 并在 任务 (打开新窗口).
也可使用 PWM 或 GPI 输出将摄像机直接连接到飞行控制器。对于连接到飞行控制器的相机,PX4 支持以下 MAVLink 命令/任务项目:
- mav_cmd_doo_set_cam_trigg_interval (打开新窗口) - 设置两次捕捉之间的时间间隔。
- mav_cmd_doo_set_cam_trigg_dist (打开新窗口) - 设置捕获间距
- mav_cmd_doo_trigger_control (打开新窗口) - 开始/停止捕捉(使用上述信息定义的距离或时间)。
以下主题介绍了如何 接通 您的相机配置 PX4:
# 货运无人机("致动器"有效载荷)
货运无人机通常使用伺服/执行器来触发货物释放、控制绞盘等。PX4 支持通过 RC 和 MAVLink 命令触发伺服和 GPIO。
# 遥控触发
您最多可以映射三个遥控通道,使用参数控制连接到飞行控制器上的舵机/执行器 RC_MAP_AUX1 至 RC_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 为输出编号)。所有不受控制的参数/执行器都应设置为 无
.
# 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 配合使用。
备注
直接连接到飞行控制装置的摄像头 只是 支持摄像机触发,不太适合大多数监控/搜索工作。
搜救无人机可能还需要携带货物,例如为受困的徒步旅行者提供应急物资。参见 货运无人机 有关有效载荷运送的信息,请参阅上文。