无人机智能硬件【免费下载链接】qgroundcontrolCross-platform ground control station for drones (Android, iOS, Mac OS, Linux, Windows)项目地址https://gitcode.com/gh_mirrors/qg/qgroundcontrol点击查看免费下载导读QGroundControlQGC的Plan View计划视图通过Pattern 工具让用户无需逐条编写 MAVLink 任务指令即可用图形化方式规划复杂的航测与降落航线。本文以官方用户指南的 pattern 概述 为主线完整讲解 Survey多边形区域网格航测、Structure Scan结构立面扫描、Corridor Scan走廊扫描与 Fixed Wing Landing固定翼降落四种模式工具的适用机型、创建流程、全部参数含义并结合 MissionManager 源码 揭示其底层实现原理如相机足迹计算、转弯距离、地形跟随、降落三指令序列等。读完本文你将能针对具体任务场景选择合适的 Pattern并在计划视图中完成一次可上传的复杂任务规划。Pattern 工具总览在计划视图左侧的Plan Tools工具条中Pattern工具用于把复杂的几何飞行任务简化成一次图形化点击。点击按钮后可用的模式类型取决于当前所选的飞行器机型以及飞行栈对该机型的支持程度。Pattern 工具描述适用机型Survey在多边形区域上创建网格飞行航测。可指定多边形形状、网格规格以及适合生成带地理标签影像的相机设置全部机型Structure Scan创建在垂直表面多边形或圆形上采集影像的网格航线典型用于结构物目视巡检或三维建模MultiCopter、VTOLCorridor Scan创建沿折线poly-line飞行的航线例如用于公路巡检全部机型Fixed Wing Landing为固定翼飞行器在任务中加入降落航线Fixed Wing如果当前机型可用多种模式点击按钮会弹出下拉菜单供选择见 plan_view.md 的Pattern小节。在源码层面每种模式对应MissionManager中的一个独立类全部继承自ComplexMissionItemSurveyComplexItemSurveyComplexItem.h继承TransectStyleComplexItemCorridorScanComplexItemCorridorScanComplexItem.h同样继承TransectStyleComplexItemStructureScanComplexItemStructureScanComplexItem.h直接继承ComplexMissionItemFixedWingLandingComplexItemFixedWingLandingComplexItem.h继承LandingComplexItem。这种“复杂任务项”的设计使得模式可以在计划视图中作为一个整体被拖拽、缩放、旋转并在保存/上传时被展开为若干基础任务指令MissionItem。Survey多边形区域网格航测Survey允许你在多边形区域内创建一个网格状飞行航线。你可以指定任意多边形、网格角度与其他网格属性以及适合生成带地理标签影像的相机设置。其源码实现对应SurveyComplexItemcanonicalName为 SurveySurveyComplexItem.h。创建流程打开 PlanView 的Plan Tools在Plan Tools中选择Pattern Tool然后选择Survey。地图上会出现一个航测网格右侧任务列表中也会出现一个Survey任务项在地图上拖动顶点改变多边形形状点击相邻顶点之间的()符号创建新顶点新顶点可继续拖到目标位置。相机设置Camera相机触发行为取决于相机及其设置。你可以选择已存在的相机Known Camera、自定义相机Custom Camera或手动输入参数Manual Camera。三者的底层都由 CameraCalc 驱动它继承自CameraSpec负责根据相机参数实时反算飞行高度、触发距离与网格间距。已知相机Known Camera从下拉列表选择相机会根据相机参数生成网格模式默认设置可通过以下选项调优Landscape/Portrait横屏/竖屏相机相对飞行器“正常”朝向的旋转方向Overlap重叠率每次影像采集之间的重叠可分别针对沿航线方向frontal overlap与跨航线方向side overlap配置。对应源码中的frontalOverlap与sideOverlap两个 FactCameraCalc.h二者选其一Altitude飞行高度指定航测高度地面分辨率据此计算并显示Ground resolution地面分辨率指定每张影像的地面分辨率所需飞行高度被计算并显示。自定义相机Custom Camera除与已知相机相同的选项外还需手动填写相机特性参数对应 CameraSpec.h 中的字段Sensor width/height传感器宽/高相机图像传感器尺寸Image width/height影像宽/高相机采集影像的分辨率Focal Length焦距镜头焦距。手动相机Manual Camera直接指定期望的航测高度、触发间隔和合适网格间距Altitude高度整个网格的飞行高度Trigger Distance触发距离相邻两次相机拍摄之间的地面距离Spacing间距走廊内相邻网格航线线之间的距离。源码注释揭示了实现细节即便是手动网格QGC 也复用CameraCalc来存储参数——网格高度对应distanceToSurface、网格高度模式对应distanceMode、触发距离对应adjustedFootprintFrontal、航线间距对应adjustedFootprintSideCameraCalc.h。这种复用极大简化了手动网格的代码与持久化逻辑。航线设置TransectsTransects用于配置与相机无关的网格设置在SurveyComplexItem中对应gridAngle、turnAroundDistance、flyAlternateTransects、splitConcavePolygons等 FactSurveyComplexItem.hAngle角度网格线相对正北的角度Turnaround dist转弯距离在航测区域之外额外添加的掉头距离。源码中对应turnAroundDistance多旋翼还有独立的TurnAroundDistanceMultiRotor默认值见 TransectStyleComplexItem.hRotate Entry Point旋转入口点按下按钮交换航测的起点与终点对应rotateEntryPoint()方法SurveyComplexItem.hHover and capture image悬停拍照仅限多旋翼悬停并采集影像对应hoverAndCapture源码中悬停拍照的延迟常量为 4 秒见 TransectStyleComplexItem.hRefly at 90 degree offset90° 偏移重飞勾选后整个任务以 90 度偏移重飞一遍对应refly90DegreesImages in turnarounds转弯处拍照勾选后转弯时也采集影像对应cameraTriggerInTurnAroundRelative altitude相对高度勾选后指定高度相对于 home 点否则为 AMSL平均海平面高度。地形跟随Terrain Following默认情况下飞行器以固定高度沿航测路径飞行。启用Terrain Following后飞行器相对地面保持恒定高度。地形高度数据查询自 AirMap 服务器官方文档说明。可配置项对应 TransectStyleComplexItem.h 中的三个 FactVehicle follows terrain勾选启用地形跟随并显示下列选项Tolerance相对目标高度的允许偏差Max Climb Rate跟随地形时的最大爬升率Max Descent Rate跟随地形时的最大下降率。官方警告若航测区域高程变化显著应考虑启用地形跟随。按相机参数规划航测时默认假定地面与起飞/home 位置同高若实际地面高程更高或更低影像有效重叠会分别小于或大于计算值。当地面高程显著高于 home 位置时甚至可能规划出导致飞行器撞入地面障碍物的航线。地形跟随能保证航线更贴近“相对地面高度”降低规划航线过低的风险。统计信息StatisticsStatistics展示计算出的航测面积、拍照间隔、照片间距与计划照片总数。Structure Scan垂直表面网格扫描Structure Scan用于在结构物如墙体的垂直表面上创建网格航线结构物底面可为任意多边形或圆形。典型用途是结构物目视巡检或创建三维模型。注意两点官方说明新版 Structure Scan 无法读取旧版计划旧计划需要重新创建该功能 ArduPilot 固件尚不支持PX4 支持。其源码实现对应StructureScanComplexItem。一次扫描会把结构物均匀分为若干层飞行器以某一高度、距结构物scan distance的距离环绕一圈然后逐层重复直到整个表面扫描完毕。绿色多边形标记结构物地面轮廓其外圈的白色线为飞行路径路径上绿色带编号的圆圈是扫描的进入/退出点。创建流程在Plan View中选择Pattern tool Structure Scan地图上会生成一个简单的方形扫描。绿色区域需要修改使其包围结构物把不透明顶点拖到结构物边缘若结构物底面不是简单方形点击顶点间的半透明圆圈创建新顶点点击中心的“顶点”红色标记可在弹出菜单中选择Circle切换为圆形底面。弹窗中也可切回多边形并可调整半径与位置拖动中心顶点可移动圆心其余配置在视图右侧的Structure Scan编辑器中进行。先选择手动扫描manual、使用特定相机known camera或自定义相机custom camera。官方说明指出各模式的主要区别在于预置相机已正确配置了有效层高与触发距离的计算。通用设置以下设置任何模式下都可配置Start scan from top/bottom图层扫描方向自顶向下或自底向上Structure height被扫描物体的高度Scan distance结构物到飞行路径的距离Entrance/Exit Alt用于避开最后一个/下一个航点与结构物之间的障碍物。飞行器先飞到此高度到达进入/退出点再下降到初始图层开始扫描扫描结束后爬升到此高度再飞往下一航点Scan Bottom Alt用于避开结构物底部的障碍物把结构物底部抬高到地面以上从而抬高首个扫描图层的高度最低图层的航线高度会作为Bottom Layer Alt显示在统计信息中Rotate Entry Point把起点/终点移动到航线上的下一个顶点/位置。相机模式相关设置手动模式Manual ModeLayer height每层的高度Trigger Distance每次相机触发的间隔。相机仅在飞图层路径时触发图层间过渡时不触发Gimbal Pitch扫描时使用的云台俯仰角源码中对应gimbalPitchName与_updateGimbalPitch/_recalcScanDistance见 StructureScanComplexItem.h。已知/预置相机Known/pre-defined cameras根据所需影像重叠自动计算层高与触发间隔并允许在扫描距离与所需影像分辨率之间权衡同时确保拍摄时相机正对表面即垂直而非切线方向。设置项Camera Orientation竖屏或横屏OverlapFront Lap上下方向影像重叠增大则层高变小、层数变多Side Lap侧面影像重叠增大则每圈/每层拍摄更多影像Scan distance结构物到航线的距离Ground Res所需影像分辨率/表面采样质量。自定义相机Custom camera可自行输入相机特性其余行为与预置相机一致。Corridor Scan折线走廊扫描Corridor Scan创建沿折线飞行的航线例如用于公路巡检。它支持所有飞控与机型。其源码实现对应CorridorScanComplexItem继承TransectStyleComplexItem。创建流程打开 PlanView 的Plan Tools选择Pattern Tool后选择Corridor Scan地图上出现走廊右侧任务列表出现Corridor Scan任务项在地图上把走廊两端分别拖到扫描的起始与结束位置点击线段中央的()符号创建新顶点拖动顶点使走廊贴合目标路径。相机设置已知相机Known Camera根据相机规格生成网格Landscape/Portrait相机相对飞行器“正常”朝向的旋转Image Overlap每张影像之间的重叠二者选其一Altitude航测高度地面分辨率据此计算显示Ground resolution每张影像的地面分辨率所需高度被计算显示。手动相机Manual CameraAltitude航测高度Trigger Distance相邻拍摄之间的地面距离Spacing走廊内相邻航线之间的间距。走廊设置CorridorWidth以折线路径为中心线的扫描宽度Turnaround dist航测区域外额外添加的掉头距离Take images in turnarounds勾选后在转弯点采集影像Relative altitude勾选使用相对高度仅支持未启用地形跟随的手动网格Rotate entry point交换走廊扫描的起点与终点。地形跟随与统计与 Survey 一致默认固定高度飞行启用Terrain Following后相对地面保持恒定高度地形数据来自 AirMap 服务器。可配置Vehicle follows terrain、Tolerance、Max Climb Rate、Max Descent Rate。官方同样强调按相机参数规划时地面高程被假定与 home 点相同若区域高程差异大应使用地形跟随避免航线过低撞入树木、障碍物或地面。Statistics展示扫描面积、拍照间隔、照片间距与计划照片数。Fixed Wing Landing固定翼降落航线Fixed Wing Landing Pattern工具向任务中加入固定翼降落航线ArduPilot 与 PX4 均支持。航线第一个点是带特定高度的盘旋点loiter point第二个点是降落点landing point飞行器先在第一个点盘旋直至达到目标高度然后开始降落序列飞向指定降落点。源码实现对应FixedWingLandingComplexItem继承LandingComplexItem见 FixedWingLandingComplexItem.h。创建流程打开 PlanView 的Plan Tools选择Pattern Tool后选择Fixed Wing Landing Pattern右侧任务列表出现Landing Pattern任务项在地图上点击创建盘旋点与降落点二者均可拖动调整。盘旋点设置Loiter PointAltitude盘旋高度Radius盘旋半径Loiter clockwise勾选顺时针盘旋默认逆时针。降落点设置Landing PointHeading从盘旋点到降落点的航向Altitude降落点高度名义上为零单选按钮二选一Landing Dist盘旋点与降落点之间的距离Glide Slope盘旋点与降落点之间的下滑角Altitudes relative to home勾选后任务项中所有高度相对于 home默认 AMSL。实现原理Implementation此模式会创建三个任务指令FixedWingLandingComplexItem.h 及其实现所展开的任务序列官方文档明确列出DO_LAND_START若中止降落会向飞行器发送DO_GO_AROUND任务将回到此点重新尝试降落NAV_LOITER_TO_ALT降落起点NAV_LAND降落终点。飞行器在NAV_LOITER_TO_ALT与NAV_LAND之间由固件生成的飞行路径拉飘降落flare。若这两点违反飞行器的拉飘约束例如下滑角过陡在把无效任务上传到飞行器后会报错。PX4 上违反拉飘约束会在上传时向地面站发送错误消息且飞控会因完整性检查失败而拒绝启动任务。深入Pattern 任务的统一生成机制4 种模式看似独立但共享一套成熟的任务生成架构继承体系Survey 与 Corridor Scan 共享TransectStyleComplexItem航测风格任务项它封装了航线重建_rebuildTransectsPhase1、相机触发_recalcCameraShots、转弯距离、悬停拍照、90° 重飞等通用逻辑TransectStyleComplexItem.hSurvey 在此基础上增加网格角度、交替航线、凹多边形拆分等特性SurveyComplexItem.h相机计算所有带相机参数的模式统一由CameraCalc继承CameraSpec计算影像足迹与触发距离。imageFootprintSide/imageFootprintFrontal两个属性由相机属性实时推导CameraCalc.h重叠率则通过adjustedFootprintSide/adjustedFootprintFrontal修正后的足迹参与网格密度计算计划生成器SurveyPlanCreator、CorridorScanPlanCreator、StructureScanPlanCreator见 MissionManager 目录负责把图形化模式转换成可供上传的任务指令序列任务展开最终所有模式项都会被展开为底层MissionItemMAVLink 指令经 MissionController 上传到飞行器。对航测与扫描类模式Survey.SettingsGroup.json、CorridorScan.SettingsGroup.json、StructureScan.SettingsGroup.json、TransectStyle.SettingsGroup.json等文件定义了各参数的默认值与元数据MissionManager 目录而FWLandingPattern.FactMetaData.json与LandingComplexItem则支撑固定翼降落模式。结语与选型建议综合官方文档与源码实现选择 Pattern 工具时可参考以下原则平面区域测绘/正射影像选择 Survey重点配置相机重叠率与地面分辨率并对起伏地形启用 Terrain Following墙体、立面巡检或三维建模选择 Structure Scan多旋翼/VTOL按相机自动计算层高与触发距离并用 Entrance/Exit Alt 与 Scan Bottom Alt 规避障碍线状地物公路、河道、管道选择 Corridor Scan通过 Width 控制覆盖带宽度固定翼落地航线选择 Fixed Wing Landing注意拉飘约束PX4 上违反约束会在上传时被飞控拒绝。如需进一步了解计划视图整体操作可阅读 plan_view.md每种模式的完整参数细节可分别查看 pattern_survey.md、pattern_structure_scan_v2.md、pattern_corridor_scan.md 与 pattern_fixed_wing_landing.md。赞分享无人机智能硬件【免费下载链接】qgroundcontrolCross-platform ground control station for drones (Android, iOS, Mac OS, Linux, Windows)项目地址https://gitcode.com/gh_mirrors/qg/qgroundcontrol点击查看免费下载相关推荐QGroundControl 固定翼着陆航线模式Fixed Wing Landing Pattern完整指南规划、参数配置与源码实现解析QGroundControl 固定翼着陆航线模式Fixed Wing Landing Pattern完整指南规划、参数配置与源码实现解析 固定翼着陆航线模无人机智能硬件Velero Restore 完全参考velero restore 命令、恢复流程、资源顺序与 PV/PVC 恢复机制Velero Restore 完全参考velero restore 命令、恢复流程、资源顺序与 PV/PVC 恢复机制 本文基于 Velero 官方文档《Re无人机智能硬件QGroundControl Structure Scan结构扫描航线规划完整指南从多边形编辑到相机触发参数QGroundControl Structure Scan结构扫描航线规划完整指南从多边形编辑到相机触发参数 Structure Scan结构扫描是无人机智能硬件上一篇RedisInsight 新手上手连接、浏览、排障三步跑通免费的 Redis 可视化管理下一篇WSL C 容器 APIContainerState 状态枚举详解与源码级实现剖析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考