Bringing Drones to the Enterprise with Bluemix and OpenWhisk

Share this post:

Recently I presented the online webinar Drones Take-off with IBM Bluemix OpenWhisk. If you weren’t able to make it, don’t worry, you can watch the webinar replay after filling out a short registration form. If you already watched it, and want to watch it again, that’s cool too. If you’re the type who prefers to get straight to code, this post will cover the details behind the Skyline demonstration application presented in the webinar.

Why drones will become a big part of big business

If you’ve been watching anything in the mainstream media these days, then you’ve probably seen a drone. They come in many shapes and sizes, from airplanes to multi-rotor helicopters, and they offer a new perspective of the world. Drones can take you to vantage points that were previously limited to manned aircraft or even altogether unattainable.

Initially drones have been a huge hit with photographers because it gave them access to these untapped views. But drone usage is increasing beyond the realm of photography and videography. They’re even being used today to save lives by tracking disease outbreaks, directing disaster relief, improving agricultural management, aiding in wildlife preservation, real estate surveying, law enforcement, automated deliveries, and much, much more (see the Resources selection for details). In fact, according to the Association of Unmanned Vehicle Systems International, drones are predicted to drive an astounding $82B industry by 2025.

So, why should you be thinking about drones for your business? Because in the not-so-distant future, you may be able to leverage drones to drive efficiency in your enterprise workflows.

Skylink demonstrates drones, cloud, and cognitive computing working together

To get you started thinking about this future, I’ve created a proof of concept application that bridges drones, the cloud, and cognitive computing, all based on technology that is readily available today. Check out the video below to get an idea how it all works together:

I don’t mean a multi-billion dollar military grade drone system that is designed entirely for long range remote operation and military purposes.


Instead, I mean a low-cost consumer drone that is accessible to the masses and easily portable. An operator can pack it up in the trunk of their car, drive to the work location, bring out the drone, capture information, and seamlessly tie directly back into the enterprise workflow. Many such aircraft now have advanced GPS-assisted piloting systems, enabling virtually anyone to fly within minutes.

DJI Phantom

A drone system like this could be used in many of the cases I mentioned above. For now, let’s consider a system that is used by an insurance adjuster who has to go out into the field and capture images to document an intersection that had a tragic accident, flooding, or storm damage. Having a portable drone enables the capture of these aerial images, but things start getting really interesting when that system is connected to the Internet and starts pushing images and data in near real-time. Once captured, these images and data can be delivered to an enterprise system, potentially triggering analysis/processing workflows whose results can be delivered back the pilot while the aircraft is still in the air.

How the Skylink demonstration application works

The application connects a DJI drone aircraft to Bluemix using an Apple iPad to bridge the connection from aircraft to the external network and cloud services. The aircraft remote control connects directly to the controller via a USB connection. This allows the aircraft to send a live video stream, captured media, and telemetry data directly to an app running on the iPad. This also allows the iPad to send control instructions to the aircraft, enabling the app to control what the aircraft is doing. All communication back and forth between the aircraft and app on the iPad is handled using DJI’s developer toolkit.


The app captures aircraft telemetry data and images and stores them locally on the iPad using Cloudant Sync; this prevents data loss if you are flying in an area without any network connectivity. When there is data connectivity, the data is automatically replicated up to the Cloudant service. Saving data into Cloudant automatically triggers OpenWhisk actions to process the images and data using Watson Visual Recognition and Alchemy Vision services. Once all the data has been processed, it is available through a web interface powered by Node.js running on Bluemix.

The sample application leverages the following services on Bluemix:

All development was done using a DJI Phantom 3 Advanced aircraft (similar model pictured above), though this should also work with DJI Inspire series aircraft. This aircraft is relatively low cost (under $1000) and is very easy to fly by leveraging GPS assisted and stabilized flight; it delivers high quality stabilized HD video and high resolution still images, has a range over 1 mile, delivers flight times over 20 minutes per battery, and is immediately ready to fly “out of the box”.

Experiencing and interpreting drone’s viewpoint in real-time

Users of the mobile app on the iPad will be able to experience a first-person view of the aircraft’s video system, and will be able to capture snapshots & immediately upload them to the Cloud.

iOS client

After the images are automatically processed by Alchemy Vision and Waston services using IBM OpenWhisk, the data is available for consumption through the web interface.

web client

What’s Next?

As I mentioned above, I’ve provided source code and a detailed readme file to get you moving down the path integrating drones into your own enterprise solutions. You can get more details from the references below.


Background on the Skylink sample application:

Background on drone usage in industry and beyond:

More How-tos stories
May 3, 2019

Kubernetes Tutorials: 5 Ways to Get You Building Fast

Ready to start working with Kubernetes? Want to build your Kubernetes skills? The five tutorials in this post will teach you everything you need to know about how to manage your containerized apps with Kubernetes.

Continue reading

May 3, 2019

Using Portworx to Deploy and Manage an HA MySQL Cluster on IBM Cloud Kubernetes Service

This tutorial is a walkthrough of the steps involved in deploying and managing a highly available MySQL cluster on IBM Cloud Kubernetes Service.

Continue reading

May 2, 2019

Kubernetes v1.14.1 Now Available in IBM Cloud Kubernetes Service

We are excited to announce the availability of Kubernetes v1.14.1 for your clusters that are running in IBM Cloud Kubernetes Service. IBM Cloud Kubernetes Service continues to be the first public managed Kubernetes service to support the latest upstream versions from the community.

Continue reading