使用DJI OSDK暂停/恢复航点任务

时间:2019-11-15 13:47:00

标签: linux dji-sdk

我将描述您要寻找的内容。给定一个航路点列表,我需要无人驾驶飞机前往某个航路点,暂停该路线以执行其他操作(对于此处描述的问题是透明的),最后在完成操作后,恢复该路线以允许无人驾驶飞机进入下一个航路点列表。

据我所见,Mobile SDK提供了用于执行此操作的工具。是否有人找到仅使用 OSDK 来执行此操作的资源?知道怎么做吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我不太了解OSDK。就我个人而言,我使用的是ROS-OSDK,很遗憾,开箱即用是不可能做到的。但是我设法找到了一些解决方法。请记住,ROS-OSDK广泛基于OSDK。因此,我在这里描述的内容可以使用普通的OSDK(或多或少的痛苦...)来完成。

您没有指定要执行的操作。因此,我将假定它们与无人机无关(即,您不希望无人机在暂停期间移动,并且动作仅涉及第三方传感器)。

您未指定的第二件事:您打算如何向您的无人机发送航路点?您是否愿意使用OSDK或第三方应用程序(如Altizure)?如果您选择第一种情况,它将更容易。第二,您会发现我遇到的一个主要问题:一旦无人机开始执行任务,第三方设置的航点将广播到OSDK。我设法解决了这个问题,您可以找到我的代码here。我只是再读一遍,它几乎是普通的OSDK(除了我实际上是在描述ROS服务)。

最后,您需要某种机制来暂停和重新启动任务。在ROS-OSDK中,这已经通过服务/dji_sdk/mission_waypoint_action得以实现。后者使您可以通过简单地使用整数来控制任务(例如,“ 0”表示开始,“ 1”表示停止,依此类推。请参见文档here)。

因此,如果我们看一下ROS code describing this service,我们可以看到所涉及的后端函数位于vehicle->missionManager->wpMission中(在OSDK中属于WaipointMission类)。

希望有帮助!