【发布时间】:2019-11-15 13:47:00
【问题描述】:
我将向您描述我在寻找什么。给定一个航点列表,我需要无人机去一个航点,暂停路线以进行其他操作(对此处描述的问题透明),最后当这些操作完成后,恢复路线以允许无人机前往下一个航点列表。
据我所知,Mobile SDK 提供了执行此操作的工具。有没有人找到仅使用 OSDK 的资源?知道怎么做吗?
提前致谢!
【问题讨论】:
我将向您描述我在寻找什么。给定一个航点列表,我需要无人机去一个航点,暂停路线以进行其他操作(对此处描述的问题透明),最后当这些操作完成后,恢复路线以允许无人机前往下一个航点列表。
据我所知,Mobile SDK 提供了执行此操作的工具。有没有人找到仅使用 OSDK 的资源?知道怎么做吗?
提前致谢!
【问题讨论】:
我不太确定 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 类)。
希望有帮助!
【讨论】: