(6)(6.3) 自动任务中的相机控制
文章目录
前言
6.3.1 概述
6.3.2 自动任务类型
6.3.3 创建合成图像
前言
本文介绍 ArduPilot 的相机和云台命令,并说明如何在 Mission Planner 中使用这些命令来定义相机勘测任务。这些说明假定已经连接并配置了相机触发器和云台(camera trigger and gimbal have already been connected and configured)。
6.3.1 概述
规划摄像任务与规划其他任何带有航点和事件(planning any other mission with waypoints and events)的任务几乎完全相同。唯一不同的是,在摄像任务中,你可以指定在航点或飞行器移动过程中的固定时间间隔触发相机快门的命令。如果摄像机安装在云台上,你还可以设置云台方向,或让它跟踪某个特定的兴趣点。
对于简单的任务,你可以手动指定所需的航点和相机指令。对于更复杂的路径和网格勘测,Mission Planner 提供的工具可为任意区域自动生成所需的任务,从而简化了操作。
相机命令
- DO_SET_CAM_TRIGG_DIST — 定时触发相机快门。这最常用于辅助区域勘测;
- DO_DIGICAM_CONTROL — 每次调用此命令时触发一次相机快门;
- DO_AUX_FUNCTION —它允许在任务中执行任何辅助功能(auxiliary function),而无需设置辅助开关。这包括摄像机开始录制、摄像机变焦、摄像机手动对焦和摄像机自动对焦。
相机云台命令
如果使用的是相机云台,则可以设置相机位置(偏航、倾斜、横滚)或将其对准特定的感兴趣区域(ROI):
- DO_SET_ROI — 将摄像机瞄准指定的感兴趣区域(位置,包括高度);
- DO_GIMBAL_MANAGER_PITCHYAW — 将云台移动到所需的俯仰角和偏航角(单位:度)。正俯仰角为向上,负俯仰角为向下。正偏航角为顺时针,负偏航角为逆时针。如果"Flags"字段为"0",则偏航角度为"机身框架"角度(例如 0 表示向前)。如果"Flags"字段为"16",则偏航角为"地球框架"(例如 0 为正北);
- DO_MOUNT_CONTROL — 以指定的横滚、俯仰和偏航定位云台。
伺服和继电器命令
舵机和继电器输出可连接到硬件,并在执行任务时分别使用 DO_SET_SERVO 或 DO_SET_RELAY 命令激活。
这些输出的一个可能用途是控制快门以外的相机功能(例如,设置变焦级别或将拍摄从静态切换到视频)。
!Note
将舵机或继电器连接到摄像机的方法以及可访问的功能取决于摄像机及其支持的遥控装置(请参阅摄像机和云台 wiki 页面的摄像机控制和地理标记部分)(Camera Control and GeoTagging section of the Cameras and Gimbals wiki page)。
6.3.2 自动任务类型
Mission Planner 支持以下自动航点选项。要访问这些选项,请打开"飞行计划"屏幕,右键单击地图,然后从"自动航点"菜单下选择选项:
- Create WP Circle — 创建一个航点圈;
- Area — 显示当前多边形的面积(如果已定义);
- Create Spline Circle — 一个圆圈,其中航点的高度遵循一条上升斜线(与飞行器有关);
- Survey (Grid) — 自动创建航点和相机控制指令,勘测指定的多边形;
- Survey (Gridv2) — 正在建设中!这是一个更简单的网格控件,用于创建矩形测量区域;
- SimpleGrid — 一个简单的自动创建的测量网格。未定义相机控制,因此必须单独添加。
以下部分包括社区提供的自动勘测任务示例。
Survey (Grid) Example
Mission Planner 的勘测(网格)选项可自动定义覆盖任意多边形所需的航点,并在相关航点上设置 DO_SET_CAM_TRIGG_DIST,以确保在飞行器路径上以固定间隔捕获图片。
- 打开"飞行计划"选项卡;
- 右键点击地图,选择绘制多边形 | 添加多边形点。在要拍摄的区域周围创建点;
- 右键点击地图,选择自动 WP | 勘测(网格):

- 然后,Mission Planner 将显示一个配置屏幕,你可以在此定义摄像机的品牌/型号和其他参数,包括你想要的图片重叠度、镜头尺寸等。DO_SET_CAM_TRIGG_DIST 会根据这些信息自动计算!

点击"接受"后,Mission Planner 将生成一份航点列表,其中包括指定区域内的起飞和着陆航点。调用 DO_SET_CAM_TRIGG_DIST 命令可设置任务期间两次相机触发之间的距离(以米为单位)。任务结束时,DO_SET_CAM_TRIGG_DIST 会被再次调用,将参数设置回零(停止捕捉图像)。
带有航点和摄像机触发器的最终任务看起来是这样的:

运行了上图所示的测试任务。它生成了 15 幅图像,并将其拼接在一起。下面是合成图像的缩略图(因为全尺寸图像太大,约 107MB)。

6.3.3 创建合成图像
有许多制作合成图像的免费和付费工具:
- Pix4Dmapper — 免费的"探索"版本支持图像合并;
- Microsoft 图像合成编辑器(ICE)(Microsoft Image Composite Editor (ICE))。
相关文章:
(6)(6.3) 自动任务中的相机控制
文章目录 前言 6.3.1 概述 6.3.2 自动任务类型 6.3.3 创建合成图像 前言 本文介绍 ArduPilot 的相机和云台命令,并说明如何在 Mission Planner 中使用这些命令来定义相机勘测任务。这些说明假定已经连接并配置了相机触发器和云台(camera trigger and gimbal ha…...
什么是cssreset ?为什么要用到cssreset?
1,什么是cssreset ? 顾名思义,css reset,样式重置。即重新设置界面的样式。 CSS reset,又叫做 CSS 重写或者 CSS 重置,用于改写HTML标签的默认样式。 有些HTML标签在浏览器里有默认的样式,例如 p 标签有上…...
SpringCloud学习笔记(四)_ZooKeeper注册中心
基于Spring Cloud实现服务的发布与调用。而在18年7月份,Eureka2.0宣布停更了,将不再进行开发,所以对于公司技术选型来说,可能会换用其他方案做注册中心。本章学习便是使用ZooKeeper作为注册中心。 本章使用的zookeeper版本是 3.6…...
【算法专题突破】双指针 - 移动零(1)
目录 写在前面 1. 题目解析 2. 算法原理 3. 代码编写 写在最后: 写在前面 在进行了剑指Offer和LeetCode hot100的毒打之后, 我决心系统地学习一些经典算法,增强我的综合算法能力。 1. 题目解析 题目链接:283. 移动零 - 力…...
Nginx高可用集群
目录 一.简介二.案例1.实现思路2.配置文件修改3.实现效果故障转移机制 一.简介 以提高应用系统的可靠性,尽可能地减少中断时间为目标,确保服务的连续性,达到高可用的容错效果。例如“故障切换”、“双机热备”、“多机热备”等都属于高可用集…...
Rust 基础入门 ——所有权 引言 :垃圾自动回收机制的缺陷。
在以往,内存安全几乎都是通过 GC 的方式实现,但是 GC 会引来性能、内存占用以及 Stop the world 等问题,在高性能场景和系统编程上是不可接受的, 我们先介绍一下这些概念都是什么: 内存安全是指程序在运行过程中不会访…...
Ubuntu20.04安装软件报错:The following packages have unmet dependencies
Ubuntu20.04更换阿里云源后安装软件都会报错:The following packages have unmet dependencies 查看资料,大概是ubuntu本身的源比较版本较老,而阿里云的源比较新,因此版本不匹配造成依赖的库不匹配,所以只要将阿里云的…...
Java 与设计模式(12):享元模式
一、定义 享元模式是一种结构型设计模式,旨在有效地共享对象以减少内存使用和提高性能。该模式的核心思想是通过共享尽可能多的相似对象来减少内存占用。它将对象分为可共享的内部状态和不可共享的外部状态。内部状态是对象的固有属性,可以在多个对象之…...
React配置代理(proxy)
使用axios进行请求,而配置代理过程。 第一种 在package.json中,添加proxy配置项,之后所有的请求都会指向该地址 但这种方法只能配置一次,也只有一个 示例: "proxy":"https://localhost:5000" 添加后&am…...
队列(Queue):先进先出的数据结构队列
栈与队列https://blog.csdn.net/qq_45467165/article/details/127958960?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22127958960%22%2C%22source%22%3A%22qq_45467165%22%7D 队列(Queue)是一种常见的线…...
CentOS ens160 显示disconnected
使用nmcli device查看网卡状态,显示如图: 检查宿主机系统VMware DHCP Sevice和VMware NAT Sevice服务是否正常运行。 右键点击我的电脑管理按钮,打开计算机管理点击服务...
使用 ChatGPT 创建 PowerPoint 演示文稿
让 ChatGPT 成为您的助手来帮助您编写电子邮件很简单,因为众所周知,它非常能够生成文本。很明显,ChatGPT 无法帮助您做饭。但您可能想知道它是否可以生成文本以外的其他内容。在上一篇文章中,您了解到 ChatGPT 只能通过中间语言为您生成图形。在这篇文章中,您将了解使用中…...
matlab将数组值划分为两类
例如:大于0的处理为1,小于0的处理为-1. 当然,可以选择循环结构和选择结构,但是效率会很低。 这里直接使用逻辑语句完成。 % 不使用循环语句,将数组内值划分为两类 clc; clearvars; a[-0.1422 , -0.0433 , 0.1131 …...
【点击新增一个下拉框 与前一个内容一样 但不能选同一个值】
点击新增一个下拉框 与前一个内容一样 但不能选同一个值 主要是看下拉选择el-option的disabled,注意不要混淆 <el-form label-width"120px" :model"form" ref"form" style"color: #fff"><template v-for"(trapolicy, i…...
【Gitee提交pr】
Gitee提交pr 什么是pr怎样提交一个pr嘞? 什么是pr pr:指的是将自己的修改从自己的账号仓库dev下提交到官方账号仓库master下; 通俗来讲就是Gitee线上有属于自己的分支,然后本地在自己地分支修改完代码之后,提交到自己的线上分支&a…...
一款打工人必备的电脑端自律软件!!冲鸭打工人!!
你!有没有渴望进步!! 你!有没有渴望变强!!! 成为大佬!!!超越巨佬!!! 这就是一款为这样的你量身定做的程序:输入…...
【Vue框架】 router和route是什么关系
前言 之前没太注意,写着写着突然发现它们貌似不太一样,记录以下,回顾的看总结就好。 1、总结✨ route:当前激活路由的对象,用于访问和操作当前路由的信息 router:管理多个route的对象,整个应…...
整理mongodb文档:聚合管道
个人博客 整理mongodb文档:聚合管道 个人博客,求关注,电脑版看体验更加,如果不够清晰,请指出来,谢谢 文章概叙 文章主要通过几个常用的聚合表达式来介绍聚合管道的使用,以及从索引的角度来介绍聚合管道…...
Delphi 11.3 FMX 多设备平台中使用 TGrid 实现类似 TDBGrid 的效果
Delphi Firemonkey 中 TDBGrid 这个控件已经没有了。如何实现类似这个效果呢。其实可以用TGrid 来实现。以下用 11.3 来讲解。 查询里面用到的 connection 和 query 等控件那些一般的数据库用法,就不做过多描述了。请参考其他资料。 方法一.通过界面配置来实现 在…...
Qt-事件循环与QtConcurrent、QThread结合使用时注意的点
QEventLoop和QtConcurrent可以结合使用达到主线程ui不阻塞同步执行的效果,但是要小心避坑,查看如下代码: QEventLoop loop; QtConcurrent::run([&]() {doSomething();loop.quit(); }); loop.exec();上述写法存在两个问题: Q…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...
