dji-sdk - 我可以在没有 GPS 的情况下使用 DJI SDK 计划任务吗?
问题描述
我正在尝试控制无人机自主飞行,但在没有 GPS 访问的区域。我可以使用 SDK 告诉它在没有 GPS 的情况下向前/向后/向上/向下飞行 x 米吗?
解决方案
答案是肯定的。我很少在导航任务中使用 GPS。唯一的区别是您需要的硬件/软件有多复杂
大疆 OSDK
我最近几年的大部分项目,我都是使用 DJI OSDK ROS 用纯 LDIAR 或摄像头来驾驶无人机。请参阅此处的示例视频。在它内部运行带有立体节点的可视化内部导航。我试过 DJI A3/N3/M100/M210/M600。一切正常。复杂的板载硬件,但软件简单直接。 https://www.youtube.com/watch?v=1AbfRENy3OQ&t=90s
DJI MSDK 或 PSDK
对于其他情况,例如 DJI MSDK 或 PSDK(如果您有访问权限),您可以使用其他方法,例如流式传输视频流并进行地面定位,然后发送控制命令。看我的视频(这不是使用 DJI A3,而是使用类似的概念。我在放学后放弃了这个想法,因为它被认为不适合实际的商业应用)。它是用于 IMU 融合的 EKF 的 PTAM 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。这不是一件容易的事,但我已经看到其他人这样做了。它在硬件上很简单,但在软件上工作更多
大疆 WSDK
即使对于 DJI windows SDK,您仍然可以在功能丰富的区域使用纯 PTAM 方法。如下图所示。它正在运行 ETH 组的半直接视觉里程计。它在硬件和软件方面的工作量最小。唯一的问题是你需要它成为一个功能丰富的区域。
我完全不同意@Ken,因为光流仅用于低级/微控制器位置保持。它不适用于动态里程计/状态估计。对于高级通用定位和映射,它至少需要一个视觉里程计/SLAM 输出。而且不仅低海拔,中到高海拔也会如下图所示
获取此图像的代码可在此处获得https://github.com/uzh-rpg/rpg_svo
推荐阅读
- typescript - Nestjs ScheduleModule(函数无权访问更新的类属性)
- docker - 在 Docker Compose 上运行 Postgres 迁移
- swift - 按钮状态恢复为不同的颜色
- finite-automata - 形式语言和自动机
- ios - 为什么我的自定义字体在 Xamarin.iOS 中不起作用?
- .net - 将数字显示为本地化单词 (.NET 5)
- laravel - 问:如何查看 Vuex 中的角色?
- firebase-realtime-database - 通过 Nodemcu 将湿度和温度传感器、NEO-6M GPS 模块和心率传感器连接到 Google firebase
- angular - 使用绝对 URL 的 CSRF - Angular
- javascript - 在 P5.js 中合并图像