How-tos
Bringing Drones to the Enterprise with Bluemix and OpenWhisk
May 3, 2016 | Written by: Andrew Trice
Categorized: Compute Services | How-tos
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.
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:
- OpenWhisk -IBM’s new serverless/event driven computing platform now in beta
- SDK for Node.js – Host your Node.js applications in the Cloud
- Cloudant NoSQL Database – Highly scalable NoSQL Database as a service
- Alchemy Vision – deep learning & analytics to understand a picture’s content and context
- Watson Visual Recognition – Understand the contents of images. Trainable for custom content
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.
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.
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.
Resources
Background on the Skylink sample application:
- Drones Take-off with IBM Bluemix OpenWhisk (webinar with detailed walkthru)
- IBM-Bluemix/skylink project (GitHub)
Background on drone usage in industry and beyond:
- Drones Could Help Prevent Future Disease Outbreaks (Discover)
- Farmers Reap New Tools From Their Own High-Tech Tinkering (WSJ),
- The use of drones in rhino conservation (savetherhino.org)
- Rise of the Drone Mapper (Popular Science)
- Drones could 3D-map scores of hectares of land in just a few hours (Science)
- Police using drones to apprehend suspects, administer non-lethal force (TechRepublic)
- Drone delivery is already here — and it works (MarketWatch)
- The Future of Drones in the Insurance Industry (Insurance Journal)
- 3 Companies Using Drones to Improve Inspections (Technology Advice)
- Economic Impact of Unmanned Aircraft Systems Integration in the United States (AUVSI)
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.
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.
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.