走进开源世界|浅谈ArduPilot的过去与未来

前言

近几年无人机行业发展可谓是风云变幻,当开源飞控进入国内市场后,使得国内无人机产业的发展更如火如荼,开源飞控不仅对无人机行业做出巨大的贡献,也为其它的行业带来许多便利。

开源这一概念最早应用于开源软件,指的是软件的源码可被公开,并且软件的使用、修改和发行也不受限于许可证。几乎每个开源项目都有团队或者个人进行管理的独立论坛。论坛提供源码发布,程序员修改、上传的平台、形成良好的生态系统。

开源软件的发展逐渐与硬件结合,开源硬件也开始随之产生。无人机行业中广泛应用的开源飞控就是建立在开源精神基础上的开源自动飞行控制器项目——同时包含开源硬件和开源软件(地面站和固件两部分)。

开源飞控目前的两大协议分别是GPL和BSD,GPL协议更适用于希望共享代码,并加之改进发展的群体;而BSD协议,则避免代码的共享,从而更适合于希望保留自己功能的核心竞争力的商业公司。

2016年8月,正是因为关于这两大协议的不同坚持,以及在开源理念与自身利益的冲突下,开源社区中最活跃的开源飞控项目ArduPilot和开源社区联盟Dronecode为此分道扬镳,这件事情在开源无人机圈内引起巨大的波澜。

很多人都在问开源飞控的未来该何去何从?

近年来,随着无人机的加速普及和开源软件发展的成熟,国内越来越多企业和个人开始关注开源软件,人们意识到开源技术已成为无人机产业发展的重要支持,纷纷加入开展各种类型的开源活动,为创造良好的开源生态环境助力。在此之际,让大家最为关注的就是开源软件未来发展的趋势到底是什么?

关于这个问题,小编认为,ArduPilot社区主要负责人Craig Elder在2016年接受InterDrone关于ArduPilot脱离Dronecode后的发展前景这一采访时,所表明的观点现在看来依旧客观,尚未过时。关于这点,小编接下来将为大家一一揭晓,相信通过此篇文章能解答大家关于在无人机行业应用开源技术的各种疑惑。


注意:以下为采访原文内容且采访时间为2016年

一、Craig Elder谈论ArduPilot脱离Dronecode之后的未来发展

早些时候,有消息透露,开源自动驾驶解决方案ArduPilot将不再与Linux基金会的开源无人机平台Dronecode项目关联。这消息让很多人感到惊讶,因为他们认为Dronecode的想法来自于ArduPilot。

领导ArduPilot软件团队的前Dronecode技术社区经理Craig Elder说:“Dronecode是围绕ArduPilot建立的,我们尝试建立Dronecode是为了更好地吸引使用ArduPilot”。

这个举动背后的原因在于,ArduPilot是基于开源GPL许可证这一事实基础上。根据Dronecode的主席Chris Anderson的说法,GPL许可证对于开源开发社区非常有利,但对企业却会带来弊端。

Craig Elder认为,这是因为Dronecode的结构使得支付最昂贵会员费用的公司拥有最多的发言权。

Craig Elder说:“大约有1,000家公司选择了这种自动驾驶仪,这样就不会影响公司自身的竞争力。”

二、InterDrone/SD Times (软件开发时报) 对于ArduPilot未来的发展方向,以及使用它和其他无人机开源软件的优势等问题,与Elder进行讨论对话。

以下是具体对话内容:

1、 InterDrone: 开源软件在行业中起到什么样的重要作用

Craig Elder: 当有成百上千的人在做某件事,并且有成千上万的人在使用它时,系统中的功能会得到巨大的改进以及迅速的增长。

如果我们想做测试,我们可以发布测试代码,并在一个周末内完成10,000小时的测试,但是其它系统却无法做到这一点。在发布以后,很多人都会关注代码是否有错误或者问题,一旦出现问题的话,就会马上被呈报并得到解决。这是一个持续改进的过程。

如果你只使用闭源软件,那么对于企业来说成本会很高。当企业想要做一些修改,那么他们首先得委托最初编写这些代码的公司来进行修改,这是一个非常昂贵的举动。然而如果是开源软件的话,他们可以雇佣其他人根据企业需求直接进行修改,或者企业也可以选择雇佣原始的开发者直接去做一些修改。

