QG地面站
计划文件格式计划文件以JSON文件格式存储,并包含任务项目和 (可选) 地理围栏和集合点。下面您可以看到计划文件的顶级格式
小费
这是 "接近最低限度"-计划必须包含至少一个任务项目。计划围栏和集合点也用于没有任务运行的模式。
json{
"fileType": "Plan",
"geoFence": {
"circles": [],
"polygons": [],
"version": 2
},
"groundStation": "QGroundControl",
"mission": {},
"rallyPoints": {
"points": [],
"version": 2
},
"version": 1
}
主要领域是:
钥匙描述
version此文件的版本。当前版本为1。
fileType必须是"Plan"。
groundStation创建此文件的地面站的名称 (此处QGroundControl)
mission与此飞行计划相关的任务。
geoFence(可选) 此计划的地理围栏信息。
rallyPoints(可选) 此计划的反弹/安全点信息
任务对象任务对象的结构如下所示。的items字段包含以逗号分隔的任务项列表 (它必须包含至少一个任务项,如下所示)。该列表可能是两者的混合SimpleItem和ComplexItem对象。
json "mission": {
"cruiseSpeed": 15,
"firmwareType": 12,
"globalPlanAltitudeMode": 1,
"hoverSpeed": 5,
"items": [
{
"AMSLAltAboveTerrain": null,
"Altitude": 50,
"AltitudeMode": 0,
"autoContinue": true,
"command": 22,
"doJumpId": 1,
"frame": 3,
"params": [
15,
0,
0,
null,
47.3985099,
8.5451002,
50
],
"type": "SimpleItem"
}
],
"plannedHomePosition": [
47.3977419,
8.545594,
487.989
],
"vehicleType": 2,
"version": 2
},
下列值是必需的:
钥匙描述
version任务对象的版本。当前版本为2。
firmwareType为其创建此任务的固件类型。这是一个MAV_AUTOPILOT枚举值。
globalPlanAltitudeMode全局平面范围高度模式设置。这由未指定"AltitudeMode"。
vehicleType为其创建此任务的车辆类型。这是一个MAV_TYPE枚举值。
cruiseSpeed固定翼或垂直起降飞行器的默认前进速度 (即在航路点之间移动时)。
hoverSpeed多旋翼飞行器的默认前进速度。
items与任务关联的任务项目对象列表。该列表可能包含或两者SimpleItem和ComplexItem对象。
plannedHomePosition计划的原始位置显示在地图上,并在没有车辆连接时用于任务计划。上面显示的数组值是 (从顶部开始): 纬度、经度和AMSL高度。
下面给出了简单和复杂项目的格式。
SimpleItem-简单的任务项目一个简单的项目表示一个MAVLinkMISSION_ITEM命令。
{
"AMSLAltAboveTerrain": null,
"Altitude": 50,
"AltitudeMode": 0,
"autoContinue": true,
"command": 22,
"doJumpId": 1,
"frame": 3,
"params": [
15,
0,
0,
null,
47.3985099,
8.5451002,
50
],
"type": "SimpleItem"
}
字段映射如下所示。
钥匙描述
typeSimpleItem对于一个简单的项目
AMSLAltAboveTerrain显示给用户的海拔高度值。
Altitude
AltitudeMode
autoContinueMISSION_ITEM。自动继续
command命令 (MAV_CMD) 对于此任务项目-请参见MISSION_ITEM。命令。
doJumpIdDO_JUMP命令中当前任务项的目标id。它们从1开始自动编号。
frameMAV_FRAME(见MISSION_ITEM。框架)
paramsMISSION_ITEM.param1,2,3,4,x,y,z (值取决于特定的MAV_CMD)。
复杂任务项目复杂项是多个MISSION_ITEM被视为单个实体的对象。
目前有三种类型的复杂任务项目:
调查
走廊扫描
结构扫描
调查-复杂任务项目的对象定义Survey复杂的任务项目如下。
{
"TransectStyleComplexItem": {
...
},
"angle": 0,
"complexItemType": "survey",
"entryLocation": 0,
"flyAlternateTransects": false,
"polygon": [
[
-37.75170619863631,
144.98414811224316
],
...
[
-37.75170619863631,
144.99457681259048
]
],
"type": "ComplexItem",
"version": 4
},
复杂项目具有以下关联值:
钥匙描述
version此的版本号survey定义。当前版本为3。
typeComplexItem(这是一个复杂的项目)。
complexItemTypesurvey
TransectStyleComplexItem测量和道路的通用基准定义扫描复杂项目。
angle横断面路径的角度 (度)。
entryLocation?
flyAlternateTransects如果为真,则车辆将跳过每个其他横断面,然后在最后返回并飞行这些交替。这可以用于固定翼飞机,当转弯对于车辆来说太急而不能转弯时。
polygon表示多边形测量区域的多边形阵列。每个点是多边形顶点的纬度,经度对。
走廊扫描的对象定义CorridorScan复杂的任务项目如下。
{
"CorridorWidth": 50,
"EntryPoint": 0,
"TransectStyleComplexItem": {
...
},
},
"complexItemType": "CorridorScan",
"polyline": [
[
-37.75234887156983,
144.9893624624168
],
...
[
-37.75491914850321,
144.9893624624168
]
],
"type": "ComplexItem",
"version": 2
},
钥匙描述
version此版本CorridorScan定义。当前版本为3。
typeComplexItem(这是一个复杂的项目)。
complexItemTypeCorridorScan
CorridorWidth?
EntryPoint?
TransectStyleComplexItem测量和道路的通用基准定义扫描复杂项目。
polyline?
结构扫描的对象定义StructureScan复杂的任务项目如下。
json {
"Altitude": 50,
"CameraCalc": {
"AdjustedFootprintFrontal": 25,
"AdjustedFootprintSide": 25,
"CameraName": "Manual (no camera specs)",
"DistanceToSurface": 10,
"DistanceToSurfaceRelative": true,
"version": 1
},
"Layers": 1,
"StructureHeight": 25,
"altitudeRelative": true,
"complexItemType": "StructureScan",
"polygon": [
[
-37.753184359536355,
144.98879374063998
],
...
[
-37.75408368012594,
144.98879374063998
]
],
"type": "ComplexItem",
"version": 2
}
钥匙描述
version此版本StructureScan定义。当前版本为2。
typeComplexItem(这是一个复杂的项目)。
complexItemTypeStructureScan
Altitude?
CameraCalc?
Layers?
StructureHeight?
altitudeRelativetrue:altitude是相对于家的,false:altitude是AMSL.
polygon?
TransectStyleComplexItemTransectStyleComplexItem包含的公共基础定义survey和CorridorScan复杂的项目。
json "TransectStyleComplexItem": {
"CameraCalc": {
...
},
"CameraTriggerInTurnAround": true,
"FollowTerrain": false,
"HoverAndCapture": false,
"Items": [
...
],
"Refly90Degrees": false,
"TurnAroundDistance": 10,
"VisualTransectPoints": [
[
-37.75161626657736,
144.98414811224316
],
...
[
-37.75565155437309,
144.99438539496475
]
],
"version": 1
},
钥匙描述
version此版本TransectStyleComplexItem定义。当前版本为1。
CameraCalc?
CameraTriggerInTurnAround?(布尔值)
FollowTerrain?(布尔值)
HoverAndCapture?(布尔值)
Items?
Refly90Degrees?(布尔值)
TurnAroundDistance在转向下一个横断面之前飞过多边形边的距离。
VisualTransectPoints?
CameraCalc的CameraCalc包含用于测量、道路或结构扫描的相机信息。
"CameraCalc": {
"AdjustedFootprintFrontal": 272.4,
"AdjustedFootprintSide": 409.2,
"CameraName": "Sony ILCE-QX1",
"DistanceToSurface": 940.6896551724138,
"DistanceToSurfaceRelative": true,
"FixedOrientation": false,
"FocalLength": 16,
"FrontalOverlap": 70,
"ImageDensity": 25,
"ImageHeight": 3632,
"ImageWidth": 5456,
"Landscape": true,
"MinTriggerInterval": 0,
"SensorHeight": 15.4,
"SensorWidth": 23.2,
"SideOverlap": 70,
"ValueSetIsDistance": false,
"version": 1
},
钥匙描述
version此版本CameraCalc定义。当前版本为1。
AdjustedFootprintFrontal?
AdjustedFootprintSide?
DistanceToSurface?单位?
DistanceToSurfaceRelative?
CameraName正在使用的相机名称 (必须与已知的相机之一相对应QGroundControl或:Manual (no camera specs)对于手动设置,Custom Camera对于自定义设置。此点之后列出的键未指定 "手动" 摄像机定义。
FixedOrientation?(布尔值)
FocalLength相机镜头的焦距以毫米为单位。
FrontalOverlap正面图像重叠的百分比。
ImageDensity?
ImageHeightpx中的图像高度
ImageWidth图像宽度 (px)
Landscapetrue: 摄像机以横向安装在车辆上,false: 摄像机纵向安装在车辆上。
MinTriggerInterval?
SensorHeight以毫米为单位的传感器高度。
SensorWidth以毫米为单位的传感器宽度。
SideOverlap侧面图像重叠的百分比。
ValueSetIsDistance?(布尔值)
地理围栏地理围栏信息是可选的。该计划可以包含根据多边形和圆形定义的任意数量的地理围栏。
最小定义如下所示。
json "geoFence": {
"circles": [
],
"polygons": [
],
"version": 2
},
字段是:
钥匙描述
version地理围栏计划格式的版本号。记录的版本是2。
circles包含圆形地理围栏定义的列表 (以逗号分隔)。
polygons包含多边形地理围栏定义的列表 (逗号分隔)。
圆地理围栏每个圆形地理围栏都在单独的项目中定义,如下所示 (可以定义多个逗号分隔的项目)。这些项目定义了圆的中心和半径,以及是否激活了特定的地理围栏。
json{
"circle": {
"center": [47.39756763610029, 8.544649762407738],
"radius": 319.85
},
"inclusion": true,
"version": 1
}
字段是:
钥匙描述
versiongeofence "circle" 计划格式的版本号。记录的版本是1。
circle圆的定义。包括centre(纬度,经度) 和radisu如上所示。
inclusion地理围栏是启用 (true) 还是禁用。
多边形地理围栏每个多边形地理围栏都在单独的项目中定义,如下所示 (可以定义多个逗号分隔的项目)。地理围栏包括一组用顺时针缠绕定义的点 (即它们必须包围一个区域)。
json {
"inclusion": true,
"polygon": [
[
47.39807773798406,
8.543834631785785
],
[
47.39983519888905,
8.550024648373267
],
[
47.39641100087146,
8.54499282423751
],
[
47.395590322265186,
8.539435808992085
]
],
"version": 1
}
],
"version": 2
}
字段是:
钥匙描述
version地理围栏 "polygon" 计划格式的版本号。记录的版本是2。
polygon多边形的点列表。每个点包含一个纬度和经度。这些点按顺时针方向排列。
inclusion地理围栏是启用 (true) 还是禁用。
拉力点集结点信息是可选的。该计划可以包含任意数量的集合点,每个集合点都有纬度,经度和高度 (高于原始位置)。
具有两点的定义如下所示。
json
"rallyPoints": {
"points": [
[
47.39760401,
8.5509154,
50
],
[
47.39902017,
8.54263274,
50
]
],
"version": 2
}
字段是:
钥匙描述
version集合点计划格式的版本号。记录的版本是2。
points集合点列表。