There is a new market opening up for developers to take advantage of: drones. These unmanned flying machines are quickly expanding from the realm of hobbyists and toys to commercial solutions.
“[Drones] are the next mobile,” said Thomas Haun, vice president of strategy and globalization at PrecisionHawk, an aerial data solution provider. “Mobile has totally revolutionized how we work, how we live, how we hail a cab. [Drones] are a platform that will impact our daily lives, whether it is a UAV that follows you and takes video of you; gives a realtor the ability to show a whole new view of a home; or gives a farmer better understanding of what is happening in their field in real time.”
Drones are the next big thing in the software development industry, and developers should get into it now, according to Ray Askew, senior director of product management at Skyward, an information-management platform for aerial robotics. “This is a green field for developers both in terms of extending their mental capacity to solve problems, but also getting paid to develop new products that do new things,” he said.
“How often do you get to invent a new industry?” his colleague, COO Mariah Scott, added.
Drones are already being implemented in agriculture, search and rescue, journalism, real estate, oil and gas, insurance, infrastructure surveying, photography, and videography industries, but it is up to developers to really take the drone industry off the ground.
“Designing good software, designing good test cases, being aware of validation when you are designing your software—that is what is going to make this stuff so successful,” Askew said.
Where to start
Looking forward to 2016, Linux is going to be a big area for drone development. Chris Anderson, CEO of 3D Robotics, made a bold statement during his keynote at the International Drone Conference and Exposition (InterDrone) last month in Las Vegas, saying that any platforms not running Linux will be viewed as a toy.
(InterDrone is produced by BZ Media, which publishes SD Times.)
Craig Elder, technical community manager of Dronecode, echoed that statement. “The UAV control systems are moving toward being integrated into Linux,” he said. “We are integrating Linux into the control systems, the ArduPilot and PX4 projects are being migrated to run on Linux, and we have moved the ArduPilot and PX4 project into the Dronecode Foundation, which is a collaborative project within the Linux Foundation. So it just makes a lot of sense that our future is in the world of Linux.”
According to Trishan de Lanerolle, program manager of Dronecode, that project is a good place for developers to get started because it is open source and accessible to dozens of other closed-source projects. “Being an open-source platform, and having the community development that has gone into it, you have a common code that you can start off with,” he said. “You are not reinventing the wheel or starting from scratch.”
Developing for drones is actually quite similar to developing for phones or the Web. Developers are using C++, C# and Python as their preferred programming languages, according to Dronecode’s Elder. Developers are also using Java for their Web development; JSON for object structure; Apache for Web servers; OrientDB, SQL and SQLite for databases; and Jenkins for automation and Continuous Integration tools, according to Skyward’s Askew.
“There is a lot of similarities because you want to make sure that you are calling on data and providing some kind of output in a similar way when developing mobile or Web-based apps,” said PrecisionHawk’s Haun.
But developers should be aware that while they can still develop mobile and Web apps and tailor them to drones, the drones represent a completely new playing field.
“Your computer doesn’t generally fall out of the sky if you make a typo,” said Elder. “There are 10 million ways for it to go wrong, and one way for it to go right. Testing is the key. You can’t afford to have mistakes. It can’t be 90% reliable; it has to be 99.9999% reliable.”
Overcoming privacy and safety concerns
While drones have proven they can be used for good, a majority of society is still concerned about the bad that comes from them. More and more companies and universities are looking at providing education and tutorials to show people what the technology can do, and also show what operators should and shouldn’t do. Developers can help be a part of this movement to change the public’s negative perceptions of drones, and to help make drones safer, according to Romeo Durscher, director of education at DJI, a provider of drones for photography and videography.
“What I would like to see every developer keep in mind is how can [they] make the app so that it is as safe as possible, and if something should happen, that the user can always safely bring back the machine,” he said.
Simple interfaces are going to be really important in applications because everything is so new, and not everyone may be the most experienced pilots yet, according to Durscher. “Don’t distract users with a very complicated interface that takes away from the real purpose of keeping the machine in the air,” he said.
On the safety side, developers can look into building situational awareness solutions such as geofencing, a feature that provides a virtual barrier for drones, or alert-based services, according to PrecisionHawk’s Haun.
On the privacy side, Haun sees a lot of developers building in features that only allow the drone to capture data over a certain area, or fly to certain places into their systems. “Making sure [the drone] is doing the right things and only collecting the right data is really important,” he said. “If we solve the safety case and if we solve the privacy case, then that really will unlock the industry.”
According to Skyward’s Scott, the industry needs to demonstrate how drones can be very innovative and safe in order for the public to really see the benefits.
“There is a perception that these are just cameras we throw up in the sky, and they are things with cameras on them, but the thing is an aircraft,” he said. “I look forward to an explosion of innovative, cool use cases that make people’s lives better and make it possible to do things that we haven’t thought of before and that are cheaper, better, and faster than we can do them now.”
What areas developers should look into
A big area that developers can start getting into is the idea of systems integration, according to Skyward’s Askew.
“You see a bunch of different applications, and a lot of us in the industry are trying to go solve very specific problems. But we are not trying to all solve everything together,” he said. “The opportunity in the industry from a developer point of view is to begin stitching these things together to get a most holistic view across the total solution.”
Skyward’sScott added that automation is going to be another opportunity space for developers to look into because the industry is still brand new and a lot of it is still manual. “A developer should be thinking about how they can automate, whether you are automating workflow, data gathering, maintenance, or data analytics. What can they do to automate something that is done manually?” she said.
Analytics in general is also a big area to get into because the drones are able to collect immense amounts of detailed data, and users need to be able to distill those down into the exact insights they need to help their business, according to Thomas Haun, vice president of strategy and globalization at PrecisionHawk.
In addition, Dronecode’s technical community manager Craig Elder said developers can look forward to moving beyond visual-line-of-sight, better situational awareness, collision avoidance, better mapping, and better integration with manned aircraft.
“There are a bunch of problems to be tackled, and a bunch of things to be solved,” he said.
How can you turn your apps into drone solutions?
Drones are being used to monitor crops, inspect power lines, assist in disaster response efforts, minimize worker risks in hazardous environments, and obtain and keep track of data. According to Don Weigel, vice president of product at Airware (a commercial drone, hardware and cloud service provider), an application should be:
1. Reliable and repeatable
2. Compliant and insurable
3. Able to automate difficult and repetitive tasks
4. Require minimal training
5. Integrate with existing software and workflows
6. Scale in use cases
7. Create actionable insights
Making sure your application hits all of these points will help ensure the safety, functionality and success of your drone solution, according to Weigel.