2、 InterDrone:人们对于开源软件是否存在误解

Craig Elder: 开源无法获得允许其使用与商业的各种认证,所以人们认为开源软件是次等的,然而又相信它们,因为所有的银行交易都依赖开源软件,并且我们日常生活中接触到的大多数电脑都使用开源软件。

对于开源软件是次等的这个想法,我认为这个想法在某种程度上已经过时很久。

3、 InterDrone:相较于闭源软件,你认为使用开源软件有什么缺点吗

Craig Elder: 我认为并没有缺点。

你看看全球的计算机系统,你会发现,目前全球有95%的计算机运行Linux系统。并且Linux刚过25周年纪念,25年前的世界和现在是完全不同的。

如果把时间追溯到20世纪90年代,对于闭源系统,你有几种不同的选择,但是你会发现Linux是当时最早出现的开源系统之一。这和ArduPilot目前的情况是一样的,人们在使用它,但却不想承认自己在使用它。但是你看现在每个人都非常乐意承认他们在使用Linux系统,因为它是最稳定的系统。

4、 InterDrone:你认为人们为什么觉得开源软件是次等的

Craig Elder: 我认为这是一种销售闭源软件的人创造的观念。你可以花几百美元、几千美元甚至几万美元在一个解决方案上,但是如果你选择开源系统的话,可以实现用更少的钱购买到同样的功能,并保证它的作用可以和闭源系统处在相同的水平。

5、 InterDrone:使用开源软件是否比闭源软件更困难

Craig Elder: 多年以前确实如此,就像Linux更难使用一样,现在它和使用闭源操作系统是一样容易使用。

人们与编程自动化(无人机)互动的东西是地面站控制软件,而我们的地面站控制软件更难使用。它是由开发自动驾驶仪的工程师写的,它需要做工程师做的事情。现在我们需要地面站控制软件来做用户需要做的事情,因为这是开源的软件,也因为标准和内部运作的公开,任何人都可以查看。大量的公司都参与其中,编写更好更易于使用的地面站软件,或者是开发单纯听指令运行的软件。所以它不会因为具有许多人们并不需要的功能而变得复杂。

6、 InterDrone:ArduPilot对无人机行业的重要性是什么

Craig Elder: ArduPilot大约在八年前开始运行,这就是为什么自动驾驶仪的成本从几千美元下降到几百美元的原因。

过去,你购买一套商用自动驾驶仪,好的一台要10万美元,但是便宜的也要花一万美元。在2012-2013年,ArduPilot发展到自身已经具备那些更昂贵自动驾驶仪的大部分功能,而且在大部分情况下,飞行性能已经超过那些商用自动驾驶仪的能力,但成本却比商用自动驾驶仪低了一个数量级。

ArduPilot的一个特点是它的用户界面操作并不简单,但在过去的几年里,它的用户界面已经有所改善。它终于达到与闭源自动驾驶仪同等的程度,使得用户体验得到改善,飞行性能也不断提高。

7、 InterDrone:ArduPilot提供哪些功能

Craig Elder: 如果你想要用来编程并执行任务做调查的一个飞行器,选择ArduPilot是自动飞行成本是最低的。

一直以来,这种自动驾驶都是很昂贵的。通过提供开源选项,我们现在有几十家公司为这项工作做出了贡献。他们利用许多其它公司的工作来制造性价比更高的产品。我们有来自uAvionix的新产品ADS-B接收器。我们使用ADS-B来实现自动避障的功能。我们有计算机视觉系统,任何选择使用它的人都可以使用这种功能。

8、 InterDrone:如何保证ArduPilot代码的安全性

Craig Elder: 我们有自动进行的代码审查,代码审查由查看代码的人进行。每一行代码都由机器、模拟计算,然后进行人为计算,最后才被带入代码的主要部分。并且在发布之前,它就已经被测试过成千上万次。

9、 InterDrone:ArduPilot的开源许可与Dronecode的许可相比如何

Craig Elder: 在开源世界中,有一个GPL许可证,这就是ArduPilot。而PX4(Dronecode)已在BSD许可中。

在GPL中,如果你出售或者发布包含这些更改的系统,那么你有义务将你所更改的部分公开。如果使用BSD许可,则没有义务公开你所做的更改。你可以拿现成的东西,可以进行定制,可以自己制作、改进,但却没有义务和别人分享所写的改进。

