IBM sees a huge opportunity in the drone industry, and it wants to be a part of it. While the company and its software development services aren’t specifically targeted at drones, IBM believes developers can use its tools in their drone application development efforts.
“We want to make developers aware of the things we can do with our current platform,” said Andrew Trice, a developer advocate for IBM.
According to him, drones will start being integrated into businesses to improve efficiency and do automated tasks sooner than we think. The use cases range from insurance claims, inspection and documentation, to agriculture, construction and even emergency situations. “Drones are getting into people’s hands, and as people start using them, it is natural progression to start wanting to do something more than just take pictures with it,” he said.
“Once you start building these things and get your hands on the hardware and software and see them come together, it is a very exciting intersection of hardware and software for developers.”
To showcase how IBM’s services and solutions can be used, Trice developed a sample application, Skylink. It uses a DJI Phantom quadcopter along with an iPad to demonstrate how drones, cloud and cognitive computing can work together. To develop Skylink, he used DJI’s software development kit, which provides the ability for developers to create a solution to capture images and telemetry data, and the IBM Cloud to deliver that data over a 3G or 4G network while the drone is in flight. Once the data is sent to the cloud, Trice took advantage of IBM’s Watson and Alchemy services to make sense of it.
In addition, Trice’s application uses IBM’s distributed database as a service, Cloudant, to save data locally on an iPad and automatically send data to the cloud once network connectivity is available. Cloudant also triggers the company’s event-based programming service OpenWhisk to invoke Watson and Alchemy visual recognition services for image analysis.
“That's the beauty of this type of approach,” said Trice. “We're not doing anything specifically designed for drones. Instead, it's really just like building a native mobile app. The aircraft is treated as a peripheral to the app running on the iPad. The back end really doesn't know anything about the aircraft directly (except the data we're saving), and the mobile app is used to bridge the connection by using DJI's developer SDK.”
Skylink has also been open-sourced for developers to use as a template for their own drone development projects.
While the company decided to use DJI’s SDK, Trice noted that developers can integrate drone SDKs of their choice. “We do not have a specific tie in any of our developer tools for any drone manufacturer,” he said.
“The reason why I choose DJI is because of their approachability. It is very easy to get up and flying, and their developer tool is very easy to consume.”
Developers should also bear in mind that IBM is not the only existing service they can use for drone development. They can utilize familiar services they use in their mobile development efforts. “In theory this kind of architecture could have any kind of application server or database on the back end,” Trice said. “The IBM Cloud offerings just happen to make the integration, data serialization/deserialization, real-time triggers, and cognitive analytics very easy for the developer.”