This sample is a Universal Windows Platform* app that demonstrates DJI Windows SDK capabilities:
- Aircraft's camera video feed
- Aircraft control (Joysticks and Takeoff/Home functionality)
- Camera gimbal control
- Flight telemetry data events
The app leverages XAML-based UI and Windows ML, running inference (evaluation) on top of aircraft's video feed using a Windows ML model.
This sample uses a WinML model called InkShapes. It was made by Nikola Metulev and trained in Custom Vision on simple black-and-white hand-drawn pictures representing one of 21 categories, such as house, flower, stick figure, bike, and others.
With Custom Vision, you can train an AI model using your own images, then export it to different model formats including ONNX.
The model is not smart enough yet. House, flower, and stick figure are recognized quite well. You may help Nikola training the model - just by drawing shapes in Draw the shape! app.
- Windows 10 April 2018 Update.
- Windows 10 SDK 1803 (for April 2018 Update).
- Visual Studio 2017 with Universal Windows Platform tools (including C++ tools for UWP), Desktop C++ Development and Desktop .NET development.
- DJI SDK for Windows. All BUILD 2018 attendees should have a link to DJI Windows SDK alpha.
You need DJI Windows SDK.
DJI Windows SDK is not included in this repo. You need to obtain it from DJI, and copy 2 folders from the SDK to this project's folder.
- Copy DJIWindowsSDK folder from the SDK's package to the root of this project.
- Copy ThirdParties folder from the SDK's sample (DJIWindowsSDKDemo/ThirdParties) to the root of this project.
Note, these 2 folders are in .gitignore, so if you want to have them in your repo, please remove these 2 lines from .gitignore:
ThirdParties/
DJIWindowsSDK/
- Once you copied all required dependencies, open WinDrone.sln in Visual Studio 2017
- Right-click on DJIUWPDemo, click 'Set as StartUp Project'
- Build, debug, deploy, enjoy!
Current alpha version of DJI SDK only supports x86 architecture on Windows desktop. It has a few "classic" Win32 dependencies, so the app package requires Full Trust capability (using Desktop Bridge), and only runs on Windows 10 Desktop. Video decoding component doesn't leverage hardware acceleration yet.
The sample C# app uses the SDK via an additional DJIClient DLL and PInvoke calls.
Full Universal Windows Platform support and other improvements are coming later towards the release of DJI Windows SDK.