通常选择BSD许可的情况下,他们基本上是拥有足够大规模的公司,不需要相关扶持和协作,所以他们没有这个想法去参与和其他公司的合作。

10、 InterDrone:你为什么认为开发者应该公开他们做出的更改

Craig Elder: 使用BSD许可最终的结果是,项目的发展速度和功能的发展速度都不如以前快,因为没有人有义务发布他们对其的更改。

公司选择BSD许可,是因为他们不希望承担这样的义务。他们利用别人已经完成的工作,但他们不想承担义务将其传递出去,也不想付出努力将自己的改变贡献回来。

11、 **InterDrone:**ArduPilot没有Dronecode情况下,该如何继续成功

Craig Elder: ArduPilot只是飞行控制软件。我们需要地面站控制协议,需要地面控制站协议,需要所有的这些才能够进行合作。我们通过创立Dronecode来更好的协调发挥我们的努力,同时我们也试图接触更多使用ArduPilot并尝试做的更好的公司。

大约只有不到10%使用 ArduPilot的公司参与了Dronecode,我预计这些公司会在不久后退出Dronecode。我们也会做出二次努力,再次更好地吸引他们。

此外,我们已经和另一个名为“软件公共利益”的组织建立了一个新的基金会,他们将会为我们的非营利组织设立注册地。我们也建立了一些盈利性实体,允许公司继续参与开发团队,并持续改进自动驾驶仪,添加功能,使其实现他们想做的事情。

12、InterDrone:ArduPilot的未来规划

Craig Elder:首先,我们的未来是与Linux以及在Linux中可用的实时系统合作。

有些人会说我们对未来没有规划,这其实是一件好事,因为我们没有把它限制在我们的想象中,我们允许人们用它做一些新的、有创意的事情。还有些人也会说,关于自动驾驶的能力以及人们在探寻的东西,我们有一个大致的发展规划和方向。

对于一个公司来说,和开发团队提出:“我们有一个GPS希望得到你们的支持,你们能写一个驱动程序吗?”或者他们会提出说:“我们有一个GPS,我们也写了一个驱动程序,你们能把它们纳入进来吗”?

对开源软件的团队提出类似的这种要求是非常容易的。

最后,我们试图建立一个可以收集、获取数据系统。公司可以利用这些数据并将其变成更好的产品。


更多的交流,尽在DroneChina!

时隔五年再来看Craig Elder当初接受采访时提出的观点和想法,小编觉得有些观念和想法是非常正确的。如Craig Elder预测的一样,现在越来越多人在使用开源系统,开源模式也越来越受欢迎,各种开源社区活动也越来越活跃,开源软件在国内外都引起了新一轮的发展热潮。

许多企业和开发者都愿意花费大量的时间和精力,积极参与到开源项目中,他们这么做的主要原因是因为他们想让开源软件变得更好。许多企业表示他们参与开源贡献其中原因之一是为了降低开发成本,通过加入开源社区,企业能获得成百上千开发者的支持,甚至可以直接获取成果,这大大降低了企业的开发成本。企业在获取开源带来便利的同时,也积极贡献代码回馈开源社区,这个举动从长远来看,有利于促进软件功能的丰富和更新。而对开发者而言,开源经历是非常宝贵的经历,通过开源项目工作不仅可以提升技能增长见识,还可以帮助个人未来的职业生涯,因为现在很多企业都希望聘请具有相关开源项目经验的人才。

随着开源软件规模的发展和壮大,开源不再只是一个可选项,它悄无声息的在影响着各个行业。对无人机行业而言,开源无人机为无人机行业的发展做出巨大的贡献,不仅使无人机在各个领域都得到广泛的使用,更是促进和推动了各领域的发展。

ArduPilot作为全球最活跃的无人机开源社区之一,在发挥其重要影响力的同时,更是长期秉持“开源精神”的初衷,通过凝聚全世界无人机爱好者的智慧、技术与创意,使开源技术为无人机行业的发展做出巨大的贡献。

DroneChina作为推广开源技术的中文平台之一,我们同样希望秉持这份初衷,推广开源的精神,促进开源技术的普及和发展,凝聚行业内的智慧和技术,建设并维持一个健康的无人机行业生态圈,让更多中国高校、企业和开发者能够加入到无人机开源技术的开发和交流中。