waylines.wpml 说明
文件介绍
waylines.wpml
是无人机直接执行的文件,它定义了明确的无人机飞行和负载动作指令,这些指令由航线规划软件生成,也可被开发者直接编辑开发。waylines.wpml
文件由两部分组成:
- 任务信息:主要包含
wpml:missionConfig
元素,定义航线任务的全局参数等。 - 航线信息:主要包含
Folder
元素,定义详细的航线信息(路径定义、动作定义等)。每个Folder
代表一条可执行的航线。特别的,当使用“倾斜摄影”模板时,将生成5条可执行航线,对应waylines.wpml
内的5个Folder
元素。
示例文件
waylines.wpml
示例文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns:wpml="http://www.autel.com/wpmz/1.0.0" xmlns="http://www.opengis.net/kml/2.2">
<Document>
<!-- Step 1: Setup Mission Configuration -->
<wpml:missionConfig>
<wpml:flyToWaylineMode>safely</wpml:flyToWaylineMode>
<wpml:finishAction>goHome</wpml:finishAction>
<wpml:exitOnRCLost>goContinue</wpml:exitOnRCLost>
<wpml:executeRCLostAction>hover</wpml:executeRCLostAction>
<wpml:takeOffSecurityHeight>20</wpml:takeOffSecurityHeight>
<wpml:globalTransitionalSpeed>10</wpml:globalTransitionalSpeed>
<!-- Declare drone model with M4T -->
<wpml:droneInfo>
<wpml:droneEnumValue>1100</wpml:droneEnumValue>
<wpml:droneSubEnumValue>0</wpml:droneSubEnumValue>
</wpml:droneInfo>
<!-- Declare drone model with M4T -->
<wpml:payloadInfo>
<wpml:payloadEnumValue>10052</wpml:payloadEnumValue>
<wpml:payloadSubEnumValue>0</wpml:payloadSubEnumValue>
<wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
</wpml:payloadInfo>
</wpml:missionConfig>
<!-- Step 2: Setup A Folder for Waypoint Template -->
<Folder>
<wpml:templateId>0</wpml:templateId>
<wpml:executeHeightMode>WGS84</wpml:executeHeightMode>
<wpml:waylineId>0</wpml:waylineId>
<wpml:autoFlightSpeed>10</wpml:autoFlightSpeed>
<Placemark>
<Point>
<coordinates>
longitude,latitude
</coordinates>
</Point>
<wpml:index>0</wpml:index>
<wpml:executeHeight>116.57</wpml:executeHeight>
<wpml:waypointSpeed>10</wpml:waypointSpeed>
<wpml:waypointHeadingParam>
<wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
</wpml:waypointHeadingParam>
<wpml:waypointTurnParam>
<wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
<wpml:waypointTurnDampingDist>0</wpml:waypointTurnDampingDist>
</wpml:waypointTurnParam>
</Placemark>
<Placemark>
<Point>
<coordinates>
longitude,latitude
</coordinates>
</Point>
<wpml:index>1</wpml:index>
<wpml:executeHeight>116.57</wpml:executeHeight>
<wpml:waypointSpeed>7</wpml:waypointSpeed>
<wpml:waypointHeadingParam>
<wpml:waypointHeadingMode>followWayline</wpml:waypointHeadingMode>
</wpml:waypointHeadingParam>
<wpml:waypointTurnParam>
<wpml:waypointTurnMode>toPointAndStopWithDiscontinuityCurvature</wpml:waypointTurnMode>
<wpml:waypointTurnDampingDist>0</wpml:waypointTurnDampingDist>
</wpml:waypointTurnParam>
<!-- Declare action group for waypoint 1# -->
<wpml:actionGroup>
<wpml:actionGroupId>0</wpml:actionGroupId>
<wpml:actionGroupStartIndex>1</wpml:actionGroupStartIndex>
<wpml:actionGroupEndIndex>1</wpml:actionGroupEndIndex>
<wpml:actionGroupMode>sequence</wpml:actionGroupMode>
<wpml:actionTrigger>
<wpml:actionTriggerType>reachPoint</wpml:actionTriggerType>
</wpml:actionTrigger>
<!-- Declare the 1st action: rotate gimbal -->
<wpml:action>
<wpml:actionId>0</wpml:actionId>
<wpml:actionActuatorFunc>gimbalRotate</wpml:actionActuatorFunc>
<wpml:actionActuatorFuncParam>
<wpml:gimbalRotateMode>absoluteAngle</wpml:gimbalRotateMode>
<wpml:gimbalPitchRotateEnable>0</wpml:gimbalPitchRotateEnable>
<wpml:gimbalPitchRotateAngle>0</wpml:gimbalPitchRotateAngle>
<wpml:gimbalRollRotateEnable>0</wpml:gimbalRollRotateEnable>
<wpml:gimbalRollRotateAngle>0</wpml:gimbalRollRotateAngle>
<wpml:gimbalYawRotateEnable>1</wpml:gimbalYawRotateEnable>
<wpml:gimbalYawRotateAngle>30</wpml:gimbalYawRotateAngle>
<wpml:gimbalRotateTimeEnable>0</wpml:gimbalRotateTimeEnable>
<wpml:gimbalRotateTime>0</wpml:gimbalRotateTime>
<wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
</wpml:actionActuatorFuncParam>
</wpml:action>
<!-- Declare the 2nd action: take photo -->
<wpml:action>
<wpml:actionId>1</wpml:actionId>
<wpml:actionActuatorFunc>takePhoto</wpml:actionActuatorFunc>
<wpml:actionActuatorFuncParam>
<wpml:fileSuffix>point1</wpml:fileSuffix>
<wpml:payloadPositionIndex>0</wpml:payloadPositionIndex>
</wpml:actionActuatorFuncParam>
</wpml:action>
</wpml:actionGroup>
</Placemark>
</Folder>
</Document>
</kml>
元素说明
任务信息(父元素:<wpml:missionConfig>
)
元素 | 名称 | 类型 | 单位 | 取值与释义 | 是否必需(默认值) | 支持机型 |
---|---|---|---|---|---|---|
wpml:flyToWaylineMode | 飞向首航点模式 | 枚举-string | - | safely:安全模式 无人机起飞,上升至首航点高度,再平飞至首航点。如果首航点低于“安全起飞高度”,则起飞至“安全起飞高度”后,平飞至首航点上方再下降。注意“安全起飞高度”仅在无人机未起飞时生效。 pointToPoint:倾斜飞行模式 无人机起飞至“安全起飞高度”,再倾斜爬升至首航点。如果首航点高度低于“安全起飞高度”,则先平飞后下降。 | 必需元素 | M4T/M4N |
wpml:finishAction | 航线结束动作 | 枚举-string | - | goHome:无人机完成航线任务后,退出航线模式并返航。 noAction:无人机完成航线任务后,退出航线模式。 autoLand:无人机完成航线任务后,退出航线模式并原地降落。 gotoFirstWaypoint:无人机完成航线任务后,立即飞向航线起始点,到达后退出航线模式。* 注:以上动作执行过程,若无人机退出了航线模式且进入失控状态,则会优先执行失控动作。 | 必需元素 | M4T/M4N |
wpml:exitOnRCLost | 失控是否继续执行航线 | 枚举-string | - | goContinue:继续执行航线 executeLostAction:退出航线,执行失控动作 | 必需元素 | M4T/M4N |
wpml:executeRCLostAction | 失控动作类型 | 枚举-string | - | goBack:返航。无人机从失控位置飞向起飞点 landing:降落。无人机从失控位置原地降落 hover:悬停。无人机从失控位置悬停 | 无,当wpml:exitOnRCLost为executeLostAction时为必需元素 | M4T/M4N |
wpml:takeOffSecurityHeight | 安全起飞高度 | 浮点型 | m | [2, 1500] (高度模式:相对起飞点高度) * 注:无人机起飞后,先爬升至该高度,再根据“飞向首航点模式”的设置飞至首航点。该元素仅在无人机未起飞时生效。 | 必需元素 | M4T/M4N |
wpml:globalTransitionalSpeed | 全局航线过渡速度 | 浮点型 | m/s | [1,15] * 注:无人机飞往每条航线首航点的速度。航线任务中断时,无人机从当前位置恢复至断点的速度。 | 必需元素 | M4T/M4N |
wpml:globalRTHHeight | 全局返航高度 | 浮点型 | m | *注:无人机返航时,先爬升至该高度,再进行返航 | 必需元素 | M4T/M4N |
wpml:droneInfo | 无人机机型信息 | - | - | 注:请在共用元素信息章节阅读详细信息 | - | M4T/M4N |
wpml:payloadInfo | 负载机型信息 | - | - | 注:请在共用元素信息章节阅读详细信息 | - | M4T/M4N |
wpml:autoRerouteInfo | 航线绕行 | - | - | - | - | - |
航线信息(父元素:<Folder>
)
元素 | 名称 | 类型 | 单位 | 取值与释义 | 是否必需(默认值) | 支持机型 |
---|---|---|---|---|---|---|
wpml:templateId | 模板ID * 注:在一个kmz文件内该ID唯一。建议从0开始单调连续递增。在template.kml和waylines.wpml文件中,将使用该id将模板与所生成的可执行航线进行关联。 | 整型 | - | [0, 65535] | 必需元素 | M4T/M4N |
wpml:waylineId | 航线ID * 注:在一条航线中该ID唯一。建议从0开始单调连续递增。 | 整型 | - | [0, 65535] | 必需元素 | M4T/M4N |
wpml:autoFlightSpeed | 全局航线飞行速度 | 浮点型 | m/s | [1,15] * 注:此元素定义了此模板生成的整段航线中,无人机的目标飞行速度。如果额外定义了某航点的该元素,则局部定义会覆盖全局定义。 | 必需元素 | M4T/M4N |
wpml:executeHeightMode | 执行高度模式 * 注:该元素仅在waylines.wpml中使用。 | 枚举-string | - | WGS84:椭球高模式 relativeToStartPoint:相对起飞点高度模式 realTimeFollowSurface: 使用实时仿地模式,暂不支持。 | 必需元素 | M4T/M4N |
Placemark(Point) | 航点信息(包括航点经纬度和高度等) | - | - | 请阅读文档内容,航线文件格式 > template.kml 说明 > Placemark | - | M4T/M4N |
wpml:startActionGroup | 航线初始动作 *注:该元素用于规划一系列初始动作,在航线开始前执行。航线中断恢复时,先执行初始动作,再执行航点动作 | - | - | 拓展阅读:共用元素信息中的 <wpml:actionGroup> | - | M4T/M4N |
航点信息(<Placemark>
)
元素 | 名称 | 类型 | 单位 | 取值与释义 | 是否必需(默认值) | 支持机型 |
---|---|---|---|---|---|---|
Point | 航点经纬度<经度,纬度> * 注:此处格式如“ <Point> <coordinates> 经度,纬度 </coordinates> </Point> ” | 浮点型 | °,° | [-90,90],[-180,180] | 必需元素 | M4T/M4N |
wpml:index | 航点序号 * 注:在一条航线内该ID唯一。该序号必须从0开始单调连续递增。 | 整型 | - | [0, 65535] | 必需元素 | M4T/M4N |
wpml:executeHeight | 航点执行高度 * 注:该元素仅在waylines.wpml中使用。具体高程参考平面在“wpml:executeHeightMode”中声明。 | 浮点型 | m | - | 必需元素 | M4T/M4N |
wpml:waypointSpeed | 航点飞行速度,当前航点飞向下一个航点的速度 | 浮点型 | m/s | [1, 15] | 必需元素 * 注:当且仅当“wpml:useGlobalSpeed”为“0”时必需 | M4T/M4N |
wpml:waypointHeadingParam | 偏航角模式参数 | - | - | - | 必需元素 * 注:当且仅当“wpml:useGlobalHeadingParam”为“0”时必需 | M4T/M4N |
wpml:waypointTurnParam | 航点类型(航点转弯模式) | - | - | - | 必需元素 * 注:当且仅当“wpml:useGlobalTurnParam”为“0”时必需 | M4T/M4N |
wpml:useStraightLine | 该航段是否贴合直线 | 布尔型 | - | 0:航段轨迹全程为曲线 1:航段轨迹尽量贴合两点连线 | 必需元素 * 注:当且仅当“wpml:waypointTurnParam”内"waypointTurnMode"被设置为“toPointAndStopWithContinuityCurvature”或“toPointAndPassWithContinuityCurvature”时必需。如果此元素被设置,则局部定义会覆盖全局定义。 | M4T/M4N |
wpml:formationInfo | 航线编队信息 | 注:请在共用元素信息章节阅读详细信息 | - | M4T/M4N |