开源无人机“大事件”:ArduPilot脱离Dronecode始末
无人机产业的发展之快速我们已经说过千万遍,关于世界著名品牌的报道也写了数不清的篇幅,无人机之所以能够快速被普及,很大程度上得益于“开源飞控”的发展,然而这个“幕后英雄”我们却很少在关注。
最近,开源无人机圈子里发生了一件大事——目前最活跃的开源飞控项目ArduPilot脱离了开源社区联盟Dronecode,雷锋网(搜索“雷锋网”公众号关注)觉得值得言说一番,于是找到了Dronecode中国区负责人斯东了解了整件事情的来龙去脉。
Dronecode基金会
随着无人机产业的发展,衍生出了不少开源无人机社区和管理机构,一年前,最大开源无人机项目Dronecode基金会成立,该基金会管理了两大开源无人机项目:ArduPilot和PX4。
ArduPilot是2007年由DIY无人机社区(DIY Drones)推出的飞控产品,是当今最为成熟的开源硬件项目,也就是开源无人机圈子里常说的APM(ArduPilotMega)飞控。
PX4源于是苏黎世联邦理工大学计算机视觉与几何实验室、自主系统实验室和自动控制实验室研发的一个软硬件开源项目。
这两个开源项目均归属Dronecode管理,其实不止这两个无人机开源项目,目前很多开源项目都在基金会下管理,比如IBM的openpower、Linux基金会等等,这是开源社区运营模式的一种趋势。
Dronecode基金会采用了会员制,使用Dronecode代码的且为项目贡献比较大的(包括代码和资金支持),会按贡献级别成为会员。
根据斯东介绍,Dronecode所得赞助资金均为两个项目共有,用于开源项目的开发、维护和提升。
“成员把赞助费放到基金会里面去,就算他们不使用ArduPilot,ArduPilot的成员还是可以从基金会中获取经费,反之一样。”
冲突
其实在早前,两个项目就有了一些分歧,一个更偏向于个人用户,一个更偏向于商业和实验用途。
ArduPilot是GPL V3协议,而PX4是BSD协议,所以商业公司更喜欢后者,比如高通、英特尔等都偏向于PX4。
下面是一段关于两个协议的简单介绍:
BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。
但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:
1. 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
2. 如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
3. 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。BSD 代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对 商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。
GPL协议和BSD等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。
简单来说,使用GPL V3协议的开发者必须将自己的代码公开,贡献给开源社区的所有成员,而BSD则不需要公开代码,这也就是为什么商业公司都更青睐PX4,因为公开代码对于商业公司来说会损害他们的利益。
刚刚发布的GoPro Karma无人机使用的就是基于PX4开发的
比如亚马逊要用ArduPilot为基础开发快递无人机,那么他们的代码就要全部公布出来,这样对于竞争极其不利。
根据ArduPilot官方的公告表示,Dronecode目前的规章制度和发展方向都是围绕更重要的客户来搭建的,他们认为这些“大客户”虽然为Dronecode带来了很多的资金支持(会员赞助费),但也一定程度上影响了整个基金会的发展方向,Dronecode的发展战略会越来越倾向于PX4,这对于ArduPilot是不能接受的。
离开
2016年8月,ArduPilot负责人Philip Rowse向Dronecode内部发送了一封邮件,公布了ArduPilot即将离开Dronecode的决定。
雷锋网了解到,这件事情的导火索是,Dronecode方面发布了一封内部公开信,想要每半年做一个发行版提供给组织成员(外媒资料说是要以PX4飞控代码为基础发开发发行版平台,但Dronecode中国区负责人斯东向雷锋网透露,Dronecode是想两个平台一起做,就像Android每年升级一个版本一样,有利于其他厂商可以更方便的跟进协作),但这对于ArduPilot来说,研发成本有些高,而且意义不大。
“之前是随意更新的,按功能发布。其实Chris(指Dronecode的创始人兼主席Chris Anderson)是更想推ArduPilot的,可是因为协议问题没有办法。”
对于此事,斯东表示:没有什么利益冲突,ArduPilot退出其实是双方满意的结果。ArduPilot确实是目前用户体验最好的开源飞控,但是GPL V3开源精神是一个死结,导致其在商业化的角度上障碍重重,商业化路难行就意味着资金难以取得,也很难推动开源无人机的发展。
开源产业
以上就大致是这次事件的全部来龙去脉,对于大众来说,开源无人机似乎从来就没有走进过大众视野,这次ArduPilot脱离Dronecode的“大事件”似乎也没有惊起业界多大的波澜。
据了解,ArduPilot在Dronecode创立之初就以核心地位存在,而随着“开源精神”和“商业利益”的冲突,导致这个“核心”即将剥离,这也让人不禁思考,这两者到底谁才更符合发展规律。
ArduPilot“开源精神”的初衷不容置疑,他们是想坚持初心,给广大的使用者提供完全开放的开源技术平台,所以这次离开Dronecode似乎无可厚非。ArduPilot平台近十年来积累的开发者人群十分可观,目前看来是多于PX4的,其论坛的活跃度也久居沉淀,不至于因为脱离组织而受损,雷锋网认为,“脱离”对他们来说并非是一件坏事。
而对产业界来说,PX4的项目获得了英特尔、高通等巨头的支持,在资金和资源上会有更多的富余,发展会更加顺畅,更加有利于推动开源无人机产业的发展。对于想要长远发展的中小企业,选择PX4看上去会更有前景。
唯一让人遗憾的是,以后可能看不到ArduPilot和PX4的合作了,客观来说,这两个开源项目都各有利弊,一直以来都是互相合作,取彼之长补己之短,让开源项目更具活力,此次如若ArduPilot脱离之后即中断与PX4的合作,难免让人有些遗憾。