Drones: Can Mainstream Developers Make the Transition?

Posted by Peter Cannell on Sep 22, 2015

We use our blog to talk about all things technology, and back in August we took a look at the rapidly growing drone industry and it's technology drivers. As we've seen with many other industries, the key driver for innovation is software. Now, let's take a closer look at the popular software technologies used in the drone industry today.

Given the size and growth numbers for the drone industry many of today's web and mobile app developers will be making the transition to coding for drone platforms. According to Business Insider, the market (commercial and defense) for aerial drones (UAVs) will exceed $10B by 2021.

UAV market according to business insider

Courtesy of Business Insider

The statistics above are limited to aerial drones only. Note that military spending is quite a bit higher than commercial. One nuance these data do not illustrate is crossover between commercial and defense spending. Many government agencies (especially civilian) will seek lower cost — "off the shelf" — solutions which will drive innovation even faster in years to come.

Development for land based autonomous vehicles has received significant funding and interest from the likes of Google, Apple and Uber. Finally, marine vehicles, both underwater and surface varieties are growing in market share.

Marine drones used to be the exclusive domain of the military (the U.S. military was the first). Today, there are numerous vendors building for commercial applications. We are even seeing movement in the consumer space with French based Parrot (known for smartphone controlled aerial drones) announcing several marine platforms.

The drone industry is in it's early stages, so developers and students looking at working in a cutting-edge field will need to be armed with the right skills.

Many of the developments in the drone industry have been lead by the military and are classified. In the commercial space there are numerous development efforts going on in stealth mode in an effort to get solutions to market first. This makes it difficult to get a clear picture of what technologies are being used in next generation platforms.

Luckily, we're fortunate to know an industry insider who has been designing and building unmanned underwater vehicles (UUVs) for 13 years. Because of his software and engineering background, we thought a Q&A would be especially helpful in understanding the autonomous vehicle space.

Q: Can you describe your educational background, experience and how you came to work in the unmanned vehicle space?

A: My education included undergraduate work in Electrical Engineering and Computer Engineering with a minor in Computer Science and Electrical Engineering in Graduate school. Graduate school was where I started working with unmanned vehicles.

The graduate lab I worked in specialized in underwater unmanned vehicles and the algorithms to control them. This was back in 2002, and since then I have worked exclusively in unmanned vehicles, mostly marine and mostly underwater.

Most of my experience has been in defense applications with funding from the U.S. Navy and DARPA. The commercial applications I've worked on have been sold to U.S. government agencies and foreign Navies.

Q: What software technologies and programming languages have you applied and found useful in this field?

A: The majority of the embedded side software (this refers to the on-board vehicle logic and control) is written in C and C++. We make use of various open source and commercial libraries such as BOOST and DDS. The Topside (this refers to the operator console) consists of a rugged laptop, or in larger installations a rack mount system, running Windows. The user interface is written mostly in Java utilizing the Netbeans application framework.

We also have other tooling and utilities that are written in Python, Javascript, HTML, and Bash.

Q: On the embedded side — is that where the vehicle logic and control resides to determine how it completes a particular mission?

A: That is Correct. Generally, with unmanned underwater vehicles, an operator will plan a mission that will consist of track lines and various objectives, such as sonar surveys. The mission plan would be built on the topside computer and sent to the vehicle via one of the communication paths. These may include Iridium satellite modems, long range proprietary RF, Wi-Fi or acoustic underwater modems.

Q: This sounds very similar to mission profiles for aerial vehicles where you provide waypoints and video footage is collected along the way?

A: Correct, they are very similar in that aspect.

Q: Can you give me some examples of commercial applications (non-military) for unmanned underwater vehicles?

A: A few commercial applications include pipeline inspections and seafloor surveys in the oil and gas industry; creation of nautical charts and data products; and change detection surveys after a natural disaster in order to reopen harbors.

Q: What are some of the challenges for underwater vehicles, and what makes those challenges such that commercial, off-the-shelf solutions are not sufficient?

A: Underwater vehicles present several unique challenges compared to other domains. Communications underwater is extremely slow and error prone.

