-
Notifications
You must be signed in to change notification settings - Fork 0
Waypoint
本文档描述此 Feature 的 JSON 数据格式,关于其调用方法,可到此处查看。
Waypoint Feature 可以让飞机按照指定的 GPS 点序列来自动飞行。通过 JSON 指定 Waypoint Feature 的一系列属性,以及其 GPS 序列。所有坐标系数据均采用 WGS84 坐标,也就是我们通常所指的标准 GPS 坐标。从 Missoin Component 中的 Map 获取到的 GPS 坐标即为 WGS84 坐标。
{
"type": "waypointFeature",
"data": {
// Automatic speed of aircraft, with range [0, 15] m/s
"speed": 10,
// Optional, refers to section below
"headingMode": 0,
// Optional, refer to section below
"resumeAction": actionJson,
// Optional, if setted, aircraft will always be heading to
// the point while executing feature
"pointOfInterest": {
"lat": xxx,
"lng": xxx
},
// Waypoint count must in range [2, 99]
// Section below would mention about waypoint
// more detailly
"waypoints": [
{
"lat": 23.11235793568096,
"lng": 113.3242636120849,
"altitude": 120,
"heading": 0, // Optional
"turnMode": 0, // Optional
"actions": [ // Optional
{
"type": "shootPhoto",
"param": xxx
}
],
"finishAction": actionJson, // Optional
},
{
"lat": 23.11249301324579,
"lng": 113.3242636120849,
"altitude": 120
},
...
],
}
}
指定飞机执行 WaypointFeature 时的机头朝向模式,默认为 0,也就是 auto 模式。所有可用模式如下:
Type | Mode | Description |
---|---|---|
0 | auto | Aircraft's heading will always be in the direction of flight. |
1 | usingInitialDirection | Aircraft's heading will be set to the heading when reaching the first waypoint. Before reaching the first waypoint, the aircraft's heading can be controlled by the remote controller. When the aircraft reaches the first waypoint, its heading will be fixed. |
2 | controledByRemoteController | Aircraft's heading will be controlled by the remote controller. |
3 | usingWaypointHeading | Aircraft's heading will be gradually set to the next waypoint heading while travelling between two adjacent waypoints. |
4 | towardPointOfInterest | Aircraft's heading will always toward point of interest. |
lat
与 lng
分别指定 Waypoint 的经纬度;而 altitude
则指定了 Waypoint 相对起飞点的高度,单位为 m
。
指定飞机到达此 Waypoint 时的机头朝向。如果两个 Waypoint 之间具有不同的 heading
,那么飞机在这两个点之间移动时机头会逐渐改变。如果想要 heading
能起作用,WaypointFeature 的 headingMode
需要设置为 3.
heading
是一个整型变量,它的取值范围是 [-180, 180]
,其中 0 表示正北方。
指定飞机在两个 headding
不同的 Waypoint 之间改变朝向时,其旋转的方向。
0 为顺时针,1 为逆时针,默认为 0
此字段对应的 data 为一个 Action 的 JSON,如 shootPhotoAction
, recordVideoAction
等,它将会在飞机到达相应的位置时被调用。
注意,在 Waypoint 被 Pause/Stop 或者执行完成时,对应的 Action 也会被停止。
与 finishAction
类似,此字段对应的 data 为一个 Action 的 JSON,目前只能为 shootPhotoAction
或者 recordVideoAction
,它将会在 Waypoint 进行 Resume 的时候被调用。
在 Waypoint 被 Pause/Stop 或者执行完成时,对应的 Action 也会被停止。
Waypoint Action 为 DJISDK 对于 Waypoint Mission 原生支持的一些 Action,与 Mesh 定义的 Action 不同,注意区分。
Waypoint Action 指定了一系列特定的操作,在飞机到达指定的位置时将被顺序执行。当飞机执行完成所有的这些 Waypoint Action 之后,才会继续飞往下一个 Waypoint。
每个 action 的最大执行时间是 6s,超过 6s 此 action 将被忽略,转而执行下一个 action。action 有以下几种类型:
拍一张照片
{
"type": "shootPhoto"
}
开始录像
{
"type": "startRecord"
}
停止录像
{
"type": "stopRecord"
}
旋转云台的 pitch 轴角度,范围是 [-90, 0]
{
"type": "rotateGimbalPitch",
"param": -90
}
旋转飞机的朝向,参数范围是 [-180, 180]
{
"type": "rotateAircraft",
"param": 90
}