DJI Phantom 4 Pro 降落在错误的位置
DJI Phantom 4 Pro lands at incorrect location
上下文
我正在构建一个任务规划器,它将通过用户点击地图获得 waypoints。完成一个区域后,他将加载并开始任务。
Expected/current 行为
当我开始任务时,它会经历所有waypoints,到达最后一个后,它会返回返航点并着陆。
问题是:它没有return回家,而是降落在最后一个航路点。
详情
下面的代码只是一个POJO对象的一部分
public WaypointMission toDjiMission() {
final WaypointMission.Builder waypointMissionBuilder = new WaypointMission.Builder();
final int waypointsSize = waypoints.size();
for (int i = 0; i < waypointsSize; i++) {
waypointMissionBuilder.addWaypoint(Waypoint.toDjiWaypoint(waypoints.get(i)));
}
return waypointMissionBuilder
.setMissionID(id)
.maxFlightSpeed(maxSpeedInMetersPerSecond.floatValue()) // 15
.autoFlightSpeed(autoFlightSpeedInMetersPerSecond.floatValue()) // 8.5
.flightPathMode(flightPathTurnMode.toDjiEnum()) // curved
.headingMode(uavHeadingMode.toDjiEnum()) // auto
.finishedAction(missionFinishedAction.toDjiEnum()) // Go home
.build();
}
环境
- Android 9
- MSDK 4.13.1
- 精灵 4 Pro
有几件事和一些问题可以帮助您弄清所看到的内容:
第一个问题,到达最后一个航点时,飞机离家有多远?
出于某种原因,DJI 设计了固件,如果飞机离家很近(我认为在 15 米以内),那么飞机会原地降落。这意味着,如果最后一个航路点靠近返航点,它可能已经认为它是返航点并就地着陆。
对于我编写的所有软件,我总是在我希望任务结束的地方添加一个特定的航路点并使用 AUTO_LAND
作为 finishedAction,它消除了上述问题并始终保证正确的结果(又名, 没有 'iffyness' 因为固件逻辑)。
我的建议是在返航点上方加一个航路点,这是最好的方案!
上下文
我正在构建一个任务规划器,它将通过用户点击地图获得 waypoints。完成一个区域后,他将加载并开始任务。
Expected/current 行为
当我开始任务时,它会经历所有waypoints,到达最后一个后,它会返回返航点并着陆。
问题是:它没有return回家,而是降落在最后一个航路点。
详情
下面的代码只是一个POJO对象的一部分
public WaypointMission toDjiMission() {
final WaypointMission.Builder waypointMissionBuilder = new WaypointMission.Builder();
final int waypointsSize = waypoints.size();
for (int i = 0; i < waypointsSize; i++) {
waypointMissionBuilder.addWaypoint(Waypoint.toDjiWaypoint(waypoints.get(i)));
}
return waypointMissionBuilder
.setMissionID(id)
.maxFlightSpeed(maxSpeedInMetersPerSecond.floatValue()) // 15
.autoFlightSpeed(autoFlightSpeedInMetersPerSecond.floatValue()) // 8.5
.flightPathMode(flightPathTurnMode.toDjiEnum()) // curved
.headingMode(uavHeadingMode.toDjiEnum()) // auto
.finishedAction(missionFinishedAction.toDjiEnum()) // Go home
.build();
}
环境
- Android 9
- MSDK 4.13.1
- 精灵 4 Pro
有几件事和一些问题可以帮助您弄清所看到的内容:
第一个问题,到达最后一个航点时,飞机离家有多远?
出于某种原因,DJI 设计了固件,如果飞机离家很近(我认为在 15 米以内),那么飞机会原地降落。这意味着,如果最后一个航路点靠近返航点,它可能已经认为它是返航点并就地着陆。
对于我编写的所有软件,我总是在我希望任务结束的地方添加一个特定的航路点并使用 AUTO_LAND
作为 finishedAction,它消除了上述问题并始终保证正确的结果(又名, 没有 'iffyness' 因为固件逻辑)。
我的建议是在返航点上方加一个航路点,这是最好的方案!