Posey's Tips & Tricks
Microsoft Now Lets You Build Your Own Drone App
More than a perk for hobbyists, Microsoft's new SDK will -- for the first time -- give anyone who has basic development skills a way to build apps for an emerging class of IoT device.
Those of you who are regular readers probably know that I usually stay away from developer-related content. Even so, Microsoft made an announcement recently that I just had to talk about: The company is releasing an SDK that will allow you to control DJI drones from a Windows 10 app.
In some ways, this idea of using an app to control a drone is anything but new. In one of his Microsoft event keynotes earlier this year, Satya Nadella discussed the possibility of using AI to analyze drone video in real time. The example that was given was that a drone could be used to autonomously inspect industrial piping if an AI engine could be trained on what to look for.
Even before that particular keynote, however, drone apps had been around forever. I personally fly a highly modified 3DR Solo drone. Although the drone has a dedicated controller, it depends on an app running on a tablet device for video streaming and for initiating some of the more specialized flight modes.
Over the last few weeks, I have also been experimenting with an open source application called Mission Planner. Mission Planner lets you fly a drone from your laptop. The software displays flight instruments similar to those found in a real aircraft, and you can operate the drone with a mouse or a joystick.
The main reason why I have been using Mission Planner is because I have a project coming up this weekend that will require my drone to operate autonomously. As the software's name implies, Mission Planner allows you to set up missions for your drone in which the drone can fly a series of GPS waypoints. You can even use Mission Planner to autonomously control the drone's camera.
As handy as Mission Planner may be, it isn't perfect. Although I have never personally had a problem with Mission Planner, I have seen the occasional post on drone-related message boards from people who claim to have experienced Mission Planner glitches while their drone was in the air.
Perhaps more importantly, Mission Planner is a versatile but seriously complex application. There is a steep learning curve associated with using Mission Planner for functions beyond basic telemetry. I have occasionally wished that it was possible to put aside some of the application's complexity while retaining those features that I actually use.
While I might not have a practical way of accomplishing that task with Mission Planner, Microsoft's new SDK will -- for the first time -- give anyone who has basic development skills a straightforward way to build their own drone apps.
It's easy to dismiss this new SDK as being something that is only relevant to IT people who also happen to fly drones. While I am sure that there will be plenty of hobbyists who take advantage of the SDK, I think that focusing on hobbyists misses the bigger picture.
Drones are basically flying computers. The drone that I fly, for example, has a full-blown Linux PC onboard. The drone's controller has a built-in wireless access point, and all communications between the controller, the drone and the drone app use Wi-Fi. As such, a drone could be easily classified as an Internet of Things (IoT) device.
When you think about it in IT terms, Microsoft's SDK is giving us a way to develop code for a specific class of IoT device. I seriously doubt that Microsoft would have gone through the effort and expense of building a drone SDK that would only be used by hobbyists.
Personally, I think that the SDK's real potential lies not in its ability to script new flight control algorithms, because that can already be done. The SDK's real power is in its ability to send data to and get data from the drone. This, of course, raises the question of what type of data might be useful.
Most drones are equipped with cameras, GPS receivers and that sort of thing. However, it is also possible to retrofit consumer drones with additional electronics. The 3DR Solo, for instance, has its own payload bay, complete with connectivity for supplementary electronics. Herein lies the real potential.
Imagine a drone that has been equipped with LIDAR, a thermal imaging system, or some other type of imaging sensor. No longer will the data from such sensors have to be analyzed after the drone is back on the ground. A dedicated SDK could conceivably make it possible to leverage sensor data while the drone is in the air.
More importantly, if a drone and its electronic payload is being treated as an IoT device, then it can benefit from the same types of technology that are used with other types of IoT devices. I already mentioned that an AI engine could be used to make sense of the data that is coming from a drone. Similarly, the SDK might allow a drone to stream sensor data to a backend SQL Server database running in the Azure cloud.
In other words, like any other IoT device, drones could become a source of actionable, real-time data for a business.
About the Author
Brien Posey is a 22-time Microsoft MVP with decades of IT experience. As a freelance writer, Posey has written thousands of articles and contributed to several dozen books on a wide variety of IT topics. Prior to going freelance, Posey was a CIO for a national chain of hospitals and health care facilities. He has also served as a network administrator for some of the country's largest insurance companies and for the Department of Defense at Fort Knox. In addition to his continued work in IT, Posey has spent the last several years actively training as a commercial scientist-astronaut candidate in preparation to fly on a mission to study polar mesospheric clouds from space. You can follow his spaceflight training on his Web site.