When an underwater vehicle is underway you typically have a few thousand bits/sec or less of available communication bandwidth. Additionally, the range can be quite poor, on the order of a couple Kilometers. The acoustic modems can cost in the tens of thousands of dollars. Contrast that with ground or aerial vehicles that have several hundred Kilobytes/sec bandwidth over the horizon using satellites or up to 60 miles line-of-sight with long range RF. Satellite and RF modems cost several hundred dollars or less.

Another big challenge is with navigation. Underwater vehicles do not have access to GPS data while underway. They have GPS sensors on the vehicle but these are only available while on the surface. So, to navigate while underwater they use high-grade inertial navigation systems that consist of gyros and accelerometers. These types of sensors can cost upwards of $100,000 and still produce navigational estimates that degrade or drift over time.

Lastly there are physical challenges from the environment, such as corrosion and pressure. The electronic components are housed in a metal or composite pressure vessel under extreme pressure. An aluminum pressure vessel conducts heat well but is heavy and corrodes. Conversely, composite pressure vessels such as carbon fiber are light but do not conduct heat very well. An alternate technique is to use a flooded pressure vessel. In a flooded pressure vessel, the electronics are submerged in mineral oil and there is only a small pressure difference between the inside and outside of the vessel. This provides good heat conduction and a light pressure vessel, however, the electronics must be able to withstand the full pressure of the environment. It also makes for messy servicing.

Those are the key challenges underwater unmanned vehicles face vs. the other domains such as aerial and ground.

Q: Switching gears a little bit, talk about the skills and expertise you look for when hiring for your unmanned vehicle program.

A: For straight software development positions you don't necessarily need unmanned domain experience to be effective. The skills we look for are embedded experience, typically in C and C++ and user interface experience. It’s nice when developers have both, however, we have developers focused solely on the embedded side and those that exclusively work on the operator console.

We are generally looking for people that are intelligent, self motivate, and can readily learn new languages and technologies.

Q: A topic I want to touch on is where you see the industry as a whole going, not only underwater but the entire unmanned vehicle space. Comment on where you see the growth and innovation coming from.

A: In all three domains I think the big innovations will come from software. What we refer to as the Autonomy, or the higher level software, on the vehicle is important because it allows the vehicle to adapt to challenges and continue to operate. These challenges can include hardware failures, software failures, or unexpected environmental conditions. The alternative is to stop the mission. In the underwater domain, stopping means floating on the surface. This is dangerous due to boat traffic, which can sink the vehicle, potentially resulting in a total loss.

Having software that can adapt to failures and continue a mission is equally important for land and aerial vehicles.

There will certainly be advances in hardware, but I feel that the innovation on the software side will have a greater impact to the usefulness of the platforms.

Q: Last question is around publishing data from vehicles to the cloud for mass consumption. Platforms are being developed to do just this, is this something you see in your domain today?

A: Not yet. Due to communications issues and the size of sonar data this is not the current workflow. In a typical UUV sonar survey, the vehicle will survey for several hours, perhaps surfacing occasionally for a GPS fix, and return to the host ship at the end of the survey. Once onboard, operators will pull hard drives from the vehicle and begin the time-consuming task of processing the data.

Speeding up this process is an area of interest to the U.S. Navy. For mine clearance applications, semi real-time feedback can provide a significant improvement in mine clearance rates. There is an ongoing effort to post process sonar data onboard the vehicle in-situ. Automatic target recognition software can call targets (mark mine-like objects) in real-time. The data for a target is condensed into a “snippet” which consists of a small sonar image of the target as well as some other meta-data. These snippets can be sent back to the host ship before the mission is completed. The information can then be used to get a second look or destroy the target with another UUV, diver, or marine mammal.

The future is ripe with opportunity

Clearly, we're still at the beginning of a very long and steep growth cycle for all types of unmanned vehicles. This means there will be tremendous opportunity for developers to make the transition to this domain.

Young software developers will definitely have the option to specialize in drone technology, and we can't wait to see what innovations come in the next few years.

*A wink of the Load Impact eye to our UUV industry insider for his time and thoughtful answers

Topics: drone, drone technology, unmanned vehicles, drone software, drones, civilian drones, C+, military drones, Blog, software development

Posts by Topic

see all