Earlier this month it was revealed that ArduPilot, an open-source autopilot solution, would no longer be associated with the Linux Foundation’s Dronecode Project, an open-source drone platform. This came as a surprise to many considering that the idea of Dronecode came from the minds of ArduPilot.
“Dronecode was established around ArduPilot,” said Craig Elder, former technical community manager for Dronecode who leads software teams in ArduPilot. “What we tried to do with Dronecode was to do a better job at engaging the companies who are using ArduPilot.”
The reasoning behind this move is that ArduPilot is based on the open-source GPL license. According to Chris Anderson, chairman of Dronecode, the GPL license is great for the open-source development community, but toxic for companies.
Elder argues the reason was because Dronecode is structured in such a way that the companies who pay for the most expensive memberships have the most say. “There are somewhere around 1,000 companies who have chosen this autopilot. It can’t be toxic for them,” he said.
InterDrone/SD Times recently caught up with Elder to discuss where ArduPilot goes from here, and the benefits of using it and other open-source software for drones.
InterDrone: What is the importance of open-source software in the industry?
Elder: When you have hundreds of people working on something, and you have tens of thousands and hundreds of thousands of people out there using it, you get a huge growth and a huge rate of growth in the capabilities in the system.
If we want to do testing, we can put test code out and get 10,000 hours of testing done over a weekend, and other systems, they just simply can’t do that. When you have thousands of eyes looking at the code if there are errors or if there are issues, those issues get resolved, they get reported and they get sorted out. Everything is a continual improvement.
If you are just dealing with closed sourced, it becomes more expensive for companies. If they want to make a change, they are beholden to the company that wrote it in the first place to make those changes. It is a very expensive proposition. If it is open-sourced, they can hire somebody to go ahead and make those changes, or they can choose to hire the original developer...to go and make some improvements.
Are there any misconceptions people have about open-source software?
[That] open source is not capable of getting the kinds of certification that would allow it to be used commercially.
People have this idea that open source is inferior, and yet people trust all of their banking transactions to open-source software. Most of the computers that we interact with in our daily lives are all using open-source software. The idea that it is somehow inferior is a long-time out-of-date concept.
Do you see any disadvantages to using open-source software over closed software?
No, I don’t. If you look at the computer systems globally...95% of the computers available on the planet are now running Linux. Linux just had its 25th anniversary; 25 years ago the world was a different place. You had a couple different options for closed-source systems, and Linux was one of the first open-source options that came along, and way back in the 1990s. It was in the same kind of situation as ArduPilot where you had people using it who didn’t want to say they were using it. Now everybody is very happy to say they are using Linux because it is the most stable system around.
Why do you think people think open-source software is inferior?
I think it is a perception that was created by people who sell closed-source software. You can go and spend hundred of dollars, thousands of dollars or tens of thousands of dollars on a [solution], and you can buy the equivalent capability for an order of magnitude less money, and it does at least much as the closed system does.
But is it harder to work with open-source software over closed source software?
Years ago that was true. Just like Linux was harder to work with, now it is the same as using a closed-source operating system.
The things that people interact with for programming [drone] autonomy is the ground control station software, and our ground control station software has been harder to use. It was written by engineers who were developing the autopilot, and it needed to do the things that the engineers need to do.
Now we need to have ground control software that does what the users need to do. Because it is open source, and because the standards and the inner workings are exposed and available for anybody to look at, tons of companies have come along and written better ground control station software, software that is easier to use, or software that just does the thing that they need it to do, so it isn’t complicated by a bunch of other features that people don’t need.
So what is the importance of ArduPilot to the drone industry?
ArduPilot started almost eight years ago, and it is the reason why autopilot costs have gone from several thousand dollars for an autopilot to hundreds of dollars for an autopilot.
[In the past] you could buy a commercial autopilot, but it was US$10,000 for a cheap one and $100,000 for a good one. By 2012-2013, ArduPilot had advanced to the point where it had most of the features that those more expensive autopilots did, and in a lot of cases the flight performance had exceeded the capability of those commercial autopilots for more than an order of magnitude less money.
One of the things about ArduPilot is that the user interface has never been really easy, but even that has improved over the last couple of years. It is finally getting to the point where it is on par with the closed-source autopilots. The user experience has improved, the flight performance has continued to improve.
What capabilities does ArduPilot provide?
We are the least-cost option to autonomous flight. If you want to have a vehicle that you can program to fly a mission to go do a survey, to go do a job for you, the lowest-cost option is something flying ArduPilot.
That autonomy has always been expensive. By making an open-source option available, we now have dozens of companies who are contributing to this work and who are leveraging the work of lots of other companies in order to make a less expensive product.
We have new things coming from uAvionix, which is their ADS-B receiver. We have autonomous collision avoidance using ADS-B. We have computer vision systems, and that kind of capability is available to anyone who chooses to use it.
But how do you ensure the safety and security of ArduPilot’s code?
We have code reviews that take place automatically. We have code reviews that take place by people looking at the code. Every line gets evaluated by machine, by simulation and then eventually by a person before it is brought into the master—the main part—of the code. Even before it goes out and actually is released it gets tested tens of thousands of times.
How does ArduPilot’s open-source licensing compare to the Dronecode’s licensing?
In the world of open source, there is a GPL license, which is what ArduPilot is. PX4 (Dronecode) is on the BSD license.
In GPL, you are obligated to publish your changes if you sell a system with those changes in it or if you distribute a system with those changes in it. If you are working with the BSD license, there is no obligation to publish your changes. You can take what is there, you can customize it, you can make it for yourself, you can make some improvements, and you have no obligation to share those improvements with anybody else.
In the case of people who are choosing the BSD license, they are basically companies who are large enough that they don’t need to collaborate, so there isn’t the same motivation for them to get involved and work with other companies.
Why do you think developers should be obligated to publish their changes?
What ends up happening with the BSD license is that the project doesn’t grow as fast and the capabilities don’t grow as fast because nobody has this obligation to publish their changes.
Companies chose the BSD license because they don’t want to have that obligation. They [take] advantage of the work that other people have done, but they don’t want to be obligated to pay it forward and make the effort to contribute their changes back.
How can ArduPilot continue to be successful without Dronecode?
ArduPilot is just the flight-control software. We needed the communications protocol, we need the ground-control station protocol, we needed all of those things to be able to work together, and by creating Dronecode we did a better job of coordinating our efforts, and we tried to reach out to the companies who are using ArduPilot and do a better job of engaging them.
We got probably a little less than 10% of the companies who are using ArduPilot involved in Dronecode. I expect we are going to see the exit of those companies out of Dronecode, and we are going to make a second effort of doing a better job of engaging them.
We have established a new foundation with a different group called Software in the Public Interest, and they will domicile our not-for-profit. We have [also] established some for-profit entities that allow companies to continue to engage the developer team and will continue to improve the autopilot and add features and make it do exactly what those companies want to do.
What is on the road map for ArduPilot?
We know our future is working with Linux and working with the real-time systems that are available in Linux.
Some people would say we have no road map, and that is a good thing because we are not limiting it to our own imaginations. We are allowing people to do something new and something creative with it.
Some people would say we have a road map and at least a general direction of where we are going in terms of the capability of the autopilot, in terms of the kinds of things that people are looking for.
It is very easy for a company to engage with the developer team and say, “We have a GPS we would like you to support, can you write a driver or they can say we have a GPS, we have written a driver, can you include it?”
At the end of the day we are trying to create systems that can go and gather data, that can go and get the data that these companies can take and turn into good products.