3

I can see that DJI has a drone SDK for mobile apps (iOS/Android), but I would like to pilot the device from client-side JavaScript or desktop C#. Preferably some type of REST api that can be addressed by any language.

Does something like that exist? I don't see anything obvious on their website.

tkausl
  • 13,686
  • 2
  • 33
  • 50
AngryHacker
  • 59,598
  • 102
  • 325
  • 594
  • Doesn't the [Onboard SDK](https://developer.dji.com/onboard-sdk/) count? If not, I guess you can stuff an Android webserver into an emulator and call it a day. – Martheen Nov 01 '16 at 04:12
  • @Martheen Is it? If I understand it correctly, the OnBoard SDK is for integration with the controller, per the [Getting Started](https://developer.dji.com/onboard-sdk/documentation/quick-start/index.html) guide. Looks like you connect from your own device to the controller at [9600 baud](https://github.com/dji-sdk/Onboard-SDK/blob/3.1/sample/PureQT/onboardSDK/QonboardSDK.cpp) and off you go. I am looking to wirelessly control the aircraft without the involvement of the controller. – AngryHacker Nov 01 '16 at 07:18
  • @AngryHacker did you find the answer of your question? – Muhammad Faizan Khan Jun 27 '18 at 12:28
  • @MuhammadFaizanKhan I did, but it wasn't what I wanted. I wanted an app to run on the controller itself. Their OnBoard SDK integrates with the controller, rather than allow you to run on it. – AngryHacker Jun 27 '18 at 20:51
  • @AngryHacker Ok thanks you mean OnBoard SDK can allow me to write a web application? – Muhammad Faizan Khan Jun 28 '18 at 04:42
  • @MuhammadFaizanKhan Not necessarily just a web app, you can write any app. But it has to be running on some other device. It may have changed since i looked at it. – AngryHacker Jun 28 '18 at 06:02

4 Answers4

2

Did you find the DJI Onboard SDK?

It has sample programs for Qt, Linux, and STM32.

Alexei - check Codidact
  • 22,016
  • 16
  • 145
  • 164
1

You could use the desktop app/web app to send commands to an MQTT server. You would then need to write a simple mobile app to connect to the MQTT server and subscribe to the command channel.

Then as commands come in via your various applications (desktop, web, etc) you translate the commands received from MQTT to the specific DJI SDK commands and send them to the UAV.

Newtonian
  • 11
  • 2
1

If you're looking to straight up control the drone without being connected to the RC controller or a mobile device, then the only option is the onboard SDK. If you are just looking for a way to run code on the drone directly, you would need to go through either the mobile SDK or onboard. There would be no way to do so without onboard or mobile sdk, you would need some device to communicate with your application and transfer those commands to the drone via onboard sdk or just write an android or ios application for the mobile sdk.

-1

Just buy Blue stack emulator for Windows to simulate Android OS. Better option is to explore docker on Windows and spin some android docker container. It is free to host it in Azure also with database inside.