我可以在没有GPS的情况下使用DJI SDK计划任务吗?

时间:2019-06-13 05:52:40

标签: dji-sdk

我正在尝试控制无人机自主飞行,但是要在无法访问GPS的区域内飞行。在没有GPS的情况下,我能否使用SDK告诉它向前/向后/向上/向下飞行x米?

2 个答案:

答案 0 :(得分:2)

答案是“是”。我很少在导航任务中使用GPS。唯一的区别是硬件/软件需要多么复杂

DJI OSDK

在最近的大部分项目中,我使用DJI OSDK ROS通过纯LDIAR或相机来驾驶无人机。请参阅此处的示例视频。它的内部运行带有立体节点的可视内部导航。我尝试使用DJI A3 / N3 / M100 / M210 / M600。一切正常。机载硬件复杂,但软件简单直接。 errorenter image description here https://www.youtube.com/watch?v=1AbfRENy3OQ&t=90s

DJI MSDK或PSDK

对于其他情况,例如DJI MSDK或PSDK(如果有访问权限),您可以使用其他方法,例如向下流视频流并进行地面定位,然后发送控制命令。观看我的视频(这不是使用DJI A3,而是使用类似的概念。我将这个想法放到课后项目中,因为它不适合实际的商业应用)。 IMU融合是带EKF的PTAM enter image description here https://www.youtube.com/watch?v=6xNINp7nnDge

后面运行的代码是从这里https://github.com/tum-vision/tum_ardrone开始的。

DJI MSDK用于替换tum_arrone https://github.com/AutonomyLab/ardrone_autonomy中提到的此链接。

您要做的就是将源代码输入和输出系统修改为android C ++ lib。这不是一件容易的事,但我已经看到其他人在做。它的硬件简单,但软件工作更多

DJI WSDK

即使对于DJI Windows SDK,您仍然可以在功能丰富的区域使用基于PTAM的纯方法。如下图所示。它正在运行ETH集团的半直接视觉测距法。它在硬件和软件上的工作量最小。唯一的问题是您需要使其成为功能丰富的区域。

我非常不同意@Ken,因为光流仅用于低电平/微控制器位置保持。它并不意味着用于动态里程表/状态估计。对于高级通用本地化和制图,它至少需要一个视觉测距法/ SLAM输出。不仅低海拔,中高海拔也将如下图所示工作

enter image description here

有关获取此图片的代码,请点击此处https://github.com/uzh-rpg/rpg_svo

答案 1 :(得分:-1)

由于定位非常依赖飞机的GPS系统,因此我看不到如何精确控制运动。您还会遇到其他问题,因为大多数自动飞行操作只有在有6颗(或7颗)锁定卫星后才能开始。

您还将发现飞机将缺乏保持姿势的能力(除非它的高度足够低,使视觉系统无法保持位置)。

我的建议是研究SDK的“虚拟操纵杆”部分,但老实说,我认为您会不满意,并且可能无法实现上述要求。