(7)(7.3) 自动任务中的相机控制
文章目录
前言
7.3.1 概述
7.3.2 自动任务类型
7.3.3 创建合成图像
前言
本文介绍 ArduPilot 的相机和云台命令,并说明如何在 Mission Planner 中使用这些命令来定义相机勘测任务。这些说明假定已经连接并配置了相机触发器和云台(camera trigger and gimbal have already been connected and configured)。
7.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)。
7.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)。

7.3.3 创建合成图像
有许多制作合成图像的免费和付费工具:
- Pix4Dmapper — 免费的"探索"版本支持图像合并;
- Microsoft 图像合成编辑器(ICE)(Microsoft Image Composite Editor (ICE))。
相关文章:
(7)(7.3) 自动任务中的相机控制
文章目录 前言 7.3.1 概述 7.3.2 自动任务类型 7.3.3 创建合成图像 前言 本文介绍 ArduPilot 的相机和云台命令,并说明如何在 Mission Planner 中使用这些命令来定义相机勘测任务。这些说明假定已经连接并配置了相机触发器和云台(camera trigger and gimbal hav…...
Python 爬虫小练
Python 爬虫小练 获取贝壳网数据 使用到的模块 标准库 Python3 标准库列表 os 模块:os 模块提供了许多与操作系统交互的函数,例如创建、移动和删除文件和目录,以及访问环境变量等。math 模块:math 模块提供了数学函数…...
vue3 事件处理 @click
在Vue 3中,事件处理可以通过click指令来实现。click指令用于监听元素的点击事件,并在触发时执行相应的处理函数。 下面是一个简单的示例,展示了如何在Vue 3中处理点击事件: <template><button click"handleClick&…...
【第三阶段】kotlin语言使用replace完成加解密操作
fun main() {val password"ASDAFWEFWVWGEGSDFWEFEWGFS"println("原始密码:$password")//加密操作,就是把字符替换成数字,打乱加密var newPsdpassword.replace(Regex("[ADWF]")){when(it.value){//it.value 这里的每一个字…...
springBoot是如何实现自动装配的
目录 1 什么是自动装配 2 Spring自动装配原理 2.1 SpringBootConfiguration 编辑 2.2 EnableAutoConfiguration 2.2.1 AutoConfigurationPackage 2.2.2 Import({AutoConfigurationImportSelector.class}) 2.3 ComponentScan 1 什么是自动装配 自动装配就是将官方写好的的…...
基于python+MobileNetV2算法模型实现一个图像识别分类系统
一、目录 算法模型介绍模型使用训练模型评估项目扩展 二、算法模型介绍 图像识别是计算机视觉领域的重要研究方向,它在人脸识别、物体检测、图像分类等领域有着广泛的应用。随着移动设备的普及和计算资源的限制,设计高效的图像识别算法变得尤为重要。…...
管理类联考——逻辑——真题篇——按知识分类——汇总篇——二、论证逻辑——归纳评价——归纳谬误
文章目录 第一节 归纳谬误题-归纳评价-归纳谬误题-归纳评论-归纳谬误-比率→数量,从基数找问题真题(2019-39)-归纳评论-归纳谬误-先归纳题干错误-诉诸人身分成:①诉诸权威:某人在某方面很权威,他做什么都是对的。②人身攻击:因为过往履历有问题,所以做什么都是错的。③…...
C++适配器模式
1 简介: 适配器模式是一种结构型设计模式,用于将一个类的接口转换为客户端所期望的另一个接口。适配器模式允许不兼容的类能够协同工作,通过适配器类来实现接口的转换和适配。 2 实现步骤: 以下是使用C实现适配器模式的步骤&…...
cocos creator 设置精灵镜像翻转效果
在 Cocos Creator 中,你可以通过代码来设置精灵节点的镜像翻转效果。具体来说,你可以使用精灵节点的 setScale 方法来实现这一点。以下是在代码中设置水平镜像翻转和垂直镜像翻转的示例: // 获取精灵节点的引用 let spriteNode cc.find(&qu…...
kafka的位移
文章目录 概要消费位移__consumer_offsets主题位移提交 概要 本文主要总结kafka的位移是如何管理的,在broker端如何通过命令行查看到位移信息,并从代码层面总结了位移的提交方式。 消费位移 对于 Kafka 中的分区而言,它的每条消息都有唯一…...
大数据平台运维实训室建设方案
一、概况 本实训室的主要目的是培养大数据平台运维项目的实践能力,以数据计算、分析、挖掘和可视化的案例训练为辅助。同时,实训室也承担相关考评员与讲师培训考试、学生认证培训考试、社会人员认证培训考试、大数据技能大赛训练、大数据专业课程改革等多项任务。 实训室旨在培…...
dll调用nodejs的回调函数
nodejs使用ffi调用dll。dll中有回调函数调用js中的方法。 c语言中cdll.h文件 extern "C" {typedef void(*JsCall)(int index); //这个就是要传入的类型结构extern __declspec(dllimport) int Add(int a, int b);extern __declspec(dllexport) void CallBackTest(Js…...
网络安全--linux下Nginx安装以及docker验证标签漏洞
目录 一、Nginx安装 二、docker验证标签漏洞 一、Nginx安装 1.首先创建Nginx的目录并进入: mkdir /soft && mkdir /soft/nginx/cd /soft/nginx/ 2.下载Nginx的安装包,可以通过FTP工具上传离线环境包,也可通过wget命令在线获取安装包…...
多维时序 | MATLAB实现WOA-CNN-BiGRU-Attention多变量时间序列预测
多维时序 | MATLAB实现WOA-CNN-BiGRU-Attention多变量时间序列预测 目录 多维时序 | MATLAB实现WOA-CNN-BiGRU-Attention多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 多维时序 | MATLAB实现WOA-CNN-BiGRU-Attention多变量时间序列预测 1.程…...
金蝶软件实现Excel数据复制分录信息粘贴到单据体分录行中
>>>适合KIS云专业版V16.0|KIS云旗舰版V7.0|K/3 WISE 14.0等版本<<< 实现Excel数据复制分录信息粘贴到金蝶单据体分录中,在采购订单|采购入库单|销售订单|销售出库单等类型单据中,以少量的必要字段在excel表格中按模板填列好,很方便快捷地复制到金蝶单据表体…...
【Linux操作系统】深入探索Linux进程:创建、共享与管理
进程的创建是Linux系统编程中的重要概念之一。在本节中,我们将介绍进程的创建、获取进程ID和父进程ID、进程共享、exec函数族、wait和waitpid等相关内容。 文章目录 1. 进程的创建1.1 函数原型和返回值1.2 函数示例 2. 获取进程ID和父进程ID2.1 函数原型和返回值2.…...
【云原生、k8s】Calico网络策略
第四阶段 时 间:2023年8月17日 参加人:全班人员 内 容: Calico网络策略 目录 一、前提配置 二、Calico网络策略基础 1、创建服务 2、启用网络隔离 3、测试网络隔离 4、允许通过网络策略进行访问 三、Calico网络策略进阶 1、创…...
Unity3D 测试总结
windows 平台上导出 exe 文件 在Unity界面中,点击菜单栏的“File”,选择“Build Settings”。 在“Build Settings”窗口中,选择要生成的平台(例如Windows)。 点击“Player Settings”按钮,进入“Player Se…...
【无线点对点网络时延分析和可视化】模拟无线点对点网络中的延迟以及物理层和数据链路层之间的相互作用(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
在思科(Cisco)路由器中使用 SNMP
什么是SNMP SNMP,称为简单网络管理协议,被发现可以解决具有复杂网络设备的复杂网络环境,SNMP 使用标准化协议来查询网络上的设备,为网络管理员提供保持网络环境稳定和远离停机所需的重要信息。 为什么要在思科设备中启用SNMP S…...
GeoScene Maps避坑指南:从图层闪烁到内存泄漏的7个常见问题解决方案
GeoScene Maps深度调试指南:7个生产环境典型问题解决方案 当你在凌晨三点被警报惊醒,发现线上地图服务出现大面积图层闪烁时,那种头皮发麻的感觉我太熟悉了。作为经历过数十个GeoScene Maps项目的老兵,我想分享那些官方文档不会告…...
OpenClaw+GLM-4.7-Flash:低成本搭建24/7内容处理助手
OpenClawGLM-4.7-Flash:低成本搭建24/7内容处理助手 1. 为什么选择本地模型与OpenClaw组合 去年我在处理个人知识管理时遇到了一个典型矛盾:既需要AI辅助完成资料收集、草稿生成等重复工作,又对第三方API的隐私风险和持续成本心存顾虑。直到…...
NeMo Voice Agent:零代码构建企业级语音助手的三步解决方案
NeMo Voice Agent:零代码构建企业级语音助手的三步解决方案 【免费下载链接】NeMo NVIDIA/NeMo: 是一个用于实现语音和自然语言处理的开源框架。适合在需要进行语音和自然语言处理的任务中使用。特点是提供了一种简单、易用的 API,支持多种语音和自然语言…...
AI 模型推理性能瓶颈与优化方向
AI模型推理性能瓶颈与优化方向 随着AI技术在各行业的广泛应用,模型推理性能成为影响落地效果的关键因素。无论是实时交互场景还是大规模数据处理,推理效率直接决定了用户体验和成本控制。受限于计算资源、算法复杂度及硬件适配性等因素,AI模…...
手把手教你解决winget的InternetOpenUrl() failed错误(含GitHub镜像加速)
深度解析winget的InternetOpenUrl() failed错误及高效解决方案 当你满怀期待地打开终端,准备用winget快速安装一个开发工具时,突然跳出的"InternetOpenUrl() failed. 0x80072efd"错误提示无疑是一盆冷水。这个看似简单的网络连接问题背后&…...
usearch的代码注释规范:提高代码可读性的实践
usearch的代码注释规范:提高代码可读性的实践 【免费下载链接】usearch Fastest Open-Source Search & Clustering engine for Vectors & 🔜 Strings in C, C, Python, JavaScript, Rust, Java, Objective-C, Swift, C#, GoLang, and Wolfram …...
通达信缠论画线主图实战:手把手教你5分钟搞定中枢识别与趋势线绘制
通达信缠论画线实战指南:5分钟掌握中枢识别与趋势线绘制技巧 在股票技术分析领域,缠论因其独特的结构思维和实战价值备受投资者青睐。而通达信作为国内主流证券分析软件,其内置的画线工具与缠论理论结合,能够帮助投资者快速识别关…...
揭秘USDT混币器:从智能合约代码到浏览器控制台,一次匿名转账的完整技术栈解析
揭秘USDT混币器:从智能合约代码到浏览器控制台的技术全景 在区块链世界中,隐私保护与交易透明性似乎是一对永恒的矛盾。当每一笔USDT转账都能被链上浏览器追踪到资金流向时,一种名为"混币器"的技术方案正在用密码学重新定义匿名边界…...
告别黑屏!手把手教你为NT35510屏幕适配TouchGFX显示驱动(基于STM32CubeIDE)
深度解析NT35510屏幕与TouchGFX的驱动适配实战 在嵌入式GUI开发领域,TouchGFX凭借其流畅的动画效果和高效的渲染引擎,已成为STM32平台上的首选框架之一。然而,当开发者尝试在非官方支持的屏幕上使用TouchGFX时,底层显示驱动的适配…...
OptiScaler全攻略:多技术融合实现跨硬件游戏画质增强的创新方案
OptiScaler全攻略:多技术融合实现跨硬件游戏画质增强的创新方案 【免费下载链接】OptiScaler DLSS replacement for AMD/Intel/Nvidia cards with multiple upscalers (XeSS/FSR2/DLSS) 项目地址: https://gitcode.com/GitHub_Trending/op/OptiScaler OptiSc…...
