使用DJI SDK的DJI Drones的iOS应用

1.WAYPOINT MISSION:此任务附带一系列预定义的路标(位置)。 设置高度和航向角后,无人机会飞到每个航路点并执行所需的动作,例如捕获照片或录制视频。

2.热点任务:在此任务中,无人机以定义的半径和高度绕着给定位置(热点)盘旋。 可以为此任务定义速度,摄像头动作,旋转方向。

3.DOWNSHOTMISSION(下潜任务):这是无人机飞行到指定位置,到达所需高度并在该位置执行摄像机操作的任务。

4.全景任务:在此任务中,相机旋转并以开发人员可以定义的不同角度拍摄照片,然后可以手动拼接拍摄的照片以制作全景照片。

5.跟随我的任务:在跟随我的任务中,飞机将遵循不断发送给飞机的GPS坐标,并保持恒定的高度间隔。 如果超过6秒钟未收到新的GPS坐标,则飞机将悬停在原地。

任务控制负责执行任务。 任一个任务 可以通过专门的任务负责人来运行,或使用时间线来连续进行一系列任务和动作。 请参阅链接以获取有关任务控制的详细信息。

任务运营商:

它们提供API,例如运行,暂停,停止以控制任务,并且可以通过侦听器跟踪状态。 他们负责执行单项任务。 很少有运算符是waypointMissionOperatorhotpointMissionOperatorPanoramaMissionOperator
followMeMissionOperator

时间线是所有时间线元素( DJIMissionControlTimelineElement )的集合 可以是诸如航路点任务(DJIWaypointMissionOperator),热点任务(DJIHotpointMissionOperator)或一系列动作之类的任务 。 可以给每个元素一个动作,例如DJIGoToActionDJIAircraftYawActionDJIGimbalAttitudeAction,以及捕获照片或录制视频的动作等。

为什么要时间表? 当任务执行者执行单个任务时,可以使用时间表来加载多个任务。 DJIMissionTrigger可以与时间轴元素一起使用,以在满足任何特定条件时通知用户。

注意📣任务控制时间表仅适用于DJI飞机,不适用于任何DJI手持设备。

如何执行? 首先,我们需要创建定义无人机行为的时间轴元素。 定义所有元素(动作)后,将使用scheduleElements将这些元素安排到任务控制中 然后startTimeline 。 可以添加侦听器以跟踪时间轴的进度。

注意📣参考链接以下载有关创建时间轴的示例。 该示例显示将Downshot任务添加到时间轴。 有关时间轴的更多信息,请参阅文档

以下是一些常见的常见问题和解决方案:

这些是在开发过程中可能会遇到的常见问题。

  • 产品断开连接是面临的一个常见问题,其发生的原因有很多,例如USB电缆损坏,电池电量不足,退出了模拟器。
  • 模拟器未启动是我们开发过程中经常发生的另一个奇怪问题,它会导致重新启动问题。 唯一的解决方案是重新启动模拟器应用程序,这可能需要多次尝试,否则最坏的情况将要求系统重新启动。 💢
  • 在与航点相关的任务中,当飞机到达相应的点时,可以使用DJIWaypointActionType定义DJIWaypointAction来执行所需的动作。 可以使用DJIWaypointMissionFlightPathMode将飞行路线设置为任务 可以是法线(默认)或弯曲的。 设置弯曲路径后, DJIWaypointAction 不起作用。 相反,您可以使用DJIWaypointReachedMissionTrigger 执行所需的操作。
  • 如果需要,必须在操作之间添加自定义延迟 ,因为更新操作可能会花费一些时间。 例如,可以在云台移动和拍照之间添加延迟。
  • 如果是ReturnToHome,有时回叫会失败,并且无人机会在2英尺的高度徘徊。 因此,我们可以通过检查速度来手动处理无人机的降落。 一旦速度达到零并且没有其他动作发生,我们可以通知用户通过遥控器强行降落无人机。

Interesting Posts